From 14f06eedf4a8fbdf9444aa154a396116769aa59f Mon Sep 17 00:00:00 2001 From: Andy Fingerhut Date: Mon, 18 Jul 2022 10:57:08 -0400 Subject: [PATCH] Add parameters to main control for Rx and Tx host metadata --- pna.p4 | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/pna.p4 b/pna.p4 index 98c50fe..59ae451 100644 --- a/pna.p4 +++ b/pna.p4 @@ -776,6 +776,16 @@ extern T SelectByDirection( +// Struct to contain vendor-specific metadata fields that can be +// accessed while pakcets are being processed in the main control. +// The definition of the fields and their behavior is completely +// vendor-specific, and this part of the pna.p4 header file is +// expected to be customized by each vendor implementing PNA. + +struct vendor_metadata_t { +} + + // BEGIN:Programmable_blocks control PreControlT( @@ -791,10 +801,13 @@ parser MainParserT( inout MM main_user_meta, in pna_main_parser_input_metadata_t istd); -control MainControlT( +control MainControlT( //in PM pre_user_meta, inout MH main_hdr, inout MM main_user_meta, + inout vendor_metadata_t vmeta, + inout MTX txmeta, + inout MRX rxmeta, in pna_main_input_metadata_t istd, inout pna_main_output_metadata_t ostd); @@ -804,10 +817,10 @@ control MainDeparserT( in MM main_user_meta, in pna_main_output_metadata_t ostd); -package PNA_NIC( +package PNA_NIC( MainParserT main_parser, PreControlT pre_control, - MainControlT main_control, + MainControlT main_control, MainDeparserT main_deparser); // END:Programmable_blocks