###############################################################
####           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          : 17
    cores               : 1
    bw_per_core         : 543.232


test_routing_imix:
    multiplier          : 10
    cores               : 1
    bw_per_core         : 34.128


test_routing_imix_64:
    multiplier          : 430
    cores               : 1
    bw_per_core         : 5.893


test_static_routing_imix: &test_static_routing_imix
    stat_route_dict     : *stat_route_dict
    multiplier          : 8
    cores               : 1
    bw_per_core         : 34.339

test_static_routing_imix_asymmetric: *test_static_routing_imix


test_ipv6_simple:
    multiplier          : 9
    cores               : 2
    bw_per_core         : 19.064


test_nat_simple_mode1: &test_nat_simple
    stat_route_dict     : *stat_route_dict
    nat_dict            : *nat_dict
    multiplier          : 6000
    cores               : 1
    nat_opened          : 500000
    allow_timeout_dev   : True
    bw_per_core         : 44.445

test_nat_simple_mode2: *test_nat_simple

test_nat_simple_mode3: *test_nat_simple

test_nat_learning: *test_nat_simple


test_nbar_simple:
    multiplier          : 7.5
    cores               : 2
    bw_per_core         : 17.174
    nbar_classification:
        http            : 32.58
        rtp-audio       : 21.21
        oracle_sqlnet   : 11.41
        exchange        : 11.22
        rtp             : 11.2
        citrix          : 5.65
        rtsp            : 2.87
        dns             : 1.96
        smtp            : 0.57
        pop3            : 0.37
        ssl             : 0.28
        sctp            : 0.13
        sip             : 0.09
        unknown         : 0.45


test_rx_check_http: &rx_http
    multiplier          : 15000
    cores               : 1
    rx_sample_rate      : 16
    bw_per_core         : 39.560

test_rx_check_http_ipv6:
    <<                  : *rx_http
    bw_per_core         : 49.237

test_rx_check_http_negative_disabled:
    <<                  : *rx_http
    stat_route_dict     : *stat_route_dict
    nat_dict            : *nat_dict


test_rx_check_sfr: &rx_sfr
    multiplier          : 10
    cores               : 3
    rx_sample_rate      : 16
    bw_per_core         : 16.082

test_rx_check_sfr_ipv6:
    <<                  : *rx_sfr
    bw_per_core         : 19.198



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