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:
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
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,
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)
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,
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,
self.id,
is_add=0)
- def __str__(self):
- return self.object_id()
-
def object_id(self):
return "bier-disp-table;[%d]" % (self.id)
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)