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 |