Skip to content
This repository was archived by the owner on Feb 11, 2020. It is now read-only.

Commit 787933e

Browse files
committed
Update to Version 1.2 of the NMPRK, with many functionality improvements.
Signed-off-by: James.Massoni <[email protected]>
1 parent e321e6b commit 787933e

34 files changed

+3632
-2192
lines changed

ReadMe.txt

Lines changed: 83 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
11
Intel Node Manager Programmers Reference Kit (NMPKR)
22

3-
Version 1.00 Date: August 1, 2012
3+
Version 1.2 Date: Sept 21, 2012
44

5-
Intel(r) Node Manager is a server management technology that allows management software to accurately monitor and control the platform's power and thermal behaviors through an industry defined standard Intelligent Platform Management Interface (IPMI) and Datacenter Manageability Interface (DCMI).
5+
Intel(r) Node Manager Programmers Reference Kit has been updated so that many of the issues with the previous version have been fixed. In general the NM functions have been greatly enhanced and the IPMI functions now work correctly with the SEL, SDR and FRU areas. See the release notes at the end of this document.
6+
7+
Note: DCMI and DNM functionality has been removed from the NMPRK.
8+
9+
Intel(r) Node Manager is a server management technology that allows management software to accurately monitor and control the platform's power and thermal behaviors through an industry defined standard Intelligent Platform Management Interface (IPMI).
610

711
Intel(r) Node Manager Technology allows the datacenter IT and Facilities managers to monitor actual server power and thermal behavior. Using this technology datacenter managers can set upper limits on the server power to maximize the rack density with confidence that rack power budget will not be exceeded. During a power or thermal emergency, Intel(r) Node Manager can automatically limit server power consumption and extend service uptime from standby power sources. These server's power and thermal information can also be used to improve overall datacenter efficiency and maximize overall datacenter utilization.
812

913
Intel(r) Node Manager Programmer's Reference Kit contains the source code (C and C++), test application, and documents to manage a server that support Intel Node Manager.
1014

1115
The Kit simplifies the encoding/decoding of complex IPMI commands and responses, hides the protocol details and provides simple Application Programming Interfaces (APIs) to monitor and control power and thermal capabilities of Intel(r) Node Manager capable platforms.
1216

13-
DOWNLOAD NOW: Intel(r) Node Manager Programmer's Reference Kit
17+
DOWNLOAD NOW: Intel(r) Node Manager Programmer's Reference Kit at:
1418

15-
Intel(r) has three version of server management technology - Intel(r) Node Manager, Intel(r) Node Manager Basic Edition and Intel(r) Node Manager Extended Edition. Intel(r) Node Manager provides platform's power and thermal capabilities to baseboard management controller (BMC). Intel(r) Node Manager Basic Edition provides simple manageability capabilities and does not need platform's BMC. Intel(r) Node Manager Extended Edition provides simple platforms' manageability capabilities along with power and thermal capabilities and does not need platform's BMC. Intel(r) Node Manager Programmer's Reference Kit supports all the three version of server management technology.
19+
https://github.com/01org/NMPRK
1620

1721
Please follow the links below for more information on Intel(r) Node Manager Technology:
1822

@@ -25,16 +29,85 @@ https://www-ssl.intel.com/content/www/us/en/data-center/data-center-management/n
2529
Intel(r) Node Manager Specification:
2630
https://www-ssl.intel.com/content/www/us/en/data-center/data-center-management/node-manager-general.html?wapkw=intel%20node%20manager
2731

28-
Known Issues and Limitations to the NMPRK:
32+
NMPRK Testing:
2933

30-
* Currently the DNM interface has not been implemented.
34+
The NMPRK has been tested on both Linux and Windows server platforms. The two OS's that were used during test were Microsoft(r) Windows Server 2008 R2 and RedHat(r) Enterprise Linux 6.0. The test programs used are included in the package. The TestIpmi.exe program tests the IPMI interface to the library and the TestTranslation.exe program tests the translation layer interface to the library.
3135

32-
* There currently is no support for the DCMI HECI/MEI drivers, which means the DCMI interface will not work in-band on a DCMI machine unless the IMB drivers have been installed and are functional.
36+
Defects may now be entered in the NMPRK repository located on GitHub:
3337

34-
* Currently there is no support for partial SDR reads.
38+
https://github.com/01org/NMPRK/issues
3539

3640

37-
NMPRK Testing:
41+
Release Notes:
42+
----------------------------------------------------------------------
43+
44+
The following defects have been fixed in this release:
45+
46+
The software was modified to return error codes that were previously being ignored. Additionally now the error codes returned from IPMI communications are now being passed to the calling routine and may be interrogated so that the calling application may know exactly why the call failed and take appropriate action. These error codes are defined in the IPMI specification.
47+
48+
The following Node Manager function calls were fixed:
49+
50+
setPolicy():
51+
1. Previously the enable/disable flag was not working, this has been fixed.
52+
2. The aggressive flag has been added to support aggressive policy behavior.
53+
3. Thermal policy trigger support has been fixed in this release.
54+
4. setPolicy() has been fixed to allow the modifying of the current
55+
policy (note: the policy must first be disabled in order to modify
56+
it).
57+
58+
delPolicy() has been fixed to correctly delete a policy.
59+
60+
setPolicyStatus() has been fixed to allow the enabling and disabling of
61+
policies.
62+
63+
clearSEL() has been fixed to correctly clear the SEL repository.
64+
65+
delSelRecord() has been fixed to correctly delete a SEL event from the
66+
repository.
67+
68+
addSel() has been removed as there is no purpose for addSEL(). You cannot
69+
restore the SEL repository as the SEL will modify the event. There is
70+
another function (not implemented) that allows you to add events to
71+
the SEL. That function may be added in a future release.
72+
73+
getSdrRecord() function has been fixed to correctly get SDR data.
74+
75+
clearSdr() has been fixed to correctly clear the SDR repository
76+
77+
addSdrRecord() has been fixed to correctly add SDR data.
78+
79+
delSdrRecord() has been fixed to delete SDR data.
80+
81+
getFruData() has been fixed to correctly get FRU data.
82+
83+
getFruRpry() has been added to return the entire FRU from the repository
84+
85+
setFruData() has been fixed to correctly write FRU data back to the FRU.
86+
87+
getNMVersion() has been added to return the current NM Version (and IPMI
88+
Version) of the targeted server.
89+
90+
Test Program Changes:
91+
92+
The testIpmi.exe test program has been modified to:
93+
94+
- return all the data in the SEL and store it into a file called
95+
testfile.sel.
96+
- return all the data in the SDR repository and store it into a file
97+
called testfile.sdr.
98+
- program the SDR repository using the file testfile.sdr which it
99+
previously created.
100+
- return all the data in the FRU data area and store it in a file called
101+
testfile.fru.
102+
- program the FRU data area using the file testfile.fru which it
103+
previously created.
104+
105+
The program testTranslation.exe has been modified to create a policy,
106+
modify the policy, enable and disable the policy, and create a policy
107+
using a thermal trip.
108+
109+
Documentation Changes:
110+
111+
ImplemetationGuide-NMPRK.doc has been update to reflect the changes to the different function calls and structures supported by the NMPRK.
38112

39-
The NMPRK has been tested on both Linux and Windows server platforms. The two OS's that were used during test were Microsoft(r) Windows Server 2008 R2 and RedHat(r) Enterprise Linux 6.0. The test programs used are included in the package. The TestIpmi program tests the IPMI interface to the library and the TestTranslation program tests the translation layer interface to the library.
40113

-55.8 KB
Binary file not shown.
486 Bytes
Binary file not shown.

docs/UsingTheNmprkLibraryInLinux.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,8 @@ Using the nmprk library:
181181
11. You have now created your first application using the nmprk library
182182

183183
Full source code listing:
184-
// usingNmprkExample.cpp : Defines the entry point for the console application.
184+
// usingNmprkExample.cpp : Defines the entry point for the console application. For the most up-to-date example code, please check
185+
// the testIpmi.cpp and the testTranslation.cpp applications that are provided with the NMPRK.
185186
//
186187

187188
#include "stdafx.h"

ipmi/include/nmprk_defines.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,16 @@ namespace nmprk {
5656

5757
typedef struct {
5858
byte_t repoVersion; // Version of the SEL
59-
unsigned int repoEntries; // get total entries in SEL
59+
unsigned int repoEntries; // get total entries in SEL
6060
unsigned int repoFreeSpace; // the amount of space left in the SEL
6161
tm mostRecentAddTS; // Timestamp from the last add command
6262
tm mostRecentDelTS; // timestamp from the last delete command
6363
bool getAllocInfoSup; // does this SEL support getAllocInfo command
6464
bool reserveSup; // reserve sel supported
6565
bool parAddSup; // partial add sel support
6666
bool delSup; // sel supports delete
67+
bool nonmodalSupported; // non-modal SDR Repository update supported
68+
bool modalSupported; // modal SDR Repository update supported
6769
}repoInfo_t;
6870

6971
typedef struct {
@@ -73,7 +75,7 @@ namespace nmprk {
7375

7476
typedef struct {
7577
address_t nextRecord; // address of next record
76-
byte_t data[256]; // record data
78+
byte_t data[1024]; // record data
7779
unsigned int len; // length of data field
7880
}record_t;
7981

0 commit comments

Comments
 (0)