aboutsummaryrefslogtreecommitdiffstats
path: root/flowtable/0003-test-scripts.patch
diff options
context:
space:
mode:
Diffstat (limited to 'flowtable/0003-test-scripts.patch')
-rw-r--r--flowtable/0003-test-scripts.patch185
1 files changed, 185 insertions, 0 deletions
diff --git a/flowtable/0003-test-scripts.patch b/flowtable/0003-test-scripts.patch
new file mode 100644
index 0000000..e501561
--- /dev/null
+++ b/flowtable/0003-test-scripts.patch
@@ -0,0 +1,185 @@
+From 344cc48bef87c54a3d7d6c489b56fb1ac513897e Mon Sep 17 00:00:00 2001
+From: Gabriel Ganne <gabriel.ganne@qosmos.com>
+Date: Sat, 17 Sep 2016 10:16:19 +0200
+Subject: [PATCH 3/3] test scripts
+
+Adds small scripts to test both flowtable and portmirroring APIs
+
+Signed-off-by: Gabriel Ganne <gabriel.ganne@qosmos.com>
+Change-Id: I59c6c0860125f8d8f553312fe44a2ed42d0b3e7c
+---
+ ft-test/classifier-env-setup.sh | 24 +++++++++++++++++++++
+ ft-test/classifier-pm.py | 46 +++++++++++++++++++++++++++++++++++++++++
+ ft-test/flowtable-env-setup.sh | 27 ++++++++++++++++++++++++
+ ft-test/flowtable-pm.py | 41 ++++++++++++++++++++++++++++++++++++
+ 4 files changed, 138 insertions(+)
+ create mode 100755 ft-test/classifier-env-setup.sh
+ create mode 100755 ft-test/classifier-pm.py
+ create mode 100755 ft-test/flowtable-env-setup.sh
+ create mode 100755 ft-test/flowtable-pm.py
+
+diff --git a/ft-test/classifier-env-setup.sh b/ft-test/classifier-env-setup.sh
+new file mode 100755
+index 0000000..c930ec5
+--- /dev/null
++++ b/ft-test/classifier-env-setup.sh
+@@ -0,0 +1,24 @@
++#!/bin/bash
++
++for i in `seq 1 3`
++do
++ ip netns delete vpp$i
++ ip netns add vpp$i
++ vppctl tap connect vpp$i
++ vppctl set interface state tap-$(($i - 1)) up
++ ip link set dev vpp$i netns vpp$i
++ ip netns exec vpp$i ip link set vpp$i up
++done
++
++vppctl set interface l2 bridge tap-0 23
++vppctl set interface l2 bridge tap-1 23
++
++ip netns exec vpp1 ip addr add 192.168.0.1/24 dev vpp1
++ip netns exec vpp2 ip addr add 192.168.0.2/24 dev vpp2
++
++vppctl set int l3 tap-2
++vppctl set int ip addr tap-2 192.168.1.1/24
++
++# test
++ip netns exec vpp1 ping -c1 192.168.0.2
++ip netns exec vpp2 ping -c1 192.168.0.1
+diff --git a/ft-test/classifier-pm.py b/ft-test/classifier-pm.py
+new file mode 100755
+index 0000000..4110e24
+--- /dev/null
++++ b/ft-test/classifier-pm.py
+@@ -0,0 +1,46 @@
++#!/bin/env python
++from __future__ import print_function
++
++import vpp_papi as vpp
++
++from vpp_papi.portmirroring import *
++import vpp_papi.portmirroring as pm
++
++if_1_name = 'tap-0'
++if_2_name = 'tap-1'
++if_3_name = 'tap-2'
++
++r = vpp.connect('papi')
++
++if_1_sw_if_index = vpp.sw_interface_dump(1, if_1_name)[0].sw_if_index
++if_2_sw_if_index = vpp.sw_interface_dump(1, if_2_name)[0].sw_if_index
++if_3_sw_if_index = vpp.sw_interface_dump(1, if_3_name)[0].sw_if_index
++
++# add port-mirroring as available classifier next nodes
++r = vpp.add_node_next("l2-input-classify", "pm-in-hit")
++print(r)
++pm_in_hit_idx = r.node_index;
++
++r = vpp.add_node_next("l2-output-classify", "pm-out-hit")
++print(r)
++pm_out_hit_idx = r.node_index;
++
++# configure portmirroring
++# 0 -> classifier, 0 -> add
++r = pm.pm_conf(if_3_sw_if_index, 0, 0)
++print(r)
++
++# add, table_index, nbuckets, memory_size, skip_n_vectors, match_n_vectors, next_table_index, miss_next_index, mask
++cl0 = vpp.classify_add_del_table(1, 0xffffffff, 64, 1024*1024, 0, 1, 0xffffffff, pm_in_hit_idx, '')
++print(cl0)
++cl1 = vpp.classify_add_del_table(1, 0xffffffff, 64, 1024*1024, 0, 1, 0xffffffff, pm_out_hit_idx, '')
++print(cl1)
++
++# input -> 1, output -> 0
++r = vpp.classify_set_interface_l2_tables(if_1_sw_if_index, cl0.new_table_index, 0xffffffff, 0xffffffff, 1)
++print(r)
++r = vpp.classify_set_interface_l2_tables(if_1_sw_if_index, cl1.new_table_index, 0xffffffff, 0xffffffff, 0)
++print(r)
++
++r = vpp.disconnect()
++exit(r)
+diff --git a/ft-test/flowtable-env-setup.sh b/ft-test/flowtable-env-setup.sh
+new file mode 100755
+index 0000000..1584000
+--- /dev/null
++++ b/ft-test/flowtable-env-setup.sh
+@@ -0,0 +1,27 @@
++#!/bin/bash
++
++for i in `seq 1 3`
++do
++ ip netns delete vpp$i
++ ip netns add vpp$i
++ vppctl tap connect vpp$i
++ vppctl set interface state tap-$(($i - 1)) up
++ ip link set dev vpp$i netns vpp$i
++ ip netns exec vpp$i ip link set vpp$i up
++done
++
++vppctl set interface l2 bridge tap-0 23
++vppctl set interface l2 bridge tap-1 23
++
++ip netns exec vpp1 ip addr add 192.168.0.1/24 dev vpp1
++ip netns exec vpp2 ip addr add 192.168.0.2/24 dev vpp2
++ip netns exec vpp3 ip addr add 192.168.1.1/24 dev vpp3
++
++for if in `seq 1 3`
++do
++ ip netns exec vpp$i ifconfig vpp$i mtu 10000
++done
++
++# test
++ip netns exec vpp1 ping -c1 192.168.0.2
++ip netns exec vpp2 ping -c1 192.168.0.1
+diff --git a/ft-test/flowtable-pm.py b/ft-test/flowtable-pm.py
+new file mode 100755
+index 0000000..6907b8f
+--- /dev/null
++++ b/ft-test/flowtable-pm.py
+@@ -0,0 +1,41 @@
++#!/bin/env python
++from __future__ import print_function
++
++import sys
++import vpp_papi as vpp
++
++from portmirroring import *
++portmirroring = sys.modules['portmirroring']
++
++
++from flowtable import *
++flowtable = sys.modules['flowtable']
++
++if_1_name = 'tap-0'
++if_2_name = 'tap-1'
++if_3_name = 'tap-2'
++
++r = vpp.connect('papi')
++
++if_1_sw_if_index = vpp.sw_interface_dump(1, if_1_name)[0].sw_if_index
++if_2_sw_if_index = vpp.sw_interface_dump(1, if_2_name)[0].sw_if_index
++if_3_sw_if_index = vpp.sw_interface_dump(1, if_3_name)[0].sw_if_index
++
++# add port-mirroring as available flowtable next node
++r = vpp.add_node_next("flowtable-process", "pm-in-hit")
++print(r)
++portmirroring_index = r.node_index;
++
++# configure portmirroring
++# 1 = flowtable, 0 = is_add
++r = portmirroring.pm_conf(if_3_sw_if_index, 1, 0)
++print(r)
++
++# hook flowtable from both intfs 1 & 2:
++r = flowtable.flowtable_conf(if_1_sw_if_index, portmirroring_index, 0)
++print(r)
++r = flowtable.flowtable_conf(if_2_sw_if_index, portmirroring_index, 0)
++print(r)
++
++r = vpp.disconnect()
++exit(r)
+--
+2.10.0.rc1.15.g5cb0d5a
+