Selective offloading of protocol processing
First Claim
1. A method comprising the steps of:
- providing a host computer means for processing a plurality of service requests conveyed over a network;
said host computer means including hardware and software means for fulfilling said plurality of service requests; and
providing an auxiliary processor means for handling protocol processing for said plurality of service requests to free up a portion of said hardware and software means of said host computer means for performing other tasks;
said auxiliary processor means being connected to but generally being separate from said host computer means;
said host computer means also for selectively determining when said auxiliary processor means handles protocol processing for any of said plurality of service requests.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides methods and apparatus for delivering selective offloading of protocol processing from a host computer (12) to an offloading auxiliary processor (132). Selective offloading of protocol processing enables a host (12) to offload the most computationally intensive, memory bandwidth intensive and performance critical portions of the protocol processing task to an auxiliary processor (132) without requiring the auxiliary processor (132) to perform the full suite of functions necessary to perform a complete protocol processing offload. This capability enables the offloading auxiliary processor to be built with fewer resources, and thus more inexpensively. The offloading host will only offload the portions of the protocol processing task that the auxiliary processor can process. If the auxiliary processor is requested to perform an action that it is unable to perform, for any reason, is simply returns the request back to the host computer. The request may be partially completed or not completed at all. This allows “fastpath” functions to be offloaded while more complex, but slower functions such as error handling, resequencing and lost packet recovery and retransmission to be handled by the host computer (12).
131 Citations
23 Claims
-
1. A method comprising the steps of:
-
providing a host computer means for processing a plurality of service requests conveyed over a network;
said host computer means including hardware and software means for fulfilling said plurality of service requests; and
providing an auxiliary processor means for handling protocol processing for said plurality of service requests to free up a portion of said hardware and software means of said host computer means for performing other tasks;
said auxiliary processor means being connected to but generally being separate from said host computer means;
said host computer means also for selectively determining when said auxiliary processor means handles protocol processing for any of said plurality of service requests. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. An apparatus comprising:
-
a host computer (12);
a computer network (14);
said computer network (14) having a connection to said host computer (12);
a network interface means (26c) for conveying data to and from said host computer (12) and said computer network (14);
said network interface means (26c) being connected to but separate from said host computer (12);
said network interface means (26c) includinga physical interface means for conveying data (168) to and from said computer network (14);
a filter means (174) for receiving inbound data to transmit to said computer network (14);
said filter means (174) being coupled to said physical interface means (168); and
an auxiliary processor means for selective protocol processing (152);
said auxiliary processor means (152) being coupled to said filter means (174).
-
-
15. An apparatus comprising:
-
a host computer (12); and
an auxiliary processor (152) coupled to said host computer (12);
a host protocol stack (116, 118);
said host protocol stack (116, 118) residing within said host computer (12);
a host resident offload protocol stack (164, 166, 167);
said host resident offload protocol stack (164, 166, 167) residing within said host computer (12); and
an auxiliary processor resident offload protocol stack (156, 158, 159);
said auxiliary processor resident offload protocol stack (156, 158, 159) residing within said auxiliary processor (152);
a filtering function (174);
said filtering function (174) coupled to said auxiliary processor (152); and
said host computer (12) for requesting that a task be performed using said host protocol stack (116, 118);
said host computer (12) also for requesting that a task be performed using said host resident protocol offload stack (164, 166, 167);
said host computer (12) also for requesting that a task be performed using said auxiliary processor resident protocol offload stack (156, 158, 159);
said auxiliary processor (152) for performing offload protocol processing at the request of said host computer (12); and
said auxiliary processor (152) for returning a completion status of said protocol processing task to said host computer (12). - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23)
-
Specification