summaryrefslogtreecommitdiffstats
path: root/vnet/vnet/vxlan/vxlan.h
diff options
context:
space:
mode:
authorEyal Bari <ebari@cisco.com>2016-11-24 19:42:43 +0200
committerJohn Lo <loj@cisco.com>2016-11-30 16:31:32 +0000
commitc5b136004543b9861a203af335d1ce61a976382d (patch)
tree5a4ad365f4086103afc65892a603a78be2ffbef1 /vnet/vnet/vxlan/vxlan.h
parentaff7077d2031545a15efd12e7f65eac723799491 (diff)
VXLAN multicast dst (remote) address support
Added support for multicast vxlan tunnels which are used for bridge domain flooding instead of flooding the all unicast tunnels in the bridge domain. features added: * conditional flooding to some of the BD members - based on existance of multicast tunnel member * added local multicast adjacency - multicast packets are handled as the same as unicast - based on src (unicast) address * refactored some of vxlan tunnel creation code - to unify ip4/6 handling Change-Id: I60cca4124265a8dd4f6b2d6ea8701e52e7c1baa4 Signed-off-by: Eyal Bari <ebari@cisco.com>
Diffstat (limited to 'vnet/vnet/vxlan/vxlan.h')
-rw-r--r--vnet/vnet/vxlan/vxlan.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/vnet/vnet/vxlan/vxlan.h b/vnet/vnet/vxlan/vxlan.h
index e37f09aac99..28ce2a93f22 100644
--- a/vnet/vnet/vxlan/vxlan.h
+++ b/vnet/vnet/vxlan/vxlan.h
@@ -28,6 +28,7 @@
#include <vnet/ip/ip6_packet.h>
#include <vnet/ip/udp.h>
#include <vnet/dpo/dpo.h>
+#include <vnet/adj/adj_types.h>
typedef CLIB_PACKED (struct {
ip4_header_t ip4; /* 20 bytes */
@@ -84,6 +85,8 @@ typedef struct {
ip46_address_t src;
ip46_address_t dst;
+ u32 mcast_sw_if_index;
+
/* The FIB index for src/dst addresses */
u32 encap_fib_index;
@@ -96,8 +99,12 @@ typedef struct {
*/
fib_node_t node;
- /* The FIB entry sourced by the tunnel for its destination prefix */
+ /*
+ * The FIB entry for (depending on VXLAN tunnel is unicast or mcast)
+ * sending unicast VXLAN encap packets or receiving mcast VXLAN packets
+ */
fib_node_index_t fib_entry_index;
+ adj_index_t mcast_adj_index;
/**
* The tunnel is a child of the FIB entry for its desintion. This is
@@ -161,6 +168,7 @@ typedef struct {
* structure, this seems less of abreaking change */
u8 is_ip6;
ip46_address_t src, dst;
+ u32 mcast_sw_if_index;
u32 encap_fib_index;
u32 decap_next_index;
u32 vni;