aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlx4/mlx4.h
diff options
context:
space:
mode:
authorEugenia Emantayev <eugenia@mellanox.co.il>2011-12-12 23:16:02 -0500
committerDavid S. Miller <davem@davemloft.net>2011-12-13 13:56:07 -0500
commit0ec2c0f86d31ab36547307f133b0016006bdc6b5 (patch)
treeba799abcd07816fc7ca17b1f1b1f22e2dec31848 /drivers/net/ethernet/mellanox/mlx4/mlx4.h
parent8e59d254feb3826230d19fb643691c89eabd71f8 (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.h22
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
63enum { 63enum {
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
69enum { 69enum {
@@ -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
193extern 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
425struct mlx4_vlan_fltr { 424struct 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
440struct 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
448struct mlx4_slave_state { 439struct 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
1015int mlx4_get_mgm_entry_size(struct mlx4_dev *dev);
1016int mlx4_get_qp_per_mgm(struct mlx4_dev *dev);
1017
1024static inline void set_param_l(u64 *arg, u32 val) 1018static inline void set_param_l(u64 *arg, u32 val)
1025{ 1019{
1026 *((u32 *)arg) = val; 1020 *((u32 *)arg) = val;