.. _vhost03: Bridge the Interfaces --------------------- To connect the 2 interfaces we put them on an L2 bridge. Use the "set interface l2 bridge" command. .. code-block:: console 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 :ref:`setintstate` command. .. code-block:: console 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. .. code-block:: console $ 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. .. code-block:: console 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#