summaryrefslogtreecommitdiff
path: root/include/config.h
blob: 47e9bd15fca056d246d5461b2bf7bbdf9741ef14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#pragma once
#include "common.h"

#include <event.h>
#include <librdkafka/rdkafka.h>

#include <limits.h>
#include <sched.h>
#include <stdint.h>

struct config
{
    char absolute_path[PATH_MAX];

    char config_path[PATH_MAX];
    char dy_config_path[PATH_MAX];
    char zlog_config_path[PATH_MAX];
    char monit_file_path[PATH_MAX];

    cpu_set_t cpu_set_io;

    // device Information
    char * sled_ip;
    char device_group[MR_SYMBOL_MAX];
    char data_center[MR_SYMBOL_MAX];

    // server
    char str_listen_addr[INET6_ADDRSTRLEN];
    unsigned int listen_port;
    char keep_alive_path[MR_SYMBOL_MAX];

    // kafka
    char topic_name[MR_SYMBOL_MAX];
    char broker_list[1024];
    char sasl_username[MR_SYMBOL_MAX];
    char sasl_password[MR_SYMBOL_MAX];
    uint32_t kafka_queue_size;

    // maat
    unsigned int maat_log_level;
    unsigned int maat_input_mode;
    unsigned int deferred_load_on;
    char table_schema[PATH_MAX];
    char json_cfg_file[PATH_MAX];

    char redis_server[MR_SYMBOL_MAX];
    char redis_port_range[MR_SYMBOL_MAX];
    int redis_db_idx;

    // dp trace
    char dp_trace_dir[PATH_MAX];
    unsigned int dp_trace_file_max_size_in_KB;
    unsigned int dp_trace_merge_timeout;

    unsigned int nr_desc;
    struct dp_trace_job_desc desc[DP_TRACE_JOB_NUM_MAX];

    // debug
    unsigned int send_ctrlbuf;
    unsigned int send_invalid_traffic_link_id;
    unsigned int kafka_dump_to_log;
    unsigned int arp_pkt_has_ip_test;
};

const struct config * config_create(const char * config_path, const char * dy_config_path);
const struct config * global_config_get();
void global_config_destroy();
void config_load();
void dynamic_config_load_and_apply();