IB/core: Add subnet prefix to port info
[deliverable/linux.git] / include / rdma / ib_verbs.h
index 284b00c8fea4a4f67943aa7979d1b51728e5732e..7239b9a4499e857d251158b4616527ea23ddc985 100644 (file)
@@ -212,6 +212,7 @@ enum ib_device_cap_flags {
        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),
 };
 
 enum ib_signature_prot_cap {
@@ -273,7 +274,7 @@ struct ib_device_attr {
        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;
@@ -489,6 +490,7 @@ union rdma_protocol_stats {
                                        | 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;
@@ -662,10 +664,15 @@ __attribute_const__ int ib_rate_to_mbps(enum ib_rate rate);
  * @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,
 };
 
 /**
@@ -1487,6 +1494,11 @@ enum ib_flow_domain {
        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];
@@ -1808,7 +1820,8 @@ struct ib_device {
                                                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,
@@ -1846,6 +1859,8 @@ struct ib_device {
        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);
 
        struct ib_dma_mapping_ops   *dma_ops;
 
@@ -3094,4 +3109,7 @@ int ib_sg_to_pages(struct ib_mr *mr,
                   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 */
This page took 0.037917 seconds and 5 git commands to generate.