From: David S. Miller Date: Tue, 15 Aug 2017 05:23:32 +0000 (-0700) Subject: Merge branch 'mlxsw-Add-support-for-nexthop-group-consolidation-for-IPv6' X-Git-Tag: v4.14-rc1~130^2~252 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2587b52a7b5a916f2c91fa6acf6851615b215596;p=platform%2Fkernel%2Flinux-rpi3.git Merge branch 'mlxsw-Add-support-for-nexthop-group-consolidation-for-IPv6' Jiri Pirko says: ==================== mlxsw: Add support for nexthop group consolidation for IPv6 Arkadi says: Due to limited ASIC resources the maximum number of routes is limited by the nexthop resource. In order to improve the routing scale nexthop consolidation should be performed. In case of IPv4, the kernel does the consolidation of nexthops in the form of the fib_info struct. In that case, the driver uses the fib_info's address as a key for the internal nexthop group representative struct lookup. In case of IPv6, the kernel doesn't do consolidation, thus the driver should implement it by itself. The hash value is calculated based on the nexthop set, by performing bitwise xor on the ifindexs of the nexthops, in a similar way to IPV4's kernel implementation. In case of collision a full match is performed between the sets which include address and ifindex comparison. In order to use the same hash table in both cases (IPv4/6), the rhashtable is changed to operate on variable length key. ==================== Signed-off-by: David S. Miller --- 2587b52a7b5a916f2c91fa6acf6851615b215596