diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/0x1.json b/TestON/tests/USECASE/SegmentRouting/dependencies/0x1.json
index 8232036..867785a 100755
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/0x1.json
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/0x1.json
@@ -41,6 +41,24 @@
                 "location": "of:0000000000000001/2"
             }
         }
+    },
+    "apps": {
+        "org.onosproject.segmentrouting": {
+          "xconnect": {
+            "of:0000000000000001": [
+              {
+                "vlan": 5,
+                "ports": [3, 4],
+                "name": "OLT 1"
+              },
+              {
+                "vlan": 10,
+                "ports": [3, 5],
+                "name": "OLT 2"
+              }
+            ]
+          }
+        }
     }
 
 }
diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/2x2.json b/TestON/tests/USECASE/SegmentRouting/dependencies/2x2.json
index a5ec00d..d4fa3fb 100755
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/2x2.json
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/2x2.json
@@ -100,5 +100,23 @@
                 "location": "of:0000000000000002/4"
             }
         }
+    },
+    "apps": {
+        "org.onosproject.segmentrouting": {
+          "xconnect": {
+            "of:0000000000000001": [
+              {
+                "vlan": 5,
+                "ports": [5, 6],
+                "name": "OLT 1"
+              },
+              {
+                "vlan": 10,
+                "ports": [5, 7],
+                "name": "OLT 2"
+              }
+            ]
+          }
+        }
     }
 }
diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/4x4.json b/TestON/tests/USECASE/SegmentRouting/dependencies/4x4.json
index 7442359..55f3225 100755
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/4x4.json
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/4x4.json
@@ -196,5 +196,23 @@
                 "location": "of:0000000000000004/6"
             }
         }
+    },
+    "apps": {
+        "org.onosproject.segmentrouting": {
+          "xconnect": {
+            "of:0000000000000001": [
+              {
+                "vlan": 5,
+                "ports": [7, 8],
+                "name": "OLT 1"
+              },
+              {
+                "vlan": 10,
+                "ports": [7, 9],
+                "name": "OLT 2"
+              }
+            ]
+          }
+        }
     }
 }
diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py b/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
index 8565930..a195450 100755
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
@@ -234,11 +234,21 @@
     @staticmethod
     def pingAll( main, tag="", dumpflows=True ):
         main.log.report( "Check full connectivity" )
-        main.step( "Check full connectivity %s" % tag )
-        pa = main.Mininet1.pingall( )
+        main.step("Check IP connectivity %s" %tag)
+        hosts = main.Mininet1.getHosts().keys()
+        vlan10 = [ '%s10' % s for s in [ 'olt', 'vsg' ] ]
+        vlan5 = [ '%s5' % s for s in [ 'olt', 'vsg' ] ]
+        IPHosts = [ host for host in hosts if host not in ( vlan10 + vlan5 ) ]
+        pa = main.Mininet1.pingallHosts(IPHosts)
         utilities.assert_equals( expect=main.TRUE, actual=pa,
-                                 onpass="Full connectivity successfully tested",
-                                 onfail="Full connectivity failed" )
+                                 onpass="IP connectivity successfully tested",
+                                 onfail="IP connectivity failed" )
+        main.step("Check VLAN  connectivity %s" %tag)
+        p1 = main.Mininet1.pingallHosts(vlan5)
+        p2 = main.Mininet1.pingallHosts(vlan10)
+        utilities.assert_equals( expect=main.TRUE, actual=p1&p2,
+                             onpass="Vlan connectivity successfully tested",
+                             onfail="Vlan connectivity failed" )
         if dumpflows:
             main.ONOSbench.dumpFlows( main.ONOSip[ main.active ],
                                       main.logdir, "flowsOn" + tag )
diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/cord_fabric.py b/TestON/tests/USECASE/SegmentRouting/dependencies/cord_fabric.py
index c890177..4f52689 100755
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/cord_fabric.py
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/cord_fabric.py
@@ -5,7 +5,7 @@
 
 from mininet.net import Mininet
 from mininet.topo import Topo
-from mininet.node import RemoteController, UserSwitch, Host
+from mininet.node import RemoteController, UserSwitch, Host, OVSBridge
 from mininet.link import TCLink
 from mininet.log import setLogLevel
 from mininet.cli import CLI
@@ -23,7 +23,6 @@
                        help='number of hosts per leaf switch, default=2' )
     parser.add_option( '--onos', dest='onos', type='int', default=0,
                        help='number of ONOS Instances, default=0, 0 means localhost, 1 will use OC1 and so on' )
-
     (options, args) = parser.parse_args( )
     return options, args
 
@@ -34,32 +33,42 @@
 class LeafAndSpine( Topo ):
     def __init__( self, spine=2, leaf=2, fanout=2, **opts ):
         "Create Leaf and Spine Topo."
-
         Topo.__init__( self, **opts )
-
         # Add spine switches
         spines = { }
+        leafs = { }
         for s in range( spine ):
             spines[ s ] = self.addSwitch( 'spine10%s' % (s + 1),
                                           dpid="00000000010%s" % (s + 1) )
         # Set link speeds to 100Mb/s
         linkopts = dict( bw=100 )
-
         # Add Leaf switches
         for ls in range( leaf ):
-            leafSwitch = self.addSwitch( 'leaf%s' % (ls + 1),
-                                         dpid="00000000000%s" % (1 + ls) )
+            leafs[ ls ] = self.addSwitch( 'leaf%s' % (ls + 1),
+                                          dpid="00000000000%s" % (1 + ls) )
             # Connect leaf to all spines
             for s in range( spine ):
                 switch = spines[ s ]
-                self.addLink( leafSwitch, switch, **linkopts )
+                self.addLink( leafs[ ls ], switch, **linkopts )
             # Add hosts under a leaf, fanout hosts per leaf switch
             for f in range( fanout ):
                 host = self.addHost( 'h%s' % (ls * fanout + f + 1),
                                      cls=IpHost,
                                      ip='10.0.%s.%s/24' % ((ls + 1), (f + 1)),
                                      gateway='10.0.%s.254' % (ls + 1) )
-                self.addLink( host, leafSwitch, **linkopts )
+                self.addLink( host, leafs[ ls ], **linkopts )
+                # Add Xconnect simulation
+        br1 = self.addSwitch( 'br1', cls=OVSBridge )
+        self.addLink( br1, leafs[ 0 ], **linkopts )
+        for vid in [ 5, 10 ]:
+            olt = self.addHost( 'olt%s' % vid, cls=VLANHost, vlan=vid,
+                                ip="10.%s.0.1/24" % vid
+                                , mac="00:00:%02d:00:00:01" % vid )
+            vsg = self.addHost( 'vsg%s' % vid, cls=VLANHost, vlan=vid,
+                                ip="10.%s.0.2/24" % vid
+                                , mac="00:00:%02d:00:00:02" % vid )
+            self.addLink( olt, leafs[ 0 ], **linkopts )
+            self.addLink( vsg, br1, **linkopts )
 
 
 class IpHost( Host ):
@@ -74,6 +83,29 @@
         self.cmd( 'ip route add default via %s' % self.gateway )
 
 
+class VLANHost( Host ):
+    "Host connected to VLAN interface"
+
+    def config( self, vlan=100, **params ):
+        """Configure VLANHost according to (optional) parameters:
+           vlan: VLAN ID for default interface"""
+        r = super( VLANHost, self ).config( **params )
+        intf = self.defaultIntf( )
+        # remove IP from default, "physical" interface
+        self.cmd( 'ifconfig %s inet 0' % intf )
+        intf = self.defaultIntf( )
+        # create VLAN interface
+        self.cmd( 'vconfig add %s %d' % (intf, vlan) )
+        self.cmd( 'ifconfig %s.%d %s' % (intf, vlan, params[ 'ip' ]) )
+        # update the intf name and host's intf map
+        self.cmd( 'ifconfig %s.%d mtu 1480' % (intf, vlan) )
+        newName = '%s.%d' % (intf, vlan)
+        # update the (Mininet) interface to refer to VLAN interface name
+        intf.name = newName
+        # add VLAN interface to host's name to intf map
+        self.nameToIntf[ newName ] = intf
+
+
 def config( opts ):
     spine = opts.spine
     leaf = opts.leaf
@@ -83,9 +115,7 @@
         '127.0.0.1' ]
     topo = LeafAndSpine( spine=spine, leaf=leaf, fanout=fanout )
     net = Mininet( topo=topo, link=TCLink, build=False,
-                   switch=UserSwitch,
-                   controller=None,
-                   autoSetMacs=True )
+                   switch=UserSwitch, controller=None, autoSetMacs=True )
     i = 0
     for ip in controllers:
         net.addController( "c%s" % (i), controller=RemoteController, ip=ip )
