_(swt) \
_(l2) \
_(l2t) \
-_(gre) \
_(l2_classify) \
_(handoff) \
_(policer) \
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
{
} 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;
};
u32 session_index;
} l2t;
- struct
- {
- u32 src, dst;
- } gre;
-
/* L2 classify */
struct
{
u8 __unused[2];
+ /* Group Based Policy */
+ struct
+ {
+ u32 src_epg;
+ } gbp;
+
union
{
struct
u16 *trajectory_trace;
#endif
};
- u32 unused[11];
+ struct
+ {
+ u64 pad[1];
+ u64 pg_replay_timestamp;
+ };
+ u32 unused[10];
};
} vnet_buffer_opaque2_t;