## Network protocols NOTE It is possible that some properties or resources described in this section are not implemented in iLO 4 and iLO 5. This section provides information about the network protocols controlled by HPE iLO. The exhaustive list of iLO network protocols can be retrieved from the standard URI at `/redfish/v1/Managers/1/NetworkProtocol`. ## Simple Network Management Protocol HPE iLO supports the Simple Network Management Protocol (SNMP). SNMP traps are generated by Redfish events posted in the iLO Integrated Management Logs (IML). iLO SNMP Object Identifiers (OIDs) are defined in the HPE Systems Insight Manager (SIM) MIB update kit. To cross reference an SNMP trap with REST alerts information, see the REST alerts table in the iLO user guide. TIP If you make a mistake in the following iLOrest examples, you can always delete property changes in the cache, by reloading the a fresh schema/data-type (`ilorest select Schema. --refresh` ): iLOrest ```shell ilorest select Schema. ilorest set Property="Bad Value" ilorest select Schema. --refresh ``` ### SNMP enablement SNMP enablement is performed by setting the `SNMP/ProtocolEnabled` property to `true` under the Redfish standard `ManagerNetworkProtocol` URI . Generic PATCH request ```text PATCH /redfish/v1/Managers/1/NetworkProtocol ``` Body request ```json { "SNMP": { "ProtocolEnabled": true } } ``` iLOrest (verbose mode) ```shell ilorest login -u -p password ilorest select ManagerNetworkProtocol ilorest set SNMP/ProtocolEnabled=True --commit ilorest logout ``` iLOrest response ```text Selected option(s): #ManagerNetworkProtocol.v1_0_0.ManagerNetworkProtocol Added the following patch: { "SNMP/ProtocolEnabled": true } Committing changes... Changes are being made to path: /redfish/v1/Managers/1/NetworkProtocol/ HTTP Response Code: [200] MessageId: iLO.2.18.ResetRequired Description: The operation completed successfully. Message: The operation completed successfully. Resolution: iLOrest return code: 0 ``` #### SNMPv1 enablement SNMPv1 is enabled when the `SNMPv1Enabled` key is set to `true`, under the `/redfish/v1/Managers/1/SnmpService` URI. NOTE An iLO reset is required when a PATCH request is performed on that property. Generic PATCH request ```text PATCH /redfish/v1/Managers/1/SnmpService ``` Body ```json { "SNMPv1Enabled": true, "SNMPv1RequestsEnabled" : true, "SNMPv1TrapEnabled" : true } ``` iLOrest (verbose) ```shell ilorest login -u -p password ilorest set SNMPv1Enabled=False SNMPv1RequestsEnabled=False SNMPv1TrapEnabled=False ilorest status ilorest -vv --commit ilorest iloreset ``` iLOrest response ```text HTTP Response Code: [200] MessageId: Base.1.4.Success Description: The operation completed successfully. Message: The operation completed successfully. Resolution: iLOrest return code: 0 ``` ### SNMP configuration SNMPv3 configuration can only be performed when the SNMP is enabled. SNMPv1 configuration can only be performed when the SNMP and the SNMPv1 are enabled. #### SNMP ports configuration The SNMP default port number (161) can be modified with a PATCH request of the `SNMP/Port` property under the Redfish standard `ManagerNetworkProtocol` URI. The SNMP default trap port (162) can be modified with a PATCH request of the `OEM/Hpe/SNMPTrapPort` property under the `ManagerNetworkProtocol` URI. Generic PATCH request ```text PATCH /redfish/v1/Managers/1/NetworkProtocol ``` Body ```json "SNMP": { "Port": }, "Oem": { "Hpe": { "SNMPTrapPort": } } ``` iLOrest ```shell ilorest select ManagerNetworkProtocol. ilorest set SNMP/Port=4567 Oem/Hpe/SNMPTrapPort=7654 ilorest status ilorest commit ilorest iloreset ``` #### SNMP settings General SNMP settings can be set in under the `HpeiLOSnmpService` URI . Generic PATCH request ```text PATCH /redfish/v1/Managers/1/SnmpService ``` Body ```json { "Location": "My Location", "Contact": "Contact Name", "Role": "My role", "RoleDetail": "My role details", "ReadCommunities": [ "communitystring1", "communitystring2", "communitystring3" ] } ``` iLOrest ```shell ilorest select HpeiLOSnmpService. ilorest set Location="My Location" Contact="Contact Name" ilorest set Role="My role" RoleDetail="My role details" ilorest set ReadCommunities=["CommunityString1","CommunityString2","CommunityString3"] ilorest status ilorest commit ilorest iloreset ``` Warning A space between the elements of the `ReadCommunities` array leads to the following error: `'[CommunityString1,' is not a valid setting for 'ReadCommunities', expecting an array` #### SNMPv3 settings Specific SNMPv3 settings can be provided under the `/redfish/v1/Managers/1/SnmpService` URI . Generic PATCH request ```text PATCH /redfish/v1/Managers/1/SnmpService ``` Body ```json { "SNMPv3EngineID": "0x8000000001020304", "SNMPv3InformRetryAttempt": 2, "SNMPv3InformRetryIntervalSeconds": 15 } ``` iLOrest ```shell ilorest login -u -p password ilorest select HpeiLOSnmpService. ilorest set SNMPv3EngineID="0x8000000001020304" SNMPv3InformRetryAttempt=2 SNMPv3InformRetryIntervalSeconds=15 ilorest status ilorest commit ilorest iloreset ``` #### SNMP alerts SNMP alerts properties can be set under the `/redfish/v1/Managers/1/SnmpService` URI . The following properties have been added in `HpeiLOSnmpService` version 2.4.0: - `SNMPv1RequestsEnabled`: Enables/disables (Boolean) iLO to receive external SNMPv1 requests. - `SNMPv1TrapEnabled`: Enables/disables (Boolean) iLO to send SNMPv1 traps to the remote management systems configured in the alert destination. - `SNMPv3RequestsEnabled`: Enables/disables (Boolean) iLO to receive external SNMPv3 requests. - `SNMPv3TrapEnabled`: Enables/disables (Boolean) iLO to send SNMPv3 traps to the remote management systems configured in the alert destination. NOTE - `SNMPv1Enabled` enables both `SNMPv1RequestsEnabled` and `SNMPv1TrapEnabled`. - `AlertsEnabled` enables both `SNMPv1TrapEnabled` and `SNMPv3TrapEnabled`. - Enabling either `SNMPv1RequestsEnabled` or `SNMPv1TrapEnabled` enables `SNMPv1Enabled`. - Enabling either `SNMPv1TrapEnabled` or `SNMPv3TrapEnabled` enables `AlertsEnabled`. Generic PATCH request ```text PATCH /redfish/v1/Managers/1/SnmpService ``` Body ```json { "TrapSourceHostname": "Manager", "AlertsEnabled": true, "SNMPv1Enabled": false, "Oem": { "Hpe": { "SNMPColdStartTrapBroadcast": false } }, "PeriodicHSATrapConfig": "Disabled" } ``` iLOrest ```shell ilorest login -u -p password ilorest select HpeiLOSnmpService. ilorest set TrapSourceHostname="Manager" ilorest set AlertsEnabled=True ilorest set SNMPv1Enabled=False ilorest set Oem/Hpe/SNMPColdStartTrapBroadcast=False ilorest set PeriodicHSATrapConfig="Disabled" ilorest status ilorest commit ilorest reset ``` #### SNMP alert destinations Add an SNMP alert destination with a POST request in the `HpeSNMPAlertDestinationCollection` URI. NOTE - The `SNMPv1TrapEnabled` option is available when `SNMPv1TrapEnabled` is enabled in the SNMP Alerts section. - The `SNMPv3TrapEnabled` option is available when `SNMPv3TrapEnabled` is enabled in the SNMP Alerts section and at least one SNMPv3 user is configured. - The `SNMPv3Inform` option is available when at least one SNMPv3 user is configured. Generic POST request ```text POST redfish/v1/Managers/1/SnmpService/SNMPAlertDestinations ``` Body ```json { "AlertDestination": "192.168.87.41", "SNMPAlertProtocol": "SNMPv1Trap", "TrapCommunity": "public" } ``` #### SNMPv3 users SNMPv3 users can be managed under the `HpeSNMPUsersCollection` URI . NOTE `SNMPv3user` is available only if the SNMP Protocol is set to `SNMPv3TrapEnabled` or `SNMPv3Inform`. Add SNMP user ```text POST /redfish/v1/Managers/1/SnmpService/SNMPUsers ``` Body ```json { "SecurityName": "snmpuser", "AuthProtocol": "SHA", "AuthPassphrase": "myauthpassword", "PrivacyProtocol": "AES", "PrivacyPassphrase": "myPrivacyPassphrase", "UserEngineID": "0x8000000001020304" } ``` iLOrest ```shell ilorest login -u -p password ilorest select HpeSNMPUsersCollection. ilorest rawpost SnmpUser.json ilorest logout cat SnmpUser.json { "/redfish/v1/Managers/1/SnmpService/SNMPUsers": { "SecurityName": "snmpuser", "AuthProtocol": "SHA", "AuthPassphrase": "myauthpassword", "PrivacyProtocol": "AES", "PrivacyPassphrase": "myPrivacyPassphrase", "UserEngineID": "0x8000000001020304" } } ``` View the collection of SNMPv3 users: Generic GET request ```text GET /redfish/v1/Managers/1/SnmpService/SNMPUsers ``` iLOrest ```shell ilorest login -u -p password ilorest select HpeSNMPUsersCollection. ilorest get --json ilorest logout ``` Body response ```json { "Description": "SNMPv3 Users Collection view", "Members": [ { "@odata.id": "/redfish/v1/Managers/1/SnmpService/SNMPUsers/1/" }, { "@odata.id": "/redfish/v1/Managers/1/SnmpService/SNMPUsers/2/" } ], "Name": "SNMPv3 User Collection" } ``` View the properties of all SNMPv3 users: Generic GET request ```text GET /redfish/v1/Managers/1/SnmpService/SNMPUsers/?$expand=. ``` iLOrest ```shell ilorest login -u -p password ilorest --silent rawget '/redfish/v1/Managers/1/SnmpService/SNMPUsers/?$expand=.' ilorest logout ``` Body response ```json { "@odata.context": "/redfish/v1/$metadata#HpeSNMPUsersCollection.HpeSNMPUsersCollection", "@odata.etag": "W/\"A4394AAB\"", "@odata.id": "/redfish/v1/Managers/1/SnmpService/SNMPUsers/", "@odata.type": "#HpeSNMPUsersCollection.HpeSNMPUsersCollection", "Description": "SNMPv3 Users Collection view", "Members": [ { "@odata.context": "/redfish/v1/$metadata#HpeSNMPUser.HpeSNMPUser", "@odata.id": "/redfish/v1/Managers/1/SnmpService/SNMPUsers/1/", "@odata.type": "#HpeSNMPUser.v2_1_0.HpeSNMPUser", "AuthProtocol": "MD5", "Id": "1", "PrivacyProtocol": "DES", "SecurityName": "test", "UserEngineID": "0x800000E8044D585137323430375032" }, { "@odata.context": "/redfish/v1/$metadata#HpeSNMPUser.HpeSNMPUser", "@odata.id": "/redfish/v1/Managers/1/SnmpService/SNMPUsers/2/", "@odata.type": "#HpeSNMPUser.v2_1_0.HpeSNMPUser", "AuthProtocol": "SHA", "Id": "2", "PrivacyProtocol": "AES", "SecurityName": "snmpuser", "UserEngineID": "0x8000000001020304" } ], "Members@odata.count": 2, "Name": "SNMPv3 User Collection" } ``` Delete SNMP user Delete SNMP user request ```text DELETE /redfish/v1/Managers/1/SnmpService/SNMPUsers/2 ``` iLOrest ```shell ilorest rawdelete --silent --response /redfish/v1/Managers/1/SnmpService/SNMPUsers/2 ``` #### Send test alerts Test alerts can be sent to alert destinations using a POST request towards `HpeiLOSnmpService.SendSNMPTestAlert` under the `/redfish/v1/Managers/1/SnmpService` URI with an empty body. Send test alerts request ```text POST /redfish/v1/Managers/1/SnmpService/Actions/HpeiLOSnmpService.SendSNMPTestAlert/ ``` Body ```json {} ``` iLOrest ```shell ilorest login -u -p password ilorest rawpost TestAlerts.json ilorest logout cat TestAlerts.json { "/redfish/v1/Managers/1/SnmpService/Actions/HpeiLOSnmpService.SendSNMPTestAlert/": {} } ``` ## Intelligent Platform Management Interface HPE iLO is able to control the use of the Intelligent Platform Management Interface ( IPMI) using the Redfish API. The following example retrieves the state of IPMI using cURL and iLOrest. Generic request ```text GET /redfish/v1/Managers/1/NetworkProtocol/?$select=IPMI ``` iLOrest ```shell ilorest login -u -p password ilorest get --selector NetworkProtocol. --json ilorest logout ``` cURL ```shell curl --insecure --silent --location -u user:password \ 'https://ilo-ip/redfish/v1/Managers/1/NetworkProtocol/?$select=IPMI' ``` Body response ```json { "IPMI": { "Port": 623, "ProtocolEnabled": true } } ``` ### Manage the KCS interface feature for HPE iLO IPMI over Keyboard Controller Style (KCS) enables management of the computer system and monitoring of the operations from within the host Operating System (OS). It is possible to enable or disable KCS for iLO 6 since version 1.40. The following example enables the KCS interface using iLOrest and cURL. Generic request ```text PATCH /redfish/v1/Managers/1/NetworkProtocol Workload: { "Oem": { "Hpe":{ "KcsEnabled": true } } } ``` cURL ```shell curl --insecure --location --silent -u demopaq:password \ --header 'Content-Type: application/json' \ --request PATCH 'https://ilo-lio365g11-2/redfish/v1/Managers/1/NetworkProtocol/' \ --data '{ "Oem": { "Hpe":{ "KcsEnabled": true }} }' ``` iLOrest ```shell ilorest login -u -p password ilorest get Oem/Hpe/KcsEnabled --json ilorest set Oem/Hpe/KcsEnabled=True --commit ilorest logout ``` ### IPMI in-band management In-band management operations can fail or be slow when the IPMI interrupt support is enabled in the HPE Bios service OEM extension of iLO 6 version 1.10 and later. Refer to this customer advisory for more detail. The following example disables the `KcsIpmiInterrupt` attribute in the HPE Bios service subsystem of an HPE iLO 6 based server. Then it performs a graceful restart of the server. Generic PATCH request ```text PATCH /redfish/v1/Systems/1/Bios/Oem/Hpe/Service/Settings Body: { "Attributes": { "KcsIpmiInterrupt": "Disabled" } } ``` Generic Graceful system restart ```text POST `/redfish/v1/Systems/1/Actions/ComputerSystem.Reset/` Body: { "ResetType": "GracefulRestart" } ``` TIP - More information concerning the HPE Bios service subsystem can be found in the [Managing HPE Bios](/docs/redfishservices/ilos/supplementdocuments/biosdoc/) section. - After a modification in the BIOS settings (standard or OEM extension) and the restart of the server, it is a good practice to analyze the `@Redfish.Settings` object of the current settings area as explained in the [Redfish error responses and messages](/docs/concepts/errorresponses) section.