In short, this adds checks to first and single ISO-TP frame types. If you receive a first frame, the next message must be consecutive, or the new assertions in first and single are raised. You can receive as many single frames as you want without issue.
An additional rx length check is added to ensure that rx_dat isn't unset in the first frame hook (it previously accepted m._isotp_rx_next(b'\x10\x08')) which isn't a valid CAN frame size.
This would cause the EPS to now successfully respond for:
Try 2 of https://github.com/commaai/panda/pull/1487 and https://github.com/commaai/panda/pull/1610. Potentially fixes https://github.com/commaai/openpilot/issues/32242
In short, this adds checks to first and single ISO-TP frame types. If you receive a first frame, the next message must be consecutive, or the new assertions in first and single are raised. You can receive as many single frames as you want without issue.
An additional rx length check is added to ensure that
rx_dat
isn't unset in the first frame hook (it previously acceptedm._isotp_rx_next(b'\x10\x08')
) which isn't a valid CAN frame size.This would cause the EPS to now successfully respond for:
297b4b460f361603/2023-06-14--16-55-16
297b4b460f361603/2023-06-14--16-48-52
297b4b460f361603/2023-06-21--04-09-15