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>
diff --git a/test/vpp_udp_decap.py b/test/vpp_udp_decap.py
new file mode 100644
index 0000000..2bd03ce
--- /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