2014-07-02 38 views

回答

1

有作爲skb_alloc沒有這樣的事情。我假設你的意思是調用alloc_skb或dev_alloc_skb。給alloc_skb的size參數是你想分配的緩衝區大小。你不需要計算sk_buff結構的大小,alloc_skb已經知道了。換句話說,如果你打算接收一個最大的以太網幀(1518個字節),你可能想是這樣的:

skb = alloc_skb(1536, GFP_KERNEL); 

,其分配一個sk_buff的結構和1536個字節相關聯緩衝器。實際的緩衝區是「skb-> data」。

+0

感謝評論吉爾漢密爾頓我的疑問是如何標題大小爲Mac(ieee 802.11p) – user2944178

+0

也許這個質量保證類似/有幫助嗎? http://stackoverflow.com/questions/11169961/how-exactly-is-the-amount-of-space-allocated-to-a-to-be-transmitted-packet-skb-d – kaiwan

+0

感謝您發表評論 – user2944178

0
sizeof(struct sk_buff) 

,或者如果你使用指針的sk_buff

sizeof(struct sk_buff) 
+0

這些假設是相同的嗎? –