This page explains the manual work part when use the FLAT type network for M-CORD 3.0. 

1. Find the mac address of the VM interface with IP address in 103.0.0.0/24 subnet.

    such as: fa:16:3e:be:1b:62

2. Use "ifconfig" to find the tap interface name on compute node though part of the mac address “16:3e:be:1b:62”
ubuntu@aggravating-glove:~$ ifconfig
tap4dc7d35c-46 Link encap:Ethernet  HWaddr fe:16:3e:be:1b:62  
          inet6 addr: fe80::fc16:3eff:febe:1b62/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4420 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:194280 (194.2 KB)  TX bytes:1332 (1.3 KB)

" tap4dc7d35c-46 " is the interface name we need.

3. [optional] Confirm the tap interface is inside br-int (ovs bridge)  
ubuntu@aggravating-glove:~$ sudo ovs-vsctl show
3c083289-e74a-448e-95cf-e9042963c496
    Bridge br-int
        Controller "tcp:10.6.0.1:6654"
            is_connected: true
        fail_mode: secure
        Port br-int
            Interface br-int
        Port "tap61b09bd3-0a"
            Interface "tap61b09bd3-0a"
        Port fabric
            Interface fabric
        Port "tap4dc7d35c-46"
            Interface "tap4dc7d35c-46"
        Port "tap591df4fe-19"
            Interface "tap591df4fe-19"
        Port "tap7d70e3e2-df"
            Interface "tap7d70e3e2-df"
        Port vxlan
            Interface vxlan
                type: vxlan
                options: {key=flow, remote_ip=flow}
        Port "tap48ffe11d-d2"
            Interface "tap48ffe11d-d2"
        Port "tap5aeca5d7-b1"
            Interface "tap5aeca5d7-b1"
    ovs_version: "2.3.2"

4. Remove the "
tap4dc7d35c-46" port from the br-int
ubuntu@aggravating-glove:~$ sudo ovs-vsctl del-port tap4dc7d35c-46

5. Create linux bridge with "brctl" tool
ubuntu@aggravating-glove:~$ sudo brctl show
ubuntu@aggravating-glove:~$ sudo brctl addbr flatbr

6. Find the available 10G interface, and connect it to the Fabric switch. In my case, it is eth3.
7. Add the  eth3 and the VM port to the flatbr.
ubuntu@aggravating-glove:~$ sudo brctl addif flatbr eth3
ubuntu@aggravating-glove:~$ sudo brctl addif flatbr tap4dc7d35c-46

ubuntu@aggravating-glove:~$ sudo brctl addif flatbr eth3

device eth3 is already a member of a bridge; can't enslave it to bridge flatbr.


If you meet the error above, then, you should comment out "bond-master fabric" inside /etc/network/interfaces, and restart the eth3.

auto eth3
iface eth3 inet manual
  #bond-master fabric
ubuntu@aggravating-glove:~$ sudo ifdown eth3
ubuntu@aggravating-glove:~$ sudo ifup eth3
ubuntu@aggravating-glove:~$ sudo brctl addif flatbr eth3

8. Bring the flatbr up
ubuntu@aggravating-glove:~$ sudo ifconfig flatbr up

9. Reconfig the fabric switch https://github.com/opencord/cord/blob/cord-3.0/docs/quickstart_physical.md#post-deployment-configuration-of-the-onos-fabric

   The baremental host such as enodeb should be configed in a same network, which is 103.0.0.x/24.

10. Then reactivate the org.onosproject.segmentrouting
onos> app deactivate org.onosproject.segmentrouting
onos> app activate org.onosproject.segmentrouting

It should work until now. You can try ping between the vm and the baremental host.

In this way, you can create multiple VMs inside a same compute node, and let all the VMs (such as MME, SGW) to ping the baremental host (such as enodeb).