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”來傳遞它們。