aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/IPv6Util.py
diff options
context:
space:
mode:
Diffstat (limited to 'resources/libraries/python/IPv6Util.py')
-rw-r--r--resources/libraries/python/IPv6Util.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/resources/libraries/python/IPv6Util.py b/resources/libraries/python/IPv6Util.py
index 519026beae..35ec8d5258 100644
--- a/resources/libraries/python/IPv6Util.py
+++ b/resources/libraries/python/IPv6Util.py
@@ -16,6 +16,8 @@
import re
from resources.libraries.python.ssh import SSH
+from resources.libraries.python.VatExecutor import VatTerminal
+from resources.libraries.python.topology import Topology
class IPv6Util(object):
@@ -106,3 +108,27 @@ class IPv6Util(object):
raise Exception('Node {n} port {p} IPv6 address not found.'.format(
n=node['host'], p=interface))
+
+ @staticmethod
+ def add_ip_neighbor(node, interface, ip_address, mac_address):
+ """Add IP neighbor.
+
+ :param node: VPP node to add ip neighbor.
+ :param interface: Interface name or sw_if_index.
+ :param ip_address: IP address.
+ :param mac_address: MAC address.
+ :type node: dict
+ :type interface: str or int
+ :type ip_address: str
+ :type mac_address: str
+ """
+ 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("add_ip_neighbor.vat",
+ sw_if_index=sw_if_index,
+ ip_address=ip_address,
+ mac_address=mac_address)