X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Fvpp_bier.py;h=6e087a8ee0bbf0ddcd3bd93931c0cc927c459efd;hb=097fa66b9;hp=ef9a9ab75ecbf4672e728fee45f09ae5f9efeeda;hpb=f051072f8518097cbce1a8a20510c4e43cb7167c;p=vpp.git diff --git a/test/vpp_bier.py b/test/vpp_bier.py index ef9a9ab75ec..6e087a8ee0b 100644 --- a/test/vpp_bier.py +++ b/test/vpp_bier.py @@ -4,7 +4,7 @@ import socket from vpp_object import VppObject -from vpp_ip_route import MPLS_LABEL_INVALID, VppRoutePath +from vpp_ip_route import MPLS_LABEL_INVALID, VppRoutePath, VppMplsLabel class BIER_HDR_PAYLOAD: @@ -38,10 +38,10 @@ def find_bier_table(test, bti): def find_bier_route(test, bti, bp): routes = test.vapi.bier_route_dump(bti) for r in routes: - if bti.set_id == r.br_tbl_id.bt_set \ - and bti.sub_domain_id == r.br_tbl_id.bt_sub_domain \ - and bti.hdr_len_id == r.br_tbl_id.bt_hdr_len_id \ - and bp == r.br_bp: + if bti.set_id == r.br_route.br_tbl_id.bt_set \ + and bti.sub_domain_id == r.br_route.br_tbl_id.bt_sub_domain \ + and bti.hdr_len_id == r.br_route.br_tbl_id.bt_hdr_len_id \ + and bp == r.br_route.br_bp: return True return False @@ -97,9 +97,6 @@ class VppBierTable(VppObject): self.mpls_label, is_add=0) - def __str__(self): - return self.object_id() - def object_id(self): return "bier-table;[%d:%d:%d]" % (self.id.set_id, self.id.sub_domain_id, @@ -119,12 +116,15 @@ class VppBierRoute(VppObject): self.tbl_id = tbl_id self.bp = bp self.paths = paths + self.encoded_paths = [] + for path in self.paths: + self.encoded_paths.append(path.encode()) def add_vpp_config(self): self._test.vapi.bier_route_add_del( self.tbl_id, self.bp, - self.paths, + self.encoded_paths, is_add=1) self._test.registry.register(self, self._test.logger) @@ -132,11 +132,49 @@ class VppBierRoute(VppObject): self._test.vapi.bier_route_add_del( self.tbl_id, self.bp, - self.paths, + self.encoded_paths, is_add=0) - def __str__(self): - return self.object_id() + def update_paths(self, paths): + self.paths = paths + self.encoded_paths = [] + for path in self.paths: + self.encoded_paths.append(path.encode()) + self._test.vapi.bier_route_add_del( + self.tbl_id, + self.bp, + self.encoded_paths, + is_replace=1) + + def add_path(self, path): + self.encoded_paths.append(path.encode()) + self._test.vapi.bier_route_add_del( + self.tbl_id, + self.bp, + [path.encode()], + is_add=1, + is_replace=0) + self.paths.append(path) + self._test.registry.register(self, self._test.logger) + + def remove_path(self, path): + self.encoded_paths.remove(path.encode()) + self._test.vapi.bier_route_add_del( + self.tbl_id, + self.bp, + [path.encode()], + is_add=0, + is_replace=0) + self.paths.remove(path) + + def remove_all_paths(self): + self._test.vapi.bier_route_add_del( + self.tbl_id, + self.bp, + [], + is_add=0, + is_replace=1) + self.paths = [] def object_id(self): return "bier-route;[%d:%d:%d:%d]" % (self.tbl_id.set_id, @@ -171,9 +209,6 @@ class VppBierImp(VppObject): self._test.vapi.bier_imp_del( self.bi_index) - def __str__(self): - return self.object_id() - def object_id(self): return "bier-imp;[%d:%d:%d:%d]" % (self.tbl_id.set_id, self.tbl_id.sub_domain_id, @@ -204,9 +239,6 @@ class VppBierDispTable(VppObject): self.id, is_add=0) - def __str__(self): - return self.object_id() - def object_id(self): return "bier-disp-table;[%d]" % (self.id) @@ -253,9 +285,6 @@ class VppBierDispEntry(VppObject): self.rpf_id, is_add=0) - def __str__(self): - return self.object_id() - def object_id(self): return "bier-disp-entry;[%d:%d]" % (self.tbl_id, self.bp)