[openib-general] OpenSM problem?!

Roel van der Goot roel at yottayotta.com
Thu Sep 15 17:21:07 PDT 2005


Hi Hal,

If my interpretation of the spec is correct, it seems that OpenSM
has problems with a window size of one during the RMPP protocol.
Shortly after receiving a lid from the OpenSM, our application
asks for subnAdmGetTable(SANodeRecord):

     sending MAD:

     MAD:                struct SAHeader (56 bytes) -
                         SA Header (section 15.2.1.1)
     {
         RMPPHeader:         struct RMPPHeader (36 bytes) -
                             RMPP Header Fields (section 13.6.2.1)
         {
             MADHeader:          struct MADHeader (24 bytes) -
                                 MAD Base Header (section 13.4.3)
             {
                 baseVersion:        0x01    (8 bit uint)
                 mgmtClass:          0x03    (8 bit uint)
                 classVersion:       0x02    (8 bit uint)
                 method:             0x12    (8 bit uint)
                 status:             0x0000    (16 bit uint)
                 classSpecific:      0x0000    (16 bit uint)
                 transactionID:      0x000000000003B59E    (64 bit uint)
                 attributeID:        0x0011    (16 bit uint)
                 rsv0:               0x0000    (16 bit uint)
                 attributeModifier:  0x00000000    (32 bit uint)
             }
             RMPPVersion:        0x00    (8 bit uint)
             RMPPType:           0x00    (8 bit uint)
             RRespTime:          0x00    (5 bit uint)
             RMPPFlags:          0x0    (3 bit uint)
             RMPPStatus:         0x00    (8 bit uint)
             data1:              0x4E4F4E4F    (32 bit uint)
             data2:              0x4E4F4E4F    (32 bit uint)
         }
         SMKey:              0x0000000000000000    (64 bit uint)
         attributeOffset:    0x000E    (16 bit uint)
         rsv0:               0x0000    (16 bit uint)
         componentMask:      0x0000000000000000    (64 bit uint)
     }

The OpenSM replies:

     received MAD:
     struct HdrLRH (8 bytes) -
                         Local Route Header (section 7.7)
     {
         VL:                 0x0    (4 bit uint)
         LVer:               0x0    (4 bit uint)
         SL:                 0x0    (4 bit uint)
         rsv0:               0x0    (2 bit uint)
         LNH:                0x2    (2 bit uint)
         DLID:               0x0001    (16 bit uint)
         rsv1:               0x00    (5 bit uint)
         pktLen:             0x048    (11 bit uint)
         SLID:               0x0002    (16 bit uint)
     }
     MAD:                struct SAHeader (56 bytes) -
                         SA Header (section 15.2.1.1)
     {
         RMPPHeader:         struct RMPPHeader (36 bytes) -
                             RMPP Header Fields (section 13.6.2.1)
         {
             MADHeader:          struct MADHeader (24 bytes) -
                                 MAD Base Header (section 13.4.3)
             {
                 baseVersion:        0x01    (8 bit uint)
                 mgmtClass:          0x03    (8 bit uint)
                 classVersion:       0x02    (8 bit uint)
                 method:             0x92    (8 bit uint)
                 status:             0x0000    (16 bit uint)
                 classSpecific:      0x0000    (16 bit uint)
                 transactionID:      0x000000000003B59E    (64 bit uint)
                 attributeID:        0x0011    (16 bit uint)
                 rsv0:               0x0000    (16 bit uint)
                 attributeModifier:  0x00000000    (32 bit uint)
             }
             RMPPVersion:        0x01    (8 bit uint)
             RMPPType:           0x01    (8 bit uint)
             RRespTime:          0x00    (5 bit uint)
             RMPPFlags:          0x3    (3 bit uint)
             RMPPStatus:         0x00    (8 bit uint)
             data1:              0x00000001    (32 bit uint)
             data2:              0x000002F0    (32 bit uint)
         }
         SMKey:              0x0000000000000000    (64 bit uint)
         attributeOffset:    0x000E    (16 bit uint)
         rsv0:               0x0000    (16 bit uint)
         componentMask:      0x0000000000000000    (64 bit uint)
     }

The application acks with a window size of 1:

     sending MAD:
     unrecognized MAD class attribute: 0x0000
     MAD:                struct SAHeader (56 bytes) -
                         SA Header (section 15.2.1.1)
     {
         RMPPHeader:         struct RMPPHeader (36 bytes) -
                             RMPP Header Fields (section 13.6.2.1)
         {
             MADHeader:          struct MADHeader (24 bytes) -
                                 MAD Base Header (section 13.4.3)
             {
                 baseVersion:        0x01    (8 bit uint)
                 mgmtClass:          0x03    (8 bit uint)
                 classVersion:       0x00    (8 bit uint)
                 method:             0x00    (8 bit uint)
                 status:             0x0000    (16 bit uint)
                 classSpecific:      0x0000    (16 bit uint)
                 transactionID:      0x000000000003B59E    (64 bit uint)
                 attributeID:        0x0000    (16 bit uint)
                 rsv0:               0x0000    (16 bit uint)
                 attributeModifier:  0x00000000    (32 bit uint)
             }
             RMPPVersion:        0x01    (8 bit uint)
             RMPPType:           0x02    (8 bit uint)
             RRespTime:          0x14    (5 bit uint)
             RMPPFlags:          0x1    (3 bit uint)
             RMPPStatus:         0x00    (8 bit uint)
             data1:              0x00000001    (32 bit uint)
             data2:              0x00000002    (32 bit uint)
         }
         SMKey:              0x0000000000000000    (64 bit uint)
         attributeOffset:    0x0000    (16 bit uint)
         rsv0:               0x0000    (16 bit uint)
         componentMask:      0x0000000000000000    (64 bit uint)
     }

OpenSM says that it received the initial packet again:

     received MAD:
     struct HdrLRH (8 bytes) -
                         Local Route Header (section 7.7)
     {
         VL:                 0x0    (4 bit uint)
         LVer:               0x0    (4 bit uint)
         SL:                 0x0    (4 bit uint)
         rsv0:               0x0    (2 bit uint)
         LNH:                0x2    (2 bit uint)
         DLID:               0x0001    (16 bit uint)
         rsv1:               0x00    (5 bit uint)
         pktLen:             0x048    (11 bit uint)
         SLID:               0x0002    (16 bit uint)
     }
     MAD:                struct SAHeader (56 bytes) -
                         SA Header (section 15.2.1.1)
     {
         RMPPHeader:         struct RMPPHeader (36 bytes) -
                             RMPP Header Fields (section 13.6.2.1)
         {
             MADHeader:          struct MADHeader (24 bytes) -
                                 MAD Base Header (section 13.4.3)
             {
                 baseVersion:        0x01    (8 bit uint)
                 mgmtClass:          0x03    (8 bit uint)
                 classVersion:       0x02    (8 bit uint)
                 method:             0x92    (8 bit uint)
                 status:             0x0000    (16 bit uint)
                 classSpecific:      0x0000    (16 bit uint)
                 transactionID:      0x000000000003B59E    (64 bit uint)
                 attributeID:        0x0011    (16 bit uint)
                 rsv0:               0x0000    (16 bit uint)
                 attributeModifier:  0x00000000    (32 bit uint)
             }
             RMPPVersion:        0x01    (8 bit uint)
             RMPPType:           0x01    (8 bit uint)
             RRespTime:          0x00    (5 bit uint)
             RMPPFlags:          0x3    (3 bit uint)
             RMPPStatus:         0x00    (8 bit uint)
             data1:              0x00000001    (32 bit uint)
             data2:              0x000002F0    (32 bit uint)
         }
         SMKey:              0x0000000000000000    (64 bit uint)
         attributeOffset:    0x000E    (16 bit uint)
         rsv0:               0x0000    (16 bit uint)
         componentMask:      0x0000000000000000    (64 bit uint)
     }

Our application acks once again:

sending MAD:
unrecognized MAD class attribute: 0x0000
MAD:                struct SAHeader (56 bytes) -
                     SA Header (section 15.2.1.1)
{
     RMPPHeader:         struct RMPPHeader (36 bytes) -
                         RMPP Header Fields (section 13.6.2.1)
     {
         MADHeader:          struct MADHeader (24 bytes) -
                             MAD Base Header (section 13.4.3)
         {
             baseVersion:        0x01    (8 bit uint)
             mgmtClass:          0x03    (8 bit uint)
             classVersion:       0x00    (8 bit uint)
             method:             0x00    (8 bit uint)
             status:             0x0000    (16 bit uint)
             classSpecific:      0x0000    (16 bit uint)
             transactionID:      0x000000000003B59E    (64 bit uint)
             attributeID:        0x0000    (16 bit uint)
             rsv0:               0x0000    (16 bit uint)
             attributeModifier:  0x00000000    (32 bit uint)
         }
         RMPPVersion:        0x01    (8 bit uint)
         RMPPType:           0x02    (8 bit uint)
         RRespTime:          0x14    (5 bit uint)
         RMPPFlags:          0x1    (3 bit uint)
         RMPPStatus:         0x00    (8 bit uint)
         data1:              0x00000001    (32 bit uint)
         data2:              0x00000002    (32 bit uint)
     }
     SMKey:              0x0000000000000000    (64 bit uint)
     attributeOffset:    0x0000    (16 bit uint)
     rsv0:               0x0000    (16 bit uint)
     componentMask:      0x0000000000000000    (64 bit uint)
}

The RMPP sequence times out, our application sends another
subnAdmGetTable(SANodeRecord), ad infinitum.

Cheers :-),
Roel.



More information about the general mailing list