diff options
Diffstat (limited to 'resources/libraries/python/InterfaceUtil.py')
-rw-r--r-- | resources/libraries/python/InterfaceUtil.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/resources/libraries/python/InterfaceUtil.py b/resources/libraries/python/InterfaceUtil.py index 008d42435c..a16a02fbe8 100644 --- a/resources/libraries/python/InterfaceUtil.py +++ b/resources/libraries/python/InterfaceUtil.py @@ -793,3 +793,24 @@ class InterfaceUtil(object): with VatTerminal(node) as vat: vat.vat_terminal_exec_cmd_from_template("ip_source_check.vat", interface_name=interface) + + @staticmethod + def assign_interface_to_fib_table(node, interface, table_id): + """Assign VPP interface to specific VRF/FIB table. + + :param node: VPP node where the FIB and interface are located. + :param interface: Interface to be assigned to FIB. + :param table_id: VRF table ID. + :type node: dict + :type interface: str or int + :type table_id: int + """ + if isinstance(interface, basestring): + sw_if_index = Topology.get_interface_sw_index(node, interface) + else: + sw_if_index = interface + + with VatTerminal(node) as vat: + vat.vat_terminal_exec_cmd_from_template("set_fib_to_interface.vat", + sw_index=sw_if_index, + vrf=table_id) |