X.25 设备驱动接口¶
版本 1.1
Jonathan Naylor 26.12.96
这是对 X.25 数据包层和 X.25 设备驱动程序之间传递的消息的描述。 它们旨在允许从数据包层轻松设置 LAPB 模式。
X.25 设备驱动程序将按照 Linux 设备驱动程序标准进行正常编码。 大多数 X.25 设备驱动程序将与已存在的 Ethernet 设备驱动程序非常相似。 然而,与那些驱动程序不同的是,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”来传递它们。