5.0 KiB
Intel NodeManager drivers
Overview
This driver implements support of Intel NodeManager platform via
ironic vendor interface methods. Those methods are implemented as
sending raw bytes over IPMI. Hardware with Intel NodeManager 1.5 or
above is required, feature must be enabled via Flash Image Tool. The
driver detects internal addresses of NodeManager device automatically.
The main term for NodeManager is policy
, which can be
power, thermal or boot time. Each policy identified by
policy_id
(integer number from 0 to 255). Maximum numbers
of policies which can be set at the same time limited by platform. For
more detailed information see full specification1.
Available drivers
Driver provided by ironic-staging-drivers are
agent_ipmitool_nm
-
Standard Ironic's
agent_ipmitool
driver with Intel NodeManager as vendor extension fake_nm
-
Used for testing of this vendor passthru extension.
Supported vendor passthru methods
In all examples below request/response are JSON bodies in the HTTP request or response.
get_nm_version
- HTTP method
-
GET
- Description
-
Get Intel Node Manager version.
Example of response:
{"firmware": "1.2", "ipmi": "3.0", "nm": "3.0", "patch": "7"}
get_nm_capabilities
- HTTP method
-
GET
- Description
-
Get Intel Node Manager capabilities.
Example of request:
{"domain_id": "platform", "policy_trigger": "none",
"power_domain": "primary"}
Example of response:
{"domain_id": "platform", "max_correction_time": 100000,
"max_limit_value": 4096, "max_policies": 16,
"max_reporting_period": 32768, "min_correction_time": 10,
"min_limit_value": 100, "min_reporting_period": 100,
"power_domain": "primary"}
control_nm_policy
- HTTP method
-
PUT
- Description
-
Enable or disable Intel Node Manager policy control.
Example of request:
{"scope": "policy", "enable": false, "policy_id": 10}
set_nm_policy
- HTTP method
-
PUT
- Description
-
Set Intel Node Manager policy. This method creates new policy if provided
policy_id
is not present or changes current policy.
Example of request:
{"domain_id": "platform", "enable": true, "policy_id": 10,
"policy_trigger": "none", "action": "alert", "power_domain": "primary",
"target_limit": 200, "reporting_period": 20000}
get_nm_policy
- HTTP method
-
GET
- Description
-
Get Intel Node Manager policy.
Example of request:
{"domain_id": "platform", "policy_id": 11}
Example of response:
{"action": "alert", "correction_time": 10000, "cpu_power_correction": "auto",
"created_by_nm": true, "domain_id": "platform", "enabled": true,
"global_enabled": true, "per_domain_enabled": true,
"policy_trigger": "none", "power_domain": "primary", "power_policy": false,
"reporting_period": 20000, "storage": "persistent", "target_limit": 250,
"trigger_limit": 300}
remove_nm_policy
- HTTP method
-
DELETE
- Description
-
Remove Intel Node Manager policy.
Example of request:
{"domain_id": "platform", "policy_id": 11}
set_nm_policy_suspend
- HTTP method
-
PUT
- Description
-
Set Intel Node Manager policy suspend periods.
Example of request:
{"domain_id": "platform", "policy_id": 10,
"periods": [{"start": 10, "stop": 60, "days": ["monday", "tuesday"]}]}
For information about time periods calculation please read NodeManager specification.
get_nm_policy_suspend
- HTTP method
-
GET
- Description
-
Get Intel Node Manager policy suspend periods.
Example of request:
{"domain_id": "platform", "policy_id": 13}
Example of response:
{"domain_id": "platform", "policy_id": 13,
"periods": [{"start": 20, "stop": 100, "days": ["monday", "tuesday"]},
{"start": 30, "stop": 150, "days": ["friday", "sunday"]}]}
remove_nm_policy_suspend
- HTTP method
-
DELETE
- Description
-
Remove Intel Node Manager policy suspend periods.
Example of request:
{"domain_id": "platform", "policy_id": 13}
get_nm_statistics
- HTTP method
-
GET
- Description
-
Get Intel Node Manager statistics.
Example of request:
{"scope": "global", "domain_id": "platform", "parameter_name": "power"}
Example of response:
{"activation_state": true, "administrative_enabled": true,
"average_value": 200, "current_value": 202, "domain_id": "platform",
"maximum_value": 240, "measurement_state": true, "minimum_value": 150,
"operational_state": true, "reporting_period": 2125,
"timestamp": "2016-02-03T20:13:52"}
reset_nm_statistics
- HTTP method
-
DELETE
- Description
-
Reset Intel Node Manager statistics.
Example of request:
{"scope": "global", "domain_id": "platform"}