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)