Carmelo Cascone | 16de6db | 2017-08-22 00:27:57 +0200 | [diff] [blame] | 1 | #ifndef __PACKET_IO__ |
2 | #define __PACKET_IO__ | ||||
3 | #include "headers.p4" | ||||
4 | #include "parser.p4" | ||||
5 | |||||
Carmelo Cascone | f2ac720 | 2017-09-08 00:57:44 +0200 | [diff] [blame^] | 6 | action _process_packet_out() { |
Carmelo Cascone | 16de6db | 2017-08-22 00:27:57 +0200 | [diff] [blame] | 7 | modify_field(EGR_PORT_FIELD, packet_out_hdr.egress_port); |
8 | remove_header(packet_out_hdr); | ||||
9 | } | ||||
10 | |||||
Carmelo Cascone | f2ac720 | 2017-09-08 00:57:44 +0200 | [diff] [blame^] | 11 | table process_packet_out_table { |
Carmelo Cascone | 16de6db | 2017-08-22 00:27:57 +0200 | [diff] [blame] | 12 | actions { |
Carmelo Cascone | f2ac720 | 2017-09-08 00:57:44 +0200 | [diff] [blame^] | 13 | _process_packet_out; |
Carmelo Cascone | 16de6db | 2017-08-22 00:27:57 +0200 | [diff] [blame] | 14 | } |
Carmelo Cascone | f2ac720 | 2017-09-08 00:57:44 +0200 | [diff] [blame^] | 15 | default_action: _process_packet_out(); |
Carmelo Cascone | 16de6db | 2017-08-22 00:27:57 +0200 | [diff] [blame] | 16 | } |
17 | |||||
Carmelo Cascone | f2ac720 | 2017-09-08 00:57:44 +0200 | [diff] [blame^] | 18 | control ingress_pkt_io_control { |
Carmelo Cascone | 16de6db | 2017-08-22 00:27:57 +0200 | [diff] [blame] | 19 | if (valid(packet_out_hdr)) { |
Carmelo Cascone | f2ac720 | 2017-09-08 00:57:44 +0200 | [diff] [blame^] | 20 | apply(process_packet_out_table); |
Carmelo Cascone | 16de6db | 2017-08-22 00:27:57 +0200 | [diff] [blame] | 21 | } |
22 | } | ||||
23 | |||||
24 | #endif |