US7948978B1ActiveUtility

Packet processing in a communication network element with stacked applications

Assignee: SPRINT COMMUNICATIONS COPriority: Sep 19, 2007Filed: Sep 19, 2007Granted: May 24, 2011
Est. expirySep 19, 2027(~1.1 yrs left)· nominal 20-yr term from priority
G06F 9/546H04L 65/1016
69
PatentIndex Score
4
Cited by
18
References
20
Claims

Abstract

A communication network element receives a user packet in a packet flow for a user and stores the user packet in a memory. The network element retrieves the user packet from the memory, processes the user packet with a first service function, and stores the user packet in the memory. The network element transfers a memory pointer for the user packet to a second service function. The network element retrieves the user packet from the memory based on the memory pointer, processes the user packet with the second service function, and stores the user packet in the memory. The network element transfers the user packet.

Claims

exact text as granted — not AI-modified
1. A method of operating a communication network element, the method comprising:
 receiving a user packet in a packet flow for a user into the communication network element and storing the user packet in a memory; 
 retrieving the user packet from the memory, processing the user packet with a first service function, and storing the user packet in the memory; 
 transferring a memory pointer for the user packet to a second service function; 
 retrieving the user packet from the memory based on the memory pointer, processing the user packet with the second service function, and storing the user packet in the memory; and 
 transferring the user packet from the communication network element. 
 
     
     
       2. The method of  claim 1  wherein the communication network element transfers the user packet from the first service function to the second service function through the memory without transferring the user packet through a communication protocol stack. 
     
     
       3. The method of  claim 1  wherein the communication network element includes an application library and further comprising selecting the first service function and the second service function from the application library in response to receiving the user packet. 
     
     
       4. The method of  claim 1  further comprising:
 receiving a second user packet in the packet flow for the user into the communication network element and storing the second user packet in the memory; 
 retrieving the second user packet from the memory, processing the second user packet with a third service function, and storing the second user packet in the memory; and 
 transferring the second user packet from the communication network element. 
 
     
     
       5. The method of  claim 1  further comprising maintaining a data structure in the communication network element that associates packet flows with different sets of service functions. 
     
     
       6. A method of operating a communication network element, the method comprising:
 receiving a user packet in a packet flow for a user into the communication network element and storing the user packet in a memory; 
 retrieving a packet header of the user packet from the memory, processing the packet header with a first service function, and storing the packet header in the memory; 
 transferring a first memory pointer for the packet header to a second service function; 
 retrieving the packet header from the memory based on the first memory pointer, processing the packet header with the second service function, and storing the packet header in the memory; 
 retrieving a packet payload of the user packet from the memory, processing the packet payload with a third service function, and storing the packet payload in the memory; 
 transferring a second memory pointer for the packet payload to a fourth service function; 
 retrieving the packet payload from the memory based on the second memory pointer, processing the packet payload with the fourth service function, and storing the packet payload in the memory; and 
 transferring the user packet from the communication network element. 
 
     
     
       7. The method of  claim 6  wherein the communication network element transfers the packet header from the first service function to the second service function through the memory and transfers the packet payload from the third service function to the fourth service function through the memory without transferring the packet header and the packet payload through a communication protocol stack. 
     
     
       8. The method of  claim 6  wherein the communication network element includes an application library and further comprising selecting the first service function, the second service function, the third service function, and the fourth service function from the application library in response to receiving the user packet. 
     
     
       9. The method of  claim 6  further comprising:
 receiving a second user packet in the packet flow for the user into the communication network element and storing the second user packet in the memory; 
 retrieving the second user packet from the memory, processing the second user packet with a fifth service function, and storing the second user packet in the memory; and 
 transferring the second user packet from the communication network element. 
 
     
     
       10. The method of  claim 6  further comprising maintaining a data structure in the communication network element that associates packet flows with different sets of service functions. 
     
     
       11. A method of operating a communication network element, the method comprising:
 receiving a first packet in a first packet flow for a first user and receiving a second packet in a second packet flow for a second user into the communication network element and storing the first packet and the second packet in a memory; 
 selecting a first sequence of service functions to process the first packet in response to receiving the first packet and selecting a second sequence of the service functions to process the second packet in response to receiving the second packet; 
 retrieving the first packet from the memory, processing the first packet with a first one of the service functions in the first sequence, and storing the first packet in the memory; 
 retrieving the first packet from the memory, processing the first packet with a second one of the service functions in the first sequence, and storing the first packet in the memory; 
 retrieving the second packet from the memory, processing the second packet with a first one of the service functions in the second sequence, and storing the second packet in the memory; 
 retrieving the second packet from the memory, processing the second packet with a second one of the service functions in the second sequence, and storing the second packet in the memory; and 
 transferring the first packet and transferring the second packet from the communication network element. 
 
     
     
       12. The method of  claim 11  wherein the communication network element transfers the first packet and the second packet between the service functions through the memory without transferring the first packet and the second packet through a communication protocol stack. 
     
     
       13. The method of  claim 11  wherein the communication network element includes an application library and further comprising selecting the first sequence of service functions and the second sequence of service functions from the application library. 
     
     
       14. The method of  claim 11  further comprising:
 receiving a third packet in the first packet flow for the first user into the communication network element and storing the third user packet in the memory; 
 retrieving the third packet from the memory, processing the third packet with a third sequence of service functions, and storing the third packet in the memory; and 
 transferring the third user packet from the communication network element. 
 
     
     
       15. The method of  claim 11  further comprising maintaining a data structure in the communication network element that associates packet flows with different sets of service functions. 
     
     
       16. A method of operating a communication network element, the method comprising:
 receiving a first packet and a second packet in a packet flow for a user into the communication network element and storing the first packet and the second packet in a memory; 
 selecting a first group of service functions to process the first packet in response to receiving the first packet and selecting a second group of the service functions to process the second packet in response to receiving the second packet; 
 retrieving the first packet from the memory, processing the first packet with a first one of the service functions in the first group, and storing the first packet in the memory; 
 retrieving the first packet from the memory, processing the first packet with a second one of the service functions in the first group, and storing the first packet in the memory; 
 retrieving the second packet from the memory, processing the second packet with a first one of the service functions in the second group, and storing the second packet in the memory; 
 retrieving the second packet from the memory, processing the second packet with a second one of the service functions in the second group, and storing the second packet in the memory; and 
 transferring the first packet and transferring the second packet from the communication network element. 
 
     
     
       17. The method of  claim 16  wherein the communication network element transfers the first packet and the second packet between the service functions through the memory without transferring the first packet and the second packet through a communication protocol stack. 
     
     
       18. The method of  claim 16  wherein the communication network element includes an application library and further comprising selecting the first group of service functions and the second group of service functions from the application library. 
     
     
       19. The method of  claim 16  further comprising transferring memory pointers between the service functions. 
     
     
       20. The method of  claim 16  further comprising maintaining a data structure in the communication network element that associates packet flows with different sets of service functions.

Join the waitlist — get patent alerts

Track US7948978B1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.