Added matching vlan and push, pop and rewrite VLAN ID treatement in Intent add command. Added MPLS intent support for vlan operations
Change-Id: Ia70f13209adecaebde93a6fe7bd07b8e5a21074d
diff --git a/cli/src/main/java/org/onosproject/cli/net/ConnectivityIntentCommand.java b/cli/src/main/java/org/onosproject/cli/net/ConnectivityIntentCommand.java
index 8bc0bc4..d22f147 100644
--- a/cli/src/main/java/org/onosproject/cli/net/ConnectivityIntentCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/ConnectivityIntentCommand.java
@@ -24,6 +24,7 @@
import org.apache.karaf.shell.commands.Option;
import org.onlab.packet.Ip6Address;
import org.onlab.packet.IpAddress;
+import org.onlab.packet.VlanId;
import org.onlab.util.Bandwidth;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.core.ApplicationId;
@@ -61,6 +62,10 @@
required = false, multiValued = false)
private String ethTypeString = null;
+ @Option(name = "-v", aliases = "--vlan", description = "VLAN ID",
+ required = false, multiValued = false)
+ private String vlanString = null;
+
@Option(name = "--ipProto", description = "IP Protocol",
required = false, multiValued = false)
private String ipProtoString = null;
@@ -143,6 +148,17 @@
required = false, multiValued = false)
private String setIpDstString = null;
+ @Option(name = "--setVlan", description = "Rewrite VLAN ID",
+ required = false, multiValued = false)
+ private String setVlan = null;
+
+ @Option(name = "--popVlan", description = "Pop VLAN Tag",
+ required = false, multiValued = false)
+ private boolean popVlan = false;
+
+ @Option(name = "--pushVlan", description = "Push VLAN ID",
+ required = false, multiValued = false)
+ private String pushVlan = null;
// Priorities
@Option(name = "-p", aliases = "--priority", description = "Priority",
@@ -202,6 +218,9 @@
if (ethType != null) {
selectorBuilder.matchEthType(ethType);
}
+ if (!isNullOrEmpty(vlanString)) {
+ selectorBuilder.matchVlanId(VlanId.vlanId(Short.parseShort(vlanString)));
+ }
if (!isNullOrEmpty(srcMacString)) {
selectorBuilder.matchEthSrc(MacAddress.valueOf(srcMacString));
}
@@ -289,6 +308,19 @@
treatmentBuilder.setIpSrc(IpAddress.valueOf(setIpDstString));
emptyTreatment = false;
}
+ if (!isNullOrEmpty(setVlan)) {
+ treatmentBuilder.setVlanId(VlanId.vlanId(Short.parseShort(setVlan)));
+ emptyTreatment = false;
+ }
+ if (popVlan) {
+ treatmentBuilder.popVlan();
+ emptyTreatment = false;
+ }
+ if (!isNullOrEmpty(pushVlan)) {
+ treatmentBuilder.pushVlan();
+ treatmentBuilder.setVlanId(VlanId.vlanId(Short.parseShort(pushVlan)));
+ emptyTreatment = false;
+ }
if (emptyTreatment) {
return DefaultTrafficTreatment.emptyTreatment();