2
0
mirror of https://opendev.org/x/pyghmi synced 2026-04-02 00:03:30 +00:00

Discard rsLun in reply

After adding support for non-zero lun, some reports came back of
dropping responses.  However, there is at least one platform that
incorrectly puts 0 in rsLun in replies to packet that had 0 in rsLun.

Workaround by masking out the rsLun value in replies before checking for a
match.

Change-Id: I23a46fce23327ce90d2be845a806d6ba0c4b975e
This commit is contained in:
Jarrod Johnson
2020-02-28 14:24:24 -05:00
parent ba8087a2ed
commit fa7e271f54

View File

@@ -693,7 +693,6 @@ class Session(object):
# netfn, for non-bridge request, rsaddr is always 0x20 since we are
# addressing BMC while rsaddr is specified forbridge request
header = bytearray((rsaddr, (netfn << 2) | lun))
reqbody = bytearray((rqaddr, self.seqlun, command)) + data
headsum = bytearray((_checksum(*header),))
bodysum = bytearray((_checksum(*reqbody),))
@@ -1626,7 +1625,7 @@ class Session(object):
self.clientcommand = payload[5]
self._parse_payload(payload)
return
entry = (payload[1] >> 2, payload[4], payload[5])
entry = (payload[1] >> 2, payload[4] & 0xfc, payload[5])
if self._lookup_request_entry(entry):
self._remove_request_entry(entry)