> From: Hal Rosenstock [mailto:h...@dev.mellanox.co.il]
> Sent: Wednesday, June 10, 2015 1:47 PM
> 
> On 6/9/2015 10:57 AM, kaike....@intel.com wrote:
> > From: Kaike Wan <kaike....@intel.com>
> >
> > This patch adds netlink defines for SA client, local service group,
> > local service operations, and related attributes.
> >
> > Signed-off-by: Kaike Wan <kaike....@intel.com>
> > Signed-off-by: John Fleck <john.fl...@intel.com>
> > Signed-off-by: Ira Weiny <ira.we...@intel.com>
> > Reviewed-by: Sean Hefty <sean.he...@intel.com>
> > ---
> >  include/uapi/rdma/rdma_netlink.h |   82
> ++++++++++++++++++++++++++++++++++++++
> >  1 files changed, 82 insertions(+), 0 deletions(-)
> >
> > diff --git a/include/uapi/rdma/rdma_netlink.h
> > b/include/uapi/rdma/rdma_netlink.h
> > index 6e4bb42..341e9be 100644
> > --- a/include/uapi/rdma/rdma_netlink.h
> > +++ b/include/uapi/rdma/rdma_netlink.h
> > @@ -7,12 +7,14 @@ enum {
> >     RDMA_NL_RDMA_CM = 1,
> >     RDMA_NL_NES,
> >     RDMA_NL_C4IW,
> > +   RDMA_NL_SA,
> >     RDMA_NL_NUM_CLIENTS
> >  };
> >
> >  enum {
> >     RDMA_NL_GROUP_CM = 1,
> >     RDMA_NL_GROUP_IWPM,
> > +   RDMA_NL_GROUP_LS,
> >     RDMA_NL_NUM_GROUPS
> >  };
> >
> > @@ -128,5 +130,85 @@ enum {
> >     IWPM_NLA_ERR_MAX
> >  };
> >
> > +/* Local service group opcodes */
> > +enum {
> > +   RDMA_NL_LS_OP_RESOLVE = 0,
> > +   RDMA_NL_LS_OP_SET_TIMEOUT,
> > +   RDMA_NL_LS_NUM_OPS
> > +};
> > +
> > +/* Local service netlink message flags */
> > +#define RDMA_NL_LS_F_OK            0x0100  /* Success response */
> > +#define RDMA_NL_LS_F_ERR   0x0200  /* Failed response */
> > +
> > +/* Local service attribute type */
> > +enum {
> > +   LS_NLA_TYPE_STATUS = 0,
> > +   LS_NLA_TYPE_PATH_RECORD,
> > +   LS_NLA_TYPE_TIMEOUT,
> > +   LS_NLA_TYPE_SERVICE_ID,
> > +   LS_NLA_TYPE_DGID,
> > +   LS_NLA_TYPE_SGID,
> > +   LS_NLA_TYPE_TCLASS,
> > +   LS_NLA_TYPE_REVERSIBLE,
> > +   LS_NLA_TYPE_NUM_PATH,
> 
> Should this be NUMB_PATH rather than NUM_PATH ?

Yes. 

> 
> > +   LS_NLA_TYPE_PKEY,
> > +   LS_NLA_TYPE_QOS_CLASS,
> 
> Should this include SL too ?

It will be another attribute. All the fields are modeled after struct 
ib_sa_path_rec and struct ib_user_path_rec,  not after struct ibv_path_record 
in the user space. In addition, only those pathrecord components that are 
currently used by rdma_cm, ipoib, and srp are list here.

> 
> > +   LS_NLA_TYPE_MAX
> > +};
> > +
> > +/* Local service status attribute */
> > +enum {
> > +   LS_NLA_STATUS_SUCCESS = 0,
> > +   LS_NLA_STATUS_EINVAL,
> > +   LS_NLA_STATUS_ENODATA,
> > +   LS_NLA_STATUS_MAX
> > +};
> > +
> > +struct rdma_nla_ls_status {
> > +   __u32           status;
> > +};
> > +
> > +/* Local service pathrecord attribute: struct ib_path_rec_data */
> > +
> > +/* Local service timeout attribute */ struct rdma_nla_ls_timeout {
> > +   __u32           timeout;
> > +};
> > +
> > +/* Local Service ServiceID attribute */ struct rdma_nla_ls_service_id
> > +{
> > +   __be64          service_id;
> > +};
> > +
> > +/* Local Service DGID/SGID attribute: big endian */ struct
> > +rdma_nla_ls_gid {
> > +   __u8            gid[16];
> > +};
> > +
> > +/* Local Service Traffic Class attribute */ struct rdma_nla_ls_tclass
> > +{
> > +   __u8            tclass;
> > +};
> > +
> > +/* Local Service Reversible attribute */ struct
> > +rdma_nla_ls_reversible {
> > +   __u32           reversible;
> > +};
> 
> Isn't __u8 sufficient for reversible ?
Certainly enough. However, reversible is __u32 in struct ib_user_path_rec and 
int in struct ib_sa_path_rec.

> 
> > +
> > +/* Local Service numb_path attribute */ struct rdma_nla_ls_numb_path
> > +{
> > +   __u8            numb_path;
> > +};
> > +
> > +/* Local Service Pkey attribute*/
> > +struct rdma_nla_ls_pkey {
> > +   __be16          pkey;
> > +};
> > +
> > +/* Local Service Qos Class attribute */ struct rdma_nla_ls_qos_class
> > +{
> > +   __be16          qos_class;
> > +};
> >
> >  #endif /* _UAPI_RDMA_NETLINK_H */

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to