IP Library › Granted Patent US 10,547,560
Granted Patent B1
US 10,547,560 · App. 15/856,789 · Granted Jan 28, 2020

Monitoring network communications queues

Inventors: Nayan S. Patel (Bedford, MA); Qi-Zhong Cao (Southborough, MA); Nitin Kumar (Fremont, CA)
Assignee: Juniper Networks, Inc.
H04L47/50H04L43/0852
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 10,547,560
App. No.
15/856,789
Granted
Jan 28, 2020
Kind
B1
Abstract

A network device may include a controller and a hardware forwarding component. The hardware forwarding component may receive a network packets and assign the network packets to multiple network queues. The network device may also obtain, using a microcode engine of the hardware forwarding component, and for each of the network queues, a measurement of queue depth, each measurement of queue depth being obtained from memory of the hardware forwarding component. Based on the measurements of queue depth, the network device may generate and transmit a telemetry packet.

Claims (53)

1. A network device, comprising:

a controller; and

a hardware forwarding component to:

receive a plurality of network packets;

assign the plurality of network packets to a plurality of network queues;

obtain, by a microcode engine of the hardware forwarding component, during a keep-alive session implemented by the microcode engine, and for each of the plurality of network queues, a measurement of queue depth,

each measurement of queue depth being obtained from memory of the hardware forwarding component;

generate, based on the measurements of queue depth, a telemetry packet; and

transmit the telemetry packet.

2. The network device of claim 1 , where the hardware forwarding component, when obtaining the measurement of queue depth, is to:

obtain the measurement of queue depth for all network queues implemented by the microcode engine.

3. The network device of claim 1 , where the hardware forwarding component, when obtaining the measurement of queue depth, is to:

obtain the measurement of queue depth using a queue sensor configured to sample the plurality of network queues.

4. The network device of claim 1 , where the hardware forwarding component, when obtaining the measurement of queue depth, is to:

obtain the measurement of queue depth using a plurality of queue sensors configured to sample the plurality of network queues.

5. The network device of claim 4 , where:

each of the plurality of queue sensors is configured to sample a separate portion of the plurality of network queues.

6. A device, comprising:

a first processor; and

a microcode engine implemented in hardware of a second processor, the microcode engine causing the second processor to:

obtain, for a network queue, a measurement of queue depth,

the network queue being implemented by the second processor, and

the measurement of queue depth being obtained from memory of the second processor;

generate, based on the measurement of queue depth, a telemetry packet;

identify an egress port for the telemetry packet from memory of the device; and

transmit the telemetry packet using the identified egress port.

7. The device of claim 6 , where the second processor is a field-programmable gate array (FPGA).

8. The device of claim 6 , where the second processor is an application specific integrated circuit (ASIC).

9. The device of claim 8 , where the ASIC is a forwarding ASIC of a network device.

10. The device of claim 6 , wherein the second processor, when obtaining the measurement of queue depth, is to:

obtain the measurement of queue depth during a keep-alive session implemented by the microcode engine.

11. A method, comprising:

obtaining, by hardware forwarding component of a network device and for a plurality of network queues implemented by the hardware forwarding component, at least one measurement of queue depth,

the at least one measurement of queue depth being obtained from memory of the hardware forwarding component;

generating, by the hardware forwarding component and based on the at least one measurement of queue depth, a telemetry packet;

identifying an egress port for the telemetry packet from memory of the hardware forwarding component; and

transmitting, by the hardware forwarding component and using the identified egress port, the telemetry packet.

12. The method of claim 11 , where generating the telemetry packet includes:

generating the telemetry packet in the memory of the hardware forwarding component.

13. The method of claim 11 , where the telemetry packet includes data specifying an average queue depth for at least one of the plurality of network queues.

14. The method of claim 11 , where the telemetry packet includes data specifying, for one of the at least one measurement of queue depth, how close a corresponding network queue, of the plurality of network queues, is to being at full capacity.

15. The method of claim 11 , further comprising:

generating, based on the at least one measurement of queue depth, at least one additional telemetry packet; and

transmitting the at least one additional telemetry packet.

16. The method of claim 15 , where the telemetry packet and the at least one additional telemetry packet are transmitted in a single burst.

17. The method of claim 11 , where the telemetry packet is transmitted to a queue management device.

18. The method of claim 11 , where the hardware forwarding component includes a forwarding application specific integrated circuit (ASIC) of the network device.

19. The method of claim 11 , further comprising:

periodically obtaining measurements of queue depth for each of the plurality of network queues;

periodically generating telemetry packets for the periodically obtained measurements of queue depth; and

periodically transmitting the periodically generated telemetry packets.

20. The method of claim 11 , wherein obtaining the at least one measurement of queue depth comprises:

obtaining the at least one measurement of queue depth during a keep-alive session associated with the network device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2017
From: PATEL, NAYAN S; CAO, QI-ZHONG; KUMAR, NITIN
To: JUNIPER NETWORKS, INC.
Reel/Frame 044505/0232 →
Cited By (5)
US 12,206,549 US 12,348,395 US 12,382,311 US 12,457,158 US 12,580,875