if icmpv4.id != echo_id or icmpv4.seq != echo_seq:
raise RuntimeError(
- 'Invalid ICMP echo reply received ID {0} seq {1} should be ' +
+ 'Invalid ICMP echo reply received ID {0} seq {1} should be ' \
'ID {2} seq {3}, {0}'.format(icmpv4.id, icmpv4.seq, echo_id,
echo_seq))
if tmp.chksum != chksum:
raise RuntimeError(
'Invalid checksum {0} should be {1}'.format(chksum, tmp.chksum))
- recv_payload_len = ipv4.len - 20 - 8
- load = tmp['Raw'].load[0:recv_payload_len]
+
+ if 'Raw' in icmpv4:
+ load = icmpv4['Raw'].load
+ else:
+ load = []
if load != data[0:echo_seq]:
raise RuntimeError(
'Received ICMP payload does not match sent payload')