X.25 设备驱动程序接口¶
版本 1.1
Jonathan Naylor 26.12.96
这是描述 X.25 数据包层和 X.25 设备驱动程序之间传递的消息。它们旨在允许从数据包层内轻松设置 LAPB 模式。
X.25 设备驱动程序将按照 Linux 设备驱动程序标准进行正常编码。大多数 X.25 设备驱动程序将与现有的以太网设备驱动程序非常相似。但是,与那些驱动程序不同,X.25 设备驱动程序具有与之关联的状态,并且为了正常操作,此信息需要与数据包层之间来回传递。
所有消息都保存在 sk_buff 中,就像要通过 LAPB 链路传输的真实数据一样。skbuff 的第一个字节指示其余 skbuff 的含义,如果存在更多信息的话。
数据包层到设备驱动程序¶
第一个字节 = 0x00 (X25_IFACE_DATA)
这表示 skbuff 的其余部分包含要通过 LAPB 链路传输的数据。在传递任何数据之前,LAPB 链路应已存在。
第一个字节 = 0x01 (X25_IFACE_CONNECT)
建立 LAPB 链路。如果该链路已建立,则应尽快返回连接确认消息。
第一个字节 = 0x02 (X25_IFACE_DISCONNECT)
终止 LAPB 链路。如果该链路已断开连接,则应尽快返回断开连接确认消息。
第一个字节 = 0x03 (X25_IFACE_PARAMS)
LAPB 参数。待定义。
设备驱动程序到数据包层¶
第一个字节 = 0x00 (X25_IFACE_DATA)
这表示 skbuff 的其余部分包含已通过 LAPB 链路接收的数据。
第一个字节 = 0x01 (X25_IFACE_CONNECT)
已建立 LAPB 链路。相同的消息用于 LAPB 链路 connect_confirmation 和 connect_indication。
第一个字节 = 0x02 (X25_IFACE_DISCONNECT)
已终止 LAPB 链路。相同的消息用于 LAPB 链路 disconnect_confirmation 和 disconnect_indication。
第一个字节 = 0x03 (X25_IFACE_PARAMS)
LAPB 参数。待定义。
设备驱动程序的要求¶
在数据包层和设备驱动程序之间传递时,不应重新排序或丢弃数据包。
为避免从设备驱动程序传递到数据包层时重新排序或丢弃数据包,设备驱动程序不应调用“netif_rx”来传递接收到的数据包。相反,它应从 softirq 上下文调用 “netif_receive_skb_core” 来传递它们。