Network Protocol Support
To obtain the BMC's MAC address, refer to the DPU'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
Get Network Protocol Configuration
curl -k -u root:'<password>' -X GET https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/NetworkProtocol
Get Interface Configuration
curl -k -u root:'<password>' -XGET https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/EthernetInterfaces/eth0
Enable/Disable 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.
Static IPv4 Address Configuration
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"}]}'
IPv4 DHCP Enable/Disable Configuration
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.
Static DNS server IPv4 and IPv6 Configuration
curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Managers/Bluefield_BMC/EthernetInterfaces/eth0 -d '{"StaticNameServers": ["<dns_ip>"]}'
Static IPv6 Address Configuration
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}]}'
IPv6 DHCP Enable/Disable Configuration
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.
Enable NTP Configuration
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.
Static NTP Server IP Configuration
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.
Change Mode to Static
Sets LAN channel 1 IP config mode to static which corresponds to network interface eth0.
ipmitool lan set 1 ipsrc <mode>
For example:
ipmitool lan set 1 ipsrc static
Change Mode to DHCP
Sets LAN channel 1 IP config mode to DHCP which corresponds to the network interface eth0.
ipmitool lan set 1 ipsrc <mode>
For example:
ipmitool lan set 1 ipsrc dhcp
Add IPv4 Address
Adds 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>
Get IPv4 Config
Gets IPv4 network config for channel 1 which corresponds to the network interface eth0.
ipmitool lan print 1
Set IPv6 Address
Adds IPv6 address to the network interface eth0.
ipmitool lan6 set 1 nolock static_addr 0 enable <ipv6-address> 64
Get IPv6 Config
Gets IPv6 network config for channel 1 which corresponds to the network interface eth0.
ipmitool lan6 print 1
Get DNS Server
ipmitool raw 0x32 0x6B
Output:
0b 31 30 2e 31 35 2e 31 32 2e 36 37
Corresponds to: 10.15.12.67.
Add 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
Corresponds to: 10.15.12.67.
Get 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 corresponds to 1.in.pool.ntp.org
Add 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 corresponds to 1.in.pool.ntp.org
Enable NTP Time Sync
Enable time sync to NTP server.
ipmitool raw 0x32 0xA8 0x02 0x01
Where:
- 0x01 – enable NTP
Disable NTP Time Sync
Disable time sync to NTP server.
ipmitool raw 0x32 0xA8 0x02 0x00
Where:
- 0x00 – disable NTP