Hi,
    Haven't checked uip code yet, but it sounds like what you are talking about 
is the checksum check done at the recevier, in general... 

Sending :    
(for IP chksum) :     Put zero in the checksum field. The sum of two-byte 
fields of the header is calculated using end-around carry, resulting in a 
two-byte value. The complement of this is stored as checksum.

Recevier : 
(for IP checksum ) : A similar sum is calculated at the receiver side, 
considering the value of the chksum field as zero. The sum is the then added to 
the actual value in the chksum field of the received pkt. If there were no 
errors in transmission, the result will be 0xFFFF. If not, then packets are 
usually dropped.

Hope this helps.

Regards,
Dhruva Kulkarni.



Rajesh N R <[EMAIL PROTECTED]> wrote: Hi,
I am going through the uIP code.  In the uip.c file the IP header checksum 
is compared with 0xFFFF.

if(uip_ipchksum() != 0xffff) { /* Compute and check the IP header
        checksum. */
    UIP_STAT(++uip_stat.ip.drop);
    UIP_STAT(++uip_stat.ip.chkerr);
    UIP_LOG("ip: bad checksum.");
    goto drop;
  }

Here if the checksum is not equal to 0xffff, the packet is dropped.
That means the IP header checksum value is always 0xffff.

Please comment. I am not able to understand the concept.  Thanks a lot.


with regards,


Rajesh NR
CDAC-T


______________________________________
Scanned and protected by Email scanner


 
---------------------------------
Check out the all-new Yahoo! Mail beta - Fire up a more powerful email and get 
things done faster.

Reply via email to