aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mlx4
diff options
context:
space:
mode:
authorYevgeny Petrilin <yevgenyp@mellanox.co.il>2008-10-22 14:44:46 -0400
committerRoland Dreier <rolandd@cisco.com>2008-10-22 14:44:46 -0400
commit2a2336f8228292b8197f4187e54b0748903e6645 (patch)
tree8c54c6d594a055bb5e0a83b2c9c8c2f6fcc03d22 /include/linux/mlx4
parentb79acb49de6c2ab9ff0245f0f2b573d48b9a2d93 (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.h9
-rw-r--r--include/linux/mlx4/device.h12
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
135enum {
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
135struct mlx4_dev; 144struct mlx4_dev;
136 145
137struct mlx4_cmd_mailbox { 146struct 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
156enum mlx4_special_vlan_idx {
157 MLX4_NO_VLAN_IDX = 0,
158 MLX4_VLAN_MISS_IDX,
159 MLX4_VLAN_REGULAR
160};
161
156enum { 162enum {
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);
439int mlx4_multicast_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16]); 445int mlx4_multicast_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16]);
440 446
447int mlx4_register_mac(struct mlx4_dev *dev, u8 port, u64 mac, int *index);
448void mlx4_unregister_mac(struct mlx4_dev *dev, u8 port, int index);
449
450int mlx4_register_vlan(struct mlx4_dev *dev, u8 port, u16 vlan, int *index);
451void mlx4_unregister_vlan(struct mlx4_dev *dev, u8 port, int index);
452
441int mlx4_map_phys_fmr(struct mlx4_dev *dev, struct mlx4_fmr *fmr, u64 *page_list, 453int 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);
443int mlx4_fmr_alloc(struct mlx4_dev *dev, u32 pd, u32 access, int max_pages, 455int mlx4_fmr_alloc(struct mlx4_dev *dev, u32 pd, u32 access, int max_pages,