Patent ID: 12222882

DETAILED DESCRIPTION

Preferred embodiments and their advantages are best understood by reference toFIGS.1and2, wherein like numbers are used to indicate like and corresponding parts.

For the purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes. For example, an information handling system may be a personal computer, a personal digital assistant (PDA), a consumer electronic device, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include memory, one or more processing resources such as a central processing unit (“CPU”) or hardware or software control logic. Additional components of the information handling system may include one or more storage devices, one or more communications ports for communicating with external devices as well as various input/output (“I/O”) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communication between the various hardware components.

For the purposes of this disclosure, computer-readable media may include any instrumentality or aggregation of instrumentalities that may retain data and/or instructions for a period of time. Computer-readable media may include, without limitation, storage media such as a direct access storage device (e.g., a hard disk drive or floppy disk), a sequential access storage device (e.g., a tape disk drive), compact disk, CD-ROM, DVD, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), and/or flash memory; as well as communications media such as wires, optical fibers, microwaves, radio waves, and other electromagnetic and/or optical carriers; and/or any combination of the foregoing.

For the purposes of this disclosure, information handling resources may broadly refer to any component system, device or apparatus of an information handling system, including without limitation processors, service processors, basic input/output systems, buses, memories, I/O devices and/or interfaces, storage resources, network interfaces, motherboards, and/or any other components and/or elements of an information handling system.

FIG.1illustrates a block diagram of an example information handling system102, in accordance with embodiments of the present disclosure. In some embodiments, information handling system102may comprise or be an integral part of a server. In other embodiments, information handling system102may be a personal computer. In these and other embodiments, information handling system102may be a portable information handling system (e.g., a laptop, notebook, tablet, handheld, smart phone, personal digital assistant, etc.). As depicted inFIG.1, information handling system102may include a processor103, a memory104communicatively coupled to processor103, a basic input/output (BIOS) system105communicatively coupled to processor103, a network interface108communicatively coupled to processor103, and a management controller112communicatively coupled to processor103.

Processor103may include any system, device, or apparatus configured to interpret and/or execute program instructions and/or process data, and may include, without limitation, a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data. In some embodiments, processor103may interpret and/or execute program instructions and/or process data stored in memory104and/or another component of information handling system102.

Memory104may be communicatively coupled to processor103and may include any system, device, or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media). Memory104may include RAM, EEPROM, a PCMCIA card, flash memory, magnetic storage, opto-magnetic storage, or any suitable selection and/or array of volatile or non-volatile memory that retains data after power to information handling system102is turned off.

BIOS105may be communicatively coupled to processor103and may include any system, device, or apparatus configured to identify, test, and/or initialize information handling resources of information handling system102.

“BIOS” may broadly refer to any system, device, or apparatus configured to perform such functionality, including without limitation, a Unified Extensible Firmware Interface (UEFI). In some embodiments, BIOS105may be implemented as a program of instructions that may be read by and executed on processor103to carry out the functionality of BIOS105. In these and other embodiments, BIOS105may comprise boot firmware configured to be the first code executed by processor103when information handling system102is booted and/or powered on. As part of its initialization functionality, code for BIOS105may be configured to set components of information handling system102into a known state, so that one or more applications (e.g., an operating system or other application programs) stored on compatible media (e.g., memory104) may be executed by processor103and given control of information handling system102.

Network interface108may comprise any suitable system, apparatus, or device operable to serve as an interface between information handling system102and one or more other information handling systems. Network interface108may enable information handling system102to communicate using any suitable transmission protocol and/or standard. In these and other embodiments, network interface108may comprise a network interface card, or “NIC.” In particular, network interface108may comprise a smartNIC having a processor123, memory124, and packet processing component126. A smartNIC may also be known as a Data Processing Unit (DPU), functional accelerator card (FAC), functional off-load coprocessor (FOCP), or distributed services card (DSC).

Processor123may include any system, device, or apparatus configured to interpret and/or execute program instructions and/or process data, and may include, without limitation, a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data. In some embodiments, processor123may interpret and/or execute program instructions and/or process data stored in memory124and/or another component of network interface108.

Memory124may be communicatively coupled to processor123and may include any system, device, or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media). Memory124may include RAM, EEPROM, a PCMCIA card, flash memory, magnetic storage, opto-magnetic storage, or any suitable selection and/or array of volatile or non-volatile memory that retains data after power to network interface108is turned off. Memory124may have stored thereon software and/or firmware which may be read and executed by processor123for carrying out the functionality of network interface108.

Packet processing component126may be communicatively coupled to processor123, memory124, processor103, and/or management controller112and may include any system, device, or apparatus configured to act as a switching interface between components of network interface108and components external to network interface108. For example, packet processing component126may be communicatively coupled to management controller112via an Inter-Integrated Circuit (I2C) bus, Peripheral Component Interconnect Express (PCIe) bus, vendor-defined message (VDM) bus, or any other suitable bus or channel. Packet processing component126may be implemented with an application specific integrated circuit (ASIC), field-programmable gate array (FPGA), or any other suitable digital or analog circuitry.

Management controller112may be configured to provide out-of-band management facilities for management of information handling system102. Such management may be made by management controller112even if information handling system102is powered off or powered to a standby state. Management controller112may include a processor113, memory114, and an out-of-band network interface118separate from and physically isolated from in-band network interface108. In certain embodiments, management controller112may include or may be an integral part of a baseboard management controller (BMC), a remote access controller (e.g., a Dell Remote Access Controller or Integrated Dell Remote Access Controller), or an enclosure controller. In other embodiments, management controller112may include or may be an integral part of a chassis management controller (CMC).

Processor113may include any system, device, or apparatus configured to interpret and/or execute program instructions and/or process data, and may include, without limitation, a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data. In some embodiments, processor113may interpret and/or execute program instructions and/or process data stored in memory114and/or another component of information handling system102or management controller112.

Memory114may be communicatively coupled to processor113and may include any system, device, or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media). Memory114may include RAM, EEPROM, a PCMCIA card, flash memory, magnetic storage, opto-magnetic storage, or any suitable selection and/or array of volatile or non-volatile memory that retains data after power to management controller112is turned off. Memory114may have stored thereon software and/or firmware which may be read and executed by processor113for carrying out the functionality of management controller112.

Network interface118may comprise any suitable system, apparatus, or device operable to serve as an interface between management controller112and/or one or more other information handling systems. Network interface118may enable management controller112to communicate using any suitable transmission protocol and/or standard. In these and other embodiments, network interface118may comprise a network interface card, or “NIC.”

In addition to processor103, memory104, BIOS105, network interface108, and management controller112, information handling system102may include one or more other information handling resources.

Network120may comprise a network and/or fabric configured to couple information handling system102to one or more other information handling systems. In these and other embodiments, network120may include a communication infrastructure, which provides physical connections, and a management layer, which organizes the physical connections and information handling systems communicatively coupled to network120. Network120may be implemented as, or may be a part of, a storage area network (SAN), personal area network (PAN), local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wireless local area network (WLAN), a virtual private network (VPN), an intranet, the Internet or any other appropriate architecture or system that facilitates the communication of signals, data and/or messages (generally referred to as data).

Network120may transmit data via wireless transmissions and/or wire-line transmissions using any storage and/or communication protocol, including without limitation, Fibre Channel, Frame Relay, Asynchronous Transfer Mode (ATM), Internet protocol (IP), other packet-based protocol, small computer system interface (SCSI), Internet SCSI (iSCSI), Serial Attached SCSI (SAS) or any other transport that operates with the SCSI protocol, advanced technology attachment (ATA), serial ATA (SATA), advanced technology attachment packet interface (ATAPI), serial storage architecture (SSA), integrated drive electronics (IDE), and/or any combination thereof. Network120and its various components may be implemented using hardware, software, or any combination thereof.

In operation, when smartNIC trust is enabled by a user (e.g., an administrator via a management console communicatively coupled to management controller112), management controller112may examine the inventory of information handling system102to determine if there is a known smartNIC (e.g., network interface108) in a privileged slot (e.g., a Peripheral Component Interconnect (PCI) slot) of information handling system102. If network interface108is determined to be a smartNIC disposed in a privileged slot, management controller112may communicate a randomly-generated secret to network interface108via a secure management channel, such as an Inter-Integrated Circuit (I2C) channel, a reduced media-independent interface-based transport (RBT) channel, or a Peripheral Component Interconnect Express (PCIe) channel, for example. In some embodiments, network interface108may support the Security Protocol and Data Model (SPDM) specification and/or support firmware measurement, such that both the firmware and hardware of network interface108may be validated prior to setting the secret. In some embodiments, rather than management controller112generating the secret and communicating it to network interface108, network interface108may generate the secret and management controller112may retrieve the secret from network interface108.

The secret and identity of network interface108may be used to authenticate network interface108to management controller112, for example, for an OAuth client credentials grant (e.g., pursuant to Internet Engineering Task Force Request for Comments 6749) to give network interface108access tokens for needed functions of management controller112. Because the access token references are references to tokens stored on management controller112, the access token references may be revoked by management controller112if the user disables smartNIC trust.

In other embodiments, a similar approach may be used to establish trust between two host information handling systems that share a multi-host device. In such embodiments, a first host information handling system may use SPDM to write a secret to smartNIC firmware and a second host information handling system may use SPDM to retrieve the secret.

Among the advantages of the smartNIC-initiated management disclosed herein is that it uses a secure management channel for passing a temporary secret to validate a location of the smartNIC. Firmware and software of network interface108may be configured to relay the secret from one host (e.g., processor113) to another host (e.g., processor123). Authorization may be based on connections to management channels that support part replacement with reprovisioning of information handling system102. Another further advantage is an automatic invalidation of secret and access grant when network interface108is removed or reset or information handling system102is reset. An additional advantage is that authentication may be based on SPDM and firmware measurement, such that smartNIC to management controller authorization is based on an approved authenticated card being located in an approved privileged slot running approved authentic firmware and software, thus leveraging secure physical connections (e.g., I2C, PCIe, RBT, etc.) to verify that the smartNIC is actually physically present in the same chassis as the management controller.

FIG.2illustrates a flow chart of an example method200for smartNIC-initiated management of an information handling system, in accordance with embodiments of the present disclosure. According to some embodiments, method200may begin at step202. As noted above, teachings of the present disclosure may be implemented in a variety of configurations of information handling system102. As such, the preferred initialization point for method200and the order of the steps comprising method200may depend on the implementation chosen.

At step202, a user (e.g., administrator) may communicate a command (e.g., via a management console) to management controller112to enable smartNIC trust on information handling system102. At step204, after a warm reset of information handling system102, management controller112may retrieve inventory of information handling system102from BIOS105to determine if a smartNIC is present in a privileged slot, and if so, an identifier of such smartNIC.

If such a smartNIC is found (e.g., network interface108), at step206, management controller112may set a secret (e.g., an OAuth client secret) and communicate such secret to firmware of network interface108via a secure protocol or standard (e.g., SPDM, RBT, etc.).

At step208, an operating system (OS) or other software of network interface108may retrieve the secret from firmware of network interface108. At step210, OS/other software of network interface108may request an access token from management controller112, providing an identifier and the secret to management controller112as an authentication. In response, at step212, management controller112may return an access token reference to OS/other software of network interface108.

At step214, network interface108may communicate management requests (e.g., Hypertext Transfer Protocol Secure or HTTPS Redfish requests) to management controller112for managing information handling system102using access token references.

AlthoughFIG.2discloses a particular number of steps to be taken with respect to method200, method200may be executed with greater or fewer steps than those depicted inFIG.2. In addition, althoughFIG.2discloses a certain order of steps to be taken with respect to method200, the steps comprising method200may be completed in any suitable order.

Method200may be implemented using information handling system102or any other system operable to implement method200. In certain embodiments, method200may be implemented partially or fully in software and/or firmware embodied in computer-readable media.

As used herein, when two or more elements are referred to as “coupled” to one another, such term indicates that such two or more elements are in electronic communication or mechanical communication, as applicable, whether connected indirectly or directly, with or without intervening elements.

This disclosure encompasses all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend. Similarly, where appropriate, the appended claims encompass all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend. Moreover, reference in the appended claims to an apparatus or system or a component of an apparatus or system being adapted to, arranged to, capable of, configured to, enabled to, operable to, or operative to perform a particular function encompasses that apparatus, system, or component, whether or not it or that particular function is activated, turned on, or unlocked, as long as that apparatus, system, or component is so adapted, arranged, capable, configured, enabled, operable, or operative. Accordingly, modifications, additions, or omissions may be made to the systems, apparatuses, and methods described herein without departing from the scope of the disclosure. For example, the components of the systems and apparatuses may be integrated or separated. Moreover, the operations of the systems and apparatuses disclosed herein may be performed by more, fewer, or other components and the methods described may include more, fewer, or other steps. Additionally, steps may be performed in any suitable order. As used in this document, “each” refers to each member of a set or each member of a subset of a set.

Although exemplary embodiments are illustrated in the figures and described above, the principles of the present disclosure may be implemented using any number of techniques, whether currently known or not. The present disclosure should in no way be limited to the exemplary implementations and techniques illustrated in the figures and described above.

Unless otherwise specifically noted, articles depicted in the figures are not necessarily drawn to scale.

All examples and conditional language recited herein are intended for pedagogical objects to aid the reader in understanding the disclosure and the concepts contributed by the inventor to furthering the art, and are construed as being without limitation to such specifically recited examples and conditions. Although embodiments of the present disclosure have been described in detail, it should be understood that various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the disclosure.

Although specific advantages have been enumerated above, various embodiments may include some, none, or all of the enumerated advantages. Additionally, other technical advantages may become readily apparent to one of ordinary skill in the art after review of the foregoing figures and description.

To aid the Patent Office and any readers of any patent issued on this application in interpreting the claims appended hereto, applicants wish to note that they do not intend any of the appended claims or claim elements to invoke 35 U.S.C. § 112(f) unless the words “means for” or “step for” are explicitly used in the particular claim.