Last active
December 14, 2018 19:12
-
-
Save krsna1729/a39d4c1f19ffe33864f65bfcc8831142 to your computer and use it in GitHub Desktop.
AF_PACKET testing with BESS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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