IP Library Granted Patent US 12712820
Granted Patent B1
US 12712820 · App. 18/401,586 · Granted Aug 18, 2026

Reflected packets

Inventors: William Brad Matthews (Los Gatos, CA); Puneet Agarwal (Santa Clara, CA)
Assignee: Innovium, Inc.
H04L47/31H04L43/0882H04L45/02H04L45/121H04L45/24H04L45/74H04L47/125H04L47/26H04L47/32H04L49/9057
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 12712820
App. No.
18/401,586
Granted
Aug 18, 2026
Kind
B1
Abstract

Nodes within a network are configured to adapt to changing path states, due to congestion, node failures, and/or other factors. A node may selectively convey path information and/or other state information to another node by annotating the information into packets it receives from the other node. A node may selectively reflect these annotated packets back to the other node, or other nodes that subsequently receive these annotated packets may reflect them. A weighted cost multipathing selection technique is improved by dynamically adjusting weights of paths in response to feedback indicating the current state of the network topology, such as collected through these reflected packets. In an embodiment, certain packets that would have been dropped may instead be transformed into “special visibility” packets that may be stored and/or sent for analysis. In an embodiment, insight into the performance of a network device is enhanced through the use of programmable visibility engines.

Claims (52)

1 . A networking apparatus comprising:

a plurality of communication ports configured to send and receive packets;

forwarding logic configured to:

based at least on destination address information in one or more packets, identify a destination for each of the one or more packets;

identify a destination port, of the communication ports, that is associated with the destination for each of the one or more packets;

send a particular packet among the one or more packets out an identified destination port associated with the destination of the particular packet;

packet analysis logic configured to determine that the networking apparatus is a reflection node for a packet of the one or more packets based on an analysis of information in the packet and one or more reflecting node rules;

reflection logic configured to, based on a determination that the networking apparatus is a reflection node for the packet, send a copy of the packet back to a sending device from which the packet was sent, the reflection logic further configured to evaluate the information in the packet to determine whether to instruct the forwarding logic to send the packet to an original destination indicated in the packet information.

2 . The networking apparatus of claim 1 , further comprising annotation logic configured to insert, into the copy of the packet, one or both of: state information of the networking apparatus, or state information of a path traversed by the packet.

3 . The networking apparatus of claim 1 , further comprising annotation logic configured to insert, into the copy of the packet, one or more of: a size of a queue in the networking apparatus, a delay associated with a queue in the networking apparatus, a count of packets that the network apparatus has dropped, a port utilization level of one or more of the communication ports, a delay experienced by the packet, a congestion measure, or a tag indicating that the copy of the packet has been reflected.

4 . The networking apparatus of claim 1 , wherein the one or more reflecting node rules are based on one or both of: statistics kept by the networking apparatus or characteristics of the packet.

5 . The network apparatus of claim 1 , wherein the one or more reflecting node rules include one or more of: a traffic flow associated with the packet, a queue to which the packet is assigned, a measure of delay associated with the packet, a measure of congestion at the networking apparatus, a queue fill level of the queue to which the packet is assigned, a link utilization level associated with the destination, or an annotation frequency.

6 . The network apparatus of claim 1 , wherein the copy of the packet does not include at least a portion of a payload of the packet.

7 . The network apparatus of claim 1 , wherein the reflection logic is further configured to:

manipulate a destination address field in a packet header of the copy of the packet to specify the sending device.

8 . The network apparatus of claim 1 , wherein the reflection logic is further configured to:

identify a particular network device along a path traversed by the packet;

encapsulate the copy of the packet in a tunnel header addressed to the particular network device.

9 . The network apparatus of claim 1 , wherein the reflection logic is further configured to:

duplicate at least a portion of the packet to generate the copy of the packet;

address the copy of the packet to indicate that the copy of the packet is destined for the sending device of the packet;

send the copy of the packet to a preceding hop using the reverse path of a path in the network that the packet traversed from the sending device to the networking apparatus.

10 . The network apparatus of claim 9 , wherein the path traversed by the packet from the sending device to the networking apparatus includes a collecting device configured to intercept the copy of the packet and generate one or more metrics based on the copy of the packet.

11 . A method comprising:

at a source port of a network device comprising a plurality of communication ports, receiving packets over a network;

based at least on destination address information in one or more packets, identifying a destination for each of the one or more packets;

identifying a destination port, of the communication ports, that is associated with the destination for each of the one or more packets;

sending a particular packet among the one or more packets out an identified destination port associated with the destination of the particular packet;

determining that the network device is a reflection node for a packet of the one or more packets based on an analysis of information in the packet and one or more reflecting node rules;

based on a determination that the network device is a reflection node for the packet, sending a copy of the packet back to a sending device from which the packet was sent;

evaluating the information in the packet to determine whether to send the packet to an original destination indicated in the packet information.

12 . The method of claim 11 , further comprising inserting, into the copy of the packet, one or both of: state information of the network device, or state information of a path traversed by the packet.

13 . The method of claim 11 , wherein the one or more reflecting node rules are based on one or both of: statistics kept by the network device or characteristics of the packet.

14 . The method of claim 11 , wherein the copy of the packet does not include at least a portion of a payload of the packet.

15 . The method of claim 11 , addressing the copy of the packet to indicate that the copy of the packet is destined for the sending device of the packet comprises manipulating a destination address field in a packet header of the copy of the packet to specify the sending device.

16 . The method of claim 11 , further comprising:

identifying a particular network device along a path traversed by the packet;

encapsulating the copy of the packet in a tunnel header addressed to the particular network device.

17 . The method of claim 11 , further comprising, at a collecting device traversed by the packet from the network device to the network device, intercepting the copy of the packet and generating one or more metrics based on the copy of the packet.

18 . The method of claim 11 , further comprising:

duplicating at least a portion of the packet to generate the copy of the packet;

addressing the copy of the packet to indicate that the copy of the packet is destined for the sending device of the packet;

sending the copy of the packet to a preceding hop using the reverse path of a path in the network that the packet traversed from the sending device to the networking apparatus.

19 . One or more non-transitory computer-readable media storing instructions that, when executed by one or more computing devices, cause performance of:

at a source port of a network device comprising a plurality of communication ports, receiving packets over a network;

based at least on destination address information in one or more packets, identifying a destination for each of the one or more packets;

identifying a destination port, of the communication ports, that is associated with the destination for each of the one or more packets;

sending a particular packet among the one or more packets out an identified destination port associated with the destination of the particular packet;

determining that the network device is a reflection node for a packet of the one or more packets based on an analysis of information in the packet and one or more reflecting node rules;

based on a determination that the network device is a reflection node for the packet, sending a copy of the packet back to a sending device from which the packet was sent;

evaluating the information in the packet to determine whether to send the packet to an original destination indicated in the packet information.

20 . The one or more non-transitory computer-readable media of claim 19 , wherein the instructions, when executed by the one or more computing devices, further cause performance of inserting, into the copy of the packet, one or both of: state information of the network device, or state information of a path traversed by the packet.