Hi Bill, Thank you for reporting issue, but sorry for the delay!
Well, packet library for ICPMv6 seems to be fixed for the same issue. I guess the same fix should be back-ported to ICMPv4. https://github.com/osrg/ryu/blob/8185637767f870b5887a369dc569cc2933aeec34/ryu/lib/packet/icmpv6.py#L151-L155 Any way, your patch looks more concise for me. If we don't expect "self.data = None", how about changing the default value to "data=b''" in __init__() method? The following should fix this problem? $ git diff diff --git a/ryu/lib/packet/icmp.py b/ryu/lib/packet/icmp.py index 1a6cd76..f5358b1 100644 --- a/ryu/lib/packet/icmp.py +++ b/ryu/lib/packet/icmp.py @@ -77,7 +77,7 @@ class icmp(packet_base.PacketBase): return cls return _register_icmp_type - def __init__(self, type_=ICMP_ECHO_REQUEST, code=0, csum=0, data=None): + def __init__(self, type_=ICMP_ECHO_REQUEST, code=0, csum=0, data=b''): super(icmp, self).__init__() self.type = type_ self.code = code @@ -103,7 +103,7 @@ class icmp(packet_base.PacketBase): hdr = bytearray(struct.pack(icmp._PACK_STR, self.type, self.code, self.csum)) - if self.data is not None: + if self.data: if self.type in icmp._ICMP_TYPES: hdr += self.data.serialize() else: Thanks, Iwase On 2017年11月04日 15:44, William Fisher wrote:
Hi, There is a TypeError exception with Ryu parsing fragmented ICMPv4 packets of a certain length. The attached program "ryu_icmpv4_test.py" demonstrates the failure. Note that the packet data is for the second fragment of a large ICMP echo. The file "ryu_icmpv4.patch" contains a superficial patch for this issue. It looks like Ryu attempts to parse the higher layers of an IPv4 packet even when the IP fragment offset is > 0. This is a separate issue that I did not change. Regards, -Bill ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Ryu-devel mailing list Ryu-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ryu-devel
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Ryu-devel mailing list Ryu-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ryu-devel