Network Protocol Support
To obtain the BMC's MAC address, refer to the NVIDIA® BlueField®'s board label.
BMC management network interface can be configured using Redfish or IPMI. By default, BMC comes up with the DHCP network configuration.
Network configuration functions:
Setting DHCP/Static network mode configuration
Adding/setting IPv4/IPv6 configuration including IP address, gateway, netmask
Adding DNS servers
Adding NTP server
Setting BMC time with NTP server or system RTC
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:
stateful – DHCPv6 stateful mode is used to configure addresses, and when it is enabled, stateless mode is also implicitly enabled.
stateless – DHCPv6 stateless mode allows configuring the interface using DHCP options but does not configure addresses. It is always enabled by default whenever DHCPv6 stateful mode is also enabled.
disabled – DHCPv6 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>"]}}'
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 to 1.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 to 1.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