Provided by: openipmi_2.0.33-1_amd64 bug


       ipmi/lan.conf - IPMI LAN Interface config file




       The ipmi_sim and ipmilan commands are configured using this configuration file.


       The following fields are used in many commands:

       boolean May be "true", "false", "on" or "off".

       priv An IPMI privilege level.  This may be "callback", "user", "operator", or "admin".

       auth An IPMI authorization type.  This may be "none" for no authentication, "straight" for
       straight,  in-the-clear  password  authentication,  "md2"  for  use  MD2  message   digest
       authentication, or "md5" for using MD5 message digest authentication.


       Blank lines and lines starting with `#' are ignored.

       The following commands are allowed the configuration file:

       name "name"
              Set  a name for the BMC.  This will control other things, like the default value of
              the ipmi_sim startup command file and the place where persistent data is stored.

       user usernum enabled username password max-priv max-session
              usernum specifies the user number for  the  user.   Note  that  user  number  0  is
              invalid,  and  user  number  1  is  the special "anonymous" user, whose username is
              ignored.  This value may be up to 63, the maximum possible IPMI user.  If you  want
              anonymous access, you must have a user number 1.

              enabled is a boolean that specified whether the user is enabled or not.

              username specifies the name of the user, specified as a name.

              password specifies the password of the user, specified as a name.

              max-priv specifies the maximum privilege level allowed for the user.

              max.sessions specifies the maximum number of session the user may open.

       startcmd "cmd"
              specifies  a  command to execute when a power on is requested.  This lets a virtual
              machine be started that can then connect back to the simulator.  The simulator does
              management of the process here, and the power on state of the process depends on if
              the process exists or not.  If a poweroff is requested, if the process is connected
              to  a  VM serial interface, a graceful shutdown is first requested.  If the process
              does not terminate in a specified amount of time, a SIGTERM is sent to the process.
              The  SIGTERM is sent immediately if there is no connection.  If the process doesn't
              go way in another specified amount of time, a SIGKILL is sent.

              If true, start the startcmd at the startup of the simulator.  Otherwise wait  until
              a poweron is issued.

       poweroff_wait seconds
              specifies  the amount of time to wait for the startcmd to do a graceful shutdown on
              a powerdown request.  The simulator will send a request to the  target,  wait  this
              amount  of  time,  and  then  do a SIGTERM kill on the process.  If this is zero, a
              SIGTERM will not be done (nor will a SIGKILL).  Note that if the simulator does not
              have a connection to the VM, the graceful shutdown is skipped and a SIGTERM is done
              immediately.  Default time is 60 seconds.

       kill_wait seconds
              specifies the amount of time to wait for SIGTERM  to  kill  the  process.   If  the
              process does not terminate in this period of time, send a SIGKILL kill.  If this is
              zero, don't send the SIGKILL.  Default time is 20 seconds.

       console address port
              specifies that a console port be opened at the given address  and  port.   You  can
              telnet  to  the console and execute emulation commands.  Note that this is a pretty
              huge security hole, it should only be used for debugging in a captive environment.

       serial channel addr port [option [option [...]]]
              channel specifies the channel number or type.  This may be kcs, smic, or bt  or  it
              may  be 15.  Currently, only the system interface channel (channel 15) is supported
              for serial interfaces, if the others are specified it is channel 15 and  the  given
              interface is reported in channel configuration commands.

              addr specifies the IP address to listen on for connections.

              port specifies the port to listen on for connections.

              Valid options are:

              codec  name  specifies  which  codec to use on the serial port.  Valid options are:
              TerminalMode, Direct, RadisysAscii, and VM.  The first three are implementations of
              IPMI serial interfaces on certain systems and might be used for simulations of that
              system.  The VM is probably the most interesting; it is designed to be used with  a
              virtual machine like qemu.

              oem  name  specified  implementation of some OEM custom commands and options on the
              interface.  Valid options oare PigeonPoint and Radisys.

              attn c1[,c2[...]]  specifies a list of characters, separated by commas, to  use  as
              the  attention  character on the interface.  Generally the default is correct.  The
              characters are specified as decimal, octal, or hex digits in C style.

              ipmb addr specifies the IPMI address of  the  interface.   The  default,  0x20,  is
              usually correct, but when emulating ATCA systems this might be required.

       sol device default_baud [history=size[,backupfile=filename]] [historyfru=frunum]

              Allow  a  Serial  Over LAN (SOL) connection to the given device.  This will be over
              interface 1 for the MC.

              device is the full  path  to  the  device  name.   It  can  also  be  in  the  form
              "tcp:address:port"  or "telnet:address:port" to do connections over tcp (without or
              with telnet processing).  This is useful for providing SOL access to qemu ports.

              default_baud sets the initial default baud rate to use.  This is overriden  by  the
              persistent SOL settings.

              history  creates  a history device on SOL interface 2.  The size is the size of the
              buffer.  Data from the device is  stored  in  the  history  buffer  all  the  time.
              Connecting  to SOL interface 2 will cause the full history buffer to be dumped.  If
              backupfile is specified, then the history is made persistent.  However, it is  only
              stored  when  a catchable signal or normal shutdown is done, so a poweroff or fatal
              signal will cause the data to be lost.

              historyfru makes the history available via the given FRU number on the MC.

              Note that if the connection fails to come up, the simulator will continue to try to
              connect.   This  way  you  can  fix  UDP  serial ports or qemu sessions and it will
              automatically reconnect.

       loadlib "module" ["options"]

              Load the given shared object into the program.

              module is the full path to the module.  It must be in quotes.

              options is an optional string in quotes that passes options  to  the  module.   The
              contents of the string are not specified, the module defines that.

              The module may have a number of functions that are called:

              ipmi_sim_module_print_version(sys_data_t   *sys,  char  *options)  is  called  when
              ipmi_sim is started with the version print option.  This way the  versions  of  all
              loaded  modules  may  be  printed.  The module should print it's version.  You must
              provide this function.

              ipmi_sim_module_init(sys_data_t  *sys,  char  *options)   is   called   after   the
              configuration file is read and before any other initialization is done.  The module
              should do most of its initialization here.  You must provide this function.

              ipmi_sim_module_post_init(sys_data_t *sys) is called after  ipmi_sim  has  finished
              initializing.  This function is optional.

       sys  parameter  is  used  for  most  functions interfacing to the main ipmi_sim code, like
       logging, timers, and a few of the MC calls.  The contents are opaque to the module.

       startlan channel
              Starts a LAN configuration area.  This specifies the settings for a LAN  connection
              using the given channel.  This may be specified more than once in a file to support
              multiple LAN connections.  Commands following this, up to endlan, are  LAN-specific
              commands  listed below.  channel specifies the channel to set the LAN configuration


       The following commands are only valid inside a startlen area.

       addr IP-address [UDP-port]
              IP-address specifies the IP address to use for an IP port. Up to 4 addresses may be
              specified.   If  no  address  is specified, it defaults to one port at (for
              every address on the machine) at port 623.

              UDP-port specifies an optional port to listen on. It defaults to 623 (the  standard

       PEF_alerting boolean
              Turn PEF alerting on or off (not currently supported).

       per_msg_auth boolean
              Turn per-message authentication on or off.

       priv_limit priv
              The maximum privilege allowed on this interface.

       allowed_auths_callback [auth [auth [...]]]
              auth specifies allowed authorization levels for the callback privilege level.  Only
              the levels specified on this line are allowed for the authorization level.  If this
              line is not present, callback authorization cannot be used.

       allowed_auths_user [auth [auth [...]]]
              auth specifies allowed authorization levels for the user privilege level.  Only the
              levels specified on this line are allowed for the  authorization  level.   If  this
              line is not present, user authorization cannot be used.

       allowed_auths_operator [auth [auth [...]]]
              auth specifies allowed authorization levels for the operator privilege level.  Only
              the levels specified on this line are allowed for the authorization level.  If this
              line is not present, operator authorization cannot be used.

       allowed_auths_admin [auth [auth [...]]]
              auth  specifies  allowed  authorization levels for the admin privilege level.  Only
              the levels specified on this line are allowed for the authorization level.  If this
              line is not present, user authorization cannot be used.

       guid name
              Allows  the  16-byte  GUID for the IPMI LAN connection to be specified.  If this is
              not specified, then the GUID command is not supported.






       IPMI is unnecessarily complicated.


       Corey Minyard <>