VPP-598: tcp stack initial commit
Change-Id: I49e5ce0aae6e4ff634024387ceaf7dbc432a0351
Signed-off-by: Dave Barach <dave@barachs.net>
Signed-off-by: Florin Coras <fcoras@cisco.com>
diff --git a/src/scripts/vnet/tcp b/src/scripts/vnet/tcp
index a2ee8b2..b9c23c3 100644
--- a/src/scripts/vnet/tcp
+++ b/src/scripts/vnet/tcp
@@ -1,16 +1,18 @@
+loop create
+set int ip address loop0 192.168.1.1/8
+set int state loop0 up
+
packet-generator new {
name x
- limit 1
+ limit 2048
node ip4-input
- size 64-64
+ size 100-100
+ interface loop0
no-recycle
data {
- TCP: 1.2.3.4 -> 5.6.7.8
- TCP: 1234 -> 5678
+ TCP: 192.168.1.2 -> 192.168.1.1
+ TCP: 32415 -> 80
+ SYN
incrementing 100
}
}
-
-tr add pg-input 100
-ip route 5.6.7.8/32 via local
-ip route 1.2.3.4/32 via local
diff --git a/src/scripts/vnet/udp b/src/scripts/vnet/udp
new file mode 100644
index 0000000..7dda1ee
--- /dev/null
+++ b/src/scripts/vnet/udp
@@ -0,0 +1,19 @@
+loop create
+set int ip address loop0 192.168.1.1/8
+set int state loop0 up
+
+packet-generator new {
+ name udp
+ limit 512
+ rate 1e4
+ node ip4-input
+ size 100-100
+ interface loop0
+ no-recycle
+ data {
+ UDP: 192.168.1.2 - 192.168.2.255 -> 192.168.1.1
+ UDP: 4321 -> 1234
+ length 72
+ incrementing 100
+ }
+}
diff --git a/src/scripts/vnet/uri/tcp-setup.sh b/src/scripts/vnet/uri/tcp-setup.sh
new file mode 100755
index 0000000..e0b0158
--- /dev/null
+++ b/src/scripts/vnet/uri/tcp-setup.sh
@@ -0,0 +1,39 @@
+#!/usr/bin/env bash
+
+function topo_setup
+{
+ ip netns add vppns1
+ ip link add veth_vpp1 type veth peer name vpp1
+ ip link set dev vpp1 up
+ ip link set dev veth_vpp1 up netns vppns1
+
+ ip netns exec vppns1 \
+ bash -c "
+ ip link set dev lo up
+ ip addr add 6.0.1.2/24 dev veth_vpp1
+ "
+
+ ethtool --offload vpp1 rx off tx off
+ ip netns exec vppns1 ethtool --offload veth_vpp1 rx off tx off
+
+}
+
+function topo_clean
+{
+ ip link del dev veth_vpp1 &> /dev/null
+ ip netns del vppns1 &> /dev/null
+}
+
+if [ "$1" == "clean" ] ; then
+ topo_clean
+ exit 0
+else
+ topo_setup
+fi
+
+# to test connectivity do:
+# sudo ip netns exec vppns1 telnet 6.0.1.1 1234
+# to push traffic to the server
+# dd if=/dev/zero bs=1024K count=512 | nc 6.0.1.1
+# to listen for incoming connection from vpp
+# nc -l 1234
diff --git a/src/scripts/vnet/uri/tcp_server b/src/scripts/vnet/uri/tcp_server
new file mode 100644
index 0000000..7f5a86d
--- /dev/null
+++ b/src/scripts/vnet/uri/tcp_server
@@ -0,0 +1,4 @@
+create host-interface name vpp1
+set int state host-vpp1 up
+set int ip address host-vpp1 6.0.1.1/24
+trace add af-packet-input 10
diff --git a/src/scripts/vnet/uri/udp b/src/scripts/vnet/uri/udp
new file mode 100644
index 0000000..ca13b83
--- /dev/null
+++ b/src/scripts/vnet/uri/udp
@@ -0,0 +1,19 @@
+loop create
+set int ip address loop0 10.0.0.1/32
+set int state loop0 up
+
+packet-generator new {
+ name udp
+ limit 512
+ rate 1e4
+ node ip4-input
+ size 100-100
+ interface loop0
+ no-recycle
+ data {
+ UDP: 192.168.1.2 - 192.168.2.255 -> 192.168.1.1
+ UDP: 4321 -> 1234
+ length 72
+ incrementing 100
+ }
+}