IP Library Granted Patent US 8,964,553
Granted Patent B2
US 8,964,553 · App. 13/324,965 · Granted Feb 24, 2015

Network impairment unit with bandwidth-constrained packet duplication

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,964,553
App. No.
13/324,965
Granted
Feb 24, 2015
Kind
B2
Abstract

An impairment unit, method, and machine readable storage media for emulating network impairments. An impairment unit may include a network interface to receive network traffic from a network and to transmit impaired network traffic to the network. An impairment engine may generate the impaired traffic based on the received network traffic, the impaired network traffic including at least some duplicate packets. The impairment engine may determine a bandwidth available for transmission of duplicate packets based on the received network traffic and may constrain the total length of the duplicate packets to fit within the available bandwidth.

Claims (69)

1. An impairment unit, comprising:

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

an impairment engine to generate the impaired network traffic based on the received network traffic, the impaired network traffic including at least some duplicate packets, the impairment engine comprising:

a duplicate credit accumulator storing a duplicate credit value that is increased by bandwidth available for transmission of duplicate packets identified by the impairment engine and decreased by bandwidth used to transmit duplicate packets, and

output logic configured:

to compare a length of a requested duplicate packet to the duplicate credit value,

when the length of the requested duplicate packet is less than or equal to the duplicate credit value, to schedule the requested duplicate packet for transmission as part of the impaired network traffic and reduce the duplicate credit value by the length of the requested duplicate packet, and

when the length of the requested duplicate packet is greater than the duplicate credit value, to discard the requested duplicate packet,

whereby the impairment engine determines the bandwidth available for transmission of duplicate packets based on the received network traffic and constrains a total bandwidth of duplicate packets to fit within the bandwidth available for transmission of duplicate packets.

2. The impairment unit of claim 1 , the output logic further configured to accumulate duplication statistics including a number of scheduled duplicate packets and a number of discarded duplicate packets.

3. The impairment unit of claim 1 , wherein the impairment engine further comprises input logic configured:

to measure a gap length between each pair of successive packets in the received network traffic and add available bandwidth corresponding to the gap length to the duplicate credit value.

4. The impairment unit of claim 3 , wherein the input logic reduces the gap length between each pair of packets by protocol-required overhead and adds a remainder to the duplicate credit value.

5. The impairment unit of claim 3 , wherein the input logic is further configured:

to determine if each packet in the received network traffic is to be dropped and add the length of each dropped packet to the duplicate credit value.

6. The impairment unit of claim 2 , wherein the impairment engine further comprises input logic configured:

to sum a total length of packets in the received network traffic over each of a plurality of successive time intervals, and

to subtract the sum from a predetermined maximum cumulative packet length and add a remainder to the duplicate credit value after an end of each time interval.

7. The impairment unit of claim 6 , wherein the sum includes protocol-required overhead between successive packets.

8. The impairment unit of claim 6 , wherein the input logic is further configured:

to determine a cumulative length of one or more packets received in each time interval that will be dropped and add the cumulative length of the one or more dropped packets to the duplicate credit value.

9. A method of emulating network impairments, comprising:

receiving network traffic by an impairment unit embedded in a communications path within a network, the received network traffic comprising a plurality of received packets;

generating impaired traffic based on the received network traffic, the impaired network traffic including at least some duplicate packets; and

transmitting the impaired network traffic via the communications path,

wherein generating impaired traffic further comprises:

determining a bandwidth available for transmission of duplicate packets based on the received network traffic by

storing a duplicate credit value,

increasing the duplicate credit value by the bandwidth available for transmission of duplicate packets determined based on the received network traffic, and

decreasing the duplicate credit value by the bandwidth used to transmit duplicate packets; and

constraining a total bandwidth of duplicate packets to fit within the bandwidth available for transmission of duplicate packets by

comparing a length of a requested duplicate packet to the duplicate credit value,

when the length of the requested duplicate packet is less than or equal to the duplicate credit value, scheduling the requested duplicate packet for transmission as part of the impaired network traffic and reducing the duplicate credit value by the length of the requested duplicate packet, and

when the length of the requested duplicate packet is greater than the duplicate credit value, discarding the requested duplicate packet.

10. The method of claim 9 , further comprising:

accumulating duplication statistics including a number of scheduled duplicate packets and a number of discarded duplicate packets.

11. The method of claim 9 , further comprising:

measuring a gap length between each pair of successive packets in the received network traffic and adding available bandwidth corresponding to the gap length to the duplicate credit value.

12. The method of claim 11 , further comprising:

reducing the gap length between each pair of packets by protocol-required overhead before adding the available bandwidth to the duplicate credit value.

13. The method of claim 11 , further comprising:

determining if each packet in the received network traffic is to be dropped and adding the length of each dropped packet to the duplicate credit value.

14. The method of claim 9 , further comprising:

summing a total length of packets in the received network traffic over each of a plurality of successive time intervals, and

subtracting the sum from a predetermined maximum cumulative packet length and adding a remainder to the duplicate credit value after an end of each time interval.

15. The method of claim 14 , wherein the sum includes protocol-required overhead between successive packets.

16. The method of claim 14 , further comprising:

determining a cumulative length of one or more packets received in each time interval that will be dropped and adding the cumulative length of the one or more dropped packets to the duplicate credit value.

17. A machine readable storage medium storing programming code that, when used to program a programmable circuit device, configures the programmable circuit device to include:

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

an impairment engine to generate the impaired network traffic based on the received network traffic, the impaired network traffic including at least some duplicate packets, the impairment engine comprising:

a duplicate credit accumulator storing a duplicate credit value that is increased by bandwidth available for transmission of duplicate packets identified by the impairment engine and decreased by the bandwidth used to transmit duplicate packets, and

output logic configured:

to compare a length of a requested duplicate packet to the duplicate credit value,

when the length of the requested duplicate packet is less than or equal to the duplicate credit value, to schedule the requested duplicate packet for transmission as part of the impaired network traffic and reduce the duplicate credit value by the length of the requested duplicate packet, and

when the length of the requested duplicate packet is greater than the duplicate credit value, to discard the requested duplicate packet,

whereby the impairment engine determines the bandwidth available for transmission of duplicate packets based on the received network traffic and constrains a total bandwidth of duplicate packets to fit within the bandwidth available for transmission of duplicate packets.

18. The machine readable storage medium of claim 17 , the output logic further configured to accumulate duplication statistics including a number of scheduled duplicate packets and a number of discarded duplicate packets.

19. The machine readable storage medium of claim 17 , wherein the impairment engine further comprises input logic configured:

to measure a gap length between each pair of successive packets in the received network traffic and add available bandwidth corresponding to the gap length to the duplicate credit value.

20. The machine readable storage medium of claim 19 , wherein the input logic reduces the gap length between each pair of packets by protocol-required overhead and adds a remainder to the duplicate credit value.

21. The machine readable storage medium claim 19 , wherein the input logic is further configured:

to determine if each packet in the received network traffic is to be dropped and add the length of each dropped packet to the duplicate credit value.

22. The machine readable storage medium of claim 17 , wherein the impairment engine further comprises input logic configured:

to sum a total length of packets in the received network traffic over each of a plurality of successive time intervals, and

to subtract the sum from a predetermined maximum cumulative packet length and add a remainder to the duplicate credit value after the end of each time interval.

23. The machine readable storage medium of claim 22 , wherein the sum includes protocol-required overhead between successive packets.

24. The machine readable storage medium of claim 22 , wherein the input logic is further configured:

to determine a cumulative length of one or more packets received in each time interval that will be dropped and add the cumulative length of the one or more dropped packets to the duplicate credit value.

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 →