- 论坛徽章:
- 0
|
我在tcp_v4_rcv()函数中 写了如下代码,来验证skb_copy_expand函数的功能
printk("tcp_v4_rcv skb_tailroom(skb)=%d skb->end-skb->tail=%d\n", skb_tailroom(skb),skb->end-skb->tail);
mouskb=skb_copy_expand(skb,0,40, GFP_ATOMIC);
if(mouskb!=NULL)
{
printk(KERN_INFO "tcp_v4_rcv mouskb=skb_copy(skb, GFP_ATOMIC) success mouskb->len=%d\n",mouskb->len);
moudata=mouskb->data;
moutail=mouskb->tail;
printk("tcp_v4_rcv moutail-moudata=%d mouskb->tail-mouskb->data=%d mouskb->end-mouskb->tail=%d\n", moutail-moudata,mouskb->tail-mouskb->data,mouskb->end-mouskb->tail);
kfree_skb(mouskb);
}
安到了说 mouskb->end-mouskb->tail的长度应该是40 怎么我在日志里面不是这样的呢
Dec 1 17:01:03 ubuntu kernel: [ 286.450223] tcp_v4_rcv skb_tailroom(skb)=6 skb->end-skb->tail=6
Dec 1 17:01:03 ubuntu kernel: [ 286.450229] tcp_v4_rcv mouskb=skb_copy(skb, GFP_ATOMIC) success mouskb->len=24
Dec 1 17:01:03 ubuntu kernel: [ 286.450232] tcp_v4_rcv moutail-moudata=24 mouskb->tail-mouskb->data=24 mouskb->end-mouskb->tail=40
7:01:03 ubuntu kernel: [ 286.450820] tcp_v4_rcv skb_tailroom(skb)=10 skb->end-skb->tail=10
Dec 1 17:01:03 ubuntu kernel: [ 286.450950] tcp_v4_rcv mouskb=skb_copy(skb, GFP_ATOMIC) success mouskb->len=20
Dec 1 17:01:03 ubuntu kernel: [ 286.450954] tcp_v4_rcv moutail-moudata=20 mouskb->tail-mouskb->data=20 mouskb->end-mouskb->tail=44
7:01:03 ubuntu kernel: [ 286.647478] tcp_v4_rcv skb_tailroom(skb)=278 skb->end-skb->tail=278
Dec 1 17:01:03 ubuntu kernel: [ 286.647484] tcp_v4_rcv mouskb=skb_copy(skb, GFP_ATOMIC) success mouskb->len=1288
Dec 1 17:01:03 ubuntu kernel: [ 286.647487] tcp_v4_rcv moutail-moudata=1288 mouskb->tail-mouskb->data=1288 mouskb->end-mouskb->tail=56 |
|