Merge branches 'core', 'cxgb3', 'cxgb4', 'iser', 'iwpm', 'misc', 'mlx4', 'mlx5', 'noio', 'ocrdma', 'qib', 'srp' and 'usnic' into for-next
This commit is contained in:
@@ -401,6 +401,7 @@ struct mlx4_caps {
|
||||
int max_rq_desc_sz;
|
||||
int max_qp_init_rdma;
|
||||
int max_qp_dest_rdma;
|
||||
u32 *qp0_qkey;
|
||||
u32 *qp0_proxy;
|
||||
u32 *qp1_proxy;
|
||||
u32 *qp0_tunnel;
|
||||
@@ -837,7 +838,7 @@ static inline int mlx4_is_slave(struct mlx4_dev *dev)
|
||||
}
|
||||
|
||||
int mlx4_buf_alloc(struct mlx4_dev *dev, int size, int max_direct,
|
||||
struct mlx4_buf *buf);
|
||||
struct mlx4_buf *buf, gfp_t gfp);
|
||||
void mlx4_buf_free(struct mlx4_dev *dev, int size, struct mlx4_buf *buf);
|
||||
static inline void *mlx4_buf_offset(struct mlx4_buf *buf, int offset)
|
||||
{
|
||||
@@ -874,9 +875,10 @@ int mlx4_mw_enable(struct mlx4_dev *dev, struct mlx4_mw *mw);
|
||||
int mlx4_write_mtt(struct mlx4_dev *dev, struct mlx4_mtt *mtt,
|
||||
int start_index, int npages, u64 *page_list);
|
||||
int mlx4_buf_write_mtt(struct mlx4_dev *dev, struct mlx4_mtt *mtt,
|
||||
struct mlx4_buf *buf);
|
||||
struct mlx4_buf *buf, gfp_t gfp);
|
||||
|
||||
int mlx4_db_alloc(struct mlx4_dev *dev, struct mlx4_db *db, int order);
|
||||
int mlx4_db_alloc(struct mlx4_dev *dev, struct mlx4_db *db, int order,
|
||||
gfp_t gfp);
|
||||
void mlx4_db_free(struct mlx4_dev *dev, struct mlx4_db *db);
|
||||
|
||||
int mlx4_alloc_hwq_res(struct mlx4_dev *dev, struct mlx4_hwq_resources *wqres,
|
||||
@@ -892,7 +894,8 @@ void mlx4_cq_free(struct mlx4_dev *dev, struct mlx4_cq *cq);
|
||||
int mlx4_qp_reserve_range(struct mlx4_dev *dev, int cnt, int align, int *base);
|
||||
void mlx4_qp_release_range(struct mlx4_dev *dev, int base_qpn, int cnt);
|
||||
|
||||
int mlx4_qp_alloc(struct mlx4_dev *dev, int qpn, struct mlx4_qp *qp);
|
||||
int mlx4_qp_alloc(struct mlx4_dev *dev, int qpn, struct mlx4_qp *qp,
|
||||
gfp_t gfp);
|
||||
void mlx4_qp_free(struct mlx4_dev *dev, struct mlx4_qp *qp);
|
||||
|
||||
int mlx4_srq_alloc(struct mlx4_dev *dev, u32 pdn, u32 cqn, u16 xrcdn,
|
||||
@@ -1234,4 +1237,8 @@ int mlx4_phys_to_slave_port(struct mlx4_dev *dev, int slave, int port);
|
||||
int mlx4_get_base_gid_ix(struct mlx4_dev *dev, int slave, int port);
|
||||
|
||||
int mlx4_config_vxlan_port(struct mlx4_dev *dev, __be16 udp_port);
|
||||
int mlx4_vf_smi_enabled(struct mlx4_dev *dev, int slave, int port);
|
||||
int mlx4_vf_get_enable_smi_admin(struct mlx4_dev *dev, int slave, int port);
|
||||
int mlx4_vf_set_enable_smi_admin(struct mlx4_dev *dev, int slave, int port,
|
||||
int enable);
|
||||
#endif /* MLX4_DEVICE_H */
|
||||
|
||||
@@ -427,7 +427,6 @@ struct mlx5_core_mr {
|
||||
u64 size;
|
||||
u32 key;
|
||||
u32 pd;
|
||||
u32 access;
|
||||
};
|
||||
|
||||
struct mlx5_core_srq {
|
||||
|
||||
@@ -80,8 +80,8 @@ enum rdma_transport_type {
|
||||
RDMA_TRANSPORT_USNIC_UDP
|
||||
};
|
||||
|
||||
enum rdma_transport_type
|
||||
rdma_node_get_transport(enum rdma_node_type node_type) __attribute_const__;
|
||||
__attribute_const__ enum rdma_transport_type
|
||||
rdma_node_get_transport(enum rdma_node_type node_type);
|
||||
|
||||
enum rdma_link_layer {
|
||||
IB_LINK_LAYER_UNSPECIFIED,
|
||||
@@ -466,14 +466,14 @@ enum ib_rate {
|
||||
* converted to 2, since 5 Gbit/sec is 2 * 2.5 Gbit/sec.
|
||||
* @rate: rate to convert.
|
||||
*/
|
||||
int ib_rate_to_mult(enum ib_rate rate) __attribute_const__;
|
||||
__attribute_const__ int ib_rate_to_mult(enum ib_rate rate);
|
||||
|
||||
/**
|
||||
* ib_rate_to_mbps - Convert the IB rate enum to Mbps.
|
||||
* For example, IB_RATE_2_5_GBPS will be converted to 2500.
|
||||
* @rate: rate to convert.
|
||||
*/
|
||||
int ib_rate_to_mbps(enum ib_rate rate) __attribute_const__;
|
||||
__attribute_const__ int ib_rate_to_mbps(enum ib_rate rate);
|
||||
|
||||
enum ib_mr_create_flags {
|
||||
IB_MR_SIGNATURE_EN = 1,
|
||||
@@ -604,7 +604,7 @@ struct ib_mr_status {
|
||||
* enum.
|
||||
* @mult: multiple to convert.
|
||||
*/
|
||||
enum ib_rate mult_to_ib_rate(int mult) __attribute_const__;
|
||||
__attribute_const__ enum ib_rate mult_to_ib_rate(int mult);
|
||||
|
||||
struct ib_ah_attr {
|
||||
struct ib_global_route grh;
|
||||
@@ -783,6 +783,7 @@ enum ib_qp_create_flags {
|
||||
IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK = 1 << 1,
|
||||
IB_QP_CREATE_NETIF_QP = 1 << 5,
|
||||
IB_QP_CREATE_SIGNATURE_EN = 1 << 6,
|
||||
IB_QP_CREATE_USE_GFP_NOIO = 1 << 7,
|
||||
/* reserve bits 26-31 for low level drivers' internal use */
|
||||
IB_QP_CREATE_RESERVED_START = 1 << 26,
|
||||
IB_QP_CREATE_RESERVED_END = 1 << 31,
|
||||
|
||||
@@ -0,0 +1,199 @@
|
||||
/*
|
||||
* Copyright (c) 2014 Intel Corporation. All rights reserved.
|
||||
* Copyright (c) 2014 Chelsio, Inc. All rights reserved.
|
||||
*
|
||||
* This software is available to you under a choice of one of two
|
||||
* licenses. You may choose to be licensed under the terms of the GNU
|
||||
* General Public License (GPL) Version 2, available from the file
|
||||
* COPYING in the main directory of this source tree, or the
|
||||
* OpenIB.org BSD license below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following
|
||||
* conditions are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* - Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
#ifndef _IW_PORTMAP_H
|
||||
#define _IW_PORTMAP_H
|
||||
|
||||
#define IWPM_ULIBNAME_SIZE 32
|
||||
#define IWPM_DEVNAME_SIZE 32
|
||||
#define IWPM_IFNAME_SIZE 16
|
||||
#define IWPM_IPADDR_SIZE 16
|
||||
|
||||
enum {
|
||||
IWPM_INVALID_NLMSG_ERR = 10,
|
||||
IWPM_CREATE_MAPPING_ERR,
|
||||
IWPM_DUPLICATE_MAPPING_ERR,
|
||||
IWPM_UNKNOWN_MAPPING_ERR,
|
||||
IWPM_CLIENT_DEV_INFO_ERR,
|
||||
IWPM_USER_LIB_INFO_ERR,
|
||||
IWPM_REMOTE_QUERY_REJECT
|
||||
};
|
||||
|
||||
struct iwpm_dev_data {
|
||||
char dev_name[IWPM_DEVNAME_SIZE];
|
||||
char if_name[IWPM_IFNAME_SIZE];
|
||||
};
|
||||
|
||||
struct iwpm_sa_data {
|
||||
struct sockaddr_storage loc_addr;
|
||||
struct sockaddr_storage mapped_loc_addr;
|
||||
struct sockaddr_storage rem_addr;
|
||||
struct sockaddr_storage mapped_rem_addr;
|
||||
};
|
||||
|
||||
/**
|
||||
* iwpm_init - Allocate resources for the iwarp port mapper
|
||||
*
|
||||
* Should be called when network interface goes up.
|
||||
*/
|
||||
int iwpm_init(u8);
|
||||
|
||||
/**
|
||||
* iwpm_exit - Deallocate resources for the iwarp port mapper
|
||||
*
|
||||
* Should be called when network interface goes down.
|
||||
*/
|
||||
int iwpm_exit(u8);
|
||||
|
||||
/**
|
||||
* iwpm_valid_pid - Check if the userspace iwarp port mapper pid is valid
|
||||
*
|
||||
* Returns true if the pid is greater than zero, otherwise returns false
|
||||
*/
|
||||
int iwpm_valid_pid(void);
|
||||
|
||||
/**
|
||||
* iwpm_register_pid - Send a netlink query to userspace
|
||||
* to get the iwarp port mapper pid
|
||||
* @pm_msg: Contains driver info to send to the userspace port mapper
|
||||
* @nl_client: The index of the netlink client
|
||||
*/
|
||||
int iwpm_register_pid(struct iwpm_dev_data *pm_msg, u8 nl_client);
|
||||
|
||||
/**
|
||||
* iwpm_add_mapping - Send a netlink add mapping request to
|
||||
* the userspace port mapper
|
||||
* @pm_msg: Contains the local ip/tcp address info to send
|
||||
* @nl_client: The index of the netlink client
|
||||
*
|
||||
* If the request is successful, the pm_msg stores
|
||||
* the port mapper response (mapped address info)
|
||||
*/
|
||||
int iwpm_add_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client);
|
||||
|
||||
/**
|
||||
* iwpm_add_and_query_mapping - Send a netlink add and query mapping request
|
||||
* to the userspace port mapper
|
||||
* @pm_msg: Contains the local and remote ip/tcp address info to send
|
||||
* @nl_client: The index of the netlink client
|
||||
*
|
||||
* If the request is successful, the pm_msg stores the
|
||||
* port mapper response (mapped local and remote address info)
|
||||
*/
|
||||
int iwpm_add_and_query_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client);
|
||||
|
||||
/**
|
||||
* iwpm_remove_mapping - Send a netlink remove mapping request
|
||||
* to the userspace port mapper
|
||||
*
|
||||
* @local_addr: Local ip/tcp address to remove
|
||||
* @nl_client: The index of the netlink client
|
||||
*/
|
||||
int iwpm_remove_mapping(struct sockaddr_storage *local_addr, u8 nl_client);
|
||||
|
||||
/**
|
||||
* iwpm_register_pid_cb - Process the port mapper response to
|
||||
* iwpm_register_pid query
|
||||
* @skb:
|
||||
* @cb: Contains the received message (payload and netlink header)
|
||||
*
|
||||
* If successful, the function receives the userspace port mapper pid
|
||||
* which is used in future communication with the port mapper
|
||||
*/
|
||||
int iwpm_register_pid_cb(struct sk_buff *, struct netlink_callback *);
|
||||
|
||||
/**
|
||||
* iwpm_add_mapping_cb - Process the port mapper response to
|
||||
* iwpm_add_mapping request
|
||||
* @skb:
|
||||
* @cb: Contains the received message (payload and netlink header)
|
||||
*/
|
||||
int iwpm_add_mapping_cb(struct sk_buff *, struct netlink_callback *);
|
||||
|
||||
/**
|
||||
* iwpm_add_and_query_mapping_cb - Process the port mapper response to
|
||||
* iwpm_add_and_query_mapping request
|
||||
* @skb:
|
||||
* @cb: Contains the received message (payload and netlink header)
|
||||
*/
|
||||
int iwpm_add_and_query_mapping_cb(struct sk_buff *, struct netlink_callback *);
|
||||
|
||||
/**
|
||||
* iwpm_mapping_error_cb - Process port mapper notification for error
|
||||
*
|
||||
* @skb:
|
||||
* @cb: Contains the received message (payload and netlink header)
|
||||
*/
|
||||
int iwpm_mapping_error_cb(struct sk_buff *, struct netlink_callback *);
|
||||
|
||||
/**
|
||||
* iwpm_mapping_info_cb - Process a notification that the userspace
|
||||
* port mapper daemon is started
|
||||
* @skb:
|
||||
* @cb: Contains the received message (payload and netlink header)
|
||||
*
|
||||
* Using the received port mapper pid, send all the local mapping
|
||||
* info records to the userspace port mapper
|
||||
*/
|
||||
int iwpm_mapping_info_cb(struct sk_buff *, struct netlink_callback *);
|
||||
|
||||
/**
|
||||
* iwpm_ack_mapping_info_cb - Process the port mapper ack for
|
||||
* the provided local mapping info records
|
||||
* @skb:
|
||||
* @cb: Contains the received message (payload and netlink header)
|
||||
*/
|
||||
int iwpm_ack_mapping_info_cb(struct sk_buff *, struct netlink_callback *);
|
||||
|
||||
/**
|
||||
* iwpm_create_mapinfo - Store local and mapped IPv4/IPv6 address
|
||||
* info in a hash table
|
||||
* @local_addr: Local ip/tcp address
|
||||
* @mapped_addr: Mapped local ip/tcp address
|
||||
* @nl_client: The index of the netlink client
|
||||
*/
|
||||
int iwpm_create_mapinfo(struct sockaddr_storage *local_addr,
|
||||
struct sockaddr_storage *mapped_addr, u8 nl_client);
|
||||
|
||||
/**
|
||||
* iwpm_remove_mapinfo - Remove local and mapped IPv4/IPv6 address
|
||||
* info from the hash table
|
||||
* @local_addr: Local ip/tcp address
|
||||
* @mapped_addr: Mapped local ip/tcp address
|
||||
*
|
||||
* Returns err code if mapping info is not found in the hash table,
|
||||
* otherwise returns 0
|
||||
*/
|
||||
int iwpm_remove_mapinfo(struct sockaddr_storage *local_addr,
|
||||
struct sockaddr_storage *mapped_addr);
|
||||
|
||||
#endif /* _IW_PORTMAP_H */
|
||||
@@ -43,7 +43,7 @@ int ibnl_remove_client(int index);
|
||||
* Returns the allocated buffer on success and NULL on failure.
|
||||
*/
|
||||
void *ibnl_put_msg(struct sk_buff *skb, struct nlmsghdr **nlh, int seq,
|
||||
int len, int client, int op);
|
||||
int len, int client, int op, int flags);
|
||||
/**
|
||||
* Put a new attribute in a supplied skb.
|
||||
* @skb: The netlink skb.
|
||||
@@ -56,4 +56,25 @@ void *ibnl_put_msg(struct sk_buff *skb, struct nlmsghdr **nlh, int seq,
|
||||
int ibnl_put_attr(struct sk_buff *skb, struct nlmsghdr *nlh,
|
||||
int len, void *data, int type);
|
||||
|
||||
/**
|
||||
* Send the supplied skb to a specific userspace PID.
|
||||
* @skb: The netlink skb
|
||||
* @nlh: Header of the netlink message to send
|
||||
* @pid: Userspace netlink process ID
|
||||
* Returns 0 on success or a negative error code.
|
||||
*/
|
||||
int ibnl_unicast(struct sk_buff *skb, struct nlmsghdr *nlh,
|
||||
__u32 pid);
|
||||
|
||||
/**
|
||||
* Send the supplied skb to a netlink group.
|
||||
* @skb: The netlink skb
|
||||
* @nlh: Header of the netlink message to send
|
||||
* @group: Netlink group ID
|
||||
* @flags: allocation flags
|
||||
* Returns 0 on success or a negative error code.
|
||||
*/
|
||||
int ibnl_multicast(struct sk_buff *skb, struct nlmsghdr *nlh,
|
||||
unsigned int group, gfp_t flags);
|
||||
|
||||
#endif /* _RDMA_NETLINK_H */
|
||||
|
||||
@@ -4,7 +4,16 @@
|
||||
#include <linux/types.h>
|
||||
|
||||
enum {
|
||||
RDMA_NL_RDMA_CM = 1
|
||||
RDMA_NL_RDMA_CM = 1,
|
||||
RDMA_NL_NES,
|
||||
RDMA_NL_C4IW,
|
||||
RDMA_NL_NUM_CLIENTS
|
||||
};
|
||||
|
||||
enum {
|
||||
RDMA_NL_GROUP_CM = 1,
|
||||
RDMA_NL_GROUP_IWPM,
|
||||
RDMA_NL_NUM_GROUPS
|
||||
};
|
||||
|
||||
#define RDMA_NL_GET_CLIENT(type) ((type & (((1 << 6) - 1) << 10)) >> 10)
|
||||
@@ -22,6 +31,18 @@ enum {
|
||||
RDMA_NL_RDMA_CM_NUM_ATTR,
|
||||
};
|
||||
|
||||
/* iwarp port mapper op-codes */
|
||||
enum {
|
||||
RDMA_NL_IWPM_REG_PID = 0,
|
||||
RDMA_NL_IWPM_ADD_MAPPING,
|
||||
RDMA_NL_IWPM_QUERY_MAPPING,
|
||||
RDMA_NL_IWPM_REMOVE_MAPPING,
|
||||
RDMA_NL_IWPM_HANDLE_ERR,
|
||||
RDMA_NL_IWPM_MAPINFO,
|
||||
RDMA_NL_IWPM_MAPINFO_NUM,
|
||||
RDMA_NL_IWPM_NUM_OPS
|
||||
};
|
||||
|
||||
struct rdma_cm_id_stats {
|
||||
__u32 qp_num;
|
||||
__u32 bound_dev_if;
|
||||
@@ -33,5 +54,78 @@ struct rdma_cm_id_stats {
|
||||
__u8 qp_type;
|
||||
};
|
||||
|
||||
enum {
|
||||
IWPM_NLA_REG_PID_UNSPEC = 0,
|
||||
IWPM_NLA_REG_PID_SEQ,
|
||||
IWPM_NLA_REG_IF_NAME,
|
||||
IWPM_NLA_REG_IBDEV_NAME,
|
||||
IWPM_NLA_REG_ULIB_NAME,
|
||||
IWPM_NLA_REG_PID_MAX
|
||||
};
|
||||
|
||||
enum {
|
||||
IWPM_NLA_RREG_PID_UNSPEC = 0,
|
||||
IWPM_NLA_RREG_PID_SEQ,
|
||||
IWPM_NLA_RREG_IBDEV_NAME,
|
||||
IWPM_NLA_RREG_ULIB_NAME,
|
||||
IWPM_NLA_RREG_ULIB_VER,
|
||||
IWPM_NLA_RREG_PID_ERR,
|
||||
IWPM_NLA_RREG_PID_MAX
|
||||
|
||||
};
|
||||
|
||||
enum {
|
||||
IWPM_NLA_MANAGE_MAPPING_UNSPEC = 0,
|
||||
IWPM_NLA_MANAGE_MAPPING_SEQ,
|
||||
IWPM_NLA_MANAGE_ADDR,
|
||||
IWPM_NLA_MANAGE_MAPPED_LOC_ADDR,
|
||||
IWPM_NLA_RMANAGE_MAPPING_ERR,
|
||||
IWPM_NLA_RMANAGE_MAPPING_MAX
|
||||
};
|
||||
|
||||
#define IWPM_NLA_MANAGE_MAPPING_MAX 3
|
||||
#define IWPM_NLA_QUERY_MAPPING_MAX 4
|
||||
#define IWPM_NLA_MAPINFO_SEND_MAX 3
|
||||
|
||||
enum {
|
||||
IWPM_NLA_QUERY_MAPPING_UNSPEC = 0,
|
||||
IWPM_NLA_QUERY_MAPPING_SEQ,
|
||||
IWPM_NLA_QUERY_LOCAL_ADDR,
|
||||
IWPM_NLA_QUERY_REMOTE_ADDR,
|
||||
IWPM_NLA_RQUERY_MAPPED_LOC_ADDR,
|
||||
IWPM_NLA_RQUERY_MAPPED_REM_ADDR,
|
||||
IWPM_NLA_RQUERY_MAPPING_ERR,
|
||||
IWPM_NLA_RQUERY_MAPPING_MAX
|
||||
};
|
||||
|
||||
enum {
|
||||
IWPM_NLA_MAPINFO_REQ_UNSPEC = 0,
|
||||
IWPM_NLA_MAPINFO_ULIB_NAME,
|
||||
IWPM_NLA_MAPINFO_ULIB_VER,
|
||||
IWPM_NLA_MAPINFO_REQ_MAX
|
||||
};
|
||||
|
||||
enum {
|
||||
IWPM_NLA_MAPINFO_UNSPEC = 0,
|
||||
IWPM_NLA_MAPINFO_LOCAL_ADDR,
|
||||
IWPM_NLA_MAPINFO_MAPPED_ADDR,
|
||||
IWPM_NLA_MAPINFO_MAX
|
||||
};
|
||||
|
||||
enum {
|
||||
IWPM_NLA_MAPINFO_NUM_UNSPEC = 0,
|
||||
IWPM_NLA_MAPINFO_SEQ,
|
||||
IWPM_NLA_MAPINFO_SEND_NUM,
|
||||
IWPM_NLA_MAPINFO_ACK_NUM,
|
||||
IWPM_NLA_MAPINFO_NUM_MAX
|
||||
};
|
||||
|
||||
enum {
|
||||
IWPM_NLA_ERR_UNSPEC = 0,
|
||||
IWPM_NLA_ERR_SEQ,
|
||||
IWPM_NLA_ERR_CODE,
|
||||
IWPM_NLA_ERR_MAX
|
||||
};
|
||||
|
||||
|
||||
#endif /* _UAPI_RDMA_NETLINK_H */
|
||||
|
||||
Reference in New Issue
Block a user