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, |