]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: "default-originate" shouldn't withdraw non-default routes
authorXiao Liang <shaw.leon@gmail.com>
Fri, 15 Dec 2023 10:27:39 +0000 (18:27 +0800)
committerXiao Liang <shaw.leon@gmail.com>
Fri, 15 Dec 2023 10:27:39 +0000 (18:27 +0800)
Prevent "default-originate" from withdrawing non-default routes like
0.0.0.0/1 by checking prefix length.

Signed-off-by: Xiao Liang <shaw.leon@gmail.com>
bgpd/bgp_route.c

index d8c6449325aa4b7a214cb6a59fcc2d576d9f0432..08fdb40a08525e0f5d2c49bb8dccfa8d62d6ed09 100644 (file)
@@ -2169,9 +2169,7 @@ bool subgroup_announce_check(struct bgp_dest *dest, struct bgp_path_info *pi,
         * configured for default-originate */
        if (CHECK_FLAG(peer->af_flags[afi][safi],
                       PEER_FLAG_DEFAULT_ORIGINATE)) {
-               if (p->family == AF_INET && p->u.prefix4.s_addr == INADDR_ANY)
-                       return false;
-               else if (p->family == AF_INET6 && p->prefixlen == 0)
+               if ((p->family == AF_INET || p->family == AF_INET6) && p->prefixlen == 0)
                        return false;
        }