diff options
| author | lijie <[email protected]> | 2018-11-12 20:38:54 +0800 |
|---|---|---|
| committer | lijie <[email protected]> | 2018-11-12 20:38:54 +0800 |
| commit | 845ec90149a3099ebf4888a747dff572a46f82f0 (patch) | |
| tree | 1a7a72b6fdc5070ec7509923e6d9e440fc5cda35 /include | |
| parent | 417434fbc0bde8352a17555c1964851ac3b10b9a (diff) | |
修改编译遇到的问题,主动构造candidate,写入redis
Diffstat (limited to 'include')
| -rw-r--r-- | include/mrl_base.h | 5 | ||||
| -rw-r--r-- | include/mrl_main.h | 79 | ||||
| -rw-r--r-- | include/mrl_packet.h | 14 | ||||
| -rw-r--r-- | include/mrl_redis.h (renamed from include/mr_redis.h) | 23 |
4 files changed, 118 insertions, 3 deletions
diff --git a/include/mrl_base.h b/include/mrl_base.h index d7a848b..ab34663 100644 --- a/include/mrl_base.h +++ b/include/mrl_base.h @@ -1,3 +1,8 @@ +#ifndef __MRL_BASE_H_
+#define __MRL_BASE_H_
+
unsigned int mrl_split_str(char *str, const char *delim, char **dest);
+int mrl_mac_pton(const char *str, int delim, char *mac);
+#endif
diff --git a/include/mrl_main.h b/include/mrl_main.h new file mode 100644 index 0000000..d6f029a --- /dev/null +++ b/include/mrl_main.h @@ -0,0 +1,79 @@ +#ifndef __MRL_MAIN_H_
+#define __MRL_MAIN_H_
+#include <arpa/inet.h>
+#include <sys/types.h>
+
+
+#include "stream_inc/stream_rawpkt.h"
+#include "MESA_prof_load.h"
+#include "MESA_handle_logger.h"
+#include "MESA_htable.h"
+#include "Maat_rule.h"
+#include "Maat_command.h"
+
+#define MRL_STR_MAC_LEN 18
+#define MRL_STR_PORT_LEN 6
+#define MRL_STR_IP_LEN 16
+
+#define DATE_LEN 50
+
+#define MRL_MAX_PATH 50
+
+struct mrl_global_cfg
+{
+ //log info
+ char mrl_log_path[MRL_MAX_PATH];
+ int mrl_log_level;
+
+ //socket info
+ char mgw_ip[MRL_STR_IP_LEN];
+ unsigned short mgw_port;//mgw listen udp port
+ unsigned short mrl_port;//mrl listen udp port
+
+ //maat info
+ char Maat_table_path[MRL_MAX_PATH];
+ char Maat_redis_ip[MRL_STR_IP_LEN];
+ unsigned short Maat_redis_port;
+ char Maat_stat_path[MRL_MAX_PATH];
+ unsigned int Maat_max_threads;
+
+ //htable info
+ unsigned int ht_slots;
+ unsigned int ht_max_element_num;
+ int ht_mutex_num;
+
+ /*vxlan info*/
+ unsigned int vxlan_gdev_num;
+ char **vxlan_outer_gdev_mac;
+ char vxlan_outer_local_mac[MRL_STR_MAC_LEN];
+ char **vxlan_outer_gdev_ip;
+ char vxlan_outer_local_ip[MRL_STR_IP_LEN];
+ char **vxlan_outer_gdev_port;
+ char xvlan_outer_local_port[MRL_STR_PORT_LEN];
+ char **vxlan_encap_type;
+ char **vxlan_link_id;
+ char **vxlan_link_dir;
+ char **vxlan_inner_smac;
+ char **vxlan_inner_dmac;
+
+ char vxlan_inner_dip[MRL_STR_IP_LEN];
+ char vxlan_inner_dport[MRL_STR_PORT_LEN];
+ char vxlan_inner_sport[MRL_STR_PORT_LEN];
+};
+
+struct mrl_global_instance
+{
+ void *mrl_log_handle;
+ struct mrl_global_cfg mrl_cfg;
+
+ Maat_feather_t nominee_feather;
+ Maat_feather_t candidate_feather;
+
+ MESA_htable_handle ht_nominee;
+ MESA_htable_handle ht_candidate;
+
+ int *mrl_snd_fd;
+ int mrl_rcv_fd;
+ struct sockaddr_in mgw_addr;
+};
+#endif
diff --git a/include/mrl_packet.h b/include/mrl_packet.h index 47224f7..4378c80 100644 --- a/include/mrl_packet.h +++ b/include/mrl_packet.h @@ -1,2 +1,16 @@ +#ifndef __MRL_PACKET_H_
+#define __MRL_PACKET_H_
+
+#include "stream.h"
+#include "mrl_redis.h"
+
void mrl_socket_init();
+void mrl_send_to_gdev(int thread_seq, struct mrl_vxlan_info * vxlan_info, const char *payload, size_t payload_len);
+bool mrl_pkt_signature_identify(struct streaminfo *mystream);
+void *mrl_recv_mgw_action(void *arg);
+void mrl_send_to_mgw(void *raw_pkt, int thread_seq);
+
+
+#endif
+
diff --git a/include/mr_redis.h b/include/mrl_redis.h index 63883d7..bdf35f9 100644 --- a/include/mr_redis.h +++ b/include/mrl_redis.h @@ -1,3 +1,12 @@ +#ifndef __MRL_REDIS_H_
+#define __MRL_REDIS_H_
+
+#include "mrl_main.h"
+
+#define IR_NOMINEE_IP_TABLE_NAME "IR_NOMINEE_IP"
+#define IR_CANDIDATE_IP_TABLE_NAME "IR_CANDINATE_IP"
+#define REDIS_CANDIATE_KEY_NAME "IR_CANDIDATE_ID"
+
struct mrl_nominee_item{
int region_id;
int group_id;
@@ -23,9 +32,9 @@ struct mrl_vxlan_info{ char vxlan_outer_gdev_ip[MRL_STR_IP_LEN];//�����豸IP
char vxlan_outer_gdev_port[MRL_STR_PORT_LEN];
char vxlan_outer_local_port[MRL_STR_PORT_LEN];
- unsigned char vxlan_encap_type;
+ int vxlan_encap_type;
int vxlan_link_id;
- unsigned char vxlan_link_dir;
+ int vxlan_link_dir;
char vxlan_inner_smac[MRL_STR_MAC_LEN];
char vxlan_inner_dmac[MRL_STR_MAC_LEN];
};
@@ -40,10 +49,18 @@ struct mrl_candidate_item{ struct mrl_vxlan_info vxlan_info;
};
-MESA_htable_handle mrl_htable_init();
+MESA_htable_handle mrl_htable_init(void * fn_data_free_cb);
+void ht_candidate_free_cb(void * data);
+void ht_nominee_free_cb(void * data);
+void Maat_set_cmd_line(Maat_feather_t feather, struct mrl_candidate_item *candidate_item);
+
+
+
+
Maat_feather_t mrl_Maat_feather_init(const char * instance_name,const char *table_name, Maat_start_callback_t *start,Maat_update_callback_t *update,Maat_finish_callback_t *finish,void *u_para);
void nominee_update_cb(int table_id,const char* table_line,void* u_para);
void candidate_update_cb(int table_id,const char* table_line,void* u_para);
+#endif
|
