Handling packet fragments in a distributed network service environment
First Claim
1. A method for providing a network service, comprising:
- communicating a fragment criteria from a service manager to a forwarding agent that instructs the forwarding agent how to determine whether a received packet fragment at the forwarding agent matches the fragment criteria;
receiving a matching packet fragment from the forwarding agent at a fragment service manager;
positioning the matching packet fragment into a packet at the fragment service manager;
in the event that the matching packet fragment completes the packet, determining from the completed packet a flow identifier specifying a flow; and
communicating the completed packet to a selected one of a plurality of service managers that handles the flow specified in the flow identifier.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for providing a network service is described. A fragment criteria is sent from a service manager to a forwarding agent that instructs the forwarding agent how to determine whether a received packet fragment at the forwarding agent matches the fragment criteria. A matching packet fragment is received from the forwarding agent at the fragment service manager. The fragment is assembled into a packet at the fragment service manager and in the event that the fragment completes the packet, a flow identifier specifying a flow is determined from the completed packet and completed packet is sent to a service manager that handles the flow specified in the flow identifier.
245 Citations
27 Claims
-
1. A method for providing a network service, comprising:
-
communicating a fragment criteria from a service manager to a forwarding agent that instructs the forwarding agent how to determine whether a received packet fragment at the forwarding agent matches the fragment criteria;
receiving a matching packet fragment from the forwarding agent at a fragment service manager;
positioning the matching packet fragment into a packet at the fragment service manager;
in the event that the matching packet fragment completes the packet, determining from the completed packet a flow identifier specifying a flow; and
communicating the completed packet to a selected one of a plurality of service managers that handles the flow specified in the flow identifier. - View Dependent Claims (2, 3)
-
-
4. A method for providing a network service, comprising:
-
communicating a fragment criteria from a service manager to a forwarding agent that instructs the forwarding agent how to determine whether a received packet fragment at the forwarding agent matches the fragment criteria;
receiving a matching packet fragment from the forwarding agent at a fragment service manager;
positioning the matching packet fragment into a packet at the fragment service manager;
in the event that the matching packet fragment completes the packet, determining from the completed packet a flow identifier specifying a flow; and
communicating the completed packet to a selected one of a plurality of service managers that handles the flow specified in the flow identifier, wherein the fragment service manager compares the flow to a list of stored wildcard affinities communicated by one or more additional service managers.
-
-
5. A method for providing a network service, further comprising:
-
communicating a fragment criteria from a service manager to a forwarding agent that instructs the forwarding agent how to determine whether a received packet fragment at the forwarding agent matches the fragment criteria;
receiving a matching packet fragment from the forwarding agent at a fragment service manager;
positioning the matching packet fragment into a packet at the fragment service manager;
in the event that the matching packet fragment completes the packet, determining from the completed packet a flow identifier specifying a flow; and
communicating the completed packet to a selected service manager that handles the flow specified in the flow identifier, wherein the fragment service manager compares the flow to a list of stored fixed affinities sent by one or more additional service managers.
-
-
6. A method for providing a network service, further comprising:
-
communicating a fragment criteria from a service manager to a forwarding agent that instructs the forwarding agent how to determine whether a received packet fragment at the forwarding agent matches the fragment criteria;
receiving a matching packet fragment from the forwarding agent at a fragment service manager;
positioning the matching packet fragment into a packet at the fragment service manager;
in the event that the matching packet fragment completes the packet, determining from the completed packet a flow identifier specifying a flow; and
communicating the completed packet to a selected one of a plurality of service managers that handles the flow specified in the flow identifier, wherein the fragment service manager receives affinities specifying sets of flows from an additional service manager, and wherein the fragment service manager derives the fragment criteria from the sets of flows so that the fragment service manager assembles fragments for packets that are candidates to match the affinities.
-
-
7. A method for providing a network service, comprising:
-
providing a forwarding agent in a network device, wherein the forwarding agent stores one or more fragment criteria received from a fragment service manager;
receiving a packet fragment at the forwarding agent;
determining whether the fragment matches the fragment criteria; and
forwarding the fragment from the forwarding agent to the fragment service manager in the event that the fragment matches the fragment criteria so that the fragment may be assembled into a packet at the fragment service manager and in the event that the fragment completes the packet, a flow identifier specifying a flow is determined from the completed packet and the completed packet may be communicated to a selected one of a plurality of service managers that handles the flow specified in the flow identifier. - View Dependent Claims (8)
-
-
9. A forwarding agent for handling packet fragments, comprising:
-
a fragment service manager receiving interface for receiving instructions from a fragment service manager specifying fragment criteria for packet fragments that are to be communicated to the fragment service manager;
a fragment service manager sending interface for communicating packet fragments to the fragment service manager;
a network packet receiving interface for receiving internet protocol (IP) packet fragments from a network; and
a processor for determining whether packet fragments received on the network packet receiving interface match the fragment criteria, wherein the fragment criteria reflect one or more affinities operable to specify a source internet protocol (IP) address and a destination IP address. - View Dependent Claims (10, 11)
a memory element configured to store the fragment criteria.
-
-
11. The forwarding agent as recited in claim 9, wherein the fragment criteria include a fragment indicator set and do not include a specification of a port.
-
12. A fragment service manager for handling packet fragments, comprising:
-
a fragment criteria sending interface operable to send fragment criteria to a plurality of forwarding agents, the fragment criteria specifying fragments that are to be sent to the fragment service manager;
a fragment receiving interface operable to receive fragments matching the fragment criteria from the plurality of forwarding agents;
a fragment processor operable to assemble the received fragments into packets; and
a packet processor operable to determine a designated service manager for handling the assembled packets. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
a service manager sending interface operable to send assembled packets to the designated service manager for handling the assembled packets.
-
-
15. The fragment service manager as recited in claim 12, wherein the fragment criteria reflect one or more affinities operable to specify a source internet protocol (IP) address and a destination IP address and to include a fragment indicator set.
-
16. The fragment service manager as recited in claim 12, further comprising:
a service manager receiving interface configured to receive packet criteria from a plurality of service managers, the packet criteria specifying sets of packets to be processed by each of the plurality of service managers.
-
17. The fragment service manager as recited in claim 16, wherein the packet criteria reflect one or more affinities operable to specify a source port and a destination port.
-
18. The fragment service manager as recited in claim 16, wherein the packet criteria reflect one or more affinities operable to specify a selected one or more of a source IP address, a destination IP address, a source port, a destination port, and a protocol.
-
19. The fragment service manager as recited in claim 16, further comprising:
a processor operable to generate the fragment criteria from the packet criteria so that the fragments to be sent to the fragment service manager specified by the fragment criteria include fragments which may be parts of packets that meet the packet criteria.
-
20. The fragment service manager as recited in claim 12, further comprising:
a memory configured to store partially assembled packet fragments.
-
21. The fragment service manager as recited in claim 12, wherein the fragment processor is configured to determine when a complete packet has been assembled.
-
22. The fragment service manager as recited in claim 12, wherein the fragment processor is implemented on the same processor as a service manager processor configured to communicate instructions to the plurality of forwarding agents.
-
23. A computer readable medium having code for handling packet fragments, the code operable to:
-
store one or more fragment criteria received from a fragment service manager on a forwarding agent;
receive a packet fragment at the forwarding agent;
determine whether the fragment matches the fragment criteria;
forward the packet fragment from the forwarding agent to the fragment service manager in the event that the packet fragment matches the fragment criteria;
position the packet fragment into a packet at the fragment service manager;
in the event that the fragment completes the packet, determine from the completed packet a flow identifier specifying a flow; and
communicate the completed packet to a service manager that handles the flow specified in the flow identifier.
-
-
24. A computer readable medium having code for handling packet fragments, the code operable to:
-
send fragment criteria to a plurality of forwarding agents, the fragment criteria specifying fragments that are to be sent to a fragment service manager;
receive fragments matching the fragment criteria from the plurality of forwarding agents;
assemble the received fragments into packets; and
determine a designated service manager for handling the assembled packets.
-
-
25. A system for providing a network service, comprising:
-
means for storing one or more fragment criteria received from a fragment service manager;
means for receiving a packet fragment;
means for determining whether the packet fragment matches the fragment criteria;
means for forwarding the packet fragment from a forwarding agent to the fragment service manager in the event that the fragment matches the fragment criteria;
means for assembling the fragment into a packet;
means determining a flow identifier specifying a flow from a completed packet; and
means for communicating the completed packet to a service manager that handles the flow specified in the flow identifier.
-
-
26. An apparatus for providing a network service, comprising:
a fragment service manager operable to communicate fragment criteria to one or more forwarding agents, the fragment criteria designating fragments that are to be communicated to the fragment service manager, the fragment service manager further operable to receive one or more of the fragments matching the fragment criteria from one or more of the forwarding agents, the fragment service manager operable to assemble the received fragments into one or more packets, wherein the fragment service manager is operable to determine a selected one of a plurality of service managers to route one or more of the assembled packets, the selected service manager processing a flow specified by a flow identifier. - View Dependent Claims (27)
Specification