On 11/17/20 2:19 AM, Oliver Herms wrote:
> This patch adds an IPv6 routes encapsulation attribute
> to the result of netlink RTM_GETROUTE requests
> (i.e. ip route get 2001:db8::).
>
> Signed-off-by: Oliver Herms <[email protected]>
> ---
> net/ipv6/route.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/net/ipv6/route.c b/net/ipv6/route.c
> index 82cbb46a2a4f..d7e94eac3136 100644
> --- a/net/ipv6/route.c
> +++ b/net/ipv6/route.c
> @@ -5489,6 +5489,10 @@ static int rt6_fill_node(struct net *net, struct
> sk_buff *skb,
> rtm->rtm_scope = RT_SCOPE_UNIVERSE;
> rtm->rtm_protocol = rt->fib6_protocol;
>
> + if (dst && dst->lwtstate && lwtunnel_fill_encap(skb, dst->lwtstate,
> + RTA_ENCAP, RTA_ENCAP_TYPE) < 0)
> + goto nla_put_failure;
> +
> if (rt6_flags & RTF_CACHE)
> rtm->rtm_flags |= RTM_F_CLONED;
>
>
That needs to be moved down to this section:
if (rt6) {
if (rt6_flags & RTF_GATEWAY &&
nla_put_in6_addr(skb, RTA_GATEWAY, &rt6->rt6i_gateway))
goto nla_put_failure;
if (dst->dev && nla_put_u32(skb, RTA_OIF,
dst->dev->ifindex))
goto nla_put_failure;
--> add ENCAP here