1.. SPDX-License-Identifier: GPL-2.0 2 3============================- 4X.25 Device Driver Interface 5============================- 6 7Version 1.1 8 9 Jonathan Naylor 26.12.96 10 11This is a description of the messages to be passed between the X.25 Packet 12Layer and the X.25 device driver. They are designed to allow for the easy 13setting of the LAPB mode from within the Packet Layer. 14 15The X.25 device driver will be coded normally as per the Linux device driver 16standards. Most X.25 device drivers will be moderately similar to the 17already existing Ethernet device drivers. However unlike those drivers, the 18X.25 device driver has a state associated with it, and this information 19needs to be passed to and from the Packet Layer for proper operation. 20 21All messages are held in sk_buff's just like real data to be transmitted 22over the LAPB link. The first byte of the skbuff indicates the meaning of 23the rest of the skbuff, if any more information does exist. 24 25 26Packet Layer to Device Driver 27----------------------------- 28 29First Byte = 0x00 (X25_IFACE_DATA) 30 31This indicates that the rest of the skbuff contains data to be transmitted 32over the LAPB link. The LAPB link should already exist before any data is 33passed down. 34 35First Byte = 0x01 (X25_IFACE_CONNECT) 36 37Establish the LAPB link. If the link is already established then the connect 38confirmation message should be returned as soon as possible. 39 40First Byte = 0x02 (X25_IFACE_DISCONNECT) 41 42Terminate the LAPB link. If it is already disconnected then the disconnect 43confirmation message should be returned as soon as possible. 44 45First Byte = 0x03 (X25_IFACE_PARAMS) 46 47LAPB parameters. To be defined. 48 49 50Device Driver to Packet Layer 51----------------------------- 52 53First Byte = 0x00 (X25_IFACE_DATA) 54 55This indicates that the rest of the skbuff contains data that has been 56received over the LAPB link. 57 58First Byte = 0x01 (X25_IFACE_CONNECT) 59 60LAPB link has been established. The same message is used for both a LAPB 61link connect_confirmation and a connect_indication. 62 63First Byte = 0x02 (X25_IFACE_DISCONNECT) 64 65LAPB link has been terminated. This same message is used for both a LAPB 66link disconnect_confirmation and a disconnect_indication. 67 68First Byte = 0x03 (X25_IFACE_PARAMS) 69 70LAPB parameters. To be defined. 71 72 73Requirements for the device driver 74---------------------------------- 75 76Packets should not be reordered or dropped when delivering between the 77Packet Layer and the device driver. 78 79To avoid packets from being reordered or dropped when delivering from 80the device driver to the Packet Layer, the device driver should not 81call "netif_rx" to deliver the received packets. Instead, it should 82call "netif_receive_skb_core" from softirq context to deliver them. 83