IP Library Granted Patent US 8,520,529
Granted Patent B2
US 8,520,529 · App. 13/234,060 · Granted Aug 27, 2013

Reordering network traffic

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 8,520,529
App. No.
13/234,060
Granted
Aug 27, 2013
Kind
B2
Abstract

Impairment units and methods for impairing network traffic. An impairment unit may receive packets from a network and determine an impairment class of each packet from a plurality of impairment classes. Input logic may determine whether or not each received packet will be reordered. A received packet not to be reordered may be stored in a normal traffic FIFO queue uniquely associated with the impairment class of the received packet. A received packet to be reordered may be stored in a reorder traffic FIFO queue uniquely associated with the impairment class of the received packet. Output logic may select a sequence of packets from head ends of the plurality of normal traffic FIFO queues and the plurality of reorder traffic FIFO queues to provide outgoing traffic. A transmitter may transmit the outgoing traffic to the network.

Claims (89)

1. A unit, comprising:

a receiver to receive packets from a network;

input logic to

assign sequential sequence numbers to the received packets,

determine whether or not each received packet will be reordered, wherein reordered packets are retransmitted after one or more subsequently received packet,

when the received packet is not to be reordered, store the received packet in a normal traffic first-in first-out (FIFO) queue and store the assigned sequence number as metadata associated with the received packet, and

when the received packet is to be reordered, store the received packet in a reorder traffic FIFO queue, modify the assigned sequence number to equal the anticipated sequence number of a subsequently-received packet to be transmitted immediately after the reordered received packet, and store the modified sequence number as metadata associated with the received packet;

output logic to

read a first sequence number associated with a packet at a head end of the normal traffic FIFO queue and a second sequence number associated with a packet at a head end of the reorder traffic FIFO queue, and

select one of the packet at the head end of the normal traffic FIFO queue and the packet at the head end of the reorder traffic FIFO queue based on the respective sequence numbers; and

a transmitter to transmit the packet selected by the output logic to the network.

2. The unit of claim 1 , wherein

the output logic selects the packet at the head end of the normal packet FIFO queue when the first and second sequence numbers are not equal, and

the output logic selects the packet at the head end of the reorder packet FIFO queue when the first and second sequence numbers are equal.

3. The unit of claim 1 , wherein

when the received packet is not to be reordered, the assigned sequence number is stored in a normal metadata queue, and

when the received packet is to be reordered, the modified sequence number is stored in a reorder metadata queue.

4. A unit, comprising:

a receiver to receive packets from a network;

a classifier to determine impairment classes of the received packets, an impairment class of each packet selected from a plurality of impairment classes, each impairment class uniquely associated with a corresponding one of a plurality of normal traffic first-in first-out (FIFO) queues and a corresponding one of a plurality of reorder traffic FIFO queues;

input logic to

assign sequence numbers to the received packets, the sequence numbers assigned independently between impairment classes and sequentially for packets within each of the plurality of impairment classes

determine whether or not each received packet will be reordered, wherein reordered packets are retransmitted after one or more subsequently received packet in the same impairment class,

if the received packet will not be reordered, store the received packet in the normal traffic FIFO queue associated with the impairment class of the received packet and store the assigned sequence number as metadata associated with the received packet, and

if the received packet will be reordered, store the received packet in the reorder traffic FIFO queue associated with the impairment class of the received packet, modify the assigned sequence number to equal the anticipated sequence number of a subsequently-received packets to be transmitted immediately after the reordered received packet, and store the modified sequence numbers as metadata associated with the received packets;

output logic to select packets from head ends of the plurality of normal traffic FIFO queues and the plurality of reorder traffic FIFO queues to provide a sequence of packets as outgoing traffic; and

a transmitter to transmit the outgoing traffic to the network.

5. The unit of claim 4 , further comprising:

a profile memory to store a plurality of impairment profiles, each uniquely associated with a corresponding one of the plurality of impairment classes,

wherein the input logic determines whether or not each received packet will be reordered based on the impairment profile associated with the impairment class of the received packet.

6. The unit of claim 4 , wherein

the output logic selects the sequence of packets based, in part, on the sequence numbers assigned to the received packets.

7. The unit of claim 4 , further comprising:

a plurality of normal metadata FIFO queues, each normal metadata FIFO queue to store metadata associated with a corresponding one of the plurality of normal traffic FIFO queues; and

a plurality of reorder metadata FIFO queues, each reorder metadata FIFO queue to store metadata associated with a corresponding one of the plurality of reorder traffic FIFO queues.

8. The unit of claim 7 , the output logic further to

for each impairment class, compare a sequence number from the head end of the corresponding normal metadata FIFO queue with a sequence number from the head end of the corresponding reorder metadata FIFO queue,

if the sequence number from the head end of a specific normal metadata FIFO queue is equal to the sequence number from the head end of the corresponding reorder metadata FIFO queue, select the packet at the head end of the corresponding reorder traffic FIFO queue to add to the outgoing traffic, and

if the sequence number from the head end of the normal metadata FIFO queue is not equal to the sequence number from the head end of the corresponding reorder metadata FIFO queue for all impairment classes, select a packet from a head end of one of the normal traffic FIFO queue to add to the outgoing traffic.

9. The unit of claim 8 , wherein

if the sequence number from the head end of the normal metadata FIFO queue is not equal to the sequence number from the head end of the corresponding reorder metadata FIFO queue for all impairment classes, the output logic selects a packet from a head end of one of the normal traffic FIFO queue based on target transmit timestamps associated with the packets at the head ends of the normal traffic FIFO queues.

10. The unit of claim 9 , further comprising:

a time stamper to associate a receive timestamp to each received packet,

the input logic further to, for each received packet that will not be reordered:

determine the target transmit timestamp associated with the received packet based on the associated receive timestamp and the impairment profile for the impairment class of the received packet, and

store the target transmit timestamp as metadata associated with the received packet.

11. A method, comprising:

receiving packets from a network;

assigning sequential sequence number to the received packets,

determining whether or not a received packet will be reordered, wherein reordered packets are retransmitted after one or more subsequently received packet;

when the received packet is not to be reordered, storing the received packet in a normal traffic first-in first-out (FIFO) queue and storing the assigned sequence number as metadata associated with the received packet;

when the received packet is to be reordered, storing the received packet in a reorder traffic FIFO queue, modifying the assigned sequence number to equal the anticipated sequence number of a subsequently-received packet to be transmitted immediately after the reordered received packet, and storing the modified sequence number as metadata associated with the received packet;

reading a first sequence number associated with a packet at a head end of the normal traffic FIFO queue and a second sequence number associated with a packet at the head end of the reorder traffic FIFO queue;

selecting one of the packet at a head end of the normal traffic FIFO queue and the packet at the head end of the reorder traffic FIFO queue based on the respective sequence numbers; and

transmitting the selected packet to the network.

12. The method of claim 11 , wherein selecting one of the packets further comprises:

selecting the packet at the head end of the normal packet FIFO queue when the first and second sequence numbers are not equal; and

selecting the packet at the head end of the reorder packet FIFO queue when the first and second sequence numbers are equal.

13. The method of claim 11 , wherein

when the received packet is not to be reordered, the assigned sequence number is stored in a normal metadata queue, and

when the received packet is to be reordered, the modified sequence number is stored in a reorder metadata queue.

14. A method of impairing network traffic, comprising:

receiving packets from a network;

determining impairment classes of the received packets, an impairment class of each packet selected from a plurality of impairment classes, each impairment class uniquely associated with a corresponding one of a plurality of normal traffic first-in first-out (FIFO) queues and a corresponding one of a plurality of reorder traffic FIFO queues;

assigning sequence numbers to the received packets, the sequence numbers assigned independently between impairment classes and sequentially for packets within each of the plurality of impairment classes;

determining whether or not each received packet will be reordered, wherein each reordered packet is retransmitted after one or more subsequently received packet in the same impairment class;

if the received packet will not be reordered, storing the received packet in the normal traffic FIFO queue associated with the impairment class of the received packet, and storing the assigned sequence number as metadata associated with the received packet;

if the received packet will be reordered, storing the received packet in the reorder traffic FIFO queue associated with the impairment class of the received packet, modifying the assigned sequence number to equal the anticipated sequence number of a subsequently-received packet to be transmitted immediately after the reordered received packet, and storing the modified sequence number as metadata associated with the received packet;

selecting packets from head ends of the plurality of normal traffic FIFO queues and the plurality of reorder traffic FIFO queues to provide a sequence of packets as outgoing traffic; and

transmitting the outgoing traffic to the network.

15. The method of claim 14 , further comprising:

storing a plurality of impairment profile, each impairment profile uniquely associated with a corresponding one of the plurality of impairment classes,

wherein determining whether or not each received packet will be reordered is based on the impairment profile associated with the impairment class of the received packet.

16. The method of claim 14 , wherein

the output logic selects the sequence of packets based, in part, on the sequence numbers assigned to the received packets.

17. The method of claim 14 , wherein

metadata associated with packets stored in each of the plurality of normal traffic FIFO queues is stored in a corresponding one of a plurality of normal metadata FIFO queues; and

metadata associated with packets stored in each of the plurality of reorder traffic FIFO queues is stored in a corresponding one of a plurality of reorder metadata FIFO queues.

18. The method of claim 17 , wherein selecting packets further comprises

for each impairment class, comparing a sequence number from the head end of the corresponding normal metadata FIFO queue with a sequence number from the head end of the corresponding reorder metadata FIFO queue,

if the sequence number from the head end of a specific normal metadata FIFO queue is equal to the sequence number from the head end of the corresponding reorder metadata FIFO queue, selecting the packet at the head end of the corresponding reorder traffic FIFO queue to add to the outgoing traffic, and

if the sequence number from the head end of the normal metadata FIFO queue is not equal to the sequence number from the head end of the corresponding reorder metadata FIFO queue for all impairment classes, selecting a packet from a head end of one of the normal traffic FIFO queue to add to the outgoing traffic.

19. The method of claim 18 , further comprising:

if the sequence number from the head end of the normal metadata FIFO queue is not equal to the sequence number from the head end of the corresponding reorder metadata FIFO queue for all impairment classes, selecting a packet from a head end of one of the normal traffic FIFO queue based on target transmit timestamps associated with the packets at the head ends of the normal traffic FIFO queues.

20. The method of claim 19 , further comprising:

associating a receive timestamp to each received packet; and

for each received packet that will not be reordered:

determining the target transmit timestamp associated with the received packet based on the associated receive timestamp and the impairment profile for the impairment class of the received packet, and

storing the target transmit timestamp as metadata associated with the received packet.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2018
From: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
To: KEYSIGHT TECHNOLOGIES SINGAPORE (SALES) PTE. LTD.
Reel/Frame 048225/0065 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2017
From: IXIA
To: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
Reel/Frame 044222/0695 →
RELEASE OF SECURITY INTEREST Recorded Apr 26, 2017
From: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT
To: IXIA
Reel/Frame 042335/0465 →
NOTICE OF SUBSTITUTION OF ADMINISTRATIVE AGENT Recorded Feb 2, 2015
From: BANK OF AMERICA, N.A., RESIGNING ADMINISTRATIVE AGENT
To: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT
Reel/Frame 034870/0598 →
SECURITY AGREEMENT Recorded Jan 25, 2013
From: IXIA
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 029698/0060 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2011
From: HUTCHISON, MICHAEL; KEDDIE, TOM
To: IXIA
Reel/Frame 026926/0629 →