From 59d3a3611f05c05040cec4bf09f31c26ade0fa0a Mon Sep 17 00:00:00 2001 From: "Ondrej Zajicek (work)" Date: Tue, 2 Jul 2019 18:23:06 +0200 Subject: Netlink: Handle alien routes with unsorted nexthops Nest requires that nexthops are sorted, the kernel protocol have to ensure that for alien routes. --- nest/rt-attr.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'nest/rt-attr.c') diff --git a/nest/rt-attr.c b/nest/rt-attr.c index cc362cab..1803db92 100644 --- a/nest/rt-attr.c +++ b/nest/rt-attr.c @@ -200,7 +200,7 @@ nexthop__same(struct nexthop *x, struct nexthop *y) } static int -nexthop_compare_node(struct nexthop *x, struct nexthop *y) +nexthop_compare_node(const struct nexthop *x, const struct nexthop *y) { int r; @@ -318,6 +318,24 @@ nexthop_insert(struct nexthop **n, struct nexthop *x) *n = x; } +struct nexthop * +nexthop_sort(struct nexthop *x) +{ + struct nexthop *s = NULL; + + /* Simple insert-sort */ + while (x) + { + struct nexthop *n = x; + x = n->next; + n->next = NULL; + + nexthop_insert(&s, n); + } + + return s; +} + int nexthop_is_sorted(struct nexthop *x) { -- cgit v1.2.3