Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions examples/ipsec-acc.p4
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,8 @@ parser MainParserImpl(
packet_in pkt,
out headers_t hdr,
inout main_metadata_t main_meta,
in pna_main_parser_input_metadata_t istd)
in pna_main_parser_input_metadata_t istd,
inout vendor_metadata_t vmeta)
{
bit<1> is_recirc = 0;
bit<2> ipsec_op = 0;
Expand Down Expand Up @@ -436,7 +437,8 @@ control MainControlImpl(
inout headers_t hdr,
inout main_metadata_t main_meta,
in pna_main_input_metadata_t istd,
inout pna_main_output_metadata_t ostd)
inout pna_main_output_metadata_t ostd,
inout vendor_metadata_t vmeta)
{
apply {
if (main_meta.ipsec_decrypt_done == 1) {
Expand All @@ -451,7 +453,8 @@ control MainDeparserImpl(
packet_out pkt,
in headers_t hdr, // from main control
in main_metadata_t user_meta, // from main control
in pna_main_output_metadata_t ostd)
in pna_main_output_metadata_t ostd,
inout vendor_metadata_t vmeta)
{
apply {
pkt.emit(hdr.recirc_header);
Expand Down
9 changes: 6 additions & 3 deletions examples/pna-demo-L2-one-table.p4
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ parser MainParserImpl(
packet_in pkt,
out headers_t hdr,
inout metadata_t meta,
in pna_main_parser_input_metadata_t istd)
in pna_main_parser_input_metadata_t istd,
inout vendor_metadata_t vmeta)
{
state start {
pkt.extract(hdr.eth);
Expand All @@ -59,7 +60,8 @@ control MainControlImpl(
inout headers_t hdr,
inout metadata_t meta,
in pna_main_input_metadata_t istd,
inout pna_main_output_metadata_t ostd)
inout pna_main_output_metadata_t ostd,
inout vendor_metadata_t vmeta)
{
action drop () {
drop_packet();
Expand Down Expand Up @@ -99,7 +101,8 @@ control MainDeparserImpl(
packet_out pkt,
in headers_t hdr,
in metadata_t meta,
in pna_main_output_metadata_t ostd)
in pna_main_output_metadata_t ostd,
inout vendor_metadata_t vmeta)
{
apply {
pkt.emit(hdr.eth);
Expand Down
9 changes: 6 additions & 3 deletions examples/pna-demo-L2-two-tables.p4
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ parser MainParserImpl(
packet_in pkt,
out headers_t hdr,
inout metadata_t meta,
in pna_main_parser_input_metadata_t istd)
in pna_main_parser_input_metadata_t istd,
inout vendor_metadata_t vmeta)
{
state start {
pkt.extract(hdr.eth);
Expand All @@ -59,7 +60,8 @@ control MainControlImpl(
inout headers_t hdr,
inout metadata_t meta,
in pna_main_input_metadata_t istd,
inout pna_main_output_metadata_t ostd)
inout pna_main_output_metadata_t ostd,
inout vendor_metadata_t vmeta)
{
action drop () {
drop_packet();
Expand Down Expand Up @@ -106,7 +108,8 @@ control MainDeparserImpl(
packet_out pkt,
in headers_t hdr,
in metadata_t meta,
in pna_main_output_metadata_t ostd)
in pna_main_output_metadata_t ostd,
inout vendor_metadata_t vmeta)
{
apply {
pkt.emit(hdr.eth);
Expand Down
9 changes: 6 additions & 3 deletions examples/pna-demo-last-forwarding-action-wins.p4
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ parser MainParserImpl(
packet_in pkt,
out headers_t hdr,
inout metadata_t meta,
in pna_main_parser_input_metadata_t istd)
in pna_main_parser_input_metadata_t istd,
inout vendor_metadata_t vmeta)
{
state start {
pkt.extract(hdr.eth);
Expand All @@ -64,7 +65,8 @@ control MainControlImpl(
inout headers_t hdr,
inout metadata_t meta,
in pna_main_input_metadata_t istd,
inout pna_main_output_metadata_t ostd)
inout pna_main_output_metadata_t ostd,
inout vendor_metadata_t vmeta)
{
action my_drop () {
drop_packet();
Expand Down Expand Up @@ -139,7 +141,8 @@ control MainDeparserImpl(
packet_out pkt,
in headers_t hdr,
in metadata_t meta,
in pna_main_output_metadata_t ostd)
in pna_main_output_metadata_t ostd,
inout vendor_metadata_t vmeta)
{
apply {
pkt.emit(hdr.eth);
Expand Down
9 changes: 6 additions & 3 deletions examples/pna-example-tcp-connection-tracking.p4
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,8 @@ parser MainParserImpl(
packet_in pkt,
out headers_t hdr,
inout metadata_t meta,
in pna_main_parser_input_metadata_t istd)
in pna_main_parser_input_metadata_t istd,
inout vendor_metadata_t vmeta)
{
state start {
pkt.extract(hdr.eth);
Expand Down Expand Up @@ -124,7 +125,8 @@ control MainControlImpl(
inout headers_t hdr,
inout metadata_t meta,
in pna_main_input_metadata_t istd,
inout pna_main_output_metadata_t ostd)
inout pna_main_output_metadata_t ostd,
inout vendor_metadata_t vmeta)
{
action drop () {
drop_packet();
Expand Down Expand Up @@ -339,7 +341,8 @@ control MainDeparserImpl(
packet_out pkt,
in headers_t hdr,
in metadata_t meta,
in pna_main_output_metadata_t ostd)
in pna_main_output_metadata_t ostd,
inout vendor_metadata_t vmeta)
{
apply {
pkt.emit(hdr.eth);
Expand Down
9 changes: 6 additions & 3 deletions examples/pna-example-template.p4
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@ parser MainParserImpl(
packet_in pkt,
out headers_t hdr,
inout main_metadata_t main_meta,
in pna_main_parser_input_metadata_t istd)
in pna_main_parser_input_metadata_t istd,
inout vendor_metadata_t vmeta)
{
state start {
pkt.extract(hdr.ethernet);
Expand All @@ -99,7 +100,8 @@ control MainControlImpl(
inout headers_t hdr, // from main parser
inout main_metadata_t user_meta, // from main parser, to "next block"
in pna_main_input_metadata_t istd,
inout pna_main_output_metadata_t ostd)
inout pna_main_output_metadata_t ostd,
inout vendor_metadata_t vmeta)
{
Counter<ByteCounter_t, PortId_t>(NUM_PORTS, PNA_CounterType_t.BYTES)
port_bytes_in;
Expand Down Expand Up @@ -139,7 +141,8 @@ control MainDeparserImpl(
packet_out pkt,
in headers_t hdr, // from main control
in main_metadata_t user_meta, // from main control
in pna_main_output_metadata_t ostd)
in pna_main_output_metadata_t ostd,
inout vendor_metadata_t vmeta)
{
apply {
pkt.emit(hdr.ethernet);
Expand Down
20 changes: 17 additions & 3 deletions pna.p4
Original file line number Diff line number Diff line change
Expand Up @@ -847,26 +847,40 @@ extern T SelectByDirection<T>(
in T from_host_value);


// BEGIN:vendor_metadata_struct
// The contents of this struct are _not_ defined by the PNA
// specification. By design, it is intended to be unique from one
// target device to another. The intent is to be a standard place to
// put intrinsic metadata that vendors wish to make accessible in
// their devices, for which there is not yet general agreement that
// the field should be considered part of the PNA intrinsic metadata.

struct vendor_metadata_t {
}
// END:vendor_metadata_struct


// BEGIN:Programmable_blocks
parser MainParserT<MH, MM>(
packet_in pkt,
out MH main_hdr,
inout MM main_user_meta,
in pna_main_parser_input_metadata_t istd);
in pna_main_parser_input_metadata_t istd,
inout vendor_metadata_t vmeta);

control MainControlT<MH, MM>(
inout MH main_hdr,
inout MM main_user_meta,
in pna_main_input_metadata_t istd,
inout pna_main_output_metadata_t ostd);
inout pna_main_output_metadata_t ostd,
inout vendor_metadata_t vmeta);

control MainDeparserT<MH, MM>(
packet_out pkt,
in MH main_hdr,
in MM main_user_meta,
in pna_main_output_metadata_t ostd);
in pna_main_output_metadata_t ostd,
inout vendor_metadata_t vmeta);

package PNA_NIC<MH, MM>(
MainParserT<MH, MM> main_parser,
Expand Down