To obtain the BMC's MAC address, refer to your NVIDIA® BlueField®'s board label.
Network Management
BMC management network interface can be configured using Redfish or IPMI. By default, BMC comes up with the DHCP network configuration.
The available network configuration functions are presented in the sections below.
Network Management Redfish Commands
Getting Network Protocol Configuration
curl -k -u root:'<password>' -X GET https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/NetworkProtocol
Getting Interface Configuration
curl -k -u root:'<password>' -XGET https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/EthernetInterfaces/eth0
Enabling/Disabling Interface
curl -k -u root:'<password>' -XPATCH https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/EthernetInterfaces/eth0 -d '{"InterfaceEnabled": <state>}'
Where <state> can be true or false.
Disabling the eth0 interface on the BlueField BMC prevents OOB network functionality on the BMC. This inhibits the ability to execute any Redfish or IPMI commands through the network.
Configuring Static IPv4 Address
curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/EthernetInterfaces/eth0 -d '{"IPv4StaticAddresses": [{"Address": "<ip_addr>","SubnetMask": "<netmask>","Gateway":"<gw_ip_addr>"}]}'
Example:
curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/EthernetInterfaces/eth0 -d '{"IPv4StaticAddresses": [{"Address": "10.7.7.7","SubnetMask": "255.255.0.0","Gateway":"10.7.0.1"}]}'
Enabling/Disabling IPv4 DHCP
curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/EthernetInterfaces/eth0 -d '{"DHCPv4": {"DHCPEnabled": <state>}}'
Where <state> can be true or false.
Configuring Static DNS Server IPv4 and IPv6
curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/EthernetInterfaces/eth0 -d '{"StaticNameServers": ["<dns_ip>"]}'
Configuring Static IPv6 Address
curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/EthernetInterfaces/eth0 -d '{"IPv6StaticAddresses": [{"Address": "<ip>", "PrefixLength": <len>}]}'
Example:
curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/EthernetInterfaces/eth0 -d '{"IPv6StaticAddresses": [{"Address": "fe80::3eec:efff:fe3b:e02f", "PrefixLength": 64}]}'
Enabling/Disabling IPv6 DHCP
curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/EthernetInterfaces/eth0 -d '{"DHCPv6": {"OperatingMode": "<state>"}}'
Where <state> can be:
-
Enabled– DHCPv6 is enabled for this interface -
Disabled– DHCPv6 is disabled for this interface
curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/EthernetInterfaces/eth0 -d '{"StatelessAddressAutoConfig": {"IPv6AutoConfigEnabled": "<state>"}}'
Where <state> can be:
-
true– Indicate IPv6 stateless address autoconfiguration (SLAAC) is enabled for this interface -
false– Indicate IPv6 stateless address autoconfiguration is disabled for this interface
Enabling/Disabling NTP
curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/NetworkProtocol -d '{"NTP": {"ProtocolEnabled": <state>}}'
Where <state> can be true or false.
Configuring Static NTP Server IP
curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/NetworkProtocol -d '{"NTP": {"NTPServers": ["<ntp_server_ip>"]}}'
Network Management IPMI Commands
The following subsections list the available network IPMI commands.
Configuring IPv4 Mode
The following command sets LAN channel 1 IP config mode to static or DHCP which corresponds to network interface eth0.
ipmitool lan set 1 ipsrc <mode>
Where <mode> can be static or dhcp.
Configuring IPv6 Mode
The following command sets LAN channel 1 IP config mode to static or DHCP which corresponds to network interface eth0.
ipmitool lan6 set 1 rtr_cfg <mode>
Where <mode> can be static or dynamic. both is unsupported.
Adding IPv4 Address
The following commands add IPv4 address, default gateway, and netmask to the network interface eth0.
-
IP address:
ipmitool lan set 1 ipaddr <ip-address>
-
Default gateway:
ipmitool lan set 1 defgw ipaddr <ip-address>
-
Netmask:
ipmitool lan set 1 netmask <netmask>
Getting IPv4 Config
The following command gets IPv4 network config for channel 1 which corresponds to the network interface eth0.
ipmitool lan print 1
Setting IPv6 Address
The following command adds IPv6 address to the network interface eth0.
ipmitool lan6 set 1 nolock static_addr 0 enable <ipv6-address> 64
Getting IPv6 Config
The following command gets IPv6 network config for channel 1 which corresponds to the network interface eth0.
ipmitool lan6 print 1
Getting DNS Server
ipmitool raw 0x32 0x6B
Output:
0b 31 30 2e 31 35 2e 31 32 2e 36 37
This output corresponds to 10.15.12.67.
Adding DNS Server
ipmitool raw 0x32 0x6C 0x0b 0x31 0x30 0x2e 0x31 0x35 0x2e 0x31 0x32 0x2e 0x36 0x37
Output:
0x0b 0x31 0x30 0x2e 0x31 0x35 0x2e 0x31 0x32 0x2e 0x36 0x37
This output corresponds to 10.15.12.67.
Getting NTP Server
ipmitool raw 0x32 0xA7
Output:
01 11 31 2e 69 6e 2e 70 6f 6f 6c 2e 6e 74 70 2e 6f 72 67
Where:
-
01– NTP status enable/disable -
11– NTP server length -
31 2e 69 6e 2e 70 6f 6f 6c 2e 6e 74 70 2e 6f 72 67– NTP server address byte stream which corresponds to1.in.pool.ntp.org
Adding NTP Server
ipmitool raw 0x32 0xA8 0x01 0x31 0x2e 0x69 0x6e 0x2e 0x70 0x6f 0x6f 0x6c 0x2e 0x6e 0x74 0x70 0x2e 0x6f 0x72 0x67
Where:
-
31 2e 69 6e 2e 70 6f 6f 6c 2e 6e 74 70 2e 6f 72 67– NTP server address byte stream which corresponds to1.in.pool.ntp.org
Enabling NTP Time Sync
The following command enables time sync to NTP server.
ipmitool raw 0x32 0xA8 0x02 0x01
Where:
-
0x01– enable NTP
Disabling NTP Time Sync
The following command disables time sync to NTP server.
ipmitool raw 0x32 0xA8 0x02 0x00
Where:
-
0x00– disable NTP
LLDP in Redfish
The Redfish chassis schema provides a structured and standardized way to represent essential information about the physical infrastructure of computing systems (i.e., BlueField), offering valuable insights for system administrators, data center operators, and management software developers.
The LLDP schema provides the ability to enable/disable the LLDP in BMC and to get LLDP information from the BMC and from peer devices.
Getting LLDP Information
curl -k -u root:'<password>' -H 'Content-Type: application/json' -X GET https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/DedicatedNetworkPorts/1
Output example:
{
"@odata.id": "/redfish/v1/Managers/Bluefield_BMC/DedicatedNetworkPorts/1",
"@odata.type": "#Port.v1_7_0.Port",
"Ethernet": {
"LLDPEnabled": true,
"LLDPReceive": {
"ChassisId": "MAC: 8c:85:c1:a2:ae:80",
"ChassisIdSubtype": 4,
"ManagementAddressIPv4": "10.60.7.238",
"ManagementVlanId": 95,
"PortId": "Ifname: 1/1/5",
"PortIdSubtype": 5,
"SystemCapabilities": [
"Bridge",
"Router"
],
"SystemDescription": "Aruba JL676A PL.10.13.0005",
"SystemName": "MTL-T-F0-LAB-ORMANCE-SW-7-238"
},
"LLDPTransmit": {
"ChassisId": "MAC: 94:6d:ae:5c:9d:cd",
"ChassisIdSubtype": 4,
"ManagementVlanId": 4095,
"PortId": "MAC: 94:6d:ae:5c:9d:cd",
"PortIdSubtype": 3,
"SystemCapabilities": [
"Station"
],
"SystemDescription": "Linux dpu-bmc 5.15.50-a838e3d #1 SMP Wed Mar 27 10:44:16 UTC 2024 armv7l",
"SystemName": "dpu-bmc"
}
},
"Id": "1",
"Links": {
"EthernetInterfaces": [
{
"@odata.id": "/redfish/v1/Managers/Bluefield_BMC/EthernetInterfaces/eth0"
}
]
},
"Name": "Manager Dedicated Network Port"
}
Enabling/Disabling LLDP on BMC
curl -k -u root:'<password>' -H 'Content-Type: application/json' -X PATCH https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/DedicatedNetworkPorts/1 -d '{"LLDPEnabled":<true/false>}'
The IPMI stack in OpenBMC tries to workaround this IPMI spec implementation by creating a virtual interface for the VLAN ID specified by the user and then restricting IPMI to only access the newly created virtual interface. However, this solution has side effects like the LLDP tool being unable to obtain the VLAN interface ID because the LLDP tool works only with physical interfaces.
Last updated: