diff options
author | Neale Ranns <nranns@cisco.com> | 2018-09-28 15:16:14 +0000 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2019-03-28 20:51:32 +0000 |
commit | 76b5649d074ab198cbf5737ac76d21649a61bffd (patch) | |
tree | bb856c9638cb63ead6c00837daad01373551b4e1 /src/vlib/buffer.h | |
parent | 1f4e1cbf576fc6ab4e871ba0603028112074b43b (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.h | 11 |
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]; |