________________________________
发件人: Li,Rongqing
发送时间: 2019年11月16日 10:03
收件人: Darrell Ball
抄送: ovs dev
主题: 答复: ipf question
发件人: Darrell Ball <[email protected]>
发送时间: 2019年11月15日 22:58
收件人: Li,Rongqing
抄送: ovs dev
主题: Re: ipf question
>Let me paraphrase, just to confirm we are on the same page.
>IIUC, for example, in the case of a 33 fragment packet, in the first pass all
>33 fragments enter ipf, then are >reassembled, pass thru conntrack
>and then the frags sent out, while in the second pass, only 32 fragments enter
>conntrack/ipf, while index 32 >fragment is being forwarded out without going
>thru conntrack/ipf ?
true.
the second pass is recirculation
and index 32 fragment is not into contrack/ipf, and send out to vm directly.
if I change NETDEV_MAX_BURST to 64, it works
thanks
-RongQing
add the patch, which make the ipf work for larger ip fragment.
index dd3f17b..6232d94 100644
--- a/lib/dp-packet.h
+++ b/lib/dp-packet.h
@@ -704,7 +704,7 @@ dp_packet_has_flow_mark(struct dp_packet *p OVS_UNUSED,
return false;
}
-enum { NETDEV_MAX_BURST = 32 }; /* Maximum number packets in a batch. */
+enum { NETDEV_MAX_BURST = 64 }; /* Maximum number packets in a batch. */
struct dp_packet_batch {
size_t count;
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index dd26298..0c6e9dd 100644
--- a/lib/dpif-netdev.c
+++ b/lib/dpif-netdev.c
@@ -6650,7 +6650,7 @@ dpcls_lookup(struct dpcls *cls, const struct
netdev_flow_key keys[],
/* The received 'cnt' miniflows are the search-keys that will be processed
* to find a matching entry into the available subtables.
* The number of bits in map_type is equal to NETDEV_MAX_BURST. */
- typedef uint32_t map_type;
+ typedef uint64_t map_type;
#define MAP_BITS (sizeof(map_type) * CHAR_BIT)
BUILD_ASSERT_DECL(MAP_BITS >= NETDEV_MAX_BURST);
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev