# Architecture Working Group

**URL:** https://forum.p4.org/c/architecture-working-group/10.md

[Latest](https://forum.p4.org/latest.md) · [Categories](https://forum.p4.org/categories.md)

---

## [About the Architecture Working Group category](https://forum.p4.org/t/about-the-architecture-working-group-category/39)

<div class="topic-metadata">

**Author:** [@judysnow](https://forum.p4.org/u/judysnow)\
**Replies:** 0

</div>

The Architecture Working Group publishes the Portable NIC Architecture (PNA) and Portable Switch Architecture (PSA). PNA repository PSA repository

---

## [\[PNA Spec\] unused data types](https://forum.p4.org/t/pna-spec-unused-data-types/1376)

<div class="topic-metadata">

**Author:** [@MarsonettiHubert](https://forum.p4.org/u/MarsonettiHubert)\
**Replies:** 3\
**Last updated:** [September 24, 2025, 11:20pm UTC](https://forum.p4.org/t/pna-spec-unused-data-types/1376 "2025-09-24T23:20:25Z")

</div>

Hi everyone! I’ve been studying P4 PNA architecture and I found that the FlowId\_t and SecurityAssocId\_t data types are defined in the pna.p4. Howerver, they are not described in the P4 PNA specification. Can you explain …

---

## [When I conducted an attack experiment using bmv2, the TCP congestion control seemed to fail](https://forum.p4.org/t/when-i-conducted-an-attack-experiment-using-bmv2-the-tcp-congestion-control-seemed-to-fail/1373)

<div class="topic-metadata">

**Author:** [@cjb20001108](https://forum.p4.org/u/cjb20001108)\
**Replies:** 2\
**Last updated:** [September 15, 2025, 3:37am UTC](https://forum.p4.org/t/when-i-conducted-an-attack-experiment-using-bmv2-the-tcp-congestion-control-seemed-to-fail/1373 "2025-09-15T03:37:21Z")

</div>

When I was conducting attack experiments using the bmv2 switch and Mininet, I noticed that the TCP congestion control seemed to not work properly. With only Mininet and an OpenFlow switch, the TCP congestion control fun…

---

## [Does PNA or TNA supports Buffering Queuing Engine?](https://forum.p4.org/t/does-pna-or-tna-supports-buffering-queuing-engine/1188)

<div class="topic-metadata">

**Author:** [@ShatakshiMishra](https://forum.p4.org/u/ShatakshiMishra)\
**Replies:** 1\
**Last updated:** [May 15, 2024, 1:35pm UTC](https://forum.p4.org/t/does-pna-or-tna-supports-buffering-queuing-engine/1188 "2024-05-15T13:35:57Z")

</div>

Hii Everyone, I noticed that PSA offers a Buffering Queuing Engine Extern. Is there a similar feature in PNA or TNA that allows us to buffer specific packets? Also, is there any mechanism to signal the buffer to release…

---

## [Packet Replication Engine](https://forum.p4.org/t/packet-replication-engine/1187)

<div class="topic-metadata">

**Author:** [@ShatakshiMishra](https://forum.p4.org/u/ShatakshiMishra)\
**Replies:** 3\
**Last updated:** [May 15, 2024, 1:24pm UTC](https://forum.p4.org/t/packet-replication-engine/1187 "2024-05-15T13:24:16Z")

</div>

What are the differences between the Packet Replication Engine (PRE) extern as implemented in the Portable Switch Architecture (PSA) and the Packet Replication Engine in the Tofino Native Architecture (TNA)? Thankyou.

---

## [Ipsec extern proposal](https://forum.p4.org/t/ipsec-extern-proposal/1186)

<div class="topic-metadata">

**Author:** [@aakashks](https://forum.p4.org/u/aakashks)\
**Replies:** 1\
**Last updated:** [May 13, 2024, 4:38pm UTC](https://forum.p4.org/t/ipsec-extern-proposal/1186 "2024-05-13T16:38:22Z")

</div>

Hi, We(Marvell) are planning to propose an extern definition to ipsec\_accelerator{ } to PNA spec and that seems identical to the ipsec extern already defined in dpdk (p4c/p4include/dpdk/pna.p4 at main · p4lang/p4c · Git…

---

## [Bridging user metadata in NIKSS switch?](https://forum.p4.org/t/bridging-user-metadata-in-nikss-switch/768)

<div class="topic-metadata">

**Author:** [@Faris](https://forum.p4.org/u/Faris)\
**Replies:** 2\
**Last updated:** [May 7, 2024, 7:15pm UTC](https://forum.p4.org/t/bridging-user-metadata-in-nikss-switch/768 "2024-05-07T19:15:25Z")

</div>

trying to bridge the user metadata doesn’t seem to work for the NIKSS switch, I get the following errors when trying to compile the generated C file: simple\_switch.c:531:1: error: expected expression ; ^ simple\_switch.…

---

## [Cascading operations in P4](https://forum.p4.org/t/cascading-operations-in-p4/1182)

<div class="topic-metadata">

**Author:** [@ShatakshiMishra](https://forum.p4.org/u/ShatakshiMishra)\
**Replies:** 2\
**Last updated:** [May 7, 2024, 12:53pm UTC](https://forum.p4.org/t/cascading-operations-in-p4/1182 "2024-05-07T12:53:24Z")

</div>

Hii Everyone. Considering that the target hardware supports multiple inline accelerators like ipsec/tm/frag etc… how can we decide the order of those operations after deparsing is done ? Does the spec defines anything (…

---

## [Interface bound doesn't work](https://forum.p4.org/t/interface-bound-doesnt-work/1145)

<div class="topic-metadata">

**Author:** [@Jared](https://forum.p4.org/u/Jared)\
**Replies:** 6\
**Last updated:** [March 26, 2024, 8:40pm UTC](https://forum.p4.org/t/interface-bound-doesnt-work/1145 "2024-03-26T20:40:27Z")

</div>

I’m trying to implement a P4 switch on Ubuntu PC without mininet(called pc1). I use simple\_switch -i 0@nic0 to bound the bmv2 interface to physical interface, and the P4 program is simple which want to drop all packets. …

---

## [PSA varbit not supported?](https://forum.p4.org/t/psa-varbit-not-supported/760)

<div class="topic-metadata">

**Author:** [@Faris](https://forum.p4.org/u/Faris)\
**Replies:** 6\
**Last updated:** [May 3, 2023, 7:02pm UTC](https://forum.p4.org/t/psa-varbit-not-supported/760 "2023-05-03T19:02:13Z")

</div>

as per the title, I am not able to compile my program for the PSA that includes a header with a varbit field. I am getting the following error. ./include/headers.p4(151): \[–Werror=target-error\] error: Type varbit\<1648\> …

---

## [SDN Switch Architecture](https://forum.p4.org/t/sdn-switch-architecture/722)

<div class="topic-metadata">

**Author:** [@SpecialGuest](https://forum.p4.org/u/SpecialGuest)\
**Replies:** 1\
**Last updated:** [April 6, 2023, 12:32pm UTC](https://forum.p4.org/t/sdn-switch-architecture/722 "2023-04-06T12:32:55Z")

</div>

Hello everyone. I’m glad to be here. The included Figure is from the P4.org introductory presentation. My question is how long does it take for a packet to go through this process? Is the time constant for every packet …

---

## [Is recirculated packet available to all pipelines?](https://forum.p4.org/t/is-recirculated-packet-available-to-all-pipelines/414)

<div class="topic-metadata">

**Author:** [@drobin](https://forum.p4.org/u/drobin)\
**Replies:** 9\
**Last updated:** [July 16, 2022, 9:18pm UTC](https://forum.p4.org/t/is-recirculated-packet-available-to-all-pipelines/414 "2022-07-16T21:18:54Z")

</div>

Assume a P4-supported switch with n pipelines. If we recirculate a packet from a pipeline is it possible to send that recirculated packet to every pipeline?

---

## [Assertion \`data\_size + bytes \<= size' failed](https://forum.p4.org/t/assertion-data-size-bytes-size-failed/416)

<div class="topic-metadata">

**Author:** [@Faris](https://forum.p4.org/u/Faris)\
**Replies:** 1\
**Last updated:** [July 12, 2022, 8:38am UTC](https://forum.p4.org/t/assertion-data-size-bytes-size-failed/416 "2022-07-12T08:38:37Z")

</div>

Hi, my bmv2 switch is receiving a short packet (less than 200 bytes) and then inserting some custom headers into that packet. and when the total length of the modified packet exceeds a certain number (didn’t determine …

---

## [How many pipelines does V1Model have?](https://forum.p4.org/t/how-many-pipelines-does-v1model-have/313)

<div class="topic-metadata">

**Author:** [@HERMITOUO](https://forum.p4.org/u/HERMITOUO)\
**Replies:** 2\
**Last updated:** [May 4, 2022, 5:00am UTC](https://forum.p4.org/t/how-many-pipelines-does-v1model-have/313 "2022-05-04T05:00:14Z")

</div>

Hello. As far as I understand, the Simple\_switch implementation of BMV2 uses the V1Model architecture. However, I only found the documentation on the V1Model syntax, but not the details related to the architecture. I w…

---

## [P4 and Power Saving](https://forum.p4.org/t/p4-and-power-saving/122)

<div class="topic-metadata">

**Author:** [@helbakoury](https://forum.p4.org/u/helbakoury)\
**Replies:** 2\
**Last updated:** [October 17, 2021, 5:43am UTC](https://forum.p4.org/t/p4-and-power-saving/122 "2021-10-17T05:43:40Z")

</div>

How we can use P4 for power saving.

---

## [Obtaining More Accurate Timestamps from simple\_switch Logs for bmV2](https://forum.p4.org/t/obtaining-more-accurate-timestamps-from-simple-switch-logs-for-bmv2/76)

<div class="topic-metadata">

**Author:** [@mharrist](https://forum.p4.org/u/mharrist)\
**Replies:** 3\
**Last updated:** [July 5, 2021, 3:17pm UTC](https://forum.p4.org/t/obtaining-more-accurate-timestamps-from-simple-switch-logs-for-bmv2/76 "2021-07-05T15:17:35Z")

</div>

Hi, Is there any way to get more accurate timestamps for the simple\_switch logs? For example, take a look at the logs below: \[16:24:38.133\] \[bmv2\] \[D\] \[thread 28315\] \[794.0\] \[cxt 0\] Processing packet received on port…

---

## [Number of pipelines for different models](https://forum.p4.org/t/number-of-pipelines-for-different-models/66)

<div class="topic-metadata">

**Author:** [@fabioverdi](https://forum.p4.org/u/fabioverdi)\
**Replies:** 1\
**Last updated:** [June 1, 2021, 2:09pm UTC](https://forum.p4.org/t/number-of-pipelines-for-different-models/66 "2021-06-01T14:09:09Z")

</div>

Hello all, I tried to find this answer through the documentation but didn’t succeed to have a clear answer. The number of pipelines for PSA is 4. This is defined in the specification. However, I am wondering home many …
