diff options
author | 2024-10-30 15:00:46 +0000 | |
---|---|---|
committer | 2024-11-22 08:49:35 +0000 | |
commit | c990aae85a2ec456dad24944978b88f48faa8aa6 (patch) | |
tree | f4254f8c50309a974ba2daac0e70a4fd7c2deea7 /test | |
parent | 6c880efcce0538303765e4267fb8718e49512f69 (diff) |
pg: fix the buffer deletion
Type: fix
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I8f0a67706399dad1e5296aafd1cfa92958b2fe82
Diffstat (limited to 'test')
-rw-r--r-- | test/test_pg_stream.py | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/test/test_pg_stream.py b/test/test_pg_stream.py new file mode 100644 index 00000000000..6c01d3b7b16 --- /dev/null +++ b/test/test_pg_stream.py @@ -0,0 +1,94 @@ +#!/usr/bin/env python3 + +import unittest + +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 +from asfframework import VppTestRunner + + +class TestPgStream(VppTestCase): + """PG Stream Test Case""" + + def __init__(self, *args): + VppTestCase.__init__(self, *args) + + def setUp(self): + super(TestPgStream, self).setUp() + + # Create 3 pg interfaces - one each for ethernet, IPv4, and IPv6. + self.create_pg_interfaces(range(0, 1)) + self.pg_interfaces += self.create_pg_ip4_interfaces(range(1, 2)) + self.pg_interfaces += self.create_pg_ip6_interfaces(range(2, 3)) + + for i in self.pg_interfaces: + i.admin_up() + + for i in [self.pg0, self.pg1]: + i.config_ip4() + + for i in [self.pg0, self.pg2]: + i.config_ip6() + + self.pg0.resolve_arp() + self.pg0.resolve_ndp() + + def tearDown(self): + super(TestPgStream, self).tearDown() + for i in self.pg_interfaces: + i.unconfig_ip4() + i.admin_down() + i.remove_vpp_config() + + def pg_stream(self, count=100, rate=1e6, packet_size=700): + rate = str(rate) + packet_size = str(packet_size) + count = str(count) + + cmds = [ + "packet-generator new {{\n" + " name pg0-stream\n" + " limit {count}\n" + " node ethernet-input\n" + " source pg0\n" + " rate {rate}\n" + " size {packet_size}+{packet_size}\n" + " data {{\n" + " IP4: {src_mac} -> 00:02:03:04:05:06\n" + " UDP: 192.168.20.20 -> 192.168.10.100\n" + " UDP: 1234 -> 4321\n" + " incrementing 100\n" + " }}\n" + "}}\n".format( + count=count, + rate=rate, + packet_size=packet_size, + src_mac=self.pg0.local_mac, + ), + "packet-generator enable", + "packet-generator disable", + "packet-generator delete pg0-stream", + ] + + for cmd in cmds: + r = self.vapi.cli_return_response(cmd) + if r.retval != 0: + if hasattr(r, "reply"): + self.logger.info(cmd + " FAIL reply " + r.reply) + else: + self.logger.info(cmd + " FAIL retval " + str(r.retval)) + + def test_pg_stream(self): + """PG Stream testing""" + self.pg_stream(rate=100, packet_size=64) + self.pg_stream(count=1000, rate=1000) + self.pg_stream(count=100000, rate=10000, packet_size=1500) + self.pg_stream(packet_size=4000) + + +if __name__ == "__main__": + unittest.main(testRunner=VppTestRunner) |