83 lines
2.6 KiB
ReStructuredText
83 lines
2.6 KiB
ReStructuredText
|
.. SPDX-License-Identifier: GPL-2.0
|
||
|
|
||
|
============================-
|
||
|
X.25 Device Driver Interface
|
||
|
============================-
|
||
|
|
||
|
Version 1.1
|
||
|
|
||
|
Jonathan Naylor 26.12.96
|
||
|
|
||
|
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.
|
||
|
|
||
|
The 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.
|
||
|
|
||
|
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.
|
||
|
|
||
|
|
||
|
Packet Layer to Device Driver
|
||
|
-----------------------------
|
||
|
|
||
|
First Byte = 0x00 (X25_IFACE_DATA)
|
||
|
|
||
|
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.
|
||
|
|
||
|
First Byte = 0x01 (X25_IFACE_CONNECT)
|
||
|
|
||
|
Establish the LAPB link. If the link is already established then the connect
|
||
|
confirmation message should be returned as soon as possible.
|
||
|
|
||
|
First Byte = 0x02 (X25_IFACE_DISCONNECT)
|
||
|
|
||
|
Terminate the LAPB link. If it is already disconnected then the disconnect
|
||
|
confirmation message should be returned as soon as possible.
|
||
|
|
||
|
First Byte = 0x03 (X25_IFACE_PARAMS)
|
||
|
|
||
|
LAPB parameters. To be defined.
|
||
|
|
||
|
|
||
|
Device Driver to Packet Layer
|
||
|
-----------------------------
|
||
|
|
||
|
First Byte = 0x00 (X25_IFACE_DATA)
|
||
|
|
||
|
This indicates that the rest of the skbuff contains data that has been
|
||
|
received over the LAPB link.
|
||
|
|
||
|
First Byte = 0x01 (X25_IFACE_CONNECT)
|
||
|
|
||
|
LAPB link has been established. The same message is used for both a LAPB
|
||
|
link connect_confirmation and a connect_indication.
|
||
|
|
||
|
First Byte = 0x02 (X25_IFACE_DISCONNECT)
|
||
|
|
||
|
LAPB link has been terminated. This same message is used for both a LAPB
|
||
|
link disconnect_confirmation and a disconnect_indication.
|
||
|
|
||
|
First Byte = 0x03 (X25_IFACE_PARAMS)
|
||
|
|
||
|
LAPB parameters. To be defined.
|
||
|
|
||
|
|
||
|
Requirements for the device driver
|
||
|
----------------------------------
|
||
|
|
||
|
Packets should not be reordered or dropped when delivering between the
|
||
|
Packet Layer and the device driver.
|
||
|
|
||
|
To 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.
|