-typedef CLIB_PACKED(struct {
- /*
- * Key fields: ip src and vxlan vni on incoming VXLAN packet
- * all fields in NET byte order
- */
- union {
- struct {
- u32 src;
- u32 vni; /* shifted left 8 bits */
+/*
+* Key fields: remote ip, vni on incoming VXLAN packet
+* all fields in NET byte order
+*/
+typedef clib_bihash_kv_16_8_t vxlan4_tunnel_key_t;
+
+/*
+* Key fields: remote ip, vni and fib index on incoming VXLAN packet
+* ip, vni fields in NET byte order
+* fib index field in host byte order
+*/
+typedef clib_bihash_kv_24_8_t vxlan6_tunnel_key_t;
+
+typedef union
+{
+ struct
+ {
+ u32 sw_if_index; /* unicast - input interface / mcast - stats interface */
+ union
+ {
+ struct /* unicast action */
+ {
+ u16 next_index;
+ u8 error;
+ };
+ ip4_address_t local_ip; /* used as dst ip for mcast pkts to assign them to unicast tunnel */