<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi SidAli,</p>
    <p><br>
    </p>
    <p>if that is the only rule you are creating then I don't think it
      is enough. Please have a look at this snippet I made few years
      back. <br>
    </p>
    <p><a class="moz-txt-link-freetext" href="https://gist.github.com/lukashino/8fe387caabe2750d396bc97f2d66066a">https://gist.github.com/lukashino/8fe387caabe2750d396bc97f2d66066a</a></p>
    <p><br>
    </p>
    <p>There you first initialize the number of queues and then in the
      follow-up rules the patterns you want to apply RSS to.</p>
    <p><br>
    </p>
    <p>Cheers,</p>
    <p>Lukas<br>
    </p>
    <div class="moz-cite-prefix">On 3/25/25 17:42, Sid ali cherrati
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CALn3+CMzLvE8hF4T0vdrit9S-wqb2nnETMByPY7aZ=4dQrhMGw@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr">
          <div>Dear DPDK Team,</div>
          <div><br>
          </div>
          <div>I hope this message finds you well. I am reaching out to
            seek your expertise regarding an issue I am encountering
            while configuring <b>DPDK flow rules with RSS</b> on an <b>Intel
              X710 NIC</b> (using the <code>i40e</code> driver).
            Despite multiple attempts, I have been unable to resolve the
            error and would greatly appreciate your guidance.</div>
          <div><br>
          </div>
          <div><b>Objective</b> :</div>
          <div>Redirect UDP traffic (specific destination IP/port) to <b>multiple
              RX queues</b> using <code>rte_flow</code> with RSS.<br>
            <br>
          </div>
          <div><b>Error : </b><br>
            Validation failed: RSS Queues not supported when pattern
            specified .<br>
            <br>
            <p><b>Hardware/Software</b>:</p>
          </div>
          <div>
            <ul>
              <li>
                <p>NIC: Intel X710</p>
              </li>
              <li>Driver: <code>i40e</code></li>
              <li>
                <p>DPDK Version: 23.11</p>
              </li>
            </ul>
            <b>Code Snippet:</b><br>
            <div
style="color:rgb(204,204,204);background-color:rgb(31,31,31);font-family:"Droid Sans Mono","monospace",monospace;font-weight:normal;font-size:14px;line-height:19px;white-space:pre"><div><span
            style="color:rgb(86,156,214)">int</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(220,220,170)">flow_filtering</span><span
            style="color:rgb(204,204,204)">(</span><span
            style="color:rgb(78,201,176)">uint16_t</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(156,220,254)">port_id</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(78,201,176)">uint32_t</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(156,220,254)">ip_addr</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(78,201,176)">uint16_t</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(156,220,254)">udp_port</span><span
            style="color:rgb(204,204,204)">) {</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(86,156,214)">struct</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(78,201,176)">rte_flow_error</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(156,220,254)">error</span><span
            style="color:rgb(204,204,204)">;</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(86,156,214)">struct</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(78,201,176)">rte_flow_attr</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(156,220,254)">attr</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> { .</span><span
            style="color:rgb(156,220,254)">ingress</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(181,206,168)">1</span><span
            style="color:rgb(204,204,204)">, .</span><span
            style="color:rgb(156,220,254)">priority</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(181,206,168)">0</span><span
            style="color:rgb(204,204,204)"> };</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(86,156,214)">struct</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(78,201,176)">rte_flow_item</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(156,220,254)">pattern</span><span
            style="color:rgb(204,204,204)">[</span><span
            style="color:rgb(181,206,168)">4</span><span
            style="color:rgb(204,204,204)">];</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(86,156,214)">struct</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(78,201,176)">rte_flow_action</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(156,220,254)">action</span><span
            style="color:rgb(204,204,204)">[</span><span
            style="color:rgb(181,206,168)">2</span><span
            style="color:rgb(204,204,204)">];</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(86,156,214)">struct</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(78,201,176)">rte_flow</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">*</span><span
            style="color:rgb(156,220,254)">flow</span><span
            style="color:rgb(204,204,204)">;</span></div>
<div><span style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(106,153,85)">// Ethernet</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(220,220,170)">memset</span><span
            style="color:rgb(204,204,204)">(</span><span
            style="color:rgb(156,220,254)">pattern</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(181,206,168)">0</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(86,156,214)">sizeof</span><span
            style="color:rgb(204,204,204)">(</span><span
            style="color:rgb(156,220,254)">pattern</span><span
            style="color:rgb(204,204,204)">));</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(156,220,254)">pattern</span><span
            style="color:rgb(204,204,204)">[</span><span
            style="color:rgb(181,206,168)">0</span><span
            style="color:rgb(204,204,204)">].</span><span
            style="color:rgb(156,220,254)">type</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(79,193,255)">RTE_FLOW_ITEM_TYPE_ETH</span><span
            style="color:rgb(204,204,204)">;</span></div>
<div><span style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(106,153,85)">// IPv4</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(86,156,214)">struct</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(78,201,176)">rte_flow_item_ipv4</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(156,220,254)">ipv4_spec</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> { .</span><span
            style="color:rgb(156,220,254)">hdr</span><span
            style="color:rgb(204,204,204)">.</span><span
            style="color:rgb(156,220,254)">dst_addr</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(86,156,214)">RTE_BE32</span><span
            style="color:rgb(204,204,204)">(</span><span
            style="color:rgb(156,220,254)">ip_addr</span><span
            style="color:rgb(204,204,204)">) };</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(86,156,214)">struct</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(78,201,176)">rte_flow_item_ipv4</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(156,220,254)">ipv4_mask</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> { .</span><span
            style="color:rgb(156,220,254)">hdr</span><span
            style="color:rgb(204,204,204)">.</span><span
            style="color:rgb(156,220,254)">dst_addr</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(86,156,214)">RTE_BE32</span><span
            style="color:rgb(204,204,204)">(</span><span
            style="color:rgb(181,206,168)">0xFFFFFFFF</span><span
            style="color:rgb(204,204,204)">) };</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(156,220,254)">pattern</span><span
            style="color:rgb(204,204,204)">[</span><span
            style="color:rgb(181,206,168)">1</span><span
            style="color:rgb(204,204,204)">].</span><span
            style="color:rgb(156,220,254)">type</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(79,193,255)">RTE_FLOW_ITEM_TYPE_IPV4</span><span
            style="color:rgb(204,204,204)">;</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(156,220,254)">pattern</span><span
            style="color:rgb(204,204,204)">[</span><span
            style="color:rgb(181,206,168)">1</span><span
            style="color:rgb(204,204,204)">].</span><span
            style="color:rgb(156,220,254)">spec</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">&</span><span
            style="color:rgb(156,220,254)">ipv4_spec</span><span
            style="color:rgb(204,204,204)">;</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(156,220,254)">pattern</span><span
            style="color:rgb(204,204,204)">[</span><span
            style="color:rgb(181,206,168)">1</span><span
            style="color:rgb(204,204,204)">].</span><span
            style="color:rgb(156,220,254)">mask</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">&</span><span
            style="color:rgb(156,220,254)">ipv4_mask</span><span
            style="color:rgb(204,204,204)">;</span></div>
<div><span style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(106,153,85)">// UDP</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(86,156,214)">struct</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(78,201,176)">rte_flow_item_udp</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(156,220,254)">udp_spec</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> { .</span><span
            style="color:rgb(156,220,254)">hdr</span><span
            style="color:rgb(204,204,204)">.</span><span
            style="color:rgb(156,220,254)">dst_port</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(86,156,214)">RTE_BE16</span><span
            style="color:rgb(204,204,204)">(</span><span
            style="color:rgb(156,220,254)">udp_port</span><span
            style="color:rgb(204,204,204)">) };</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(86,156,214)">struct</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(78,201,176)">rte_flow_item_udp</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(156,220,254)">udp_mask</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> { .</span><span
            style="color:rgb(156,220,254)">hdr</span><span
            style="color:rgb(204,204,204)">.</span><span
            style="color:rgb(156,220,254)">dst_port</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(86,156,214)">RTE_BE16</span><span
            style="color:rgb(204,204,204)">(</span><span
            style="color:rgb(181,206,168)">0xFFFF</span><span
            style="color:rgb(204,204,204)">) };</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(156,220,254)">pattern</span><span
            style="color:rgb(204,204,204)">[</span><span
            style="color:rgb(181,206,168)">2</span><span
            style="color:rgb(204,204,204)">].</span><span
            style="color:rgb(156,220,254)">type</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(79,193,255)">RTE_FLOW_ITEM_TYPE_UDP</span><span
            style="color:rgb(204,204,204)">;</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(156,220,254)">pattern</span><span
            style="color:rgb(204,204,204)">[</span><span
            style="color:rgb(181,206,168)">2</span><span
            style="color:rgb(204,204,204)">].</span><span
            style="color:rgb(156,220,254)">spec</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">&</span><span
            style="color:rgb(156,220,254)">udp_spec</span><span
            style="color:rgb(204,204,204)">;</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(156,220,254)">pattern</span><span
            style="color:rgb(204,204,204)">[</span><span
            style="color:rgb(181,206,168)">2</span><span
            style="color:rgb(204,204,204)">].</span><span
            style="color:rgb(156,220,254)">mask</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">&</span><span
            style="color:rgb(156,220,254)">udp_mask</span><span
            style="color:rgb(204,204,204)">;</span></div>

<div><span style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(156,220,254)">pattern</span><span
            style="color:rgb(204,204,204)">[</span><span
            style="color:rgb(181,206,168)">3</span><span
            style="color:rgb(204,204,204)">].</span><span
            style="color:rgb(156,220,254)">type</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(79,193,255)">RTE_FLOW_ITEM_TYPE_END</span><span
            style="color:rgb(204,204,204)">;</span></div>
<div><span style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(106,153,85)">// action</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(156,220,254)">action</span><span
            style="color:rgb(204,204,204)">[</span><span
            style="color:rgb(181,206,168)">0</span><span
            style="color:rgb(204,204,204)">].</span><span
            style="color:rgb(156,220,254)">type</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(79,193,255)">RTE_FLOW_ACTION_TYPE_RSS</span><span
            style="color:rgb(204,204,204)">;</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(106,153,85)">// struct rte_flow_action_queue queue_action = { .index = RX_ID   };</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(106,153,85)">// action[0].conf = &queue_action;</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(106,153,85)">// Configuration RSS</span></div>
<div><span style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(78,201,176)">uint16_t</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(156,220,254)">queues</span><span
            style="color:rgb(86,156,214)">[]</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> {</span><span
            style="color:rgb(181,206,168)">1</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(181,206,168)">2</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(181,206,168)">3</span><span
            style="color:rgb(204,204,204)">};</span></div>
<div><span style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(86,156,214)">struct</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(78,201,176)">rte_flow_action_rss</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(156,220,254)">rss_conf</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> {</span></div><div><span
            style="color:rgb(204,204,204)">        .</span><span
            style="color:rgb(156,220,254)">func</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(79,193,255)">RTE_ETH_HASH_FUNCTION_DEFAULT</span><span
            style="color:rgb(204,204,204)">,</span></div><div><span
            style="color:rgb(204,204,204)">        .</span><span
            style="color:rgb(156,220,254)">types</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span></div><div><span
            style="color:rgb(204,204,204)">            </span><span
            style="color:rgb(86,156,214)">RTE_ETH_RSS_IPV4</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">|</span></div><div><span
            style="color:rgb(204,204,204)">            </span><span
            style="color:rgb(86,156,214)">RTE_ETH_RSS_UDP</span><span
            style="color:rgb(204,204,204)">,</span></div><div><span
            style="color:rgb(204,204,204)">        .</span><span
            style="color:rgb(156,220,254)">key_len</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(181,206,168)">0</span><span
            style="color:rgb(204,204,204)">,</span></div><div><span
            style="color:rgb(204,204,204)">        .</span><span
            style="color:rgb(156,220,254)">queue_num</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(181,206,168)">3</span><span
            style="color:rgb(204,204,204)">,</span></div><div><span
            style="color:rgb(204,204,204)">        .</span><span
            style="color:rgb(156,220,254)">queue</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(156,220,254)">queues</span><span
            style="color:rgb(204,204,204)">,</span></div><div><span
            style="color:rgb(204,204,204)">    };</span></div>
<div><span style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(156,220,254)">action</span><span
            style="color:rgb(204,204,204)">[</span><span
            style="color:rgb(181,206,168)">0</span><span
            style="color:rgb(204,204,204)">].</span><span
            style="color:rgb(156,220,254)">type</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(79,193,255)">RTE_FLOW_ACTION_TYPE_RSS</span><span
            style="color:rgb(204,204,204)">;</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(156,220,254)">action</span><span
            style="color:rgb(204,204,204)">[</span><span
            style="color:rgb(181,206,168)">0</span><span
            style="color:rgb(204,204,204)">].</span><span
            style="color:rgb(156,220,254)">conf</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">&</span><span
            style="color:rgb(156,220,254)">rss_conf</span><span
            style="color:rgb(204,204,204)">;</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(156,220,254)">action</span><span
            style="color:rgb(204,204,204)">[</span><span
            style="color:rgb(181,206,168)">1</span><span
            style="color:rgb(204,204,204)">].</span><span
            style="color:rgb(156,220,254)">type</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(79,193,255)">RTE_FLOW_ACTION_TYPE_END</span><span
            style="color:rgb(204,204,204)">;</span></div><div><span
            style="color:rgb(204,204,204)">    </span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(197,134,192)">if</span><span
            style="color:rgb(204,204,204)"> (</span><span
            style="color:rgb(220,220,170)">rte_flow_validate</span><span
            style="color:rgb(204,204,204)">(</span><span
            style="color:rgb(156,220,254)">port_id</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(212,212,212)">&</span><span
            style="color:rgb(156,220,254)">attr</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(156,220,254)">pattern</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(156,220,254)">action</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(212,212,212)">&</span><span
            style="color:rgb(156,220,254)">error</span><span
            style="color:rgb(204,204,204)">) </span><span
            style="color:rgb(212,212,212)">!=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(181,206,168)">0</span><span
            style="color:rgb(204,204,204)">) {</span></div><div><span
            style="color:rgb(204,204,204)">        </span><span
            style="color:rgb(220,220,170)">printf</span><span
            style="color:rgb(204,204,204)">(</span><span
            style="color:rgb(206,145,120)">"Validation Failure: </span><span
            style="color:rgb(156,220,254)">%s</span><span
            style="color:rgb(215,186,125)">\n</span><span
            style="color:rgb(206,145,120)">"</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(156,220,254)">error</span><span
            style="color:rgb(204,204,204)">.</span><span
            style="color:rgb(156,220,254)">message</span><span
            style="color:rgb(204,204,204)">);</span></div><div><span
            style="color:rgb(204,204,204)">        </span><span
            style="color:rgb(197,134,192)">return</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">-</span><span
            style="color:rgb(181,206,168)">1</span><span
            style="color:rgb(204,204,204)">;</span></div><div><span
            style="color:rgb(204,204,204)">    }</span></div><div><span
            style="color:rgb(204,204,204)">    </span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(106,153,85)">// Flow rule creation</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(156,220,254)">flow</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">=</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(220,220,170)">rte_flow_create</span><span
            style="color:rgb(204,204,204)">(</span><span
            style="color:rgb(156,220,254)">port_id</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(212,212,212)">&</span><span
            style="color:rgb(156,220,254)">attr</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(156,220,254)">pattern</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(156,220,254)">action</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(212,212,212)">&</span><span
            style="color:rgb(156,220,254)">error</span><span
            style="color:rgb(204,204,204)">);</span></div><div><span
            style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(197,134,192)">if</span><span
            style="color:rgb(204,204,204)"> (</span><span
            style="color:rgb(156,220,254)">flow</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">==</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(86,156,214)">NULL</span><span
            style="color:rgb(204,204,204)">) {</span></div><div><span
            style="color:rgb(204,204,204)">        </span><span
            style="color:rgb(220,220,170)">printf</span><span
            style="color:rgb(204,204,204)">(</span><span
            style="color:rgb(206,145,120)">"Error creating flow rule : </span><span
            style="color:rgb(156,220,254)">%s</span><span
            style="color:rgb(215,186,125)">\n</span><span
            style="color:rgb(206,145,120)">"</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(156,220,254)">error</span><span
            style="color:rgb(204,204,204)">.</span><span
            style="color:rgb(156,220,254)">message</span><span
            style="color:rgb(204,204,204)">);</span></div><div><span
            style="color:rgb(204,204,204)">        </span><span
            style="color:rgb(197,134,192)">return</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">-</span><span
            style="color:rgb(181,206,168)">1</span><span
            style="color:rgb(204,204,204)">;</span></div><div><span
            style="color:rgb(204,204,204)">    }</span></div>
<div><span style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(220,220,170)">printf</span><span
            style="color:rgb(204,204,204)">(</span><span
            style="color:rgb(206,145,120)">"Flow rule created for IP </span><span
            style="color:rgb(156,220,254)">%u</span><span
            style="color:rgb(206,145,120)">.</span><span
            style="color:rgb(156,220,254)">%u</span><span
            style="color:rgb(206,145,120)">.</span><span
            style="color:rgb(156,220,254)">%u</span><span
            style="color:rgb(206,145,120)">.</span><span
            style="color:rgb(156,220,254)">%u</span><span
            style="color:rgb(206,145,120)"> and UDP port </span><span
            style="color:rgb(156,220,254)">%u</span><span
            style="color:rgb(215,186,125)">\n</span><span
            style="color:rgb(206,145,120)">"</span><span
            style="color:rgb(204,204,204)">,</span></div><div><span
            style="color:rgb(204,204,204)">           (</span><span
            style="color:rgb(156,220,254)">ip_addr</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">>></span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(181,206,168)">24</span><span
            style="color:rgb(204,204,204)">) </span><span
            style="color:rgb(212,212,212)">&</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(181,206,168)">0xFF</span><span
            style="color:rgb(204,204,204)">, (</span><span
            style="color:rgb(156,220,254)">ip_addr</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">>></span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(181,206,168)">16</span><span
            style="color:rgb(204,204,204)">) </span><span
            style="color:rgb(212,212,212)">&</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(181,206,168)">0xFF</span><span
            style="color:rgb(204,204,204)">,</span></div><div><span
            style="color:rgb(204,204,204)">           (</span><span
            style="color:rgb(156,220,254)">ip_addr</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">>></span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(181,206,168)">8</span><span
            style="color:rgb(204,204,204)">) </span><span
            style="color:rgb(212,212,212)">&</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(181,206,168)">0xFF</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(156,220,254)">ip_addr</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(212,212,212)">&</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(181,206,168)">0xFF</span><span
            style="color:rgb(204,204,204)">, </span><span
            style="color:rgb(156,220,254)">udp_port</span><span
            style="color:rgb(204,204,204)">);</span></div>
<div><span style="color:rgb(204,204,204)">    </span><span
            style="color:rgb(197,134,192)">return</span><span
            style="color:rgb(204,204,204)"> </span><span
            style="color:rgb(181,206,168)">0</span><span
            style="color:rgb(204,204,204)">;</span></div><div><span
            style="color:rgb(204,204,204)">}</span></div></div>
            <br>
            <p>I would be grateful for any insights, code examples, or
              documentation references to resolve this issue. Please let
              me know if additional details are required.</p>
            <p>Thank you in advance for your time and support.</p>
            <p>Best regards,<br>
            </p>
            <p>SidAli</p>
            <br>
          </div>
        </div>
      </div>
    </blockquote>
  </body>
</html>