2014-07-02 36 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

这些假设是相同的吗? –