###############################################################
####           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          : 2.8
    cores               : 1
    bw_per_core         : 67.030


test_routing_imix:
    multiplier          : 1
    cores               : 1
    bw_per_core         : 3.979


test_routing_imix_64:
    multiplier          : 150
    cores               : 4
    bw_per_core         : .681


test_static_routing_imix:
    stat_route_dict     : *stat_route_dict
    multiplier          : 0.7
    cores               : 1
    bw_per_core         : 3.837


test_static_routing_imix_asymmetric:
    stat_route_dict     : *stat_route_dict
    multiplier          : 0.8
    cores               : 1
    bw_per_core         : 3.939


test_ipv6_simple:
    multiplier          : 1.5
    cores               : 2
    bw_per_core         : 4.719


test_nat_simple_mode1: &test_nat_simple
    stat_route_dict     : *stat_route_dict
    nat_dict            : *nat_dict
    multiplier          : 550
    cores               : 1
    allow_timeout_dev   : True
    bw_per_core         : 7.465

test_nat_simple_mode2: *test_nat_simple

test_nat_simple_mode3: *test_nat_simple

test_nat_learning:
    <<                  : *test_nat_simple
    bw_per_core         : 7.377
    nat_opened          : 40000


test_nbar_simple:
    multiplier          : 1.5
    cores               : 2
    bw_per_core         : 4.465
    nbar_classification:
        http            : 30.3
        rtp_audio       : 21.06
        oracle_sqlnet   : 11.25
        rtp             : 11.1
        exchange        : 10.16
        citrix          : 5.6
        rtsp            : 2.84
        sctp            : 0.65
        ssl             : 0.8
        sip             : 0.09
        dns             : 1.95
        smtp            : 0.57
        pop3            : 0.36
        unknown         : 3.19


test_rx_check_http: &rx_http
    multiplier          : 2200
    cores               : 1
    rx_sample_rate      : 16
    bw_per_core         : 8.142

test_rx_check_http_ipv6:
    <<                  : *rx_http
    bw_per_core         : 8.591

test_rx_check_http_negative:
    <<                  : *rx_http
    stat_route_dict     : *stat_route_dict
    nat_dict            : *nat_dict
    bw_per_core         : 8.037


test_rx_check_sfr: &rx_sfr
    multiplier          : 1.7
    cores               : 2
    rx_sample_rate      : 16
    bw_per_core         : 4.473

test_rx_check_sfr_ipv6:
    <<                  : *rx_sfr
    bw_per_core         : 4.773



### 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