F: drivers/net/ethernet/intel/
F: drivers/net/ethernet/intel/*/
++INTEL RDMA RNIC DRIVER
++M: Faisal Latif <faisal.latif@intel.com>
++R: Chien Tin Tung <chien.tin.tung@intel.com>
++R: Mustafa Ismail <mustafa.ismail@intel.com>
++R: Shiraz Saleem <shiraz.saleem@intel.com>
++R: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
++L: linux-rdma@vger.kernel.org
++S: Supported
++F: drivers/infiniband/hw/i40iw/
++
INTEL-MID GPIO DRIVER
M: David Cohen <david.a.cohen@linux.intel.com>
L: linux-gpio@vger.kernel.org
S: Supported
F: net/rds/
++ RDMAVT - RDMA verbs software
++ M: Dennis Dalessandro <dennis.dalessandro@intel.com>
++ L: linux-rdma@vger.kernel.org
++ S: Supported
++ F: drivers/infiniband/sw/rdmavt
++
READ-COPY UPDATE (RCU)
M: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
M: Josh Triplett <josh@joshtriplett.org>
#include <linux/string.h>
#include <linux/slab.h>
+ +#include <linux/if_link.h>
#include <linux/atomic.h>
#include <linux/mmu_notifier.h>
#include <asm/uaccess.h>
RDMA_NODE_USNIC_UDP,
};
+ +enum {
+ + /* set the local administered indication */
+ + IB_SA_WELL_KNOWN_GUID = BIT_ULL(57) | 2,
+ +};
+ +
enum rdma_transport_type {
RDMA_TRANSPORT_IB,
RDMA_TRANSPORT_IWARP,
IB_DEVICE_MANAGED_FLOW_STEERING = (1 << 29),
IB_DEVICE_SIGNATURE_HANDOVER = (1 << 30),
IB_DEVICE_ON_DEMAND_PAGING = (1 << 31),
+ + IB_DEVICE_SG_GAPS_REG = (1ULL << 32),
+ + IB_DEVICE_VIRTUAL_FUNCTION = ((u64)1 << 33),
};
enum ib_signature_prot_cap {
u32 hw_ver;
int max_qp;
int max_qp_wr;
- - int device_cap_flags;
+ + u64 device_cap_flags;
int max_sge;
int max_sge_rd;
int max_cq;
| RDMA_CORE_CAP_OPA_MAD)
struct ib_port_attr {
+ + u64 subnet_prefix;
enum ib_port_state state;
enum ib_mtu max_mtu;
enum ib_mtu active_mtu;
u8 active_width;
u8 active_speed;
u8 phys_state;
+ + bool grh_required;
};
enum ib_device_modify_flags {
};
#define IB_LID_PERMISSIVE cpu_to_be16(0xFFFF)
++ #define IB_MULTICAST_LID_BASE cpu_to_be16(0xC000)
enum ib_ah_flags {
IB_AH_GRH = 1
* @IB_MR_TYPE_SIGNATURE: memory region that is used for
* signature operations (data-integrity
* capable regions)
+ + * @IB_MR_TYPE_SG_GAPS: memory region that is capable to
+ + * register any arbitrary sg lists (without
+ + * the normal mr constraints - see
+ + * ib_map_mr_sg)
*/
enum ib_mr_type {
IB_MR_TYPE_MEM_REG,
IB_MR_TYPE_SIGNATURE,
+ + IB_MR_TYPE_SG_GAPS,
};
/**
IB_FLOW_DOMAIN_NUM /* Must be last */
};
+ +enum ib_flow_flags {
+ + IB_FLOW_ATTR_FLAGS_DONT_TRAP = 1UL << 1, /* Continue match, no steal */
+ + IB_FLOW_ATTR_FLAGS_RESERVED = 1UL << 2 /* Must be last */
+ +};
+ +
struct ib_flow_eth_filter {
u8 dst_mac[6];
u8 src_mac[6];
struct scatterlist *sg,
int sg_nents);
struct ib_mw * (*alloc_mw)(struct ib_pd *pd,
- - enum ib_mw_type type);
+ + enum ib_mw_type type,
+ + struct ib_udata *udata);
int (*dealloc_mw)(struct ib_mw *mw);
struct ib_fmr * (*alloc_fmr)(struct ib_pd *pd,
int mr_access_flags,
int (*check_mr_status)(struct ib_mr *mr, u32 check_mask,
struct ib_mr_status *mr_status);
void (*disassociate_ucontext)(struct ib_ucontext *ibcontext);
+ + void (*drain_rq)(struct ib_qp *qp);
+ + void (*drain_sq)(struct ib_qp *qp);
+ + int (*set_vf_link_state)(struct ib_device *device, int vf, u8 port,
+ + int state);
+ + int (*get_vf_config)(struct ib_device *device, int vf, u8 port,
+ + struct ifla_vf_info *ivf);
+ + int (*get_vf_stats)(struct ib_device *device, int vf, u8 port,
+ + struct ifla_vf_stats *stats);
+ + int (*set_vf_guid)(struct ib_device *device, int vf, u8 port, u64 guid,
+ + int type);
struct ib_dma_mapping_ops *dma_ops;
u8 port_num, int index, union ib_gid *gid,
struct ib_gid_attr *attr);
+ +int ib_set_vf_link_state(struct ib_device *device, int vf, u8 port,
+ + int state);
+ +int ib_get_vf_config(struct ib_device *device, int vf, u8 port,
+ + struct ifla_vf_info *info);
+ +int ib_get_vf_stats(struct ib_device *device, int vf, u8 port,
+ + struct ifla_vf_stats *stats);
+ +int ib_set_vf_guid(struct ib_device *device, int vf, u8 port, u64 guid,
+ + int type);
+ +
int ib_query_pkey(struct ib_device *device,
u8 port_num, u16 index, u16 *pkey);
int sg_nents,
int (*set_page)(struct ib_mr *, u64));
+ +void ib_drain_rq(struct ib_qp *qp);
+ +void ib_drain_sq(struct ib_qp *qp);
+ +void ib_drain_qp(struct ib_qp *qp);
#endif /* IB_VERBS_H */