X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_dvr.py;h=9d8675832eaf68e4d81652e6d26f418d8ca5ab3e;hb=e7a9b3d2545c00689fe7547e7d807fe4a9b3365d;hp=e2e960584a6c42c8b80d0561b2ebdaf53c1ab085;hpb=f068c3ed296c49dfbfe17677fc1ad2428fb4e3e4;p=vpp.git diff --git a/test/test_dvr.py b/test/test_dvr.py index e2e960584a6..9d8675832ea 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_sub_interface import VppDot1QSubint +from vpp_ip_route import VppIpRoute, VppRoutePath from vpp_papi_provider import L2_VTR_OP 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() @@ -214,6 +210,21 @@ class TestDVR(VppTestCase): self.vapi.sw_interface_set_l2_bridge(self.loop0.sw_if_index, 1, bvi=1, 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 # the sbu-interface delete. subinterface delete is required @@ -306,7 +317,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)