diff options
| author | Yevgeny Petrilin <yevgenyp@mellanox.co.il> | 2008-10-22 14:44:46 -0400 |
|---|---|---|
| committer | Roland Dreier <rolandd@cisco.com> | 2008-10-22 14:44:46 -0400 |
| commit | 2a2336f8228292b8197f4187e54b0748903e6645 (patch) | |
| tree | 8c54c6d594a055bb5e0a83b2c9c8c2f6fcc03d22 /include/linux/mlx4 | |
| parent | b79acb49de6c2ab9ff0245f0f2b573d48b9a2d93 (diff) | |
mlx4_core: Ethernet MAC/VLAN management
Add support for managing MAC and VLAN filters for each port.
Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: Oren Duer <oren@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'include/linux/mlx4')
| -rw-r--r-- | include/linux/mlx4/cmd.h | 9 | ||||
| -rw-r--r-- | include/linux/mlx4/device.h | 12 |
2 files changed, 21 insertions, 0 deletions
diff --git a/include/linux/mlx4/cmd.h b/include/linux/mlx4/cmd.h index 77323a72dd3c..cf9c679ab38b 100644 --- a/include/linux/mlx4/cmd.h +++ b/include/linux/mlx4/cmd.h | |||
| @@ -132,6 +132,15 @@ enum { | |||
| 132 | MLX4_MAILBOX_SIZE = 4096 | 132 | MLX4_MAILBOX_SIZE = 4096 |
| 133 | }; | 133 | }; |
| 134 | 134 | ||
| 135 | enum { | ||
| 136 | /* set port opcode modifiers */ | ||
| 137 | MLX4_SET_PORT_GENERAL = 0x0, | ||
| 138 | MLX4_SET_PORT_RQP_CALC = 0x1, | ||
| 139 | MLX4_SET_PORT_MAC_TABLE = 0x2, | ||
| 140 | MLX4_SET_PORT_VLAN_TABLE = 0x3, | ||
| 141 | MLX4_SET_PORT_PRIO_MAP = 0x4, | ||
| 142 | }; | ||
| 143 | |||
| 135 | struct mlx4_dev; | 144 | struct mlx4_dev; |
| 136 | 145 | ||
| 137 | struct mlx4_cmd_mailbox { | 146 | struct mlx4_cmd_mailbox { |
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h index f9e73cfc540b..1951fe70a251 100644 --- a/include/linux/mlx4/device.h +++ b/include/linux/mlx4/device.h | |||
| @@ -153,6 +153,12 @@ enum mlx4_qp_region { | |||
| 153 | MLX4_NUM_QP_REGION | 153 | MLX4_NUM_QP_REGION |
| 154 | }; | 154 | }; |
| 155 | 155 | ||
| 156 | enum mlx4_special_vlan_idx { | ||
| 157 | MLX4_NO_VLAN_IDX = 0, | ||
| 158 | MLX4_VLAN_MISS_IDX, | ||
| 159 | MLX4_VLAN_REGULAR | ||
| 160 | }; | ||
| 161 | |||
| 156 | enum { | 162 | enum { |
| 157 | MLX4_NUM_FEXCH = 64 * 1024, | 163 | MLX4_NUM_FEXCH = 64 * 1024, |
| 158 | }; | 164 | }; |
| @@ -438,6 +444,12 @@ int mlx4_multicast_attach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16], | |||
| 438 | int block_mcast_loopback); | 444 | int block_mcast_loopback); |
| 439 | int mlx4_multicast_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16]); | 445 | int mlx4_multicast_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16]); |
| 440 | 446 | ||
| 447 | int mlx4_register_mac(struct mlx4_dev *dev, u8 port, u64 mac, int *index); | ||
| 448 | void mlx4_unregister_mac(struct mlx4_dev *dev, u8 port, int index); | ||
| 449 | |||
| 450 | int mlx4_register_vlan(struct mlx4_dev *dev, u8 port, u16 vlan, int *index); | ||
| 451 | void mlx4_unregister_vlan(struct mlx4_dev *dev, u8 port, int index); | ||
| 452 | |||
| 441 | int mlx4_map_phys_fmr(struct mlx4_dev *dev, struct mlx4_fmr *fmr, u64 *page_list, | 453 | int mlx4_map_phys_fmr(struct mlx4_dev *dev, struct mlx4_fmr *fmr, u64 *page_list, |
| 442 | int npages, u64 iova, u32 *lkey, u32 *rkey); | 454 | int npages, u64 iova, u32 *lkey, u32 *rkey); |
| 443 | int mlx4_fmr_alloc(struct mlx4_dev *dev, u32 pd, u32 access, int max_pages, | 455 | int mlx4_fmr_alloc(struct mlx4_dev *dev, u32 pd, u32 access, int max_pages, |
