2012-01-31 12 views
2

Linuxカーネルの古いバージョン(2.6.11など)では、struct sk_buffにstruct sk_buff_head(名前付きリスト)へのポインタが含まれています。 'Understanding Linux Network Internals'の本によれば、このポインタは、skbuffsがskbリストの頭をすばやく調べる必要があるため、維持されています。しかし、最近のバージョンのカーネル(3.2.1)ではそのようなメンバーを見つけることができませんでした。誰でも、新しいカーネルでskbリスト管理がどのように変わったのか説明できますか?新しいLinuxカーネルでsk_buff_headが見つからない

答えて

2

これはずっと前から、2.6.14で実に変わりました。問題のカーネルコミットは:

commit 8728b834b226ffcf2c94a58530090e292af2a7bf 
Author: David S. Miller <[email protected]> 
Date: Tue Aug 9 19:25:21 2005 

    [NET]: Kill skb->list 

    Remove the "list" member of struct sk_buff, as it is entirely 
    redundant. All SKB list removal callers know which list the 
    SKB is on, so storing this in sk_buff does nothing other than 
    taking up some space. 

    Two tricky bits were SCTP, which I took care of, and two ATM 
    drivers which Francois Romieu <[email protected]> fixed 
    up. 

    Signed-off-by: David S. Miller <[email protected]> 
    Signed-off-by: Francois Romieu <[email protected]> 
関連する問題