I am not sure why the kernel allocates 15
more bytes when it creates a fragment packet. The piece of kernel code which
does the memory allocated for the new fragment is as follows:
/*
* Allocate buffer. */ if ((skb2 = alloc_skb(len+hlen+dev->hard_header_len+15,GFP_ATOMIC)) == NULL) { NETDEBUG(printk(KERN_INFO "IP: frag: no memory for new fragment!\n")); err = -ENOMEM; goto fail; } For the first fragment
len=1480;
hlen=20 (no IP Options);
dev->hard_header_len =
14;
but couldn't figure out the significance of
15 more bytes.
-Ramesh
|