Design and Implement Framework for IPMI backend
------------------------------------------------------------------------------
The purpose of this is to come up with a mechanism to share
providers between the host-ipmid and the rmcp-ipmid.
Also, update existing providers and host-ipmid to fit this
framework. Demo of this story should be to use an existing
host-ipmid provider via the rmcp path.
Registering Callback Routines:-
-----------------------------------------------
1) Open the IPMI library path(/usr/lib/phosphor-host-ipmid)
2) Scan for libraries that end with .so
3) Do a dlopen that would register the handlers for the callback
routines.
The data that is currently registered for each command: Net
Function, Command and Functor.
Additional Metadata needed per command:-
-----------------------------------------------------------------
SessionLess Commands :-
-------------------------------------
This would mention whether the command can be executed without a
session. For example
Get Channel Capabilities can be executed without a session.
Minimum Privilege Required to Execute the command :-
---------------------------------------------------------------------------------
This field would mention the minimum privilege of the session
required to execute the
command. Before executing any command on a session, the command
would be executed
only if the command privilege level is less than or equal to session
privilege level.
The privilege levels are Administrator, Operator, User and Callback
and OEM
Firmware Firewalling :-
--------------------------------
Channel Restriction :-
------------------------------
The channel restriction can be applied if certain command needs
to be restricted on System
Interface or LAN Interface.
The Get NetFn/ Command support can be used to get a list of commands
that are supported
on a given channel. Implementation of these commands is not in the
scope of this story.
Command Firewalling:-
--------------------------------
Configuration of Firmware Firewall capabilities is supported by
commands that allow software to enable/disable individual commands.
The Firmware Firewall capability does not affect the operation of
user and channel privileges.
That is, if a command requires Admin privilege level to be executed,
it will still require Admin privilege if enabled by Firmware
Firewall.
The different values that are supported for this field is:
a) Command is supported by default(can be configured(enabled or
disabled)
b) Supported and cannot be configured( enable/disable is restricted)
c) Disabled by default but can be configured.
The firmware firewalling commands once supported would support the
above operations.
Regards,
Tom