|
|
|
@ -15,9 +15,10 @@ action v4sum() {
|
|
|
|
|
|
|
|
|
|
/* filtering code copied from scapy */ |
|
|
|
|
tmp = (tmp >> 16) + (tmp & 0xffff); |
|
|
|
|
tmp = tmp + (tmp >> 16); |
|
|
|
|
tmp = (tmp >> 16) + (tmp & 0xffff); |
|
|
|
|
tmp = ~tmp; |
|
|
|
|
meta.v4sum = (bit<16>) ((((tmp>>8) & 0xff)|tmp<<8) & 0xffff); |
|
|
|
|
// meta.v4sum = (bit<16>) ((((tmp>>8) & 0xff)|tmp<<8) & 0xffff); |
|
|
|
|
meta.v4sum = (bit<16>) tmp; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -48,9 +49,11 @@ action v6sum() {
|
|
|
|
|
|
|
|
|
|
/* filtering code copied from scapy */ |
|
|
|
|
tmp = (tmp >> 16) + (tmp & 0xffff); |
|
|
|
|
tmp = tmp + (tmp >> 16); |
|
|
|
|
tmp = (tmp >> 16) + (tmp & 0xffff); |
|
|
|
|
// tmp = tmp + (tmp >> 16); |
|
|
|
|
tmp = ~tmp; |
|
|
|
|
meta.v6sum = (bit<16>) ((((tmp>>8) & 0xff)|tmp<<8) & 0xffff) ; |
|
|
|
|
// meta.v6sum = (bit<16>) ((((tmp>>8) & 0xff)|tmp<<8) & 0xffff) ; |
|
|
|
|
meta.v6sum = (bit<16>) tmp; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|