/* This function caches the found IPMI LAN channel. So we don't have to sedn IPMI commands again if the USB NIC is connected later. */
EFI_STATUS CacheIpmiLanMac(IN UINT8 ChannelNum, IN EFI_MAC_ADDRESS *IpmiLanChannelMacAddress, IN UINT8 IpmiLanMacAddressSize)
/* This function caches the found IPMI LAN channel. So we don't have to sedn IPMI commands again if the USB NIC is connected later. */
EFI_STATUS CacheIpmiLanMac(IN UINT8 ChannelNum, IN EFI_MAC_ADDRESS *IpmiLanChannelMacAddress, IN UINT8 IpmiLanMacAddressSize)
{
  BMC_IPMI_LAN_CHANNEL_INFO  *ChannelInfo;
  ChannelInfo = (BMC_IPMI_LAN_CHANNEL_INFO *)AllocateZeroPool (sizeof (BMC_IPMI_LAN_CHANNEL_INFO));
  if (ChannelInfo == NULL) {
    return EFI_OUT_OF_RESOURCES;
  }
  ChannelInfo->Channel = ChannelNum;
  CopyMem ((VOID *)&ChannelInfo->MacAddress.Addr, (VOID *)IpmiLanChannelMacAddress->Addr, IpmiLanMacAddressSize);
  ChannelInfo->MacAddressSize = IpmiLanMacAddressSize;
  InitializeListHead (&ChannelInfo->NextInstance);
  InsertTailList (&mBmcIpmiLan, &ChannelInfo->NextInstance);
  return EFI_SUCCESS;
}