diff --git a/p4src/minip4_solution.p4 b/p4src/minip4_solution.p4 index fd22643..0ce29d9 100644 --- a/p4src/minip4_solution.p4 +++ b/p4src/minip4_solution.p4 @@ -62,16 +62,22 @@ parser TopParser(packet_in packet, /******************************************************************************** * Main - */ -control TopPipe(inout Parsed_packet p, - inout user_metadata_t user_metadata, +*/ + +// control TopPipe(inout Parsed_packet p, +// inout user_metadata_t user_metadata, +// inout digest_data_t digest_data, +// inout sume_metadata_t sume_metadata) { + +control TopPipe(inout headers hdr, + inout metadata meta, inout digest_data_t digest_data, inout sume_metadata_t sume_metadata) { action swap_eth_addresses() { - EthAddr_t temp = p.ethernet.dstAddr; - p.ethernet.dstAddr = p.ethernet.srcAddr; - p.ethernet.srcAddr = temp; + EthAddr_t temp = hdr.ethernet.dstAddr; + hdr.ethernet.dstAddr = hdr.ethernet.srcAddr; + hdr.ethernet.srcAddr = temp; /* set egress port */ sume_metadata.dst_port = sume_metadata.src_port; @@ -94,12 +100,12 @@ control TopPipe(inout Parsed_packet p, } action do_nothing() { - EthAddr_t temp = p.ethernet.dstAddr; + EthAddr_t temp = hdr.ethernet.dstAddr; } table lookup_table { key = { - p.ethernet.dstAddr: exact; + hdr.ethernet.dstAddr: exact; } actions = { @@ -124,13 +130,22 @@ control TopPipe(inout Parsed_packet p, */ @Xilinx_MaxPacketRegion(1024) -control TopDeparser(packet_out b, - in Parsed_packet p, - in user_metadata_t user_metadata, +control TopDeparser(packet_out packet, + in headers hdr, + in metadata meta, inout digest_data_t digest_data, inout sume_metadata_t sume_metadata) { + +// @Xilinx_MaxPacketRegion(1024) +// control TopDeparser(packet_out b, +// in Parsed_packet p, +// in user_metadata_t user_metadata, +// inout digest_data_t digest_data, +// inout sume_metadata_t sume_metadata) { + + apply { - b.emit(p.ethernet); + packet.emit(hdr.ethernet); } }