diff options
Diffstat (limited to 'src/vlib/node.h')
-rw-r--r-- | src/vlib/node.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/vlib/node.h b/src/vlib/node.h index fb2a83bc400..f41eb60aa2c 100644 --- a/src/vlib/node.h +++ b/src/vlib/node.h @@ -57,6 +57,17 @@ typedef uword (vlib_node_function_t) (struct vlib_main_t * vm, typedef enum { + VLIB_NODE_PROTO_HINT_NONE = 0, + VLIB_NODE_PROTO_HINT_ETHERNET, + VLIB_NODE_PROTO_HINT_IP4, + VLIB_NODE_PROTO_HINT_IP6, + VLIB_NODE_PROTO_HINT_TCP, + VLIB_NODE_PROTO_HINT_UDP, + VLIB_NODE_N_PROTO_HINTS, +} vlib_node_proto_hint_t; + +typedef enum +{ /* An internal node on the call graph (could be output). */ VLIB_NODE_TYPE_INTERNAL, @@ -134,6 +145,9 @@ typedef struct _vlib_node_registration /* Node flags. */ u16 flags; + /* protocol at b->data[b->current_data] upon entry to the dispatch fn */ + u8 protocol_hint; + /* Size of scalar and vector arguments in bytes. */ u16 scalar_size, vector_size; @@ -320,6 +334,9 @@ typedef struct vlib_node_t /* Number of bytes of run time data. */ u8 runtime_data_bytes; + /* protocol at b->data[b->current_data] upon entry to the dispatch fn */ + u8 protocol_hint; + /* Number of error codes used by this node. */ u16 n_errors; |