Minxi Hou <[email protected]> writes: > Register OVS_KEY_ATTR_ICMPV6 in the flow key parser so that > icmpv6(type=...) can be used in flow specifications. Without this > registration the parser silently drops the token and the kernel > rejects the flow with EINVAL because the expected ICMPv6 key > attribute is missing. > > While here, add convert_int() to the ovs_key_ipv6 and ovs_key_icmp > fields_map entries so that specifying a field value produces the > correct wildcard mask. The IPv6 flow label uses convert_int(20) to > produce a 20-bit mask (0x000FFFFF), matching the kernel constraint in > flow_netlink.c that rejects masks with bits 20-31 set; byte-wide > fields use convert_int(8). The ipv4 counterpart already does this via > convert_int(); the ipv6 and icmp classes were simply missing the fifth > tuple element. Existing callers that pass empty parentheses are > unaffected because convert_int("") returns (0, 0). > > Add test_icmpv6 exercising the ICMPv6 echo flow key. The test uses > static neighbour entries with nud permanent to prevent racy NDP, then > verifies in three steps: install icmpv6(type=128) and > icmpv6(type=129) flows and confirm ping works, remove the flows and > confirm ping fails, reinstall and confirm recovery. > > Signed-off-by: Minxi Hou <[email protected]> > ---
Reviewed-by: Aaron Conole <[email protected]> _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
