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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
#ifndef __MRL_REDIS_H_
#define __MRL_REDIS_H_
#include "mrl_main.h"
struct mrl_nominee{
int config_id;
int addr_pool_id;
int addr_type;
char ip_addr[MRL_STR_IP_LEN];
int is_valid;
char effective_range[MRL_STR_EFFEC_RANGE_LEN];
char op_time[MRL_DATE_LEN];
int nominee_type;//0--snat_nominee;1--dnat_nominee
int nominee_count;//��ǰ��ѡIP��DNAT_POLICY���ж�Ӧ������Ŀ��ֻ�е�ֵΪ1ʱ����DNAT_POLICYִ��ɾ������ʱ�ŻὫ��ӹ�ϣ��ht_nominee��ɾ��
};
struct mrl_snat_candidate{
int config_id;
int addr_pool_id;
int addr_type;
char ip_addr[MRL_STR_IP_LEN];//�ͻ���IP
int location;
int is_valid;
char effective_range[MRL_STR_EFFEC_RANGE_LEN];
char op_time[MRL_DATE_LEN];
};
struct mrl_dnat_policy{
int config_id;
int original_addr_type;
char original_dest_ip[MRL_STR_IP_LEN];
char original_dest_port[MRL_STR_PORT_LEN];
char original_protocol[MRL_STR_PROT_LEN];
char translated_user_type[MRL_STR_USER_TYPE_LEN];
char translated_user_id[MRL_STR_USER_ID_LEN];
char translated_dest_port[MRL_STR_PROT_LEN];
int do_log;
int action;
int service;
int is_valid;
char effective_range[MRL_STR_EFFEC_RANGE_LEN];
char op_time[MRL_DATE_LEN];
};
/*mrl�Ƿֲ�ʽ����Ϊ�˱�֤���������dnat_candidate��ͬ������Ҫһ��dnat_candidate��*/
struct mrl_dnat_candidate{
int config_id;
char ip_addr[MRL_STR_IP_LEN];
int addr_type;
int location;
int is_valid;
char effective_range[MRL_STR_EFFEC_RANGE_LEN];
char op_time[MRL_DATE_LEN];
};
struct mrl_vxlan_info{
int config_id;
char back_ip[MRL_STR_IP_LEN];
int back_type;
uint64_t link_identity;
int is_valid;
char effective_range[MRL_STR_EFFEC_RANGE_LEN];
char op_time[MRL_DATE_LEN];
};
struct mrl_mrl_ip{
int config_id;
char back_ip[MRL_STR_IP_LEN];
int back_type;
char mrl_ip[MRL_STR_IP_LEN];
int is_valid;
char effective_range[MRL_STR_EFFEC_RANGE_LEN];
char op_time[MRL_DATE_LEN];
};
Maat_feather_t Maat_dynamic_feather_init(const char* redis_ip, uint16_t redis_port, int redis_index);
Maat_feather_t Maat_static_feather_init(const char* redis_ip, uint16_t redis_port, int redis_index);
int Maat_plugin_table(Maat_feather_t feather,const char* table_name, Maat_start_callback_t *start,Maat_update_callback_t *update,Maat_finish_callback_t *finish, void *u_para);
void snat_nominee_start_cb(int update_type,void* u_para);
void snat_nominee_update_cb(int table_id,const char *table_line,void *u_para);
void snat_nominee_finish_cb(void* u_para);
void snat_candidate_start_cb(int update_type,void* u_para);
void snat_candidate_update_cb(int table_id, const char *table_line, void *u_para);
void snat_candidate_finish_cb(void* u_para);
void dnat_policy_start_cb(int update_type,void* u_para);
void dnat_policy_update_cb(int table_id, const char *table_line, void *u_para);
void dnat_policy_finish_cb(void* u_para);
void dnat_candidate_start_cb(int update_type,void* u_para);
void dnat_candidate_update_cb(int table_id, const char *table_line, void *u_para);
void dnat_candidate_finish_cb(void* u_para);
void vxlan_info_start_cb(int update_type,void* u_para);
void vxlan_info_update_cb(int table_id, const char *table_line, void *u_para);
void vxlan_info_finish_cb(void* u_para);
void mrl_ip_info_start_cb(int update_type,void* u_para);
void mrl_ip_info_update_cb(int table_id, const char *table_line, void *u_para);
void mrl_ip_info_finish_cb(void* u_para);
bool mrl_identify_detect_pkt(struct streaminfo *mystream, const char * udp_pkt, struct mrl_tuple *tuple);
void mrl_construct_ir_mrl_ip(int mrl_ip_config_id, const char* back_ip, int back_type);
bool mrl_construct_ir_vxlan_info(int cfg_id, uint64_t link_identity,const char* back_ip, int back_type);
#endif
|