#!/usr/bin/env python3 import random import unittest import datetime import re from scapy.packet import Raw from scapy.layers.l2 import Ether from scapy.layers.inet import IP, UDP from scapy.layers.inet6 import IPv6 from framework import VppTestCase, VppTestRunner from vpp_sub_interface import VppP2PSubint from vpp_ip import DpoProto from vpp_ip_route import VppIpRoute, VppRoutePath from vpp_papi import mac_pton class P2PEthernetAPI(VppTestCase): """P2P Ethernet tests""" p2p_sub_ifs = [] @classmethod def setUpClass(cls): super(P2PEthernetAPI, cls).setUpClass() # Create pg interfaces cls.create_pg_interfaces(range(4)) # Set up all interfaces for i in cls.pg_interfaces: i.admin_up() @classmethod def tearDownClass(cls): super(P2PEthernetAPI, cls).tearDownClass() def create_p2p_ethernet(self, parent_if, sub_id, remote_mac): p2p = VppP2PSubint(self, parent_if, sub_id, mac_pton(remote_mac)) self.p2p_sub_ifs.append(p2p) def delete_p2p_ethernet(self, parent_if, remote_mac): self.vapi.p2p_ethernet_del(parent_if.sw_if_index, mac_pton(remote_mac)) def test_api(self): """delete/create p2p subif""" self.logger.info("FFP_TEST_START_0000") self.create_p2p_ethernet(self.pg0, 1, "de:ad:00:00:00:01") self.create_p2p_ethernet(self.pg0, 2, "de:ad:00:00:00:02") intfs = self.vapi.cli("show interface") self.assertIn('pg0.1', intfs) self.assertIn('pg0.2', intfs) self.assertNotIn('pg0.5', intfs) # create pg2.5 subif self.create_p2p_ethernet(self.pg0, 5, "de:ad:00:00:00:ff") intfs = self.vapi.cli("show interface") self.assertIn('pg0.5', intfs) # delete pg2.5 subif self.delete_p2p_ethernet(self.pg0, "de:ad:00:00:00:ff") intfs = self.vapi.cli("show interface") self.assertIn('pg0.1', intfs) self.assertIn('pg0.2', intfs) self.assertNotIn('pg0.5', intfs) self.logger.info("FFP_TEST_FINISH_0000") def test_p2p_subif_creation_1k(self): """create 1k of p2p subifs""" self.logger.info("FFP_TEST_START_0001") macs = [] clients = 1000 mac = int("dead00000000", 16) for i in range(1, clients+1): try: macs.append(':'.join(re.findall('..', '{:02x}'.format( mac+i)))) self.vapi.p2p_ethernet_add(self.pg2.sw_if_index, mac_pton(macs[i-1]), i) except Exception: self.logger.info("Failed to create subif %d %s" % ( i, macs[i-1])) raise intfs = self.vapi.cli("show interface").split("\n") count = 0 for intf in intfs: if intf.startswith('pg2.'): count += 1 self.assertEqual(count, clients) self.logger.info("FFP_TEST_FINISH_0001") class P2PEthernetIPV6(VppTestCase): """P2P Ethernet IPv6 tests""" p2p_sub_ifs = [] packets = [] @classmethod def setUpClass(cls): super(P2PEthernetIPV6, cls).setUpClass() # Create pg interfaces cls.create_pg_interfaces(range(3)) # Packet sizes
#!/bin/sh
echo oper-170626