Linux Kernel(2.6)の実装に関するメモ書き

ネットワークデバイス


デバイスの管理

ネットワークデバイスはstruct net_deviceで管理される。ネットワークデバイスは登録されると、dev_baseリストにつながれる。dev_baseからnet_deviceのnextをたどることで全デバイスを参照することができる(図1)。


図1 net_device構造体


struct net_deviceはdev_baseリストの他にも、2種類のハッシュで管理される(表1)。

表1 struct net_deviceのハッシュ 
ハッシュテーブル
説明
dev_name_head[] eth0等のデバイス名で検索を行う。
struct net_deviceのname_hlistでたどることができる。
dev_index_head[] デバイスのifindexで検索を行う。
struct net_deviceのindex_hlistでたどることができる。

デバイスに設定されたIPアドレス

デバイスに設定されたIPアドレスは該当するデバイスのstruct net_deviceにチェーンされる。struct net_device内にプロトコル依存データを指すポインタがあり、IPv4の場合は、ip_ptrがstruct in_deviceを指す。struct in_deviceのifa_listからIPv4アドレスを表すstruct in_ifaddrのリストになっている。


図2 デバイスとIPアドレス


最終更新 2006/07/31 19:38:14 - kztomita
(2006/07/31 19:28:29 作成)
添付ファイル
net_device.png - kztomita
in_ifaddr.png - kztomita


リンク
最近更新したページ
検索