Trivial: Clean up some typos.
[vpp.git] / src / vnet / buffer.h
index e785145..2a6feb5 100644 (file)
@@ -51,7 +51,7 @@
   _( 3, VLAN_2_DEEP, "vlan-2-deep")                    \
   _( 4, VLAN_1_DEEP, "vlan-1-deep")                    \
   _( 5, SPAN_CLONE, "span-clone")                      \
-  _( 6, HANDOFF_NEXT_VALID, "handoff-next-valid")      \
+  _( 6, LOOP_COUNTER_VALID, 0)                          \
   _( 7, LOCALLY_ORIGINATED, "local")                   \
   _( 8, IS_IP4, "ip4")                                 \
   _( 9, IS_IP6, "ip6")                                 \
@@ -85,12 +85,9 @@ enum
 
 #define foreach_buffer_opaque_union_subtype     \
 _(ip)                                           \
-_(swt)                                          \
 _(l2)                                           \
 _(l2t)                                          \
-_(gre)                                          \
 _(l2_classify)                                  \
-_(handoff)                                      \
 _(policer)                                      \
 _(ipsec)                                       \
 _(map)                                         \
@@ -116,7 +113,8 @@ typedef struct
   i16 l2_hdr_offset;
   i16 l3_hdr_offset;
   i16 l4_hdr_offset;
-  u16 dont_waste_me;
+  u8 feature_arc_index;
+  u8 dont_waste_me;
 
   union
   {
@@ -161,15 +159,24 @@ typedef struct
        } icmp;
 
        /* reassembly */
-       struct
+       union
        {
-         u16 fragment_first;
-         u16 fragment_last;
-         u16 range_first;
-         u16 range_last;
-         u32 next_range_bi;
-         u16 ip6_frag_hdr_offset;
-         u16 estimated_mtu;
+         /* in/out variables */
+         struct
+         {
+           u32 next_index;     /* index of next node - ignored if "feature" node */
+           u16 estimated_mtu;  /* estimated MTU calculated during reassembly */
+         };
+         /* internal variables used during reassembly */
+         struct
+         {
+           u16 fragment_first;
+           u16 fragment_last;
+           u16 range_first;
+           u16 range_last;
+           u32 next_range_bi;
+           u16 ip6_frag_hdr_offset;
+         };
        } reass;
       };
 
@@ -190,8 +197,8 @@ typedef struct
       /* Rewrite length */
       u32 save_rewrite_length;
       /*
-       * BIER - the nubmer of bytes in the header.
-       *  the len field inthe header is not authoritative. It's the
+       * BIER - the number of bytes in the header.
+       *  the len field in the header is not authoritative. It's the
        * value in the table that counts.
        */
       struct
@@ -200,13 +207,6 @@ typedef struct
       } bier;
     } mpls;
 
-    /* ip4-in-ip6 softwire termination, only valid there */
-    struct
-    {
-      u8 swt_disable;
-      u32 mapping_index;
-    } swt;
-
     /* l2 bridging path, only valid there */
     struct opaque_l2
     {
@@ -226,11 +226,6 @@ typedef struct
       u32 session_index;
     } l2t;
 
-    struct
-    {
-      u32 src, dst;
-    } gre;
-
     /* L2 classify */
     struct
     {
@@ -243,12 +238,6 @@ typedef struct
       u64 hash;
     } l2_classify;
 
-    /* IO - worker thread handoff */
-    struct
-    {
-      u32 next_index;
-    } handoff;
-
     /* vnet policer */
     struct
     {
@@ -308,13 +297,6 @@ typedef struct
       u16 overlay_afi;
     } lisp;
 
-    /* Driver rx feature */
-    struct
-    {
-      u32 saved_next_index;            /**< saved by drivers for short-cut */
-      u16 buffer_advance;
-    } device_input_feat;
-
     /* TCP */
     struct
     {
@@ -353,7 +335,7 @@ typedef struct
 } vnet_buffer_opaque_t;
 
 /*
- * The opaque field of the vlib_buffer_t is intepreted as a
+ * The opaque field of the vlib_buffer_t is interpreted as a
  * vnet_buffer_opaque_t. Hence it should be big enough to accommodate one.
  */
 STATIC_ASSERT (sizeof (vnet_buffer_opaque_t) <=
@@ -376,7 +358,16 @@ typedef struct
     u8 source;
   } qos;
 
-  u8 __unused[2];
+  u8 loop_counter;
+  u8 __unused[1];
+
+  /* Group Based Policy */
+  struct
+  {
+    u8 __unused;
+    u8 flags;
+    u16 src_epg;
+  } gbp;
 
   union
   {
@@ -387,14 +378,19 @@ typedef struct
       u16 *trajectory_trace;
 #endif
     };
-    u32 unused[11];
+    struct
+    {
+      u64 pad[1];
+      u64 pg_replay_timestamp;
+    };
+    u32 unused[10];
   };
 } vnet_buffer_opaque2_t;
 
 #define vnet_buffer2(b) ((vnet_buffer_opaque2_t *) (b)->opaque2)
 
 /*
- * The opaque2 field of the vlib_buffer_t is intepreted as a
+ * The opaque2 field of the vlib_buffer_t is interpreted as a
  * vnet_buffer_opaque2_t. Hence it should be big enough to accommodate one.
  */
 STATIC_ASSERT (sizeof (vnet_buffer_opaque2_t) <=