X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_dvr.py;h=7a744baf76c5d9606403a5071d56c41a91b931d2;hb=b474380f;hp=e2e960584a6c42c8b80d0561b2ebdaf53c1ab085;hpb=f068c3ed296c49dfbfe17677fc1ad2428fb4e3e4;p=vpp.git diff --git a/test/test_dvr.py b/test/test_dvr.py index e2e960584a6..7a744baf76c 100644 --- a/test/test_dvr.py +++ b/test/test_dvr.py @@ -1,18 +1,14 @@ #!/usr/bin/env python -import random -import socket import unittest from framework import VppTestCase, VppTestRunner -from vpp_sub_interface import VppSubInterface, VppDot1QSubint -from vpp_ip_route import VppIpRoute, VppRoutePath, DpoProto, VppIpMRoute, \ - VppMRoutePath, MRouteEntryFlags, MRouteItfFlags -from vpp_papi_provider import L2_VTR_OP +from vpp_sub_interface import VppDot1QSubint +from vpp_ip_route import VppIpRoute, VppRoutePath +from vpp_papi_provider import L2_VTR_OP, L2_PORT_TYPE from scapy.packet import Raw -from scapy.layers.l2 import Ether, Dot1Q, ARP +from scapy.layers.l2 import Ether, Dot1Q from scapy.layers.inet import IP, UDP -from util import ppp from socket import AF_INET, inet_pton @@ -23,7 +19,7 @@ class TestDVR(VppTestCase): super(TestDVR, self).setUp() self.create_pg_interfaces(range(4)) - self.create_loopback_interfaces(range(1)) + self.create_loopback_interfaces(1) for i in self.pg_interfaces: i.admin_up() @@ -92,7 +88,8 @@ class TestDVR(VppTestCase): self.vapi.sw_interface_set_l2_bridge(self.pg1.sw_if_index, 1) self.vapi.sw_interface_set_l2_bridge(sub_if_on_pg2.sw_if_index, 1) self.vapi.sw_interface_set_l2_bridge(sub_if_on_pg3.sw_if_index, 1) - self.vapi.sw_interface_set_l2_bridge(self.loop0.sw_if_index, 1, bvi=1) + self.vapi.sw_interface_set_l2_bridge(self.loop0.sw_if_index, 1, + port_type=L2_PORT_TYPE.BVI) self.vapi.sw_interface_set_l2_tag_rewrite(sub_if_on_pg2.sw_if_index, L2_VTR_OP.L2_POP_1, @@ -212,7 +209,23 @@ class TestDVR(VppTestCase): self.vapi.sw_interface_set_l2_bridge(sub_if_on_pg3.sw_if_index, 1, enable=0) self.vapi.sw_interface_set_l2_bridge(self.loop0.sw_if_index, - 1, bvi=1, enable=0) + 1, port_type=L2_PORT_TYPE.BVI, + enable=0) + + # + # Do a FIB dump to make sure the paths are correctly reported as DVR + # + routes = self.vapi.ip_fib_dump() + + for r in routes: + if (inet_pton(AF_INET, ip_tag_bridged) == r.address): + self.assertEqual(r.path[0].sw_if_index, + sub_if_on_pg3.sw_if_index) + self.assertEqual(r.path[0].is_dvr, 1) + if (inet_pton(AF_INET, ip_non_tag_bridged) == r.address): + self.assertEqual(r.path[0].sw_if_index, + self.pg1.sw_if_index) + self.assertEqual(r.path[0].is_dvr, 1) # # the explicit route delete is require so it happens before @@ -306,7 +319,7 @@ class TestDVR(VppTestCase): route_2.add_vpp_config() # - # packets are dropped because bridge does not flood unkown unicast + # packets are dropped because bridge does not flood unknown unicast # self.send_and_assert_no_replies(self.pg0, pkt_no_tag)