gnh_modified = 1;
}
- if (peer->nexthop.v4.s_addr != INADDR_ANY &&
- (IN6_IS_ADDR_UNSPECIFIED(mod_v6nhg) ||
- (peer->connection->su.sa.sa_family == AF_INET &&
- paf->afi == AFI_IP6))) {
- /* set a IPv4 mapped IPv6 address if no global IPv6
- * address is found or if announcing IPv6 prefix
- * over an IPv4 BGP session.
- */
- ipv4_to_ipv4_mapped_ipv6(mod_v6nhg, peer->nexthop.v4);
- gnh_modified = 1;
+ if (IN6_IS_ADDR_UNSPECIFIED(mod_v6nhg)) {
+ if (peer->nexthop.v4.s_addr != INADDR_ANY) {
+ ipv4_to_ipv4_mapped_ipv6(mod_v6nhg,
+ peer->nexthop.v4);
+ }
}
if (IS_MAPPED_IPV6(&peer->nexthop.v6_global)) {