summaryrefslogtreecommitdiffstats
path: root/test/vpp_udp_decap.py
diff options
context:
space:
mode:
authorArthur de Kerhor <arthurdekerhor@gmail.com>2021-05-20 11:48:00 +0200
committerFlorin Coras <florin.coras@gmail.com>2021-05-29 18:13:01 +0000
commit8a6f5d394c69eba3bfaddfe36a93d1013cba3ce3 (patch)
tree4adb54d52b2f246fc7d2820fb959e63bbcae7de3 /test/vpp_udp_decap.py
parentb740fdc8ff7f58637524e999d5fe01b8b010810d (diff)
udp: add udp decapsulation
Possibility to register a port via CLI or API to decap incoming UDP packets: - For CLI, a user needs to specify the inner protocol (only MPLS supported for now) - For API, the protocol is specified by index Added unittests Type: feature Change-Id: Ifedd86d8db2e355b7618472554fd67d77a13a4aa Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
Diffstat (limited to 'test/vpp_udp_decap.py')
-rw-r--r--test/vpp_udp_decap.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/vpp_udp_decap.py b/test/vpp_udp_decap.py
new file mode 100644
index 00000000000..2bd03ce75c0
--- /dev/null
+++ b/test/vpp_udp_decap.py
@@ -0,0 +1,35 @@
+#!/usr/bin/env python3
+"""
+ UDP decap objects
+"""
+
+from vpp_object import VppObject
+from socket import inet_pton, inet_ntop, AF_INET, AF_INET6
+
+
+class VppUdpDecap(VppObject):
+
+ def __init__(self,
+ test,
+ is_ip4,
+ dst_port,
+ next_proto):
+ self._test = test
+ self.active = False
+ self.udp_decap = {
+ 'is_ip4': is_ip4,
+ 'port': dst_port,
+ 'next_proto': next_proto
+ }
+
+ def add_vpp_config(self):
+ self._test.vapi.udp_decap_add_del(True, self.udp_decap)
+ self._test.registry.register(self, self._test.logger)
+ self.active = True
+
+ def query_vpp_config(self):
+ return self.active
+
+ def remove_vpp_config(self):
+ self._test.vapi.udp_decap_add_del(False, self.udp_decap)
+ self.active = False