From 06f37e7ba486c598cf2896c87a82c95b8afe17a4 Mon Sep 17 00:00:00 2001 From: Matej Klotton Date: Thu, 28 Apr 2016 18:15:49 +0200 Subject: CSIT-18: Add GRE tunnel libraries and tests. Change-Id: I91ccd65a26ea1782611bccc3badd91e64366a162 Signed-off-by: Matej Klotton --- resources/libraries/python/InterfaceUtil.py | 35 ++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'resources/libraries/python') diff --git a/resources/libraries/python/InterfaceUtil.py b/resources/libraries/python/InterfaceUtil.py index 6790fb7221..94250fba28 100644 --- a/resources/libraries/python/InterfaceUtil.py +++ b/resources/libraries/python/InterfaceUtil.py @@ -572,7 +572,40 @@ class InterfaceUtil(object): with VatTerminal(node) as vat: vat.vat_terminal_exec_cmd('exec show interfaces') - return '{}.{}'.format(interface, sub_id), sw_subif_index + name = '{}.{}'.format(interface, sub_id) + return name, sw_subif_index + + @staticmethod + def create_gre_tunnel_interface(node, source_ip, destination_ip): + """Create GRE tunnel interface on node. + + :param node: VPP node to add tunnel interface. + :param source_ip: Source of the GRE tunnel. + :param destination_ip: Destination of the GRE tunnel. + :type node: dict + :type source_ip: str + :type destination_ip: str + :return: Name and index of created GRE tunnel interface. + :rtype: tuple + :raises RuntimeError: If unable to create GRE tunnel interface. + """ + output = VatExecutor.cmd_from_template(node, "create_gre.vat", + src=source_ip, + dst=destination_ip) + output = output[0] + + if output["retval"] == 0: + sw_if_index = output["sw_if_index"] + + vat_executor = VatExecutor() + vat_executor.execute_script_json_out("dump_interfaces.vat", node) + interface_dump_json = vat_executor.get_script_stdout() + name = VatJsonUtil.get_interface_name_from_json( + interface_dump_json, sw_if_index) + return name, sw_if_index + else: + raise RuntimeError('Unable to create GRE tunnel on node {}.' + .format(node)) @staticmethod def vpp_create_loopback(node): -- cgit 1.2.3-korg