This is the OpenIPMI command language, which allows each access to pretty much everything about OpenIPMI. It can be used to add an OpenIPMI command shell into an application to give the user full access into everything OpenIPMI can do. The interface is very simple. You call the command interpreter with a string. You pass in two functions, an output handler and a "done" functions. If an error occurs, the command interpreter generates some output and returns an error code. Otherwise, it will generate output and call the done function when it is complete. The command language is hierarchical. There are several top-level commands, each of these has sub-commands, and those may have sub-commands, and so on. The commands may take parameters. Some general ones are: * - A name of a domain. Each registered domain in a system has a name. * - Entity names are in the form: [[(entity spec)]] Notice that the entity spec is optional. If it is not listed, then the operation is done on all entities in the domain. The whole thing is optional, too, if nothing is given then the operation is done on every entity in every domain. The entity spec is either: . for system-reltive entities, or: r... for device-relative entities. * - These come in the form [[.name]] If no name is given, the operation is performed on all sensors in the entity. If the entity is just a domain, then all sensors in the domain, and if the whole thing is empty, then all sensors on all domains. * - These come in the form [[.name]] If no name is given, the operation is performed on all controls in the entity. If the entity is just a domain, then all controls in the domain, and if the whole thing is empty, then all controls on all domains. * - A management controller. These come in the form [[(.)]]. As usual, the optional parts will cause defaulting to all things. * - A connection number, in the form: . * - A platform event trap id, in the form [][.] * - A LAN parameter id, in the form [][.] * - A PEF id, in the form [][.] * - a 16-byte globally unique ID, all globbed together in one big hexidecimal thing. Note that the domain name and sensor/control name may have spaces in them; the names may be bracketed by quotes (' or "). A backslash (\) may be used to add a quote character (or a backslash) into a string. An empty parameters should be specified as "", although if nothing comes after the parameter it may just be left empty. The command hierarchy is: * help - get general help. Type the specific command after help to get info for that command. * domain * list - List all domains Response is: Domains Name: Name: . . * info - List information about the given domain Response is: Domain Name: **DOMAIN INFO** * new - Open a connection to a new domain Parms are either: lan " or smi is the authentication type, either "md5", "md2", "straight", or "none". is the authentication level, either "admin", "operator", or "user". The is generally 623. The is the driver number, generally 0. Options enable and disable various automitic processing and are: -[no]all - all automatic handling -[no]sdrs - sdr fetching -[no]frus - FRU fetching -[no]sel - SEL fetching," -[no]ipmbscan - IPMB bus scanning -[no]oeminit - special OEM processing (like ATCA) -[no]seteventrcvr - setting event receivers -wait_til_up - wait until the domain is up before returning Note that if you specify this and the domain never comes up, you will never get a prompt. Note that setting event receivers it not affected by the -all option. By default -all -seteventrcvr is true, which turns everything on. Response is: Domain Created: * fru - dump a fru given all it's insundry information. Response is: Domain Name: FRU **FRU INFO** * msg [data...] - Send a command to the given IPMB address on the given channel and display the response. Note that this does not require the existance of an MC in OpenIPMI. The response is: Response Domain: channel: ipmb: LUN: NetFN: command: Data: * scan [ipmb addr] - scan an IPMB to add or remove it. If a range is given, then scan all IPMBs in the range. Response is: Scan done: * presence - Check the presence of entities. Response is: Presence check started: * close - close the given domain. Response is: Domain closed: * sel_rescan_time