TSG-13878 tsg-service-chaining-engine支持fieldstat2
This commit is contained in:
@@ -19,7 +19,7 @@ struct g_vxlan
|
||||
|
||||
unsigned int dir_is_e2i : 1;
|
||||
unsigned int traffic_is_decrypted : 1;
|
||||
unsigned int next_sf_index : 5; // max value 32
|
||||
unsigned int sf_index : 5; // max value 32
|
||||
unsigned int online_test : 1;
|
||||
|
||||
// Reserved 1 Bytes
|
||||
@@ -34,11 +34,11 @@ struct g_vxlan
|
||||
} __attribute__((__packed__));
|
||||
|
||||
void g_vxlan_set_packet_dir(struct g_vxlan *hdr, int dir_is_e2i);
|
||||
void g_vxlan_set_next_sf_index(struct g_vxlan *hdr, int next_sf_index);
|
||||
void g_vxlan_set_sf_index(struct g_vxlan *hdr, int sf_index);
|
||||
void g_vxlan_set_traffic_type(struct g_vxlan *hdr, int traffic_is_decrypted);
|
||||
|
||||
int g_vxlan_get_packet_dir(struct g_vxlan *hdr);
|
||||
int g_vxlan_get_next_sf_index(struct g_vxlan *hdr);
|
||||
int g_vxlan_get_sf_index(struct g_vxlan *hdr);
|
||||
int g_vxlan_get_traffic_type(struct g_vxlan *hdr);
|
||||
|
||||
// return 0 : success
|
||||
|
||||
@@ -7,6 +7,7 @@ extern "C"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <pthread.h>
|
||||
#include <MESA/MESA_handle_logger.h>
|
||||
|
||||
extern void *g_default_logger;
|
||||
@@ -15,31 +16,50 @@ int LOG_INIT(const char *profile);
|
||||
void LOG_CLOSE(void);
|
||||
void LOG_RELOAD(void);
|
||||
|
||||
#define LOG_DEBUG(format, ...) \
|
||||
do \
|
||||
{ \
|
||||
if (g_default_logger) \
|
||||
MESA_handle_runtime_log(g_default_logger, RLOG_LV_DEBUG, __FUNCTION__, format, ##__VA_ARGS__); \
|
||||
else \
|
||||
fprintf(stdout, "DEBUG " format "\n", ##__VA_ARGS__); \
|
||||
// __FUNCTION__
|
||||
#define LOG_DEBUG(format, ...) \
|
||||
do \
|
||||
{ \
|
||||
if (g_default_logger) \
|
||||
{ \
|
||||
char __tid_buff[16] = {0}; \
|
||||
snprintf(__tid_buff, 16, "tid:%ld", pthread_self()); \
|
||||
MESA_handle_runtime_log(g_default_logger, RLOG_LV_DEBUG, __tid_buff, format, ##__VA_ARGS__); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
fprintf(stdout, "DEBUG " format "\n", ##__VA_ARGS__); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define LOG_INFO(format, ...) \
|
||||
do \
|
||||
{ \
|
||||
if (g_default_logger) \
|
||||
MESA_handle_runtime_log(g_default_logger, RLOG_LV_INFO, __FUNCTION__, format, ##__VA_ARGS__); \
|
||||
else \
|
||||
fprintf(stdout, "INFO " format "\n", ##__VA_ARGS__); \
|
||||
#define LOG_INFO(format, ...) \
|
||||
do \
|
||||
{ \
|
||||
if (g_default_logger) \
|
||||
{ \
|
||||
char __tid_buff[16] = {0}; \
|
||||
snprintf(__tid_buff, 16, "tid:%ld", pthread_self()); \
|
||||
MESA_handle_runtime_log(g_default_logger, RLOG_LV_INFO, __tid_buff, format, ##__VA_ARGS__); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
fprintf(stdout, "INFOR " format "\n", ##__VA_ARGS__); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define LOG_ERROR(format, ...) \
|
||||
do \
|
||||
{ \
|
||||
if (g_default_logger) \
|
||||
MESA_handle_runtime_log(g_default_logger, RLOG_LV_FATAL, __FUNCTION__, format, ##__VA_ARGS__); \
|
||||
else \
|
||||
fprintf(stderr, "ERROR " format "\n", ##__VA_ARGS__); \
|
||||
#define LOG_ERROR(format, ...) \
|
||||
do \
|
||||
{ \
|
||||
if (g_default_logger) \
|
||||
{ \
|
||||
char __tid_buff[16] = {0}; \
|
||||
snprintf(__tid_buff, 16, "tid:%ld", pthread_self()); \
|
||||
MESA_handle_runtime_log(g_default_logger, RLOG_LV_FATAL, __tid_buff, format, ##__VA_ARGS__); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
fprintf(stderr, "ERROR " format "\n", ##__VA_ARGS__); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#ifdef __cpluscplus
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <cjson/cJSON.h>
|
||||
|
||||
#include "log.h"
|
||||
@@ -54,12 +55,12 @@ int ctrl_packet_parser_parse(struct ctrl_pkt_parser *handler, const char *data,
|
||||
|
||||
// session_id
|
||||
item = cJSON_GetObjectItem(json, "session_id");
|
||||
if (!item || !cJSON_IsNumber(item))
|
||||
if (!item || !cJSON_IsString(item))
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet: (invalid session_id format) %s", LOG_TAG_CTRLPKT, data);
|
||||
goto error_out;
|
||||
}
|
||||
handler->session_id = item->valueint;
|
||||
handler->session_id = atoll(item->valuestring);
|
||||
|
||||
// state
|
||||
item = cJSON_GetObjectItem(json, "state");
|
||||
|
||||
@@ -9,9 +9,9 @@ void g_vxlan_set_packet_dir(struct g_vxlan *hdr, int dir_is_e2i)
|
||||
hdr->dir_is_e2i = (!!dir_is_e2i);
|
||||
}
|
||||
|
||||
void g_vxlan_set_next_sf_index(struct g_vxlan *hdr, int next_sf_index)
|
||||
void g_vxlan_set_sf_index(struct g_vxlan *hdr, int sf_index)
|
||||
{
|
||||
hdr->next_sf_index = (0x1f & next_sf_index);
|
||||
hdr->sf_index = (0x1f & sf_index);
|
||||
}
|
||||
|
||||
void g_vxlan_set_traffic_type(struct g_vxlan *hdr, int traffic_is_decrypted)
|
||||
@@ -24,9 +24,9 @@ int g_vxlan_get_packet_dir(struct g_vxlan *hdr)
|
||||
return (!!hdr->dir_is_e2i);
|
||||
}
|
||||
|
||||
int g_vxlan_get_next_sf_index(struct g_vxlan *hdr)
|
||||
int g_vxlan_get_sf_index(struct g_vxlan *hdr)
|
||||
{
|
||||
return hdr->next_sf_index;
|
||||
return hdr->sf_index;
|
||||
}
|
||||
|
||||
int g_vxlan_get_traffic_type(struct g_vxlan *hdr)
|
||||
|
||||
@@ -392,7 +392,7 @@ uint64_t raw_packet_parser_get_hash_value(struct raw_pkt_parser *handler, enum l
|
||||
|
||||
char *inner_addr_str = addr_tuple4_to_str(&inner_addr);
|
||||
char *outer_addr_str = addr_tuple4_to_str(&outer_addr);
|
||||
LOG_ERROR("%s: pkt_trace_id: %lu, outer_addr: %s, inner_addr: %s, is_internal: %d, hash_method: %s, hash_value: %lu",
|
||||
LOG_DEBUG("%s: pkt_trace_id: %lu, outer_addr: %s, inner_addr: %s, is_internal: %d, hash_method: %s, hash_value: %lu",
|
||||
LOG_TAG_RAWPKT, handler->pkt_trace_id, outer_addr_str, inner_addr_str, dir_is_internal, ldbc_method_to_string(method), hash_value);
|
||||
free(inner_addr_str);
|
||||
free(outer_addr_str);
|
||||
|
||||
Reference in New Issue
Block a user