Revision 5acf5ea4 net/checksum.c

b/net/checksum.c
20 20
#define PROTO_TCP  6
21 21
#define PROTO_UDP 17
22 22

  
23
uint32_t net_checksum_add(int len, uint8_t *buf)
23
uint32_t net_checksum_add_cont(int len, uint8_t *buf, int seq)
24 24
{
25 25
    uint32_t sum = 0;
26 26
    int i;
27 27

  
28
    for (i = 0; i < len; i++) {
29
	if (i & 1)
30
	    sum += (uint32_t)buf[i];
31
	else
32
	    sum += (uint32_t)buf[i] << 8;
28
    for (i = seq; i < seq + len; i++) {
29
        if (i & 1) {
30
            sum += (uint32_t)buf[i - seq];
31
        } else {
32
            sum += (uint32_t)buf[i - seq] << 8;
33
        }
33 34
    }
34 35
    return sum;
35 36
}

Also available in: Unified diff