Date: Thu, 11 Jun 2026 10:23:00 +0000 From: Pouria Mousavizadeh Tehrani <pouria@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: de639dcde2e2 - main - routing: Enable hash_outbound during nhgrp allocation Message-ID: <6a2a8c84.3a606.3a6b0317@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by pouria: URL: https://cgit.FreeBSD.org/src/commit/?id=de639dcde2e273a6e6f2e877054c0606f9a8da25 commit de639dcde2e273a6e6f2e877054c0606f9a8da25 Author: Pouria Mousavizadeh Tehrani <pouria@FreeBSD.org> AuthorDate: 2026-06-05 12:12:18 +0000 Commit: Pouria Mousavizadeh Tehrani <pouria@FreeBSD.org> CommitDate: 2026-06-11 10:20:56 +0000 routing: Enable hash_outbound during nhgrp allocation Multipath routes can be added via both RTM_F_CREATE and RTM_F_APPEND. Therefore, it's possible to have mpath routes without calling add_route_flags_mpath. Instead of checking V_fib_hash_outbound for every route append, check it during nhgrp_ctl initialization, which is only called for the first multipath request per rib_head. PR: 293136 Reviewed by: glebius Tested by: Marek Zarychta <zarychtam@plan-b.pwste.edu.pl> Differential Revision: https://reviews.freebsd.org/D57469 --- sys/net/route/nhgrp_ctl.c | 6 ++++++ sys/net/route/route_ctl.c | 15 +-------------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/sys/net/route/nhgrp_ctl.c b/sys/net/route/nhgrp_ctl.c index d0f954888997..d684cd698284 100644 --- a/sys/net/route/nhgrp_ctl.c +++ b/sys/net/route/nhgrp_ctl.c @@ -505,6 +505,12 @@ nhgrp_alloc(uint32_t fibnum, int family, struct weightened_nhop *wn, int num_nho *perror = ENOMEM; return (NULL); } + if (V_fib_hash_outbound == 0) { + /* Enable local outbound connections hashing. */ + if (bootverbose) + printf("FIB: enabled flowid calculation for locally-originated packets\n"); + V_fib_hash_outbound = 1; + } } /* Sort nexthops & check there are no duplicates */ diff --git a/sys/net/route/route_ctl.c b/sys/net/route/route_ctl.c index cfa3b52b63a6..fa0f41a0a559 100644 --- a/sys/net/route/route_ctl.c +++ b/sys/net/route/route_ctl.c @@ -876,21 +876,8 @@ add_route_flags_mpath(struct rib_head *rnh, struct rtentry *rt, } return (error); } - error = change_route_conditional(rnh, rt, rnd_orig, &rnd_new, rc); - if (error != 0) - return (error); - - if (V_fib_hash_outbound == 0 && NH_IS_NHGRP(rc->rc_nh_new)) { - /* - * First multipath route got installed. Enable local - * outbound connections hashing. - */ - if (bootverbose) - printf("FIB: enabled flowid calculation for locally-originated packets\n"); - V_fib_hash_outbound = 1; - } - return (0); + return (change_route_conditional(rnh, rt, rnd_orig, &rnd_new, rc)); } /*home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a2a8c84.3a606.3a6b0317>
