Re-introduce checksumming in p4
This commit is contained in:
parent
2c3db11c80
commit
0bd12260c6
1 changed files with 12 additions and 19 deletions
|
@ -21,26 +21,19 @@ control MyVerifyChecksum(inout headers hdr, inout metadata meta) {
|
||||||
|
|
||||||
control MyComputeChecksum(inout headers hdr, inout metadata meta) {
|
control MyComputeChecksum(inout headers hdr, inout metadata meta) {
|
||||||
apply {
|
apply {
|
||||||
|
bit<32> icmp6_len = (bit<32>) hdr.ipv6.payload_length;
|
||||||
|
|
||||||
if(meta.calc_icmp6_checksum) {
|
update_checksum_with_payload(meta.calc_icmp6_checksum,
|
||||||
hdr.icmp6.checksum = 42; /* must be correct */
|
{
|
||||||
}
|
hdr.ipv6.src_addr, /* 128 */
|
||||||
|
hdr.ipv6.dst_addr, /* 128 */
|
||||||
// verify_checksum_with_payload<T, O>(in bool condition, in T data, inout O checksum, HashAlgorithm algo);
|
icmp6_len, /* 32 */
|
||||||
// GRRRRR bit<32> icmp6_len = 32; /* for icmp6 NS */
|
24w0, /* 24 0's */
|
||||||
|
PROTO_ICMP6 /* 8 */
|
||||||
// GRRRRR update_checksum (
|
},
|
||||||
// GRRRRR hdr.icmp6.isValid(),
|
hdr.icmp6.checksum,
|
||||||
// GRRRRR {
|
HashAlgorithm.csum16
|
||||||
// GRRRRR hdr.ipv6.src_addr, /* 128 */
|
);
|
||||||
// GRRRRR hdr.ipv6.dst_addr, /* 128 */
|
|
||||||
// GRRRRR icmp6_len, /* 32 */
|
|
||||||
// GRRRRR 24w0, /* 24 0's */
|
|
||||||
// GRRRRR PROTO_ICMP6 /* 8 */
|
|
||||||
// GRRRRR },
|
|
||||||
// GRRRRR hdr.icmp6.checksum,
|
|
||||||
// GRRRRR HashAlgorithm.csum16
|
|
||||||
// GRRRRR );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue