[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