tianocore / edk2-redfish-client

Utilizes the EFI protocols provided by EDK2 Redfish Foundation to communicate with the Redfish service for creating, consuming, and updating the Redfish properties which are managed by firmware.
Other
7 stars 5 forks source link

[Design] how to find BMC exposed NIC in BIOS? #25

Open nicklela opened 1 year ago

nicklela commented 1 year ago

In our current implementation, we use MAC address to identify Redfish network interface. However, from OpenBMC implementation, the MAC on host side is different from the MAC on BMC side. BMC engineer suggest us to use VID and DID in order to identify the network interface on BMC.

SMBIOS type 42 provides this information as below image

If this is the case, we need to update RedfishConfigHandler driver.

nicklela commented 1 year ago

We probably still use MAC address because network protocol can only provide MAC address of NIC. MAC address is defined in Host Interface specification so we can use this.

nicklela commented 1 year ago

action item: OpenBMC may not have implementation of "Serial Number" or "MAC Address"

nicklela commented 1 year ago

action: check and see if vendor id and product id can be retrieved from standard IPMI command or not.

changab commented 1 year ago

Locate all EFI Device Path Protocol Check if both USB device path and MAC device path specified in the EFI Device Path If yes, get the MAC address from EFI Device Path Go through all IPMI channels, Send IPMI NetFn: Net Parameter selector:5 Get MAC address) Compare the MAC address specified in EFI Device Path ( Step 2) and the one retrieved via step 4. If matched, this is the USB NIC exposed by BMC.