FlowTest Sequence

FlowTest Sequence uses FlowTest ft-generator to generate and run a PCAP file based on configuration and profile. The configuration and profile are described in the FlowTest ft-generator repository.

Sequence parameters

Configuration generation

  • generated_config is an on/off switch determining whether the sequence will generate a new configuration file located at config_filepath or use a user-provided file at config_filepath.

Warning

If generated_config is on, the file at config_filepath will be overwritten! Be careful not to overwrite something you didn’t want!

  • Default is on.

  • You can also optionally provide a configuration that will override the default values of the configuration generator constants. This configuration must be a JSON file located at config_generator_config_filepath. You can find these constants at the beginning of config_generator.py. The constants reflect options provided via a YAML configuration file described in the generator repository.

    • LAYER_MAX_NUMBER is the maximum number of layers in the layer list.

    • LAYER_TYPES is the list of possible layer types. Don’t change it!

    • ENCAPSULATION_ELEMENT_MAX_NUMBER is the maximum number of elements in the encapsulation list.

    • GENERATED_IPv4_RANGE_MAX_NUMBER is the maximum number of generated IPv4 addresses.

    • GENERATED_IPv6_RANGE_MAX_NUMBER is the maximum number of generated IPv6 addresses.

    • GENERATED_MAC_RANGE_MAX_NUMBER is the maximum number of generated MAC addresses.

    Note

    GENERATED_-_RANGE_MAX_NUMBER parameters are disabled by default (0). The generator uses sequence-generated addresses passed as arguments (e.g. –ipv4).

    • IPv4_PREFIX_MIN is the minimum possible prefix for generated IPv4 addresses.

    • IPv4_PREFIX_MAX is the maximum possible prefix for generated IPv4 addresses.

    • IPv4_MIN_PACKET_SIZE_TO_FRAGMENT_MIN is the minimum value of min_packet_size_to_fragment for IPv4 parameter (see generator repository)

    • IPv4_MIN_PACKET_SIZE_TO_FRAGMENT_MAX is the maximum value of min_packet_size_to_fragment for IPv4 parameter (see generator repository)

    • IPv6_PREFIX_MIN is the minimum possible prefix for generated IPv6 addresses.

    • IPv6_PREFIX_MAX is the maximum possible prefix for generated IPv6 addresses.

    • IPv6_MIN_PACKET_SIZE_TO_FRAGMENT_MIN is the minimum value of min_packet_size_to_fragment for IPv6 parameter (see generator repository)

    • IPv6_MIN_PACKET_SIZE_TO_FRAGMENT_MAX is the maximum value of min_packet_size_to_fragment for IPv6 parameter (see generator repository)

    • MAC_PREFIX_MIN is the minimum possible prefix of generated MAC addresses.

    • MAC_PREFIX_MAX is the maximum possible prefix of generated MAC addresses.

    • PACKET_MIN_SIZE is the minimum size of packets.

    • PACKET_MAX_SIZE is the maximum size of packets.

    • PACKET_SIZE_MIN_STEP is the minimum size of packet_size_probabilities ranges (see generator repository)

    • PACKET_SIZE_MAX_STEP is the maximum size of packet_size_probabilities ranges (see generator repository)

    • MAX_FLOW_INTER_PACKET_GAP is the max_flow_inter_packet_gap parameter (see generator repository)

    • MANDATORY_IPv4_ADDRESS_RANGES is the list of user-defined IPv4 addresses. Use this if you want to generate specific IPv4 addresses.

    • MANDATORY_IPv6_ADDRESS_RANGES is the list of user-defined IPv6 addresses. Use this if you want to generate specific IPv6 addresses.

    • MANDATORY_MAC_ADDRESS_RANGES is the list of user-defined MAC addresses. Use this if you want to generate specific MAC addresses.

Profile generation

  • generated_profile is an on/off switch determining whether the sequence will generate a new profile file located at profile_filepath or use a user-provided file at profile_filepath.

Warning

If generated_profile is on, the file at profile_filepath will be overwritten! Be careful not to overwrite something you didn’t want!

  • Default is on.

  • You can also optionally provide a configuration that will override the default values of the profile generator constants. This configuration must be a JSON file located at profile_generator_config_filepath. You can find these constants at the beginning of profile_generator.py. The constants reflect options provided via a CSV profile file described in the generator repository.

    • START_TIME_MIN is the minimum possible start time of a flow.

    • START_TIME_MAX is the maximum possible start time of a flow.

    • END_TIME_MIN is the minimum possible end time of a flow.

    • END_TIME_MAX is the maximum possible end time of a flow.

    • PACKETS_MIN_NUMBER is the minimum possible number of packets in the forward direction.

    • PACKETS_MAX_NUMBER is the maximum possible number of packets in the forward direction.

    • BYTES_PER_PACKET_MIN_NUMBER is the minimum possible number of bytes per packet in the forward direction.

    • BYTES_PER_PACKET_MAX_NUMBER is the maximum possible number of bytes per packet in the forward direction.

    • BYTES_MIN_NUMBER is the minimum possible number of bytes in the forward direction.

    • BYTES_MAX_NUMBER is the maximum possible number of bytes in the forward direction.

    • PACKETS_REV_MIN_NUMBER is the minimum possible number of packets in the reverse direction.

    • PACKETS_REV_MAX_NUMBER is the maximum possible number of packets in the reverse direction.

    • BYTES_PER_PACKET_REV_MIN_NUMBER is the minimum possible number of bytes per packet in the reverse direction.

    • BYTES_PER_PACKET_REV_MAX_NUMBER is the maximum possible number of bytes per packet in the reverse direction.

    • BYTES_REV_MIN_NUMBER is the minimum possible number of bytes in the reverse direction.

    • BYTES_REV_MAX_NUMBER is the maximum possible number of bytes in the reverse direction.

    • RECORD_MIN_NUMBER is the minimum possible number of flows.

    • RECORD_MAX_NUMBER is the maximum possible number of flows.

Example configurations

Note

Parameters in a JSON configuration are case-insensitive and can be provided in any order.

Configuration generator configuration

{
  "MANDATORY_IPv4_ADDRESS_RANGES": [
    "1.1.1.1/1",
    "192.168.1.1/30",
    "255.255.255.255/32"
  ],
  "LAYER_MAX_NUMBER": 4,
  "IPV4_PREFIX_MIN": 28,
  "ipv4_prefix_max": 32,
  "MAX_flow_INTER_packet_GAP": 32
}

Profile generator configuration

{
  "START_TIME_MIN": 412,
  "PACKETS_REV_MIN_NUMBER": 10,
  "record_min_number": 50,
  "RECORD_MAX_number": 100
}