Create input packet stream for defined interfaces. :param VppInterface src_if: Source Interface for packet stream. :param str src_ip_start: Starting source IPv4 or IPv6 address. :param str dst_ip_start: Starting destination IPv4 or IPv6 address. :param int ip_prefix_
(
self, src_if, src_ip_start, dst_ip_start, ip_prefix_len, packet_sizes, ip_l=IP
)
| 95 | return str(ip_addr + random.randint(0, 2 ** (ip_max_len - ip_prefix_len) - 2)) |
| 96 | |
| 97 | def create_stream( |
| 98 | self, src_if, src_ip_start, dst_ip_start, ip_prefix_len, packet_sizes, ip_l=IP |
| 99 | ): |
| 100 | """Create input packet stream for defined interfaces. |
| 101 | |
| 102 | :param VppInterface src_if: Source Interface for packet stream. |
| 103 | :param str src_ip_start: Starting source IPv4 or IPv6 address. |
| 104 | :param str dst_ip_start: Starting destination IPv4 or IPv6 address. |
| 105 | :param int ip_prefix_len: IP address prefix length. |
| 106 | :param list packet_sizes: packet size to test. |
| 107 | :param Scapy ip_l: Required IP layer - IP or IPv6. (Default is IP.) |
| 108 | """ |
| 109 | pkts = [] |
| 110 | for i in range(0, N_PKTS_IN_STREAM): |
| 111 | info = self.create_packet_info(src_if, src_if) |
| 112 | payload = self.info_to_payload(info) |
| 113 | src_ip = self.get_ip_address(src_ip_start, ip_prefix_len) |
| 114 | dst_ip = self.get_ip_address(dst_ip_start, ip_prefix_len) |
| 115 | p = ( |
| 116 | Ether(dst=src_if.local_mac, src=src_if.remote_mac) |
| 117 | / ip_l(src=src_ip, dst=dst_ip) |
| 118 | / UDP(sport=1234, dport=1234) |
| 119 | / Raw(payload) |
| 120 | ) |
| 121 | info.data = p.copy() |
| 122 | size = random.choice(packet_sizes) |
| 123 | self.extend_packet(p, size) |
| 124 | pkts.append(p) |
| 125 | return pkts |
| 126 | |
| 127 | def verify_capture(self, rx_if, capture, ip_l=IP): |
| 128 | """Verify captured input packet stream for defined interface. |
no test coverage detected