summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
diff options
context:
space:
mode:
authorMaor Gottlieb2016-04-29 00:36:38 +0200
committerDavid S. Miller2016-04-29 22:29:11 +0200
commit33cfaaa8f36ffbee9ad259264334325b5449f5fe (patch)
tree1ecbaa5c5fd3b3bde27db7923fe5bc610597294b /drivers/net/ethernet/mellanox/mlx5/core/en_main.c
parentnet/mlx5e: Refactor mlx5e flow steering structs (diff)
downloadkernel-qcow2-linux-33cfaaa8f36ffbee9ad259264334325b5449f5fe.tar.gz
kernel-qcow2-linux-33cfaaa8f36ffbee9ad259264334325b5449f5fe.tar.xz
kernel-qcow2-linux-33cfaaa8f36ffbee9ad259264334325b5449f5fe.zip
net/mlx5e: Split the main flow steering table
Currently, the main flow table is used for two purposes: One is to do mac filtering and the other is to classify the packet l3-l4 header in order to steer the packet to the right RSS TIR. This design is very complex, for each configured mac address we have to add eleven rules (rule for each traffic type), the same if the device is put to promiscuous/allmulti mode. This scheme isn't scalable for future features like aRFS. In order to simplify it, the main flow table is split to two flow tables: 1. l2 table - filter the packet dmac address, if there is a match we forward to the ttc flow table. 2. TTC (Traffic Type Classifier) table - classify the traffic type of the packet and steer the packet to the right TIR. In this new design, when new mac address is added, the driver adds only one flow rule instead of eleven. Signed-off-by: Maor Gottlieb <maorg@mellanox.com> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/en_main.c')
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/en_main.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index 953c8afd8559..518192e59779 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -2977,7 +2977,7 @@ static void *mlx5e_create_netdev(struct mlx5_core_dev *mdev)
mlx5e_create_q_counter(priv);
- mlx5e_init_eth_addr(priv);
+ mlx5e_init_l2_addr(priv);
mlx5e_vxlan_init(priv);