IP Library Granted Patent US 10,785,342
Granted Patent B1
US 10,785,342 · App. 16/289,001 · Granted Sep 22, 2020

Storing packet data in mirror buffer

Inventors: Parag D. Bhide (San Ramon, CA); Alain Loge (South Lake Tahoe, CA); Chaitanya Kodeboyina (Los Altos, CA); Anurag Agrawal (Santa Clara, CA)
Assignee: Barefoot Networks, Inc.
H04L67/2842H04L67/2804H04L69/22
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,785,342
App. No.
16/289,001
Granted
Sep 22, 2020
Kind
B1
Abstract

Some embodiments provide a method for a hardware forwarding element. Based on a set of characteristics of a packet, the method determines to copy a packet to a particular temporary storage of a set of temporary storages of the hardware forwarding element. Based on a property of the particular temporary storage, the method stores only a particular portion of the packet in the particular temporary storage. A same size portion of each packet copied to the particular temporary storage is stored in the particular temporary storage.

Claims (44)

1. A method performed at a hardware forwarding element comprising a set of packet processing pipelines for processing packets, the method comprising:

at a packet processing pipeline, determining that a packet is to be copied to a mirror buffer of the hardware forwarding element based on one or more characteristics of the packet;

providing a copy of a portion of the packet from the packet processing pipeline for storage in the mirror buffer;

continuing to process the packet in the packet processing pipeline;

releasing the stored portion of the packet from the mirror buffer into the packet processing pipeline;

forming a second packet from the released stored portion; and

sending the formed second packet to a traffic monitor.

2. The method of claim 1 , comprising:

sending the packet to its next destination.

3. The method of claim 1 , comprising:

sending a copy of the portion of the packet to the mirror buffer based on a matched entry in a match action unit (MAU) of either an ingress or egress pipeline having a corresponding action entry that specifies to copy the portion of the packet to the mirror buffer.

4. The method of claim 3 , wherein the action specifies copying X bits of a packet header to the mirror buffer.

5. The method of claim 3 , wherein the action specifies to copy the packet to the mirror buffer and the mirror buffer determines what bits of the packet to store.

6. The method of claim 1 , comprising:

storing metadata for the packet to the mirror buffer, wherein the metadata comprises at least one of: a timestamp indicating a time that the packet was received, a latency duration, statistics information from a match stage that copies the packet to the mirror buffer, latency information about the packet, time that the packet spent in a queue between ingress and egress pipelines, or time that the packet was enqueued prior to entering an egress pipeline.

7. The method of claim 1 , wherein forming a second packet from the released stored portion comprises:

forming the second packet from the released stored portion, associated metadata and a stored portion of at least one other packet.

8. The method of claim 1 , wherein forming a second packet from the released stored portion is based on expiration of a timer or filling of the mirror buffer.

9. The method of claim 1 , wherein the packet processing pipeline comprises:

a plurality of ingress pipelines and a plurality of egress pipelines and

a traffic manager between the ingress pipelines and the egress pipelines.

10. A hardware forwarding element comprising:

at least one mirror buffer and

a packet processing pipeline to:

determine whether a packet is to be copied to a mirror buffer of the hardware forwarding element based on one or more characteristics of the packet;

provide a copy of a portion of the packet to store in a selected mirror buffer;

process the packet;

receive the stored portion of the packet from the selected mirror buffer for the packet processing pipeline to process; and

form a second packet from the stored portion of the packet for transmission to a traffic monitor.

11. The hardware forwarding element of claim 10 , wherein the packet processing pipeline comprises:

a plurality of ingress pipelines and a plurality of egress pipelines and

a traffic manager between the ingress pipelines and the egress pipelines.

12. The hardware forwarding element of claim 10 , comprising one or more ingress and egress ports.

13. The hardware forwarding element of claim 10 , wherein the packet processing pipeline is to provide the packet for transmission to its next destination.

14. The hardware forwarding element of claim 10 , wherein the packet processing pipeline is to:

provide a copy of the portion of the packet to the selected mirror buffer based on a matched entry in a match action unit (MAU) of either an ingress or egress pipeline of the packet processing pipeline having a corresponding action entry that specifies to copy the portion of the packet to the selected mirror buffer.

15. The hardware forwarding element of claim 14 , wherein the action is to specify copying X bits of a packet header to the selected mirror buffer.

16. The hardware forwarding element of claim 14 , wherein the action is to specify copying the packet to the selected mirror buffer and the mirror buffer is to determine what bits of the packet to store.

17. The hardware forwarding element of claim 10 , wherein the packet processing pipeline is to:

store metadata for the packet to the mirror buffer, wherein the metadata comprises at least one of: a timestamp indicating a time that the packet was received, a latency duration, statistics information from a match stage that copies the packet to the mirror buffer, latency information about the packet, time that the packet spent in a queue between ingress and egress pipelines, or time that the packet was enqueued prior to entering an egress pipeline.

18. The hardware forwarding element of claim 10 , wherein to form a second packet from the stored portion of the packet, the packet processing pipeline is to:

form the second packet from the stored portion of the packet, associated metadata and a stored portion of at least one other packet.

19. The hardware forwarding element of claim 10 , wherein the packet processing pipeline is to form a second packet from the stored portion of the packet based on expiration of a timer or filling of the mirror buffer.

20. The hardware forwarding element of claim 10 , comprising a switch.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Sep 20, 2019
From: SILICON VALLEY BANK
To: BAREFOOT NETWORKS, INC.
Reel/Frame 050455/0455 →
RELEASE OF SECURITY INTEREST Recorded Sep 20, 2019
From: SILICON VALLEY BANK
To: BAREFOOT NETWORKS, INC.
Reel/Frame 050455/0497 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 25, 2019
From: BAREFOOT NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 049588/0001 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 25, 2019
From: BAREFOOT NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 049588/0112 →
Continuity (2)
Continuation 15161263 · May 22, 2016
Provisional Application 62310608 · Mar 18, 2016