Bridge the Interfaces

To connect the 2 interfaces we put them on an L2 bridge.

Use the “set interface l2 bridge” command.

vpp# set interface l2 bridge VirtualEthernet0/0/0 100
vpp# set interface l2 bridge TenGigabitEthernet86/0/0 100
vpp# show bridge
  BD-ID   Index   BSN  Age(min)  Learning  U-Forwrd  UU-Flood  Flooding  ARP-Term  BVI-Intf
   100      1      0     off        on        on        on        on       off       N/A
vpp# show bridge 100 det
  BD-ID   Index   BSN  Age(min)  Learning  U-Forwrd  UU-Flood  Flooding  ARP-Term  BVI-Intf
   100      1      0     off        on        on        on        on       off       N/A

           Interface           If-idx ISN  SHG  BVI  TxFlood        VLAN-Tag-Rewrite
     VirtualEthernet0/0/0        3     1    0    -      *                 none
   TenGigabitEthernet86/0/0      1     1    0    -      *                 none
vpp# show vhost

Bring the Interfaces Up

We can now bring all the pertinent interfaces up. We can then we will then be able to communicate with the VM from the remote system running Linux.

Bring the interfaces up with Set Interface State command.

vpp# set interface state VirtualEthernet0/0/0 up
vpp# set interface state TenGigabitEthernet86/0/0 up
vpp# sh int
              Name               Idx       State          Counter          Count
TenGigabitEthernet86/0/0          1         up       rx packets                     2
                                                     rx bytes                     180
TenGigabitEthernet86/0/1          2        down
VirtualEthernet0/0/0              3         up       tx packets                     2
                                                     tx bytes                     180
local0                            0        down

Ping from the VM

The remote Linux system has an ip address of “10.0.0.2” we can now reach it from the VM.

Use the “virsh console” command to attach to the VM. “ctrl-D” to exit.

$ virsh console iperf-server3
Connected to domain iperf-server3
Escape character is ^]

Ubuntu 16.04.3 LTS iperfvm ttyS0
.....

root@iperfvm:~# ping 10.0.0.2
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.285 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.154 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.159 ms
64 bytes from 10.0.0.2: icmp_seq=4 ttl=64 time=0.208 ms

On VPP you can now see the packet counts increasing. The packets from the VM are seen as rx packets on VirtualEthernet0/0/0, they are then bridged to TenGigabitEthernet86/0/0 and are seen leaving the system as tx packets. The reverse is true on the way in.

vpp# sh int
              Name               Idx       State          Counter          Count
TenGigabitEthernet86/0/0          1         up       rx packets                    16
                                                     rx bytes                    1476
                                                     tx packets                    14
                                                     tx bytes                    1260
TenGigabitEthernet86/0/1          2        down
VirtualEthernet0/0/0              3         up       rx packets                    14
                                                     rx bytes                    1260
                                                     tx packets                    16
                                                     tx bytes                    1476
local0                            0        down
vpp#