ovn-controller-vtep(8)            OVN Manual            ovn-controller-vtep(8)

NAME
       ovn-controller-vtep  -  Open Virtual Network local controller for VTEP-
       enabled physical switches.

SYNOPSIS
       ovn-controller-vtep [options]

DESCRIPTION
       ovn-controller-vtep integrates hardware  VTEP  physical  switches  into
       OVN.  It connects to the OVN Southbound database (see ovn-sb(5)) and to
       a hardware_vtep database (see vtep(5)) over the OVSDB protocol.

       In the OVN  Southbound  database,  ovn-controller-vtep  registers  each
       hardware_vtep  Physical_Switch  as  a Chassis. It creates a VXLAN Encap
       using the physical switch’s first  tunnel_ips  value  and  records  the
       hardware_vtep  logical switches attached to the chassis. It updates the
       chassis association of matching vtep Port_Binding rows when there is no
       conflicting binding. If a matching row is already associated with  that
       chassis  and  has  an  up  value, it sets that value to true. A binding
       matches when its  options:vtep-physical-switch  and  options:vtep-logi‐‐
       cal-switch  values  identify  the  physical switch and one of its bound
       hardware_vtep logical switches.

       In the hardware_vtep database, ovn-controller-vtep sets each bound tun‐‐
       nel_key from the corresponding OVN logical datapath and  sets  replica‐‐
       tion_mode  to  source_node.  For each attached logical switch, it main‐
       tains Ucast_Macs_Remote entries for  MAC  addresses  behind  other  OVN
       chassis  and  for  MAC addresses learned by other VTEPs and recorded in
       the  OVN  Southbound  FDB  table.  It  also  maintains  an  unknown-dst
       Mcast_Macs_Remote entry with the locators used for source-node replica‐
       tion. Conversely, MAC addresses learned locally by the hardware VTEP in
       Ucast_Macs_Local  are mirrored into the OVN Southbound FDB table; stale
       mirrored entries are removed.

OPTIONS
       -d database
       --ovnsb-db=database
            Connects to database  as  the  OVN  Southbound  database.  If  the
            OVN_SB_DB  environment  variable  is set, its value is used as the
            default. Otherwise, the default is unix:/ovnsb_db.sock.

       -D database
       --vtep-db=database
            Connects to database as the hardware_vtep database. The default is
            unix:ovs-rundir/db.sock,  where  ovs-rundir  is  the  local   Open
            vSwitch  run  directory. The OVS_RUNDIR environment variable over‐
            rides that directory.

       database in the above  options  must  be  an  OVSDB  active  connection
       method, as described in ovsdb(7).

   Daemon Options
       --pidfile[=pidfile]
              Causes a file (by default, program.pid) to be created indicating
              the  PID  of the running process. If the pidfile argument is not
              specified, or if it does not begin with /, then it is created in
              .

              If --pidfile is not specified, no pidfile is created.

       --overwrite-pidfile
              By default, when --pidfile is specified and the  specified  pid‐
              file already exists and is locked by a running process, the dae‐
              mon refuses to start. Specify --overwrite-pidfile to cause it to
              instead overwrite the pidfile.

              When --pidfile is not specified, this option has no effect.

       --detach
              Runs  this  program  as a background process. The process forks,
              and in the child it starts a new session,  closes  the  standard
              file descriptors (which has the side effect of disabling logging
              to  the  console), and changes its current directory to the root
              (unless --no-chdir is specified). After the child completes  its
              initialization, the parent exits.

       --monitor
              Creates  an  additional  process  to monitor this program. If it
              dies due to a signal that indicates a programming  error  (SIGA‐‐
              BRT, SIGALRM, SIGBUS, SIGFPE, SIGILL, SIGPIPE, SIGSEGV, SIGXCPU,
              or SIGXFSZ) then the monitor process starts a new copy of it. If
              the daemon dies or exits for another reason, the monitor process
              exits.

              This  option  is  normally used with --detach, but it also func‐
              tions without it.

       --no-chdir
              By default, when --detach is specified, the daemon  changes  its
              current  working  directory  to  the root directory after it de‐
              taches. Otherwise, invoking the daemon from a carelessly  chosen
              directory  would  prevent  the administrator from unmounting the
              file system that holds that directory.

              Specifying --no-chdir suppresses this behavior,  preventing  the
              daemon  from changing its current working directory. This may be
              useful for collecting core files, since it is common behavior to
              write core dumps into the current working directory and the root
              directory is not a good directory to use.

              This option has no effect when --detach is not specified.

       --no-self-confinement
              By default this daemon will try to self-confine itself  to  work
              with  files  under  well-known  directories  determined at build
              time. It is better to stick with this default behavior  and  not
              to  use  this  flag  unless some other Access Control is used to
              confine daemon. Note that in contrast to  other  access  control
              implementations  that  are  typically enforced from kernel-space
              (e.g. DAC or MAC), self-confinement is imposed  from  the  user-
              space daemon itself and hence should not be considered as a full
              confinement  strategy,  but instead should be viewed as an addi‐
              tional layer of security.

       --user=user:group
              Causes this program to run as  a  different  user  specified  in
              user:group,  thus  dropping  most  of the root privileges. Short
              forms user and :group are also allowed,  with  current  user  or
              group  assumed,  respectively.  Only daemons started by the root
              user accepts this argument.

              On   Linux,   daemons   will   be   granted   CAP_IPC_LOCK   and
              CAP_NET_BIND_SERVICES  before  dropping root privileges. Daemons
              that interact with a datapath, such  as  ovs-vswitchd,  will  be
              granted  three  additional  capabilities,  namely CAP_NET_ADMIN,
              CAP_NET_BROADCAST and CAP_NET_RAW. The  capability  change  will
              apply even if the new user is root.

   Logging Options
       -v[spec]
       --verbose=[spec]
            Sets  logging  levels.  Without  any  spec, sets the log level for
            every module and destination to dbg. Otherwise, spec is a list  of
            words separated by spaces or commas or colons, up to one from each
            category below:

            •      A  valid module name, as displayed by the vlog/list command
                   on ovs-appctl(8), limits the log level change to the speci‐
                   fied module.

            •      syslog, console, or file, to limit the log level change  to
                   only  to  the system log, to the console, or to a file, re‐
                   spectively. (If --detach is specified,  the  daemon  closes
                   its  standard  file  descriptors, so logging to the console
                   will have no effect.)

            •      off, emer, err, warn, info, or  dbg,  to  control  the  log
                   level.  Messages  of  the  given severity or higher will be
                   logged, and messages of lower  severity  will  be  filtered
                   out.  off filters out all messages. See ovs-appctl(8) for a
                   definition of each log level.

            Case is not significant within spec.

            Regardless of the log levels set for file, logging to a file  will
            not take place unless --log-file is also specified (see below).

            For compatibility with older versions of OVS, any is accepted as a
            word but has no effect.

       -v
       --verbose
            Sets  the  maximum  logging  verbosity level, equivalent to --ver‐‐
            bose=dbg.

       -vPATTERN:destination:pattern
       --verbose=PATTERN:destination:pattern
            Sets the log pattern for destination to pattern. Refer to  ovs-ap‐‐
            pctl(8) for a description of the valid syntax for pattern.

       -vFACILITY:facility
       --verbose=FACILITY:facility
            Sets  the RFC5424 facility of the log message. facility can be one
            of kern, user, mail, daemon, auth, syslog, lpr, news, uucp, clock,
            ftp, ntp, audit, alert, clock2, local0,  local1,  local2,  local3,
            local4, local5, local6 or local7. If this option is not specified,
            daemon  is used as the default for the local system syslog and lo‐‐
            cal0 is used while sending a message to the  target  provided  via
            the --syslog-target option.

       --log-file[=file]
            Enables  logging  to a file. If file is specified, then it is used
            as the exact name for the log file. The default log file name used
            if file is omitted is /usr/local/var/log/ovn/program.log.

       --syslog-target=host:port
            Send syslog messages to UDP port on host, in addition to the  sys‐
            tem  syslog.  The host must be a numerical IP address, not a host‐
            name.

       --syslog-method=method
            Specify method as how syslog messages should  be  sent  to  syslog
            daemon. The following forms are supported:

            •      libc,  to use the libc syslog() function. Downside of using
                   this options is that libc adds fixed prefix to  every  mes‐
                   sage  before  it is actually sent to the syslog daemon over
                   /dev/log UNIX domain socket.

            •      unix:file, to use a UNIX domain socket directly. It is pos‐
                   sible to specify arbitrary message format with this option.
                   However, rsyslogd 8.9 and older  versions  use  hard  coded
                   parser  function anyway that limits UNIX domain socket use.
                   If you want to use  arbitrary  message  format  with  older
                   rsyslogd  versions, then use UDP socket to localhost IP ad‐
                   dress instead.

            •      udp:ip:port, to use a UDP socket. With this  method  it  is
                   possible  to  use  arbitrary message format also with older
                   rsyslogd. When sending syslog messages over UDP socket  ex‐
                   tra precaution needs to be taken into account, for example,
                   syslog daemon needs to be configured to listen on the spec‐
                   ified  UDP  port, accidental iptables rules could be inter‐
                   fering with local syslog traffic and there are  some  secu‐
                   rity  considerations  that apply to UDP sockets, but do not
                   apply to UNIX domain sockets.

            •      null, to discard all messages logged to syslog.

            The default is taken from the OVS_SYSLOG_METHOD environment  vari‐
            able; if it is unset, the default is libc.

   PKI Options
       PKI  configuration  is  required  to use SSL/TLS for connections to the
       hardware_vtep and OVN Southbound databases.

              -p privkey.pem
              --private-key=privkey.pem
                   Specifies a PEM file containing the  private  key  used  as
                   identity for outgoing SSL/TLS connections.

              -c cert.pem
              --certificate=cert.pem
                   Specifies  a  PEM file containing a certificate that certi‐
                   fies the private key specified on -p or --private-key to be
                   trustworthy. The certificate must be signed by the certifi‐
                   cate authority (CA) that the peer  in  SSL/TLS  connections
                   will use to verify it.

              -C cacert.pem
              --ca-cert=cacert.pem
                   Specifies a PEM file containing the CA certificate for ver‐
                   ifying  certificates  presented  to this program by SSL/TLS
                   peers. (This may be the same certificate that SSL/TLS peers
                   use to verify the certificate specified on -c or --certifi‐‐
                   cate, or it may be a different one, depending  on  the  PKI
                   design in use.)

              -C none
              --ca-cert=none
                   Disables  verification of certificates presented by SSL/TLS
                   peers. This introduces a security risk,  because  it  means
                   that  certificates  cannot be verified to be those of known
                   trusted hosts.

              --ssl-server-name=servername
                   Specifies the server name to use for TLS Server Name  Indi‐
                   cation  (SNI). By default, the hostname from the connection
                   string is used for SNI. This option allows  overriding  the
                   SNI hostname, which is useful when connecting through prox‐
                   ies or service meshes where the connection endpoint differs
                   from the intended server name.

              --bootstrap-ca-cert=cacert.pem
                     When  cacert.pem  exists, this option has the same effect
                     as -C or --ca-cert. If it does not exist, then  the  exe‐
                     cutable  will  attempt  to obtain the CA certificate from
                     the SSL/TLS peer on its first SSL/TLS connection and save
                     it to the named PEM file. If it is  successful,  it  will
                     immediately  drop  the connection and reconnect, and from
                     then on all SSL/TLS connections must be authenticated  by
                     a certificate signed by the CA certificate thus obtained.

                     This  option  exposes the SSL/TLS connection to a man-in-
                     the-middle attack obtaining the initial  CA  certificate,
                     but it may be useful for bootstrapping.

                     This  option is only useful if the SSL/TLS peer sends its
                     CA certificate as part of the SSL/TLS certificate  chain.
                     SSL/TLS  protocols  do not require the server to send the
                     CA certificate.

                     This option is mutually exclusive with -C and --ca-cert.

              --peer-ca-cert=peer-cacert.pem
                     Specifies a PEM file that contains one or more additional
                     certificates to send to  SSL/TLS  peers.  peer-cacert.pem
                     should  be  the CA certificate used to sign the program’s
                     own certificate, that is, the certificate specified on -c
                     or --certificate. If the program’s certificate  is  self-
                     signed,  then  --certificate  and  --peer-ca-cert  should
                     specify the same file.

                     This option is not useful in  normal  operation,  because
                     the SSL/TLS peer must already have the CA certificate for
                     the  peer  to  have any confidence in the program’s iden‐
                     tity. However, this offers a way for a  new  installation
                     to bootstrap the CA certificate on its first SSL/TLS con‐
                     nection.

   Other Options
       --unixctl=socket
              Sets the name of the control socket on which program listens for
              runtime  management  commands  (see RUNTIME MANAGEMENT COMMANDS,
              below). If socket does not begin with /, it  is  interpreted  as
              relative  to  .  If  --unixctl  is  not used at all, the default
              socket is /program.pid.ctl, where pid is program’s process ID.

              Specifying none for socket disables the control socket feature.



       -h
       --help
            Prints a brief help message to the console.

       -V
       --version
            Prints version information to the console.

RUNTIME MANAGEMENT COMMANDS
       ovn-appctl can send  the  following  commands  to  a  running  ovn-con‐‐
       troller-vtep process:

              exit   Causes ovn-controller-vtep to gracefully terminate.

              sb-connection-status
                     Prints whether the connection to the OVN Southbound data‐
                     base is currently connected.

              vtep-connection-status
                     Prints  whether the connection to the hardware_vtep data‐
                     base is currently connected.

CONFIGURATION
       ovn-controller-vtep retrieves its configuration information  from  both
       the  OVN Southbound and hardware_vtep databases. The database locations
       can be selected with the options described above. A  database  location
       must take one of the following forms:

              •      ssl:host:port

                     The  specified  SSL/TLS port on the given host, which can
                     either be a DNS name (if built with unbound  library)  or
                     an IP address (IPv4 or IPv6). If host is an IPv6 address,
                     then    wrap    host    with   square   brackets,   e.g.:
                     ssl:[::1]:6640. The --private-key, --certificate and  ei‐
                     ther  of  --ca-cert  or  --bootstrap-ca-cert  options are
                     mandatory when this form is used.

              •      tcp:host:port

                     Connect to the given TCP port on host, where host can  be
                     a  DNS name (if built with unbound library) or IP address
                     (IPv4 or IPv6). If host is an  IPv6  address,  then  wrap
                     host with square brackets, e.g.: tcp:[::1]:6640.

              •      unix:file

                     Connect to the Unix domain server socket named file.

       ovn-controller-vtep  reads  the following keys from the Global table of
       the connected hardware_vtep database:

              other_config:ovn-match-northd-version
                     When this  boolean  value  is  true,  ovn-controller-vtep
                     processes database changes only when its internal version
                     matches  the  northd internal version reported in the OVN
                     Southbound database. When the versions do not  match,  it
                     continues  monitoring  both databases but does not update
                     either one. Default: false.

              other_config:ovn-remote-probe-interval
                     The inactivity probe interval of the  connection  to  the
                     OVN Southbound database, in milliseconds. If the value is
                     zero, it disables the connection keepalive feature.

                     If  the  value is not specified, the default is 0 ms when
                     the connection does not need probes and  5000  ms  other‐
                     wise.  If the value is nonzero, then it will be forced to
                     a value of at least 1000 ms.

OVN 26.09.90                  ovn-controller-vtep       ovn-controller-vtep(8)