Justin,

Suggest adding vpphost and iperfvpp to different network namespaces.
All that is happening at the moment is the kernel is recognizing it owns both IPs and bypassing everything.

You also need to add vppiperf and vppout to a bridge domain in VPP.

Take a look at VPP bootstrap in vppsb, it does 98% of what you are trying to do here.

https://git.fd.io/vppsb/tree/vpp-bootstrap

Ray K


On 11/12/2017 12:18, Justin Iurman wrote:
Hi everyone,

Just wanted to know if there is already something inside VPP to measure some metrics when 
testing performances of our own plugin ? I know there are some useful info with 
"vppctl show ..." but is it enough/all ?

Actually, based on this link ( 
https://wiki.fd.io/view/VPP/Progressive_VPP_Tutorial#Exercise:_Connecting_two_vpp_instances
 ), I was trying to reproduce the almost-the-same topology combined with iperf. 
Here is how it looks like (hope format doesn't get scratched here):
   _________                                               __________
  |         |    host-vppiperf               iperfvpp     |          |
  |   VPP   |--- 10.10.2.1/24 ----------- 10.10.2.2/24 ---|  SERVER  |
  |_________|                                             |__________|
       |
   host-vppout
  10.10.1.2/24
       |
       |
       |
vpphost (CLIENT)
  10.10.1.1/24

And here is the VPP-topology-building procedure:

###### BEGIN ######
## create vpp and connect it to host
sudo vpp unix { log /tmp/vpp.log cli-listen /run/vpp/cli-vpp.sock } api-segment 
{ prefix vpp } plugins { plugin dpdk_plugin.so { disable } }

# veth interface between host and vpp
sudo ip link add name vppout type veth peer name vpphost
sudo ip link set dev vppout up
sudo ip link set dev vpphost up
sudo ip addr add 10.10.1.1/24 dev vpphost

# host interface between host and vpp
sudo vppctl -s /run/vpp/cli-vpp.sock create host-interface name vppout
sudo vppctl -s /run/vpp/cli-vpp.sock set int state host-vppout up
sudo vppctl -s /run/vpp/cli-vpp.sock set int ip address host-vppout 10.10.1.2/24

## create iperf server and connect it to vpp
sudo ip link add name vppiperf type veth peer name iperfvpp
sudo ip link set dev vppiperf up
sudo ip link set dev iperfvpp up
sudo ip addr add 10.10.2.2/24 dev iperfvpp

sudo vppctl -s /run/vpp/cli-vpp.sock create host-interface name vppiperf
sudo vppctl -s /run/vpp/cli-vpp.sock set int state host-vppiperf up
sudo vppctl -s /run/vpp/cli-vpp.sock set int ip address host-vppiperf 
10.10.2.1/24

#disabled
#sudo ip route add 10.10.2.0/24 via 10.10.1.2
#sudo ip route add 10.10.1.0/24 via 10.10.2.1
###### END ######

When running iperf:

# server bound to iperfvpp (10.10.2.2)
iperf3 -s -B 10.10.2.2 -D
# client
iperf3 -c 10.10.2.2 -B 10.10.1.1 -u -4 -k 10

It works but there is no trace of those packets inside VPP. Note: pings work 
and I'm able to see them inside VPP. What am I missing ? I think I can guess 
what the problem is but still don't know how to solve it. Any tips/help ? 
Thanks !

Justin
_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev


_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to