]> git.proxmox.com Git - mirror_frr.git/blobdiff - tools/frr.in
Merge pull request #5793 from ton31337/fix/formatting_show_bgp_summary_failed
[mirror_frr.git] / tools / frr.in
index 2e3a094589cb4eb738f8bf1c24a75be31f47647c..d9816c2568197ef9035d133851e32db5ae46aafa 100755 (executable)
@@ -21,11 +21,12 @@ VTYSH="@vtysh_bin@" # /usr/bin/vtysh
 FRR_USER="@enable_user@" # frr
 FRR_GROUP="@enable_group@" # frr
 FRR_VTY_GROUP="@enable_vty_group@" # frrvty
+FRR_DEFAULT_PROFILE="@DFLT_NAME@" # traditional / datacenter
 
 # Local Daemon selection may be done by using /etc/frr/daemons.
 # See /usr/share/doc/frr/README.Debian.gz for further information.
 # Keep zebra first and do not list watchfrr!
-DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd babeld pimd ldpd nhrpd eigrpd sharpd pbrd staticd bfdd fabricd"
+DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd babeld pimd ldpd nhrpd eigrpd sharpd pbrd staticd bfdd fabricd vrrpd"
 MAX_INSTANCES=5
 RELOAD_SCRIPT="$D_PATH/frr-reload.py"
 
@@ -151,7 +152,7 @@ start()
                        --pidfile=`pidfile $dmn-$inst` \
                        --exec "$D_PATH/$dmn" \
                        -- \
-                       `eval echo "$""$dmn""_options"` -n "$inst"
+                       `eval echo "$""$dmn""_options"` $frr_global_options -n "$inst"
        else
                if ! check_daemon $dmn; then
                        echo -n " (binary does not exist)"
@@ -164,14 +165,14 @@ start()
                                --pidfile=`pidfile $dmn` \
                                --exec "$valgrind" \
                                -- --trace-children=no --leak-check=full --log-file=/var/log/frr/$dmn-valgrind.log $D_PATH/$dmn \
-                               `eval echo "$""$dmn""_options"`
+                               `eval echo "$""$dmn""_options"` $frr_global_options
                else
                        ${SSD} \
                                --start \
                                --pidfile=`pidfile $dmn` \
                                --exec "$D_PATH/$dmn" \
                                -- \
-                               `eval echo "$""$dmn""_options"`
+                               `eval echo "$""$dmn""_options"` $frr_global_options
                fi
        fi
 
@@ -188,7 +189,7 @@ start()
                        --pidfile=`pidfile staticd` \
                        --exec "$D_PATH/staticd" \
                        -- \
-                       `eval echo "$"staticd"_options"`
+                       `eval echo "$"staticd"_options"` $frr_global_options
        fi
 }
 
@@ -511,6 +512,18 @@ fi
 # Read configuration variable file if it is present
 [ -r /etc/default/frr ] && . /etc/default/frr
 
+if test -z "$frr_profile"; then
+       # try to autodetect config profile
+       if test -d /etc/cumulus; then
+               frr_profile=datacenter
+       # elif test ...; then
+       # -- add your distro/system here
+       elif test -n "$FRR_DEFAULT_PROFILE"; then
+               frr_profile="$FRR_DEFAULT_PROFILE"
+       fi
+fi
+test -n "$frr_profile" && frr_global_options="$frr_global_options -F $frr_profile"
+
 MAX_INSTANCES=${MAX_INSTANCES:=5}
 
 # Set priority of un-startable daemons to 'no' and substitute 'yes' to '0'
@@ -561,30 +574,7 @@ case "$1" in
                        stop_prio 0 $dmn
                fi
 
-               if [ -z "$dmn" -o "$dmn" = "zebra" ]; then
-                       echo "Removing all routes made by FRR."
-                       # Specific values for each proto can be found
-                       # in /etc/iproute2/rt_protos as well as FRR
-                       # specific ones in /etc/iproute2/rt_protos.d
-                       # Additionally if a new protocol is added
-                       # we need to add it here as well as
-                       # in rt_netlink.h( follow the directions! )
-                       ip route flush proto 4
-                       ip route flush proto 11
-                       ip route flush proto 42
-                       ip route flush proto 186
-                       ip route flush proto 187
-                       ip route flush proto 188
-                       ip route flush proto 189
-                       ip route flush proto 190
-                       ip route flush proto 191
-                       ip route flush proto 192
-                       ip route flush proto 193
-                       ip route flush proto 194
-                       ip route flush proto 195
-                       ip route flush proto 196
-                       ip route flush proto 197
-               else
+               if [ -n "$dmn" -a "$dmn" != "zebra" ]; then
                        [ -n "$dmn" ] && eval "${dmn/-/_}=0"
                        start_watchfrr
                fi