diff options
| author | liuxueli <[email protected]> | 2021-05-08 15:32:39 +0800 |
|---|---|---|
| committer | liuxueli <[email protected]> | 2021-05-08 15:32:39 +0800 |
| commit | 301d13a790010355b0a827caa149e1dbba479c2a (patch) | |
| tree | 3de6f4e743887a681992abed2d264a05adb6ebb0 /src/tsg_send_log.cpp | |
| parent | 52d0ba9fbb302ba318e597dcaeaa994f3f97f291 (diff) | |
规范隧道协议属性ETHERNET,MULTIPATH_ETHERNETv4.0.4
添加topic: LIVE-SESSION-RECORD-LOG,TRANSACTION-RECORD-LOG,GTPC-RECORD-LOG
Diffstat (limited to 'src/tsg_send_log.cpp')
| -rw-r--r-- | src/tsg_send_log.cpp | 53 |
1 files changed, 34 insertions, 19 deletions
diff --git a/src/tsg_send_log.cpp b/src/tsg_send_log.cpp index ed4f104..c7de8bc 100644 --- a/src/tsg_send_log.cpp +++ b/src/tsg_send_log.cpp @@ -474,34 +474,50 @@ static int mac_to_string(unsigned char *mac, char *buff) static int set_link_mac(struct tsg_log_instance_t *_instance, struct layer_addr_mac *mac, cJSON *tunnel_object) { - char buff[128]={0}; - cJSON *mac_object=NULL; + int flag=0; char default_mac[6]={0,0,0,0,0,0}; + char c2s_source_mac[128]={0}; + char c2s_dest_mac[128]={0}; + char s2c_source_mac[128]={0}; + char s2c_dest_mac[128]={0}; if((memcmp(mac->src_addr.h_source, default_mac, 6))) { - mac_object=cJSON_CreateObject(); - mac_to_string(mac->src_addr.h_source, buff); - cJSON_AddStringToObject(mac_object, _instance->id2field[LOG_COMMON_TUNNELS_MAC_SOURCE].name, buff); - - mac_to_string(mac->src_addr.h_dest, buff); - cJSON_AddStringToObject(mac_object, _instance->id2field[LOG_COMMON_TUNNELS_MAC_DEST].name, buff); - - cJSON_AddItemToObject(tunnel_object, "c2s_direction_mac", mac_object); + flag|=1; + mac_to_string(mac->src_addr.h_source, c2s_source_mac); + mac_to_string(mac->src_addr.h_dest, c2s_dest_mac); } if((memcmp(mac->dst_addr.h_source, default_mac, 6))) { - mac_object=cJSON_CreateObject(); - mac_to_string(mac->dst_addr.h_source, buff); - cJSON_AddStringToObject(mac_object, _instance->id2field[LOG_COMMON_TUNNELS_MAC_SOURCE].name, buff); - - mac_to_string(mac->dst_addr.h_dest, buff); - cJSON_AddStringToObject(mac_object, _instance->id2field[LOG_COMMON_TUNNELS_MAC_DEST].name, buff); - - cJSON_AddItemToObject(tunnel_object, "s2c_direction_mac", mac_object); + flag|=2; + mac_to_string(mac->dst_addr.h_source, s2c_source_mac); + mac_to_string(mac->dst_addr.h_dest, s2c_dest_mac); } + switch(flag) + { + case 1: + cJSON_AddStringToObject(tunnel_object, _instance->id2field[LOG_COMMON_TUNNELS_SCHEMA_TYPE].name, "ETHERNET"); + cJSON_AddStringToObject(tunnel_object, _instance->id2field[LOG_COMMON_TUNNELS_MAC_SOURCE].name, c2s_source_mac); + cJSON_AddStringToObject(tunnel_object, _instance->id2field[LOG_COMMON_TUNNELS_MAC_DEST].name, c2s_dest_mac); + break; + case 2: + cJSON_AddStringToObject(tunnel_object, _instance->id2field[LOG_COMMON_TUNNELS_SCHEMA_TYPE].name, "ETHERNET"); + cJSON_AddStringToObject(tunnel_object, _instance->id2field[LOG_COMMON_TUNNELS_MAC_SOURCE].name, s2c_source_mac); + cJSON_AddStringToObject(tunnel_object, _instance->id2field[LOG_COMMON_TUNNELS_MAC_DEST].name, s2c_dest_mac); + break; + case 3: + cJSON_AddStringToObject(tunnel_object, _instance->id2field[LOG_COMMON_TUNNELS_SCHEMA_TYPE].name, "MULTIPATH_ETHERNET"); + cJSON_AddStringToObject(tunnel_object, _instance->id2field[LOG_COMMON_TUNNELS_C2S_MAC_SOURCE].name, c2s_source_mac); + cJSON_AddStringToObject(tunnel_object, _instance->id2field[LOG_COMMON_TUNNELS_C2S_MAC_DEST].name, c2s_dest_mac); + cJSON_AddStringToObject(tunnel_object, _instance->id2field[LOG_COMMON_TUNNELS_S2C_MAC_SOURCE].name, s2c_source_mac); + cJSON_AddStringToObject(tunnel_object, _instance->id2field[LOG_COMMON_TUNNELS_S2C_MAC_DEST].name, s2c_dest_mac); + break; + default: + break; + } + return 1; } @@ -655,7 +671,6 @@ static int set_common_tunnels(struct tsg_log_instance_t *_instance, struct TLD_h { case ADDR_TYPE_MAC: tunnel_object=cJSON_CreateObject(); - cJSON_AddStringToObject(tunnel_object, _instance->id2field[LOG_COMMON_TUNNELS_SCHEMA_TYPE].name, "ETHERNET"); set_link_mac(_instance, (ptmp->addr.mac), tunnel_object); break; case ADDR_TYPE_VLAN: |
