<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>