IPv6 does not set the NLM_F_APPEND flag in notifications to signal that
a NEWROUTE is an append versus a new route or a replaced one. Add the
flag if the request has it.

Signed-off-by: David Ahern <d...@cumulusnetworks.com>
---
 net/ipv6/ip6_fib.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c
index ef5485204522..bcaf247232d7 100644
--- a/net/ipv6/ip6_fib.c
+++ b/net/ipv6/ip6_fib.c
@@ -746,6 +746,9 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct 
rt6_info *rt,
        u16 nlflags = NLM_F_EXCL;
        int err;
 
+       if (info->nlh && info->nlh->nlmsg_flags & NLM_F_APPEND)
+               nlflags |= NLM_F_APPEND;
+
        ins = &fn->leaf;
 
        for (iter = fn->leaf; iter; iter = iter->dst.rt6_next) {
-- 
2.1.4

Reply via email to