X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Fvpp_udp_encap.py;h=aad87bd591297ff19ad63e223c67766a8aa38fae;hb=282872127;hp=d4daa7430b3da82ef7d1db1cbc930a3ca911d78e;hpb=669d07dc016757b856e1014a415996cf9f0ebc58;p=vpp.git diff --git a/test/vpp_udp_encap.py b/test/vpp_udp_encap.py index d4daa7430b3..aad87bd5912 100644 --- a/test/vpp_udp_encap.py +++ b/test/vpp_udp_encap.py @@ -1,17 +1,22 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 """ UDP encap objects """ -from vpp_object import * +from vpp_object import VppObject from socket import inet_pton, inet_ntop, AF_INET, AF_INET6 -def find_udp_encap(test, id): +def find_udp_encap(test, ue): encaps = test.vapi.udp_encap_dump() for e in encaps: - if id == e.id: + if ue.id == e.udp_encap.id \ + and ue.src_ip == str(e.udp_encap.src_ip) \ + and ue.dst_ip == str(e.udp_encap.dst_ip) \ + and e.udp_encap.dst_port == ue.dst_port \ + and e.udp_encap.src_port == ue.src_port: return True + return False @@ -19,56 +24,39 @@ class VppUdpEncap(VppObject): def __init__(self, test, - id, src_ip, dst_ip, src_port, dst_port, - table_id=0, - is_ip6=0): + table_id=0): self._test = test - self.id = id self.table_id = table_id - self.is_ip6 = is_ip6 self.src_ip_s = src_ip self.dst_ip_s = dst_ip - if is_ip6: - self.src_ip = inet_pton(AF_INET6, src_ip) - self.dst_ip = inet_pton(AF_INET6, dst_ip) - else: - self.src_ip = inet_pton(AF_INET, src_ip) - self.dst_ip = inet_pton(AF_INET, dst_ip) + self.src_ip = src_ip + self.dst_ip = dst_ip self.src_port = src_port self.dst_port = dst_port def add_vpp_config(self): - self._test.vapi.udp_encap_add_del( - self.id, + r = self._test.vapi.udp_encap_add( self.src_ip, self.dst_ip, self.src_port, self.dst_port, - self.table_id, - is_ip6=self.is_ip6, - is_add=1) + self.table_id) + self.id = r.id self._test.registry.register(self, self._test.logger) def remove_vpp_config(self): - self._test.vapi.udp_encap_add_del( - self.id, - self.src_ip, - self.dst_ip, - self.src_port, - self.dst_port, - self.table_id, - is_ip6=self.is_ip6, - is_add=0) + self._test.vapi.udp_encap_del(self.id) def query_vpp_config(self): - return find_udp_encap(self._test, self.id) - - def __str__(self): - return self.object_id() + return find_udp_encap(self._test, self) def object_id(self): return ("udp-encap-%d" % self.id) + + def get_stats(self): + c = self._test.statistics.get_counter("/net/udp-encap") + return c[0][self.id]