Patent ID: 7051066

Claim:
A method for providing a network service, comprising: receiving instructions from a service manager at a forwarding agent, the instructions indicating how packets received by the forwarding agent are to be processed; processing the packets received at the forwarding agent according to the instructions; forwarding selected packets from the forwarding agent to the service manager in response to the instructions, wherein the forwarding agent and the service manager are configured on a single network device such that one or more packets may be exchanged between the forwarding agent and the service manager within the network device, and wherein the single network device includes an additional forwarding agent and an additional service manager and the single network device is coupled to one or more servers that are operable to satisfy a request generated by one or more clients that are coupled to a network disposed between the clients and the single network device, and wherein a portion of traffic generated by the clients, which is destined for one or more of the servers, is handled by the forwarding agent and another portion of the traffic is handled by the additional forwarding agent; receiving packet handling instructions from the service manager at the forwarding agent that include actions determined by the service manager for the packet; receiving a subsequent packet at the forwarding agent; determining that the subsequent packet matches a criteria included in the packet handling instructions; and handling the subsequent packet at the forwarding agent according to the packet handling instructions, wherein the instructions provided by the service manager are associated with a selected one of a group consisting of: a routing operation; a load balancing operation; a packet modification operation; a tunneling operation; and a tag switching operation.