aboutsummaryrefslogtreecommitdiffstats
path: root/framework
diff options
context:
space:
mode:
authorAshlee Young <ashlee@wildernessvoice.com>2015-11-14 09:53:10 -0800
committerAshlee Young <ashlee@wildernessvoice.com>2015-11-14 09:53:10 -0800
commit5b2eaca070f4282ad32f620aaf479395fb6654de (patch)
treea45c0d7974fb6ea93270e56731ce1d6a5c81e204 /framework
parent55d4a1b251e1b2e36b9036b3d0b033abc38acbec (diff)
ONOS commit 4832784ed4032361f4c776b79a1de9c013c41226
Change-Id: I710a23a1485c08f006d3ead26f5281c2d1a986e4 Signed-off-by: Ashlee Young <ashlee@wildernessvoice.com>
Diffstat (limited to 'framework')
-rw-r--r--framework/src/onos/apps/olt/src/main/java/org/onosproject/olt/AccessDeviceConfig.java14
-rw-r--r--framework/src/onos/apps/olt/src/main/java/org/onosproject/olt/AccessDeviceData.java18
-rw-r--r--framework/src/onos/apps/olt/src/main/java/org/onosproject/olt/OLT.java11
3 files changed, 36 insertions, 7 deletions
diff --git a/framework/src/onos/apps/olt/src/main/java/org/onosproject/olt/AccessDeviceConfig.java b/framework/src/onos/apps/olt/src/main/java/org/onosproject/olt/AccessDeviceConfig.java
index 90ed7403..07b73c84 100644
--- a/framework/src/onos/apps/olt/src/main/java/org/onosproject/olt/AccessDeviceConfig.java
+++ b/framework/src/onos/apps/olt/src/main/java/org/onosproject/olt/AccessDeviceConfig.java
@@ -16,11 +16,14 @@
package org.onosproject.olt;
+import com.fasterxml.jackson.databind.JsonNode;
import org.onlab.packet.VlanId;
import org.onosproject.net.DeviceId;
import org.onosproject.net.PortNumber;
import org.onosproject.net.config.Config;
+import java.util.Optional;
+
/**
* Config object for access device data.
*/
@@ -28,6 +31,7 @@ public class AccessDeviceConfig extends Config<DeviceId> {
private static final String UPLINK = "uplink";
private static final String VLAN = "vlan";
+ private static final String DEFAULT_VLAN = "defaultVlan";
/**
* Gets the access device configuration for this device.
@@ -37,7 +41,15 @@ public class AccessDeviceConfig extends Config<DeviceId> {
public AccessDeviceData getOlt() {
PortNumber uplink = PortNumber.portNumber(node.path(UPLINK).asText());
VlanId vlan = VlanId.vlanId(Short.parseShort(node.path(VLAN).asText()));
+ JsonNode defaultVlanNode = node.path(DEFAULT_VLAN);
+
+ Optional<VlanId> defaultVlan;
+ if (defaultVlanNode.isMissingNode()) {
+ defaultVlan = Optional.empty();
+ } else {
+ defaultVlan = Optional.of(VlanId.vlanId(Short.parseShort(defaultVlanNode.asText())));
+ }
- return new AccessDeviceData(subject(), uplink, vlan);
+ return new AccessDeviceData(subject(), uplink, vlan, defaultVlan);
}
}
diff --git a/framework/src/onos/apps/olt/src/main/java/org/onosproject/olt/AccessDeviceData.java b/framework/src/onos/apps/olt/src/main/java/org/onosproject/olt/AccessDeviceData.java
index f7e40e30..18b5e99f 100644
--- a/framework/src/onos/apps/olt/src/main/java/org/onosproject/olt/AccessDeviceData.java
+++ b/framework/src/onos/apps/olt/src/main/java/org/onosproject/olt/AccessDeviceData.java
@@ -20,6 +20,8 @@ import org.onlab.packet.VlanId;
import org.onosproject.net.DeviceId;
import org.onosproject.net.PortNumber;
+import java.util.Optional;
+
import static com.google.common.base.Preconditions.checkNotNull;
/**
@@ -33,6 +35,7 @@ public class AccessDeviceData {
private final DeviceId deviceId;
private final PortNumber uplink;
private final VlanId vlan;
+ private final Optional<VlanId> defaultVlan;
/**
* Class constructor.
@@ -41,10 +44,12 @@ public class AccessDeviceData {
* @param uplink uplink port number
* @param vlan device VLAN ID
*/
- public AccessDeviceData(DeviceId deviceId, PortNumber uplink, VlanId vlan) {
+ public AccessDeviceData(DeviceId deviceId, PortNumber uplink, VlanId vlan,
+ Optional<VlanId> defaultVlan) {
this.deviceId = checkNotNull(deviceId, DEVICE_ID_MISSING);
this.uplink = checkNotNull(uplink, UPLINK_MISSING);
this.vlan = checkNotNull(vlan, VLAN_MISSING);
+ this.defaultVlan = checkNotNull(defaultVlan);
}
/**
@@ -68,9 +73,18 @@ public class AccessDeviceData {
/**
* Retrieves the VLAN ID assigned to the device.
*
- * @return vlan ID
+ * @return VLAN ID
*/
public VlanId vlan() {
return vlan;
}
+
+ /**
+ * Retrieves the default VLAN ID that will be used for this device.
+ *
+ * @return default VLAN ID
+ */
+ public Optional<VlanId> defaultVlan() {
+ return defaultVlan;
+ }
}
diff --git a/framework/src/onos/apps/olt/src/main/java/org/onosproject/olt/OLT.java b/framework/src/onos/apps/olt/src/main/java/org/onosproject/olt/OLT.java
index 9aa8865a..d5d7d277 100644
--- a/framework/src/onos/apps/olt/src/main/java/org/onosproject/olt/OLT.java
+++ b/framework/src/onos/apps/olt/src/main/java/org/onosproject/olt/OLT.java
@@ -52,6 +52,7 @@ import org.slf4j.Logger;
import java.util.Dictionary;
import java.util.Map;
+import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
import static org.slf4j.LoggerFactory.getLogger;
@@ -247,15 +248,17 @@ public class OLT implements AccessDeviceService {
return;
}
- provisionVlans(olt.deviceId(), olt.uplink(), port.port(), vlan, olt.vlan());
+ provisionVlans(olt.deviceId(), olt.uplink(), port.port(), vlan, olt.vlan(),
+ olt.defaultVlan());
}
private void provisionVlans(DeviceId deviceId, PortNumber uplinkPort,
PortNumber subscriberPort,
- VlanId subscriberVlan, VlanId deviceVlan) {
+ VlanId subscriberVlan, VlanId deviceVlan,
+ Optional<VlanId> defaultVlan) {
TrafficSelector upstream = DefaultTrafficSelector.builder()
- .matchVlanId(DEFAULT_VLAN)
+ .matchVlanId((defaultVlan.isPresent()) ? defaultVlan.get() : DEFAULT_VLAN)
.matchInPort(subscriberPort)
.build();
@@ -273,7 +276,7 @@ public class OLT implements AccessDeviceService {
TrafficTreatment downstreamTreatment = DefaultTrafficTreatment.builder()
.popVlan()
- .setVlanId(DEFAULT_VLAN)
+ .setVlanId((defaultVlan.isPresent()) ? defaultVlan.get() : DEFAULT_VLAN)
.setOutput(subscriberPort)
.build();
480' href='#n480'>480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523