[dpdk-dev,v3,2/4] net/bond: use ptype flags for LACP rx filtering
Checks
Commit Message
From: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Use packet types flags in mbuf to provide hint for filtering of LACP
control plane traffic from the data path.
Signed-off-by: Declan Doherty <declan.doherty@intel.com>
---
drivers/net/bonding/rte_eth_bond_pmd.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
Comments
On 04/07/17 17:46, Declan Doherty wrote:
> From: Tomasz Kulasek <tomaszx.kulasek@intel.com>
>
> Use packet types flags in mbuf to provide hint for filtering of LACP
> control plane traffic from the data path.
>
> Signed-off-by: Declan Doherty <declan.doherty@intel.com>
> ---
...
>
Acked-by: Declan Doherty <declan.doherty@intel.com>
@@ -180,6 +180,13 @@ bond_ethdev_rx_burst_8023ad(void *queue, struct rte_mbuf **bufs,
/* Handle slow protocol packets. */
while (j < num_rx_total) {
+
+ /* If packet is not pure L2 and is known, skip it */
+ if ((bufs[j]->packet_type & ~RTE_PTYPE_L2_ETHER) != 0) {
+ j++;
+ continue;
+ }
+
if (j + 3 < num_rx_total)
rte_prefetch0(rte_pktmbuf_mtod(bufs[j + 3], void *));
@@ -187,7 +194,7 @@ bond_ethdev_rx_burst_8023ad(void *queue, struct rte_mbuf **bufs,
subtype = ((struct slow_protocol_frame *)hdr)->slow_protocol.subtype;
/* Remove packet from array if it is slow packet or slave is not
- * in collecting state or bondign interface is not in promiscus
+ * in collecting state or bonding interface is not in promiscuous
* mode and packet address does not match. */
if (unlikely(is_lacp_packets(hdr->ether_type, subtype, bufs[j]->vlan_tci) ||
!collecting || (!promisc &&