fcoemon - Open-FCoE service daemon
fcoemon [-f|--foreground] [-l|--legacy] [-d|--debug] [-s|--syslog]
The fcoemon daemon is the core component of the Open-FCoE management service.
The primary function of fcoemon is to control FCoE instances. fcoemon will create, destroy, reset, enable and disable FCoE instances based on system configuration, administrative commands, and runtime events.
On startup, fcoemon will create FCoE instances defined by the configuration files (see FILES section below). Since FCoE typically relies on the Data Center Bridging (DCB) capabilities of an Ethernet interface, fcoemon establishes a connection with the LLDP daemon lldpad to query the status of the DCB features on relevant Ethernet interfaces and receive DCB configuration change events.
During runtime, fcoemon will monitor network and lldpad events for the relevant Ethernet interfaces and perform appropriate actions (create, destroy, enable, disable) on the FCoE instances. fcoemon also provides a client interface via which the fcoeadm utility is able to issue commands.
Installation of the fcoe-utils package will set up an fcoe service which will control the execution of the fcoemon daemon.
CRITERIA USED FOR CONTROLLING THE FCOE INSTANCE¶
fcoemon uses two information sources for determining when to create an FCoE instance: the state of the network interface, which may be a VLAN interface, and, if required for the FCoE instance, the state of the DCB configuration on the physical Ethernet interface.
First of all, the network interface must be "up" for the FCoE instance to be created. Secondly, if the FCoE configuration indicates that DCB is required, then the following criteria must be satisfied before the FCoE interface is created:
Once the FCoE instance is created by fcoemon, it will only be destroyed under the following conditions:
If DCB is required for the FCoE instance, and the DCB settings change after the interface is created, the following criteria are used to disable the FCoE instance:
Otherwise, the FCoE instance will always remain enabled.
Once the fcoe-utils and lldpad packages have been installed and the corresponding services are running, there are a few simple configuration steps required to get an FCoE instance up and running. The following assumes that DCB will be required for the interface.
dcbtool sc ethX dcb on <-- enable DCB on the interface dcbtool sc ethX app:fcoe e:1 <-- enable App:FCoE on the interface
These steps only need to be done one time. Note that if other DCB configuration changes have been made with dcbtool, then additional changes may need to be made in order to satisfy the DCB criteria for creating an FCoE instance. Consult dcbtool for details.
Once these configuration steps have been performed, use fcoeadm to query the status of the FCoE instances.
This is the primary configuration file for the fcoe system service. The default options in this file are: DEBUG="no" and USE_SYSLOG="yes". The former is used to enable debugging messages from the fcoe service script and fcoemon (via the --debug option). The latter is to indicate if the log messages are to be output to the system log (via the --syslog option). SUPPORTED_DRIVERS is the list of drivers to automatically load during fcoe service start. Any changes to this file will require a restart of the fcoe service.
On systemd-enabled systems, this is the primary configuration file used for the fcoe system service. Add --debug to FCOEMON_OPTS to enable debug log messages. Any changes to this file will require a restart of the fcoe service.
These files are read by fcoemon on initialization. They are used to indicate which Ethernet or VLAN interfaces should have FCoE instances created. The option values in this file normally are: FCOE_ENABLE="yes", DCB_REQUIRED="yes", and AUTO_VLAN="yes", though if the variable values are omitted, they default to "no".
Note that the attached Ethernet peer device (e.g. FCoE capable switch port) must have compatible settings For DCB and FCoE to function properly.
This is the fcoe system service script. This script is invoked by the init process or by the service command to start and stop the fcoemon. On systemd-enabled systems, fcoemon is controlled via the fcoe.service unit.
VLAN NAMING CONVENTIONS¶
If a new VLAN device is created (see the description of the AUTO_VLAN setting above), it will have the name dev.vlan-fcoe; where dev is the name of the Ethernet parent device and vlan is the discovered VLAN ID number.
fcoemon is part of the fcoe-utils package, maintained through the Open-FCoE project. Resources for both developers and users can be found at the Open-FCoE website http://open-fcoe.org/