Skip to content

Instantly share code, notes, and snippets.

@krsna1729
Last active December 14, 2018 19:12
Show Gist options
  • Save krsna1729/a39d4c1f19ffe33864f65bfcc8831142 to your computer and use it in GitHub Desktop.
Save krsna1729/a39d4c1f19ffe33864f65bfcc8831142 to your computer and use it in GitHub Desktop.
AF_PACKET testing with BESS
s1u = PMDPort(name="s1u", vdev="net_af_packet0,iface=s1u")
sgi = PMDPort(name="sgi", vdev="net_af_packet1,iface=sgi")
s1u_dpdk = PMDPort(name="s1u_dpdk", port_id=0)
sgi_dpdk = PMDPort(name="sgi_dpdk", port_id=1)
PortInc(port=s1u_dpdk.name) -> PortOut(port=s1u.name)
PortInc(port=s1u.name) -> PortOut(port=s1u_dpdk.name)
PortInc(port=sgi_dpdk.name) -> PortOut(port=sgi.name)
PortInc(port=sgi.name) -> PortOut(port=sgi_dpdk.name)
# Bind devices to dpdk
sudo /opt/dpdk/usertools/dpdk-devbind.py -b vfio-pci 05:00.0 05:00.1
# Start BESS
docker run --name bess -itd --rm --cap-add NET_ADMIN \
--device=/dev/vfio/48 --device=/dev/vfio/49 --device=/dev/vfio/vfio \
--ulimit memlock=-1 -v /dev/hugepages:/dev/hugepages \
-v $(pwd)/afpacket.bess:/tmp/afpacket.bess \
ngick8stesting/ngic-bessd-ctl bessd -f
# Setup veths
docker exec bess bash -c "
ip link add l_s1u type veth peer name s1u;
ip link add l_sgi type veth peer name sgi;
ip link set s1u up;
ip link set sgi up;
ip link set l_s1u up;
ip link set l_sgi up;
ip addr add 1.1.1.10/24 dev l_s1u;
ip addr add 2.2.2.10/24 dev l_sgi;
ip route;
"
# Create pipeline
docker exec bess /opt/bessctl/bessctl/bessctl run file /tmp/afpacket.bess
docker exec bess /opt/bessctl/bessctl/bessctl show pipeline
# Stop BESS
docker stop bess
# Create netNS
sudo ip netns add s1u
sudo ip netns add sgi
# Move ports into netNS
sudo ip link set ens785f0 netns s1u up
sudo ip link set ens785f1 netns sgi up
# Setup IP
sudo ip netns exec s1u ip addr add 1.1.1.11/24 dev ens785f0
sudo ip netns exec sgi ip addr add 2.2.2.11/24 dev ens785f1
# Setup default route
sudo ip netns exec s1u ip route add default via 1.1.1.10
sudo ip netns exec sgi ip route add default via 2.2.2.10
# Ping test
sudo ip netns exec s1u ping 2.2.2.10
sudo ip netns exec sgi ping 1.1.1.10
# Delete netNS, will return back the devs
sudo ip netns del s1u
sudo ip netns del sgi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment