ip: nexthop: Support resilient groups
Status from this message: applied to iproute2-next. Thanks,
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v4 Latest6 patches 1 replyApplied
- v36 patches 2 repliesSuperseded
- v26 patches 1 replySuperseded
Earlier versions · 1
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v1 | 6 patches | 2 replies | Superseded |
Changes in v4 from the cover letter
- Patch #2:
- Make print_tv() take a const*.
Patches in v4 Applied
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/6 | nexthop: Synchronize uAPI filesinclude/ include/ | +53 | 0 replies | |
| 2/6 | json_print: Add print_tv()include/ lib/ | +14 | 0 replies | |
| 3/6 | nexthop: Extract a helper to parse a NH IDip/ | +13 | 0 replies | |
| 4/6 | nexthop: Add ability to specify group typeip/ man/ | +48 | 0 replies | |
| 5/6 | nexthop: Add support for resilient nexthop groupsip/ man/ | +193 | 0 replies | |
| 6/6 | nexthop: Add support for nexthop bucketsinclude/ ip/ ip/ +3 more | +335 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v4 yet.
Cover letter [PATCH iproute2-next v4 0/6] ip: nexthop: Support resilient groups
Support for resilient next-hop groups was recently accepted to Linux kernel[1]. Resilient next-hop groups add a layer of indirection between the SKB hash and the next hop. Thus the hash is used to reference a hash table bucket, which is then used to reference a particular next hop. This allows the system more flexibility when assigning SKB hash space to next hops. Previously, each next hop had to be assigned a continuous range of SKB hash space. With a hash table as an intermediate layer, it is possible to reassign next hops with a hash table bucket granularity. In turn, this mends issues with traffic flow redirection resulting from next hop removal or adjustments in next-hop weights.
In this patch set, introduce support for resilient next-hop groups to iproute2.
- Patch #1 brings include/uapi/linux/nexthop.h and /rtnetlink.h up to date.
- Patches #2 and #3 add new helpers that will be useful later.
- Patch #4 extends the ip/nexthop sub-tool to accept group type as a command line argument, and to dispatch based on the specified type.
- Patch #5 adds the support for resilient next-hop groups.
- Patch #6 adds the support for resilient next-hop group bucket interface.
To illustrate the usage, consider the following commands:
# ip nexthop add id 1 via 192.0.2.2 dev dummy1 # ip nexthop add id 2 via 192.0.2.3 dev dummy1 # ip nexthop add id 10 group 1/2 type resilient \ buckets 8 idle_timer 60 unbalanced_timer 300
The last command creates a resilient next-hop group. It will have 8 buckets, each bucket will be considered idle when no traffic hits it for at least 60 seconds, and if the table remains out of balance for 300 seconds, it will be forcefully brought into balance.
And this is how the next-hop group bucket interface looks:
# ip nexthop bucket show id 10 id 10 index 0 idle_time 5.59 nhid 1 id 10 index 1 idle_time 5.59 nhid 1 id 10 index 2 idle_time 8.74 nhid 2 id 10 index 3 idle_time 8.74 nhid 2 id 10 index 4 idle_time 8.74 nhid 1 id 10 index 5 idle_time 8.74 nhid 1 id 10 index 6 idle_time 8.74 nhid 1 id 10 index 7 idle_time 8.74 nhid 1
v4:
- Patch #2:
- Make print_tv() take a const*.
v3:
- Add missing S-o-b's.
v2:
- Patch #4:
- Add a missing example command to commit message
- Mention in the man page that mpath is the default
Ido Schimmel (3):
nexthop: Add ability to specify group type
nexthop: Add support for resilient nexthop groups
nexthop: Add support for nexthop buckets
Petr Machata (3):
nexthop: Synchronize uAPI files
json_print: Add print_tv()
nexthop: Extract a helper to parse a NH ID
include/json_print.h | 1 + include/libnetlink.h | 3 + include/uapi/linux/nexthop.h | 47 +++- include/uapi/linux/rtnetlink.h | 7 + ip/ip_common.h | 1 + ip/ipmonitor.c | 6 + ip/ipnexthop.c | 451 ++++++++++++++++++++++++++++++++- lib/json_print.c | 13 + lib/libnetlink.c | 26 ++ man/man8/ip-nexthop.8 | 113 ++++++++- 10 files changed, 651 insertions(+), 17 deletions(-)
Signature · 1 line
2.26.2