Search

CN-114207588-B - Application specific packet processing offload services

CN114207588BCN 114207588 BCN114207588 BCN 114207588BCN-114207588-B

Abstract

A method for offloading network operations is described. The method includes receiving an offload service capability request message from a first application, the offload service capability request message for requesting information from an offload service regarding capabilities of an offload service that meet a set of requirements, transmitting a response to the application, the response including a set of offload service templates that (1) are selected based on application requirements and (2) are possible templates to be modified for performing operations of the application, evaluating network resources for program code of the application to select a set of network resources for offloading operations of the first application to the network resources, and installing program code generated based on the set of offload service templates on the set of network resources such that the set of network resources processes packets from a second application addressed to the first application.

Inventors

  • M. Julien

Assignees

  • 瑞典爱立信有限公司
  • 瑞典爱立信有限公司

Dates

Publication Date
20260421
Application Date
20190815
Priority Date
20190815

Claims (20)

  1. 1. A method (1600) for offloading network operations of a first application (202 1 ) to a network resource (204) in a network system (1300), the method comprising: receiving (1616), by an offload service (100), an offload service capability request message (1006B) from the first application, wherein the offload service capability request message requests information from the offload service regarding capabilities of the offload service that meet a set of requirements provided by the first application; Transmitting (1618), by the offload service, an offload service capability request message response (1008B) to the first application, wherein the offload service capability request message response includes a set of offload service templates (110) selected by the offload service based on the set of requirements of the first application and (2) templates to be modified for executing network operations of the first application, wherein each template in the set of offload service templates includes one or more of a list of parameters to be modified for executing the network operations of the first application, a set of code stubs for generating program code for executing the network operations of the first application, and a set of libraries for generating the program code; Evaluating (1622) the network resources for the program code of the first application by the offload service to select a set of network resources (204 1 and/or 204 2 ) for installing the program and offloading network operations of the first application to the set of network resources, and The program code of the first application generated by the offload service based on the set of offload service templates is installed (1628) on the set of network resources such that the set of network resources processes one or more of (1) packets from a second application addressed to the first application and (2) packets from the first application addressed to the second application.
  2. 2. The method of claim 1, further comprising: receiving (1602) an offload service discovery message (1002B) from the first application by the offload service, and -Transmitting (1604), by the offload service, an offload service discovery message acknowledgement (1004B) to the first application in response to the offload service discovery message, wherein the offload service discovery message acknowledgement indicates that the offload service discovery message was received and that the offload service is present in the network system.
  3. 3. The method of claim 2, further comprising: Receiving (1620), by the offload service, an application offload service request (1010B) from the first application, the application offload service request comprising templates from the set of templates that are populated for executing the network operation of the first application; Transmitting (1624), by the offload service, an application offload service request acknowledgement (1014B) indicating that the set of network resources for hosting the program code of the first application was found and that the program code was changed to fit the set of network resources, and An application offload deployment request (1016B) is received (1626) by the offload service from the first application, the application offload deployment request to begin an offload operation.
  4. 4. The method of claim 3, wherein installing the program code on the set of network resources comprises: Transmitting (1628A), by the offload service, an offload service deployment request (1018B) including the program code to the set of network resources to cause each network resource in the set of network resources to install the program code, and After the program code is successfully installed by the set of network resources, an offload service deployment request acknowledgement (1022B) is received (1628B) by the offload service from each network resource in the set of network resources, Wherein the method further comprises: an application offload deployment request acknowledgement (1024B) is transmitted (1630) by the offload service to the first application, the application offload deployment request acknowledgement for acknowledging deployment of the program code.
  5. 5. The method of claim 1, further comprising: Receiving (1606), by the offload service, an offload service discovery message (902B) from each network resource in the set of network resources; Transmitting (1608) an offload service discovery message acknowledgement (904B) by the offload service to each network resource in the set of network resources in response to the offload service discovery message; Receiving (1610), by the offload service, a network resource registration request (906B) from each network resource in the set of network resources; Updating (1612), by the offload service, a network resource information model (908B) and a network model (910B) based on the network resource registration request from each of the set of network resources, wherein the network resource information model describes characteristics of each of the network resources in the set of network resources, and wherein the network model describes interconnections between elements in the network system including the set of network resources and a compute node on which the first application is operating, and A network resource registration request acknowledgement (912B) is transmitted (1614) by the offload service to each network resource in the set of network resources, the network resource registration request acknowledgement indicating successful registration of each respective network resource in the set of network resources.
  6. 6. The method of claim 5, wherein the characteristics of each of the network resources comprise one or more of (1) an architecture of each of the set of network resources, (2) a processing power of each of the set of network resources, and (3) a memory capacity of each of the set of network resources.
  7. 7. The method of claim 1, further comprising: receiving (1634), by the offload service, an application offload service termination request (1102B) from the first application; Determining (1636) by the offload service that the set of network resources is allocated to the first application; transmitting (1638) an offload service termination request (1106B) by the offload service to each network resource in the set of network resources; Receiving (1640), by the offload service, an offload service termination request acknowledgement (1110B) indicating that the set of network resources is no longer processing the program code; updating (1642) a network resource information model (1112B) by the offload service to indicate termination of the set of network resources, and -Transmitting (1644), by the offload service, an application offload service termination request acknowledgement (1114B) to the first application, the application offload service termination request acknowledgement indicating that the operation of offloading the first application by the offload service has been terminated.
  8. 8. The method of claim 1, further comprising: Receiving (1646), by the offload service, a network resource logoff request (1202B) from a network resource (204 1 ) of the set of network resources; transmitting (1648) an unsolicited application offload service termination request (1204B) by the offload service to the first application; receiving (1650), by the offload service, an unsolicited application offload service termination request acknowledgement (1208B) indicating that the first application has performed a handover procedure to cope with the network resource no longer processing the program code; updating (1652) a network resource information model (1210B) of the network system by the offload service to cope with the network resource no longer being available for offload operations, and A network resource logout request acknowledgement (1212B) is communicated (1654) by the offload service to the network resource.
  9. 9. The method of claim 1, wherein the network resource is a P4 network resource and the program code is P4 program code.
  10. 10. The method of claim 1, further comprising: a set of control packets for one or more of managing, configuring and provisioning program code installed on the set of network resources is received (1632) from the first application by the offload service, Wherein interaction with the first application and the second application is performed via an application offload service agent (118) of the offload service, the application offload service agent allowing the first application to manage, configure, provision, and communicate with the offload service.
  11. 11. The method of claim 10, wherein the packet addressed to the first application is either (1) processed by the set of network resources and thereafter forwarded to the application offload service agent and then to the first application, or (2) transmitted to the application offload service agent and forwarded to the set of network resources for processing and then to the first application.
  12. 12. A non-transitory machine-readable storage medium (1848) providing instructions that, when executed by a processor (1842) of an apparatus (1804) in a network system (1300), will cause the processor to perform operations comprising: -receiving (1616) an offload service capability request message (1006B) from a first application (202 1 ), wherein the offload service capability request message requests information from an offload service (100) about the offload service's capabilities satisfying a set of requirements provided by the first application; Transmitting (1618) an offload service capability request message response (1008B) to the first application, wherein the offload service capability request message response includes a set of offload service templates (110) selected by the offload service based on the set of requirements of the first application and (2) templates to be modified for executing network operations of the first application, wherein each template in the set of offload service templates includes one or more of a list of parameters to be modified for executing the network operations of the first application, a set of code stubs for generating program code for executing the network operations of the first application, and a set of libraries for generating the program code; Evaluating (1622) the network resources for the program code of the first application to select a set of network resources (204 1 and 204 2 ) for installing the program and offloading network operations of the first application to the set of network resources, and Installing (1628) the program code of the first application generated based on the set of offload service templates on the set of network resources such that the set of network resources processes one or more of (1) packets from a second application addressed to the first application and (2) packets from the first application addressed to the second application.
  13. 13. The non-transitory machine-readable storage medium of claim 12, wherein the operations further comprise: -receiving (1602) an offload service discovery message (1002B) from the first application; Transmitting (1604), in response to the offload service discovery message, an offload service discovery message acknowledgement (1004B) to the first application, wherein the offload service discovery message acknowledgement indicates that the offload service discovery message was received and that the offload service exists in the network system; Receiving (1620) an application offload service request (1010B) from the first application, the application offload service request comprising templates from the set of templates that are populated for performing the network operation of the first application; Transmitting (1624), by the offload service, an application offload service request acknowledgement (1014B) indicating that the set of network resources for hosting the program code of the first application was found and that the program code was changed to fit the set of network resources, and An application offload deployment request (1016B) is received (1626) by the offload service from the first application, the application offload deployment request to begin an offload operation.
  14. 14. The non-transitory machine-readable storage medium of claim 13, wherein installing the program code on the set of network resources comprises: Transmitting (1628A) an offload service deployment request (1018B) including the program code to the set of network resources to cause each network resource in the set of network resources to install the program code, and After the program code is successfully installed by the set of network resources, an offload service deployment request acknowledgement (1022B) is received (1628B) from each network resource in the set of network resources, Wherein the operations further comprise: an application offload deployment request acknowledgement (1024B) is transmitted (1630) by the offload service to the first application, the application offload deployment request acknowledgement for acknowledging deployment of the program code.
  15. 15. The non-transitory machine-readable storage medium of claim 12, wherein the operations further comprise: -receiving (1606) an offload service discovery message (902B) from each network resource in the set of network resources; transmitting (1608) an offload service discovery message acknowledgement (904B) to each network resource in the set of network resources in response to the offload service discovery message; -receiving (1610) a network resource registration request (906B) from each network resource of the set of network resources; Updating (1612) a network resource information model (908B) and a network model (910B) based on the network resource registration request from each of the set of network resources, wherein the network resource information model describes characteristics of each of the network resources in the set of network resources, and wherein the network model describes interconnections between elements in the network system including the set of network resources and a computing node on which the first application is operating, and Transmitting (1614), by the offload service, a network resource registration request acknowledgement (912B) to each network resource in the set of network resources, the network resource registration request acknowledgement indicating successful registration of each respective network resource in the set of network resources, Wherein the characteristics of each of the network resources include one or more of (1) an architecture of each of the set of network resources, (2) a processing power of each of the set of network resources, and (3) a memory capacity of each of the set of network resources.
  16. 16. The non-transitory machine-readable storage medium of claim 12, wherein the operations further comprise: receiving (1634) an application offload service termination request (1102B) from the first application; determining (1636) that the set of network resources is allocated to the first application; transmitting (1638) an offload service termination request (1106B) to each network resource in the set of network resources; Receiving (1640) an offload service termination request acknowledgement (1110B) indicating that the set of network resources is no longer processing the program code; Updating (1642) a network resource information model (1112B) to indicate termination of the set of network resources, and -Transmitting (1644) an application offload service termination request acknowledgement (1114B) to the first application, the application offload service termination request acknowledgement indicating that the operation of offloading the first application by the offload service has been terminated.
  17. 17. The non-transitory machine-readable storage medium of claim 12, wherein the operations further comprise: -receiving (1646) a network resource deregistration request (1202B) from a network resource (204 1 ) of said set of network resources; -transmitting (1648) an unsolicited application offload service termination request (1204B) to the first application; -receiving (1650) an unsolicited application offload service termination request acknowledgement (1208B) indicating that the first application has performed a handover procedure to cope with the network resource no longer processing the program code; updating (1652) a network resource information model (1210B) of the network system to cope with the network resource no longer being available for offloading operations, and A network resource cancellation request acknowledgement (1212B) is transmitted (1654) to the network resource.
  18. 18. The non-transitory machine-readable storage medium of claim 12, wherein the network resource is a P4 network resource and the program code is P4 program code.
  19. 19. An apparatus (1804) for offloading network operations of a first application (202 1 ) to a network resource (204) in a network system (1300), the apparatus being for: receiving (1616) an offload service capability request message (1006B) from the first application, wherein the offload service capability request message requests information from an offload service (100) about capabilities of the offload service that meet a set of requirements provided by the first application; Transmitting (1618) an offload service capability request message response (1008B) to the first application, wherein the offload service capability request message response includes a set of offload service templates (110) selected by the offload service based on the set of requirements of the first application and (2) templates to be modified for executing network operations of the first application, wherein each template in the set of offload service templates includes one or more of a list of parameters to be modified for executing the network operations of the first application, a set of code stubs for generating program code for executing the network operations of the first application, and a set of libraries for generating the program code; Evaluating (1622) the network resources for the program code of the first application to select a set of network resources (204 1 and 204 2 ) for installing the program and offloading network operations of the first application to the set of network resources, and Installing (1628) the program code of the first application generated based on the set of offload service templates on the set of network resources such that the set of network resources processes one or more of (1) packets from a second application addressed to the first application and (2) packets from the first application addressed to the second application.
  20. 20. The apparatus of claim 19, the apparatus further configured to: Receiving (1602) an offload service discovery message (1002B) from the first application, and -Transmitting (1604), in response to the offload service discovery message, an offload service discovery message acknowledgement (1004B) to the first application, wherein the offload service discovery message acknowledgement indicates that the offload service discovery message was received and that the offload service is present in the network system.

Description

Application specific packet processing offload services Technical Field Embodiments of the present invention relate to the field of packet processing and, more particularly, to offloading services for allocating packet processing to a set of network resources on behalf of an application. Background Several techniques are available to improve the performance of applications, depending on the intended purpose of those applications. For example, for networking applications that provide packet switching and routing capabilities, techniques such as single root input/output virtualization (SR-IOV) and Network Interface Cards (NIC) may be used to improve the processing performance of such applications. Although those techniques aim to speed up networking performance, they also typically only provide generic networking acceleration capabilities, rather than application specific packet processing logic acceleration. Applications that may directly benefit from application-specific offloadability are typically implemented in a proprietary manner and tightly integrated with specialized software or hardware components that provide the acceleration techniques required for those specific applications. Such close integration with components that provide the desired acceleration capabilities may make applications entirely dependent on those technologies, which is not desirable in the context of cloud computing and virtualization involving a wide range of applications. Also, such solutions are often difficult to scale and are limited to a single application, thus not allowing other applications to share the same acceleration component(s). Disclosure of Invention A method for offloading network operations of a first application to network resources in a network system is described. The method includes receiving, by the offload service, an offload service capability request message from a first application, wherein the offload service capability request message requests, from the offload service, information regarding an ability of the offload service to satisfy a set of requirements provided by the first application, transmitting, by the offload service, an offload service capability request message response to the first application, wherein the offload service capability request message response includes a set of offload service templates, (1) selected by the offload service based on the set of requirements of the first application and (2) a possible template to be modified for performing network operations of the first application, wherein each template in the set of offload service templates includes one or more of a list of parameters to be modified for performing network operations of the first application, a set of code stubs for generating a set of program codes for performing network operations of the first application, and a set of libraries for generating the program codes, evaluating, by the offload service, network resources for the program code of the first application, to select a set of network resources for installing the program and offload operations of the first application to the first application, and (2) addressing, by the offload service resources from the first application to the set of network resources from the first application and the set of application to the first application is addressed by the set of network resources from the first application (1). A non-transitory machine-readable storage medium is also described that provides instructions that, when executed by a processor of a device in a network system, will cause the processor to perform operations. The operations include receiving an offload service capability request message from a first application, wherein the offload service capability request message requests information regarding an ability of the offload service to satisfy a set of requirements provided by the first application, transmitting an offload service capability request message response to the first application, wherein the offload service capability request message response includes a set of offload service templates, (1) a possible template selected by the offload service based on the set of requirements of the first application and (2) a possible template to be modified for performing network operations of the first application, wherein each template in the set of offload service templates includes one or more of a list of parameters to be modified for performing network operations of the first application, a set of code stubs for generating code for performing network operations of the first application, and a set of libraries for generating code for the first application, evaluating network resources for the code for the first application to select a set of network resources for installing the first application and offload operations of the first application to the set of network resources, and (2) addressing one or more of the sets of network resources from the firs