Hi, I apologize for the very late response.
> From: narsimharaj pentam <[email protected]> > Sent: Friday, August 18, 2023 05:34 > To: [email protected] > Subject: VLAN filtering in mlx5 > > Hi > > We are using a mellanox mlx5 card (firmware version: 16.35.1012) with > mlx5_pci driver. Enabled multiple ports DPDK port 0 (internally referred as > slot 1 port 0: s1p0) and DPDK port 1(slot 0 port 0 : s0p0). Multiple vlans > are created on each of these interfaces , s0p0.100, > s0p0.101,s0p0.102 and s0p1.200,s0p1.201,s0p1.202. Are these kernel VLAN interfaces? > In our network we receive broadcast (ARP) and multicast(ICMPV6 for neighbour > discovery) on port 0 and port 1. At the DPDK application we are observing the > packets intended for interface s0p0.100 are landing on other vlan interfaces > s0p0.101,sop0.102. > The VLAN traffic is not segregated accordingly. > > Do we support VLAN filtering in mlx5 ? > > Came across VLAN filtering "vlan_filter_set" , will this help to drop > unintended VLAN traffic ? or Do we need to create any VLAN specific rte > flows in addition to the vlan filter set ? VLAN filtering is supported by mlx5 PMD. It's important to note that: - VLAN configuration in the kernel is not inherited by the mlx5 PMD. - When DPDK application is started on mlx5 devices, application will intercept the traffic - unless flow isolation is enabled (https://doc.dpdk.org/guides/howto/flow_bifurcation.html). - Which packets are intercepted by an application depends on: - Promiscuous mode. - All multicast mode: - If enabled ALL multicast packets from ALL VLANs are received. - If disabled, only broadcast and IPv6 multicast traffic from registered VLANs is received. - Registered MAC Addresses - default one and additional registered through rte_eth_dev_mac_addr_add() - Registered VLANs - registered through rte_eth_dev_vlan_filter() VLAN filtering itself does not require any additional flow rules. So, if I understand the requirement correctly, then in your case it would be required to: - Disable promiscuous mode on both ports - Disable all multicast mode on both ports - On s0p0 explicitly enable VLANs 100, 101 and 102 through rte_eth_dev_vlan_filter(). - On s1p0 explicitly enable VLANs 200, 201 and 202 through rte_eth_dev_vlan_filter(). Best regards, Dariusz Sosnowski
