summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoryangwei <[email protected]>2024-05-06 20:33:55 +0800
committeryangwei <[email protected]>2024-05-06 21:17:31 +0800
commit5ff92caa55e792f69adc9559876e68e27394c363 (patch)
treeb087c03907c12407dd38a50703a88cde66146c6e /src
parent03054ea70cd2473a7675d5351f90261bdd53db9e (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.c4
-rw-r--r--src/dealpkt/deal_ipv6.c1
-rw-r--r--src/dealpkt/deal_mac_in_mac.c1
-rw-r--r--src/dealpkt/deal_mpls.c10
-rw-r--r--src/dealpkt/deal_pppoe.c1
-rw-r--r--src/dealpkt/deal_udp.c1
-rw-r--r--src/dealpkt/deal_vlan.c2
-rw-r--r--src/dealpkt/deal_vxlan.c3
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;