Unverified Commit c5fa8d99 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!906 ipv6: Add lwtunnel encap size of all siblings in nexthop calculation

parents ab5b8bbc d48ab856
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -5439,16 +5439,17 @@ static size_t rt6_nlmsg_size(struct fib6_info *f6i)
		nexthop_for_each_fib6_nh(f6i->nh, rt6_nh_nlmsg_size,
					 &nexthop_len);
	} else {
		struct fib6_info *sibling, *next_sibling;
		struct fib6_nh *nh = f6i->fib6_nh;

		nexthop_len = 0;
		if (f6i->fib6_nsiblings) {
			nexthop_len = nla_total_size(0)	 /* RTA_MULTIPATH */
				    + NLA_ALIGN(sizeof(struct rtnexthop))
				    + nla_total_size(16) /* RTA_GATEWAY */
				    + lwtunnel_get_encap_size(nh->fib_nh_lws);
			rt6_nh_nlmsg_size(nh, &nexthop_len);

			nexthop_len *= f6i->fib6_nsiblings;
			list_for_each_entry_safe(sibling, next_sibling,
						 &f6i->fib6_siblings, fib6_siblings) {
				rt6_nh_nlmsg_size(sibling->fib6_nh, &nexthop_len);
			}
		}
		nexthop_len += lwtunnel_get_encap_size(nh->fib_nh_lws);
	}