[openib-general] OFED SRP initiator always sends CM REJ in response to CM REP

Chris Youb chris_youb at yahoo.ca
Tue Oct 31 09:13:27 PST 2006


Abstract: 
  We are developing SRP target code and testing it with the OFED 1.1 SRP  initiator.  The OFED SRP initiator sends us a CM REQ (IB 12.6.5) and we  respond with CM REP (12.6.8).  However, instead of the expected CM RTU  (12.6.9) we ALWAYS receive a CM REJ (12.6.7) with status 0x1C == Reason  28 (12.6.7.2). 
  
 Software Setup: 
 - SUSE 10.0 
 - OFED 1.1 
 - Mellanox card with 3.5.00 firmware 
  
 Details: 
  Initially we suspected our response values in the CM REP packet.   There is nothing obvious to us, and anything we weren't sure about we  tried a number of combinations.  This applies to the SRP private data as  well. 
  We also took a look at ./openib-1.1/drivers/infiniband/core/ cm.c and  cma.c.  The function cma.c:cma_rep_recv looked like a possibility but  there's little debug output.  Aside from putting in printk's and  recompiling and installing is there an easier way to debug? 
  
  Included below is the output from the initiator and packet dumps of  the 3 packets.
 
 -------------------------------------- 
  
 ./ibsrpdm -cv 
 id_ext=200601045300030B,ioc_guid=00045381300030b2,dgid=fe8000000000000000045381300030b2,pkey=ffff,service_id=200601045300030b 
 id_ext=2000020453000011,ioc_guid=00045381300030b2,dgid=fe8000000000000000045381300030b2,pkey=ffff,service_id=2000020453000011 
  
 cycl-247:/usr/local/ofed/sbin # echo  id_ext=2000020453000011,ioc_guid=00045381300030b2,dgid=fe8000000000000000045381300030b2,pkey=ffff,service_id=2000020453000011  >/sys/class/infiniband_srp/srp-mthca0-1/add_target 
  
 -------------------------------------- 
  
 *** CM REQ *** 
  
 received MAD [QP1]: 
 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:               0x0004    (16 bit uint) 
    rsv1:               0x00    (5 bit uint) 
    pktLen:             0x048    (11 bit uint) 
    SLID:               0x0104    (16 bit uint) 
 } 
 MAD:                struct CMFormat (256 bytes) - 
                    Request for Communication (section 16.7.1) 
 { 
    MADHeader:          struct MADHeader (24 bytes) - 
                        MAD Base Header (section 13.4.3) 
    { 
        baseVersion:        0x01    (8 bit uint) 
        mgmtClass:          0x07    (8 bit uint) 
        classVersion:       0x02    (8 bit uint) 
        method:             0x03    (8 bit uint) 
        status:             0x0000    (16 bit uint) 
        classSpecific:      0x0000    (16 bit uint) 
        transactionID:      0x0000003BE64D1C3E    (64 bit uint) 
        attributeID:        0x0010    (16 bit uint) 
        rsv0:               0x0000    (16 bit uint) 
        attributeModifier:  0x00000000    (32 bit uint) 
    } 
    data:               struct CMREQ (232 bytes) - 
                        Request for Communication (section 12.6.5) 
    { 
        LCID:               0x3E1C4DE6    (32 bit uint) 
        rsv0:               0x00000000    (32 bit uint) 
        serviceID:          0x2000020453000011    (64 bit uint) 
        LGUID:              0x00066A0098005B37    (64 bit uint) 
        localCMQKey:        0x00000000    (32 bit uint) 
        localQKey:          0x00000000    (32 bit uint) 
        localQPN:           0x180014    (24 bit uint) 
        responderResources: 0x04    (8 bit uint) 
        localEECN:          0x000000    (24 bit uint) 
        initiatorDepth:     0x00    (8 bit uint) 
        remoteEECN:         0x000000    (24 bit uint) 
        remoteResponseTimeout: 0x14    (5 bit uint) 
        transportService:   0x0    (2 bit uint) 
        flowControl:        0x1    (1 bit uint) 
        startingPSN:        0x1D4319    (24 bit uint) 
        localResponseTimeout: 0x14    (5 bit uint) 
        retryCount:         0x7    (3 bit uint) 
        PKey:               0xFFFF    (16 bit uint) 
        pathPacketMTU:      0x4    (4 bit uint) 
        RDCExists:          0x0    (1 bit uint) 
        RNRRetryCount:      0x7    (3 bit uint) 
        maxCMRetries:       0xF    (4 bit uint) 
        SRQ:                0x0    (1 bit uint) 
        rsv1:               0x0    (3 bit uint) 
        primaryPath:        struct CMPath (44 bytes) - 
                            Path Information (section 12.6) 
        { 
            SLID:               0x0104    (16 bit uint) 
            DLID:               0x0004    (16 bit uint) 
            SGID:               FE80:0:0:0:6:6A00:A000:5B37    (HdrIPv6Addr) 
            DGID:               FE80:0:0:0:4:5381:3000:30B2    (HdrIPv6Addr) 
            flowLabel:          0x00000    (20 bit uint) 
            rsv0:               0x0    (4 bit uint) 
            rsv1:               0x0    (2 bit uint) 
            packetRate:         0x02    (6 bit uint) 
            TClass:             0x00    (8 bit uint) 
            hopLimit:           0x00    (8 bit uint) 
            SL:                 0x0    (4 bit uint) 
            subnetLocal:        0x1    (1 bit uint) 
            rsv2:               0x0    (3 bit uint) 
            localACKTimeout:    0x13    (5 bit uint) 
            rsv3:               0x0    (3 bit uint) 
        } 
        alternatePath:      struct CMPath (44 bytes) - 
                            Path Information (section 12.6) 
        { 
            SLID:               0x0000    (16 bit uint) 
            DLID:               0x0000    (16 bit uint) 
            SGID:               0:0:0:0:0:0:0:0    (HdrIPv6Addr) 
            DGID:               0:0:0:0:0:0:0:0    (HdrIPv6Addr) 
            flowLabel:          0x00000    (20 bit uint) 
            rsv0:               0x0    (4 bit uint) 
            rsv1:               0x0    (2 bit uint) 
            packetRate:         0x00    (6 bit uint) 
            TClass:             0x00    (8 bit uint) 
            hopLimit:           0x00    (8 bit uint) 
            SL:                 0x0    (4 bit uint) 
            subnetLocal:        0x0    (1 bit uint) 
            rsv2:               0x0    (3 bit uint) 
            localACKTimeout:    0x00    (5 bit uint) 
            rsv3:               0x0    (3 bit uint) 
        } 
        privateData:        raw data in hex    (92 bytes) 
        { 
            00000000 00000000 00000000 00000000 00000104 00000000 00060000 
            00000000 00000000 00000000 00066A00 A0005B37 20000204 53000011 
            00045381 300030B2 00000000 00000000 00000000 00000000 00000000 
            00000000 00000000 
        } 
    } 
 } 
 0302070100000000 3b0000003e1c4de6 
 0000100000000000 e64d1c3e00000000 
 0402002011000053 006a0600375b0098 
 0000000000000000 0414001800000000 
 a1000000a719431d f047ffff04000401 
 000080fe00000000 006a0600375b00a0 
 000080fe00000000 81530400b2300030 
 0200000098080000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000004010000 0000000000000600 
 0000000000000000 00000000006a0600 
 375b00a004020020 1100005381530400 
 b230003000000000 0000000000000000 
 0000000000000000 0000000000000000 
  
 -------------------------------------- 
  
 *** CM REP *** 
  
 sending MAD [QP1]: 
 MAD:                struct CMFormat (256 bytes) - 
                    Request for Communication (section 16.7.1) 
 { 
    MADHeader:          struct MADHeader (24 bytes) - 
                        MAD Base Header (section 13.4.3) 
    { 
        baseVersion:        0x01    (8 bit uint) 
        mgmtClass:          0x07    (8 bit uint) 
        classVersion:       0x02    (8 bit uint) 
        method:             0x03    (8 bit uint) 
        status:             0x0000    (16 bit uint) 
        classSpecific:      0x0000    (16 bit uint) 
        transactionID:      0x0000003BE64D1C3E    (64 bit uint) 
        attributeID:        0x0013    (16 bit uint) 
        rsv0:               0x0000    (16 bit uint) 
        attributeModifier:  0x00000000    (32 bit uint) 
    } 
    data:               struct CMREP (232 bytes) - 
                        Reply To Request For Communication (section 12.6.8) 
    { 
        LCID:               0xE118A61B    (32 bit uint) 
        RCID:               0x3E1C4DE6    (32 bit uint) 
        localQKey:          0x00000000    (32 bit uint) 
        localQPN:           0x000408    (24 bit uint) 
        rsv0:               0x00    (8 bit uint) 
        localEEContext:     0x000000    (24 bit uint) 
        rsv1:               0x00    (8 bit uint) 
        startingPSN:        0x3B3163    (24 bit uint) 
        rsv2:               0x00    (8 bit uint) 
        responderResources: 0x04    (8 bit uint) 
        initiatorDepth:     0x07    (8 bit uint) 
        targetACKDelay:     0x1F    (5 bit uint) 
        failoverAccepted:   0x0    (2 bit uint) 
        flowControl:        0x1    (1 bit uint) 
        RNRRetryCount:      0x7    (3 bit uint) 
        rsv3:               0x00    (5 bit uint) 
        LGUID:              0x00045381300030B0    (64 bit uint) 
        privateData:        raw data in hex    (196 bytes) 
        { 
            C0000000 00000064 00000000 00000000 00000104 00000104 00060000 
            00000000 00000000 00000000 00000000 00000000 00000000 00000000 
            00000000 00000000 00000000 00000000 00000000 00000000 00000000 
            00000000 00000000 00000000 00000000 00000000 00000000 00000000 
            00000000 00000000 00000000 00000000 00000000 00000000 00000000 
            00000000 00000000 00000000 00000000 00000000 00000000 00000000 
            00000000 00000000 00000000 00000000 00000000 00000000 00000000 
        } 
    } 
 } 
 0302070100000000 3b0000003e1c4de6 
 0000130000000000 1ba618e1e64d1c3e 
 0000000000080400 000000000063313b 
 e0f9070481530400 b0300030000000c0 
 6400000000000000 0000000004010000 
 0401000000000600 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 -------------------------------------- 
  
 *** CM REJ *** 
  
 received MAD [QP1]: 
 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:               0x0004    (16 bit uint) 
    rsv1:               0x00    (5 bit uint) 
    pktLen:             0x048    (11 bit uint) 
    SLID:               0x0104    (16 bit uint) 
 } 
 MAD:                struct CMFormat (256 bytes) - 
                    Request for Communication (section 16.7.1) 
 { 
    MADHeader:          struct MADHeader (24 bytes) - 
                        MAD Base Header (section 13.4.3) 
    { 
        baseVersion:        0x01    (8 bit uint) 
        mgmtClass:          0x07    (8 bit uint) 
        classVersion:       0x02    (8 bit uint) 
        method:             0x03    (8 bit uint) 
        status:             0x0000    (16 bit uint) 
        classSpecific:      0x0000    (16 bit uint) 
        transactionID:      0x0000003BE64D1C3E    (64 bit uint) 
        attributeID:        0x0012    (16 bit uint) 
        rsv0:               0x0000    (16 bit uint) 
        attributeModifier:  0x00000000    (32 bit uint) 
    } 
    data:               struct CMREJ (232 bytes) - 
                        Reject (section 12.6.7) 
    { 
        LCID:               0x3E1C4DE6    (32 bit uint) 
        RCID:               0xE118A61B    (32 bit uint) 
        messageRejected:    0x1    (2 bit uint) 
        rsv0:               0x00    (6 bit uint) 
        rejectInfoLength:   0x00    (7 bit uint) 
        rsv1:               0x0    (1 bit uint) 
        reason:             0x001C    (16 bit uint) 
        ARI:                raw data in hex    (72 bytes) 
        { 
            00000000 00000000 00000000 00000000 00000000 00000000 00000000 
            00000000 00000000 00000000 00000000 00000000 00000000 00000000 
            00000000 00000000 00000000 00000000 
        } 
        privateData:        raw data in hex    (148 bytes) 
        { 
            00000000 00000000 00000000 00000000 00000000 00000000 00000000 
            00000000 00000000 00000000 00000000 00000000 00000000 00000000 
            00000000 00000000 00000000 00000000 00000000 00000000 00000000 
            00000000 00000000 00000000 00000000 00000000 00000000 00000000 
            00000000 00000000 00000000 00000000 00000000 00000000 00000000 
            00000000 00000000 
        } 
    } 
 } 
 0302070100000000 3b0000003e1c4de6 
 0000120000000000 e64d1c3e1ba618e1 
 1c00004000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
 0000000000000000 0000000000000000 
  
 -------------------------------------- 
 
 
 				
---------------------------------
Make free worldwide PC-to-PC calls. Try the new Yahoo! Canada Messenger with Voice
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/general/attachments/20061031/85f1069c/attachment.html>


More information about the general mailing list