IP Library Granted Patent US 10,417,067
Granted Patent B2
US 10,417,067 · App. 15/672,082 · Granted Sep 17, 2019

Session based packet mirroring in a network ASIC

Inventors: Gerald Schmidt (San Jose, CA); Harish Krishnamoorthy (San Jose, CA); Tsahi Daniel (Palo Alto, CA)
Assignee: Cavium, LLC
G06F11/00G06F3/065G06F3/0689G06F11/1446G06F11/1451G06F11/1461G06F11/1469G06F11/2056G06F12/00G06F12/1483H04L45/16H04L45/54H04L49/201
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,417,067
App. No.
15/672,082
Granted
Sep 17, 2019
Kind
B2
Abstract

A forwarding pipeline of a forwarding engine includes a mirror bit mask vector with one bit per supported independent mirror session. Each bit in the mirror bit mask vector can be set at any point in the forwarding pipeline when the forwarding engine determines that conditions for a corresponding mirror session are met. At the end of the forwarding pipeline, if any of the bits in the mirror bit mask vector is set, then a packet, the mirror bit mask vector and a pointer to the start of a mirror destination linked list are forwarded to the multicast replication engine. The mirror destination linked list typically defines a rule for mirroring. The multicast replication engine mirrors the packet according to the mirror destination linked list and the mirror bit mask vector.

Claims (37)

1. A forwarding pipeline comprising a circuit configured to:

access a packet;

access a mirror bit mask vector including a plurality of bits; and

for each mirror session of a plurality of mirror sessions:

determine a bit of the bits that corresponds to the mirror session;

determine when conditions for the mirror session are met based on whether packet values within one or more fields of the packet satisfy mirroring criteria of the mirror session; and

when the conditions for the mirror session are met, set a value of the bit to a mirroring value that indicates that mirroring is desired for the packet for the mirror session;

wherein the values of each of the bits of the mirror bit mask vector as set by the forwarding pipeline indicate all of the plurality of mirror sessions for which mirroring is desired and not desired for the packet and are specific to the packet such that the values do not apply to other packets.

2. The forwarding pipeline of claim 1 , further comprising forwarding the packet and the mirror bit mask vector to a multicast replication engine for mirroring.

3. The forwarding pipeline of claim 1 , wherein a network chip supports a number of mirror sessions and a quantity of the plurality of bits of the mirror bit mask vector is equal to the number.

4. A network chip comprising:

a forwarding pipeline configured to:

receive a packet, wherein the packet is associated with a mirror bit mask vector including a plurality of bits; and

for each mirror session of a plurality of mirror sessions:

determine a bit of the bits that corresponds to the mirror session; and

when conditions for the mirror session are met by the packet, set a value of the bit to a mirroring value that indicates that mirroring is desired for the packet for the mirror session, wherein the values of each of the bits of the mirror bit mask vector as set by the forwarding pipeline indicate all of the plurality of mirror sessions for which mirroring is desired and not desired for the packet and are specific to the packet such that the values do not apply to other packets; and

a multicast replication engine coupled with the forwarding engine, wherein the multicast replication engine mirrors the packet according to the mirror bit mask vector.

5. The network chip of claim 4 , wherein the network chip supports a number of mirror sessions and a quantity of the plurality of bits of the mirror bit mask vector is equal to the number.

6. The network chip of claim 4 , wherein each bit in the mirror bit mask vector is set based on characteristics of the packet.

7. The network chip of claim 4 , further comprising a non-transitory computer readable medium storing a mirror destination table corresponding to a mirror destination linked list including a plurality of nodes, wherein each node in the mirror destination linked list is stored as an entry in the mirror destination table.

8. The network chip of claim 7 , wherein the entry includes a pointer to the next node in the mirror destination linked list, a session ID of a mirror session to which a corresponding node pertains, and destination information.

9. The network chip of claim 8 , wherein the destination information indicates at least one of the group consisting of a port, a tunnel, and a virtual interface.

10. The network chip of claim 9 , wherein the entry includes a field indicating whether mirroring is enabled for a corresponding session for the entry.

11. The network chip of claim 8 , wherein the session ID of multiple entries of the multicast destination table is the same to support multiple destinations per session.

12. The network chip of claim 4 , further comprising a non-transitory computer readable medium storing a mirror destination table corresponding to a mirror destination linked list including a plurality of nodes, wherein at each node of the mirror destination linked list, the multicast replication engine determines whether to make a copy of the packet.

13. A method of implementing a forwarding pipeline, the method comprising:

receiving a packet and accessing a mirror bit mask vector including a plurality of bits with the forwarding pipeline;

for each mirror session of a plurality of mirror sessions:

determine a bit of the bits that corresponds to the mirror session;

determining with the forwarding pipeline that conditions for the mirror session are met by the packet;

setting a value of the bit to a mirroring value that indicates that mirroring is desired for the packet for the mirror session, wherein the values of each of the bits of the mirror bit mask vector as set by the forwarding pipeline indicate all of the plurality of mirror sessions for which mirroring is desired and not desired for the packet and are specific to the packet such that the values do not apply to other packets; and

mirroring the packet with a multicast replication engine based on the mirror bit mask vector.

14. The method of claim 13 , wherein the mirror bit mask vector includes one bit per supported mirror session.

15. The method of claim 14 , wherein, if at least one of the bits of the mirror bit mask vector equals the mirroring value, the forwarding pipeline transmits the packet, the mirror bit mask vector and a pointer value that indicates an entry node of a mirror destination linked list to the multicast replication engine.

16. The method of claim 15 , wherein the mirror destination linked list includes one node for each possible mirror destination.

17. The method of claim 15 , wherein the mirror destination linked list includes multiple nodes with the same session ID for different mirror destinations.

18. The method of claim 13 , wherein the conditions comprise one or more of the group consisting of a source port of the packet, a destination port of the packet and an address of the packet.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Sep 27, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047577/0653 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2017
From: SCHMIDT, GERALD; KRISHNAMOORTHY, HARISH; DANIEL, TSAHI
To: XPLIANT, INC.
Reel/Frame 043235/0140 →
MERGER Recorded Aug 8, 2017
From: XPLIANT, INC.
To: CAVIUM NETWORKS LLC
Reel/Frame 043235/0159 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2017
From: CAVIUM NETWORKS LLC
To: CAVIUM, INC.
Reel/Frame 043235/0177 →
Continuity (2)
Continuation 14494229 · Sep 23, 2014
Related Publication 20180018207A1 · Jan 18, 2018