###############################################################
####           TRex benchmark configuration file           ####
###############################################################

#### common templates ###

stat_route_dict: &stat_route_dict
    clients_start           : 16.0.0.1
    servers_start           : 48.0.0.1
    dual_port_mask          : 1.0.0.0
    client_destination_mask : 255.0.0.0
    server_destination_mask : 255.0.0.0

nat_dict: &nat_dict
    clients_net_start        : 16.0.0.0
    client_acl_wildcard_mask : 0.0.0.255
    dual_port_mask           : 1.0.0.0
    pool_start               : 200.0.0.0
    pool_netmask             : 255.255.255.0


### stateful ###

test_jumbo:
    multiplier          : 55
    cores               : 1
    bw_per_core         : 647.305


test_routing_imix:
    multiplier          : 32
    cores               : 2
    bw_per_core         : 39.131


test_routing_imix_64:
    multiplier          : 2500
    cores               : 4
    bw_per_core         : 7.427


test_static_routing_imix:
    stat_route_dict     : *stat_route_dict
    multiplier          : 32
    cores               : 2
    bw_per_core         : 39.039


test_static_routing_imix_asymmetric:
    stat_route_dict     : *stat_route_dict
    multiplier          : 16
    cores               : 1
    bw_per_core         : 38.796


test_ipv6_simple:
    multiplier          : 32
    cores               : 4
    bw_per_core         : 19.283


test_nat_simple_mode1: &test_nat_simple
    stat_route_dict     : *stat_route_dict
    nat_dict            : *nat_dict
    multiplier          : 10000
    cores               : 1
    allow_timeout_dev   : True
    bw_per_core         : 45.304

test_nat_simple_mode2: *test_nat_simple

test_nat_learning:
    <<                  : *test_nat_simple
    nat_opened          : 100000


test_nbar_simple:
    multiplier          : 20
    cores               : 2
    bw_per_core         : 18.243
    nbar_classification:
        http            : 30.41
        rtp_audio       : 21.22
        rtp             : 11.4
        oracle_sqlnet   : 11.3
        exchange        : 10.95
        citrix          : 5.65
        rtsp            : 2.67
        dns             : 1.95
        smtp            : 0.57
        pop3            : 0.36
        sctp            : 0.09
        sip             : 0.09
        ssl             : 0.06
        unknown         : 3.2


test_rx_check_http: &rx_http
    multiplier          : 40000
    cores               : 2
    rx_sample_rate      : 32
    error_tolerance     : 0.01
    bw_per_core         : 38.071

test_rx_check_http_ipv6:
    <<                  : *rx_http
    bw_per_core         : 46.733


test_rx_check_sfr: &rx_sfr
    multiplier          : 25
    cores               : 4
    rx_sample_rate      : 32
    error_tolerance     : 0.01
    bw_per_core         : 16.915

test_rx_check_sfr_ipv6:
    <<                  : *rx_sfr
    bw_per_core         : 20.323



### stateless ###

test_CPU_benchmark:
    profiles:
      - name            : stl/udp_for_benchmarks.py
        kwargs          : {packet_len: 64}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_for_benchmarks.py
        kwargs          : {packet_len: 64, stream_count: 10}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_for_benchmarks.py
        kwargs          : {packet_len: 64, stream_count: 100}
        cpu_util        : 1
        bw_per_core     : 1

# causes queue full
#      - name            : stl/udp_for_benchmarks.py
#        kwargs          : {packet_len: 64, stream_count: 1000}
#        cpu_util        : 1
#        bw_per_core     : 1

      - name            : stl/udp_for_benchmarks.py
        kwargs          : {packet_len: 128}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_for_benchmarks.py
        kwargs          : {packet_len: 256}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_for_benchmarks.py
        kwargs          : {packet_len: 512}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_for_benchmarks.py
        kwargs          : {packet_len: 1500}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_for_benchmarks.py
        kwargs          : {packet_len: 4000}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_for_benchmarks.py
        kwargs          : {packet_len: 9000}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_for_benchmarks.py
        kwargs          : {packet_len: 9000, stream_count: 10}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_for_benchmarks.py
        kwargs          : {packet_len: 9000, stream_count: 100}
        cpu_util        : 1
        bw_per_core     : 1

# not enough memory + queue full if memory increase
#      - name            : stl/udp_for_benchmarks.py
#        kwargs          : {packet_len: 9000, stream_count: 1000}
#        cpu_util        : 1
#        bw_per_core     : 1

      - name            : stl/imix.py
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_1pkt_tuple_gen.py
        kwargs          : {packet_len: 64}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_1pkt_tuple_gen.py
        kwargs          : {packet_len: 128}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_1pkt_tuple_gen.py
        kwargs          : {packet_len: 256}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_1pkt_tuple_gen.py
        kwargs          : {packet_len: 512}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_1pkt_tuple_gen.py
        kwargs          : {packet_len: 1500}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_1pkt_tuple_gen.py
        kwargs          : {packet_len: 4000}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_1pkt_tuple_gen.py
        kwargs          : {packet_len: 9000}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/pcap.py
        kwargs          : {ipg_usec: 2, loop_count: 0}
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/udp_rand_len_9k.py
        cpu_util        : 1
        bw_per_core     : 1

      - name            : stl/hlt/hlt_udp_rand_len_9k.py
        cpu_util        : 1
        bw_per_core     : 1