Method, network device, and computer-readable storage medium
By providing SDK and API, third-party developers are allowed to create third-party software that is compatible with network devices, solving the problems of high cost and long downtime in the introduction of hardware components in the prior art, and achieving rapid and economical hardware component merging.
Patent Information
- Application Number
- CN202011118268.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-08-04
- Filing Date
- 2020-10-19
- Publication Date
- 2025-06-20
- Estimated Expiration
- 2041-02-03
AI Technical Summary
The prior art requires frequent software re-releases and participation of network device manufacturers when introducing third-party hardware components into network devices, resulting in high costs and increased customer downtime.
By providing a Software Development Toolkit (SDK), third-party developers allow them to create third-party software compatible with network devices, use APIs to secure access to hardware resources, and reduce their dependence on network device manufacturers.
It realizes the rapid merger of new hardware components into network devices without the need for comprehensive software re-release, reducing overall cost and downtime and improving development efficiency.
Smart Images

Figure CN114095196B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to network devices. Background Art
[0002] Network devices include various components that perform various tasks. For example, network devices include various types of physical interfaces for exchanging data (e.g., in the form of packets) with other network devices. Network devices may also include security components, routing components, forwarding components, service components, etc. These hardware components can be controlled and managed by software (e.g., an operating system) and software that interfaces with the hardware (e.g., an application programming interface (API), etc.). As an example, a network device may provide support for a fiber optic network interface.
[0003] Some components of a network device may be developed by the manufacturer of the network device, while other components may be developed by third - party developers. Third - party developers generally do not develop software that is fully compatible with all possible network devices for their components, even if the components comply with relevant standards. The components may have larger and / or smaller deviations from the standards. These deviations may lead to incorrect usage or malfunctions of the components on the network device software and hardware platforms. Resolving these issues and integrating these components into the operating system and other network device software is a cost for both network device manufacturers and their customers.
[0004] When such problems are encountered, customers can return the components and / or the network device to their respective manufacturers. These manufacturers can then verify the component and then develop relevant software dedicated to that component and network device. Thus, software must be distributed across customers to network devices. Since all network device nodes are involved in the upgrade process, this may lead to customer downtime to install software updates. This approach may result in revenue and time losses for both customers and manufacturers. Summary of the Invention
[0005] Generally, this disclosure describes techniques related to workflows for developing software for network devices and their hardware components. Specifically, these workflow techniques do not require major software re - releases and can minimize the involvement of network device manufacturers. In this way, these techniques can reduce the qualification and induction associated with incorporating new hardware components into deployed network devices. For example, while traditional techniques may take approximately one year of updates from the release of a new third - party hardware component until the new hardware component can be fully utilized in a deployed network device, these techniques may only require a few weeks of development.
[0006] In one example, a method includes a network device receiving a hardware component that has been coupled to the network device; the network device receiving data for an application programming interface (API) for the hardware component; and the network device executing the API for the hardware component to authorize secure access by the hardware component to the hardware resources of the network device.
[0007] In another example, a network device includes one or more hardware resources; a physical interface for receiving a hardware component; a memory; and one or more processors implemented in circuitry and configured to: receive a hardware component that has been coupled to the physical interface of the network device; receive data for an application programming interface (API) for the hardware component; store the API data in the memory; and execute the API to authorize secure access by the hardware component to the hardware resources of the network device.
[0008] In another example, a non-transitory computer-readable storage medium stores instructions thereon that, when executed, cause a processor of a network device to receive a hardware component that has been coupled to the network device; receive data for an application programming interface (API) for the hardware component; and execute the API data for the hardware component to authorize secure access by the hardware component to the hardware resources of the network device.
[0009] Details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Figure 1 is a block diagram illustrating an exemplary system including a network device configured according to the techniques of the present disclosure.
[0011] Figure 2 is a block diagram illustrating an exemplary router including a third-party hardware controller configured according to the techniques of the present disclosure.
[0012] Figure 3 is a flowchart illustrating an exemplary workflow for implementing and publishing new third-party hardware components and corresponding third-party software according to the techniques of the present disclosure.
[0013] Figure 4 is a flowchart illustrating an exemplary method for adding a new third-party hardware component to a network device according to the techniques of the present disclosure. DETAILED DESCRIPTION
[0014] Figure 1FIG. 0 is a block diagram showing an exemplary system 100 including a network device 110 configured according to the techniques of the present disclosure. The system 100 includes a network 102, a network device 110, and an optical network 104. The network 102 and the optical network 104 represent computer networks in which one or more various network devices, such as routers, switches, hubs, gateways, firewalls, etc., operate. The network 102 may represent, for example, Ethernet, while the optical network 104 represents a network in which network devices communicate via optical fibers.
[0015] The network device 110 may be a router, a switch, a security device, a gateway, or other network device. Generally, a router determines routes through networks such as the network 102 and the optical network 104. Each route may represent a series of connections between network devices that form the respective networks to reach a particular destination. The network device 110 may determine these routes and use these routes to determine which route is most suitable for reaching a particular destination. The network device 110 may further determine forwarding information, such as the network device to which network traffic is directed to reach a particular destination. The network device 110 may form forwarding information to specify the physical network interface through which network traffic (e.g., network packets) is output to reach the destination of the packet.
[0016] In Figure 1 an example, the network device 110 includes local software 116 and local hardware units 118. The native software 116 may include, for example, an operating system and other control software, as well as software for executing routing protocols, forwarding protocols, security programs, and other processes or network protocols. In this example, the network device 110 further includes a third-party optical unit 114 and executes third-party software 112 to control the third-party optical unit 114. The third-party optical unit 114 may be developed by a third-party developer different from the manufacturer of the network device 110. According to the techniques of the present disclosure, the manufacturer may produce a software development kit (SDK) for developing software that will be executed by the network device 110 to control third-party hardware components, such as the third-party optical unit 114.
[0017] The developer of the third-party optical unit 114 may use the SDK to produce the third-party software 112, which may include application programming interfaces (APIs) for providing two-way communication between the third-party optical unit 114 and the resources (e.g., local hardware units 118) of the network device 110. Such resources of the local hardware units 118 may include, for example, raw registers or other hardware resources.
[0018] The method of allowing third - party developers to use an SDK to generate third - party software 112 is based on a clear separation between third - party software 112 (e.g., optical unit management code) and native software 116. The method also provides the ability to upgrade the hardware of the network device 110, such as having an independent optical unit agile configuration. This code separation allows the release of third - party software 112 to be less than a full update of the native software 116.
[0019] As an example, a third - party developer can use an optical SDK to develop third - party software 112 to include optical unit management software. The optical SDK can be publicly provided to hardware developers and includes well - defined APIs. Hardware developers (e.g., optical unit hardware suppliers) can use the optical SDK to build and release optical plug - in code that is compatible with the native hardware unit 118 and native software 116. The optical SDK can also allow any hardware - specific tuning for the third - party optical unit 114 of the network device 110 and native hardware unit 118. The optical SDK can further allow the tuning of the network device 110 and native hardware unit 118 to accommodate the functionality of the third - party optical network unit 114.
[0020] The optical SDK is just an exemplary SDK that a vendor or developer can use to develop third - party software 112. In other examples, other vendors or developers can develop other types of third - party hardware and use corresponding SDKs and third - party software to control the third - party hardware. Such third - party hardware units can include, for example, hardware security units, hardware Ethernet network interfaces, hardware line cards, etc.
[0021] The above - mentioned SDK mechanism supports APIs by vendor and device type as additional installable packages (represented by third - party software 112). This allows for small upgrades to deployed network devices (e.g., network device 110). The method also allows network device manufacturer - proprietary functions to be visible to trusted vendors, enabling vendors to add value to third - party hardware such as third - party optical unit 114. In addition, the mechanism allows third - party vendors and developers to be ready to develop software that is compatible with the network device 110, native software 116, and native hardware unit 118.
[0022] The SDK API can expose some or all of the native hardware unit 118 to the third - party optical unit 114 and third - party software 112. For example, the SDK API can expose the I2C bus, Serial Peripheral Interface (SPI), etc., and handle any specific complexities associated with reading and / or writing from these components. In addition, the SDK API can allow the automatic tuning of host and module - side parameters. For example, the network device 110 can automatically tune the Continuous - Time Linear Equalizer (CTLE) and the Serial Interface (SI) parameters on the board of the network device 110.
[0023] In this way, the technology of the present disclosure can provide certain advantages over conventional development techniques. In traditional technologies, third-party developers and vendors do not have access to the network device manufacturer's SDK, and thus typically cannot develop software that includes APIs that can access the internal hardware components of the network device. As a result, third-party developers may create hardware components and corresponding software that do not operate correctly in their entirety in the network device. Once a customer observes a problem with the third-party software, the customer can submit a report indicating the problem to the network device manufacturer. The network device manufacturer will then typically need to classify the problem and incorporate the relevant fixes into the mainstream software version (e.g., incorporated into an update of the native software 116). The network device manufacturer will then qualify the third-party hardware in the laboratory and release the mainstream software to the customer, who can install the mainstream software along with other features. The entire process typically takes over a year to complete and can be costly for both the customer and the network device manufacturer. In contrast, using the technology of the present disclosure, a third-party developer or vendor can use the relevant SDK to create third-party software, which can reduce the process to just a few weeks (e.g., three weeks).
[0024] Figure 2 is a block diagram showing an exemplary router 150 including a third-party hardware controller 180 configured according to the technology of the present disclosure. Router 150 further includes a third-party optical unit 196, and a third-party hardware controller 180 including a third-party application programming interface (API) 182 and third-party software 184. The third-party hardware controller 180, the third-party API 182, and the third-party software 184 can be installed in the memory of the control unit 152. Router 150 can correspond to Figure 1 the network device 110 of Figure 1 and the third-party optical unit 196 can correspond to Figure 1 the third-party optical unit 114 of
[0025] In Figure 2In the example, router 150 includes interface cards 190A, 190B (IFC 190) and control unit 152. Control unit 152 includes register 154, a packet forwarding engine (PFE) 160, a routing engine (RE) 170, and a third-party hardware controller 180. Control unit 152 may be implemented in the form of one or more processors implemented in the circuit. Register 154 represents a plurality of processor registers for storing data to be processed by control unit 152. Although not shown, control unit 152 may also include one or more arithmetic logic units (ALUs) or other hardware elements for performing various processing operations, which may store, output, and / or manipulate data stored in register 154. In some examples, any one or all of PFE 160, RE 170, and / or third-party hardware controller 180 may also include a corresponding set of one or more registers (not shown in Figure 2 ).
[0026] IFC 190 receives data through respective inbound links 192A, 192B (inbound link 192) and sends data through outbound links 194A, 194B (outbound link 194). In some examples, inbound link 192 and outbound link 194 form a common physical communication medium for the IFC operating in full-duplex mode. That is, in some examples, each IFC 190 is coupled to a corresponding communication medium capable of transmitting and receiving data substantially simultaneously. In other examples, inbound link 192 and outbound link 194 form separate physical media for respective IFCs 190.
[0027] Control unit 152 includes processing hardware and, in some examples, includes software and / or firmware executed by the processing hardware. In various examples, control unit 152 and its various elements (e.g., PFE 160 and RE 170) are implemented in one or more processors, processing units, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or any combination thereof. When implemented in software or firmware, control unit 152 includes one or more processors or processing units for executing instructions for the software or firmware, and a computer-readable storage medium for storing the instructions. In some examples, elements of PFE 160 and RE 170 are implemented in discrete units or modules, while in other examples, PFE 160 and RE 170 are functionally integrated.
[0028] RE 170 includes instructions for one or more routing protocols 174. The routing protocols 174 include any one or all of the interior gateway routing protocols, such as Open Shortest Path First (OSPF), Intermediate System to Intermediate System (IS-IS), Routing Information Protocol (RIP), Interior Gateway Routing Protocol (IGRP), Enhanced IGRP (EIGRP), and / or exterior gateway routing protocols, such as Border Gateway Protocol (BGP). Generally, interior gateway routing protocols are used to exchange routing information between routers within an autonomous system. The routing protocols 174 also include protocols related to network tunneling, such as MPLS, Label Distribution Protocol (LDP), Resource Reservation Protocol Traffic Engineering (RSVP-TE), or other protocols.
[0029] Generally, RE 170 executes the routing protocols 174 to determine routes between network devices, such as a route from router 150 to other network devices. Other routers coupled to router 150 via IFC 190 advertise routes to router 150. When router 150 receives communication from another router that advertises a new route, RE 170 receives the communication and stores the new route in the routing information 172 (also referred to as the routing information base). RE 170 also executes the routing protocols 174 to determine the priority of a route from router 150 to a destination. That is, when the routing information 172 includes information indicating the existence of multiple routes to a common destination, RE 170 executes the routing protocols 174 to select one of the routes to the destination.
[0030] The selected route to the destination typically includes an indication of the "next hop" along the route to the destination. The next hop typically corresponds to a network device, such as another router, switch, gateway, or other network device along the route to the destination. The next-hop device is connected to router 150 via one of the IFCs 190. Thus, using the selected route to the destination, the control unit 152 can determine one of the IFCs 190 that is connected to the next hop along the route to the destination and update the forwarding information stored in the PFE 160 to indicate which one of the IFCs 190 to send packets destined for the destination to.
[0031] More specifically, the PFE 160 maintains a Forwarding Information Base (FIB) 162. Then, in response to receiving information from the routing engine 170, the PFE 160 updates the FIB 162 based on the next hop along the route to the destination address to map the destination address to one of the IFCs 190. The FIB 162 also includes information indicating how to forward packets associated with a network tunnel, such as forwarding packets with one or more labels and / or packets to which one or more labels are to be attached.
[0032] The third - party hardware controller 180 represents a set of exemplary software that can be created by a developer or vendor of the third - party optical unit 196 using the corresponding SDK. In some examples, the third - party hardware controller 180 can be implemented as a combination of hardware, software, and / or firmware. When implemented at least partially in software or firmware, the router 150 can include the necessary hardware for executing the instructions of the software or firmware, such as the control unit 152 and its processing unit. In this example, the third - party hardware controller 180 includes a third - party API 182 and third - party software 184.
[0033] The third - party optical unit 196 includes an optical transmitter (e.g., a laser) for sending data 200 and an optical receiver for receiving data 198. Generally, the third - party software 184 can control the third - party optical unit 196. For example, the third - party software 184 can include an implementation of an optical network protocol and configuration for the third - party optical unit 196. For example, the third - party software 184 can control the optical transmitter for sending data 200, for example, by controlling the amount of power used to drive the optical transmitter. In some examples, the third - party software 184 can configure (e.g., tune) the amount of power used to drive the optical transmitter according to the configuration of the router 150 (e.g., the power management configuration of the router 150).
[0034] The third - party API 182 can authorize secure access by the third - party hardware controller 180 and the third - party optical unit 196 to internal components of the router 150, such as the register 154. Although not shown, the third - party API 182 can also authorize secure access by the third - party hardware controller 180 and the third - party optical unit 196 to the I2C bus and / or SPI.
[0035] The control unit 152 can be configured to determine that the third - party optical unit 196 has been installed and receive data from the third - party hardware controller 180. For example, a user can install the third - party hardware controller 180 (including data for the third - party API 182 and third - party software 184) and the third - party optical unit 196 in the router 150. Thus, the control unit 152 can execute the third - party software 184 to authorize secure access by the third - party hardware controller 180 and the third - party optical unit 196 to the hardware resources and components of the router 150, such as the register 154, through, for example, the third - party API 182.
[0036] Allowing third - party developers or suppliers to create third - party hardware controllers 180 via the corresponding SDK allows for a clear separation of the code from other software executed by the control unit 152. The third - party hardware controller 180, the third - party API 182, and the third - party software 184 can be implemented as independent libraries of software for controlling a third - party optical unit 196 (or other third - party hardware units, such as a hardware security unit, a hardware line card, a hardware Ethernet interface, etc.).
[0037] As an example, the third - party hardware controller 180 can be configured to dynamically link with additional libraries and drivers on a per - vendor, per - device - type basis. As an example, the third - party hardware controller 180 can dynamically link with the {vendor: SOURCE PHOTONICS, QSFP - 100GBASE - LR4 - T2, part number: 740 - 061409} package and / or the individual package of {vendor: AVAGO, 40GBASE SR4, part number: 740 - 046565}. For each of these examples, a network device such as the router 150 can have a different implementation. For example, the hardware of the Juniper Networks PTX10008 can be configured as follows:
[0038]
[0039] while the Juniper Networks PTX10003 - 80C hardware can be configured as follows:
[0040]
[0041]
[0042] In addition, the initialization and management of these devices may vary in each type of hardware device.
[0043] This combination of network devices from a particular manufacturer and third - party hardware units from different suppliers can multiply. By accommodating the various possibilities in database packages and independently installable packages, the work of changing to a new third - party hardware unit (e.g., the third - party optical unit 196) can be simplified.
[0044] In this way, the router 150 represents an example of a network device that includes one or more hardware resources; a physical interface for receiving hardware components; a memory; and one or more processors, implemented in circuitry and configured to: determine that a hardware component has been coupled to the physical interface of the network device; and receive data for an application programming interface (API) for the hardware component; store the data for the API in the memory; and execute the data for the API to authorize secure access of the hardware component to the hardware resources of the network device.
[0045] Figure 3 is a flowchart showing an exemplary workflow for implementing and publishing new third - party hardware components and corresponding third - party software according to the techniques of the present disclosure. In Figure 3 the example, the device manufacturer develops an API SDK (210). The device manufacturer represents the manufacturer of network devices such as the network device 110 ( Figure 1 ) or the router 150 ( Figure 2 ). The API SDK allows third - party vendors and developers to implement third - party software for controlling third - party hardware components and defines APIs that allow third - party hardware components to securely access the resources of the network device. The resources can include, for example, the raw registers, I2C interface, or SPI of the network device.
[0046] Then, the device manufacturer sends the API SDK to the third - party developer (212). In some examples, the device manufacturer may publicly release the API SDK. In other examples, the device manufacturer may send the API SDK directly to the third - party developer, for example, electronically, by mail, etc.
[0047] The third - party developer then uses the API SDK to develop third - party hardware components and APIs for the third - party hardware components (214). For example, the third - party developer may develop an optical component for accessing an optical network via an optical cable. The third - party developer may also use the SDK and other controller software to develop APIs such as the third - party hardware controller 180, third - party API 182, and third - party software 184 ( Figure 2 ) or the third - party software 112 ( Figure 1 ).
[0048] Then, the customer can obtain the third - party hardware components and APIs (216). For example, the customer may purchase the third - party hardware components and receive data for the APIs and other controller software for the third - party hardware components. Then, the customer can install the third - party hardware components, APIs, and other software in a deployed network device manufactured by the network device manufacturer (218). The network device can install and execute the APIs to authorize secure access of the third - party hardware components to the resources of the network device (220).
[0049] may be according to Figure 3The example of [[ID=]] performs various exemplary workflows. In one example, a vendor (or developer) releases a new optical hardware unit and uses the network device manufacturer's SDK to build one or more additional packages for the network device manufacturer's network devices. A customer of the network device manufacturer who owns one or more of the manufacturer's network devices can use the additional packages and the new optical hardware unit in the network device. The vendor can then request that all modules be ready for deployment from the network device manufacturer to the network device.
[0050] In another example, the vendor can release a new optical module for the manufacturer's network devices. A customer who owns one of the manufacturer's network devices can use the SDK itself to build an additional package for the network device and install the additional package. Thus, the customer can use the SDK to build the additional package, rather than the developer using the SDK to build the additional package.
[0051] As yet another example, the vendor can release a new optical module for the vendor's network devices. The manufacturer can use the SDK to develop an additional package and distribute the additional package in a distribution package for a third-party optical module.
[0052] Thus, these techniques can provide flexibility in allowing for the development of controllers for third-party hardware units on a per-vendor, per-device type, and / or per-unit type basis. It is possible to accommodate incompatible vendor failures without fully upgrading the underlying operating system and other software of the network device. These techniques can further enable future API standardization and a Common Management Interface Specification (CMIS).
[0053] The vendor can further introduce network device manufacturer-specific custom functions into the third-party hardware unit, such as power management functions. Thus, the third-party hardware can be tuned to the network device in which it is installed. Additionally or alternatively, the network device itself can be tuned. For example, host-side parameters can be automatically tuned and used for the optimal operation of the software that controls the hardware. The native software of the network device can also include hooks for running vendor-specific elements. For example, the vendor can implement code for initializing the third-party hardware unit to ensure compatibility with the network device. Additionally, the network device manufacturer can host additional packages for each vendor and each device, for example, on a website, to allow customers to reuse the additional packages.
[0054] Figure 4 is a flowchart showing an exemplary method for adding a new third-party hardware component to a network device according to the techniques of the present disclosure. Although other network devices (such as Figure 1 network device 110 of [[ID=]]) can be configured to perform this method or a similar method, Figure 4 the method is explained with respect to Figure 2 router 150 of [[ID=]].
[0055] Initially, the router 150 (specifically, the control unit 152) determines that a new hardware component (e.g., a third-party optical unit 196) has been installed (230). The control unit 152 may also receive data for an API for the hardware component (232). The API can be developed using an API SDK generated by the manufacturer of the router 150 for devices similar to the new third-party hardware component.
[0056] Then, the control unit 152 may install the API (234) and other controller software (e.g., a third-party hardware controller 180, a third-party API 182, and third-party software 184). For example, the control unit 152 may install data for the API and any other software in the memory of the control unit 152.
[0057] The control unit 152 then may execute the API and other software to authorize the hardware component to have secure access to network device resources such as a register 154, an I2C bus, or SPI (236). The control unit 152 may also determine the network device configuration of the router 150 (238) and adjust the hardware component according to the network device configuration (240). For example, the control unit 152 may configure the power management function of the third-party hardware component according to the power management configuration of the router 150. As an example, if the router 150 is configured to operate in a low-power mode, the control unit 152 may reduce the amount of power used to drive an optical transmitter (e.g., a laser) of the third-party optical unit according to the configuration of the router 150.
[0058] In this way, Figure 4 the method represents an example of a method that includes a network device receiving a hardware component that has been coupled to the network device; the network device receiving data for an application programming interface (API) for the hardware component; and the network device executing the API for the hardware component to authorize the hardware component to have secure access to the hardware resources of the network device via the API.
[0059] The techniques described in this disclosure may be implemented, at least in part, in hardware, software, firmware, or any combination thereof. For example, aspects of the described techniques may be implemented in one or more processors, including one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or any other equivalent integrated or discrete logic circuitry, as well as any combination of such components. The term "processor" or "processing circuitry" generally may refer to any of the foregoing logic circuitry, alone or in combination with other logic circuitry or any other equivalent circuitry. A control unit that includes hardware may also perform one or more of the techniques of this disclosure.
[0060] Such hardware, software, and firmware can be implemented within the same device or in separate devices to support the various operations and functions described in this disclosure. Additionally, any of the described units, modules, or components can be implemented together or separately as discrete but interoperable logical devices. The description of the different functions of the modules or units is intended to highlight different functional aspects and does not necessarily imply that such modules or units must be implemented by separate hardware or software components. Instead, the functions associated with one or more modules or units can be performed by separate hardware or software components or integrated within common or separate hardware or software components.
[0061] The techniques described in this disclosure can also be implemented or encoded in a computer-readable medium (e.g., a computer-readable storage medium) that contains instructions. The instructions embedded or encoded in the computer-readable medium can cause a programmable processor or other processor to perform the method when the instructions are executed. The computer-readable medium can include non-transitory computer-readable storage media and transient communication media. The computer-readable storage medium is tangible and non-transitory and can include random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electronically erasable programmable read-only memory (EEPROM), flash memory, a hard disk, a CD-ROM, a floppy disk, a cassette tape, magnetic media, optical media, or other computer-readable storage media. It should be understood that the term "computer-readable storage medium" refers to a physical storage medium and not a signal, carrier, or other transient medium.
[0062] Various examples have been described. These and other examples are within the scope of the appended claims.
Claims
1. A method for communication, comprising: The network device receives a hardware component that has been coupled to the network device, the network device having been manufactured by a manufacturer and the hardware component having been developed by a third-party developer different from the manufacturer; The network device receives data for an application programming interface (API) for the hardware component; The network device executes the application programming interface for the hardware component to: Tune the hardware component to the network device according to the configuration of the network device; Tune parameters of the network device for optimal operation of software controlling the hardware, and Authorize secure access by the hardware component to the hardware resources of the network device through the application programming interface.
2. The method according to claim 1, wherein, Executing the data for the application programming interface includes authorizing the hardware component to access the raw registers of the network device, the I2C bus of the network device, or the Serial Peripheral Interface (SPI) of the network device.
3. The method according to claim 1, wherein, Executing the data for the application programming interface includes providing two-way communication between the network device and the hardware component via the application programming interface.
4. The method according to any one of claims 1 to 3, further comprising tuning the hardware component to the network device according to the configuration of the network device.
5. The method according to claim 4, wherein, Tuning the hardware component includes: Determining a power management configuration for the network device; and Adjusting the power consumption configuration of the hardware component to conform to the power management configuration of the network device.
6. The method according to claim 1, wherein, The hardware component includes one of a hardware security component, a hardware Ethernet network interface, a hardware line card, or a hardware optical network interface.
7. A network device, comprising: One or more hardware resources; A physical interface for receiving the hardware component; A memory; And One or more processors, implemented in circuitry and configured to: Receive the hardware component that has been coupled to the physical interface of the network device, the network device having been manufactured by a manufacturer and the hardware component having been developed by a third-party developer different from the manufacturer; Receive data for an application programming interface (API) for the hardware component; Store the data for the application programming interface in the memory; Execute the data for the application programming interface to: Tune the hardware component to the network device according to the configuration of the network device; Tune parameters of the network device for optimal operation of software controlling the hardware, and Authorize secure access by the hardware component to the hardware resources of the network device through the application programming interface.
8. The device according to claim 7, wherein, The one or more hardware resources include one or more raw registers, an I2C bus, or a Serial Peripheral Interface (SPI), and wherein the one or more processors are configured to execute the data for the application programming interface to authorize secure access by the hardware component to the raw registers, the I2C bus, or the Serial Peripheral Interface.
9. The device according to claim 7, wherein, The one or more processors are configured to execute the data for the application programming interface to provide two-way communication between the network device and the hardware component via the application programming interface.
10. The device according to any one of claims 7 to 9, wherein, The memory is configured to store configuration data for the network device, and wherein the one or more processors are configured to tune the hardware component to the network device according to the configuration data.
11. The device according to claim 10, wherein, The configuration data defines a power management configuration for the network device, and wherein the one or more processors are configured to adjust a power consumption configuration of the hardware component to conform to the power management configuration for the network device.
12. The apparatus according to claim 7, wherein, The hardware component includes one of a hardware security component, a hardware Ethernet network interface, a hardware line card, or a hardware optical network interface.
13. A computer-readable storage medium encoded with instructions for causing one or more processors to perform the method according to any one of claims 1 to 6.
Citation Information
Patent Citations
Resilient management of resource utilization
US20190273754A1
System and Method for using Signal Waveform Analysis for Detecting a Change in a Wired Network
US20190385057A1