<div dir="ltr"><p>Dear DPDK Team,</p><p>I am attempting to use DPDK's <code>rte_flow</code>
API to filter incoming packets at the hardware level. My goal is to
drop all packets except those with a specific IP address and UDP port.</p><p>I have implemented the following flow filtering rule in my code:</p><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-wrap"><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></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><span style="color:rgb(106,153,85)"> // 4 pour inclure END</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><br><div><span style="color:rgb(204,204,204)"> </span><span style="color:rgb(106,153,85)">// Remplir l'attribut de la règle</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(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(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(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></div><div><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(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(106,153,85)"> // Règle pour le trafic entrant</span></div><div><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(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)">1000</span><span style="color:rgb(204,204,204)">;</span><span style="color:rgb(106,153,85)"> // Priorité haute pour que cette règle soit appliquée en premier</span></div><br><div><span style="color:rgb(204,204,204)"> </span><span style="color:rgb(106,153,85)">// Définir le motif de filtrage (IP + UDP)</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><br><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><br><div><span style="color:rgb(204,204,204)"> </span><span style="color:rgb(106,153,85)">// Motif IPv4</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(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></div><div><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(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)">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><span style="color:rgb(106,153,85)"> // Adresse IP de destination</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></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(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></div><div><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(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)">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><span style="color:rgb(106,153,85)"> // Masque pour l'adresse IP</span></div><div><span style="color:rgb(204,204,204)"> }</span></div><div><span style="color:rgb(204,204,204)"> };</span></div><br><div><span style="color:rgb(204,204,204)"> </span><span style="color:rgb(106,153,85)">// Motif UDP</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(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></div><div><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(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)">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><span style="color:rgb(106,153,85)"> // Port de destination</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(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(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></div><div><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(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)">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><span style="color:rgb(106,153,85)"> // Masque pour le port</span></div><div><span style="color:rgb(204,204,204)"> }</span></div><div><span style="color:rgb(204,204,204)"> };</span></div><br><div><span style="color:rgb(204,204,204)"> </span><span style="color:rgb(106,153,85)">// Fin du motif</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><br><div><span style="color:rgb(204,204,204)"> </span><span style="color:rgb(106,153,85)">// Définir l'action (accepter le paquet)</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)">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(86,156,214)">sizeof</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></div><br><div><span style="color:rgb(204,204,204)"> </span><span style="color:rgb(106,153,85)">// Envoyer à la file RX_ID</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_QUEUE</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(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_queue</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)">index</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)">RX_ID</span><span style="color:rgb(204,204,204)">,</span><span style="color:rgb(106,153,85)"> // Envoyer les paquets à la file RX_ID</span></div><div><span style="color:rgb(204,204,204)"> };</span></div><br><div><span style="color:rgb(204,204,204)"> </span><span style="color:rgb(106,153,85)">// Fin de la liste d'actions</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><br><div><span style="color:rgb(204,204,204)"> </span><span style="color:rgb(106,153,85)">// Créer la règle de filtrage</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)">"Erreur lors de la création de la règle de filtrage : </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><br><div><span style="color:rgb(204,204,204)"> </span><span style="color:rgb(106,153,85)">// Afficher un message de succès</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></div><div><span style="color:rgb(204,204,204)"> </span><span style="color:rgb(206,145,120)">"Règle de filtrage créee avec succès pour l'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)"> et le 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></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)">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></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)">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)">udp_port</span></div><div><span style="color:rgb(204,204,204)"> );</span></div><br><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><p>However,
despite this configuration, I continue to receive packets with other IP
addresses and ports that do not match the specified filter.</p><p>Could
you provide any insights into why the filtering isn't working as
expected? Any advice on ensuring the rule is properly applied at the
hardware level would be greatly appreciated.</p><p>Thank you for your assistance.</p><p>Best regards,<br></p><p>Ali</p></div>