IP Library Granted Patent US 9,088,520
Granted Patent B2
US 9,088,520 · App. 13/627,325 · Granted Jul 21, 2015

Network impairment unit for concurrent delay and packet queue impairments

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,088,520
App. No.
13/627,325
Granted
Jul 21, 2015
Kind
B2
Abstract

An impairment unit and method of emulating network impairments is disclosed. The impairment unit may receive network traffic and transmit impaired network traffic. Received packets may be stored in a memory physically partitioned into a plurality of memory blocks and logically partitioned into a plurality of buffers. At least one buffer may be associated with each of a plurality of predefined impairment classes. One or more buffer may be a limited-length queue. Memory blocks may be assigned to buffers on an as-needed basis. A classifier may determine respective impairment classes of the received packets. A number of memory blocks assigned to each limited-length queue may be limited to a respective predetermined maximum. An enqueue manager may store each received packet and associated metadata in the buffer associated with the respective impairment class. The enqueue manager may discard received packets if the associated limited-length queue is full.

Claims (48)

1. An impairment unit, comprising:

a network interface to receive network traffic from a network and to transmit impaired network traffic to the network;

a traffic memory physically partitioned into a plurality of memory blocks and logically partitioned into a plurality of buffers associated respectively with each of a plurality of predefined impairment classes, one or more or the plurality of buffers defined to be limited-length queues

a memory manager to assign memory blocks to each of the plurality of buffers on an as needed basis; the memory manager is configured to limit a number of memory blocks assigned to each limited length queue to a respective predetermined maximum number,

a classifier to determine respective impairment classes of the received packets, the impairment class of each received packet being one of the predefined plurality of impairment classes;

an enqueue manager to associate metadata with each received packet and store each received packet and associated metadata in the respective buffer associated with the respective impairment class, the enqueue manager configured to discard received packets if the impairment class of the received packets is associated with a limited-length queue that is full; and

a dequeue manager configured to:

retrieve metadata associated with head-end packets, head-end packets being packets at the head ends of the plurality of buffers,

select one of the plurality of buffers based, at least in part, on the retrieved

retrieve the head-end packet from the selected buffer, and

provide the retrieved head-end packet to the network interface unit for transmission as impaired network traffic.

2. The impairment unit of claim 1 , wherein the

memory manager is configured to maintain ordered lists of the memory blocks assigned to each of the plurality of buffers.

3. The impairment unit of claim 2 , wherein a limited-length queue is considered to be full if a number of memory blocks assigned to the limited-length queue is equal to a respective maximum number and the limited length queue lacks sufficient space to store a newly received packet.

4. The impairment unit of claim 2 , wherein the enqueue manager is configured

to maintain a plurality of write pointers, each write pointer uniquely associated with a corresponding buffer, each write pointer indicating a memory address at which packet data will next be written into the associated buffer, and

to request the memory manager to assign another memory block to the buffer associated with a given write pointer when the given write pointer points to the end of a memory block.

5. The impairment unit of claim 1 , wherein

the dequeue manager is a portion of an integrated circuit,

the integrated circuit includes internal memory to store the metadata associated with the head-end packets and at least a portion of each head-end packet, and

at least some packets other than the head-end packets and associated metadata are stored in memory external to the integrated circuit.

6. The impairment unit of claim 5 , wherein the memory manager is further to

retrieve a penultimate packet and associated metadata of the selected buffer from the external memory, and

write the retrieved penultimate packet into the internal memory in replacement of the head-end packet provided to the network interface unit.

7. A method of emulating network impairments using an impairment unit embedded in a communications path within a network, comprising:

receiving network traffic from a network;

storing packets received via the network interface in a traffic memory, the traffic memory physically partitioned into a plurality of memory blocks and logically partitioned into a plurality of buffers associated respectively with each of a plurality of predefined impairment classes, one or more or the plurality of buffers defined to be limited-length queues;

assigning memory blocks to each of the plurality of buffers on an as-needed basis, wherein a number of memory blocks assigned to each limited-length queue is limited to a respective predetermined maximum number;

determining respective impairment classes of the received packets, the impairment class of each received packet being one of the predefined plurality of impairment classes;

associating metadata with each received packet;

storing each received packet and associated metadata in the respective buffer associated with the respective impairment class;

discarding received packets if the impairment class of the received packets is associated with a limited-length queue that is full;

retrieving metadata associated with head-end packets, head-end packets being packets at the head ends of the plurality of buffers;

selecting one of the plurality of buffers based, at least in part, on the retrieved metadata;

retrieving the head end packet from the selected buffer; and

transmitting the retrieved head-end packet as impaired network traffic.

8. The method of claim 7 , wherein a limited-length queue is considered to be full if the number of memory blocks assigned to the limited-length queue is equal to the respective maximum number and the limited length queue lacks sufficient space to store a newly received packet.

9. The method of claim 7 , further comprising:

maintaining a plurality of write pointers, each write pointer uniquely associated with a corresponding buffer, each write pointer indicating a memory address at which packet data will next be written into the associated buffer, and

assigning another memory block to the buffer associated with a given write pointer when the given write pointer points to the end of a memory block.

10. The method of claim 7 , further comprising:

maintaining ordered lists of the memory blocks assigned to each of the plurality of buffers.

11. The method of claim 7 , wherein storing packets received via the network interface in a traffic memory further comprises:

storing metadata associated with the head end packets of every buffer and at least a portion of each head-end packet in an internal memory, the internal memory internal to an integrated circuit that includes circuits to perform the retrieving, selecting, and retrieving actions recited in claim 8 ; and

storing packets other than the head-end packets and associated metadata in external memory, the external memory external to the integrated circuit.

12. The method of claim 11 , wherein storing packets received via the network interface in a traffic memory further comprises:

retrieving a penultimate packet and associated metadata of the selected buffer from the external memory, and

writing the retrieved penultimate packet into the internal memory in replacement of the transmitted head-end packet.

Assignments (4)
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 →