questions on ip_input.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



  
hello ,

what is the difference between following two fragments of code?
---------------------------------------------------------------
	if (!pskb_may_pull(skb, sizeof(struct iphdr)))
		goto inhdr_error;

	iph = skb->nh.iph;
-----------------------------------------------------------------
	if (!pskb_may_pull(skb, iph->ihl*4))
		goto inhdr_error;

	iph = skb->nh.iph;
-----------------------------------------------------------------

Also

 /* Our transport medium may have padded the buffer out. Now we know it
                 * is IP we can trim to the true length of the frame.
                 * Note this now means skb->len holds ntohs(iph->tot_len).
                 */
                if (skb->len > len) {
                        __pskb_trim(skb, len);
                        if (skb->ip_summed == CHECKSUM_HW)
                                skb->ip_summed = CHECKSUM_NONE;

can anybody explain me in which condition trim is required ot transport layer
to pad zeros?

regards,
parag.

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux