X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_span.py;h=ecefe153706e09472da083c026ae774ad5d9b1c2;hb=59f71132e;hp=021eed831775483e73155b0905b92e7dd16cafec;hpb=2bf8b8154d0e1707fbf8502eb8e85fdda885a8e5;p=vpp.git diff --git a/test/test_span.py b/test/test_span.py index 021eed83177..ecefe153706 100644 --- a/test/test_span.py +++ b/test/test_span.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import unittest @@ -9,10 +9,12 @@ from scapy.layers.vxlan import VXLAN from framework import VppTestCase, VppTestRunner from util import Host, ppp -from vpp_sub_interface import VppDot1QSubint, VppDot1ADSubint -from vpp_gre_interface import VppGreInterface, VppGre6Interface -from vpp_papi_provider import L2_VTR_OP +from vpp_sub_interface import L2_VTR_OP, VppDot1QSubint, VppDot1ADSubint +from vpp_gre_interface import VppGreInterface +from vpp_vxlan_tunnel import VppVxlanTunnel from collections import namedtuple +from vpp_papi import VppEnum + Tag = namedtuple('Tag', ['dot1', 'vlan']) DOT1AD = 0x88A8 @@ -52,28 +54,26 @@ class TestSpan(VppTestCase): i.config_ip4() i.resolve_arp() - cls.vxlan = cls.vapi.vxlan_add_del_tunnel( - src_addr=cls.pg2.local_ip4n, - dst_addr=cls.pg2.remote_ip4n, - vni=1111, - is_add=1) - def setUp(self): super(TestSpan, self).setUp() + self.vxlan = VppVxlanTunnel(self, src=self.pg2.local_ip4, + dst=self.pg2.remote_ip4, vni=1111) + self.vxlan.add_vpp_config() self.reset_packet_infos() def tearDown(self): super(TestSpan, self).tearDown() - if not self.vpp_dead: - self.logger.info(self.vapi.ppcli("show interface span")) + + def show_commands_at_teardown(self): + self.logger.info(self.vapi.ppcli("show interface span")) def xconnect(self, a, b, is_add=1): self.vapi.sw_interface_set_l2_xconnect(a, b, enable=is_add) self.vapi.sw_interface_set_l2_xconnect(b, a, enable=is_add) def bridge(self, sw_if_index, is_add=1): - self.vapi.sw_interface_set_l2_bridge( - sw_if_index, bd_id=self.bd_id, enable=is_add) + self.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=sw_if_index, + bd_id=self.bd_id, enable=is_add) def _remove_tag(self, packet, vlan, tag_type): self.assertEqual(packet.type, tag_type) @@ -144,7 +144,7 @@ class TestSpan(VppTestCase): for i in range(0, self.pkts_per_burst): payload = "span test" - size = packet_sizes[(i / 2) % len(packet_sizes)] + size = packet_sizes[int((i / 2) % len(packet_sizes))] p = (Ether(src=src_if.local_mac, dst=dst_mac) / IP(src=src_if.remote_ip4, dst=dst_if.remote_ip4) / UDP(sport=10000 + src_if.sw_if_index * 1000 + i, dport=1234) / @@ -235,7 +235,7 @@ class TestSpan(VppTestCase): self.sub_if.admin_up() self.vapi.sw_interface_set_flags(self.vxlan.sw_if_index, - admin_up_down=1) + flags=1) self.bridge(self.vxlan.sw_if_index, is_add=1) # Create bi-directional cross-connects between pg0 subif and pg1 @@ -273,8 +273,9 @@ class TestSpan(VppTestCase): gre_if = VppGreInterface(self, self.pg2.local_ip4, self.pg2.remote_ip4, - type=2, - session=543) + session=543, + type=(VppEnum.vl_api_gre_tunnel_type_t. + GRE_API_TUNNEL_TYPE_ERSPAN)) gre_if.add_vpp_config() gre_if.admin_up() @@ -321,7 +322,8 @@ class TestSpan(VppTestCase): gre_if = VppGreInterface(self, self.pg2.local_ip4, self.pg2.remote_ip4, - type=1) + type=(VppEnum.vl_api_gre_tunnel_type_t. + GRE_API_TUNNEL_TYPE_TEB)) gre_if.add_vpp_config() gre_if.admin_up() @@ -526,9 +528,9 @@ class TestSpan(VppTestCase): # Create bi-directional cross-connects between pg0 and pg1 self.vapi.sw_interface_set_l2_bridge( - self.sub_if.sw_if_index, bd_id=99, enable=1) + rx_sw_if_index=self.sub_if.sw_if_index, bd_id=99, enable=1) self.vapi.sw_interface_set_l2_bridge( - self.pg1.sw_if_index, bd_id=99, enable=1) + rx_sw_if_index=self.pg1.sw_if_index, bd_id=99, enable=1) # Create incoming packet streams for packet-generator interfaces pg0_pkts = self.create_stream( @@ -558,9 +560,9 @@ class TestSpan(VppTestCase): self.bridge(self.pg2.sw_if_index, is_add=0) self.vapi.sw_interface_set_l2_bridge( - self.sub_if.sw_if_index, bd_id=99, enable=0) + rx_sw_if_index=self.sub_if.sw_if_index, bd_id=99, enable=0) self.vapi.sw_interface_set_l2_bridge( - self.pg1.sw_if_index, bd_id=99, enable=0) + rx_sw_if_index=self.pg1.sw_if_index, bd_id=99, enable=0) # Disable SPAN on pg0 (mirrored to pg2) self.vapi.sw_interface_span_enable_disable( self.sub_if.sw_if_index, self.pg2.sw_if_index, state=0, is_l2=1)