IP Library Granted Patent US 9,270,595
Granted Patent B2
US 9,270,595 · App. 12/249,244 · Granted Feb 23, 2016

Method and system for controlling a delay of packet processing using loop paths

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,270,595
App. No.
12/249,244
Granted
Feb 23, 2016
Kind
B2
Abstract

A method and system for introducing controlled delay of packet processing at a network device using one or more delay loop paths (DLPs). For each packet received at the network device, a determination will be made as to whether or not packet processing should be delayed. If delay is chosen, a DLP will be selected according to a desired delay for the packet. The desired delay value is used to determine a time value and inserts the time value in the DLP ahead of the packet. Upon completion of a DLP delay, a packet will be returned for processing, an additional delay, or some other action. One or more DLPs may be enabled with packet queues, and may be used advantageously by devices, for which in-order processing of packets may be desired or required.

Claims (51)

1. A method of introducing controlled delay in the processing of packets in a packet-switched data network, the method comprising:

determining that a packet should be delayed before being processed;

determining a desired delay value for the packet;

adding a time field in front of the packet in a first-in-first-out (FIFO) packet queue, said time field containing the desired delay value for the packet to associate a time value with the packet based on the desired delay value;

sending the packet on a delay loop path (DLP); and

removing, by a processor, the packet from the DLP when the time value associated with the packet indicates that the desired delay value has been reached.

2. The method of claim 1 , wherein the removing further comprises;

comparing the time value to a system time and;

removing the packet if the time value is a time less than or equal to the system time.

3. The method of claim 1 , wherein sending the packet on the DLP comprises inserting the packet in an ordered list of packets.

4. The method of claim 3 , wherein the ordered list of packets is ordered by the time value associated with the packet on the DLP.

5. The method of claim 1 , wherein the DLP comprises the FIFO packet queue and wherein sending the packet on the DLP comprises:

adding the packet to the FIFO packet queue; and

wherein adding a time field in front of the packet in the FIFO packet queue to associate a time value with the packet further comprises:

writing the time value to the FIFO packet queue before adding the packet to the FIFO packet queue.

6. The method of claim 1 , wherein the DLP comprises multiple FIFO packet queues, and wherein sending the packet on the DLP further comprises:

selecting one of the multiple FIFO packet queues;

adding the packet to the selected FIFO packet queue; and

wherein the adding a time field in front of the packet in the FIFO packet queue to associate a time value with the packet further comprises:

writing the time value to the selected FIFO packet queue before writing the packet to the selected FIFO packet queue.

7. The method of claim 6 , wherein the multiple FIFO packet queues are each assigned a delay value, and wherein selecting one of the multiple FIFOs further comprises:

comparing an assigned delay value for each DLP with the desired delay value of the packet; and

selecting the FIFO packet queue of the multiple FIFO packet queues having an assigned delay value that is closest in value to the desired delay.

8. The method of claim 1 , wherein the determining that the packet should be delayed further comprises:

determining at least one property of the packet.

9. The method of claim 8 , wherein determining at least one property of the packet comprises:

inspecting data in the packet; and

determining a relationship of the packet with one or more previously received packets.

10. The method of claim 9 , wherein determining the at least one property of the packet further comprises:

determining that the packet is one of a plurality of packets in an ordered sequence and that the packet is out of order with respect to at least one other packet in the ordered sequence.

11. The method of claim 9 , wherein determining the at least one property of the packet further comprises:

determining that the packet is one of a plurality of packets in a sequence and that the packet should be delayed to pace the traffic of the packet sequence.

12. A packet processing apparatus with packet delay circuitry comprising:

a memory storing machine readable instructions to:

determine that a packet should be delayed before the packet is processed or forwarded;

determine a desired delay value for the packet;

add a time field in front of the packet in a first-in-first out (FIFO) packet queue, said time field containing the desired delay value for the packet to associate a time value with the packet;

send the packet on a delay loop path (DLP); and

remove the packet from the DLP when the time value associated with the packet indicates that the desired delay value has been reached; and

a processor to implement the machine readable instructions.

13. The packet processing apparatus of claim 12 , wherein the packet delay circuitry comprises a field-programmable gate array (FPGA).

14. The packet processing apparatus of claim 12 , wherein the packet delay circuitry comprises an application-specific integrated circuit (ASIC).

15. The packet processing apparatus of claim 12 , wherein the packet delay circuitry is implemented as a combination of hardware and software.

16. The packet processing apparatus of claim 12 , wherein the DLP is implemented as an ordered list of packets.

17. The packet processing apparatus of claim 12 , wherein the DLP comprises the FIFO packet queue.

18. The packet processing apparatus of claim 12 , wherein the packet processing apparatus is an intrusion prevention system (IPS).

19. The packet processing apparatus of claim 12 , wherein the packet processing apparatus connects a public network to a local area network (LAN).

20. The packet processing apparatus of claim 12 , wherein the packet processing apparatus is a virtual private network (VPN) device.

21. The packet processing apparatus of claim 12 , wherein the packet processing apparatus is an Ethernet switch.

22. The packet processing apparatus of claim 12 , wherein the packet processing apparatus is a firewall.

23. The packet processing apparatus of claim 12 , wherein the packet processing apparatus is an intelligent network adapter.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 055360/0424 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
CORRECTIVE ASSIGNMENT PREVIUOSLY RECORDED ON REEL 027329 FRAME 0001 AND 0044. Recorded May 1, 2012
From: HEWLETT-PACKARD COMPANY
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 028911/0846 →