Adding pad for reasm vnet_buffer reasm struct sothat adj_index is retained
[vpp.git] / src / vnet / buffer.h
index e785145..2ddea86 100644 (file)
@@ -88,7 +88,6 @@ _(ip)                                           \
 _(swt)                                          \
 _(l2)                                           \
 _(l2t)                                          \
-_(gre)                                          \
 _(l2_classify)                                  \
 _(handoff)                                      \
 _(policer)                                      \
@@ -116,7 +115,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 +161,25 @@ 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;
+         u32 pad[2];           /* do not overlay w/ ip.adj_index[0,1] */
+         /* 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;
       };
 
@@ -226,11 +236,6 @@ typedef struct
       u32 session_index;
     } l2t;
 
-    struct
-    {
-      u32 src, dst;
-    } gre;
-
     /* L2 classify */
     struct
     {
@@ -378,6 +383,12 @@ typedef struct
 
   u8 __unused[2];
 
+  /* Group Based Policy */
+  struct
+  {
+    u32 src_epg;
+  } gbp;
+
   union
   {
     struct
@@ -387,7 +398,12 @@ typedef struct
       u16 *trajectory_trace;
 #endif
     };
-    u32 unused[11];
+    struct
+    {
+      u64 pad[1];
+      u64 pg_replay_timestamp;
+    };
+    u32 unused[10];
   };
 } vnet_buffer_opaque2_t;