Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b4e04fc7 authored by Robert Shearman's avatar Robert Shearman Committed by David S. Miller
Browse files

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: f8efb73c ("mpls: multipath route support")
Signed-off-by: default avatarRobert Shearman <rshearma@brocade.com>
Acked-by: default avatarRoopa Prabhu <roopa@cumulusnetworks.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c0f9c7e4
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -1345,6 +1345,7 @@ static int resize_platform_label_table(struct net *net, size_t limit)
		rt0->rt_protocol = RTPROT_KERNEL;
		rt0->rt_protocol = RTPROT_KERNEL;
		rt0->rt_payload_type = MPT_IPV4;
		rt0->rt_payload_type = MPT_IPV4;
		rt0->rt_nh->nh_via_table = NEIGH_LINK_TABLE;
		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);
		memcpy(rt0->rt_nh->nh_via, lo->dev_addr, lo->addr_len);
	}
	}
	if (limit > MPLS_LABEL_IPV6NULL) {
	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_protocol = RTPROT_KERNEL;
		rt2->rt_payload_type = MPT_IPV6;
		rt2->rt_payload_type = MPT_IPV6;
		rt2->rt_nh->nh_via_table = NEIGH_LINK_TABLE;
		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);
		memcpy(rt2->rt_nh->nh_via, lo->dev_addr, lo->addr_len);
	}
	}