Implement component config to enable double tagged host programming
Change-Id: I4b2c113e5ddcfe23f825fb15d053cc2ee48ee9e1
diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
index 292c941..5dc76bc 100644
--- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
+++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
@@ -247,6 +247,10 @@
label = "Enable this to respond to ARP/NDP requests from unknown hosts.")
boolean respondToUnknownHosts = true;
+ @Property(name = "handleDoubleTaggedHosts", boolValue = false,
+ label = "Program flows and groups for double tagged hosts")
+ boolean handleDoubleTaggedHosts = false;
+
ArpHandler arpHandler = null;
IcmpHandler icmpHandler = null;
IpHandler ipHandler = null;
@@ -629,6 +633,19 @@
respondToUnknownHosts = expectRespondToUnknownHosts;
log.info("{} responding to ARPs/NDPs from unknown hosts", respondToUnknownHosts ? "Enabling" : "Disabling");
}
+
+ String strHandleDoubleTaggedHosts = Tools.get(properties, "handleDoubleTaggedHosts");
+ boolean expectHandleDoubleTaggedHosts = Boolean.parseBoolean(strHandleDoubleTaggedHosts);
+ if (expectHandleDoubleTaggedHosts != handleDoubleTaggedHosts) {
+ handleDoubleTaggedHosts = expectHandleDoubleTaggedHosts;
+ log.info("{} programming for double tagged hosts ", handleDoubleTaggedHosts ? "Enabling" : "Disabling");
+
+ if (handleDoubleTaggedHosts) {
+ hostHandler.populateAllDoubleTaggedHost();
+ } else {
+ hostHandler.revokeAllDoubleTaggedHost();
+ }
+ }
}
@Override