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/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;
+        }
     }
 }