From fa7e271f54e7b1dc3cb0184c639bb14338e8b772 Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Fri, 28 Feb 2020 14:24:24 -0500 Subject: [PATCH] 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 --- pyghmi/ipmi/private/session.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pyghmi/ipmi/private/session.py b/pyghmi/ipmi/private/session.py index cc777077..c685c730 100644 --- a/pyghmi/ipmi/private/session.py +++ b/pyghmi/ipmi/private/session.py @@ -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)