修改tuple2stm插入失败时四元组打印错误, 修复polling收包时j写成i
This commit is contained in:
@@ -86,6 +86,8 @@ mho_thread_safe = 0
|
|||||||
mho_mutex_num = 160
|
mho_mutex_num = 160
|
||||||
mho_hash_slot_size = 160000
|
mho_hash_slot_size = 160000
|
||||||
mho_hash_max_element_num = 640000
|
mho_hash_max_element_num = 640000
|
||||||
|
mho_expire_time = 0
|
||||||
|
mho_eliminate_type = LRU
|
||||||
|
|
||||||
[field_stat]
|
[field_stat]
|
||||||
remote_switch = 1
|
remote_switch = 1
|
||||||
|
|||||||
@@ -919,14 +919,16 @@ static int tuple2stream_htable_add(MESA_htable_handle tuple2stream_htable, addr_
|
|||||||
struct stream_tuple4_v4 key;
|
struct stream_tuple4_v4 key;
|
||||||
tuple2stream_htable_key_get_v4_by_packet(pktinfo, &key, &(value->reversed));
|
tuple2stream_htable_key_get_v4_by_packet(pktinfo, &key, &(value->reversed));
|
||||||
ret = MESA_htable_add(tuple2stream_htable, (const unsigned char *)&key, sizeof(key), (const void*)value);
|
ret = MESA_htable_add(tuple2stream_htable, (const unsigned char *)&key, sizeof(key), (const void*)value);
|
||||||
|
char key_str[KNI_ADDR_MAX];
|
||||||
|
kni_addr_trans_v4(&key, key_str, sizeof(key_str));
|
||||||
if(ret < 0){
|
if(ret < 0){
|
||||||
char key_str[KNI_ADDR_MAX];
|
|
||||||
kni_addr_trans_v4(&key, key_str, sizeof(key_str));
|
|
||||||
FS_operate(g_kni_fs_handle->handle, g_kni_fs_handle->fields[KNI_FIELD_TUPLE2STM_ADD_FAIL], 0, FS_OP_ADD, 1);
|
FS_operate(g_kni_fs_handle->handle, g_kni_fs_handle->fields[KNI_FIELD_TUPLE2STM_ADD_FAIL], 0, FS_OP_ADD, 1);
|
||||||
KNI_LOG_ERROR(logger, "MESA_htable: Failed at add, table = tuple2stream_htable, key = %s, key_size = %d, ret = %d",
|
KNI_LOG_ERROR(logger, "MESA_htable: Failed at add, table = tuple2stream_htable, key = %s, key_size = %d, ret = %d",
|
||||||
key_str, sizeof(key), ret);
|
key_str, sizeof(key), ret);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
//KNI_LOG_DEBUG(logger, "MESA_htable: Succeed at add, table = tuple2stream_htable, key = %s, key_size = %d, value = %p, ret = %d",
|
||||||
|
key_str, sizeof(key), value, ret);
|
||||||
FS_operate(g_kni_fs_handle->handle, g_kni_fs_handle->fields[KNI_FIELD_TUPLE2STM_ADD_SUCC], 0, FS_OP_ADD, 1);
|
FS_operate(g_kni_fs_handle->handle, g_kni_fs_handle->fields[KNI_FIELD_TUPLE2STM_ADD_SUCC], 0, FS_OP_ADD, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1007,21 +1009,27 @@ int tuple2stream_htable_del(MESA_htable_handle handle, const struct streaminfo *
|
|||||||
KNI_LOG_ERROR(logger, "MESA_htable: Failed at del, table = %s, key = %s, key_size = %d, ret = %d",
|
KNI_LOG_ERROR(logger, "MESA_htable: Failed at del, table = %s, key = %s, key_size = %d, ret = %d",
|
||||||
"tuple2stream_htable", key_str, sizeof(key), ret);
|
"tuple2stream_htable", key_str, sizeof(key), ret);
|
||||||
}
|
}
|
||||||
FS_operate(g_kni_fs_handle->handle, g_kni_fs_handle->fields[KNI_FIELD_TUPLE2STM_DEL_SUCC], 0, FS_OP_ADD, 1);
|
else{
|
||||||
|
FS_operate(g_kni_fs_handle->handle, g_kni_fs_handle->fields[KNI_FIELD_TUPLE2STM_DEL_SUCC], 0, FS_OP_ADD, 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//ipv4
|
//ipv4
|
||||||
else{
|
else{
|
||||||
struct stream_tuple4_v4 key;
|
struct stream_tuple4_v4 key;
|
||||||
tuple2stream_htable_key_get_v4_by_stream(stream, &key, &reversed);
|
tuple2stream_htable_key_get_v4_by_stream(stream, &key, &reversed);
|
||||||
ret = MESA_htable_del(handle, (const unsigned char *)(&key), sizeof(key), NULL);
|
ret = MESA_htable_del(handle, (const unsigned char *)(&key), sizeof(key), NULL);
|
||||||
|
char key_str[KNI_ADDR_MAX];
|
||||||
|
kni_addr_trans_v4(&key, key_str, sizeof(key_str));
|
||||||
if(ret < 0){
|
if(ret < 0){
|
||||||
char key_str[KNI_ADDR_MAX];
|
|
||||||
kni_addr_trans_v4(&key, key_str, sizeof(key_str));
|
|
||||||
FS_operate(g_kni_fs_handle->handle, g_kni_fs_handle->fields[KNI_FIELD_TUPLE2STM_DEL_FAIL], 0, FS_OP_ADD, 1);
|
FS_operate(g_kni_fs_handle->handle, g_kni_fs_handle->fields[KNI_FIELD_TUPLE2STM_DEL_FAIL], 0, FS_OP_ADD, 1);
|
||||||
KNI_LOG_ERROR(logger, "MESA_htable: Failed at del, table = %s, key = %s, key_size = %d, ret = %d",
|
KNI_LOG_ERROR(logger, "MESA_htable: Failed at del, table = %s, key = %s, key_size = %d, ret = %d",
|
||||||
"tuple2stream_htable", key_str, sizeof(key), ret);
|
"tuple2stream_htable", key_str, sizeof(key), ret);
|
||||||
}
|
}
|
||||||
FS_operate(g_kni_fs_handle->handle, g_kni_fs_handle->fields[KNI_FIELD_TUPLE2STM_DEL_SUCC], 0, FS_OP_ADD, 1);
|
else{
|
||||||
|
//KNI_LOG_DEBUG(logger, "MESA_htable: Succeed at del, table = %s, key = %s, key_size = %d, ret = %d",
|
||||||
|
"tuple2stream_htable", key_str, sizeof(key), ret);
|
||||||
|
FS_operate(g_kni_fs_handle->handle, g_kni_fs_handle->fields[KNI_FIELD_TUPLE2STM_DEL_SUCC], 0, FS_OP_ADD, 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -1523,6 +1531,7 @@ int tuple2stream_htable_search(MESA_htable_handle handle, struct ethhdr *ether_h
|
|||||||
tuple2stream_htable_value *value = NULL;
|
tuple2stream_htable_value *value = NULL;
|
||||||
struct pkt_info pktinfo;
|
struct pkt_info pktinfo;
|
||||||
int reversed = 0, ret;
|
int reversed = 0, ret;
|
||||||
|
int key_size = 0;
|
||||||
char key_str[KNI_ADDR_MAX];
|
char key_str[KNI_ADDR_MAX];
|
||||||
//ipv6
|
//ipv6
|
||||||
if(ether_hdr->h_proto == htons(ETH_P_IPV6)){
|
if(ether_hdr->h_proto == htons(ETH_P_IPV6)){
|
||||||
@@ -1548,12 +1557,13 @@ int tuple2stream_htable_search(MESA_htable_handle handle, struct ethhdr *ether_h
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
struct stream_tuple4_v4 key;
|
struct stream_tuple4_v4 key;
|
||||||
kni_addr_trans_v4(&key, key_str, sizeof(key_str));
|
key_size = sizeof(key);
|
||||||
tuple2stream_htable_key_get_v4_by_packet(&pktinfo, &key, &reversed);
|
tuple2stream_htable_key_get_v4_by_packet(&pktinfo, &key, &reversed);
|
||||||
value = (tuple2stream_htable_value*)MESA_htable_search(handle, (const unsigned char*)(&key), sizeof(key));
|
kni_addr_trans_v4(&key, key_str, sizeof(key_str));
|
||||||
|
value = (tuple2stream_htable_value*)MESA_htable_search(handle, (const unsigned char*)(&key), key_size);
|
||||||
}
|
}
|
||||||
if(value == NULL){
|
if(value == NULL){
|
||||||
KNI_LOG_ERROR(logger, "MESA_htable: failed at search, key = %s", key_str);
|
KNI_LOG_ERROR(logger, "MESA_htable: failed at search, table is tuple2stream_htable, key = %s, key_size = %d", key_str, key_size);
|
||||||
//FS_operate(g_kni_fs_handle->handle, g_kni_fs_handle->fields[KNI_FIELD_TUPLE2STM_SEARCH_FAIL], 0, FS_OP_ADD, 1);
|
//FS_operate(g_kni_fs_handle->handle, g_kni_fs_handle->fields[KNI_FIELD_TUPLE2STM_SEARCH_FAIL], 0, FS_OP_ADD, 1);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@@ -1599,7 +1609,7 @@ extern "C" char kni_polling_all_entry(const struct streaminfo *stream, void** pm
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
for(int j = 0; j < nr_recv; j++){
|
for(int j = 0; j < nr_recv; j++){
|
||||||
struct ethhdr *ether_hdr = (struct ethhdr*)marsio_buff_mtod(rx_buffs[i]);
|
struct ethhdr *ether_hdr = (struct ethhdr*)marsio_buff_mtod(rx_buffs[j]);
|
||||||
tuple2stream_htable_search(tuple2stream_htable, ether_hdr, thread_seq);
|
tuple2stream_htable_search(tuple2stream_htable, ether_hdr, thread_seq);
|
||||||
flag = 1;
|
flag = 1;
|
||||||
}
|
}
|
||||||
@@ -2071,11 +2081,11 @@ int dup_traffic_dabloom_init(const char *profile, void *logger){
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
void my_handler(int s){
|
void my_handler(int s){
|
||||||
printf("Caught signal %d\n",s);
|
printf("Caught signal %d\n",s);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int register_signal_handle(){
|
int register_signal_handle(){
|
||||||
struct sigaction sigIntHandler;
|
struct sigaction sigIntHandler;
|
||||||
sigIntHandler.sa_handler = my_handler;
|
sigIntHandler.sa_handler = my_handler;
|
||||||
@@ -2084,9 +2094,10 @@ int register_signal_handle(){
|
|||||||
sigaction(SIGINT, &sigIntHandler, NULL);
|
sigaction(SIGINT, &sigIntHandler, NULL);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
extern "C" int kni_init(){
|
extern "C" int kni_init(){
|
||||||
register_signal_handle();
|
//register_signal_handle();
|
||||||
char *kni_git_verison = (char*)KNI_GIT_VERSION;
|
char *kni_git_verison = (char*)KNI_GIT_VERSION;
|
||||||
const char *profile = "./etc/kni/kni.conf";
|
const char *profile = "./etc/kni/kni.conf";
|
||||||
const char *section = "global";
|
const char *section = "global";
|
||||||
|
|||||||
Reference in New Issue
Block a user