aboutsummaryrefslogtreecommitdiffstats
path: root/src/vlib/buffer.h
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2018-09-28 15:16:14 +0000
committerDamjan Marion <dmarion@me.com>2019-03-28 20:51:32 +0000
commit76b5649d074ab198cbf5737ac76d21649a61bffd (patch)
treebb856c9638cb63ead6c00837daad01373551b4e1 /src/vlib/buffer.h
parent1f4e1cbf576fc6ab4e871ba0603028112074b43b (diff)
Punt Infra
A punt/exception path that provides: 1) clients that use the infra 2) clients can create punt reasons 3) clients can register to recieve packets that are punted for a given reason to be sent to the desired node. 4) nodes which punt packets fill in the {reason,protocol} of the buffere (in the meta-data) and send to the new node "punt-dispatch" 5) punt-dispatch sends packets to the registered nodes or drops Change-Id: Ia4f144337f1387cbe585b4f375d0842aefffcde5 Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vlib/buffer.h')
-rw-r--r--src/vlib/buffer.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/vlib/buffer.h b/src/vlib/buffer.h
index 514e73bd7ca..0fd57f5275b 100644
--- a/src/vlib/buffer.h
+++ b/src/vlib/buffer.h
@@ -139,8 +139,15 @@ typedef union
* VLIB_BUFFER_NEXT_PRESENT flag is set. */
u32 next_buffer;
- /** Used by feature subgraph arcs to visit enabled feature nodes */
- u32 current_config_index;
+ /** The following fields can be in a union because once a packet enters
+ * the punt path, it is no longer on a feature arc */
+ union
+ {
+ /** Used by feature subgraph arcs to visit enabled feature nodes */
+ u32 current_config_index;
+ /* the reason the packet once punted */
+ u32 punt_reason;
+ };
/** Opaque data used by sub-graphs for their own purposes. */
u32 opaque[10];