61 lines
No EOL
1.4 KiB
Text
61 lines
No EOL
1.4 KiB
Text
/* -*- P4_16 -*- */
|
|
#include <core.p4>
|
|
#include <v1model.p4>
|
|
|
|
#include "headers.p4"
|
|
|
|
parser MyParser(packet_in packet,
|
|
out headers hdr,
|
|
inout metadata meta,
|
|
inout standard_metadata_t standard_metadata) {
|
|
|
|
#include "parsers.p4"
|
|
}
|
|
|
|
control MyDeparser(packet_out packet, in headers hdr) {
|
|
#include "deparser.p4"
|
|
}
|
|
|
|
control MyIngress(inout headers hdr,
|
|
inout metadata meta,
|
|
inout standard_metadata_t standard_metadata) {
|
|
|
|
/********************** APPLYING TABLES ***********************************/
|
|
apply {
|
|
if(hdr.tcp.isValid()) {
|
|
/* test wrap around */
|
|
hdr.tcp.checksum = 0xffff;
|
|
hdr.tcp.checksum = hdr.tcp.checksum + 2;
|
|
}
|
|
standard_metadata.egress_spec = 1;
|
|
}
|
|
}
|
|
|
|
control MyEgress(inout headers hdr,
|
|
inout metadata meta,
|
|
inout standard_metadata_t standard_metadata) {
|
|
apply {
|
|
}
|
|
}
|
|
|
|
control MyVerifyChecksum(inout headers hdr, inout metadata meta) {
|
|
apply {}
|
|
}
|
|
|
|
|
|
control MyComputeChecksum(inout headers hdr, inout metadata meta) {
|
|
apply {}
|
|
}
|
|
|
|
/*************************************************************************
|
|
*********************** S W I T C H *******************************
|
|
*************************************************************************/
|
|
|
|
V1Switch(
|
|
MyParser(),
|
|
MyVerifyChecksum(),
|
|
MyIngress(),
|
|
MyEgress(),
|
|
MyComputeChecksum(),
|
|
MyDeparser()
|
|
) main; |