summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2018-10-05 00:42:57 +0200
committerDonald Sharp <sharpd@cumulusnetworks.com>2018-10-12 02:22:19 +0200
commitfbac9605a798444d5845d8dfa179ccb92f33fc0f (patch)
tree7873bc8bf5b56db15ee29655fe0c2b7129ff3c04 /lib
parentMerge pull request #3140 from vishaldhingra/b_2802 (diff)
downloadfrr-fbac9605a798444d5845d8dfa179ccb92f33fc0f.tar.xz
frr-fbac9605a798444d5845d8dfa179ccb92f33fc0f.zip
lib, zebra: Allow the specification of BUM flooding
Allow the modification of whether or not we will allow BUM flooding on the vxlan bridge. To do this allow the upper level protocol to specify via the ZEBRA_VXLAN_FLOOD_CONTROL zapi message. If flooding is disabled then BUM traffic will not be forwarded to other VTEP's. Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com> Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/log.c1
-rw-r--r--lib/vxlan.h9
-rw-r--r--lib/zclient.h1
3 files changed, 11 insertions, 0 deletions
diff --git a/lib/log.c b/lib/log.c
index 2d800baae..10cb2cd8a 100644
--- a/lib/log.c
+++ b/lib/log.c
@@ -980,6 +980,7 @@ static const struct zebra_desc_table command_types[] = {
DESC_ENTRY(ZEBRA_IPSET_DESTROY),
DESC_ENTRY(ZEBRA_IPSET_ENTRY_ADD),
DESC_ENTRY(ZEBRA_IPSET_ENTRY_DELETE),
+ DESC_ENTRY(ZEBRA_VXLAN_FLOOD_CONTROL),
};
#undef DESC_ENTRY
diff --git a/lib/vxlan.h b/lib/vxlan.h
index ba3dbb05c..bcf835453 100644
--- a/lib/vxlan.h
+++ b/lib/vxlan.h
@@ -26,4 +26,13 @@
typedef uint32_t vni_t;
#define VNI_MAX 16777215 /* (2^24 - 1) */
+/* Flooding mechanisms for BUM packets. */
+/* Currently supported mechanisms are head-end (ingress) replication
+ * (which is the default) and no flooding. Future options could be
+ * using PIM-SM, PIM-Bidir etc.
+ */
+enum vxlan_flood_control {
+ VXLAN_FLOOD_HEAD_END_REPL = 0,
+ VXLAN_FLOOD_DISABLED,
+};
#endif /* __VXLAN_H__ */
diff --git a/lib/zclient.h b/lib/zclient.h
index 54f363590..97ebb0811 100644
--- a/lib/zclient.h
+++ b/lib/zclient.h
@@ -155,6 +155,7 @@ typedef enum {
ZEBRA_IPTABLE_ADD,
ZEBRA_IPTABLE_DELETE,
ZEBRA_IPTABLE_NOTIFY_OWNER,
+ ZEBRA_VXLAN_FLOOD_CONTROL,
} zebra_message_types_t;
struct redist_proto {