mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-15 09:20:25 +00:00
zebra: handle ipv6-mapped-ipv4 with DVNI
Properly handle ipv6-mapped-ipv4 with DVNI by converting the address to ipv4 and setting that as the DST field for the encap. Signed-off-by: Stephen Worley <sworley@nvidia.com>
This commit is contained in:
parent
24acbd9c7f
commit
fb99ca86c4
@ -1370,6 +1370,7 @@ static bool _netlink_route_encode_label_info(const struct nexthop *nexthop,
|
|||||||
struct rtattr *nest;
|
struct rtattr *nest;
|
||||||
struct mpls_label_stack *nh_label;
|
struct mpls_label_stack *nh_label;
|
||||||
enum lsp_types_t nh_label_type;
|
enum lsp_types_t nh_label_type;
|
||||||
|
struct in_addr ipv4;
|
||||||
|
|
||||||
nh_label = nexthop->nh_label;
|
nh_label = nexthop->nh_label;
|
||||||
nh_label_type = nexthop->nh_label_type;
|
nh_label_type = nexthop->nh_label_type;
|
||||||
@ -1405,10 +1406,18 @@ static bool _netlink_route_encode_label_info(const struct nexthop *nexthop,
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
} else if (nexthop->type == NEXTHOP_TYPE_IPV6_IFINDEX) {
|
} else if (nexthop->type == NEXTHOP_TYPE_IPV6_IFINDEX) {
|
||||||
if (!nl_attr_put(nlmsg, buflen, LWTUNNEL_IP_DST,
|
if (IS_MAPPED_IPV6(&nexthop->gate.ipv6)) {
|
||||||
&nexthop->gate.ipv6, 16))
|
ipv4_mapped_ipv6_to_ipv4(&nexthop->gate.ipv6,
|
||||||
return false;
|
&ipv4);
|
||||||
|
if (!nl_attr_put(nlmsg, buflen, LWTUNNEL_IP_DST,
|
||||||
|
&ipv4, 4))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if (!nl_attr_put(nlmsg, buflen, LWTUNNEL_IP_DST,
|
||||||
|
&nexthop->gate.ipv6, 16))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (IS_ZEBRA_DEBUG_KERNEL)
|
if (IS_ZEBRA_DEBUG_KERNEL)
|
||||||
zlog_debug(
|
zlog_debug(
|
||||||
|
Loading…
Reference in New Issue
Block a user