€•B/Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ(/translations/zh_CN/networking/x25-iface”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/zh_TW/networking/x25-iface”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/it_IT/networking/x25-iface”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/ja_JP/networking/x25-iface”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/ko_KR/networking/x25-iface”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/sp_SP/networking/x25-iface”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh£sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1h”hhhžhhŸŒB/var/lib/git/docbuild/linux/Documentation/networking/x25-iface.rst”h KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒX.25 Device Driver Interface”h]”hŒX.25 Device Driver Interface”…””}”(hh»hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hh¶hžhhŸh³h KubhŒ paragraph”“”)”}”(hŒ Version 1.1”h]”hŒ Version 1.1”…””}”(hhĖhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khh¶hžhubhŒ block_quote”“”)”}”(hŒJonathan Naylor 26.12.96 ”h]”hŹ)”}”(hŒJonathan Naylor 26.12.96”h]”hŒJonathan Naylor 26.12.96”…””}”(hhßhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KhhŪubah}”(h]”h ]”h"]”h$]”h&]”uh1hŁhŸh³h Khh¶hžhubhŹ)”}”(hŒĖThis is a description of the messages to be passed between the X.25 Packet Layer and the X.25 device driver. They are designed to allow for the easy setting of the LAPB mode from within the Packet Layer.”h]”hŒĖThis is a description of the messages to be passed between the X.25 Packet Layer and the X.25 device driver. They are designed to allow for the easy setting of the LAPB mode from within the Packet Layer.”…””}”(hhóhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K hh¶hžhubhŹ)”}”(hXlThe X.25 device driver will be coded normally as per the Linux device driver standards. Most X.25 device drivers will be moderately similar to the already existing Ethernet device drivers. However unlike those drivers, the X.25 device driver has a state associated with it, and this information needs to be passed to and from the Packet Layer for proper operation.”h]”hXlThe X.25 device driver will be coded normally as per the Linux device driver standards. Most X.25 device drivers will be moderately similar to the already existing Ethernet device drivers. However unlike those drivers, the X.25 device driver has a state associated with it, and this information needs to be passed to and from the Packet Layer for proper operation.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khh¶hžhubhŹ)”}”(hŒĪAll messages are held in sk_buff's just like real data to be transmitted over the LAPB link. The first byte of the skbuff indicates the meaning of the rest of the skbuff, if any more information does exist.”h]”hŒŠAll messages are held in sk_buff’s just like real data to be transmitted over the LAPB link. The first byte of the skbuff indicates the meaning of the rest of the skbuff, if any more information does exist.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khh¶hžhubhµ)”}”(hhh]”(hŗ)”}”(hŒPacket Layer to Device Driver”h]”hŒPacket Layer to Device Driver”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjhžhhŸh³h KubhŹ)”}”(hŒ"First Byte = 0x00 (X25_IFACE_DATA)”h]”hŒ"First Byte = 0x00 (X25_IFACE_DATA)”…””}”(hj.hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KhjhžhubhŹ)”}”(hŒ”This indicates that the rest of the skbuff contains data to be transmitted over the LAPB link. The LAPB link should already exist before any data is passed down.”h]”hŒ”This indicates that the rest of the skbuff contains data to be transmitted over the LAPB link. The LAPB link should already exist before any data is passed down.”…””}”(hj<hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KhjhžhubhŹ)”}”(hŒ%First Byte = 0x01 (X25_IFACE_CONNECT)”h]”hŒ%First Byte = 0x01 (X25_IFACE_CONNECT)”…””}”(hjJhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K"hjhžhubhŹ)”}”(hŒ‰Establish the LAPB link. If the link is already established then the connect confirmation message should be returned as soon as possible.”h]”hŒ‰Establish the LAPB link. If the link is already established then the connect confirmation message should be returned as soon as possible.”…””}”(hjXhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K$hjhžhubhŹ)”}”(hŒ(First Byte = 0x02 (X25_IFACE_DISCONNECT)”h]”hŒ(First Byte = 0x02 (X25_IFACE_DISCONNECT)”…””}”(hjfhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K'hjhžhubhŹ)”}”(hŒ‡Terminate the LAPB link. If it is already disconnected then the disconnect confirmation message should be returned as soon as possible.”h]”hŒ‡Terminate the LAPB link. If it is already disconnected then the disconnect confirmation message should be returned as soon as possible.”…””}”(hjthžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K)hjhžhubhŹ)”}”(hŒ$First Byte = 0x03 (X25_IFACE_PARAMS)”h]”hŒ$First Byte = 0x03 (X25_IFACE_PARAMS)”…””}”(hj‚hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K,hjhžhubhŹ)”}”(hŒLAPB parameters. To be defined.”h]”hŒLAPB parameters. To be defined.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K.hjhžhubeh}”(h]”Œpacket-layer-to-device-driver”ah ]”h"]”Œpacket layer to device driver”ah$]”h&]”uh1h“hh¶hžhhŸh³h Kubhµ)”}”(hhh]”(hŗ)”}”(hŒDevice Driver to Packet Layer”h]”hŒDevice Driver to Packet Layer”…””}”(hj©hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hj¦hžhhŸh³h K2ubhŹ)”}”(hŒ"First Byte = 0x00 (X25_IFACE_DATA)”h]”hŒ"First Byte = 0x00 (X25_IFACE_DATA)”…””}”(hj·hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K4hj¦hžhubhŹ)”}”(hŒcThis indicates that the rest of the skbuff contains data that has been received over the LAPB link.”h]”hŒcThis indicates that the rest of the skbuff contains data that has been received over the LAPB link.”…””}”(hjÅhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K6hj¦hžhubhŹ)”}”(hŒ%First Byte = 0x01 (X25_IFACE_CONNECT)”h]”hŒ%First Byte = 0x01 (X25_IFACE_CONNECT)”…””}”(hjÓhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K9hj¦hžhubhŹ)”}”(hŒ|LAPB link has been established. The same message is used for both a LAPB link connect_confirmation and a connect_indication.”h]”hŒ|LAPB link has been established. The same message is used for both a LAPB link connect_confirmation and a connect_indication.”…””}”(hjįhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K;hj¦hžhubhŹ)”}”(hŒ(First Byte = 0x02 (X25_IFACE_DISCONNECT)”h]”hŒ(First Byte = 0x02 (X25_IFACE_DISCONNECT)”…””}”(hjļhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K>hj¦hžhubhŹ)”}”(hŒ‚LAPB link has been terminated. This same message is used for both a LAPB link disconnect_confirmation and a disconnect_indication.”h]”hŒ‚LAPB link has been terminated. This same message is used for both a LAPB link disconnect_confirmation and a disconnect_indication.”…””}”(hjżhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K@hj¦hžhubhŹ)”}”(hŒ$First Byte = 0x03 (X25_IFACE_PARAMS)”h]”hŒ$First Byte = 0x03 (X25_IFACE_PARAMS)”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KChj¦hžhubhŹ)”}”(hŒLAPB parameters. To be defined.”h]”hŒLAPB parameters. To be defined.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KEhj¦hžhubeh}”(h]”Œdevice-driver-to-packet-layer”ah ]”h"]”Œdevice driver to packet layer”ah$]”h&]”uh1h“hh¶hžhhŸh³h K2ubhµ)”}”(hhh]”(hŗ)”}”(hŒ"Requirements for the device driver”h]”hŒ"Requirements for the device driver”…””}”(hj2hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hj/hžhhŸh³h KIubhŹ)”}”(hŒjPackets should not be reordered or dropped when delivering between the Packet Layer and the device driver.”h]”hŒjPackets should not be reordered or dropped when delivering between the Packet Layer and the device driver.”…””}”(hj@hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KKhj/hžhubhŹ)”}”(hXTo avoid packets from being reordered or dropped when delivering from the device driver to the Packet Layer, the device driver should not call "netif_rx" to deliver the received packets. Instead, it should call "netif_receive_skb_core" from softirq context to deliver them.”h]”hXTo avoid packets from being reordered or dropped when delivering from the device driver to the Packet Layer, the device driver should not call ā€œnetif_rxā€ to deliver the received packets. Instead, it should call ā€œnetif_receive_skb_coreā€ from softirq context to deliver them.”…””}”(hjNhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KNhj/hžhubeh}”(h]”Œ"requirements-for-the-device-driver”ah ]”h"]”Œ"requirements for the device driver”ah$]”h&]”uh1h“hh¶hžhhŸh³h KIubeh}”(h]”Œx-25-device-driver-interface”ah ]”h"]”Œx.25 device driver interface”ah$]”h&]”uh1h“hhhžhhŸh³h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h³uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¹NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h³Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jijfj£j j,j)jaj^uŒ nametypes”}”(ji‰j£‰j,‰ja‰uh}”(jfh¶j jj)j¦j^j/uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.