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