blob: 5cd71a31b74d32396e09932e119820b275ead334 [file] [log] [blame]
Carmelo Cascone16de6db2017-08-22 00:27:57 +02001#ifndef __PACKET_IO__
2#define __PACKET_IO__
3#include "headers.p4"
4#include "parser.p4"
5
Carmelo Casconef2ac7202017-09-08 00:57:44 +02006action _process_packet_out() {
Carmelo Cascone16de6db2017-08-22 00:27:57 +02007 modify_field(EGR_PORT_FIELD, packet_out_hdr.egress_port);
8 remove_header(packet_out_hdr);
9}
10
Carmelo Casconef2ac7202017-09-08 00:57:44 +020011table process_packet_out_table {
Carmelo Cascone16de6db2017-08-22 00:27:57 +020012 actions {
Carmelo Casconef2ac7202017-09-08 00:57:44 +020013 _process_packet_out;
Carmelo Cascone16de6db2017-08-22 00:27:57 +020014 }
Carmelo Casconef2ac7202017-09-08 00:57:44 +020015 default_action: _process_packet_out();
Carmelo Cascone16de6db2017-08-22 00:27:57 +020016}
17
Carmelo Casconef2ac7202017-09-08 00:57:44 +020018control ingress_pkt_io_control {
Carmelo Cascone16de6db2017-08-22 00:27:57 +020019 if (valid(packet_out_hdr)) {
Carmelo Casconef2ac7202017-09-08 00:57:44 +020020 apply(process_packet_out_table);
Carmelo Cascone16de6db2017-08-22 00:27:57 +020021 }
22}
23
24#endif