US 11,882,202 B2
Intent based network data path tracing and instant diagnostics
Sajay Vijayadharan, San Jose, CA (US); Arun P. Venugopal, Fremont, CA (US); and Manas Pati, San Jose, CA (US)
Assigned to Cisco Technology, Inc., San Jose, CA (US)
Filed by Cisco Technology, Inc., San Jose, CA (US)
Filed on Apr. 24, 2019, as Appl. No. 16/393,732.
Claims priority of provisional application 62/768,601, filed on Nov. 16, 2018.
Prior Publication US 2020/0162589 A1, May 21, 2020
Int. Cl. H04L 69/22 (2022.01); H04L 47/24 (2022.01); H04L 45/745 (2022.01)
CPC H04L 69/22 (2013.01) [H04L 45/745 (2013.01); H04L 47/24 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for tracing traffic through a network comprising:
determining, based on a negotiation between a first network element and a second network element, a customized packet type supported by the second network element;
adding, to a packet received by the first network element, a tracing header to generate a modified packet, wherein the tracing header comprises a unique identifier of the modified packet and is customized to the customized packet type determined based on the negotiation between the first network element and the second network element, and wherein the tracing header is negotiable on a hop by hop basis of a forwarding path of the modified packet based on the tracing header being dynamically transformable into a plurality of different negotiable packet formats supported by corresponding network elements in the forwarding path, the plurality of different negotiable packet formats different from the customized packet format;
based on the unique identifier, identifying the second network element by tracing the modified packet as it is forwarded to the second network element from the first network element, wherein the modified packet is dynamically transformed into at least one different negotiable packet format of the plurality of different packet formats along the forwarding path between the first network element and the second network element based on a difference in supported capabilities between the first network element and the corresponding network elements in the forwarding path, and is transformed into the customized packet type determined based on the negotiation prior to being received by the second network element;
collecting forwarding information from the second network element that is associated with the modified packet, wherein the unique identifier of the tracing header of the modified packet is associated with the forwarding information; and
sending the unique identifier of the tracing header of the modified packet and the forwarding information to a controller in order to diagnose a packet forwarding issue based on determining one or more causes of the packet forwarding issue along the forwarding path of the modified packet between the first network element, the corresponding network elements in the forwarding path, and the second network element, wherein the controller diagnoses the packet forwarding issue based on the forwarding information and the unique identifier of the modified packet as the modified packet is sent to the second network element.
 
8. A first network element comprising:
a memory for maintaining forwarding information concerning packets forwarded to a second network element;
a communications interface for receiving a packet directed to the first network element; and
a processor for executing instructions stored in memory, wherein execution of the instructions by the processor executes:
a header service to:
determine, based on a negotiation between the first network element and the second network element, a customized packet type supported by the second network element;
add, to a packet received by the first network element, a tracing header to generate a modified packet, wherein the tracing header comprises a unique identifier of the modified packet and is customized to
the customized packet type determined based on the negotiation between the first network element and the second network
element, and wherein the tracing header is negotiable on a hop by hop basis of a forwarding path of the modified packet based on the tracing header being dynamically transformable into a plurality of different negotiable packet formats supported by corresponding network elements in the forwarding path, the plurality of different negotiable packet formats different from the customized packet format; and
a tracing service to:
based on the unique identifier, identify the second network element by tracing the modified packet as it is forwarded to the second network element from the first network element, wherein the modified packet is dynamically transformed into at least one different negotiable packet format of the plurality of different packet formats along the forwarding path between the first network element and the second network element based on a difference in supported capabilities between the first network element and the corresponding network elements in the forwarding path, and is transformed into the customized packet type determined based on the negotiation prior to being received by the second network element;
collect forwarding information from the second network element that is associated with the modified packet, wherein the unique identifier of the tracing header of the modified packet is associated with the forwarding information; and
send, to a controller, the unique identifier of the tracing header of the modified packet and the forwarding information in order to diagnose a packet forwarding issue based on determining one or more causes of the packet forwarding issue along the forwarding path of the modified packet between the first network element, the corresponding network elements in the forwarding path, and the second network element, wherein the controller diagnoses the packet forwarding issue based on the forwarding information and the unique identifier of the modified packet as the modified packet is sent to the second network element.
 
14. A non-transitory computer-readable medium comprising instructions stored thereon, the instructions executable by one or more processors of a computing system to cause the computing system to:
determine, based on a negotiation between a first network element and a second network element, a customized packet type supported by the second network element;
add, to a packet received by the first network element, a tracing header to generate a modified packet, wherein the tracing header comprises a unique identifier of the modified packet and is customized to the customized packet type determined based on the negotiation between the first network element and the second network element, and wherein the tracing header is negotiable on a hop by hop basis of a forwarding path of the modified packet based on the tracing header being dynamically transformable into a plurality of different negotiable packet formats supported by corresponding network elements in the forwarding path, the plurality of different negotiable packet formats different from the customized packet format;
based on the unique identifier, identify the second network element by tracing the modified packet as it is forwarded to the second network element from the first network element, wherein the modified packet is dynamically transformed into at least one different negotiable packet format of the plurality of different packet formats along the forwarding path between the first network element and the second network element based on a difference in supported capabilities between the first network element and the corresponding network elements in the forwarding path, and is transformed into the customized packet type determined based on the negotiation prior to being received by the second network element;
collect forwarding information from the second network element that is associated with the modified packet, wherein the unique identifier is associated with the forwarding information; and
send the unique identifier of the tracing header of the modified packet and the forwarding information to a controller in order to diagnose a packet forwarding issue based on determining one or more causes of the packet forwarding issue along the forwarding path of the modified packet between the first network element, the corresponding network elements in the forwarding path, and the second network element, wherein the controller diagnoses the packet forwarding issue based on the forwarding information and the unique identifier of the modified packet as the modified packet is sent to the second network element.