Provided by: frr_8.1-1ubuntu1.13_amd64 bug

NAME

       frr-bgpd - a BGPv4, BGPv4+, BGPv4- routing engine for use with FRRouting.

SYNOPSIS

       bgpd [-h] [-v]

       bgpd [-d|-t|-dt] [-C] [-f config-file] [-i pid-file] [-z zclient-path] [-u user] [-g group] [-A vty-addr]
       [-P vty-port] [-M module[:options]] [-N pathspace] [--vty_socket vty-path] [--moduledir module-path]

DESCRIPTION

       bgpd is a routing component that works with the FRRouting routing engine.

OPTIONS

       OPTIONS available for the bgpd command:

   HELP AND VERSION
       -h, --help
              Print a short description of the daemon's command line options.

       -v, --version
              Print version and build information for the daemon.

       Both of these options inhibit normal operation and will immediately exit.

   PROCESS CONTROL
       These options control background operation:

       -d, --daemon
                 Launches the process in background/daemon mode, forking and detaching from the terminal.

              The parent process will delay its exit until the daemon/child has finished its initialization  and
              has  entered  its  main  loop.  This is important for zebra startup because the other daemons will
              attempt to connect to zebra. A return from zebra -d  guarantees  its  readiness  to  accept  these
              connections.

       -t, --terminal
              Opens  an  interactive  VTY  session  on  the  terminal, allowing for both state and configuration
              operations.  Note that  the  terminal  starts  operating  after  startup  has  completed  and  the
              configuration file has been loaded.

              The process will exit when end of file is detected on the terminal.  It is possible to daemonize a
              process started with -t (but without -d) by sending SIGQUIT to the process (normally mapped  to  a
              ^keypress.)

       The  combination  of  --daemon  and --terminal will delay the daemon from going into background until the
       terminal session ends (by end of file.)

       If the process receives SIGINT (e.g. a ^C keypress) in this mode, it will exit instead of daemonizing.

       It is safe to suspend (SIGTSTP / ^Z) the terminal session opened by the previous two options;  this  will
       only stop the terminal but not the protocol daemon itself (which runs in a separate second process.)

   CONFIGURATION AND PATHS
       The following options control configuration and file system locations for frr processes:

       -f, --config_file config-file
              Specify a configuration file to be used instead of the default /etc/frr/<daemon>.conf file.

              Note that the daemon will attempt to write to this file if the write file command is issued on its
              VTY interface or through vtysh.

       -C, --dryrun
              Load the configuration file and check its validity, then exit.

       -i, --pid_file pid-file
              Output a pid file to a location other than the default /var/run/frr/<daemon>.pid.

       -z, --socket zclient-path
              Override the path of the ZAPI socket used to communicate between zebra and  the  various  protocol
              daemons.  The default is /var/run/frr/zserv.api.  The value of this option must be the same across
              all daemons.

       -N, --pathspace pathspace
              Insert pathspace into all default paths, changing the defaults to:

              /etc/frr/pathspace/<daemon>.conf                               /var/run/frr/pathspace/<daemon>.pid
              /var/run/frr/pathspace/<daemon>.vty /var/run/frr/pathspace/zserv.api

              ´.´ and ´/´ characters will not be accepted in pathspace, but the empty string will be accepted.

              Note  that  this  only changes the respective defaults, it has no effect on the respective path if
              the -f, -i, -z or --vty_socket options are used.

              The purpose of this option is to easily group all file system related bits  together  for  running
              multiple fully-separate "logical routers" on a system, particularly with Linux network namespaces.
              Groups of daemons running with distinct pathspace values will be completely unaware of each  other
              and not interact in any way.

              This option does not do any system setup (like network namespaces.) This must be done by the user,
              for example by running:

              ip netns exec namespace <daemon> -N namespace

   PROCESS CREDENTIALS
       -u, --user user
              (default: frr)

       -g, --group group
              (default: frr)

              Change the user/group which the daemon will switch to.

       -S, --skip_runas
              Skip setting the process effective user and group.

       Note that there is an additional group, frrvty, which controls group ownership of the VTY  sockets.   The
       name of this group cannot currently be changed, and user must be a member of this group.

   VTY SETUP
       These  following options control the daemon's VTY (interactive command line) interface.  The interface is
       available over TCP, using the telnet protocol, as well as through the vtysh frontend.

       -A, --vty_addr vty-addr
              Specify an IP/IPv6 address to bind the TCP VTY interface  to.   It  is  generally  recommended  to
              specify ::1 or 127.0.0.1.  For reasons of backwards compatibility, the default is to listen on all
              interfaces.

       -P, --vty_port vty-port
              Override the daemon's default TCP VTY port (each daemon has a different default value  upwards  of
              2600, listed below.)  Specifying 0 disables the TCP VTY interface.

              Default ports are::

                 zebra           2601
                 ripd            2602
                 ripngd          2603
                 ospfd           2604
                 bgpd            2605
                 ospf6d          2606
                 isisd           2608
                 babeld          2609
                 nhrpd           2610
                 pimd            2611
                 ldpd            2612
                 eigrpd          2613
                 pbrd            2615
                 staticd         2616
                 bfdd            2617
                 fabricd         2618
                 vrrpd           2619

              Port 2607 is used for ospfd's Opaque LSA API.

       --vty_socket vty-path
              Overrides  the  directory  used  for the <daemon>.vty sockets.  vtysh connects to these sockets in
              order to access each daemon's VTY.  Default: /var/run/frr[/<pathspace>]

              NB: Unlike the other options, this option specifies a directory, not a full path.

              This option is primarily used by the SNAP packaging system, its semantics may change.   It  should
              not be necessary in most other scenarios.

   MODULE LOADING
       frr  supports  optional  dynamically loadable modules, although these can only be loaded at startup.  The
       set of available modules may vary across distributions and packages, and modules  may  be  available  for
       installation as separate packages.

       -M, --module module[:options]
              Load a module named module, optionally passing options to it.

              If there is a ´/´ character in module, the value is assumed to be a pathname to a module.

              If  there  is  no  ´/´  character,  the module directory (see next option) is searched first for a
              module named "<daemon>_<module>.so", then for "<module>.so".  This allows for a module to exist in
              variations  appropriate for particular daemons, e.g. zebra_snmp and bgp_snmp, with the correct one
              selected by -M snmp.

              The meaning of options is specific to the module being loaded.  Most modules currently ignore it.

              Modules are loaded in the order as listed on the command line.  This is not generally relevant.

       --moduledir module-path
              Look for modules in the module-path directory instead of the default /usr/lib/frr/modules.   (This
              path is not affected by the -N option.)

       The list of loaded modules can be inspected at runtime with the show modules VTY command.

       -p, --bgp_port <port>
              Set the bgp protocol's port number. When port number is 0, that means do not listen bgp port.

       -l, --listenon
              Specify a specific IP address for bgpd to listen on, rather than its default of 0.0.0.0 / ::. This
              can be useful to constrain bgpd to an internal address, or to run multiple bgpd processes  on  one
              host.

       -n, --no_kernel
              Do  not install learned routes into the linux kernel.  This option is useful for a route-reflector
              environment or if you are running multiple bgp processes in the same namespace.   This  option  is
              different than the --no_zebra option in that a ZAPI connection is made.

       -e, --ecmp
              Run  BGP  with  a limited ecmp capability, that is different than what BGP was compiled with.  The
              value specified must be greater than 0 and less than or equal to the  MULTIPATH_NUM  specified  on
              compilation.

       -Z, --no_zebra
              Do not communicate with zebra at all.  This is different than the --no_kernel option in that we do
              not even open a ZAPI connection to the zebra process.

       -s, --socket_size
              When opening tcp connections to our peers, set the socket send buffer size that  the  kernel  will
              use  for  the  peers  socket.   This  option  is  only  really  useful  at  a  very  large  scale.
              Experimentation should be done to see if this is helping or not at the scale you are running at.

   LABEL MANAGER
       -I, --int_num
              Set zclient id. This is required when using Zebra label manager in proxy mode.

FILES

       /usr/lib/frr/bgpd
              The default location of the bgpd binary.

       /etc/frr/bgpd.conf
              The default location of the bgpd config file.

       $(PWD)/bgpd.log
              If the bgpd process is configured to output logs to a file, then you will find this  file  in  the
              directory where you started bgpd.

WARNING

       This  man  page  is intended to be a quick reference for command line options. The definitive document is
       the info file frr 8.1 or the documentation available on the project website at https://frrouting.org/.

DIAGNOSTICS

       The daemon may log to standard output, to a VTY, to a log file, or through syslog to the system logs. FRR
       supports many debugging options, see the Info file, web docs or source for details.

SEE ALSO

       frr-zebra(8),   vtysh(1),   frr-ripd(8),   frr-ripngd(8),   frr-ospfd(8),   frr-ospf6d(8),   frr-bgpd(8),
       frr-isisd(8),  frr-babeld(8),  frr-nhrpd(8),  frr-pimd(8),   frr-pbrd(8),   frr-ldpd(8),   frr-eigrpd(8),
       frr-staticd(8), frr-fabricd(8), frr-vrrpd(8), mtracebis(8) https://frrouting.org/

BUGS

       FRR   eats   bugs   for   breakfast.   If   you   have   food   for  the  maintainers,  please  email  <‐
       dev@lists.frrouting.org>.

COPYRIGHT

       2025, FRR