2.143. vpp_pg_interface module

exception vpp_pg_interface.CaptureTimeoutError

Bases: Exception

Exception raised if capture or packet doesn’t appear within timeout

class vpp_pg_interface.VppPGInterface(test, pg_index, gso, gso_size)

Bases: vpp_interface.VppInterface

VPP packet-generator interface

add_stream(pkts, nb_replays=None, worker=None)

Add a stream of packets to this packet-generator

Parameters

pkts – iterable packets

assert_nothing_captured(remark=None, filter_out_fn=<function is_ipv6_misc>)

Assert that nothing unfiltered was captured on interface

Parameters
  • remark – remark printed into debug logs

  • filter_out_fn – filter applied to each packet, packets for which the filter returns True are removed from capture

property cap_name

capture name for this interface

property capture_cli

CLI string to start capture on this interface

create_arp_req()

Create ARP request applicable for this interface

create_ndp_req()

Create NDP - NS applicable for this interface

disable_capture()
enable_capture()

Enable capture on this packet-generator interface of at most n packets. If n < 0, this is no limit

generate_debug_aid(kind)

Create a hardlink to the out file with a counter and a file containing stack trace to ease debugging in case of multiple capture files present.

get_capture(expected_count=None, remark=None, timeout=1, filter_out_fn=<function is_ipv6_misc>)

Get captured packets

Parameters
  • expected_count – expected number of packets to capture, if None, then self.test.packet_count_for_dst_pg_idx is used to lookup the expected count

  • remark – remark printed into debug logs

  • timeout – how long to wait for packets

  • filter_out_fn – filter applied to each packet, packets for which the filter returns True are removed from capture

Returns

iterable packets

property gso_enabled

gso enabled on packet-generator interface

property gso_size

gso size on packet-generator interface

property in_history_counter

Self-incrementing counter used when renaming old pcap files

property in_path

pcap file path - injected packets

property input_cli

CLI string to load the injected packets

property out_history_counter

Self-incrementing counter used when renaming old pcap files

property out_path

pcap file path - captured packets

property pg_index

packet-generator interface index assigned by VPP

resolve_arp(pg_interface=None)

Resolve ARP using provided packet-generator interface

Parameters

pg_interface – interface used to resolve, if None then this interface is used

resolve_ndp(pg_interface=None, timeout=1)

Resolve NDP using provided packet-generator interface

Parameters
  • pg_interface – interface used to resolve, if None then this interface is used

  • timeout – how long to wait for response before giving up

verify_enough_packet_data_in_pcap()

Check if enough data is available in file handled by internal pcap reader so that a whole packet can be read.

Returns

True if enough data present, else False

wait_for_capture_file(timeout=1)

Wait until pcap capture file appears

Parameters

timeout – How long to wait for the packet (default 1s)

Returns

True/False if the file is present or appears within timeout

wait_for_packet(timeout, filter_out_fn=<function is_ipv6_misc>)

Wait for next packet captured with a timeout

Parameters

timeout – How long to wait for the packet

Returns

Captured packet if no packet arrived within timeout

Raises

Exception – if no packet arrives within timeout

wait_for_pg_stop()
vpp_pg_interface.is_ipv6_misc(p)

Is packet one of uninteresting IPv6 broadcasts?