adding iptv provisioning
Change-Id: I11fcc788402793d0bf3ac9d9f03ed77e093d98ad
diff --git a/apps/cordfabric/src/main/java/org/onosproject/cordfabric/CordFabricManager.java b/apps/cordfabric/src/main/java/org/onosproject/cordfabric/CordFabricManager.java
index f3bd96c..ab31aee 100644
--- a/apps/cordfabric/src/main/java/org/onosproject/cordfabric/CordFabricManager.java
+++ b/apps/cordfabric/src/main/java/org/onosproject/cordfabric/CordFabricManager.java
@@ -168,6 +168,8 @@
.withTreatment(down)
.add();
+
+
flowObjectiveService.forward(fabricDeviceId, upCtrl);
flowObjectiveService.forward(fabricDeviceId, downCtrl);
flowObjectiveService.forward(fabricDeviceId, radiusToController);
@@ -181,6 +183,10 @@
removeVlan(vlan.vlan());
+ if (vlan.iptv()) {
+ provisionIPTV();
+ }
+
vlan.ports().forEach(cp -> {
if (vlans.put(vlan.vlan(), cp)) {
addForwarding(vlan.vlan(), cp.deviceId(), cp.port(),
@@ -192,6 +198,46 @@
});
}
+ //FIXME: pass iptv vlan in here.
+ private void provisionIPTV() {
+ TrafficSelector ipTvUp = DefaultTrafficSelector.builder()
+ .matchVlanId(VlanId.vlanId((short) 7))
+ .matchInPort(PortNumber.portNumber(2))
+ .build();
+
+ TrafficTreatment ipTvActUp = DefaultTrafficTreatment.builder()
+ .setOutput(PortNumber.portNumber(7)).build();
+
+ TrafficSelector ipTvDown = DefaultTrafficSelector.builder()
+ .matchVlanId(VlanId.vlanId((short) 7))
+ .matchInPort(PortNumber.portNumber(7))
+ .build();
+
+ TrafficTreatment ipTvActDown = DefaultTrafficTreatment.builder()
+ .setOutput(PortNumber.portNumber(2)).build();
+
+ ForwardingObjective ipTvUpstream = DefaultForwardingObjective.builder()
+ .fromApp(appId)
+ .makePermanent()
+ .withFlag(ForwardingObjective.Flag.VERSATILE)
+ .withPriority(PRIORITY)
+ .withSelector(ipTvUp)
+ .withTreatment(ipTvActUp)
+ .add();
+
+ ForwardingObjective ipTvDownstream = DefaultForwardingObjective.builder()
+ .fromApp(appId)
+ .makePermanent()
+ .withFlag(ForwardingObjective.Flag.VERSATILE)
+ .withPriority(PRIORITY)
+ .withSelector(ipTvDown)
+ .withTreatment(ipTvActDown)
+ .add();
+
+ flowObjectiveService.forward(fabricDeviceId, ipTvUpstream);
+ flowObjectiveService.forward(fabricDeviceId, ipTvDownstream);
+ }
+
@Override
public void removeVlan(VlanId vlanId) {
vlans.removeAll(vlanId)
@@ -202,7 +248,9 @@
public List<FabricVlan> getVlans() {
List<FabricVlan> fVlans = new ArrayList<>();
vlans.keySet().forEach(vlan -> fVlans.add(
- new FabricVlan(vlan, vlans.get(vlan))));
+ //FIXME: Very aweful but will fo for now
+ new FabricVlan(vlan, vlans.get(vlan),
+ vlan.toShort() == 201 ? true : false)));
return fVlans;
}
@@ -217,6 +265,7 @@
private void addForwarding(VlanId vlanId, DeviceId deviceId, PortNumber inPort,
List<PortNumber> outPorts) {
+
TrafficSelector selector = DefaultTrafficSelector.builder()
.matchVlanId(vlanId)
.matchInPort(inPort)