aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/InterfaceUtil.py
diff options
context:
space:
mode:
Diffstat (limited to 'resources/libraries/python/InterfaceUtil.py')
-rw-r--r--resources/libraries/python/InterfaceUtil.py21
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)