InfiniBand/RDMA changes for the 3.10 merge window:
- XRC transport fixes - Fix DHCP on IPoIB - mlx4 preparations for flow steering - iSER fixes - miscellaneous other fixes -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAABCAAGBQJRisChAAoJEENa44ZhAt0hHLoP/iX5MxtHJ3X1u5KcARX/7nci CCH/VnD172re/KavCCg7zkbZQpS4jHCtW/CzLUCSPqBGOaj78HFTUkB3ragvUW7m ndERwplF8DP/i0x7Kk7Wau2a4RdlH0lqwucOjqTyQnbIdxknkz6w3Jcsb9Ic2lzx up0T0HaHtTxdVF6lXOB5QOIpUGg3l0Yu4euX2BA61WDoZj+VIYhgeWZewq0iV0D1 rLtarJ+Or7mdwu2rNcDHgrD0lhF4SCBd3rx4lbc4F68Cr8JUz0Xe7liPLNskeLhW f3NEm3gmkYp9YI1otGsA0X/CyV6wnRk4mT8JMlOb2WNzeq2V13Z54/9ZyF5/gFD2 JgzkQB9Ibf7EmTwXWd6+0+FA40Q6dNvnRnhddRM255dvDVw7nxUr2UzYH4Re/Z9K rNFjkvix2YUwEmoPjitWocz2kj2reDMqjtiVDmdGy1YbtnicH5GtkQsWkoPg8ON9 m5jORUdzydTD+yBJwTiFP1EuFoG3TdfoZ7zHMJwWy/u8i308xD6WPGms9MTdjh8j 7gjz2TCKr+vpuVRh/p6esCPPOTSsSeWDeowy7Sgpdf3qoqAImXsWXVrl2kXLhtyl 1VIgHU3ztm7oqwmy0gQ/zVCo4CLLdsif2zmEIDpxJPnWaSq+D9LJdyLTcfdBjhQ8 9SjUafe4msT1pIjNb7ND =1ojD -----END PGP SIGNATURE----- Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband Pull InfiniBand/RDMA changes from Roland Dreier: - XRC transport fixes - Fix DHCP on IPoIB - mlx4 preparations for flow steering - iSER fixes - miscellaneous other fixes * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (23 commits) IB/iser: Add support for iser CM REQ additional info IB/iser: Return error to upper layers on EAGAIN registration failures IB/iser: Move informational messages from error to info level IB/iser: Add module version mlx4_core: Expose a few helpers to fill DMFS HW strucutures mlx4_core: Directly expose fields of DMFS HW rule control segment mlx4_core: Change a few DMFS fields names to match firmare spec mlx4: Match DMFS promiscuous field names to firmware spec mlx4_core: Move DMFS HW structs to common header file IB/mlx4: Set link type for RAW PACKET QPs in the QP context IB/mlx4: Disable VLAN stripping for RAW PACKET QPs mlx4_core: Reduce warning message for SRQ_LIMIT event to debug level RDMA/iwcm: Don't touch cmid after dropping reference IB/qib: Correct qib_verbs_register_sysfs() error handling IB/ipath: Correct ipath_verbs_register_sysfs() error handling RDMA/cxgb4: Fix SQ allocation when on-chip SQ is disabled SRPT: Fix odd use of WARN_ON() IPoIB: Fix ipoib_hard_header() return value RDMA: Rename random32() to prandom_u32() RDMA/cxgb3: Fix uninitialized variable ...
This commit is contained in:
commit
e0fd9affeb
23 changed files with 320 additions and 193 deletions
|
|
@ -903,11 +903,12 @@ static inline int map_hw_to_sw_id(u16 header_id)
|
|||
}
|
||||
|
||||
enum mlx4_net_trans_promisc_mode {
|
||||
MLX4_FS_PROMISC_NONE = 0,
|
||||
MLX4_FS_PROMISC_UPLINK,
|
||||
/* For future use. Not implemented yet */
|
||||
MLX4_FS_PROMISC_FUNCTION_PORT,
|
||||
MLX4_FS_PROMISC_ALL_MULTI,
|
||||
MLX4_FS_REGULAR = 1,
|
||||
MLX4_FS_ALL_DEFAULT,
|
||||
MLX4_FS_MC_DEFAULT,
|
||||
MLX4_FS_UC_SNIFFER,
|
||||
MLX4_FS_MC_SNIFFER,
|
||||
MLX4_FS_MODE_NUM, /* should be last */
|
||||
};
|
||||
|
||||
struct mlx4_spec_eth {
|
||||
|
|
@ -936,7 +937,7 @@ struct mlx4_spec_ipv4 {
|
|||
};
|
||||
|
||||
struct mlx4_spec_ib {
|
||||
__be32 r_qpn;
|
||||
__be32 l3_qpn;
|
||||
__be32 qpn_msk;
|
||||
u8 dst_gid[16];
|
||||
u8 dst_gid_msk[16];
|
||||
|
|
@ -969,6 +970,92 @@ struct mlx4_net_trans_rule {
|
|||
u32 qpn;
|
||||
};
|
||||
|
||||
struct mlx4_net_trans_rule_hw_ctrl {
|
||||
__be16 prio;
|
||||
u8 type;
|
||||
u8 flags;
|
||||
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 l3_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_tag_msk;
|
||||
__be16 vlan_tag;
|
||||
} __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;
|
||||
};
|
||||
};
|
||||
|
||||
/* translating DMFS verbs sniffer rule to the FW API would need two reg IDs */
|
||||
struct mlx4_flow_handle {
|
||||
u64 reg_id[2];
|
||||
};
|
||||
|
||||
int mlx4_flow_steer_promisc_add(struct mlx4_dev *dev, u8 port, u32 qpn,
|
||||
enum mlx4_net_trans_promisc_mode mode);
|
||||
int mlx4_flow_steer_promisc_remove(struct mlx4_dev *dev, u8 port,
|
||||
|
|
@ -1018,6 +1105,11 @@ void mlx4_counter_free(struct mlx4_dev *dev, u32 idx);
|
|||
int mlx4_flow_attach(struct mlx4_dev *dev,
|
||||
struct mlx4_net_trans_rule *rule, u64 *reg_id);
|
||||
int mlx4_flow_detach(struct mlx4_dev *dev, u64 reg_id);
|
||||
int mlx4_map_sw_to_hw_steering_mode(struct mlx4_dev *dev,
|
||||
enum mlx4_net_trans_promisc_mode flow_type);
|
||||
int mlx4_map_sw_to_hw_steering_id(struct mlx4_dev *dev,
|
||||
enum mlx4_net_trans_rule_id id);
|
||||
int mlx4_hw_rule_sz(struct mlx4_dev *dev, enum mlx4_net_trans_rule_id id);
|
||||
|
||||
void mlx4_sync_pkey_table(struct mlx4_dev *dev, int slave, int port,
|
||||
int i, int val);
|
||||
|
|
|
|||
|
|
@ -39,4 +39,6 @@ struct mlx4_wqe_srq_next_seg {
|
|||
u32 reserved2[3];
|
||||
};
|
||||
|
||||
struct mlx4_srq *mlx4_srq_lookup(struct mlx4_dev *dev, u32 srqn);
|
||||
|
||||
#endif /* MLX4_SRQ_H */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue