<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p><br>
</p>
<div class="moz-cite-prefix">On 03. 06. 20 20:09, Numan Siddique
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAH=CPzrp5_ZJYVPz4wrtV+Mj6yPaYQeN3P-uOHg2OKUT8P49Xw@mail.gmail.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<div><span style="color: rgb(255, 0, 0);"><span
style="background-color: inherit;">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.</span></span><br>
</div>
<div><br>
</div>
<div dir="ltr">
<div dir="ltr"><br>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Jun 3, 2020 at 8:27
PM Miroslav Kubiczek <<a
href="mailto:miroslav.kubiczek@adaptivemobile.com"
moz-do-not-send="true">miroslav.kubiczek@adaptivemobile.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<p><br>
</p>
<div>On 29. 05. 20 12:51, Numan Siddique wrote:<br>
</div>
<blockquote type="cite">
<div><span style="color:rgb(255,0,0)"><span
style="background-color:inherit">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.</span></span><br>
</div>
<div><br>
</div>
<div dir="ltr">
<div dir="ltr"><br>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, May 29,
2020 at 3:41 PM Miroslav Kubiczek <<a
href="mailto:miroslav.kubiczek@adaptivemobile.com"
target="_blank" moz-do-not-send="true">miroslav.kubiczek@adaptivemobile.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px
0px 0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<p><br>
</p>
<div>On 29. 05. 20 11:29, Numan Siddique wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri,
May 29, 2020 at 2:25 PM Miroslav
Kubiczek <<a
href="mailto:miroslav.kubiczek@adaptivemobile.com"
target="_blank" moz-do-not-send="true">miroslav.kubiczek@adaptivemobile.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<pre><tt>Hi,
I have finally implemented flows with check_pkt_larger action. Partial flow dump is here:</tt><tt>
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 </tt><tt>I set check_pkt_larger</tt> 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?</pre>
</div>
</blockquote>
<div><br>
</div>
<div>Can you try without VLAN and see the
accuracy ?</div>
</div>
</div>
</blockquote>
<p>I tried without VLAN, it's not accurate.</p>
</div>
</blockquote>
<div><br>
</div>
<div>This is how the pkt length comparison is done</div>
<div><br>
</div>
<div>in vswitchd - <a
href="https://github.com/openvswitch/ovs/blob/master/ofproto/ofproto-dpif-xlate.c#L6265"
target="_blank" moz-do-not-send="true">https://github.com/openvswitch/ovs/blob/master/ofproto/ofproto-dpif-xlate.c#L6265</a></div>
<div>in kernel datapath - <a
href="https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux/+/refs/heads/master/net/openvswitch/actions.c#1183"
target="_blank" moz-do-not-send="true">https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux/+/refs/heads/master/net/openvswitch/actions.c#1183</a></div>
</div>
</div>
</blockquote>
<p>I can see the problem only when using DPDK. Does it use
the same code?<br>
</p>
</div>
</blockquote>
<div>For flow translation the same code is hit.</div>
<div>I think for ovs-dpdk datapath flows, the code here [1]
should get hit.</div>
<div><br>
</div>
<div>[1] - <a
href="https://github.com/openvswitch/ovs/blob/master/lib/odp-execute.c#L766"
moz-do-not-send="true">https://github.com/openvswitch/ovs/blob/master/lib/odp-execute.c#L766</a></div>
<div><br>
</div>
<div>I never tested with ovs-dpdk when I worked on it.</div>
</div>
</div>
</blockquote>
<p><br>
</p>
<p>Thanks Numan, I added logging and I can see in that <span
class="pl-c1">dp_packet_size</span>(packet) is always greater or
equal 60 even if the real packet size is 59 or less.</p>
<p><br>
</p>
<blockquote type="cite"
cite="mid:CAH=CPzrp5_ZJYVPz4wrtV+Mj6yPaYQeN3P-uOHg2OKUT8P49Xw@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote">
<div><br>
</div>
<div>Thanks</div>
<div>Numan</div>
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<p> When tested with non DPDK then it's working fine. Both
versions are:<br>
$ ovs-ofctl --version<br>
ovs-ofctl (Open vSwitch) 2.13.0<br>
OpenFlow versions 0x1:0x6</p>
<p>Thanks,<br>
Miro<br>
</p>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<div><br>
</div>
<div>Thanks</div>
<div>Numan</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px
0px 0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<p> </p>
</div>
</blockquote>
<blockquote class="gmail_quote" style="margin:0px
0px 0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<p> </p>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<div><br>
</div>
<div>man ovs-actions for check_pkt_larger
says</div>
<div><br>
</div>
<div>****</div>
Syntax:<br>
check_pkt_larger(pkt_len)->dst<br>
<br>
Checks if the packet is larger than
the specified length in pkt_len. If so,
stores 1 in dst, which should be a 1-bit
field; if not, stores 0.<br>
<br>
The packet length to check againt
the argument pkt_len includes the L2
header and L2 payload of the packet, but
not the VLAN tag (if present).<br>
<br>
Examples:<br>
·
check_pkt_larger(1500)->reg0[0]<br>
<div> ·
check_pkt_larger(8000)->reg9[10] </div>
<div><br>
</div>
<div>******</div>
<div><br>
</div>
<div>Thanks</div>
<div>Numan</div>
<div><br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<pre>Thanks,
Miro
</pre>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
_______________________________________________<br>
discuss mailing list<br>
<a href="mailto:discuss@openvswitch.org"
target="_blank" moz-do-not-send="true">discuss@openvswitch.org</a><br>
<a
href="https://mail.openvswitch.org/mailman/listinfo/ovs-discuss"
rel="noreferrer" target="_blank"
moz-do-not-send="true">https://mail.openvswitch.org/mailman/listinfo/ovs-discuss</a><br>
</blockquote>
</div>
</div>
</blockquote>
</div>
_______________________________________________<br>
discuss mailing list<br>
<a href="mailto:discuss@openvswitch.org" target="_blank"
moz-do-not-send="true">discuss@openvswitch.org</a><br>
<a
href="https://mail.openvswitch.org/mailman/listinfo/ovs-discuss"
rel="noreferrer" target="_blank" moz-do-not-send="true">https://mail.openvswitch.org/mailman/listinfo/ovs-discuss</a><br>
</blockquote>
</div>
</div>
</blockquote>
</body>
</html>