summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryangwei <[email protected]>2024-10-31 12:06:54 +0800
committeryangwei <[email protected]>2024-10-31 12:06:54 +0800
commitbde71f307790be97116e03e2b7ac6e3d05744f6b (patch)
tree75ea09a6d492de4b26560baa37bbb3525d94ef65
parentec3bbc9829499fb0aa89e9ede55825b0cd081408 (diff)
✨ feat(packet_io bpf filter behavior): set drop as defaultFeature-bpf-default-behavior
-rw-r--r--include/private/sapp_global_val.h1
-rw-r--r--src/config/config_parse.cpp1
-rw-r--r--src/packet_io/packet_io_marsio.c137
3 files changed, 71 insertions, 68 deletions
diff --git a/include/private/sapp_global_val.h b/include/private/sapp_global_val.h
index 87671a0..adce530 100644
--- a/include/private/sapp_global_val.h
+++ b/include/private/sapp_global_val.h
@@ -258,6 +258,7 @@ typedef struct{
char inject_mode_single_gateway_dst_mac[6];
char inject_mode_single_gateway_src_mac[6];
int monitor_thread_enabled;
+ int drop_bpf_filter_packet;
sapp_dup_pkt_t dup_pkt_para;
char extract_linkdir_from_mac_sntax_raw_string[32];
diff --git a/src/config/config_parse.cpp b/src/config/config_parse.cpp
index 5d83953..c804d19 100644
--- a/src/config/config_parse.cpp
+++ b/src/config/config_parse.cpp
@@ -1625,6 +1625,7 @@ int sapp_parse_config(void)
if(str_tmp[0] != '\0'){
pconfig->packet_io.input_bpf_filter = sapp_strdup(str_tmp);
}
+ tomlc99_wrap_load_int_def(ABBR_CFG_FILE_MAIN_ENTRY, (char *)"packet_io.feature", (char *)"drop_bpf_filter_packet", &pconfig->packet_io.drop_bpf_filter_packet, 1);
tomlc99_wrap_load_int_def(ABBR_CFG_FILE_MAIN_ENTRY, (char *)"packet_io.feature", (char *)"inbound_route_dir", &pconfig->packet_io.inbound_route_dir, 0);
tomlc99_wrap_load_string_def(ABBR_CFG_FILE_MAIN_ENTRY, (char *)"packet_io.feature", (char *)"pcap_capture_direction", pconfig->packet_io.pcap_capture_direction, NAME_MAX, "in");
tomlc99_wrap_load_string_def(ABBR_CFG_FILE_MAIN_ENTRY, (char *)"packet_io.feature", (char *)"inject_pkt_mode", pconfig->packet_io.inject_pkt_mode_string, NAME_MAX, "sys_route");
diff --git a/src/packet_io/packet_io_marsio.c b/src/packet_io/packet_io_marsio.c
index fe1242b..8613b39 100644
--- a/src/packet_io/packet_io_marsio.c
+++ b/src/packet_io/packet_io_marsio.c
@@ -11,22 +11,22 @@ extern "C" {
#include "mrtunnat.h"
/*
netconnection_mode:
- 1: ���������ղ���
- 2: һ�����鿨, ˫��˫��
- 3: һ��һ�鿨, ��������
+ 1: ���������ղ���
+ 2: һ�����鿨, ˫��˫��
+ 3: һ��һ�鿨, ��������
TODO 1:
- ��send_raw_pkt.conf���������ݴ洢��G_SND_RAW_PKT_INFO,
- ��ģ���䲻һ������Щ�����հ�, ���϶������Щ��������, ����ע�����ݰ�����Ӧ�õ���������,
- ��ȻҪ�ڳ�ʼ��ʱ����Щ�豸, ����send_path.
+ ��send_raw_pkt.conf���������ݴ洢��G_SND_RAW_PKT_INFO,
+ ��ģ���䲻һ������Щ�����հ�, ���϶������Щ��������, ����ע�����ݰ�����Ӧ�õ���������,
+ ��ȻҪ�ڳ�ʼ��ʱ����Щ�豸, ����send_path.
*/
typedef struct{
int thread_seq;
void *send_mbuf_mtod_ptr;
marsio_buff_t *send_mbuf[1];
- struct mr_vdev *dev_up, *dev_down; /* GDEVģʽ��, ֱ��ʹ��dev_up[0]; ͬʱ����˫��������ģʽ */
- struct mr_sendpath *sendpath_up, *sendpath_down; /* ����ģʽ��, ֱ��ʹ��sendpath_up; ͬʱ����˫��������ģʽ */
+ struct mr_vdev *dev_up, *dev_down; /* GDEVģʽ��, ֱ��ʹ��dev_up[0]; ͬʱ����˫��������ģʽ */
+ struct mr_sendpath *sendpath_up, *sendpath_down; /* ����ģʽ��, ֱ��ʹ��sendpath_up; ͬʱ����˫��������ģʽ */
}marsio4_io_handle;
@@ -34,8 +34,8 @@ extern int marsio_buff_get_metadata(marsio_buff_t *m, enum mr_buff_metadata_type
extern int marsio_buff_set_metadata(marsio_buff_t *m, enum mr_buff_metadata_type type, void *data, unsigned int sz_data);
extern int marsio_buff_unset_metadata(marsio_buff_t *m, enum mr_buff_metadata_type type);
/*
- ������ͬʱ, ��tcpdump_mesaһ��, ���ڲ�������,
- ��ע�İ�����tcpdump_mesa����, ֱ���������ײ㲶�񼴿�.
+ ������ͬʱ, ��tcpdump_mesaһ��, ���ڲ�������,
+ ��ע�İ�����tcpdump_mesa����, ֱ���������ײ㲶�񼴿�.
*/
extern void cycle_pkt_dump_by_classify(int thread_seq, const raw_pkt_t *p_raw_pkt, enum _pkt_classify class_val);
extern int G_PKT_DUMP_SW;
@@ -50,19 +50,19 @@ static int g_marsio4_topology_mode = NET_CONN_PARALLEL;
static int marsio4_work_thread_seq[MAX_THREAD_NUM];
static pthread_t marsio4_work_tid[MAX_THREAD_NUM];
extern int g_use_MESA_sleep_sw;
-struct mr_instance * sapp_marsio4_instance = NULL; /* ��ʱ���⿪��,������Ϊstatic */
+struct mr_instance * sapp_marsio4_instance = NULL; /* ��ʱ���⿪��,������Ϊstatic */
static int g_mr4_device_num = 0;
-static char **g_mr4_up_device_name; /* �豸���Ƽ���, meth0, meth1, meth2... */
-static char **g_mr4_down_device_name; /* �豸���Ƽ���, meth0, meth1, meth2... */
-static struct mr_vdev **g_mr4_dev_up_handle_set, **g_mr4_dev_down_handle_set; /* �豸������� */
-static struct mr_sendpath **g_mr4_sendpath_up_set, **g_mr4_sendpath_down_set; /* ����·��(���)���� */
+static char **g_mr4_up_device_name; /* �豸���Ƽ���, meth0, meth1, meth2... */
+static char **g_mr4_down_device_name; /* �豸���Ƽ���, meth0, meth1, meth2... */
+static struct mr_vdev **g_mr4_dev_up_handle_set, **g_mr4_dev_down_handle_set; /* �豸������� */
+static struct mr_sendpath **g_mr4_sendpath_up_set, **g_mr4_sendpath_down_set; /* ����·��(���)���� */
static marsio4_io_handle *g_mario4_io_handle;
static void *marsio_so_handle;
#define MARSIO_BURST_PKT_MAX (256)
-static int marsio4_burst_process_pkt_num = 32; /* ������������, ��pag.conf�л�ȡ */
+static int marsio4_burst_process_pkt_num = 32; /* ������������, ��pag.conf�л�ȡ */
//static long marsio4_thread_bind_mask = 0;
-#define TIME_DELAY_MONITOR (0) /* ����������ʱ��� */
+#define TIME_DELAY_MONITOR (0) /* ����������ʱ��� */
extern void timestamp_region_update_driver(int tid, long long cpu_cycle);
extern int stream_process_polling(int thread_seq);
@@ -182,13 +182,13 @@ int marsio_dl_io_set_capdev_parallel(const char *cap_dev)
char cfg_name_from_conf[1024];
char *single_device;
- /* marsio4ģʽ�������������ж��, ����ԭ�е�pcapdevice����, �����ŷָ� */
+ /* marsio4ģʽ�������������ж��, ����ԭ�е�pcapdevice����, �����ŷָ� */
if(NULL == cap_dev){
printf("\033[1;31;40m[Error]Invalid pcapdevice!\033[0m\n");
return -1;
}
- /* marsioģʽ֧�ֶ�����, ���ŷָ�ģʽ */
+ /* marsioģʽ֧�ֶ�����, ���ŷָ�ģʽ */
strncpy(cfg_name_from_conf, sapp_global_val->config.packet_io.internal.interface.name, sizeof(cfg_name_from_conf));
tmp_cap_dev_name = cfg_name_from_conf;
@@ -216,7 +216,7 @@ int marsio_dl_io_set_capdev_serial(const char *up_dev, const char *down_dev)
char *single_device;
int local_mr4_serial_device_num = 0;
- /* marsio4ģʽ�������������ж��, ����ԭ�е�pcapdevice����, �����ŷָ� */
+ /* marsio4ģʽ�������������ж��, ����ԭ�е�pcapdevice����, �����ŷָ� */
if(NULL == down_dev){
printf("\033[1;31;40m[Error]Invalid pcapdevice!\033[0m\n");
return -1;
@@ -275,7 +275,7 @@ int marsio_dl_io_set_capture_filter(const char *filter_rule)
int marsio_dl_io_set_cap_buf_queue(int queue_num_max)
{
- (void)queue_num_max; /* �������� */
+ (void)queue_num_max; /* �������� */
return 0;
}
@@ -288,7 +288,7 @@ int marsio_dl_io_set_work_thread_num(int thread_num_max)
long marsio_dl_io_get_app_drop_num(int thread_num)
{
- /* pagģʽ�鿴������ר�ù���, ����Ŀǰ���ṩ�˹��� */
+ /* pagģʽ�鿴������ר�ù���, ����Ŀǰ���ṩ�˹��� */
(void)thread_num;
return 0;
}
@@ -320,7 +320,7 @@ void marsio_dl_io_free_sendbuf(void *phandle, int thread_seq)
return;
}
-/* 2020-10-30 lijia add, in/forward/inject����tcpdump_mesa, ����debug. */
+/* 2020-10-30 lijia add, in/forward/inject����tcpdump_mesa, ����debug. */
static void marsio_pkt_dump(int thread_seq, const marsio_buff_t *send_mbuf, enum _pkt_classify classify)
{
raw_pkt_t to_tcpdump_mesa;
@@ -379,7 +379,7 @@ int marsio_dl_io_raw_pkt_send(void *phandle, unsigned char *data,int datalen, vo
}
- /* �˴�ʹ��append������mtod, append�ڲ�ʵ�ʰ�����set datalen�IJ��� */
+ /* �˴�ʹ��append������mtod, append�ڲ�ʵ�ʰ�����set datalen�IJ��� */
real_buf = ptr_marsio_buff_append(send_mbuf[0], datalen);
if(NULL == real_buf){
ptr_marsio_buff_free(sapp_marsio4_instance, send_mbuf, 1, MARSIO_SOCKET_ID_ANY, thread_seq);
@@ -424,12 +424,12 @@ int marsio_dl_io_low_level_send(void *phandle, UINT8 *data,int datalen,
{
int ret;
//struct mesa_ethernet_hdr *ehdr = (struct mesa_ethernet_hdr *)data;
- //��˫����͸��ģʽ(transparent)��, ����dirѡ��up or down device����.
+ //��˫����͸��ģʽ(transparent)��, ����dirѡ��up or down device����.
if(NET_CONN_SERIAL_2CARD == g_marsio4_topology_mode){
assert((dir >= 0) && (dir <= 1));
ret = marsio_dl_io_raw_pkt_send(phandle, data, datalen, g_packet_device_alias[dir].dl_io_param, thread_num, dir, raw_pkt);
}else{
- /* ��֧�ֶ������, ԭʼ�������յ��ʹ��ij�ȥ */
+ /* ��֧�ֶ������, ԭʼ�������յ��ʹ��ij�ȥ */
ret = marsio_dl_io_raw_pkt_send(phandle, data, datalen, g_mr4_sendpath_up_set[raw_pkt->device_index], thread_num,dir, raw_pkt);
}
@@ -542,7 +542,7 @@ int marsio_send_ctrl_data(unsigned char *data,int datalen, struct segment_id_lis
ret = ptr_marsio_buff_malloc_global(sapp_marsio4_instance, send_mbuf, 1, MARSIO_SOCKET_ID_ANY, thread_seq);
if((ret < 0) || (NULL == send_mbuf[0]))return -1;
- /* �˴�ʹ��append������mtod, append�ڲ�ʵ�ʰ�����set datalen�IJ��� */
+ /* �˴�ʹ��append������mtod, append�ڲ�ʵ�ʰ�����set datalen�IJ��� */
char *real_buf = ptr_marsio_buff_append(send_mbuf[0], datalen);
if(NULL == real_buf){
ptr_marsio_buff_free(sapp_marsio4_instance, send_mbuf, 1, MARSIO_SOCKET_ID_ANY, thread_seq);
@@ -664,7 +664,7 @@ int marsio_dl_io_send_only_thread_init(void)
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
#endif
static int tmp_vdevice_num;
-static char **tmp_vdevice_name; /* �����豸�����б�, ��pag.conf�еIJ����豸, ��������Ӧ��ģʽ��ע */
+static char **tmp_vdevice_name; /* �����豸�����б�, ��pag.conf�еIJ����豸, ��������Ӧ��ģʽ��ע */
static struct mr_sendpath **tmp_vdevice_sendpath;
void * marsio_dl_io_device_alias(unsigned int target_id, char *device_args)
{
@@ -675,7 +675,7 @@ void * marsio_dl_io_device_alias(unsigned int target_id, char *device_args)
for(i = 0; i < g_mr4_device_num; i++){
len2 = strlen(g_mr4_up_device_name[i]);
- /* ʹ������ַ��Ƚ�, ��ֹ"eth12", "eth1"�Ƚϵ���ȵ�BUG */
+ /* ʹ������ַ��Ƚ�, ��ֹ"eth12", "eth1"�Ƚϵ���ȵ�BUG */
if(strncasecmp(device_args, g_mr4_up_device_name[i], MAX(len1, len2)) == 0){
return (void *)g_mr4_sendpath_up_set[i];
}
@@ -684,25 +684,25 @@ void * marsio_dl_io_device_alias(unsigned int target_id, char *device_args)
if(NULL != g_mr4_down_device_name){
for(i = 0; i < g_mr4_device_num; i++){
len2 = strlen(g_mr4_down_device_name[i]);
- /* ʹ������ַ��Ƚ�, ��ֹ"eth12", "eth1"�Ƚϵ���ȵ�BUG */
+ /* ʹ������ַ��Ƚ�, ��ֹ"eth12", "eth1"�Ƚϵ���ȵ�BUG */
if(strncasecmp(device_args, g_mr4_down_device_name[i], MAX(len1, len2)) == 0){
return (void *)g_mr4_sendpath_down_set[i];
}
}
}
- /* �˿�δ��pag.conf��ע��, �����������豸����, �ֳ��򿪷��;�� */
+ /* �˿�δ��pag.conf��ע��, �����������豸����, �ֳ��򿪷��;�� */
struct mr_vdev *t_vdev;
struct mr_sendpath *t_sendpath;
for(i = 0; i < tmp_vdevice_num; i++){
len2 = strlen(tmp_vdevice_name[i]);
- /* ʹ������ַ��Ƚ�, ��ֹ"eth12", "eth1"�Ƚϵ���ȵ�BUG */
+ /* ʹ������ַ��Ƚ�, ��ֹ"eth12", "eth1"�Ƚϵ���ȵ�BUG */
if(strncasecmp(device_args, tmp_vdevice_name[i], MAX(len1, len2)) == 0){
return (void *)tmp_vdevice_sendpath[i];
}
}
- /* û�ҵ�, ���豸, ���洢���;�� */
+ /* û�ҵ�, ���豸, ���洢���;�� */
if(0 == tmp_vdevice_num){
tmp_vdevice_name = (char **)sapp_mem_calloc(SAPP_MEM_FIX_GLOBAL_VAL, MEM_STAT_GLOBAL_THREAD_ID,sizeof(void *));
tmp_vdevice_sendpath = (struct mr_sendpath **)sapp_mem_calloc(SAPP_MEM_FIX_GLOBAL_VAL, MEM_STAT_GLOBAL_THREAD_ID,sizeof(void *));
@@ -721,7 +721,7 @@ void * marsio_dl_io_device_alias(unsigned int target_id, char *device_args)
}
t_sendpath = ptr_marsio_sendpath_create_by_vdev(t_vdev);
tmp_vdevice_sendpath[tmp_vdevice_num] = t_sendpath;
- tmp_vdevice_num++; /* �����¼����� */
+ tmp_vdevice_num++; /* �����¼����� */
return t_sendpath;
}
@@ -729,7 +729,7 @@ void * marsio_dl_io_device_alias(unsigned int target_id, char *device_args)
/************************ funcitons for dynamic link *************************/
/*
- ����һ�������������˶��ٸ�bit��1��.
+ ����һ�������������˶��ٸ�bit��1��.
*/
static inline int calc_integer_bit_num(unsigned long long num)
{
@@ -741,7 +741,7 @@ static inline int calc_integer_bit_num(unsigned long long num)
bit_num++;
}
num = num >> 1;
- if(0 == num){ /* num�Ѿ���0��, ��û��Ҫ���жϺ���bitλ�� */
+ if(0 == num){ /* num�Ѿ���0��, ��û��Ҫ���жϺ���bitλ�� */
break;
}
}
@@ -754,7 +754,7 @@ static int marsio4_pkt_forward_for_gdev_mode(int tid, struct mr_sendpath * sendp
char tmp_mac[6];
struct mesa_ethernet_hdr *eth_hdr = (struct mesa_ethernet_hdr *)ptr_marsio_buff_mtod(mbuf);
- /* ����Դ��Ŀ��MAC��ַ, �ٰ�ԭʼ����ע��GDEV */
+ /* ����Դ��Ŀ��MAC��ַ, �ٰ�ԭʼ����ע��GDEV */
memcpy(tmp_mac, eth_hdr->ether_shost, 6);
memcpy(eth_hdr->ether_shost, eth_hdr->ether_dhost, 6);
memcpy(eth_hdr->ether_dhost, tmp_mac, 6);
@@ -766,11 +766,11 @@ static int marsio4_pkt_forward(int tid, struct mr_sendpath * sendpath, marsio_bu
{
int ret = 0;
- /* ������ȡ, ���������������, vxlan��������װģʽ����ʹ��, Ҫ��ÿ��mbuf�жϵײ��װģʽ */
+ /* ������ȡ, ���������������, vxlan��������װģʽ����ʹ��, Ҫ��ÿ��mbuf�жϵײ��װģʽ */
- /* 20201010 lijia modify, ����overlay��mrtunnat��ģʽ��, ctrl_zone�ǿ�, Ĭ�϶���ע */
- /* 20190409 lijia modify, tunnel mode, ��������װ�İ����ܻ�ע */
- /* vxlan��װ�ڲ�����ת���������κβ���, ֱ�ӵ���marsio_send_burst, ��marsio�������� */
+ /* 20201010 lijia modify, ����overlay��mrtunnat��ģʽ��, ctrl_zone�ǿ�, Ĭ�϶���ע */
+ /* 20190409 lijia modify, tunnel mode, ��������װ�İ����ܻ�ע */
+ /* vxlan��װ�ڲ�����ת���������κβ���, ֱ�ӵ���marsio_send_burst, ��marsio�������� */
marsio_pkt_dump(tid, mbufs, PKT_CLASSIFY_FORWARD);
ret = ptr_marsio_send_burst(sendpath, tid, &mbufs, 1);
@@ -795,8 +795,8 @@ static inline int marsio4_pkt_hand(int tid, marsio_buff_t *rx_buff, raw_pkt_t *r
{
raw_pkt->is_ctrl_pkt=0;
}
- /* ˫��ģʽdir��������internal, external����,
- inlineģʽ��ʱ��dir������, ���ջ��� packet_io_hook_input_vxlan() ,ͨ��vxlan header����routedir .
+ /* ˫��ģʽdir��������internal, external����,
+ inlineģʽ��ʱ��dir������, ���ջ��� packet_io_hook_input_vxlan() ,ͨ��vxlan header����routedir .
*/
raw_pkt->route_dir = dir;
@@ -807,6 +807,7 @@ static inline int marsio4_pkt_hand(int tid, marsio_buff_t *rx_buff, raw_pkt_t *r
raw_pkt->raw_pkt_len, raw_pkt->raw_pkt_len))
{
g_marsio_bpf_counter[tid].count++;
+ if(sapp_global_val->config.packet_io.drop_bpf_filter_packet==1)return DROP;
return PASS;
}
}
@@ -817,7 +818,7 @@ static inline int marsio4_pkt_hand(int tid, marsio_buff_t *rx_buff, raw_pkt_t *r
}
else
{
- raw_pkt->is_overlay_pkt = 0; /* ��mrtunnatʱ, ���յ�������ȷ��, ��packet_io_hook�����Ƿ���overlay�İ� */
+ raw_pkt->is_overlay_pkt = 0; /* ��mrtunnatʱ, ���յ�������ȷ��, ��packet_io_hook�����Ƿ���overlay�İ� */
}
/* clear pkt status */
@@ -844,7 +845,7 @@ static inline int marsio4_pkt_hand(int tid, marsio_buff_t *rx_buff, raw_pkt_t *r
static int marsio4_process_packet(int tid, raw_pkt_t *raw_pkt)
{
int i,j,k, pkt_num = 0;
- marsio_buff_t * rx_buff[MARSIO_BURST_PKT_MAX]; /* ����豸֮���Ǵ��л�ȡ, ̫�������ܵ�, ̫���������ʱ�� */
+ marsio_buff_t * rx_buff[MARSIO_BURST_PKT_MAX]; /* ����豸֮���Ǵ��л�ȡ, ̫�������ܵ�, ̫���������ʱ�� */
int rcv_res, hand_res;
if((__NET_CONN_PARALLEL & g_marsio4_topology_mode) != 0){
@@ -859,10 +860,10 @@ static int marsio4_process_packet(int tid, raw_pkt_t *raw_pkt)
__builtin_prefetch(ptr_marsio_buff_mtod(rx_buff[k]));
}
- marsio4_pkt_hand(tid, rx_buff[j], raw_pkt, DIR_ROUTE_UP); /* ����ģʽ�����ķ���ֵ */
+ marsio4_pkt_hand(tid, rx_buff[j], raw_pkt, DIR_ROUTE_UP); /* ����ģʽ�����ķ���ֵ */
}
pkt_num += rcv_res;
- ptr_marsio_buff_free(sapp_marsio4_instance, rx_buff, rcv_res, MARSIO_SOCKET_ID_ANY, tid); /* �������漰����, ������ҵ����������free */
+ ptr_marsio_buff_free(sapp_marsio4_instance, rx_buff, rcv_res, MARSIO_SOCKET_ID_ANY, tid); /* �������漰����, ������ҵ����������free */
}
}
}else if(NET_CONN_SERIAL_GDEV == g_marsio4_topology_mode){
@@ -880,11 +881,11 @@ static int marsio4_process_packet(int tid, raw_pkt_t *raw_pkt)
__builtin_prefetch((rx_buff[k]));
__builtin_prefetch(((char *)(rx_buff[k])+128));
}
- hand_res = marsio4_pkt_hand(tid, rx_buff[j], raw_pkt, DIR_ROUTE_UP); /* ��marsio4_pkt_hand()����dir */
+ hand_res = marsio4_pkt_hand(tid, rx_buff[j], raw_pkt, DIR_ROUTE_UP); /* ��marsio4_pkt_hand()����dir */
if ((g_marsio4_topology_mode & __NET_CONN_SERIAL) && (PASS == hand_res))
{
/* NOTE:
- MARSIO����ģʽ������, �����������հ�, ��Ҫͨ������������ע��,
+ MARSIO����ģʽ������, �����������հ�, ��Ҫͨ������������ע��,
*/
marsio_update_sid_list(raw_pkt, (void *)rx_buff[j]);
marsio_update_trace_id(raw_pkt, (void *)rx_buff[j]);
@@ -897,7 +898,7 @@ static int marsio4_process_packet(int tid, raw_pkt_t *raw_pkt)
}
else if (hand_res == DROP)
{
- /* ����ģʽ��ֻ�ܵ���free, �п���batch�յ�N������, ij������Ҫ��ע, ij��������Ҫ */
+ /* ����ģʽ��ֻ�ܵ���free, �п���batch�յ�N������, ij������Ҫ��ע, ij��������Ҫ */
marsio4_emit_datapath_telemetry(raw_pkt, "sapp", "egress_action=drop");
ptr_marsio_buff_free(sapp_marsio4_instance, &rx_buff[j], 1, MARSIO_SOCKET_ID_ANY, tid);
}
@@ -917,7 +918,7 @@ static int marsio4_process_packet(int tid, raw_pkt_t *raw_pkt)
//marsio4_pkt_forward(tid, rx_buff[j]);
ptr_marsio_send_burst(g_mr4_sendpath_down_set[i], tid, &rx_buff[j], 1);
}else{
- /* ����ģʽ�µ���free, �п�����Ҫ��ע/���� */
+ /* ����ģʽ�µ���free, �п�����Ҫ��ע/���� */
ptr_marsio_buff_free(sapp_marsio4_instance, &rx_buff[j], 1, MARSIO_SOCKET_ID_ANY, tid);
}
}
@@ -931,7 +932,7 @@ static int marsio4_process_packet(int tid, raw_pkt_t *raw_pkt)
//marsio4_pkt_forward(tid, rx_buff[j]);
ptr_marsio_send_burst(g_mr4_sendpath_up_set[i], tid, &rx_buff[j], 1);
}else{
- /* ����ģʽ�µ���free, �п�����Ҫ��ע/���� */
+ /* ����ģʽ�µ���free, �п�����Ҫ��ע/���� */
ptr_marsio_buff_free(sapp_marsio4_instance, &rx_buff[j], 1, MARSIO_SOCKET_ID_ANY, tid);
}
}
@@ -968,7 +969,7 @@ static inline void marsio4_sleep(int tid, int work_percent)
{
if (ptr_marsio_poll_wait != NULL)
{
- ptr_marsio_poll_wait(sapp_marsio4_instance, g_mr4_dev_up_handle_set, g_mr4_device_num, tid, 900); // sapp�ڲ���ʱ����С����Ϊ�룬�˴����ó�ʱΪΪ900���룬���ڶ����ģʽ���ó�CPUʱ��
+ ptr_marsio_poll_wait(sapp_marsio4_instance, g_mr4_dev_up_handle_set, g_mr4_device_num, tid, 900); // sapp�ڲ���ʱ����С����Ϊ�룬�˴����ó�ʱΪΪ900���룬���ڶ����ģʽ���ó�CPUʱ��
}
else
{
@@ -978,7 +979,7 @@ static inline void marsio4_sleep(int tid, int work_percent)
return;
}
-/* ������ģʽ��, marsio�����л���, ���°�����ʱ��Ҫ����ˢ�¶����е����� */
+/* ������ģʽ��, marsio�����л���, ���°�����ʱ��Ҫ����ˢ�¶����е����� */
static inline void marsio4_flush_queue_buf(int tid)
{
int i;
@@ -1022,7 +1023,7 @@ static void *marsio4_worker(void *arg)
memset(&raw_pkt, 0, sizeof(raw_pkt_t));
- /* �̶�����IJ���Ԥ������ */
+ /* �̶�����IJ���Ԥ������ */
raw_pkt.low_layer_type = (enum addr_type_t)g_marsio4_cap_level;
raw_pkt.magic_num = RAW_PKT_MAGIC_NUM;
raw_pkt.offset_to_raw_pkt_hdr = 0;
@@ -1033,7 +1034,7 @@ static void *marsio4_worker(void *arg)
}
/* for perf optimize
- Ƶ������stream_process_polling()�Ⱥ���, �˴����ں����ⲿ�ж�һ���Ƿ���Ҫ����.
+ Ƶ������stream_process_polling()�Ⱥ���, �˴����ں����ⲿ�ж�һ���Ƿ���Ҫ����.
*/
int polling_enabled = sapp_global_val->config.packet_io.polling_priority;
int infinite_loop_enabled = sapp_global_val->config.packet_io.infinite_loop_enabled;
@@ -1045,7 +1046,7 @@ static void *marsio4_worker(void *arg)
rcv_pkt_tims++;
}else{
marsio4_flush_queue_buf(tseq);
- /* �ް�ʱҪ����polling�ӿ� */
+ /* �ް�ʱҪ����polling�ӿ� */
if (likely(polling_enabled))
{
if ((g_PollingFunNum > 0))
@@ -1071,7 +1072,7 @@ static void *marsio4_worker(void *arg)
if((rcv_pkt_tims % sleep_check_interval) == 0 && polling_enabled)
{
- /* ��������޴�, һֱ�а�ʱ, ÿ��sleep_check_interval�ε���ҲҪ����polling�ӿ� */
+ /* ��������޴�, һֱ�а�ʱ, ÿ��sleep_check_interval�ε���ҲҪ����polling�ӿ� */
if(g_PollingFunNum > 0)
{
if((stream_process_polling(tseq) & POLLING_STATE_WORK) != 0)
@@ -1242,7 +1243,7 @@ static int marsio_dl_get_function_entry(void)
return -1;
}
- /************* note: û��marsio_send_burst_flush()�����������, ������! *****************/
+ /************* note: û��marsio_send_burst_flush()�����������, ������! *****************/
ptr_marsio_send_burst_flush = (void (*)(struct mr_sendpath * sendpath, queue_id_t sid))dlsym(marsio_so_handle, "marsio_send_burst_flush");
if(NULL == ptr_marsio_send_burst_flush){
printf("\033[33m[Warning]dlsym function '%s' from '%s' failed!\033[0m\n", "marsio_send_burst_flush", ABBR_MARSIO_LIBRARY_FILE);
@@ -1273,61 +1274,61 @@ static int marsio_dl_get_function_entry(void)
ptr_marsio_buff_get_metadata = (int (*)(marsio_buff_t *m, enum mr_buff_metadata_type type, void *data, unsigned int sz_data))dlsym(marsio_so_handle, "marsio_buff_get_metadata");
if(NULL == ptr_marsio_buff_get_metadata){
printf("\033[33m[Error]dlsym function '%s' from '%s' failed!\033[0m\n", "marsio_buff_get_metadata", ABBR_MARSIO_LIBRARY_FILE);
- //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش���*/
+ //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش���*/
sleep(1);
}
ptr_marsio_buff_set_metadata = (int (*)(marsio_buff_t *m, enum mr_buff_metadata_type type, void *data, unsigned int sz_data))dlsym(marsio_so_handle, "marsio_buff_set_metadata");
if(NULL == ptr_marsio_buff_set_metadata){
printf("\033[33m[Error]dlsym function '%s' from '%s' failed!\033[0m\n", "marsio_buff_set_metadata", ABBR_MARSIO_LIBRARY_FILE);
- //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش���*/
+ //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش���*/
sleep(1);
}
ptr_marsio_buff_get_sid_list = (int (*)(marsio_buff_t *m, uint16_t * out_slist, uint8_t sz_out_slist))dlsym(marsio_so_handle, "marsio_buff_get_sid_list");
if(NULL == ptr_marsio_buff_set_metadata){
printf("\033[33m[Error]dlsym function '%s' from '%s' failed!\033[0m\n", "marsio_buff_get_sid_list", ABBR_MARSIO_LIBRARY_FILE);
- //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش���*/
+ //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش���*/
sleep(1);
}
ptr_marsio_buff_set_sid_list = (int (*)(marsio_buff_t *m, uint16_t * slist, uint8_t sz_slist))dlsym(marsio_so_handle, "marsio_buff_set_sid_list");
if(NULL == ptr_marsio_buff_set_metadata){
printf("\033[33m[Error]dlsym function '%s' from '%s' failed!\033[0m\n", "marsio_buff_set_sid_list", ABBR_MARSIO_LIBRARY_FILE);
- //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش���*/
+ //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش���*/
sleep(1);
}
ptr_marsio_buff_append_sid_list = (int (*)(marsio_buff_t *m, uint16_t * slist, uint8_t sz_slist))dlsym(marsio_so_handle, "marsio_buff_append_sid_list");
if(NULL == ptr_marsio_buff_append_sid_list){
printf("\033[33m[Error]dlsym function '%s' from '%s' failed!\033[0m\n", "marsio_buff_append_sid_list", ABBR_MARSIO_LIBRARY_FILE);
- //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش��� */
+ //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش��� */
sleep(1);
}
ptr_marsio_buff_prepend_sid_list = (int (*)(marsio_buff_t *m, uint16_t * slist, uint8_t sz_slist))dlsym(marsio_so_handle, "marsio_buff_prepend_sid_list");
if(NULL == ptr_marsio_buff_prepend_sid_list){
printf("\033[33m[Error]dlsym function '%s' from '%s' failed!\033[0m\n", "marsio_buff_prepend_sid_list", ABBR_MARSIO_LIBRARY_FILE);
- //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش���*/
+ //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش���*/
sleep(1);
}
ptr_marsio_buff_unset_metadata = (int (*)(marsio_buff_t *m, enum mr_buff_metadata_type type))dlsym(marsio_so_handle, "marsio_buff_unset_metadata");
if(NULL == ptr_marsio_buff_unset_metadata){
printf("\033[33m[Error]dlsym function '%s' from '%s' failed!\033[0m\n", "marsio_buff_unset_metadata", ABBR_MARSIO_LIBRARY_FILE);
- //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش���*/
+ //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش���*/
sleep(1);
}
ptr_marsio_buff_set_ctrlbuf = (void (*)(marsio_buff_t *m))dlsym(marsio_so_handle, "marsio_buff_set_ctrlbuf");
if(NULL == ptr_marsio_buff_set_ctrlbuf){
printf("\033[33m[Error]dlsym function '%s' from '%s' failed!\033[0m\n", "marsio_buff_set_ctrlbuf", ABBR_MARSIO_LIBRARY_FILE);
- //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش���*/
+ //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش���*/
sleep(1);
}
ptr_marsio_poll_wait = (int (*)(struct mr_instance * instance, struct mr_vdev * vdevs[], unsigned int nr_vdevs, unsigned int tid, int timeout))dlsym(marsio_so_handle, "marsio_poll_wait");
if(NULL == ptr_marsio_poll_wait){
printf("\033[33m[Error]dlsym function '%s' from '%s' failed!\033[0m\n", "marsio_poll_wait", ABBR_MARSIO_LIBRARY_FILE);
- //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش��� */
+ //return -1; /* Ϊ����ǰ����mrzcpd�ɰ�, �˴��Ȳ����ش��� */
sleep(1);
}
ptr_marsio_buff_is_ctrlbuf = (int(*)(marsio_buff_t * m))dlsym(marsio_so_handle, "marsio_buff_is_ctrlbuf");