X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FInterfaceUtil.py;h=a16a02fbe8c5416993dab149a403df391143ca25;hp=008d42435c5bdcb24127d5e6e8b546994abed80b;hb=80532e03b9d223407c4b9d2245449dbdc4c03c1b;hpb=2e46c135ffe5e6a3acc1c48b7d32ac18b4665390 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)