From b4e04fc7357b6cef0856cb14b42306af1af990e5 Mon Sep 17 00:00:00 2001 From: Robert Shearman Date: Tue, 27 Oct 2015 00:37:35 +0000 Subject: [PATCH] mpls: fix forwarding using v4/v6 explicit null Fill in the via address length for the predefined IPv4 and IPv6 explicit-null label routes. Fixes: f8efb73c97e2 ("mpls: multipath route support") Signed-off-by: Robert Shearman Acked-by: Roopa Prabhu Signed-off-by: David S. Miller --- net/mpls/af_mpls.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c index cc972e30355b..1c58662db4b2 100644 --- a/net/mpls/af_mpls.c +++ b/net/mpls/af_mpls.c @@ -1345,6 +1345,7 @@ static int resize_platform_label_table(struct net *net, size_t limit) rt0->rt_protocol = RTPROT_KERNEL; rt0->rt_payload_type = MPT_IPV4; rt0->rt_nh->nh_via_table = NEIGH_LINK_TABLE; + rt0->rt_nh->nh_via_alen = lo->addr_len; memcpy(rt0->rt_nh->nh_via, lo->dev_addr, lo->addr_len); } if (limit > MPLS_LABEL_IPV6NULL) { @@ -1356,6 +1357,7 @@ static int resize_platform_label_table(struct net *net, size_t limit) rt2->rt_protocol = RTPROT_KERNEL; rt2->rt_payload_type = MPT_IPV6; rt2->rt_nh->nh_via_table = NEIGH_LINK_TABLE; + rt2->rt_nh->nh_via_alen = lo->addr_len; memcpy(rt2->rt_nh->nh_via, lo->dev_addr, lo->addr_len); } -- 2.20.1