IP Library Granted Patent US 10,230,810
Granted Patent B1
US 10,230,810 · App. 15/161,263 · Granted Mar 12, 2019

Storing packet data in mirror buffer

Inventors: Parag D. Bhide (San Ramon, CA); Alain Loge (Mountain View, 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,230,810
App. No.
15/161,263
Granted
Mar 12, 2019
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 (29)

1. For a hardware forwarding element comprising a set of packet processing pipelines for processing packets, a method for copying packets to a temporary storage, the method comprising:

based on a set of characteristics of a packet being processed by one of the packet processing pipelines, determining to copy the packet to a particular temporary storage of a set of temporary storages located outside the set of packet processing pipelines;

based on a property of the particular temporary storage, storing copying only a particular portion of the packet to the particular temporary storage from the packet processing pipeline, wherein a same size portion of each packet copied to the particular temporary storage is stored in the particular temporary storage.

2. The method of claim 1 , wherein different temporary storages in the set of temporary storages have different properties.

3. The method of claim 1 , wherein different temporary storages in the set of temporary storages store different size portions of packets.

4. The method of claim 1 , wherein the hardware forwarding element comprises an ingress pipeline, an egress pipeline, and a buffer between the ingress and egress pipelines, wherein the packet processing pipeline that processes the packet is one of the ingress pipeline and the egress pipeline.

5. The method of claim 4 , wherein the set of temporary storages are separate from the ingress pipeline, egress pipeline, and buffer.

6. The method of claim 1 , wherein the determination to copy the packet to the particular temporary storage is based on the set of characteristics of the packet matching an entry in packet processing pipeline that specifies for all packets matching the entry to be copied to the particular temporary storage.

7. The method of claim 4 , wherein each of the ingress and egress pipelines comprises a parser for parsing packets, a match-action unit for performing actions on the packets based on packet characteristics, and a deparser for reassembling the packets after the actions are performed.

8. The method of claim 7 further comprising, a period of time after copying the particular portion of the packet to the particular temporary storage, sending the copy of the particular portion of the packet to the deparser of the ingress pipeline.

9. The method of claim 8 , wherein the copy of the particular portion of the packet is subsequently processed by the egress pipeline and transmitted to a different destination than the original packet.

10. The method of claim 9 , wherein the destination of the copy of the particular portion of the packet is a network monitoring device.

11. The method of claim 1 , wherein the particular portion is a particular set of header fields of the packet.

12. The method of claim 11 , wherein the particular set of header fields is a contiguous set of header fields starting from the beginning of the packet.

13. The method of claim 1 , wherein each copy of a particular portion of a packet is stored in the particular temporary storage with a set of metadata regarding the packet.

14. The method of claim 13 , wherein the set of metadata comprises a timestamp indicating a time that the packet was received.

15. The method of claim 14 , wherein the set of metadata further comprises a latency duration.

16. A hardware forwarding element for processing packets, the hardware forwarding element comprising:

a set of temporary storages;

a set of packet processing pipelines, wherein a particular one of the packet processing pipelines comprises a match-action unit for determining to copy a particular portion of a packet being processed by one of the packet processing pipelines to a particular temporary storage of the set of temporary storages based on a set of characteristics of the packet, wherein the set of temporary storages are located outside the set of packet processing pipelines; and

a controller for the particular temporary storage, the controller for storing only a particular portion of the packet copied from the particular packet processing pipeline in the particular temporary storage based on a property of the particular temporary storage, wherein a same size portion of each packet copied to the particular temporary storage is stored in the particular temporary storage.

17. The hardware forwarding element of claim 16 , wherein different temporary storages in the set of temporary storages store different size portions of packets.

18. The hardware forwarding element of claim 16 , wherein the hardware forwarding element comprises an ingress pipeline, an egress pipeline, and a buffer between the ingress and egress pipelines, wherein the particular packet processing pipeline is one of the ingress and egress pipelines.

19. The hardware forwarding element of claim 18 , wherein the match-action unit determines to copy a packet to the particular temporary storage based on the set of characteristics of the packet matching an entry in the particular packet processing pipeline that specifies for all packets matching the entry to be copied to the particular temporary storage.

20. The hardware forwarding element of claim 18 , wherein each of the ingress and egress pipelines comprises a parser for parsing packets, a match-action unit for performing actions on the packets based on packet characteristics, and a deparser for reassembling the packets after the actions are performed.

21. The hardware forwarding element of claim 20 wherein the controller is further configured for sending the copy of the particular portion of the packet to the deparser of the ingress pipeline a period of time after storing the copy of the particular portion of the packet in the particular temporary storage, wherein the egress pipeline is for subsequently processing the copy of the particular portion of the packet and transmitting the copy of the particular portion of the packet to a different destination than the original packet.

22. The hardware forwarding element of claim 21 , wherein the destination of the copy of the particular portion of the packet is a network monitoring device.

23. The hardware forwarding element of claim 16 , wherein the copy of the particular portion is a contiguous set of header fields starting from the beginning of the packet.

24. The hardware forwarding element of claim 16 , wherein each copy of a particular portion of a packet is stored in the particular temporary storage with a set of metadata regarding the packet, wherein the set of metadata comprises at least one of (i) a timestamp indicating a time that the packet was received and (ii) a latency duration.

Assignments (5)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2016
From: BHIDE, PARAG D.; LOGE, ALAIN; KODEBOYINA, CHAITANYA; AGRAWAL, ANURAG
To: BAREFOOT NETWORKS, INC.
Reel/Frame 038672/0216 →
Continuity (1)
Provisional Application 62310608 · Mar 18, 2016
Cited By (3)
US 12,224,950 US 12,231,401 US 12,301,690