<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    Le 11-11-21 à 13:48, Daniel Romell a écrit :<br>
    <blockquote type="cite" cite="mid:a0168092b9214d2fb11bc0d791d834d2@sandvine.com">
      
      <style type="text/css" style="display:none;">P {margin-top:0;margin-bottom:0;}</style>
      <div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt;
        color: rgb(0, 0, 0); font-family: Calibri, Helvetica,
        sans-serif, "EmojiFont", "Apple Color
        Emoji", "Segoe UI Emoji", NotoColorEmoji,
        "Segoe UI Symbol", "Android Emoji",
        EmojiSymbols;">
        <div>Hey all!<br>
          <br>
          A few questions about rte_flow, specifically the MARK + JUMP
          actions;<br>
          <br>
          What's the expected behavior of MARK + JUMP in the same flow?
          Is the mark expected to survive to the target flow group? Is
          it driver specific? Undefined? Unsupported?<br>
          <br>
          For example, when testing with the following flow setup in
          testpmd (mlx CX6, DPDK 19.11.2 and latest mainline), none of
          the received packets are marked:<br>
          <br>
          flow create 0 ingress pattern eth / end actions mark id 0x1337
          / jump group 1 / end<br>
          flow create 0 ingress group 1 pattern eth / end actions queue
          index 0 / end<br>
          <br>
          A single flow with MARK + QUEUE works as expected.<br>
        </div>
      </div>
    </blockquote>
    I don't know about that, I would have expected it to work.<br>
    <blockquote type="cite" cite="mid:a0168092b9214d2fb11bc0d791d834d2@sandvine.com">
      <div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt;
        color: rgb(0, 0, 0); font-family: Calibri, Helvetica,
        sans-serif, "EmojiFont", "Apple Color
        Emoji", "Segoe UI Emoji", NotoColorEmoji,
        "Segoe UI Symbol", "Android Emoji",
        EmojiSymbols;">
        <div>
          <br>
          What I want in the end is a set of simple RSS rules that would
          match most of the traffic, and another set of rules that would
          mark a small subset of the traffic before being processed by
          the RSS rule.<br>
          <br>
          I realize I *could* duplicate the RSS actions and have them in
          the same rule as the MARK, but that just seems like the wrong
          thing to do for a few different reasons;<br>
          * It would require one flow for each combination of MARK and
          RSS condition.<br>
          * The MARK rules should be inserted and removed during
          runtime, while the RSS rules should be long-lived and static.<br>
          * The code inserting the MARK rule ideally shouldn't have be
          aware of the RSS config (other than that it should continue to
          a new group for further matching).<br>
        </div>
      </div>
    </blockquote>
    <br>
    <br>
    <p>As far as I know, and from that discussion you mention, there is
      no "go back to the default global RSS action" action. Once you add
      a rule, you have to add the RSS fate action.</p>
    <p><br>
    </p>
    <p>You can duplicate the "global" RSS using
      rte_eth_dev_rss_hash_conf_get only once with the new "shared
      action" API  (    rte_flow_action_handle_create etc) precisely to
      avoid creating many RSS context as you mentioned.</p>
    <p><br>
    </p>
    <p>Tom<br>
    </p>
    <blockquote type="cite" cite="mid:a0168092b9214d2fb11bc0d791d834d2@sandvine.com">
      <div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt;
        color: rgb(0, 0, 0); font-family: Calibri, Helvetica,
        sans-serif, "EmojiFont", "Apple Color
        Emoji", "Segoe UI Emoji", NotoColorEmoji,
        "Segoe UI Symbol", "Android Emoji",
        EmojiSymbols;">
        <div>
          <br>
          What's the right way of doing something like this with DPDK? <br>
          I've already implemented the same thing with a
          custom/proprietary mlx driver, so I know it should be doable.
          What I ended up doing there was simply to have two flow
          tables. The root table (level 0) holds all "mark" rules (flow
          tag), and forwards to everything (including misses) to the
          next table. The table at level 1 contains the RSS rules, and
          leaves all flows untagged so the tag set in the first level is
          preserved. Is there a way to get to a similar setup through
          the rte_flow API?<br>
          <br>
          Thanks,<br>
          Daniel Romell</div>
        <div><br>
        </div>
        <div>(CCs as suggested by Thomas in slack + Tom as this seems
          somewhat similar to
          <a href="https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.mail-archive.com%2Fusers%40dpdk.org%2Fmsg03900.html&data=04%7C01%7Ctom.barbette%40uclouvain.be%7C467455655f1c4a1527ef08d9a51199f5%7C7ab090d4fa2e4ecfbc7c4127b4d582ec%7C0%7C0%7C637722317846203685%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=Nkx%2F26braD4JuxxbcmLdpO7IB1yFQ53%2Bjd4%2BaiX1Nn4%3D&reserved=0" originalsrc="https://www.mail-archive.com/users@dpdk.org/msg03900.html" shash="a8LjAMGJsc6q6wo6+1VFB+C9g1nh1Y0DRnAAkPIZR0iJMNtjulBEQL89/eBnQV5qSrYPRGL61vbEbt99tanD+VcHEQonFzgWV3j8hXy3dr/w/L+38EyNhCtOrvuUWI9Wi1MOn6kFDg4wm3uiscAB4Xzk2q8kJ0Ep8BtRnLmdfCs=" class="OWAAutoLink" id="LPlnk452212" previewremoved="true" moz-do-not-send="true">
            https://www.mail-archive.com/users@dpdk.org/msg03900.html</a>)<br>
        </div>
        <br>
      </div>
      <p style="FONT-SIZE: 10pt; FONT-FAMILY: ARIAL"><strong>Disclaimer:</strong>
        <br>
        This communication (including any attachments) is intended for
        the use of the intended recipient(s) only and may contain
        information that is considered confidential, proprietary,
        sensitive and/or otherwise legally protected. Any unauthorized
        use or dissemination of this communication is strictly
        prohibited. If you have received this communication in error,
        please immediately notify the sender by return e-mail message
        and delete all copies of the original communication. Thank you
        for your cooperation.
      </p>
    </blockquote>
  </body>
</html>