On 16/03/17 18:41, Stephen Hemminger wrote: > On Thu, 16 Mar 2017 15:28:00 +0200 > Nikolay Aleksandrov <niko...@cumulusnetworks.com> wrote: > >> diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c >> index d6880a6149ee..62c4f94923e5 100644 >> --- a/net/ipv4/sysctl_net_ipv4.c >> +++ b/net/ipv4/sysctl_net_ipv4.c >> @@ -1004,6 +1004,15 @@ static struct ctl_table ipv4_net_table[] = { >> .extra1 = &zero, >> .extra2 = &one, >> }, >> + { >> + .procname = "fib_multipath_hash_policy", >> + .data = >> &init_net.ipv4.sysctl_fib_multipath_hash_policy, >> + .maxlen = sizeof(int), >> + .mode = 0644, >> + .proc_handler = proc_dointvec_minmax, >> + .extra1 = &zero, >> + .extra2 = &one, >> + > > Rather than having magic integer values, it would be better to use > strings (like TCP congestion control). Especially if you want to support > more values in the future.
With strings we'll need two sysctls - one to export the available ones, and one to set. I too am not happy with plain integers as I've said in v1 of this patch but if people are okay with having two new sysctls exported then I don't mind reworking it with strings. Or any other ideas are welcome. > > Also what about IPv6? > Patches are welcome, too. :-) We can update it at any time, IPv4 and 6 have been different for a very long time and it's not the point of this patch to bring them closer, though IPv6 already does L4 by default.