hello , In ip_output.c file there is ip_build_xmit function call. when packet comes from tcp layer to IP layer this function is called. In that i found that skb = sock_alloc_send_skb(sk, length+hh_len+15 ,flags&MSG_DONTWAIT, &err); staement allocates skb for packet. after that i found that no iphdr adding statement in ip_build_xmit. i want to know where is iphdr push to skb? cause skb works using first alloc_skb to allocate memory then skb_reserve to reserve headroom then put data in skb by skb_put or skb_push for pushing headers in skb. so there i found skb->nh.iph = iph = (struct iphdr *)skb_put(skb, length); statement is this does that iphdr adding? regards, linuxlover __________________________________ Do you Yahoo!? SBC Yahoo! - Internet access at a great low price. http://promo.yahoo.com/sbc/ - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html