Patent Description:
Unless otherwise indicated in the present disclosure, the materials described in the present disclosure are not prior art to the claims in the present application and are not admitted to be prior art by inclusion in this section.

A local area network (LAN) may include a device configured to communicate with another device within the LAN. In addition, the device may be configured to communicate with a remote device via a wide area network (WAN). The device may transfer data within the LAN or via the WAN in accordance with a named data network (NDN) protocol. The NDN protocol may permit the device to identify routes for transferring the data using named function networking. Document <CIT> discloses systems and techniques for dynamic computation in an information centric network (ICN). An interest packet to perform a computation may be received at a first interface of an ICN node. The ICN node may then perform a lookup in a forwarding information database (FIB) to identify a second interface. The interest packet may be forwarded on the second interface. Upon receipt of a data packet on the second interface in response to the interest packet, the ICN node may update an entry in the FIB for the second interfaces with a processing payload included in the data packet. The ICN node may then transmit the data packet downstream towards the originator of the interest packet. Document <CIT> discloses systems, methods and computer-readable for load distribution amongst smart network interface cards (sNICs) connected to a host device including a controller. The controller can instantiate an agent in the host device to obtain telemetry information pertaining to the sNICs, where the sNICs can be used for communication between the host device and upstream devices in a software-defined network. The telemetry information indicates service offloading capabilities of the sNICs. The controller may also obtain network topology information pertaining to at least the host device, the sNICs and the upstream devices, and determine load distribution policies for the sNICs based on the network topology information and the telemetry information. The controller can provide the load distribution policies to the one or more upstream devices, where the load distribution policies take into account the service offload capabilities of the sNICs.

This background is only provided to illustrate one example technology area where some aspects described in the present disclosure may be practiced.

According to the present disclosure, a device according to claim <NUM> and a non-transitory computer-readable medium for performing or controlling performance of operations according to claim <NUM> are provided. Additional aspects of the device and of the non-transitory computer-readable medium are provided in the respective dependent claims.

The following examples pertain to various aspects of this disclosure.

A device including a processor including an NFD module configured to identify an accelerator of a plurality of accelerators within the device on which to configure an offloaded NFD module based on a configuration table indicating a current configuration of the plurality of accelerators; configure the offloaded NFD module on the identified accelerator; receive an interest packet including a workload request, the interest packet configured according to an NDN protocol; determine that the offloaded NFD module is configured to perform the workload request using the identified accelerator based on the configuration table; and offload, via an application programming interface, the workload request to the offloaded NFD module to perform the workload request using the identified accelerator. The features mentioned in this paragraph provide a first example.

The configuration table may further indicate at least one of a memory speed, a specialized hardware capability, a cache use, a high-speed link interface, a cache content, an interest forwarding, a compute capability, and a name resolution of each accelerator of the plurality of accelerators. The features mentioned in this paragraph in combination with the first example provide a second example.

The NFD module may further be configured to configure the offloaded NFD module to perform an offloaded function of the NFD module; and the NFD module may further be configured to determine that the offloaded NFD module is configured to perform the workload request by determining that the workload request corresponds to the offloaded function of the NFD module. The features mentioned in this paragraph in combination with the first example provide a third example.

The processor may further be configured to: initialize the plurality of accelerators; and configure the NFD module within the processor, the NFD module including the configuration table. The features mentioned in this paragraph in combination with the first example provide a fourth example.

The NFD module may further be configured to: provide internal telemetry data to an external device, the internal telemetry data indicating a processing capability and a storage capability of each accelerator of the plurality of accelerators; receive external telemetry data from the external device, the external telemetry data indicating a processing capability and a storage capability of an external accelerator including an external NFD module within the external device; and update the configuration table based on the external telemetry data, the updated configuration table including the internal telemetry data and the external telemetry data. The features mentioned in this paragraph in combination with the first example provide a fifth example.

The NFD module may further be configured to identify the external accelerator based on the external telemetry data; and the internal telemetry data may include data indicating at least one of a pending interest table, a routing information base, a content store, an amount of traffic, and a request to the content store corresponding to the plurality of accelerators. The features mentioned in this paragraph in combination with the fifth example provide a sixth example.

The interest packet may further include a first interest packet, the workload request may include a first workload request, the offloaded NFD module may include a first offloaded NFD module, and the identified accelerator may include a first identified accelerator, the NFD module may further be configured to: receive a second interest packet including a second workload request, the second interest packet may be configured according to the NDN protocol; identify the external NFD module of the external accelerator within the external device as being configured to perform the second workload request based on the updated configuration table; and offload the second workload request to the external NFD module to perform the second workload request using the external accelerator. The features mentioned in this paragraph in combination with the fifth example provide a seventh example.

The interest packet may include a first interest packet, the workload request may include a first workload request, the offloaded NFD module may include a first offloaded NFD module, and the identified accelerator includes a first identified accelerator, the NFD module may further be configured to: identify a second accelerator of the plurality of accelerators within the device on which to configure a second offloaded NFD module based on the configuration table; configure the second offloaded NFD module on the second identified accelerator; update the configuration table based on the second identified accelerator and the second offloaded NFD module; receive a second interest packet including a second workload request; determine that the second offloaded NFD module is configured to perform the second workload request using the second identified accelerator based on the updated configuration table; and offload, via the application programming interface, the second workload request to the second offloaded NFD module to perform the second workload request using the second identified accelerator. The features mentioned in this paragraph in combination with the first example provide an eighth example.

The plurality of accelerators may include at least two of a cross-architecture processing unit, a field programmable gate array, an application-specific integrated circuit, a general processing unit, and a centralized processing unit. The features mentioned in this paragraph in combination with the first example provide a ninth example.

The processor may be configured to initialize a plurality of interfaces including at least one of a peripheral component interconnect express interface, a transmission control protocol/Internet protocol overlay tunnel, an inter-process communication interface, an Ethernet interface, and a wireless fidelity interface. The features mentioned in this paragraph in combination with the first example provide a tenth example.

The device may further include a memory storing instructions on which, when executed by the processor, configure the processor. The features mentioned in this paragraph in combination with the first example provide an eleventh example.

The NFD module may be configured to: identify an accelerator of the plurality of accelerators within the device on which to configure an offloaded NFD module based on a configuration table indicating a current configuration of the plurality of accelerators; configure the offloaded NFD module on the identified accelerator; receive an interest packet including a workload request, the interest packet configured according to an NDN protocol; determine that the offloaded NFD module is not configured to perform the workload request using the identified accelerator based on the configuration table; determine that a different NFD module is configured to perform the workload request using a corresponding accelerator based on the configuration table; and offload, via an interface, the workload request to the different NFD module to perform the workload request using the corresponding accelerator. The features mentioned in this paragraph in combination with the first example provide a twelfth example.

The offloaded NFD module may include a first offloaded NFD module and the identified accelerator may include a first identified accelerator, the NFD module may further be configured to: identify a second accelerator of the plurality of accelerators within the device on which to configure a second offloaded NFD module based on the configuration table; configure the second offloaded NFD module on the second identified accelerator; update the configuration table based on the second identified accelerator and the second offloaded NFD module; and determine that the second offloaded NFD module is configured to perform the workload request using the second identified accelerator based on the updated configuration table, wherein the second offloaded NFD module includes the different NFD module and the interface includes an application programming interface. The features mentioned in this paragraph in combination with the twelfth example provide a thirteenth example.

The NFD module may further be configured to: provide internal telemetry data to an external device, the internal telemetry data indicating a processing capability and a storage capability of each accelerator of the plurality of accelerators; receive external telemetry data from the external device, the external telemetry data indicating a processing capability and a storage capability of an external accelerator including an external NFD module within the external device; and update the configuration table based on the external telemetry data, the updated configuration table including the internal telemetry data and the external telemetry data. The features mentioned in this paragraph in combination with the twelfth example provide a fourteenth example.

The NFD module may further be configured to identify the external accelerator based on the external telemetry data; and the internal telemetry data may include data indicating at least one of a pending interest table, a routing information base, a content store, an amount of traffic, and a request to the content store corresponding to the plurality of accelerators. The features mentioned in this paragraph in combination with the fourteenth example provide a fifteenth example.

The NFD module may further be configured to: identify the external NFD module of the external accelerator within the external device as being configured to perform the workload request based on the updated configuration table, wherein the external NFD module includes the different NFD module. The features mentioned in this paragraph in combination with the fourteenth example provide a sixteenth example.

The device may further include a memory storing instructions on which, when executed by the processor, configure the processor. The features mentioned in this paragraph in combination with the twelfth example provide a seventeenth example.

A non-transitory computer-readable medium having a memory having computer-readable instructions stored thereon and a processor operatively coupled to the memory and configured to read and execute the computer-readable instructions to perform or control performance of operations including: identifying an accelerator of a plurality of accelerators on which to configure an offloaded NFD module based on a configuration table indicating a current configuration of the plurality of accelerators; configuring the offloaded NFD module on the identified accelerator; receiving an interest packet including a workload request, the interest packet configured according to an NDN protocol; determining that the offloaded NFD module is configured to perform the workload request using the identified accelerator based on the configuration table; and offloading, via an application programming interface, the workload request to the offloaded NFD module to perform the workload request using the identified accelerator.

The features mentioned in this paragraph provide an eighteenth example.

The configuration table may indicate at least one of a memory speed, a specialized hardware capability, a cache use, a high-speed link interface, a cache content, an interest forwarding, a compute capability, and a name resolution of each accelerator of the plurality of accelerators. The features mentioned in this paragraph in combination with the eighteenth example provide a nineteenth example.

The offloaded NFD module may be configured to perform an offloaded function of an NFD module; and the operations further include determining that the offloaded NFD module may be configured to perform the workload request by determining that the workload request corresponds to the offloaded function of the NFD module. The features mentioned in this paragraph in combination with the eighteenth example provide a twentieth example.

The operations may further include: initializing the plurality of accelerators; and configuring an NFD module within the processor, the NFD module including the configuration table. The features mentioned in this paragraph in combination with the eighteenth example provide a twenty-first example.

The operations may further include: providing internal telemetry data to an external device, the internal telemetry data indicating a processing capability and a storage capability of each accelerator of the plurality of accelerators; receiving external telemetry data from the external device, the external telemetry data indicating a processing capability and a storage capability of an external accelerator including an external NFD module within the external device; and updating the configuration table based on the external telemetry data, the updated configuration table including the internal telemetry data and the external telemetry data. The features mentioned in this paragraph in combination with the eighteenth example provide a twenty-second example.

The operations may further include: identifying the external accelerator based on the external telemetry data; and the internal telemetry data may include data indicating at least one of a pending interest table, a routing information base, a content store, an amount of traffic, and a request to the content store corresponding to the plurality of accelerators. The features mentioned in this paragraph in combination with the twenty-second example provide a twenty-third example.

The interest packet may include a first interest packet, the workload request may include a first workload request, the offloaded NFD module may include a first offloaded NFD module, and the identified accelerator may include a first identified accelerator, and the operations may further include: receiving a second interest packet including a second workload request, the second interest packet configured according to the NDN protocol; identifying the external NFD module of the external accelerator within the external device as being configured to perform the second workload request based on the updated configuration table; and offloading the second workload request to the external NFD module to perform the second workload request using the external accelerator. The features mentioned in this paragraph in combination with the twenty-second example provide a twenty-fourth example.

The interest packet may include a first interest packet, the workload request may include a first workload request, the offloaded NFD module may include a first offloaded NFD module, and the identified accelerator may include a first identified accelerator, and the operations may further include: identifying a second accelerator of the plurality of accelerators on which to configure a second offloaded NFD module based on the configuration table; configuring the second offloaded NFD module on the second identified accelerator; updating the configuration table based on the second identified accelerator and the second offloaded NFD module; receiving a second interest packet including a second workload request; determining that the second offloaded NFD module is configured to perform the second workload request using the second identified accelerator based on the updated configuration table; and offloading, via the application programming interface, the second workload request to the second offloaded NFD module to perform the second workload request using the second identified accelerator. The features mentioned in this paragraph in combination with the eighteenth example provide a twenty-fifth example.

The plurality of accelerators may include at least two of a cross-architecture processing unit, a field programmable gate array, an application-specific integrated circuit, a general processing unit, and a centralized processing unit. The features mentioned in this paragraph in combination with the eighteenth example provide a twenty-sixth example.

The operations may further include initializing a plurality of interfaces including at least one of a peripheral component interconnect express interface, a transmission control protocol/Internet protocol overlay tunnel, an inter-process communication interface, an Ethernet interface, and a wireless fidelity interface. The features mentioned in this paragraph in combination with the eighteenth example provide a twenty-seventh example.

A non-transitory computer-readable medium may have a memory having computer-readable instructions stored thereon, a plurality of accelerators, and a processor operatively coupled to the memory and configured to read and execute the computer-readable instructions to perform or control performance of operations including: identifying an accelerator of the plurality of accelerators on which to configure an offloaded NFD module based on a configuration table indicating a current configuration of the plurality of accelerators; configuring the offloaded NFD module on the identified accelerator to perform a first offloaded function of an NFD module; receiving an interest packet including a workload request, the interest packet configured according to an NDN protocol; determining that the offloaded NFD module is not configured to perform the workload request using the identified accelerator based on the configuration table; determining that a different NFD module is configured to perform the workload request using a corresponding accelerator based on the configuration table; and offloading, via an interface, the workload request to the different NFD module to perform the workload request using the corresponding accelerator. The features mentioned in this paragraph provide a twenty eighth example.

The offloaded NFD module may include a first offloaded NFD module and the identified accelerator may include a first identified accelerator, the operations may further include: identifying a second accelerator of the plurality of accelerators on which to configure a second offloaded NFD module based on the configuration table; configuring the second offloaded NFD module on the second identified accelerator; updating the configuration table based on the second identified accelerator and the second offloaded NFD module; and determining that the second offloaded NFD module is configured to perform the workload request using the second identified accelerator based on the updated configuration table, wherein the second offloaded NFD module includes the different NFD module and the interface includes an application programming interface. The features mentioned in this paragraph in combination with the twenty-eighth example provide a twenty-ninth example.

The operations may further include: providing internal telemetry data to an external device, the internal telemetry data indicating a processing capability and a storage capability of each accelerator of the plurality of accelerators; receiving external telemetry data from the external device, the external telemetry data indicating a processing capability and a storage capability of an external accelerator including an external NFD module within the external device; and updating the configuration table based on the external telemetry data, the updated configuration table including the internal telemetry data and the external telemetry data. The features mentioned in this paragraph in combination with the twenty-eighth example provide a thirtieth example.

The operations may further include identifying the external accelerator based on the external telemetry data; and the internal telemetry data may include data indicating at least one of a pending interest table, a routing information base, a content store, an amount of traffic, and a request to the content store corresponding to the plurality of accelerators. The features mentioned in this paragraph in combination with the thirtieth example provide a thirty-first example.

The operations may further include identifying the external NFD module of the external accelerator within the external device as being configured to perform the workload request based on the updated configuration table, wherein the external NFD module includes the different NFD module. The features mentioned in this paragraph in combination with the thirtieth example provide a thirty-second example.

A system may include: means to identify an accelerator of a plurality of accelerators on which to configure an offloaded NFD module based on a configuration table indicating a current configuration of the plurality of accelerators; means to configure the offloaded NFD module on the identified accelerator to perform a first offloaded function of the NFD module; means to receive an interest packet including a workload request, the interest packet configured according to an NDN protocol; means to determine that the offloaded NFD module is configured to perform the workload request using the identified accelerator based on the configuration table; and means to offload, via an application programming interface, the workload request to the offloaded NFD module to perform the workload request using the identified accelerator. The features mentioned in this paragraph provide a thirty-third example.

The system may further include means to initialize the plurality of accelerators; and configure the NFD module within the processor, the NFD module including the configuration table. The features mentioned in this paragraph in combination with the thirty-third example provide a thirty-fourth example.

The system may further include means to provide internal telemetry data to an external device, the internal telemetry data indicating a processing capability and a storage capability of each accelerator of the plurality of accelerators; means to receive external telemetry data from the external device, the external telemetry data indicating a processing capability and a storage capability of an external accelerator including an external NFD module within the external device; and means to update the configuration table based on the external telemetry data, the updated configuration table including the internal telemetry data and the external telemetry data. The features mentioned in this paragraph in combination with the thirty-third example provide a thirty-fifth example.

The interest packet may include a first interest packet, the workload request may include a first workload request, the offloaded NFD module may include a first offloaded NFD module, and the identified accelerator may include a first identified accelerator, the system may further include: means to receive a second interest packet including a second workload request, the second interest packet configured according to the NDN protocol; means to identify the external NFD module of the external accelerator within the external device as being configured to perform the second workload request based on the updated configuration table; and means to offload the second workload request to the external NFD module to perform the second workload request using the external accelerator. The features mentioned in this paragraph in combination with the thirty-fifth example provide a thirty-sixth example.

The interest packet may include a first interest packet, the workload request may include a first workload request, the offloaded NFD module may include a first offloaded NFD module, and the identified accelerator may include a first identified accelerator, the system may further include: means to identify a second accelerator of the plurality of accelerators on which to configure a second offloaded NFD module based on the configuration table; means to configure the second offloaded NFD module on the second identified accelerator; means to update the configuration table based on the second identified accelerator and the second offloaded NFD module; means to receive a second interest packet including a second workload request; means to determine that the second offloaded NFD module is configured to perform the second workload request using the second identified accelerator based on the updated configuration table; and means to offload, via the application programming interface, the second workload request to the second offloaded NFD module to perform the second workload request using the second identified accelerator. The features mentioned in this paragraph in combination with the thirty-third example provide a thirty-seventh example.

A system may include: means to identify an accelerator of a plurality of accelerators on which to configure an offloaded NFD module based on a configuration table indicating a current configuration of the plurality of accelerators; means to configure the offloaded NFD module on the identified accelerator to perform a first offloaded function of the NFD module; means to receive an interest packet including a workload request, the interest packet configured according to an NDN protocol; means to determine that the offloaded NFD module is not configured to perform the workload request using the identified accelerator based on the configuration table; means to determine that a different NFD module is configured to perform the workload request using a corresponding accelerator based on the configuration table; and means to offload, via an interface, the workload request to the different NFD module to perform the workload request using the corresponding accelerator. The features mentioned in this paragraph provide a thirty-eighth example.

The offloaded NFD module may include a first offloaded NFD module and the identified accelerator includes a first identified accelerator, the system may further include: means to identify a second accelerator of the plurality of accelerators within the device on which to configure a second offloaded NFD module based on the configuration table; means to configure the second offloaded NFD module on the second identified accelerator; means to update the configuration table based on the second identified accelerator and the second offloaded NFD module; and means to determine that the second offloaded NFD module is configured to perform the workload request using the second identified accelerator based on the updated configuration table, wherein the second offloaded NFD module includes the different NFD module and the interface includes an application programming interface. The features mentioned in this paragraph in combination with the thirty-eighth example provide a thirty-ninth example.

The system may further include: means to provide internal telemetry data to an external device, the internal telemetry data indicating a processing capability and a storage capability of each accelerator of the plurality of accelerators; means to receive external telemetry data from the external device, the external telemetry data indicating a processing capability and a storage capability of an external accelerator including an external NFD module within the external device; and means to update the configuration table based on the external telemetry data, the updated configuration table including the internal telemetry data and the external telemetry data. The features mentioned in this paragraph in combination with the thirty-eighth example provide a fortieth example.

The system may further include means to identify the external NFD module of the external accelerator within the external device as being configured to perform the workload request based on the updated configuration table, wherein the external NFD module includes the different NFD module. The features mentioned in this paragraph in combination with the fortieth example provide a forty-first example.

Example aspects will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:.

A LAN may include a device (e.g., a host device) configured to communicate with another device within the LAN. In addition, the device may be configured to communicate with a remote device via a WAN (e.g., the Internet). The device may transfer data within the device, within the LAN, or via the WAN in accordance with an NDN protocol. The device may include a modular build to implement the NDN protocol in different network types (e.g., a fifth-generation network or a wireless fidelity (Wi-Fi) network). The LAN may be implemented in a automation system (e.g., industrial automation system), an edge network, or some combination thereof.

The NDN protocol may permit the device to identify routes for transferring the data using named function networking (NFN) (e.g., based on an associated content name). The device may include an NDN forwarding daemon (NFD) module that identifies potential routes to transfer the data based on the associated content name rather than an associated Internet protocol (IP) address. The NFD module may identify associations between a content name of the data and an interface (e.g., a face) over which the data is received. The interfaces may include a peripheral component interconnect express (PCI-E) interface, a transmission control protocol/Internet protocol (TCP/IP) overlay tunnel, an inter-process communication (IPC) interface, an Ethernet interface, an application programming interface (API), a Wi-Fi interface, a modem interface (e.g., physical network interfaces), or some combination thereof.

The device may perform a workload request (e.g., a function) in accordance with the NDN protocol. For example, the device may perform an IP pipeline function, a content caching function, an onboard forwarding strategy function, or some combination thereof in accordance with the NDN protocol.

In some NFD technologies, the NFD module may be implemented in a core accelerator (e.g., a central processor unit (CPU) or a core processor). In these NFD technologies, the NFD module may perform a workload request using only the core accelerator. In these NFD technologies, the NFD module may perform the workload request without considering capabilities of the core accelerator, other accelerators, or some combination thereof. Therefore, the NFD module may perform the workload request using only the core accelerator and may not offload the workload request to the other accelerators (e.g., a first accelerator within the device, a second accelerator within the device, an external accelerator within an external device, or a remote NFD module within a remote device (collectively referred to in the present disclosure as "other accelerators")). The core accelerator and the other accelerators may include a cross-architecture processing unit (xPU), a field programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a general processing unit (GPU), and a different CPU.

One or more aspect described in the present disclosure may include an NFD module configured to offload the workload request to the other accelerators based on capabilities of the core accelerator, the other accelerators, or some combination thereof. The NFD module may offload performance of the workload request to the first accelerator or the second accelerator using the API. The NFD module may offload performance of the workload request to the external accelerator or the remote NFD module using a different interface. The other accelerators may perform the offloaded workload request, which may increase efficiency of the device compared the core accelerator always performing the workload request.

A device may include a processor that includes the NFD module. The device may include multiple accelerators. The NFD module may identify a first accelerator within the device on which to configure a first offloaded NFD module. The NFD module may identify the first accelerator based on a configuration table indicating a current configuration of the accelerators within the device. The NFD module may also configure the first offloaded NFD module on the first accelerator.

The NFD module may receive an interest packet that includes a workload request. The interest packet may be configured according to the NDN protocol. The NFD module may also determine that the first offloaded NFD module is configured to perform the workload request using the first accelerator. The NFD module may use the configuration table to determine that the first offloaded NFD module is configured to perform the workload request. In addition, the NFD module may offload, via the API, the workload request to the first offloaded NFD module. The first offloaded NFD module may perform the workload request using the corresponding accelerator.

Alternatively, the NFD module may determine that the first offloaded NFD module is not configured to perform the workload request based on the configuration table. The NFD module may determine that a different NFD module is configured to perform the workload request using a corresponding accelerator based on the configuration table. The NFD module may offload, via an interface, the workload request to the different NFD module. The different NFD module may perform the workload request using the corresponding accelerator. The different NFD module may include an external NFD module within an external device or a remote NFD module within a remote device.

The NFD module offloading the workload request to one of the other accelerators may increase a memory speed, reduce processing time, reduce transmission time, reduce power consumption of the device, or some combination thereof to perform the workload request compared to the core accelerator always performing the workload request. For example, the NFD module may increase the memory speed using a specialized lookup cache (e.g., the configuration table) to perform string matching operations. As another example, the NFD module may increase the transmission speed using a different interface rather than just the PCI-E interface. The NFD module offloading the workload request to one of the other accelerators may also permit the NFD module to offload a caching content function, an interest forwarding function, or a name resolution function considering hardware capabilities of the core accelerator and the other accelerators.

These and other aspects of the present disclosure will be explained with reference to the accompanying figures. It is to be understood that the figures are diagrammatic and schematic representations of such example aspects, and are not limiting, nor are they necessarily drawn to scale. In the figures, features with like numbers indicate like structure and function unless described otherwise.

<FIG> illustrates a block diagram of an exemplary operational environment <NUM> to offload a workload request within a LAN <NUM> or a WAN <NUM>, in accordance with at least one aspect described in the present disclosure. The operational environment <NUM> may include the LAN <NUM> and the WAN <NUM>. The LAN <NUM> may include a device <NUM> and an external device <NUM>. The WAN <NUM> may include a network <NUM> (e.g., the Internet) and a remote device <NUM>. In addition, the WAN <NUM> may include the device <NUM>, the external device <NUM>, or some combination thereof.

The device <NUM> may include a core accelerator <NUM>, a first accelerator <NUM>, a second accelerator <NUM>, and a memory <NUM>. The core accelerator <NUM> may include an NFD module <NUM> that is communicatively coupled to the first accelerator <NUM> and the second accelerator <NUM>. The NFD module <NUM> may be communicatively coupled to the first accelerator <NUM> and the second accelerator <NUM> via an API. The NFD module <NUM> may also be communicatively coupled to an external accelerator <NUM> within the external device <NUM>. The core accelerator <NUM>, the first accelerator <NUM>, the second accelerator <NUM>, and the external accelerator <NUM> may each include an xPU, an FPGA, an ASIC, a GPU, or a CPU.

The NFD module <NUM> may be communicatively coupled to the remote device <NUM> via the network <NUM>. The NFD module <NUM> may be communicatively coupled to the first accelerator <NUM>, the second accelerator <NUM>, the external accelerator <NUM>, and the remote device <NUM> via a PCI-E interface, a TCP/IP overlay tunnel, an IPC interface, an Ethernet interface, the API, a Wi-Fi interface, a modem interface (e.g., physical network interfaces), or some combination thereof.

The NFD module <NUM> may include code and routines configured to enable the core accelerator <NUM> to perform one or more operations with respect to offloading the workload request. Additionally or alternatively, the NFD module <NUM> may be implemented using hardware including a processor, a microprocessor (e.g., to perform or control performance of one or more operations), an FPGA, an ASIC, or any other appropriate accelerator. The NFD module <NUM> may be implemented using a combination of hardware and software.

The memory <NUM> may store data being processed by the NFD module <NUM>, the first accelerator <NUM>, the second accelerator <NUM>, or some combination thereof. In addition, the memory <NUM> may store a configuration table, internal telemetry data, a pending interest table, a routing information base (RIB), a content store (CS), data indicating an amount of traffic, and a request to the CS, or other data to permit the NFD module <NUM>, the first accelerator <NUM>, or the second accelerator <NUM> to perform the operations described in the present disclosure.

The NFD module <NUM> may identify the first accelerator <NUM> for configuration of a first offloaded NFD module <NUM>. The NFD module <NUM> may identify the first accelerator <NUM> based on the configuration table. The configuration table may indicate a current configuration of the core accelerator <NUM>, the first accelerator <NUM>, and the second accelerator. The NFD module <NUM> may also identify the second accelerator <NUM> for configuration of a second offloaded NFD module <NUM>. The NFD module <NUM> may configure the first offloaded NFD module <NUM> on the first accelerator <NUM> and the second offloaded NFD module on the second accelerator <NUM>. The NFD module <NUM> may configure the first offloaded NFD module <NUM> to perform a first offloaded function of the NFD module <NUM>. The NFD module <NUM> may configure the second offloaded NFD module <NUM> to perform a second offloaded function of the NFD module <NUM>.

The NFD module <NUM> may receive a first interest packet that includes a first workload request. The first interest packet may be configured according to the NDN protocol. The NFD module <NUM> may receive the first interest packet from the external device <NUM> or another device (not illustrated in <FIG>) within the LAN <NUM>.

An example in which the NFD module <NUM> determines that the first offloaded NFD module <NUM> is configured to perform the first workload request using the first accelerator <NUM> is now described. The NFD module <NUM> may determine that the first offloaded NFD module <NUM> is configured to perform the first workload request based on the configuration table. The NFD module <NUM> may also offload, via the API, the first workload request to the first offloaded NFD module <NUM>. The first offloaded NFD module <NUM> may perform the first workload request using the first accelerator <NUM>.

An example in which the NFD module <NUM> determines that the first offloaded NFD module <NUM> is not configured to perform the first workload request, but that the second offloaded NFD module <NUM> is configured to perform the first workload request using the second accelerator <NUM> is now described. The NFD module <NUM> may determine that the second offloaded NFD module <NUM> is configured to perform the first workload request based on the configuration table. The NFD module <NUM> may also offload, via the API, the first workload request to the second offloaded NFD module <NUM>. The second offloaded NFD module <NUM> may perform the first workload request using the second accelerator <NUM>.

An example in which the NFD module <NUM> determines that the first offloaded NFD module <NUM> and the second offloaded NFD module <NUM> are not configured to perform the first workload request, but that a different NFD module is configured to perform the first workload request using a corresponding accelerator is now discussed. The NFD module <NUM> may determine that the different module is configured to perform the first workload request based on the configuration table. For example, the NFD module <NUM> may determine that an external NFD module <NUM> of the external accelerator <NUM> is configured to perform the first workload request using the external accelerator <NUM>. As yet another example, the NFD module <NUM> may determine that a remote NFD module <NUM> of the remote device <NUM> is configured to perform the first workload request using a remote accelerator (not illustrated in <FIG>) of the remote device <NUM>.

The NFD module <NUM> may offload, via an interface, the first workload request to the different NFD module. For example, the NFD module <NUM> may offload the first workload request to the external NFD module <NUM> via the TCP/IP overlay tunnel. As another example, the NFD module <NUM> may offload the first workload request to the remote NFD module <NUM> via the Wi-Fi interface and the Internet. The different NFD module may perform the first workload request using the corresponding accelerator.

The NFD module <NUM> may receive a second interest packet that includes a second workload request. The second interest packet may also be configured according to the NDN protocol. The NFD module <NUM> may receive the second interest packet from the external device <NUM> or another device (not illustrated in <FIG>) within the LAN <NUM>.

The NFD module <NUM> may determine that the first offloaded NFD module <NUM> is not configured to perform the second workload request. The NFD module <NUM> may determine that the first offloaded NFD module <NUM> is not configured to perform the second workload request based on the configuration table. The NFD module <NUM> may determine that the second offloaded NFD module <NUM> is configured to perform the second workload request using the second accelerator <NUM>. The NFD module <NUM> may determine that the second offloaded NFD module <NUM> is configured to perform the second workload request based on the configuration table. The NFD module <NUM> may offload, via the API, the second workload request to the second offloaded NFD module <NUM>. The second offloaded NFD module <NUM> may perform the second workload request using the second accelerator <NUM>.

The NFD module <NUM> may provide internal telemetry data to the external device <NUM>. The internal telemetry data may include NFD telemetry data. The external device <NUM> may update an external configuration table stored in the external device based on the internal telemetry data. The internal telemetry data may indicate a processing capability and a storage capability of the first accelerator <NUM> and the second accelerator <NUM>. In addition, the NFD module <NUM> may receive external telemetry data from the external device <NUM>. The external telemetry data may indicate a processing capability and a storage capability of the external accelerator <NUM>.

The NFD module <NUM> may update the configuration table based on the external telemetry data. The configuration table (e.g., an updated configuration table) may include the internal telemetry data and the external telemetry data. The NFD module <NUM> may identify the external NFD module <NUM> as being configured to perform the first workload request or the second workload request based on the updated configuration table.

<FIG> illustrates a block diagram of an exemplary layer configuration <NUM> that may be implemented in the core accelerator <NUM> of <FIG>, in accordance with at least one aspect described in the present disclosure. The layer configuration may include a first layer <NUM> and a second layer <NUM>.

The first layer <NUM> may include an NFD module <NUM>, which may correspond to the NFD module <NUM> of <FIG>. The NFD module <NUM> may access tables <NUM>, tools <NUM>, and routing information base (RIB) management <NUM>. The tables <NUM> may include the configuration table, a forwarding information base (FIB) table, a caching table, a pending interest table (PIT). The NFD module <NUM> may be communicatively coupled to different devices via interfaces <NUM>. The NFD module may include strategies <NUM> and a pipeline <NUM>. The strategies <NUM> may indicate a forwarding strategy for interest packets within the core accelerator <NUM>. The NFD module <NUM> may generate the strategies <NUM> based on the tables <NUM>, the interfaces <NUM>, the tools <NUM>, the RIB management <NUM>, or some combination thereof. The pipeline <NUM> may be configured to perform functions or operations for the NFD module <NUM>. The RIB management <NUM> may include routing protocols (e.g., a named-data link state routing protocol), applications for prefix registration, or some combination thereof. The tools <NUM> may include information associated with the API, the telemetry data, utilization information, or any other appropriate information.

The second layer <NUM> may include a telemetry module <NUM>, a management module <NUM>, and an offloading module <NUM>. The NFD module <NUM> may be communicatively coupled to the telemetry module <NUM> and the offloading module <NUM>. In addition, the management module <NUM> may be communicatively coupled to the telemetry module <NUM> and the offloading module <NUM>.

The NFD module <NUM> may obtain the internal telemetry data from the telemetry module <NUM>. Alternatively, the telemetry module <NUM> may determine the internal telemetry data based on information received from the NFD module <NUM>. The telemetry module <NUM> may determine whether an update interval (e.g., a period of time) has elapsed since a most recent update of the internal telemetry data or receipt of a most recent external telemetry data. The internal telemetry data or the external telemetry data may include information about a configuration of the PIT, a configuration of the RIB, a memory, an amount of the traffic, a request to a CS module (e.g., the memory), or some combination thereof.

The management module <NUM> may reason over the internal telemetry data, the external telemetry data, or some combination thereof. The management module <NUM> may improve operation of various components associated with the NFD module <NUM> using the internal telemetry data, the external telemetry data, or some combination thereof.

The management module <NUM> may adjust a length of time associated with the update interval. For example, the management module <NUM> may adjust the update the length of the update interval based on whether neighboring devices (e.g., neighboring nodes or base stations) is reduced, throughput of data is reduced, a rate of transmitting the internal telemetry data is reduced, or some combination thereof.

The offloading module <NUM> may expose accelerators <NUM> to the management module <NUM> or the NFD module <NUM>. The offloading module <NUM> may provide an API to the accelerators <NUM> using offloading libraries <NUM>, an operating system (OS) <NUM>, or some combination thereof. The offloading module <NUM> may permit the NFD module <NUM> to map the workload request to the accelerators <NUM> to permit the NFD module <NUM> to offload the workload request to the accelerators <NUM>.

<FIG> illustrates a block diagram of an exemplary operational environment <NUM> to wirelessly transmit telemetry data between base stations, in accordance with at least one aspect described in the present disclosure. The operational environment <NUM> may include a first base station/NFD module <NUM>, a second base station/NFD module <NUM>, and a third base station/NFD module <NUM>. First telemetry data <NUM> may be transmitted between the first base station/NFD module <NUM> and the second base station/NFD module <NUM> using any appropriate wireless interface. Second telemetry data <NUM> may be transmitted between the second base station/NFD module <NUM> and the third base station/NFD module <NUM> using any appropriate wireless interface. Third telemetry data <NUM> may be transmitted between the first base station/NFD module <NUM> and the third base station/NFD module <NUM> using any appropriate wireless interface.

The first telemetry data <NUM> may include internal telemetry data and external telemetry data corresponding to the first base station/NFD module <NUM> and the second base station/NFD module <NUM>. The second telemetry data <NUM> may include internal telemetry data and external telemetry data corresponding to the second base station/NFD module <NUM> and the third base station/NFD module <NUM>. The third telemetry data <NUM> may include internal telemetry data and external telemetry data corresponding to the first base station/NFD module <NUM> and the third base station/NFD module <NUM>. The third base station/NFD module <NUM> may include an accelerated NFD module.

<FIG> illustrates a flowchart of an exemplary method to offload functions to different accelerators using the NDN protocol, in accordance with at least one aspect described in the present disclosure. The method <NUM> may be performed by any suitable system, apparatus, or device with respect to offloading functions to different accelerators using an NDN protocol. For example, the device <NUM>, core accelerator <NUM>, the NFD module <NUM>, the first offloaded NFD module <NUM>, the first accelerator <NUM>, the external NFD module <NUM>, the telemetry module <NUM>, the offloading module <NUM>, or some combination thereof of <FIG> and <FIG> may perform or direct performance of one or more of the operations associated with the method <NUM>. The method <NUM> is described in relation to <FIG> as being performed by the device <NUM>, the core accelerator <NUM>, the NFD module <NUM>, the first offloaded NFD module <NUM>, the first accelerator <NUM>, the telemetry module <NUM>, the offloading module <NUM>, and the external NFD module <NUM> for example purposes. The method <NUM> may include one or more blocks <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. Although illustrated with discrete blocks, the operations associated with one or more of the blocks of the method <NUM> may be divided into additional blocks, combined into fewer blocks, or eliminated, depending on the particular implementation.

At block <NUM>, the system may boot. For example, the device <NUM> and the LAN <NUM> may go through a startup phase. Block <NUM> may be followed by block <NUM>. At block <NUM>, the device <NUM> may load drivers and firmware on the core processor <NUM>, the first accelerator <NUM>, or some combination thereof. The device <NUM> may load firmware to initialize the core accelerator <NUM>, the interfaces, and any other appropriate hardware and software within the device <NUM>. In addition, the device <NUM> may generate an accelerator database <NUM>. The accelerator database <NUM> may include the configuration table, the internal telemetry data, the external telemetry data, or some combination thereof. Block <NUM> may be followed by block <NUM> and <NUM>.

At block <NUM>, the device <NUM> may scan for available accelerators. For example, the device <NUM> may scan for the core accelerator <NUM>, the first accelerator <NUM>, and the second accelerator <NUM>, or some combination thereof. Block <NUM> may be followed by block <NUM>. At block <NUM>, the device <NUM> may configure the NFD module <NUM> in the core processor <NUM>. For example, the device <NUM> may load firmware on the core processor <NUM> to configure the NFD module <NUM>. Block <NUM> may be followed by block <NUM>.

At block <NUM>, the NFD module <NUM> may connect to an OS and configure an offloaded NFD module <NUM>. For example, the NFD module <NUM> may configure the first offloaded NFD module <NUM> in the first accelerator <NUM>. The NFD module <NUM> may configure the first offloaded NFD module <NUM> using the accelerator database. The NFD module <NUM> may configure functions that the first accelerator <NUM> is configured to perform. The NFD module <NUM> may configure the first accelerator <NUM> using OS functions. Block <NUM> may be followed by block <NUM>.

At block <NUM>, the NFD module <NUM> may discover nearby hosts. For example the NFD module <NUM> may discover the external device <NUM> as being within a proximity of the device <NUM>. The NFD module <NUM> may discover other devices within the LAN <NUM>. The NFD module <NUM> may generate an NFD host database <NUM> that identifies the external device <NUM> and includes the internal telemetry data, the external telemetry data, or some combination thereof. Block <NUM> may be followed by block <NUM>.

At block <NUM>, the NFD module <NUM> may send telemetry and offloading/processing capabilities to the external device <NUM>. The NFD module <NUM> may cause the telemetry module <NUM> to provide the internal telemetry data indicating the telemetry data and the offloading and processing capabilities of the first accelerator <NUM> to the external device <NUM>. For example, the telemetry module <NUM> may provide the NFD host database <NUM> to the external device <NUM>. Block <NUM> may be followed by block <NUM>. At block <NUM>, the NFD module <NUM> may set a timer for the telemetry data. For example, the NFD module <NUM> may instruct the telemetry module <NUM> to set a timer equal to the update interval. Block <NUM> may be followed by block <NUM>.

At block <NUM>, the NFD module <NUM> may determine whether there is a change in the network. The change in the network may include an interest packet being received by the device <NUM>. The interest packet may include a workload request that the NFD module <NUM> determines a setting is not achievable using the core processor <NUM>. For example, the NFD module <NUM> may determine a throughput setting of the workload request is not achievable using the core processor <NUM>. As another example, the NFD module <NUM> may determine a cache setting of the workload request is not achievable using the core processor <NUM>. If a change in the network has not occurred, block <NUM> may be followed by block <NUM>. Therefore, each time the update interval elapses without a change in the network occurring, the NFD module <NUM> may send the internal telemetry data to the external device <NUM>. If a change in the network has occurred, block <NUM> may be followed by block <NUM>.

At block <NUM>, the NFD module may run the offloading module <NUM>. The offloading module may reason over possible configurations and offloading configurations using the configuration table to make the setting of the workload request achievable. Block <NUM> may be followed by block <NUM>.

At block <NUM>, the NFD module <NUM> may determine whether a result is found. For example, the NFD module <NUM> may determine whether the first offloaded NFD module is configured to perform the workload request. If the NFD module <NUM> finds a result, block <NUM> may be followed by block <NUM>. If the NFD module <NUM> does not find a result, block <NUM> may be followed by block <NUM>.

At block <NUM>, the NFD module <NUM> may update an NFD configuration. For example, the NFD module <NUM> may update the configuration table to indicate that the first offloaded NFD module <NUM> is configured to perform the workload request. Block <NUM> may be followed by block <NUM>. At block <NUM>, the NFD module <NUM> may configure the first accelerator <NUM> to perform the workload request. The first offloaded NFD module <NUM> may perform the workload request using the first accelerator <NUM>.

At block <NUM>, the NFD module <NUM> may send a request for a remote offload. For example, the NFD module <NUM> may send a request for a remote offload to the external NFD module <NUM> or the remote NFD module <NUM>. Block <NUM> may be followed by block <NUM>. At block <NUM>, the NFD module <NUM> may request a remote configuration change. The NFD module <NUM> may send a message to the external device <NUM> or the remote device <NUM> requesting an update to the external telemetry data. The external NFD module <NUM> or the remote NFD module <NUM> may perform the workload request using the corresponding accelerators.

Modifications, additions, or omissions may be made to the method <NUM> without departing from the scope of the present disclosure. For example, the operations of method <NUM> may be implemented in differing order. Additionally or alternatively, two or more operations may be performed at the same time. Furthermore, the outlined operations and actions are only provided as examples, and some of the operations and actions may be optional, combined into fewer operations and actions, or expanded into additional operations and actions without detracting from the essence of the described aspects.

<FIG> illustrates a flowchart of an exemplary method <NUM> to offload functions to different accelerators using the NDN protocol, in accordance with at least one aspect described in the present disclosure. The method <NUM> may be performed by any suitable system, apparatus, or device with respect to offloading functions to different accelerators using the NDN protocol. For example, the device <NUM>, the NFD module <NUM>, or some combination thereof of <FIG> may perform or direct performance of one or more of the operations associated with the method <NUM>. The method <NUM> is described in relation to <FIG> as being performed by the NFD module <NUM> for example purposes The method <NUM> may include one or more blocks <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. Although illustrated with discrete blocks, the operations associated with one or more of the blocks of the method <NUM> may be divided into additional blocks, combined into fewer blocks, or eliminated, depending on the particular implementation.

At block <NUM>, the NFD module <NUM> may identify an accelerator of a plurality of accelerators on which to configure an offloaded NFD module based on a configuration table indicating a current configuration of the plurality of accelerators. At block <NUM>, the NFD module <NUM> may configure the offloaded NFD module on the identified accelerator. At block <NUM>, the NFD module <NUM> may receive an interest packet including a workload request, the interest packet configured according to an NDN protocol. At block <NUM>, the NFD module <NUM> may determine that the offloaded NFD module is configured to perform the workload request using the identified accelerator based on the configuration table. At block <NUM>, the NFD module may offload, via an application programming interface, the workload request to the offloaded NFD module to perform the workload request using the identified accelerator.

One or more aspect described in the present disclosure may include an NFD module within a core processer. The NFD module may be configured to offload a workload request to other accelerators based on capabilities of the core accelerator, the other accelerators, or some combination thereof. The NFD module may offload the workload request to a first accelerator or a second accelerator using an API. The other accelerators may perform the offloaded workload request, which may increase efficiency of the device compared the core accelerator always performing the workload request. Alternatively, the NFD module may offload the workload request to an external accelerator or a remote NFD module using a different interface.

The NFD module may offload the workload request to another accelerator within the device via the API, which may permit offloading of multiple functions and a data processing pipeline. The NFD module may be configured within the core accelerator. The core accelerator and the other accelerators may include an xPU, a FPGA, an ASICS, a GPU, or a CPU.

The NFD module may understand underlying hardware capabilities of the accelerators such as a caching content, an interest forwarding, and a name resolution. The NFD module may run as an application on the core processor or may be offloaded to the other accelerators.

The NFD module may include or be communicatively coupled to an offloading module and a telemetry module. The offloading module may expose the accelerator to a management layer according to the NDN protocol. The offloading module may map computation settings of the accelerators. In addition, the offloading module may change the configuration of the device.

The telemetry module may determine internal telemetry data and may cause the device to provide the internal telemetry data to the external device. The internal telemetry data may include information about a PIT, a RIB, a CS stores, an amount of traffic, and a request to a CS module. The telemetry module may cause the internal telemetry data to be provided after an update interval period elapses. The management module may update the length of time of the update interval based on a number of near neighboring devices, a throughput rate of data, a rate of receiving the external telemetry data, or some combination thereof.

The management module may reason over data collected by the telemetry module. The CS module may include a descriptor of a high number of packets. The management module may identify a dataset based on the descriptors.

During a system boot-up, a NIC/a Smart NIC/ a modem driver and firmware may be loaded on components (e.g., accelerators and interfaces) within the device. The accelerators may start in an empty state and the core accelerator may be configured with the NFD module. The NFD module may scan for available accelerators within the device. The NFD module may configure accelerator functions and offloaded NFD modules on the accelerators through OS functions. The NFD module may discover close by devices (e.g., base station). The NFD module may send information to the discovered devices with information about processing and storage capabilities and telemetry information associated with the accelerators within the device. The telemetry module may set the timer for the update interval.

The NFD module may determine if there is a change in network behavior that does not allow settings to be achieved using the core processor. For example, a throughput setting may not be achievable or a disk may not allow packet caching. The offloading module may reason over configurations and offloading configurations to permit the settings to be achieved. If the offloading module does not identify an offloading configuration, the NFD module may send a request for a remote offload to route packets through other NFD modules of external devices.

A device may include a processor. The processor may include an NFD module. The device may also include a memory storing instructions on which, when executed by the processor, configure the processor. The processer may initialize interfaces of the device. The interfaces may include at least one of a PCI-E interface, a TCP/IP overlay tunnel, an IPC interface, an Ethernet interface, a wireless fidelity interface, and a modem interface.

The NFD module may identify a first accelerator within the device on which to configure a first offloaded NFD module. The first accelerator may include an xPU, a FPGA, an ASIC, a GPU, and a CPU. The NFD module may identify a first accelerator based on a configuration table that indicates a current configuration of accelerators within the device. The configuration table may indicate at least one of a memory speed, a specialized hardware capability, a cache use, a high-speed link interface, a cache content, an interest forwarding, a compute capability, and a name resolution of each accelerator within the device.

The NFD module may configure the first offloaded NFD module on the first accelerator. The NFD module may configure the first offloaded NFD module to perform a first offloaded function of the NFD module. The NFD module may receive a first interest packet that includes a first workload request. The interest packet may be configured according to the NDN protocol.

The NFD module may determine that the first offloaded NFD module is configured to perform the first workload request using the first accelerator. The NFD module may determine that the first offloaded NFD module is configured to perform the first workload request by determining that the first workload request corresponds to the first offloaded function of the NFD module. The NFD module may offload, via the API, the first workload request to the first offloaded NFD module to perform the first workload request using the first accelerator.

The NFD module may identify a second accelerator within the device on which to configure a second offloaded NFD module based on the configuration table. The NFD module may configure the second offloaded NFD module on the second accelerator. The NFD module may update the configuration table based on the second accelerator and the second offloaded NFD module.

The NFD module may receive a second interest packet that includes a second workload request. The NFD module may determine that the second offloaded NFD module is configured to perform the second workload request using the second accelerator based on the updated configuration table. The first accelerator may include a first segment of an accelerator and the second accelerator may include a second segment of the same accelerator. Alternatively, the first accelerator and the second accelerator may include different accelerators. The NFD module may offload, via the API, the second workload request to the second offloaded NFD module. The second offloaded NFD module may perform the second workload request using the second accelerator.

The processor of the device may initialize the first accelerator, the second accelerator, or some combination thereof. In addition, the processor of the device may configure the NFD module within the processor. The NFD module may include the configuration table.

The NFD module may provide internal telemetry data to an external device. The internal telemetry data may indicate a processing capability, a storage capability, or some combination of the first accelerator and the second accelerator. The internal telemetry data may include data indicating at least one of a PIT, a RIB, a CS, an amount of traffic, and a request to the CS corresponding to the first accelerator and the second accelerator. The NFD module may receive external telemetry data from the external device. The external telemetry data may indicate a processing capability and a storage capability of an external accelerator that includes an external NFD module within the external device.

The NFD module may identify the external accelerator based on the external telemetry data. The NFD module may update the configuration table based on the external telemetry data. The updated configuration table may include the internal telemetry data and the external telemetry data.

The NFD module may receive a second interest packet including a second workload request. The second interest packet may be configured according to the NDN protocol. The NFD module may identify the external NFD module of the external accelerator within the external device as being configured to perform the second workload request based on the updated configuration table. The NFD module may offload the second workload request to the external NFD module to perform the second workload request using the external accelerator.

A device may include a processor that includes an NFD module. The NFD module may identify a first accelerator within the device on which to configure a first offloaded NFD module based on a configuration table. The configuration table may indicate a current configuration of accelerators within the device. The NFD module may configure the first offloaded NFD module on the first accelerator.

The NFD module may receive an interest packet that includes a workload request. The interest packet may be configured according to an NDN protocol. The NFD module may determine that the first offloaded NFD module is not configured to perform the workload request using the first accelerator based on the configuration table. The NFD module may determine that a different NFD module is configured to perform the workload request using a corresponding accelerator based on the configuration table. The NFD module may offload, via an interface, the workload request to the different NFD module to perform the workload request using the corresponding accelerator.

The NFD module may identify a second accelerator within the device on which to configure a second offloaded NFD module based on the configuration table. The NFD module may configure the second offloaded NFD module on the second identified accelerator. The NFD module may update the configuration table based on the second identified accelerator and the second offloaded NFD module. The NFD module may determine that the second offloaded NFD module is configured to perform the workload request using the second identified accelerator based on the updated configuration table. The second offloaded NFD module may include the different NFD module and the interface may include an API. The NFD module may offload, via the API, the workload request to the second offloaded NFD module to perform the workload request using the second accelerator.

The NFD module may determine that an external NFD module of an external accelerator within the external device is configured to perform the workload request. The NFD module may offload the workload request to the external NFD module to perform the workload request using the external accelerator. The external NFD module may include the different NFD module.

The NFD module may provide internal telemetry data to the external device. The internal telemetry data may indicate a processing capability and a storage capability of the first accelerator. The internal telemetry data may include data indicating at least one of a PIT, a RIB, a CS, an amount of traffic, and a request to the CS corresponding to the first accelerator, the second accelerator, or some combination thereof. The NFD module may receive external telemetry data from the external device. The external telemetry data may indicate a processing capability and a storage capability of the external accelerator that includes the external NFD module within the external device. The NFD module may identify the external accelerator based on the external telemetry data.

The NFD module may update the configuration table based on the external telemetry data. The updated configuration table may include the internal telemetry data and the external telemetry data. The NFD module may identify the external NFD module of the external accelerator as being configured to perform the workload request based on the updated configuration table. The external NFD module may include the different NFD module.

If a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles "a" or "an" limits any particular claim containing such introduced claim recitation to aspects containing only one such recitation, even when the same claim includes the introductory phrases "one or more" or "at least one" and indefinite articles such as "a" or "an" (e.g., "a" and/or "an" should be interpreted to mean "at least one" or "one or more"); the same holds true for the use of definite articles used to introduce claim recitations.

In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should be interpreted to mean at least the recited number (e.g., the bare recitation of "two recitations," without other modifiers, means at least two recitations, or two or more recitations). Furthermore, in those instances where a convention analogous to "at least one of A, B, and C, etc." or "one or more of A, B, and C, etc." is used, in general such a construction is intended to include A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B, and C together, etc..

Claim 1:
A device (<NUM>) comprising a processor (<NUM>) comprising a named data network, NDN, forwarding daemon, NFD, module (<NUM>), and a plurality of accelerators (<NUM>, <NUM>), wherein the device is configured to:
identify (<NUM>) an accelerator of the plurality of accelerators on which to configure an offloaded NFD module (<NUM>, <NUM>) based on a configuration table indicating a current configuration of the plurality of accelerators;
configure (<NUM>) the offloaded NFD module on the identified accelerator to perform a first offloaded function of the NFD module;
receive (<NUM>) an interest packet comprising a workload request, the interest packet configured according to an NDN protocol;
determine (<NUM>) that the offloaded NFD module is configured to perform the workload request using the identified accelerator based on the configuration table; and
offload (<NUM>), via an application programming interface, the workload request to the offloaded NFD module to perform the workload request using the identified accelerator.