summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author李佳 <[email protected]>2020-11-07 13:10:20 +0800
committer李佳 <[email protected]>2020-11-07 13:10:20 +0800
commitd8bc3078ec8a2c0ae4343d6aa92dc2d67159a1fa (patch)
tree20e908f5e170ba2c660d9606b7d100c224e177d1
parente93166cff2681aeef12100795af517102ea73d22 (diff)
Fix v4.2 diagnose to inlinev4.2.5
-rw-r--r--src/dealpkt/deal_arp.c18
-rw-r--r--src/packet_io/sendpacket.c8
2 files changed, 20 insertions, 6 deletions
diff --git a/src/dealpkt/deal_arp.c b/src/dealpkt/deal_arp.c
index 3661fe5..e8908dd 100644
--- a/src/dealpkt/deal_arp.c
+++ b/src/dealpkt/deal_arp.c
@@ -32,10 +32,20 @@ extern "C" {
sapp_runtime_log(RLOG_LV_DEBUG, "is not raw inline arp pkt, drop it.");
}
- /* TODO, mrtunnat֮��, �˴�Ҫ�ж��Dz��Ǹ������İ�, �Dz���overlay��ԭʼ��·�ϵ�arp��, ����Ӧ��DROP, �˴���Ĭ�Ϸ���PASS */
-
- /* NOTE: ����ģʽʲôʱ�򶼲�Ӧ�ð�ԭʼARP����ת����ȥ, ������GDEVģʽ�� */
- return PASS;
+ /* NOTE: ����ģʽʲôʱ�򶼲�Ӧ�ð�ԭʼARP����ת����ȥ, ������inlineģʽ�� */
+ if((ABBR_SAPP_LOG_LEVEL <= RLOG_LV_INFO ) && (NET_CONN_SERIAL_GDEV == g_topology_mode)){
+ const struct mesa_arp_hdr *arph = (struct mesa_arp_hdr *)this_layer_hdr;
+ char sendip_str[INET6_ADDRSTRLEN];
+ char targetip_str[INET6_ADDRSTRLEN];
+ inet_ntop(AF_INET, arph->ar_spa, sendip_str, sizeof(sendip_str));
+ inet_ntop(AF_INET, arph->ar_tpa, targetip_str, sizeof(targetip_str));
+ sapp_runtime_log(RLOG_LV_INFO, "inline mode drop not overlay arp pkt: sender_ip:%s, sender_mac:%02x-%02x-%02x-%02x-%02x-%02x,target_ip:%s",
+ sendip_str,
+ arph->ar_sha[0], arph->ar_sha[1], arph->ar_sha[2], arph->ar_sha[3], arph->ar_sha[4], arph->ar_sha[5],
+ targetip_str);
+ }
+
+ return DROP;
}
#ifdef __cplusplus
diff --git a/src/packet_io/sendpacket.c b/src/packet_io/sendpacket.c
index 6263678..b37255b 100644
--- a/src/packet_io/sendpacket.c
+++ b/src/packet_io/sendpacket.c
@@ -3004,7 +3004,10 @@ int __sapp_inject_pkt(struct streaminfo *raw_stream, enum sapp_inject_opt sio,
raw_stream_pr = (struct streaminfo_private *)raw_stream;
/* ��ı���ijЩ�ص�������ԭʼ������ΪIP��ͷ, ���Բ���Ҫ�������ԭʼ��, ��Ϣ���洢��˽�����ṹ���� */
raw_pkt = update_raw_pkt(raw_stream_pr, snd_routedir, &snd_routedir_reverse);
- assert(raw_pkt != NULL);
+ if(NULL == raw_pkt){
+ sapp_runtime_log(RLOG_LV_FATAL, "sapp_inject_pkt() error, not found raw_pkt!");
+ return -1;
+ }
/* injectʹ�õ���routedir, �˴�ת����stream dir,
ע��: ��������Ķ������ܲ����ɵ�ǰ��������, ����kni, �Ǵ����������յ����ݰ�, ��ע����·��,
@@ -3020,6 +3023,7 @@ int __sapp_inject_pkt(struct streaminfo *raw_stream, enum sapp_inject_opt sio,
reserved_hdr_len = calc_reserved_hdr_len(inject_stream, &low_net_layer_type, send_stream_dir);
if(reserved_hdr_len < 0){
+ sapp_runtime_log(RLOG_LV_FATAL, "calc_reserved_hdr_len() error");
return -1;
}
@@ -3049,7 +3053,7 @@ int __sapp_inject_pkt(struct streaminfo *raw_stream, enum sapp_inject_opt sio,
ret = packet_io_send(send_handle, reserved_hdr_len+payload_len, SEND_TYPE_LINK_INJECT,
low_net_layer_type, snd_routedir, thread_num,
(char *)KILL_TCP_PHONY_POINTER, (int *)KILL_TCP_PHONY_POINTER,
- raw_stream_pr->raw_pkt);
+ raw_pkt);
if(ret < 0){
send_handle->tot_send_err++;
}else{