Skip to content

Commit

Permalink
(Re)Merge branch 'dev/common' for v1.3
Browse files Browse the repository at this point in the history
  • Loading branch information
Dumitru Ceara committed Oct 7, 2016
2 parents 7d6ee10 + 74ad8ea commit bc8b72c
Showing 1 changed file with 61 additions and 17 deletions.
78 changes: 61 additions & 17 deletions ovf/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ change the “if (true)” to “if (false)”.

**NOTE:** The following patch was applied to get DPDK working in combination
with the VMware virtual e1000 driver,
http://dpdk.org/dev/patchwork/patch/945/.
[http://dpdk.org/dev/patchwork/patch/945/](http://dpdk.org/dev/patchwork/patch/945/).

The examples below assume interface eth0 is used for management, and eth1
and eth2 need to be connected back to back in your hypervisor.
Expand All @@ -49,7 +49,7 @@ warp17@warp17:~$
Now we need to setup the two interfaces eth1 and eth2 to be used by DPDK:

```
warp17@warp17:~$ $RTE_SDK/tools/dpdk_nic_bind.py --status
warp17@warp17:~$ $RTE_SDK/tools/dpdk-devbind.py --status
Network devices using DPDK-compatible driver
============================================
Expand All @@ -67,12 +67,12 @@ Other network devices
```

```
warp17@warp17:~$ sudo $RTE_SDK/tools/dpdk_nic_bind.py -b igb_uio 02:02.0
warp17@warp17:~$ sudo $RTE_SDK/tools/dpdk_nic_bind.py -b igb_uio 02:03.0
warp17@warp17:~$ sudo $RTE_SDK/tools/dpdk-devbind.py -b igb_uio 02:02.0
warp17@warp17:~$ sudo $RTE_SDK/tools/dpdk-devbind.py -b igb_uio 02:03.0
```

```
warp17@warp17:~$ $RTE_SDK/tools/dpdk_nic_bind.py --status
warp17@warp17:~$ $RTE_SDK/tools/dpdk-devbind.py --status
Network devices using DPDK-compatible driver
============================================
Expand Down Expand Up @@ -141,26 +141,67 @@ sudo ip link set tap01 master warp_bridge
sudo ip link set tap02 master warp_bridge
```

The user mode stack used by qemu forcefully replies with a `TCP RST` to all
`TCP SYN` traffic including the traffic generated by WARP17 on the tap
interfaces. The easiest way to avoid that is to configure a static IP for
management of the VM (or to always use the VNC session provided by qemu).

Setup a management bridge for connecting to the VM:

```
sudo ip link add warp_mgmt type bridge
sudo ip tuntap add tapm mode tap user root
sudo ip link set tapm up
sudo ip link set tapm master warp_mgmt
sudo ip link set warp_mgmt up
sudo ip addr add 42.42.42.1/24 dev warp_mgmt
```

Start the VM:

```
sudo qemu-system-x86_64 -enable-kvm -cpu host -smp 4 -hda WARP17-disk1.qcow2 \
-m 16384 -display vnc=:0 -redir tcp:2222::22 \
-net nic,model=e1000 -net user,name=mynet0 \
-m 16384 -display vnc=:0 \
-net nic,model=e1000,macaddr=DE:AD:1E:00:01:01 \
-net tap,ifname=tapm,script=no,downscript=no \
-net nic,model=e1000,macaddr=DE:AD:1E:00:00:01 \
-net tap,ifname=tap01,script=no,downscript=no \
-net nic,model=e1000,macaddr=DE:AD:1E:00:00:02 \
-net tap,ifname=tap02,script=no,downscript=no
```

**NOTE:** you can either start a VNC session to your local host, or do
<code>ssh -p 2222 warp17@localhost</code> to connect to the VM.
Connect through VNC to the VM in order to configure a static management IP:

```
vncviewer :0
```

In the VM change the configuration for interface `eth0` in
`/etc/network/interfaces` to:

```
auto eth0
iface eth0 inet static
address 42.42.42.2
netmask 255.255.255.0
gateway 42.42.42.1
```

Restart the networking service in the VM:

```
warp17@warp17:~$ sudo service networking restart
```

**NOTE:** From now on you can either start a VNC session to your local host, or
do <code>ssh warp17@42.42.42.2</code> to connect to the VM.


Now we need to setup the two interfaces eth1 and eth2 to be used by DPDK:

```
warp17@warp17:~$ $RTE_SDK/tools/dpdk_nic_bind.py --status
warp17@warp17:~$ $RTE_SDK/tools/dpdk-devbind.py --status
Network devices using DPDK-compatible driver
============================================
Expand All @@ -178,12 +219,12 @@ Other network devices
```

```
warp17@warp17:~$ sudo $RTE_SDK/tools/dpdk_nic_bind.py -b igb_uio 00:04.0
warp17@warp17:~$ sudo $RTE_SDK/tools/dpdk_nic_bind.py -b igb_uio 00:05.0
warp17@warp17:~$ sudo $RTE_SDK/tools/dpdk-devbind.py -b igb_uio 00:04.0
warp17@warp17:~$ sudo $RTE_SDK/tools/dpdk-devbind.py -b igb_uio 00:05.0
```

```
warp17@warp17:~$ $RTE_SDK/tools/dpdk_nic_bind.py --status
warp17@warp17:~$ $RTE_SDK/tools/dpdk-devbind.py --status
Network devices using DPDK-compatible driver
Expand Down Expand Up @@ -242,10 +283,13 @@ qemu-system-x86_64 -enable-kvm -cpu host -smp 4 -hda WARP17-disk1.qcow2 -m 16384
-device pci-assign,romfile=,host=82:00.0
```

**NOTE:** From now on you can either start a VNC session to your local host, or
do <code>ssh -p 2222 warp17@localhost</code> to connect to the VM.

Now we need to setup the two PCI interfaces to be used by DPDK:

```
warp17@warp17:~$ $RTE_SDK/tools/dpdk_nic_bind.py --status
warp17@warp17:~$ $RTE_SDK/tools/dpdk-devbind.py --status
Network devices using DPDK-compatible driver
============================================
Expand All @@ -263,12 +307,12 @@ Other network devices
```

```
warp17@warp17:~$ sudo $RTE_SDK/tools/dpdk_nic_bind.py -b igb_uio 00:04.0
warp17@warp17:~$ sudo $RTE_SDK/tools/dpdk_nic_bind.py -b igb_uio 00:05.0
warp17@warp17:~$ sudo $RTE_SDK/tools/dpdk-devbind.py -b igb_uio 00:04.0
warp17@warp17:~$ sudo $RTE_SDK/tools/dpdk-devbind.py -b igb_uio 00:05.0
```

```
warp17@warp17:~$ $RTE_SDK/tools/dpdk_nic_bind.py --status
warp17@warp17:~$ $RTE_SDK/tools/dpdk-devbind.py --status
Network devices using DPDK-compatible driver
============================================
Expand Down

0 comments on commit bc8b72c

Please sign in to comment.