-#!/usr/bin/env python
+#!/usr/bin/env python3
import unittest
from socket import AF_INET, AF_INET6, inet_pton
from framework import VppTestCase, VppTestRunner
from vpp_neighbor import VppNeighbor, find_nbr
from vpp_ip_route import VppIpRoute, VppRoutePath, find_route, \
- VppIpTable, DpoProto
+ VppIpTable, DpoProto, FibPathType
from vpp_papi import VppEnum
import scapy.compat
from scapy.contrib.mpls import MPLS
from scapy.layers.inet6 import IPv6
+
+NUM_PKTS = 67
+
# not exported by scapy, so redefined here
arp_opts = {"who-has": 1, "is-at": 2}
#
self.pg2.set_unnumbered(self.pg1.sw_if_index)
+ #
+ # test the unnumbered dump both by all interfaces and just the enabled
+ # one
+ #
unnum = self.vapi.ip_unnumbered_dump()
+ self.assertTrue(len(unnum))
+ self.assertEqual(unnum[0].ip_sw_if_index, self.pg1.sw_if_index)
+ self.assertEqual(unnum[0].sw_if_index, self.pg2.sw_if_index)
+ unnum = self.vapi.ip_unnumbered_dump(self.pg2.sw_if_index)
+ self.assertTrue(len(unnum))
self.assertEqual(unnum[0].ip_sw_if_index, self.pg1.sw_if_index)
self.assertEqual(unnum[0].sw_if_index, self.pg2.sw_if_index)
dst=self.pg0.local_mac) /
IP(src=self.pg0.remote_ip4, dst="10.0.0.1") /
UDP(sport=1234, dport=1234) /
- Raw('\xa5' * 100))
+ Raw(b'\xa5' * 100))
self.pg0.add_stream(p)
self.pg_enable_capture(self.pg_interfaces)
ip_10_1 = VppIpRoute(self, "10::1", 128,
[VppRoutePath(self.pg0.remote_hosts[1].ip6,
self.pg0.sw_if_index,
- proto=DpoProto.DPO_PROTO_IP6)],
- is_ip6=1)
+ proto=DpoProto.DPO_PROTO_IP6)])
ip_10_1.add_vpp_config()
p1 = (Ether(dst=self.pg1.local_mac,
#
self.pg0.generate_remote_hosts(2)
- forus = VppIpRoute(self, self.pg0.remote_hosts[1].ip4, 32,
- [VppRoutePath(self.pg0.remote_hosts[1].ip4,
- self.pg0.sw_if_index)],
- is_local=1)
+ forus = VppIpRoute(
+ self, self.pg0.remote_hosts[1].ip4, 32,
+ [VppRoutePath("0.0.0.0",
+ self.pg0.sw_if_index,
+ type=FibPathType.FIB_PATH_TYPE_LOCAL)])
forus.add_vpp_config()
p = (Ether(dst="ff:ff:ff:ff:ff:ff",
UDP(sport=1234, dport=1234) /
Raw())
- rx = self.send_and_expect(self.pg0, p1 * 65, self.pg1)
- rx = self.send_and_expect(self.pg0, p2 * 65, self.pg1)
+ rx = self.send_and_expect(self.pg0, p1 * NUM_PKTS, self.pg1)
+ rx = self.send_and_expect(self.pg0, p2 * NUM_PKTS, self.pg1)
- self.assertEqual(65, arp1.get_stats()['packets'])
- self.assertEqual(65, arp2.get_stats()['packets'])
+ self.assertEqual(NUM_PKTS, arp1.get_stats()['packets'])
+ self.assertEqual(NUM_PKTS, arp2.get_stats()['packets'])
- rx = self.send_and_expect(self.pg0, p1 * 65, self.pg1)
- self.assertEqual(130, arp1.get_stats()['packets'])
+ rx = self.send_and_expect(self.pg0, p1 * NUM_PKTS, self.pg1)
+ self.assertEqual(NUM_PKTS*2, arp1.get_stats()['packets'])
def test_nd_stats(self):
""" ND Counters """
self.assertEqual(16, nd1.get_stats()['packets'])
self.assertEqual(16, nd2.get_stats()['packets'])
- rx = self.send_and_expect(self.pg1, p1 * 65, self.pg0)
- self.assertEqual(81, nd1.get_stats()['packets'])
+ rx = self.send_and_expect(self.pg1, p1 * NUM_PKTS, self.pg0)
+ self.assertEqual(NUM_PKTS+16, nd1.get_stats()['packets'])
if __name__ == '__main__':