The length of nd_option is units of 8 octets. Currently, for nd_options which is undefined in the ICMPv6 packet library, the parser assumes that the length is [8 * length - 2]. It causes fails while parsing these options.
This patch fixes it to parse such options correctly. Signed-off-by: Satoshi Fujimoto <satoshi.fujimo...@gmail.com> --- ryu/lib/packet/icmpv6.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ryu/lib/packet/icmpv6.py b/ryu/lib/packet/icmpv6.py index 1e5eaea..7608169 100644 --- a/ryu/lib/packet/icmpv6.py +++ b/ryu/lib/packet/icmpv6.py @@ -363,7 +363,7 @@ class nd_router_advert(stringify.StringifyMixin): if cls_ is not None: option = cls_.parser(buf, offset) else: - option = buf[offset:offset + (length * 8 - 2)] + option = buf[offset:offset + (length * 8)] options.append(option) offset += len(option) msg = cls(ch_l, res >> 6, rou_l, rea_t, ret_t, options) -- 2.7.4 ------------------------------------------------------------------------------ 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