#include "ip.h" U16 Ip::checkSum(U8 *data,U32 len) { int dcnt=len/sizeof(U16); U32 sum=0; U16 *word=(U16*)data; while(dcnt--) { sum+=*word++; } // les retenus sont circulaires // ce qui en fait un calcul independant de l'indiantity while(sum>>16) { sum= (sum>>16)+(sum&0xffff); } return sum; }