________________________________
发件人: 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

Reply via email to