# Can we recirculate packets to specific pipelines?

**URL:** <https://forum.p4.org/t/can-we-recirculate-packets-to-specific-pipelines/1189>\
**Category:** Uncategorized\
**Created:** [May 17, 2024, 1:30pm UTC](https://forum.p4.org/t/can-we-recirculate-packets-to-specific-pipelines/1189 "2024-05-17T13:30:27Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![canyouhearme](https://avatars.discourse-cdn.com/v4/letter/c/e9c0ed/32.png) [@canyouhearme](https://forum.p4.org/u/canyouhearme)\
**Post date:** [May 17, 2024, 1:30pm UTC](https://forum.p4.org/t/can-we-recirculate-packets-to-specific-pipelines/1189/1 "2024-05-17T13:30:27Z")

</div>

For example, if a packet is in pipeline A. After the egress pipeline A, I would like to recirculate this packet to pipeline B and pipeline C. Is this possible?

---

<div class="post-metadata">

**Author:** ![andyfingerhut](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.p4.org/andyfingerhut/32/17_2.png) [@andyfingerhut](https://forum.p4.org/u/andyfingerhut)\
**Post date:** [May 17, 2024, 3:27pm UTC](https://forum.p4.org/t/can-we-recirculate-packets-to-specific-pipelines/1189/2 "2024-05-17T15:27:14Z")

</div>

If you are asking specifically about Tofino, see below. If you are asking about some other ASIC, then I have no idea, and you should consult the documentation for the device you are considering.

For Tofino, ingress always either drops the packet, or sends one or more packets to the traffic manager. If they are not dropped by the traffic manager, each such packet is destined to exactly one output port.

If that output port is in loopback mode, the packet will go out that port (if egress does not drop it), and then appear as if it arrives as a new packet on that _same_ input port. i.e. if it goes to port X and X is in loopback mode, then it will arrive as an input packet on port X, not some other port.

If all of that makes sense, then hopefully it is clear that the short answer to your question is “no”.

Of course you can recirculate the packet after egress pipeline A, come back on ingress pipeline A, and _then_ send the packet to a different output port, e.g. one in pipeline B that is in loopback mode, and recirculate it again.
