diff options
| author | yangwei <[email protected]> | 2024-05-06 20:33:55 +0800 |
|---|---|---|
| committer | yangwei <[email protected]> | 2024-05-06 21:17:31 +0800 |
| commit | 5ff92caa55e792f69adc9559876e68e27394c363 (patch) | |
| tree | b087c03907c12407dd38a50703a88cde66146c6e /src | |
| parent | 03054ea70cd2473a7675d5351f90261bdd53db9e (diff) | |
🐞 fix(diagnose_error_to_dump): SAPP_STAT_RCV_UNKNOWN数据标记为errorv4.3.54
Diffstat (limited to 'src')
| -rw-r--r-- | src/dealpkt/deal_gprs_tunnel.c | 4 | ||||
| -rw-r--r-- | src/dealpkt/deal_ipv6.c | 1 | ||||
| -rw-r--r-- | src/dealpkt/deal_mac_in_mac.c | 1 | ||||
| -rw-r--r-- | src/dealpkt/deal_mpls.c | 10 | ||||
| -rw-r--r-- | src/dealpkt/deal_pppoe.c | 1 | ||||
| -rw-r--r-- | src/dealpkt/deal_udp.c | 1 | ||||
| -rw-r--r-- | src/dealpkt/deal_vlan.c | 2 | ||||
| -rw-r--r-- | src/dealpkt/deal_vxlan.c | 3 |
8 files changed, 15 insertions, 8 deletions
diff --git a/src/dealpkt/deal_gprs_tunnel.c b/src/dealpkt/deal_gprs_tunnel.c index ab03d78..e727f50 100644 --- a/src/dealpkt/deal_gprs_tunnel.c +++ b/src/dealpkt/deal_gprs_tunnel.c @@ -153,7 +153,7 @@ int gtp_entry(struct streaminfo_private *pfstream_pr,void *this_layer_data,int t if((*next_layer_hdr & 0xF0) == 0x40) { const struct iphdr *ip4_hdr = (struct iphdr *)next_layer_hdr; - if(left_pkt_len < 20 || ntohs(ip4_hdr->tot_len) > left_pkt_len) + if((left_pkt_len < 20 || ntohs(ip4_hdr->tot_len) > left_pkt_len) && raw_pkt->is_ctrl_pkt==0) { local_sys_stat->count[SAPP_STAT_RCV_UNKNOWN]++; local_sys_stat->length[SAPP_STAT_RCV_UNKNOWN]+= raw_pkt->raw_pkt_len; @@ -173,7 +173,7 @@ int gtp_entry(struct streaminfo_private *pfstream_pr,void *this_layer_data,int t else if((*next_layer_hdr & 0xF0) == 0x60) { const struct mesa_ip6_hdr *ip6_hdr = (struct mesa_ip6_hdr *)next_layer_hdr; - if(left_pkt_len < (int)sizeof(struct mesa_ip6_hdr) || ntohs(ip6_hdr->ip6_payload_len) > left_pkt_len){ + if((left_pkt_len < (int)sizeof(struct mesa_ip6_hdr) || ntohs(ip6_hdr->ip6_payload_len) > left_pkt_len) && raw_pkt->is_ctrl_pkt==0){ local_sys_stat->count[SAPP_STAT_RCV_UNKNOWN]++; local_sys_stat->length[SAPP_STAT_RCV_UNKNOWN]+= raw_pkt->raw_pkt_len; ((raw_pkt_t *)raw_pkt)->diagnose_error_to_dump = 1; diff --git a/src/dealpkt/deal_ipv6.c b/src/dealpkt/deal_ipv6.c index 42f6d7e..a879f6d 100644 --- a/src/dealpkt/deal_ipv6.c +++ b/src/dealpkt/deal_ipv6.c @@ -959,6 +959,7 @@ if(likely(pfstream_pr != NULL && pfstream_pr->layer_index < SAPP_SUPPORT_LAYER_N default:
local_sys_stat->count[SAPP_STAT_RCV_UNKNOWN]++;
local_sys_stat->length[SAPP_STAT_RCV_UNKNOWN]+=raw_pkt->raw_pkt_len;
+ ((raw_pkt_t *)raw_pkt)->diagnose_error_to_dump = 1;
sapp_runtime_log(RLOG_LV_INFO, "unsupport Ipv6 protocol:%u!\n", next_hdr_type);
goto done;
break;
diff --git a/src/dealpkt/deal_mac_in_mac.c b/src/dealpkt/deal_mac_in_mac.c index f71116f..9a92b58 100644 --- a/src/dealpkt/deal_mac_in_mac.c +++ b/src/dealpkt/deal_mac_in_mac.c @@ -130,6 +130,7 @@ int mac_in_mac_entry(struct streaminfo_private *fstream_pr, const void *this_lay /* unknown protocol */
local_sys_stat->count[SAPP_STAT_RCV_UNKNOWN]++;
local_sys_stat->length[SAPP_STAT_RCV_UNKNOWN]+= raw_pkt->raw_pkt_len;
+ ((raw_pkt_t *)raw_pkt)->diagnose_error_to_dump = 1;
sapp_runtime_log(20, "MAC-IN-MAC unknown protocol: 0x%x\n", eth_type);
ret = PASS;
break;
diff --git a/src/dealpkt/deal_mpls.c b/src/dealpkt/deal_mpls.c index 42db204..b7268f2 100644 --- a/src/dealpkt/deal_mpls.c +++ b/src/dealpkt/deal_mpls.c @@ -187,7 +187,7 @@ int mpls_uc_entry(struct streaminfo_private *pfstream_pr,const void *this_layer_ } int left_pkt_len = raw_pkt->raw_pkt_len - next_layer_offset; - if (left_pkt_len < ntohs(ip4_hdr->ip_len)) + if (left_pkt_len < ntohs(ip4_hdr->ip_len) && raw_pkt->is_ctrl_pkt==0) { local_sys_stat->count[SAPP_STAT_RCV_UNKNOWN]++; local_sys_stat->length[SAPP_STAT_RCV_UNKNOWN] += raw_pkt->raw_pkt_len; @@ -196,7 +196,7 @@ int mpls_uc_entry(struct streaminfo_private *pfstream_pr,const void *this_layer_ inject_to_eth_flag = 1; } - if (0 == inject_to_eth_flag || raw_pkt->is_ctrl_pkt==1) + if (0 == inject_to_eth_flag) { ret = ipv4_entry(pstream_pr, next_layer_hdr, thread_num, routedir, raw_pkt, next_layer_offset); } @@ -214,7 +214,7 @@ int mpls_uc_entry(struct streaminfo_private *pfstream_pr,const void *this_layer_ } int left_pkt_len = raw_pkt->raw_pkt_len - next_layer_offset; - if (left_pkt_len < sizeof(struct mesa_ip6_hdr) + ntohs(ip6_hdr->ip6_payload_len)) + if (left_pkt_len < (int)sizeof(struct mesa_ip6_hdr) + ntohs(ip6_hdr->ip6_payload_len) && raw_pkt->is_ctrl_pkt==0) { local_sys_stat->count[SAPP_STAT_RCV_UNKNOWN]++; local_sys_stat->length[SAPP_STAT_RCV_UNKNOWN] += raw_pkt->raw_pkt_len; @@ -223,7 +223,7 @@ int mpls_uc_entry(struct streaminfo_private *pfstream_pr,const void *this_layer_ inject_to_eth_flag = 1; } - if (0 == inject_to_eth_flag || raw_pkt->is_ctrl_pkt==1) + if (0 == inject_to_eth_flag) { ret = ipv6_entry(pstream_pr, next_layer_hdr, thread_num, routedir, raw_pkt, next_layer_offset); } @@ -242,7 +242,7 @@ int mpls_uc_entry(struct streaminfo_private *pfstream_pr,const void *this_layer_ else { int left_pkt_len = raw_pkt->raw_pkt_len - next_layer_offset; - if (left_pkt_len < sizeof(struct mesa_ethernet_hdr) + sizeof(struct mesa_ip4_hdr) + sizeof(struct mesa_udp_hdr)) + if (left_pkt_len < (int)sizeof(struct mesa_ethernet_hdr) + (int)sizeof(struct mesa_ip4_hdr) + (int)sizeof(struct mesa_udp_hdr)) { /* С����С�Ϸ�ethernet+ip+udp���ݰ����� */ local_sys_stat->count[SAPP_STAT_RCV_UNKNOWN]++; local_sys_stat->length[SAPP_STAT_RCV_UNKNOWN] += raw_pkt->raw_pkt_len; diff --git a/src/dealpkt/deal_pppoe.c b/src/dealpkt/deal_pppoe.c index e4d4cb3..3616178 100644 --- a/src/dealpkt/deal_pppoe.c +++ b/src/dealpkt/deal_pppoe.c @@ -70,6 +70,7 @@ int pppoe_session_entry(struct streaminfo_private *pfstream_pr,const void *this_ local_sys_stat = &sapp_global_val->mthread_volatile[thread_num]->sys_stat;
local_sys_stat->count[SAPP_STAT_RCV_UNKNOWN]++;
local_sys_stat->length[SAPP_STAT_RCV_UNKNOWN] += (unsigned long long)raw_pkt->raw_pkt_len;
+ ((raw_pkt_t *)raw_pkt)->diagnose_error_to_dump = 1;
}
return ret;
diff --git a/src/dealpkt/deal_udp.c b/src/dealpkt/deal_udp.c index 510b184..f5d88c2 100644 --- a/src/dealpkt/deal_udp.c +++ b/src/dealpkt/deal_udp.c @@ -1204,6 +1204,7 @@ int process_ipv4_pkt (struct streamindex *pfindex,const struct mesa_ip4_hdr * a_ /* unknown protocol */ local_sys_stat->count[SAPP_STAT_RCV_UNKNOWN]++; local_sys_stat->length[SAPP_STAT_RCV_UNKNOWN]+= raw_pkt->raw_pkt_len; + ((raw_pkt_t *)raw_pkt)->diagnose_error_to_dump = 1; sapp_runtime_log(RLOG_LV_DEBUG, "unsupport Ipv4 protocol:%u, pkt seq:%llu", a_packet->ip_p,local_sys_stat->count[SAPP_STAT_RCV_LINE]); break; } diff --git a/src/dealpkt/deal_vlan.c b/src/dealpkt/deal_vlan.c index a49efff..afe3c2d 100644 --- a/src/dealpkt/deal_vlan.c +++ b/src/dealpkt/deal_vlan.c @@ -138,7 +138,7 @@ int IEEE_8021_entry(struct streaminfo_private *pfstream_pr,const void *this_laye /* unknown protocol */
local_sys_stat->count[SAPP_STAT_RCV_UNKNOWN]++;
local_sys_stat->length[SAPP_STAT_RCV_UNKNOWN]+= raw_pkt->raw_pkt_len;
-
+ ((raw_pkt_t *)raw_pkt)->diagnose_error_to_dump = 1;
sapp_runtime_log(20, "VLAN unknown protocol: 0x%x, pkt seq:%llu\n", next_layer_type, local_sys_stat->count[SAPP_STAT_RCV_LINE]);
if(NET_CONN_SERIAL_GDEV == g_topology_mode){
diff --git a/src/dealpkt/deal_vxlan.c b/src/dealpkt/deal_vxlan.c index 4fe7fcc..1266cf7 100644 --- a/src/dealpkt/deal_vxlan.c +++ b/src/dealpkt/deal_vxlan.c @@ -109,6 +109,7 @@ int vxlan_entry(struct streaminfo_private *pfstream_pr,const void *this_layer_hd if(ETH_P_IP == ntohs(addr_pr.inner_hdlc.protocol)){ ret = ipv4_entry(pstream_pr,next_layer_data,thread_num,routedir,raw_pkt, next_layer_offset); }else{ + ((raw_pkt_t *)raw_pkt)->diagnose_error_to_dump = 1; local_sys_stat->count[SAPP_STAT_RCV_UNKNOWN]++; local_sys_stat->length[SAPP_STAT_RCV_UNKNOWN]+=raw_pkt->raw_pkt_len; sapp_runtime_log(RLOG_LV_INFO, "vxlan etnry: unsupport HDLC protocol:0x%x\n", addr_pr.inner_hdlc.protocol); @@ -124,6 +125,7 @@ int vxlan_entry(struct streaminfo_private *pfstream_pr,const void *this_layer_hd }else if(PPP_PROTOCOL_IPv6 == ntohs(addr_pr.inner_ppp.protocol)){ ret = ipv6_entry(pstream_pr,next_layer_data,thread_num,routedir,raw_pkt, next_layer_offset); }else{ + ((raw_pkt_t *)raw_pkt)->diagnose_error_to_dump = 1; local_sys_stat->count[SAPP_STAT_RCV_UNKNOWN]++; local_sys_stat->length[SAPP_STAT_RCV_UNKNOWN]+=raw_pkt->raw_pkt_len; sapp_runtime_log(RLOG_LV_INFO, "vxlan etnry: unsupport PPP protocol:0x%x\n", addr_pr.inner_ppp.protocol); @@ -135,6 +137,7 @@ int vxlan_entry(struct streaminfo_private *pfstream_pr,const void *this_layer_hd default: local_sys_stat->count[SAPP_STAT_RCV_UNKNOWN]++; local_sys_stat->length[SAPP_STAT_RCV_UNKNOWN]+=raw_pkt->raw_pkt_len; + ((raw_pkt_t *)raw_pkt)->diagnose_error_to_dump = 1; sapp_runtime_log(RLOG_LV_INFO, "vxlan etnry: unsupport link type:%d\n", addr_pr.addr_public.C2S_vxlan_addr.link_type); ret = PASS; break; |
