-#!/usr/bin/env python
+#!/usr/bin/env python3
import unittest
import random
import socket
from ipaddress import IPv4Address, IPv6Address, AddressValueError
-
from framework import VppTestCase, VppTestRunner
from util import ppp
from scapy.layers.l2 import Ether
from scapy.layers.inet import IP, UDP
from scapy.layers.inet6 import IPv6
+from vpp_ip_route import VppIpRoute, VppRoutePath
try:
text_type = unicode
Show various debug prints after each test.
"""
super(TestECMP, self).tearDown()
- if not self.vpp_dead:
- self.logger.info(self.vapi.ppcli("show ip arp"))
- self.logger.info(self.vapi.ppcli("show ip6 neighbors"))
+
+ def show_commands_at_teardown(self):
+ self.logger.info(self.vapi.ppcli("show ip arp"))
+ self.logger.info(self.vapi.ppcli("show ip6 neighbors"))
def get_ip_address(self, ip_addr_start, ip_prefix_len):
"""
for packet in capture:
try:
ip_received = packet[ip_l]
- payload_info = self.payload_to_info(str(packet[Raw]))
+ payload_info = self.payload_to_info(packet[Raw])
packet_index = payload_info.index
ip_sent = self._packet_infos[packet_index].data[ip_l]
self.logger.debug("Got packet on port %s: src=%u (id=%u)" %
:param int dst_prefix_len: IP address prefix length.
:param int is_ipv6: 0 if an ip4 route, else ip6
"""
- af = socket.AF_INET if is_ipv6 == 0 else socket.AF_INET6
- dst_ip = socket.inet_pton(af, dst_ip_net)
+ paths = []
for pg_if in self.pg_interfaces[1:]:
for nh_host in pg_if.remote_hosts:
nh_host_ip = nh_host.ip4 if is_ipv6 == 0 else nh_host.ip6
- next_hop_address = socket.inet_pton(af, nh_host_ip)
- next_hop_sw_if_index = pg_if.sw_if_index
- self.vapi.ip_add_del_route(
- dst_ip, dst_prefix_len, next_hop_address,
- next_hop_sw_if_index=next_hop_sw_if_index,
- is_ipv6=is_ipv6, is_multipath=1)
- self.logger.info("Route via %s on %s created" %
- (nh_host_ip, pg_if.name))
+ paths.append(VppRoutePath(nh_host_ip,
+ pg_if.sw_if_index))
+
+ rip = VppIpRoute(self, dst_ip_net, dst_prefix_len, paths)
+ rip.add_vpp_config()
+ self.logger.info("Route via %s on %s created" %
+ (nh_host_ip, pg_if.name))
self.logger.debug(self.vapi.ppcli("show ip fib"))
self.logger.debug(self.vapi.ppcli("show ip6 fib"))