aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/mlx4/mlx4.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/mlx4/mlx4.h')
-rw-r--r--drivers/net/mlx4/mlx4.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/drivers/net/mlx4/mlx4.h b/drivers/net/mlx4/mlx4.h
index 67ee8dacae79..1513a91b4bd4 100644
--- a/drivers/net/mlx4/mlx4.h
+++ b/drivers/net/mlx4/mlx4.h
@@ -162,6 +162,27 @@ struct mlx4_fw {
162 u8 catas_bar; 162 u8 catas_bar;
163}; 163};
164 164
165#define MGM_QPN_MASK 0x00FFFFFF
166#define MGM_BLCK_LB_BIT 30
167
168struct mlx4_promisc_qp {
169 struct list_head list;
170 u32 qpn;
171};
172
173struct mlx4_steer_index {
174 struct list_head list;
175 unsigned int index;
176 struct list_head duplicates;
177};
178
179struct mlx4_mgm {
180 __be32 next_gid_index;
181 __be32 members_count;
182 u32 reserved[2];
183 u8 gid[16];
184 __be32 qp[MLX4_QP_PER_MGM];
185};
165struct mlx4_cmd { 186struct mlx4_cmd {
166 struct pci_pool *pool; 187 struct pci_pool *pool;
167 void __iomem *hcr; 188 void __iomem *hcr;
@@ -287,6 +308,12 @@ struct mlx4_msix_ctl {
287 spinlock_t pool_lock; 308 spinlock_t pool_lock;
288}; 309};
289 310
311struct mlx4_steer {
312 struct list_head promisc_qps[MLX4_NUM_STEERS];
313 struct list_head steer_entries[MLX4_NUM_STEERS];
314 struct list_head high_prios;
315};
316
290struct mlx4_priv { 317struct mlx4_priv {
291 struct mlx4_dev dev; 318 struct mlx4_dev dev;
292 319
@@ -319,6 +346,7 @@ struct mlx4_priv {
319 struct mlx4_sense sense; 346 struct mlx4_sense sense;
320 struct mutex port_mutex; 347 struct mutex port_mutex;
321 struct mlx4_msix_ctl msix_ctl; 348 struct mlx4_msix_ctl msix_ctl;
349 struct mlx4_steer *steer;
322}; 350};
323 351
324static inline struct mlx4_priv *mlx4_priv(struct mlx4_dev *dev) 352static inline struct mlx4_priv *mlx4_priv(struct mlx4_dev *dev)
@@ -409,4 +437,9 @@ void mlx4_init_vlan_table(struct mlx4_dev *dev, struct mlx4_vlan_table *table);
409int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port); 437int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port);
410int mlx4_get_port_ib_caps(struct mlx4_dev *dev, u8 port, __be32 *caps); 438int mlx4_get_port_ib_caps(struct mlx4_dev *dev, u8 port, __be32 *caps);
411 439
440int mlx4_qp_detach_common(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
441 enum mlx4_protocol prot, enum mlx4_steer_type steer);
442int mlx4_qp_attach_common(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
443 int block_mcast_loopback, enum mlx4_protocol prot,
444 enum mlx4_steer_type steer);
412#endif /* MLX4_H */ 445#endif /* MLX4_H */