IB/sa: Add new QoS fields to path record
Sean Hefty [Wed, 8 Aug 2007 22:41:28 +0000 (15:41 -0700)]
The QoS annex defines new fields for path records.  Add them to the
ib_sa for consumers that want to use them.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Reviewed-by: Or Gerlitz <ogerlitz@voltaire.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>

drivers/infiniband/core/sa_query.c
include/rdma/ib_sa.h

index 312c8ff..cf474ec 100644 (file)
@@ -123,14 +123,10 @@ static u32 tid;
        .field_name          = "sa_path_rec:" #field
 
 static const struct ib_field path_rec_table[] = {
-       { RESERVED,
+       { PATH_REC_FIELD(service_id),
          .offset_words = 0,
          .offset_bits  = 0,
-         .size_bits    = 32 },
-       { RESERVED,
-         .offset_words = 1,
-         .offset_bits  = 0,
-         .size_bits    = 32 },
+         .size_bits    = 64 },
        { PATH_REC_FIELD(dgid),
          .offset_words = 2,
          .offset_bits  = 0,
@@ -179,7 +175,7 @@ static const struct ib_field path_rec_table[] = {
          .offset_words = 12,
          .offset_bits  = 16,
          .size_bits    = 16 },
-       { RESERVED,
+       { PATH_REC_FIELD(qos_class),
          .offset_words = 13,
          .offset_bits  = 0,
          .size_bits    = 12 },
index 5e26b2f..942692b 100644 (file)
@@ -109,8 +109,8 @@ enum ib_sa_selector {
  * Reserved rows are indicated with comments to help maintainability.
  */
 
-/* reserved:                                                            0 */
-/* reserved:                                                            1 */
+#define IB_SA_PATH_REC_SERVICE_ID                     (IB_SA_COMP_MASK( 0) |\
+                                                       IB_SA_COMP_MASK( 1))
 #define IB_SA_PATH_REC_DGID                            IB_SA_COMP_MASK( 2)
 #define IB_SA_PATH_REC_SGID                            IB_SA_COMP_MASK( 3)
 #define IB_SA_PATH_REC_DLID                            IB_SA_COMP_MASK( 4)
@@ -123,7 +123,7 @@ enum ib_sa_selector {
 #define IB_SA_PATH_REC_REVERSIBLE                      IB_SA_COMP_MASK(11)
 #define IB_SA_PATH_REC_NUMB_PATH                       IB_SA_COMP_MASK(12)
 #define IB_SA_PATH_REC_PKEY                            IB_SA_COMP_MASK(13)
-/* reserved:                                                           14 */
+#define IB_SA_PATH_REC_QOS_CLASS                       IB_SA_COMP_MASK(14)
 #define IB_SA_PATH_REC_SL                              IB_SA_COMP_MASK(15)
 #define IB_SA_PATH_REC_MTU_SELECTOR                    IB_SA_COMP_MASK(16)
 #define IB_SA_PATH_REC_MTU                             IB_SA_COMP_MASK(17)
@@ -134,8 +134,7 @@ enum ib_sa_selector {
 #define IB_SA_PATH_REC_PREFERENCE                      IB_SA_COMP_MASK(22)
 
 struct ib_sa_path_rec {
-       /* reserved */
-       /* reserved */
+       __be64       service_id;
        union ib_gid dgid;
        union ib_gid sgid;
        __be16       dlid;
@@ -148,7 +147,7 @@ struct ib_sa_path_rec {
        int          reversible;
        u8           numb_path;
        __be16       pkey;
-       /* reserved */
+       __be16       qos_class;
        u8           sl;
        u8           mtu_selector;
        u8           mtu;