summaryrefslogtreecommitdiffstats
path: root/src/vlib/node.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/vlib/node.h')
-rw-r--r--src/vlib/node.h17
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;