> On 03. 06. 20 20:09, Numan Siddique wrote: >> This email was sent from an external sender. Do not click links or >> open attachments unless you recognize the sender and know the content >> is safe. >> >> >> >> On Wed, Jun 3, 2020 at 8:27 PM Miroslav Kubiczek >> <miroslav.kubiczek at adaptivemobile.com >> <mailto:miroslav.kubiczek at adaptivemobile.com>> wrote: >> >> >> On 29. 05. 20 12:51, Numan Siddique wrote: >>> This email was sent from an external sender. Do not click links >>> or open attachments unless you recognize the sender and know the >>> content is safe. >>> >>> >>> >>> On Fri, May 29, 2020 at 3:41 PM Miroslav Kubiczek >>> <miroslav.kubiczek at adaptivemobile.com >>> <mailto:miroslav.kubiczek at adaptivemobile.com>> wrote: >>> >>> >>> On 29. 05. 20 11:29, Numan Siddique wrote: >>>> On Fri, May 29, 2020 at 2:25 PM Miroslav Kubiczek >>>> <miroslav.kubiczek at adaptivemobile.com >>>> <mailto:miroslav.kubiczek at adaptivemobile.com>> wrote: >>>> >>>> Hi, I have finally implemented flows with >>>> check_pkt_larger action. Partial flow dump is >>>> here:table=0, priority=100 >>>> actions=check_pkt_larger(60)->NXM_NX_REG0[0],resubmit(,1) >>>> table=1, priority=1000,reg0=0x1 actions=resubmit(,2) >>>> table=1, priority=100,reg0=0 actions=resubmit(,3) I run >>>> a test which sends UDP packets (with VLAN) with size: >>>> 58, 59, 62, 63 and 69 in a loop. Only the packet with 69 >>>> match the action (1st line in table=1). In 2nd test I >>>> set check_pkt_larger just by one byte less to 59 and then all >>>> the above packets match. So the precision seems to be rounded to 8 bytes >>>> or something like that. >>>> Can this be fixed to be more precise ideally to exact 1 byte? >>>> >>>> >>>> Can you try without VLAN and see the accuracy ? >>> >>> I tried without VLAN, it's not accurate. >>> >>> >>> This is how the pkt length comparison is done >>> >>> in vswitchd - >>> >>> https://github.com/openvswitch/ovs/blob/master/ofproto/ofproto-dpif-xlate.c#L6265 >>> in kernel datapath - >>> >>> https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux/+/refs/heads/master/net/openvswitch/actions.c#1183 >> >> I can see the problem only when using DPDK. Does it use the same code? >> >> For flow translation the same code is hit. >> I think for ovs-dpdk datapath flows, the code here [1] should get hit. >> >> [1] - >> https://github.com/openvswitch/ovs/blob/master/lib/odp-execute.c#L766 >> >> I never tested with ovs-dpdk when I worked on it. > > > Thanks Numan, I added logging and I can see in that > dp_packet_size(packet) is always greater or equal 60 even if the real > packet size is 59 or less.
I think that Dumitru was right and the issue is l2 padding that should not be taken into account while executing this action. I sent a patch for this here: https://patchwork.ozlabs.org/project/openvswitch/patch/[email protected]/ Could you, please, check it in your setup? Best regards, Ilya Maximets. _______________________________________________ discuss mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
