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).