diff options
Diffstat (limited to 'drivers/net/mlx4/mlx4.h')
-rw-r--r-- | drivers/net/mlx4/mlx4.h | 33 |
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 | |||
168 | struct mlx4_promisc_qp { | ||
169 | struct list_head list; | ||
170 | u32 qpn; | ||
171 | }; | ||
172 | |||
173 | struct mlx4_steer_index { | ||
174 | struct list_head list; | ||
175 | unsigned int index; | ||
176 | struct list_head duplicates; | ||
177 | }; | ||
178 | |||
179 | struct 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 | }; | ||
165 | struct mlx4_cmd { | 186 | struct 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 | ||
311 | struct 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 | |||
290 | struct mlx4_priv { | 317 | struct 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 | ||
324 | static inline struct mlx4_priv *mlx4_priv(struct mlx4_dev *dev) | 352 | static 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); | |||
409 | int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port); | 437 | int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port); |
410 | int mlx4_get_port_ib_caps(struct mlx4_dev *dev, u8 port, __be32 *caps); | 438 | int mlx4_get_port_ib_caps(struct mlx4_dev *dev, u8 port, __be32 *caps); |
411 | 439 | ||
440 | int 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); | ||
442 | int 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 */ |