UEFI and operating system driver methods for updating MAC address in LAN-based NIC
RE049226 · 2022-09-27
Assignee
Inventors
- James T. Gillon (Round Rock, TX, US)
- Thomas E. Voor (Cedar Park, TX, US)
- Nicholas D. Grobelny (Austin, TX, US)
- Nathan F. Martell (Taylor, TX, US)
Cpc classification
H04L2101/622
ELECTRICITY
International classification
Abstract
An information handling system (IHS) unambiguously addresses networked devices connected by a local area network (LAN) based network interface controller (NIC) by detecting a device descriptor of LAN-based NIC, determining that the device descriptor indicates a capability for assigning a reserve media access control (MAC) address to the networked device, writing the reserve MAC address in the LAN-based NIC of the networked device, and associating the reserve MAC address with the networked device in an inventory data structure for the IHS.
Claims
1. A method of .[.unambiguously.]. addressing networked devices in an information handling system (IHS), the method comprising: detecting a device descriptor of a local area network .[.(LAN) based.]. .Iadd.(LAN)-based .Iaddend.network interface controller (NIC) connected to a networked device .[.that does not physically contain a unique MAC address.].; determining that the device descriptor indicates a capability for assigning a .[.reserve.]. media access control (MAC) address to the networked device; .Iadd.archiving an original equipment manufacturer (OEM) MAC address of the LAN-based NIC into a non-volatile storage of the LAN-based NIC; and.Iaddend. provisioning the .[.reserve.]. MAC address in the LAN-based NIC .[.of the networked device; associating the reserve MAC address with the networked device in an inventory data structure of the IHS; detecting a presence of the networked device by an operating system of the IHS; accessing a Unified Extensible Firmware Interface (UEFI) reserve MAC protocol to expose a UEFI Preboot eXecution Environment (PXE) driver that is specific to the device descriptor; loading the UEFI PXE driver into a UEFI platform; and provisioning the LAN-based NIC with the reserve MAC address using the UEFI PXE driver.]. .Iadd.in place of the archived OEM MAC address.Iaddend..
2. The method of claim 1, .Iadd.wherein the LAN-based NIC provides LAN connectivity between the IHS and the networked device, the method .Iaddend.further comprising: detecting the presence of the networked device by an operating system driver during one of a boot of the IHS and a hot plugging of a network system; .[.and.]. the operating system driver provisioning the .[.reserve.]. MAC address in the LAN-based NIC .Iadd.for use in place of an OEM programmed MAC address of the LAN-based NIC; and associating the MAC address with the networked device in an inventory data structure of the IHS.Iaddend..
3. The method of claim 2, further comprising: sending a command over an operating system to a basic input/output system (BIOS) interface .[.to an.]. .Iadd.of a .Iaddend.Unified Extensible Firmware Interface (UEFI) BIOS; and receiving the .[.reserve.]. MAC address from the UEFI BIOS.
4. The method of claim 1, further comprising: re-initializing an original equipment manufacturer (OEM) MAC address for the LAN-based NIC in response to a power cycle of the networked device.
5. The method of claim 1, further comprising: detecting .[.a second device descriptor of.]. a second networked device .[.that is.]. connected to the LAN-based NIC; and provisioning a second .[.reserve.]. MAC address in the LAN-based NIC, where the second .[.reserve.]. MAC address .Iadd.is assigned to the second networked device .Iaddend.and .[.a first reserve.]. .Iadd.the .Iaddend.MAC address .Iadd.and second MAC address .Iaddend.are .[.unique reserve.]. .Iadd.different .Iaddend.MAC addresses.
6. The method of claim 1, further comprising: detecting .[.the.]. .Iadd.a second .Iaddend.device descriptor of .[.the networked device connected to.]. a second LAN-based NIC .Iadd.to which the networked device is connected, the second device descriptor also indicating a capability for assigning a second MAC address to the second LAN-based NIC.Iaddend.; and provisioning the second .[.based.]. .Iadd.LAN-based .Iaddend.NIC with the .[.reserve.]. MAC address that .Iadd.was previously assigned to and .Iaddend.is associated with the networked device.
7. An information handling system (IHS) .[.to unambiguously address networked devices, the IHS.]. comprising: a local area network (LAN) based network interface controller (NIC); a networked device connected to the LAN-based NIC.Iadd., the LAN-based NIC external to the networked device.Iaddend.; and a system .Iadd.that manages an IHS inventory list database, the system physically interconnected to the networked device via the LAN-based NIC and .Iaddend.having a processor operably in communication with the LAN-based NIC to: detect a device descriptor of the LAN-based NIC; determine that the device descriptor indicates a capability for assigning a .[.reserve.]. media access control (MAC) address to the networked device .Iadd.that connects to the system via the LAN-based NIC.Iaddend.; .Iadd.archive an original equipment manufacturer (OEM) MAC address of the LAN-based NIC into a non-volatile storage of the LAN-based NIC; and.Iaddend. provision the LAN-based NIC with .[.the reserve.]. .Iadd.a .Iaddend.MAC address.[.; associate the reserve MAC address with the networked device in an inventory data structure for the HIS; detect the presence of the networked device by an operating system of the IHS; access a Unified Extensible Firmware Interface (UEFI) reserve MAC protocol to expose a UEFI Preboot eXecution Environment (PXE) driver that is specific to the device descriptor; load the UEFI PXE driver into a UEFI platform; and provision, by using the UEFI PXE driver, the LAN-based NIC with the reserve MAC address.]. .Iadd.in place of the archived OEM MAC address.Iaddend..
8. The IHS of claim 7, wherein .Iadd.the LAN-based NIC provides LAN connectivity between the IHS and the networked device and .Iaddend.the system is further operable to: detect the presence of the networked device by an operating system driver during one of a boot of the IHS and a hot plugging of a network system; .[.and.]. provision the reserve MAC address in the LAN-based NIC by the operating system driver .Iadd.for use in place of an OEM programmed MAC address of the LAN-based NIC; and associate the MAC address with the networked device in an inventory data structure of the IHS.Iaddend..
9. The IHS of claim 8, wherein the system is further operable to: send a command by .[.an.]. .Iadd.the .Iaddend.operating .Iadd.system .Iaddend.driver over an operating system to a basic input/output system (BIOS) interface to an Unified Extensible Firmware Interface (UEFI) BIOS; and receive the reserve MAC address from the UEFI BIOS.
10. The IHS of claim 7, wherein the system is further operable to: re-initialize an original equipment manufacturer (OEM) MAC address for the LAN-based NIC in response to a power cycle of the networked device.
11. The IHS of claim 7, wherein the system is further operable to: detect a .[.second device descriptor of a.]. second networked device .[.that is.]. connected to the LAN-based NIC; and provision the LAN-based NIC with a second .[.reserve.]. MAC address .Iadd.that is assigned to the second networked device, the second MAC address being a different MAC address from the MAC address associated with the networked device.Iaddend..
12. The IHS of claim 7, wherein .Iadd.the .Iaddend.system is operable to: detect .[.the device descriptor of.]. the networked device .[.that is.]. connected to a second LAN-based NIC; and provision the second LAN-based NIC with .[.a reserve.]. .Iadd.the .Iaddend.MAC address that .[.is.]. .Iadd.was previously assigned and .Iaddend.associated with the networked device.
13. A system that .[.unambiguously.]. addresses networked devices in a distributed information handling system (IHS), the system comprising: .[.a processor; an operating system driver executed by the processor and in communication with.]. a local area network (LAN) based network interface controller (NIC) that is .Iadd.external to and .Iaddend.connected to a networked device.[., the operating system driver.]..Iadd.; a memory comprising an IHS inventory list database managed by the system, the system physically interconnected to the networked device via the LAN-based NIC; and a processor communicatively connected to the LAN-based NIC and which executes firmware including an operating system driver that makes the processor .Iaddend.operable to: detect a device descriptor of the LAN-based NIC; determine that the device descriptor indicates a capability for assigning a .[.reserve.]. media access control (MAC) address to the networked device .Iadd.that connects to the IHS via the LAN-based NIC.Iaddend.; .Iadd.archive an original equipment manufacturer (OEM) MAC address of the LAN-based NIC into a non-volatile storage of the LAN-based NIC; and.Iaddend. provision the LAN-based NIC with .[.the reserve.]. .Iadd.a .Iaddend.MAC address.[.; associate the reserve MAC address with the networked device in an inventory data structure for the IHS; detect a presence of the networked device by an operating system of the IHS; access a Unified Extensible Firmware Interface (UEFI) reserve MAC protocol to expose a UEFI Preboot eXecution Environment (PXE) driver that is specific to the device descriptor; load the UEFI PXE driver into a UEFI platform; and provision the LAN-based NIC with the reserve MAC address using the UEFI PXE driver.]. .Iadd.in place of the archived OEM MAC Address.Iaddend..
14. The system of claim 13, wherein .Iadd.the LAN-based NIC provides LAN connectivity between the distributed IHS and the networked device and .Iaddend.the operating system driver .[.is.]. .Iadd.makes the processor .Iaddend.further operable to: detect the presence of the networked device during one of a boot of the IHS and a hot plugging of a network system; .[.and.]. provision.[., by the operating system driver,.]. the .[.reserve.]. MAC address in the LAN-based NIC .Iadd.for use in place of an OEM programmed MAC address of the LAN-based NIC; and associate the MAC address with the networked device in an inventory data structure of the IHS.Iaddend..
15. The system of claim 14, .[.further comprising an interface of the operating system executed by.]. .Iadd.wherein the .Iaddend.processor .[.and.]. .Iadd.is further .Iaddend.operable to: send a command to a basic input/output system (BIOS) interface to an Unified Extensible Firmware Interface (UEFI) BIOS; and receive the .[.reserve.]. MAC address from the UEFI BIOS.
.[.16. The system of claim 13, wherein the operating system driver is further operable to detect the presence of the networked device during of an operating system of the IHS, the IHS further comprising: an interface of the operating system executed by the processor and operable to access a Unified Extensible Firmware Interface (UEFI) reserve MAC protocol to expose a UEFI Preboot eXecution Environment (PXE) driver that is specific to the device descriptor and to load the UEFI PXE driver into a UEFI platform that in turn provisions the LAN-based NIC with the reserve MAC address..].
17. The system of claim 13, wherein the operating system driver .[.is.]. .Iadd.makes the processor .Iaddend.further operable to: detect .[.a second device descriptor of.]. a second networked device .[.that is.]. connected to the LAN-based NIC; .[.and.]. provision the LAN-based NIC with a second .[.reserve.]. MAC address.Iadd., different from the MAC address associated with the networked device; and associate the second MAC address with the second networked device.Iaddend..
18. The system of claim 13, wherein .Iadd.the .Iaddend.operating system driver .[.is.]. .Iadd.makes the processor .Iaddend.operable to: detect the .[.device descriptor of the.]. networked device .[.that is.]. connected to a second LAN-based NIC .Iadd.having a device descriptor that also indicates a capability for assigning a MAC address to the networked device.Iaddend.; and provision the second LAN-based NIC with .[.a reserve.]. .Iadd.the .Iaddend.MAC address that is associated with the networked device.
.Iadd.19. The method of claim 1, wherein provisioning of the MAC address in the LAN-based NIC comprises reprogramming the LAN-based NIC with the MAC address received from a Unified Extensible Firmware Interface (UEFI) basic input/output system (BIOS)..Iaddend.
.Iadd.20. The method of claim 1, wherein the LAN-based NIC is associated with a docking station or dongle to which the networked device physically connects, the method further comprising clearing the MAC address from the LAN-based NIC when the network device is detached from the LAN-based NIC..Iaddend.
.Iadd.21. The IHS of claim 7, wherein to provision the MAC address in the LAN-based NIC, the system is further operable to reprogram the LAN-based NIC with the MAC address received from a Unified Extensible Firmware Interface (UEFI) basic input/output system (BIOS)..Iaddend.
.Iadd.22. The system of claim 13, wherein in provisioning the MAC address in the LAN-based NIC, the operating system driver makes the processor further operable to reprogram the LAN-based NIC with the MAC address received from a Unified Extensible Firmware Interface (UEFI) basic input/output system (BIOS)..Iaddend.
.Iadd.23. A method comprising: detecting, during a boot of a networked device that locally connects to an IHS via a LAN-based network interface controller (NIC), a device descriptor in the LAN-based NIC, the device descriptor indicative of a capability for assigning a MAC address to the networked device; in response to detecting the device descriptor, exposing an interface of a Unified Extensible Firmware Interface (UEFI) reserve MAC protocol driver; loading a UEFI Preboot eXecution Environment (PXE) driver into a UEFI platform; and provisioning, using the UEFI PXE driver, the NIC with a MAC address..Iaddend.
.Iadd.24. The method of claim 23, wherein provisioning of the NIC with the MAC address comprises archiving an original equipment manufacturer (OEM) MAC address in a NIC internal non-volatile storage..Iaddend.
.Iadd.25. An information handling system (IHS) comprising: a local area network (LAN) based network interface controller (NIC); a networked device connected to the LAN-based NIC, which locally connects with the IHS, the networked device having a processor operably in communication with the LAN-based NIC to: detect, during a boot of the networked device, a device descriptor in the NIC, the device descriptor indicative of a capability for assigning a MAC address to the networked device; in response to detecting the device descriptor, expose an interface of a Unified Extensible Firmware Interface (UEFI) reserve MAC protocol driver; load a UEFI Preboot eXecution Environment (PXE) driver into a UEFI platform; and provision, using the UEFI PXE driver, the NIC with a MAC address..Iaddend.
.Iadd.26. A system that addresses networked devices in a distributed information handling system (IHS), the system comprising: a local area network (LAN) based network interface controller (NIC); and a networked device that locally connects within the distributed IHS via the LAN-based NIC, the networked device having a processor that is communicatively connected to the LAN-based NIC and which executes firmware that makes the processor operable to: detect, during a boot of the networked device, a device descriptor in the LAN-based NIC, the device descriptor indicative of a capability for assigning a MAC address to the networked device; in response to detecting the device descriptor, expose an interface of a Unified Extensible Firmware Interface (UEFI) reserve MAC protocol driver; load a UEFI Preboot eXecution Environment (PXE) driver into a UEFI platform; and provision, using the UEFI PXE driver, the NIC with a MAC address..Iaddend.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The description of the illustrative embodiments can be read in conjunction with the accompanying figures. It will be appreciated that for simplicity and clarity of illustration, elements illustrated in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements are exaggerated relative to other elements. Embodiments incorporating teachings of the present disclosure are shown and described with respect to the figures presented herein, in which:
(2)
(3)
(4)
(5)
(6)
(7)
DETAILED DESCRIPTION
(8) An information handling system (IHS) unambiguously addresses networked devices connected by a local area network (LAN) based network interface controller (NIC) by: detecting a device descriptor of LAN-based NIC; determining that the device descriptor indicates a capability for assigning a reserve media access control (MAC) address to the networked device; provisioning the reserve MAC address in the LAN-based NIC of the networked device; and associating the reserve MAC address with the networked device in an inventory data structure for the IHS.
(9) The present disclosure further provides for an IHS and method for programming a reserved MAC address stored in the Unified Extensible Firmware Interface (UEFI) Basic Input/Output System (BIOS). Proprietary communication protocols are provided for both an operating system (OS) driver and UEFI Preboot eXecution Environment (PXE) driver to uniquely identify networked devices that otherwise would be identified by duplicative MAC addresses. Rather than a manual MAC address replacement, the present disclosure provides for automatic changing of a MAC address without necessarily having a physical network interface controller (NIC) to go along with this MAC address.
(10) The reserved MAC Address as used herein refers to a MAC address that can be used for a local area network (LAN) based NIC, such as connected via a universal serial bus (USB). The UEFI Basic Input/Output System (BIOS) can add a new SMBIOS interface that the OEM can utilize via custom tools to program the reserved MAC Address in the write-once, non-volatile storage of the BIOS. The System Management BIOS (SMBIOS) specification defines data structures (and access methods) that can be used to read information stored in the BIOS of a computer as defined by the Distributed Management Task Force (DMTF). This reserved MAC address can be specific to a given system. This level of security at the enterprise system level can prevent malicious entities from modifying the reserved MAC address.
(11) In the following detailed description of exemplary embodiments of the disclosure, specific exemplary embodiments in which the disclosure may be practiced are described in sufficient detail to enable those skilled in the art to practice the disclosed embodiments. For example, specific details such as specific method orders, structures, elements, and connections have been presented herein. However, it is to be understood that the specific details presented need not be utilized to practice embodiments of the present disclosure. It is also to be understood that other embodiments may be utilized and that logical, architectural, programmatic, mechanical, electrical and other changes may be made without departing from general scope of the disclosure. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims and equivalents thereof.
(12) It is understood that the use of specific component, device and/or parameter names (such as those of the executing utility/logic described herein) are for example only and not meant to imply any limitations on the disclosure. The disclosure may thus be implemented with different nomenclature/terminology utilized to describe the components/devices/parameters herein, without limitation. Each term utilized herein is to be given its broadest interpretation given the context in which that term is utilized.
(13) References within the specification to “one embodiment,” “an embodiment,” “embodiments”, or “one or more embodiments” are intended to indicate that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. The appearance of such phrases in various places within the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Further, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not other embodiments.
(14) Turning now to the drawings, the detailed description set forth below in connection with the appended drawings is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of various concepts, with like numerals denoting like components throughout the several views. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well known structures and components are shown in block diagram form in order to avoid obscuring such concepts.
(15)
(16) Referring specifically to
(17) The Unified Extensible Firmware Interface (UEFI) is a specification that defines a software interface between an operating system and platform firmware. UEFI is meant to replace the Basic Input/Output System (BIOS) firmware interface, present in a majority of conventional PC-compatible personal computers. In practice, most UEFI images provide legacy support for BIOS services. UEFI can support remote diagnostics and repair of computers, even without another operating system.
(18) IHS 100 further includes one or more input/output (I/O) controllers 120 which support connection to and processing of signals from one or more connected input device(s) 122, such as a keyboard, mouse, touch screen, or microphone. I/O controllers 120 also support connection to and forwarding of output signals to one or more connected output devices 124, such as a monitor or display device or audio speaker(s). Additionally, in one or more embodiments, one or more device interfaces 126, such as an optical reader, a universal serial bus (USB), a card reader, Personal Computer Memory Card International Association (PCMCIA) port, and/or a high-definition multimedia interface (HDMI), can be associated with IHS 100. Device interface(s) 126 can be utilized to enable data to be read from or stored to corresponding removal storage device(s) (RSDs) 128, such as a compact disk (CD), digital video disk (DVD), flash drive, or flash memory card. In one or more embodiments, device interface(s) 126 can also provide an integration point for connecting other device(s) to IHS 100. In such implementation, device interfaces 126 can further include General Purpose I/O interfaces such as I.sup.2C, SMBus, and peripheral component interconnect (PCI) buses.
(19) IHS 100 includes a network interface device (NID), which in one or more embodiments is a LAN-based NIC 130. LAN-based NIC 130 enables IHS 100 to communicate and/or interface with other devices, services, and components that are located external to IHS 100. These devices, services, and components can interface with IHS 100 via an external network, such as example network 132, using one or more communication protocols. Network 132 can be a local area network, wide area network, personal area network, and the like, and the connection to and/or between network and IHS 100 can be wired or wireless or a combination thereof. For purposes of discussion, network 132 is indicated as a single collective component for simplicity. However, it is appreciated that network 132 can comprise one or more direct connections to other devices as well as a more complex set of interconnections as can exist within a wide area network, such as the Internet.
(20) In one or more embodiments, IHS 100 includes features for automatic changing of a MAC address without necessarily having a physical NIC to go along with this MAC address. With particular reference to
(21) In one or more embodiments, the LAN-based NIC 130 can utilize Universal Serial Bus (USB) technology. In one embodiment, the LAN-based NIC 130 complies with another LAN-based protocol such as FireWire (IEEE 1394), Ethernet (IEEE 802.3), and Token Ring (IEEE 802.5), etc.
(22)
(23) The networked devices 205a-c may have a LAN on Mother Board (LOM) with a MAC (LOM MAC) address. Either this LOM MAC address or a different virtual MAC address that may be created is stored as a reserved MAC address 240a-c for use with docking station 207 or USB NIC 230. When the networked device 205a-c is connected to docking station 207 that contains a physical NIC (not shown) or to a USB NIC 230 with the capability for a reserved MAC address 240a-c, the physical NIC or the USB NIC 230 automatically communicates with the networked device 205a-c and spoofs the OEM MAC address provided by the networked device 205a-c instead of using its own OEM MAC address. In this manner, the same physical NIC or USB NIC 230 can be used for multiple networked devices 205a-c to register the individual devices 205a-c in the IHS inventory list database 241. The reserve MAC addresses, rather than the MAC address of the physical NIC or USB NIC 230, can be used in that registration.
(24)
(25) In one embodiment, the networked device 305 can be responsible for maintaining and providing its own reserved MAC address internally. Devices of the IHS 300 such as a configuration server (not shown) can be responsible for querying each networked device 305 to retrieve the current device MAC address, which happens to be the reserved MAC, after the networked device 305 updates the MAC address as it connects to a docking station 307a-b. The configuration server can retain the results of the MAC query as the reserved MAC address in the server's inventory list as a way to reference and identify that networked device 305 uniquely.
(26) In one usage case, the system 301 tracks software licensing as part of cloud licensing. For example, a user may subscribe to license software or media content for a predetermined number of MAC addresses, such as three or five. Absent the above described functionality provided as one aspect of the present disclosure, a single networked device 305 used at different USB NICs 330a-b can appear to the system 301 to be more than one networked device 305, unnecessarily exhausting at least a portion of the license grant.
(27)
(28) An exemplary sequence of events for this path can be as follows: (1) OS 416 detects USB NIC 430 with a custom device descriptor 438, which requests that the custom USB NIC driver 448 begin its initialization path (block 461). (2) The USB NIC driver 448 attempts to communicate over the secure OS-to-BIOS interface by sending a pre-defined discovery/query command to the BIOS (block 462). (3) If unsuccessful, the USB NIC driver will abort the MAC address update, and continue to load with the MAC address that was programmed into the device by the manufacturer (block 463). (4) If successful, the USB NIC driver 448 requests that the UEFI BIOS platform 414 send the reserved MAC address 440 (block 464). (5) Once the USB NIC driver receives the reserved MAC Address, the USB NIC driver 448 archives the OEM MAC address 436 in the NIC internal non-volatile storage (not shown), and then reprograms the USB NIC 430 (block 465). (6) The USB NIC driver 448 continues to load as usual, whereby operation of the USB NIC 430 behaves as normal with the only exception being the updated reserved MAC Address 440 (block 466). The reserved MAC address may be cleared from the USB NIC 430 when the networked device 405 is detached from the USB NIC 430 to prevent duplicate MAC addresses on the IHS 400. In one embodiment, the host system is not required to clear the reserved MAC address 440 in the USB NIC 430. The USB NIC firmware 434 or hardware of the USB NIC 430 can be required to re-initialize to the OEM MAC address 436 any time power is lost to prevent a reserved MAC address 440 from becoming “sticky” to the networked device 405. For example, the networked device 405 may leave the IHS 400 for another IHS (not shown).
(29)
(30) The Preboot eXecution Environment (PXE, also known as Pre-Execution Environment; sometimes pronounced “pixie”) is an environment to boot computers using a network interface independently of data storage devices or installed operating systems. PXE makes use of several network protocols like Internet Protocol (IPv4), User Datagram Protocol (UDP), Dynamic Host Configuration Protocol (DHCP) and Trivial File Transfer Protocol (TFTP) and of concepts like globally unique identifier (GUID), universally unique identifier (UUID) and Universal Network Device Interface and extends the firmware of the PXE client (the computer to be bootstrapped via PXE) with a set of predefined application programming interfaces (APIs). The firmware on the client tries to locate a PXE redirection service on the network (Proxy DHCP) in order to receive information about available PXE boot servers. After parsing the answer, the firmware will ask an appropriate boot server for the file path of a network bootstrap program (NBP), download the NBP into the computer's random-access memory (RAM) using TFTP, possibly verify the NBP, and finally execute the NBP.
(31) With further reference to
(32) With reference to
(33) In one embodiment, the LAN-based NIC determines whether the networked device has undergone a power cycle (block 610). In response to determining in block 610 that the network system has not been undergone a power cycle, the LAN-based NIC maintains the reserve MAC address (block 612). Processing returns to block 610. In response to determining (or detecting) in block 610 that the networked device has been disconnected from the LAN-based NIC, the LAN-based NIC re-initializes an OEM MAC address for the LAN-based NIC (block 614).
(34) Without a reserve MAC address, ambiguous addressing can arise from more than one networked device connecting to the IHS at various times via the same LAN-based NIC. Thus, in one embodiment, the method 600.[., continued in
(35) Without a reserve MAC address, ambiguous addressing can also arise from the same networked device connecting to the IHS at various times via different LAN-based NICs. Thus, in one embodiment the method 600 further includes the system detecting the device descriptor of the networked device that is connected to a second LAN-based NIC (block 620). The system provisions the second LAN-based NIC with the previously-assigned reserve MAC address of the networked device (block 622).
(36) In one embodiment, the method 600 further includes the system detecting the presence of the networked device by an operating system driver during one of a boot of the IHS and a hot plugging of the network system. The method 600 includes the operating system driver provisioning the reserve MAC address in the LAN-based NIC. In an exemplary embodiment, the method 600 includes sending a command by the operating system driver over an operating system to BIOS interface to a UEFI BIOS. The method 600 then includes receiving the reserve MAC address from the UEFI BIOS.
(37) In one embodiment, the method 600 includes detecting the presence of the networked device by an operating system driver during .Iadd.installation .Iaddend.of an operating system of the IHS. The method 600 includes accessing a UEFI .[.reserve.]. .Iadd.reserved .Iaddend.MAC protocol .Iadd.driver .Iaddend.to expose a UEFI PXE driver that is specific to the device descriptor. The method 600 further includes loading the UEFI PXE driver into a UEFI platform. The method 600 includes provisioning the LAN-based NIC with the reserve MAC address using the UEFI PXE driver.
(38) In the above described flow .[.charts.]. .Iadd.chart .Iaddend.of
(39) One or more of the embodiments of the disclosure described can be implementable, at least in part, using a software-controlled programmable processing device, such as a microprocessor, digital signal processor or other processing device, data processing apparatus or system. Thus, it is appreciated that a computer program for configuring a programmable device, apparatus or system to implement the foregoing described methods is envisaged as an aspect of the present disclosure. The computer program may be embodied as source code or undergo compilation for implementation on a processing device, apparatus, or system. Suitably, the computer program is stored on a carrier device in machine or device readable form, for example in solid-state memory, magnetic memory such as disk or tape, optically or magneto-optically readable memory such as compact disk or digital versatile disk, flash memory, etc. The processing device, apparatus or system utilizes the program or a part thereof to configure the processing device, apparatus, or system for operation.
(40) While the disclosure has been described with reference to exemplary embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the disclosure. In addition, many modifications may be made to adapt a particular system, device or component thereof to the teachings of the disclosure without departing from the essential scope thereof. Therefore, it is intended that the disclosure not be limited to the particular embodiments disclosed for carrying out this disclosure, but that the disclosure will include all embodiments falling within the scope of the appended claims. Moreover, the use of the terms first, second, etc. do not denote any order or importance, but rather the terms first, second, etc. are used to distinguish one element from another.
(41) The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
(42) The description of the present disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosure in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the disclosure. The described embodiments were chosen and described in order to best explain the principles of the disclosure and the practical application, and to enable others of ordinary skill in the art to understand the disclosure for various embodiments with various modifications as are suited to the particular use contemplated.