

#pragma once

#ifdef __cplusplus
extern "C"
{
#endif

#include "session_manager.h"

static struct session_manager_config cfg = {
    .tcp_session_max = 256,
    .udp_session_max = 256,

    .evict_old_on_tcp_table_limit = 1,
    .evict_old_on_udp_table_limit = 1,

    .expire_period_ms = 0,
    .expire_batch_max = 1024,

    .tcp_timeout_ms =
        {
            .init = 1,
            .handshake = 2,
            .data = 3,
            .half_closed = 4,
            .time_wait = 5,
            .discard_default = 6,
            .unverified_rst = 7,
        },

    .udp_timeout_ms =
        {
            .data = 8,
            .discard_default = 0,
        },

    .duplicated_packet_bloom_filter =
        {
            .enable = 1,
            .capacity = 1000,
            .time_window_ms = 10,
            .error_rate = 0.0001,
        },

    .evicted_session_bloom_filter =
        {
            .enable = 1,
            .capacity = 1000,
            .time_window_ms = 10,
            .error_rate = 0.0001,
        },

    .tcp_reassembly =
        {
            .enable = 1,
            .timeout_ms = 1000,
            .buffered_segments_max = 16,
        },
};

#ifdef __cplusplus
}
#endif
