2012-02-16 11 views
0

ネットワークデバイスドライバcode.Myドライバは、driver-model.REF:kernel/Documentation/driver-modelに従っています。 interface.txtで読む: { デバイスインターフェイスは、 をデバイスノードのようなユーザー空間インターフェイスに直接関連付けるデバイスクラスの論理インターフェイスです。 各インタフェースには、それが属するデバイスのディレクトリ のディレクトリにディレクトリが与えられます。 }tcp/ipスタックはどのようにLinuxのnet_deviceインターフェースを取得しますか

は、正確なインタフェースを特定することができたhaventはyet.So構造体net_deviceとinterface.txtファイル(kernel./Documentation/driver-model)でのプログラミングインターフェイスを経て 私は再び結論に来ますこれらの人々が話しているnet_device。 ここで私が知りたいのは、物理層とリンク層がネットワークドライバであるTCP/IPスタックです。ネットワークドライバが自分のtcp/ipスタックに提供するインターフェイスを与えたいと思います。どのようにしてnet_device構造体をTCP/ipスタックに与えることができますか?誰もがこれについて知っていますか? よろしくお願いいたします。 Sraddha

答えて

4

構造体inet_protosw(インターネット・プロトコル)は次のように階層であるポインタ構造体メンバープロト(プロトコル)に

構造体のソックスは、構造体のメンバプロト(プロトコル)

へのポインタを有しています

構造体のソックスは、構造体部材に部材が

構造体sk_buff_headがsk_buffにメンバーを構造体へのポインタ2(次と呼ばれるもの、PREVと呼ばれるもの)

を有するsk_buff_headました

struct sk_buffには、構造体メンバnet_deviceへのポインタがあります。

net_deviceをinet_protoswで直接登録するとは思いません。

まずinet_initが、それは、プロトコルを初期化するためにinet_register_protoswを呼び出し、それは様々なINETモジュール(IP、TCP、ICMP、など)を初期化し、proto_registerを呼び出すことによって、ネットワーク・プロトコルに組み込まれて登録されます。

プロトコルとデバイスの接続に関与するインターフェイスは、後でregister_netdeviceunregister_netdeviceとなります。これは、サウンドが好きで、カーネルでネットワークデバイスを登録および登録解除します。プロトコルを使用してプロトコルからパケットをデバイスに送信するには、dev_queue_xmitおよびnetif_rxがパケットをデバイス層からネットワーク層に渡す場合は、netif_rx_scheduleを呼び出して、パケットをさらに処理するようにスケジュールします。組織/ワークフローの

リソースおよびドキュメントが含まれます:

+0

あなたAppleman1234をありがとうございます。私はこれに取り組むでしょう。 – sraddhaj

関連する問題