net/mlx4_core: Preparations for 802.1ad VLAN support
mlx4_core preparation to support hardware accelerated 802.1ad VLAN device. To allow 802.1ad accelerated device, "packet has vlan" (phv) Firmware capability should be available. Firmware without the phv capability won't behave properly and can't support 802.1ad device acceleration. The driver checks the Firmware capability and sets the phv bit accordingly in SET_PORT command. Signed-off-by: Hadar Hen Zion <hadarh@mellanox.com> Signed-off-by: Amir Vadai <amirv@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committato da
David S. Miller

parent
0b42c2863b
commit
77fc29c4bb
@@ -405,6 +405,21 @@ static int mlx4_dev_cap(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
|
||||
dev->caps.max_gso_sz = dev_cap->max_gso_sz;
|
||||
dev->caps.max_rss_tbl_sz = dev_cap->max_rss_tbl_sz;
|
||||
|
||||
if (dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_PHV_EN) {
|
||||
struct mlx4_init_hca_param hca_param;
|
||||
|
||||
memset(&hca_param, 0, sizeof(hca_param));
|
||||
err = mlx4_QUERY_HCA(dev, &hca_param);
|
||||
/* Turn off PHV_EN flag in case phv_check_en is set.
|
||||
* phv_check_en is a HW check that parse the packet and verify
|
||||
* phv bit was reported correctly in the wqe. To allow QinQ
|
||||
* PHV_EN flag should be set and phv_check_en must be cleared
|
||||
* otherwise QinQ packets will be drop by the HW.
|
||||
*/
|
||||
if (err || hca_param.phv_check_en)
|
||||
dev->caps.flags2 &= ~MLX4_DEV_CAP_FLAG2_PHV_EN;
|
||||
}
|
||||
|
||||
/* Sense port always allowed on supported devices for ConnectX-1 and -2 */
|
||||
if (mlx4_priv(dev)->pci_dev_data & MLX4_PCI_DEV_FORCE_SENSE_PORT)
|
||||
dev->caps.flags |= MLX4_DEV_CAP_FLAG_SENSE_SUPPORT;
|
||||
|
Fai riferimento in un nuovo problema
Block a user