Support to enable multicast snooping of ovsdb through bridge desc
Change-Id: Ia14e67ab3a5a734a8a0eaa0b7bdda2fc9429c905
diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/BridgeDescription.java b/core/api/src/main/java/org/onosproject/net/behaviour/BridgeDescription.java
index a3b02a8..5273b87 100644
--- a/core/api/src/main/java/org/onosproject/net/behaviour/BridgeDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/BridgeDescription.java
@@ -104,6 +104,15 @@
Optional<Boolean> disableInBand();
/**
+ * Returns multicast snooping is enabled or not. If set to true, enable multicast
+ * snooping on the bridge.
+ * If it is not set, the multicast snooping is disabled.
+ *
+ * @return true if the multicast snooping is enabled, false otherwise
+ */
+ Optional<Boolean> mcastSnoopingEnable();
+
+ /**
* Returns list of Control Protocol Versions supported on device.
* @return List of Control Protocol Versions enabled on bridge
*/
@@ -178,6 +187,13 @@
Builder disableInBand();
/**
+ * Returns bridge description builder with mcast snooping enabled.
+ *
+ * @return bridge description builder
+ */
+ Builder mcastSnoopingEnable();
+
+ /**
* Builds an immutable bridge description.
*
* @return bridge description
diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/DefaultBridgeDescription.java b/core/api/src/main/java/org/onosproject/net/behaviour/DefaultBridgeDescription.java
index cc0b837..609c71b 100644
--- a/core/api/src/main/java/org/onosproject/net/behaviour/DefaultBridgeDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/DefaultBridgeDescription.java
@@ -41,6 +41,7 @@
private final Optional<String> datapathType;
private final Optional<List<ControlProtocolVersion>> controlProtocols;
private final Optional<Boolean> disableInBand;
+ private final Optional<Boolean> mcastSnoopingEnable;
/* Adds more configurations */
@@ -51,6 +52,7 @@
Optional<String> datapathId,
Optional<String> datapathType,
Optional<Boolean> disableInBand,
+ Optional<Boolean> mcastSnoopingEnable,
Optional<List<ControlProtocolVersion>> controlProtocols) {
this.name = checkNotNull(name);
this.controllers = controllers;
@@ -59,6 +61,7 @@
this.datapathId = datapathId;
this.datapathType = datapathType;
this.disableInBand = disableInBand;
+ this.mcastSnoopingEnable = mcastSnoopingEnable;
this.controlProtocols = controlProtocols;
}
@@ -116,6 +119,11 @@
return disableInBand;
}
+ @Override
+ public Optional<Boolean> mcastSnoopingEnable() {
+ return mcastSnoopingEnable;
+ }
+
/**
* Creates and returns a new builder instance.
*
@@ -135,6 +143,7 @@
private Optional<String> datapathType = Optional.empty();
private Optional<List<ControlProtocolVersion>> controlProtocols = Optional.empty();
private Optional<Boolean> disableInBand = Optional.empty();
+ private Optional<Boolean> mcastSnoopingEnable = Optional.empty();
private Builder() {
}
@@ -147,6 +156,7 @@
datapathId,
datapathType,
disableInBand,
+ mcastSnoopingEnable,
controlProtocols);
}
@@ -200,5 +210,11 @@
this.disableInBand = Optional.of(Boolean.TRUE);
return this;
}
+
+ @Override
+ public BridgeDescription.Builder mcastSnoopingEnable() {
+ this.mcastSnoopingEnable = Optional.of(Boolean.TRUE);
+ return this;
+ }
}
}