diff options
author | Eugenia Emantayev <eugenia@mellanox.co.il> | 2011-12-12 23:16:02 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-12-13 13:56:07 -0500 |
commit | 0ec2c0f86d31ab36547307f133b0016006bdc6b5 (patch) | |
tree | ba799abcd07816fc7ca17b1f1b1f22e2dec31848 /drivers/net/ethernet/mellanox/mlx4/mlx4.h | |
parent | 8e59d254feb3826230d19fb643691c89eabd71f8 (diff) |
mlx4: Traffic steering management support for SRIOV
Let multicast/unicast attaching flow go through resource tracker.
The PF is the one responsible for managing all the steering entries.
Define and use module parameter that determines the number of qps
per multicast group.
Minor changes in function calls according to changed prototype.
Signed-off-by: Eugenia Emantayev <eugenia@mellanox.co.il>
Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx4/mlx4.h')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/mlx4.h | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/mlx4.h b/drivers/net/ethernet/mellanox/mlx4/mlx4.h index 2488be8bb02..a38ffc99736 100644 --- a/drivers/net/ethernet/mellanox/mlx4/mlx4.h +++ b/drivers/net/ethernet/mellanox/mlx4/mlx4.h | |||
@@ -61,9 +61,9 @@ enum { | |||
61 | }; | 61 | }; |
62 | 62 | ||
63 | enum { | 63 | enum { |
64 | MLX4_MGM_ENTRY_SIZE = 0x100, | 64 | MLX4_MAX_MGM_ENTRY_SIZE = 0x1000, |
65 | MLX4_QP_PER_MGM = 4 * (MLX4_MGM_ENTRY_SIZE / 16 - 2), | 65 | MLX4_MAX_QP_PER_MGM = 4 * (MLX4_MAX_MGM_ENTRY_SIZE / 16 - 2), |
66 | MLX4_MTT_ENTRY_PER_SEG = 8 | 66 | MLX4_MTT_ENTRY_PER_SEG = 8, |
67 | }; | 67 | }; |
68 | 68 | ||
69 | enum { | 69 | enum { |
@@ -190,6 +190,8 @@ do { \ | |||
190 | #define mlx4_warn(mdev, format, arg...) \ | 190 | #define mlx4_warn(mdev, format, arg...) \ |
191 | dev_warn(&mdev->pdev->dev, format, ##arg) | 191 | dev_warn(&mdev->pdev->dev, format, ##arg) |
192 | 192 | ||
193 | extern int mlx4_log_num_mgm_entry_size; | ||
194 | |||
193 | #define MLX4_MAX_NUM_SLAVES (MLX4_MAX_NUM_PF + MLX4_MAX_NUM_VF) | 195 | #define MLX4_MAX_NUM_SLAVES (MLX4_MAX_NUM_PF + MLX4_MAX_NUM_VF) |
194 | #define ALL_SLAVES 0xff | 196 | #define ALL_SLAVES 0xff |
195 | 197 | ||
@@ -417,9 +419,6 @@ struct mlx4_comm { | |||
417 | u32 slave_read; | 419 | u32 slave_read; |
418 | }; | 420 | }; |
419 | 421 | ||
420 | #define MGM_QPN_MASK 0x00FFFFFF | ||
421 | #define MGM_BLCK_LB_BIT 30 | ||
422 | |||
423 | #define VLAN_FLTR_SIZE 128 | 422 | #define VLAN_FLTR_SIZE 128 |
424 | 423 | ||
425 | struct mlx4_vlan_fltr { | 424 | struct mlx4_vlan_fltr { |
@@ -437,14 +436,6 @@ struct mlx4_steer_index { | |||
437 | struct list_head duplicates; | 436 | struct list_head duplicates; |
438 | }; | 437 | }; |
439 | 438 | ||
440 | struct mlx4_mgm { | ||
441 | __be32 next_gid_index; | ||
442 | __be32 members_count; | ||
443 | u32 reserved[2]; | ||
444 | u8 gid[16]; | ||
445 | __be32 qp[MLX4_QP_PER_MGM]; | ||
446 | }; | ||
447 | |||
448 | struct mlx4_slave_state { | 439 | struct mlx4_slave_state { |
449 | u8 comm_toggle; | 440 | u8 comm_toggle; |
450 | u8 last_cmd; | 441 | u8 last_cmd; |
@@ -1021,6 +1012,9 @@ int mlx4_QUERY_IF_STAT_wrapper(struct mlx4_dev *dev, int slave, | |||
1021 | struct mlx4_cmd_mailbox *outbox, | 1012 | struct mlx4_cmd_mailbox *outbox, |
1022 | struct mlx4_cmd_info *cmd); | 1013 | struct mlx4_cmd_info *cmd); |
1023 | 1014 | ||
1015 | int mlx4_get_mgm_entry_size(struct mlx4_dev *dev); | ||
1016 | int mlx4_get_qp_per_mgm(struct mlx4_dev *dev); | ||
1017 | |||
1024 | static inline void set_param_l(u64 *arg, u32 val) | 1018 | static inline void set_param_l(u64 *arg, u32 val) |
1025 | { | 1019 | { |
1026 | *((u32 *)arg) = val; | 1020 | *((u32 *)arg) = val; |