MCPcopy Create free account
hub / github.com/FDio/vpp / create_stream

Method create_stream

test/test_ip_ecmp.py:97–125  ·  view source on GitHub ↗

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
    )

Source from the content-addressed store, hash-verified

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.

Callers 2

test_ip_ecmpMethod · 0.95
test_ip6_ecmpMethod · 0.95

Calls 6

get_ip_addressMethod · 0.95
create_packet_infoMethod · 0.80
info_to_payloadMethod · 0.80
copyMethod · 0.80
extend_packetMethod · 0.80
appendMethod · 0.80

Tested by

no test coverage detected