mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 02:50:43 +00:00
mlx4_core: Move DMFS HW structs to common header file
Move flow steering HW structures to be on the public mlx4 include directory, as a pre-step for the mlx4 IB driver to use them too. Signed-off-by: Hadar Hen Zion <hadarh@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
parent
3528f69637
commit
3cd0e1789a
2 changed files with 79 additions and 79 deletions
|
@ -701,85 +701,6 @@ struct mlx4_steer {
|
||||||
struct list_head steer_entries[MLX4_NUM_STEERS];
|
struct list_head steer_entries[MLX4_NUM_STEERS];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mlx4_net_trans_rule_hw_ctrl {
|
|
||||||
__be32 ctrl;
|
|
||||||
u8 rsvd1;
|
|
||||||
u8 funcid;
|
|
||||||
u8 vep;
|
|
||||||
u8 port;
|
|
||||||
__be32 qpn;
|
|
||||||
__be32 rsvd2;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct mlx4_net_trans_rule_hw_ib {
|
|
||||||
u8 size;
|
|
||||||
u8 rsvd1;
|
|
||||||
__be16 id;
|
|
||||||
u32 rsvd2;
|
|
||||||
__be32 qpn;
|
|
||||||
__be32 qpn_mask;
|
|
||||||
u8 dst_gid[16];
|
|
||||||
u8 dst_gid_msk[16];
|
|
||||||
} __packed;
|
|
||||||
|
|
||||||
struct mlx4_net_trans_rule_hw_eth {
|
|
||||||
u8 size;
|
|
||||||
u8 rsvd;
|
|
||||||
__be16 id;
|
|
||||||
u8 rsvd1[6];
|
|
||||||
u8 dst_mac[6];
|
|
||||||
u16 rsvd2;
|
|
||||||
u8 dst_mac_msk[6];
|
|
||||||
u16 rsvd3;
|
|
||||||
u8 src_mac[6];
|
|
||||||
u16 rsvd4;
|
|
||||||
u8 src_mac_msk[6];
|
|
||||||
u8 rsvd5;
|
|
||||||
u8 ether_type_enable;
|
|
||||||
__be16 ether_type;
|
|
||||||
__be16 vlan_id_msk;
|
|
||||||
__be16 vlan_id;
|
|
||||||
} __packed;
|
|
||||||
|
|
||||||
struct mlx4_net_trans_rule_hw_tcp_udp {
|
|
||||||
u8 size;
|
|
||||||
u8 rsvd;
|
|
||||||
__be16 id;
|
|
||||||
__be16 rsvd1[3];
|
|
||||||
__be16 dst_port;
|
|
||||||
__be16 rsvd2;
|
|
||||||
__be16 dst_port_msk;
|
|
||||||
__be16 rsvd3;
|
|
||||||
__be16 src_port;
|
|
||||||
__be16 rsvd4;
|
|
||||||
__be16 src_port_msk;
|
|
||||||
} __packed;
|
|
||||||
|
|
||||||
struct mlx4_net_trans_rule_hw_ipv4 {
|
|
||||||
u8 size;
|
|
||||||
u8 rsvd;
|
|
||||||
__be16 id;
|
|
||||||
__be32 rsvd1;
|
|
||||||
__be32 dst_ip;
|
|
||||||
__be32 dst_ip_msk;
|
|
||||||
__be32 src_ip;
|
|
||||||
__be32 src_ip_msk;
|
|
||||||
} __packed;
|
|
||||||
|
|
||||||
struct _rule_hw {
|
|
||||||
union {
|
|
||||||
struct {
|
|
||||||
u8 size;
|
|
||||||
u8 rsvd;
|
|
||||||
__be16 id;
|
|
||||||
};
|
|
||||||
struct mlx4_net_trans_rule_hw_eth eth;
|
|
||||||
struct mlx4_net_trans_rule_hw_ib ib;
|
|
||||||
struct mlx4_net_trans_rule_hw_ipv4 ipv4;
|
|
||||||
struct mlx4_net_trans_rule_hw_tcp_udp tcp_udp;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
MLX4_PCI_DEV_IS_VF = 1 << 0,
|
MLX4_PCI_DEV_IS_VF = 1 << 0,
|
||||||
MLX4_PCI_DEV_FORCE_SENSE_PORT = 1 << 1,
|
MLX4_PCI_DEV_FORCE_SENSE_PORT = 1 << 1,
|
||||||
|
|
|
@ -962,6 +962,85 @@ struct mlx4_net_trans_rule {
|
||||||
u32 qpn;
|
u32 qpn;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct mlx4_net_trans_rule_hw_ctrl {
|
||||||
|
__be32 ctrl;
|
||||||
|
u8 rsvd1;
|
||||||
|
u8 funcid;
|
||||||
|
u8 vep;
|
||||||
|
u8 port;
|
||||||
|
__be32 qpn;
|
||||||
|
__be32 rsvd2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mlx4_net_trans_rule_hw_ib {
|
||||||
|
u8 size;
|
||||||
|
u8 rsvd1;
|
||||||
|
__be16 id;
|
||||||
|
u32 rsvd2;
|
||||||
|
__be32 qpn;
|
||||||
|
__be32 qpn_mask;
|
||||||
|
u8 dst_gid[16];
|
||||||
|
u8 dst_gid_msk[16];
|
||||||
|
} __packed;
|
||||||
|
|
||||||
|
struct mlx4_net_trans_rule_hw_eth {
|
||||||
|
u8 size;
|
||||||
|
u8 rsvd;
|
||||||
|
__be16 id;
|
||||||
|
u8 rsvd1[6];
|
||||||
|
u8 dst_mac[6];
|
||||||
|
u16 rsvd2;
|
||||||
|
u8 dst_mac_msk[6];
|
||||||
|
u16 rsvd3;
|
||||||
|
u8 src_mac[6];
|
||||||
|
u16 rsvd4;
|
||||||
|
u8 src_mac_msk[6];
|
||||||
|
u8 rsvd5;
|
||||||
|
u8 ether_type_enable;
|
||||||
|
__be16 ether_type;
|
||||||
|
__be16 vlan_id_msk;
|
||||||
|
__be16 vlan_id;
|
||||||
|
} __packed;
|
||||||
|
|
||||||
|
struct mlx4_net_trans_rule_hw_tcp_udp {
|
||||||
|
u8 size;
|
||||||
|
u8 rsvd;
|
||||||
|
__be16 id;
|
||||||
|
__be16 rsvd1[3];
|
||||||
|
__be16 dst_port;
|
||||||
|
__be16 rsvd2;
|
||||||
|
__be16 dst_port_msk;
|
||||||
|
__be16 rsvd3;
|
||||||
|
__be16 src_port;
|
||||||
|
__be16 rsvd4;
|
||||||
|
__be16 src_port_msk;
|
||||||
|
} __packed;
|
||||||
|
|
||||||
|
struct mlx4_net_trans_rule_hw_ipv4 {
|
||||||
|
u8 size;
|
||||||
|
u8 rsvd;
|
||||||
|
__be16 id;
|
||||||
|
__be32 rsvd1;
|
||||||
|
__be32 dst_ip;
|
||||||
|
__be32 dst_ip_msk;
|
||||||
|
__be32 src_ip;
|
||||||
|
__be32 src_ip_msk;
|
||||||
|
} __packed;
|
||||||
|
|
||||||
|
struct _rule_hw {
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
u8 size;
|
||||||
|
u8 rsvd;
|
||||||
|
__be16 id;
|
||||||
|
};
|
||||||
|
struct mlx4_net_trans_rule_hw_eth eth;
|
||||||
|
struct mlx4_net_trans_rule_hw_ib ib;
|
||||||
|
struct mlx4_net_trans_rule_hw_ipv4 ipv4;
|
||||||
|
struct mlx4_net_trans_rule_hw_tcp_udp tcp_udp;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
int mlx4_flow_steer_promisc_add(struct mlx4_dev *dev, u8 port, u32 qpn,
|
int mlx4_flow_steer_promisc_add(struct mlx4_dev *dev, u8 port, u32 qpn,
|
||||||
enum mlx4_net_trans_promisc_mode mode);
|
enum mlx4_net_trans_promisc_mode mode);
|
||||||
int mlx4_flow_steer_promisc_remove(struct mlx4_dev *dev, u8 port,
|
int mlx4_flow_steer_promisc_remove(struct mlx4_dev *dev, u8 port,
|
||||||
|
|
Loading…
Reference in a new issue