summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlijia <[email protected]>2021-04-10 15:02:46 +0800
committerlijia <[email protected]>2021-04-10 15:02:46 +0800
commit9fea31529552a89299e4ca8e5e40157a435c8cf9 (patch)
treeb819a138c711414348ea54d80837ba316e41217a
parent8320dcb94d7e601b2a0a8d754acff89e2abc11df (diff)
修复vxlan层的地址误用于地址比较的bug.v4.2.31
-rw-r--r--src/dealpkt/deal_ipv4.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/dealpkt/deal_ipv4.c b/src/dealpkt/deal_ipv4.c
index 7487ab0..b646813 100644
--- a/src/dealpkt/deal_ipv4.c
+++ b/src/dealpkt/deal_ipv4.c
@@ -648,13 +648,18 @@ int ipv4_entry(struct streaminfo_private *pfstream_pr, const void *this_layer_da
}
set_ipv4_addr(&addr, (struct mesa_ip4_hdr *)a_packet);
pstream->addr.paddr = &addr;
-
/* ��IP��������Ϊ__ADDR_TYPE_IP_PAIR_V4, ����ϲ���TCP/UDP, ����������ΪADDR_TYPE_IPV4, �����Ipv6_over_ipv4����, ������IP���ַ���� */
pstream->addr.addrtype = __ADDR_TYPE_IP_PAIR_V4;
pstream->addr.addrlen = sizeof(struct stream_tuple4_v4); /* ��ַ���ȹ̶�ʹ����Ԫ���ʽ��, ���������, ���˷������˿�,4�ֽڿռ� */
pstream->addr.pkttype = PKT_TYPE_NORMAL;
pstream->addr.pktipfragtype = PKT_TYPE_NORMAL; /* 2014-12-25 lijia add */
- pstream_pr->addr_use_as_hash = 1;
+ this_layer_is_overlay = sapp_is_overlay_layer(pstream_pr, raw_pkt);
+
+ if(this_layer_is_overlay != 0){
+ pstream_pr->addr_use_as_hash = 0;
+ }else{
+ pstream_pr->addr_use_as_hash = 1;
+ }
//ptmp->stream.p_layer_header = a_packet;
//ptmp->stream.offset_to_raw_pkt_hdr = (char *)a_packet - (char *)raw_pkt->raw_pkt_data;
pstream_pr->offset_to_raw_pkt_hdr = offset_to_raw_pkt_hdr;
@@ -682,7 +687,6 @@ int ipv4_entry(struct streaminfo_private *pfstream_pr, const void *this_layer_da
pstream->threadnum=thread_num;
/* 2020-12-23 lijia add, ��mrtunnatģʽ, �����overlay��, ��������ͨ��� */
- this_layer_is_overlay = sapp_is_overlay_layer(pstream_pr, raw_pkt);
if(this_layer_is_overlay != 0){
ret = stream_process_overlay_ipv4(pstream, (const struct ip *)this_layer_data, thread_num, routedir, raw_pkt);
if(DROP == ret){