Method and system for in-band telemetry channel in multi-hop network

The method and system for in-band telemetry in multi-hop networks use incremental fragment numbers and a fixed-length telemetry data field to optimize data collection efficiency and scalability, addressing the high overhead issue in conventional methods.

WO2025149156A1PCT designated stage expired Publication Date: 2025-07-17HUAWEI TECH CO LTD +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/EP2024/050568
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-01-11
Publication Date
2025-07-17

AI Technical Summary

Technical Problem

Conventional data flow control methods in multi-hop networks incur high per-packet overhead due to detailed per-hop information, limiting the efficiency and scalability of network monitoring.

Method used

A method and system for in-band telemetry that uses a telemetry header field with incremental fragment numbers and a fixed-length telemetry data field, allowing each network device to insert specific telemetry data into packets, optimizing data collection efficiency and minimizing overhead.

Benefits of technology

Enables precise network monitoring with consistent and low per-packet overhead, facilitating adaptive and scalable data transmission across multiple hops while maintaining data integrity and reducing interference.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024050568_17072025_PF_FP_ABST
    Figure EP2024050568_17072025_PF_FP_ABST
Patent Text Reader

Abstract

A method includes sending a first packet of information along a path through a plurality of network devices to a receiver device, the first packet has a telemetry header field including a fragment number having a fragment number value, and a plurality of fragments. The method further includes sending a second packet of information along the path through the plurality of network devices, the second packet includes a telemetry header field including a fragment number having a fragment number value which is incremented, as compared to the fragment number of the first packet. Moreover, each packet also includes a telemetry data field, and each network device inserts telemetry data into the telemetry data field, where each network device is assigned one or more fragment numbers, and each such network device inserts telemetry data specific to each such network device into a packet having a fragment number.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] METHOD AND SYSTEM FOR IN-BAND TELEMETRY CHANNEL IN MULTI-HOP NETWORK

[0002] TECHNICAL FIELD

[0003] The present disclosure relates generally to the field of data networks and, more specifically, to a method and a system for in- band telemetry channels in a multi-hop network.

[0004] BACKGROUND

[0005] Generally, data transmission and traffic management play a crucial role in network communication to ensure smooth data flow and prevent data congestion. Therefore, conventional network communication systems require various data flow control mechanisms to regulate the rate at which data is transmitted between different network devices. For example, the flow of data can be controlled by notifying a sender device whether a receiver device is ready to receive the data or, the amount of data that can be received by the receiver device, and the like.

[0006] Conventionally, certain attempts have been made to control the flow of data using a network protocol, in which various switches and routers push telemetry data into in-transit packets, which are forwarded through a network. More precisely, a data or control packet is sent from a sender device to a receiver device through a sequence of network devices (e.g., switches or routers), and such network devices push telemetry data into the data or control packet. In other words, the conventional approaches push all the telemetry data in either all the data packets or in a subset of all the data packets. In general, the telemetry data may include, for example, a time stamp, delay, queue status, port number, and link utilization. As the data packet is forwarded from a first node to a second node in the network, the telemetry data is pushed by intermediate nodes (i.e., switches or routers) and exported to an external collector lying at the end of the network path and / or from one of the routers. Examples of existing methods for in-band telemetry may include, in situ Operations, Administration and Maintenance (IO AM) and In-band Network Telemetry (INT). Such methods are used for pushing the telemetry data into all packets or a subset of all the packets. The main issue with the I0AM and the INT methods is that these methods provide a detailed per-hop information for each of the nodes along the data path and hence, incur a large overhead per packet. The per-packet overhead is a function of the number of hops.

[0007] Previously, a method for in-band telemetry using a fixed “field length” was proposed. This method uses a “delay” field in a data packet which is incremented by each router through which the data packet passes. The aforementioned method eliminates the requirement for each router to extend the length of the data packet for an extra information as the data packet travels through the network. However, this approach has a limitation, i.e., the “delay” field’s size remains the same throughout the data path and hence, provides a limited information of each node lying along the data path. Thus, there exists a technical problem of how to efficiently control the flow of data while minimizing the per-packet overhead.

[0008] Therefore, in light of the foregoing discussion, there exists a need to overcome the aforementioned drawbacks associated with the conventional data flow control techniques.

[0009] SUMMARY

[0010] The present disclosure provides a method and a system for in-band telemetry channel in a multi-hop network. The present disclosure provides a solution to the existing problem of how to efficiently control the flow of data while minimizing the per- packet overhead. An objective of the present disclosure is to provide a solution that overcomes at least partially the problems encountered in the prior art and provides an improved method and an improved system for in-band telemetry channel in a multihop network. One or more objectives of the present disclosure are achieved by the solutions provided in the enclosed independent claims. Advantageous implementations of the present disclosure are further defined in the dependent claims.

[0011] In one aspect, the present disclosure provides a method that includes sending a first packet of information along a path through a plurality of network devices to a receiver device, where the first packet has a telemetry header field, including a fragment number having a fragment number value. The method further includes sending a second packet of information along the path through the plurality of network devices, wherein the second packet includes a telemetry header field including a fragment number having a fragment number value, which is incremented, as compared to the fragment number of the first packet. Furthermore, each of the first packet and the second packet also includes a telemetry data field, wherein each of the plurality of network devices in the path inserts telemetry data into the telemetry data field, where each network device is assigned one or more fragment numbers, and each such network device inserts telemetry data specific to each such network device into a packet having a fragment number assigned to the specific network device.

[0012] The method introduces an innovative approach for in-band telemetry, providing detailed per-hop telemetry data. Notably, this approach maintains a short and unchanging per-packet overhead that remains consistent regardless of the number of hops, resulting in streamlined and resource-efficient network monitoring. The method can also be used for sending variable-length multi-hop telemetry’ data over a fixed-length field in multiple packets that can be used in servers, network interface cards, switches, and routers. In other words, the method is adept at transmitting variable-length multi-hop telemetry data by utilizing a consistent field length across multiple packets. Beneficially, the method enables adaptive multi-packet telemetry’ with reduced overhead. The method uses the in-band telemetry’ approach while keeping a low per-packet overhead and allows flexible and variable-length telemetry’ data to be sent over multiple packets using a fixed field per packet. Thus, it allows the transmission of flexible telemetry data across several packets, alluding to a more dynamic and adaptable network monitoring strategy. Moreover, the ability’ to bridge between a network segment with existing equipment using existing technologies and a different segment that uses the method may be valuable for partial or incremental deployment, enhancing the practicality' and value of the approach.

[0013] In an implementation form, the method further includes a step of sending a third packet of information along the path through the plurality of network devices, where the third packet has a telemetry header field including a fragment number having a fragment number value which is incremented, as compared to the fragment number of the second packet.

[0014] Advantageously, the incremental fragment number in the telemetry header enhances path traversal analysis, enabling precise identification of network device performance and potential bottlenecks in data transmission.

[0015] In a further implementation form, the telemetry header field of each of the first packet and the second packet also includes a token field wherein the token field can be assigned a first value which indicates to a network device in the path that the network device can insert its telemetry data into the telemetry data field and a second value which indicates to the network device that the network device cannot insert its telemetry data into the telemetry data field.

[0016] By virtue of using the token value in the telemetry header, the method enables dynamic control, such as the network devices can contribute telemetry data, optimizing data collection efficiency and granularity while minimizing interference with the overall data flow.

[0017] In a further implementation form, the telemetry data field is a fixed-length field.

[0018] Advantageously, the fixed length of the telemetry data field simplifies packet processing and memory management, leading to predictable and efficient resource allocation within network devices ensuring consistent and reliable telemetry data extraction. In a further implementation form, each of the plurality of network devices in the path sets the token field to the second value after the network device has inserted its telemetry data into a respective packet.

[0019] By virtue of updating the token field to the second value after telemetry data insertion, the method ensures accurate tracking of data contributions, preventing redundant or erroneous data insertion by the network devices and enhancing the reliability of collected telemetry information.

[0020] In a further implementation form, when a network device in the path receives a packet having a telemetry header, which has a fragment number that is not assigned to that network device, the network device stores its telemetry data locally to the network device.

[0021] By virtue of storing telemetry data locally when the network device encounters an unassigned fragment number, it minimizes data loss and maintains the integrity of telemetry information, allowing for subsequent retrieval and analysis even in scenarios where data association is temporarily disrupted.

[0022] In a further implementation form, when the network device that has stored its telemetry data locally to the network device receives a packet having a telemetry header, which has a fragment number, which is assigned to that network device, the network device retrieves the telemetry data stored locally to the network device and inserts the retrieved telemetry data into the telemetry data field of the received packet.

[0023] Advantageously, the method ensures seamless integration of the locally stored telemetry data into the corresponding packet upon fragment number alignment, enhancing data completeness and accuracy for downstream analysis.

[0024] In a further implementation form, a plurality of network devices in a path includes a first subset of network devices and a second subset of network devices, wherein (a) the first subset of network devices operates in a manner where telemetry data from each of the network devices in the first subset is stored in each telemetry data field of each packet which includes a telemetry header field, and (b) a second subset of network devices; wherein a network device in the path which is not in the first or second subsets operates as a translator network device which receives a packet from the first subset of network devices and divides the telemetry data corresponding to each of the network devices of the first subset, into fragments and sends each fragment in a separate packet of a plurality of packets over the second subset of network devices.

[0025] Advantageously, the method is used to optimize the telemetry data distribution by segregating network devices into subsets, allowing the first subset of network devices to efficiently consolidate telemetry data while enabling the translator network device to fragment and transmit the telemetry data over the second subset of network devices, enhancing data handling and scalability within the network path.

[0026] In a further implementation form, the translator network device receives the plurality of packets from the second subset of network devices and combines the telemetry data from each of the fragments of the plurality of packets into a single telemetry data field and inserts the combined telemetry data into a single packet and sends the single packet over the first subset of network devices.

[0027] Advantageously, the use of the translator network device streamlines telemetry data aggregation and transmission and further leads to, optimizing data consolidation and reducing packet complexity for efficient conveyance overthe first subset of network devices.

[0028] In a further implementation form, the telemetry header field of each of the first packet and the second packet also includes a token field wherein the token field can be assigned a first value which indicates to a network device in the path that the network device can insert its telemetry data into the telemetry data field, and a second value which indicates to the network device that the network device cannot insert its telemetry data into the telemetry data field, and wherein the translator network device sets the token field to the second value in each of the plurality of packets sent over the second subset of network devices after dividing the telemetry data corresponding to each of the network devices of the first subset, into fragments.

[0029] Advantageously, the method enhances data coordination and resource utilization by employing token values in the telemetry header, allowing precise control over telemetry data insertion for each of the network devices and ensuring efficient data division and consolidation by the translator network device during the operation over the second subset of devices.

[0030] In a further implementation form, the telemetry header field also includes a sequence number having a sequence number value where the sequence number corresponds to the plurality of fragments and where the second packet has a telemetry header field including a sequence number having the same sequence number value as the sequence number value of the first packet.

[0031] The method facilitates accurate and improved sequencing and correlation of the telemetry data fragments across the first packet and the second packet by utilizing a consistent sequence number value in the telemetry header, ensuring coherent reconstruction of data, and enabling precise analysis in the presence of fragmented transmission.

[0032] In a further implementation form, the telemetry header field of each of the first packet and the second packet also includes a number of fragments field, indicating the total number of fragments for a particular sequence number, wherein the receiver device uses the number of fragments field to reassemble the telemetry data from each of the plurality of network devices in the path.

[0033] Advantageously, the inclusion of the number of fragments field in the telemetry header enables the receiver device to precisely reconstruct telemetry data from all network devices by providing essential information about the total fragments associated with a specific sequence number, and further ensures accurate telemetry data reassembly and analysis.

[0034] In another aspect, the present disclosure provides a system comprising means adapted for carrying out all the steps of the method according to any preceding method claim.

[0035] The disclosed system achieves all the advantages and technical effects of the method of the present disclosure.

[0036] It has to be noted that all devices, elements, circuitry, units, and means described in the present application could be implemented in the software or hardware elements or any kind of combination thereof. All steps that are performed by the various entities described in the present application, as well as the functionalities described to be performed by the various entities, are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities. Even if, in the following description of specific embodiments, a specific functionality or step to be performed by external entities is not reflected in the description of a specific detailed element of that entity that performs that specific step or functionality, it should be clear for a skilled person that these methods and functionalities can be implemented in respective software or hardware elements or any kind of combination thereof. It will be appreciated that features of the present disclosure are susceptible to being combined in various combinations without departing from the scope of the present disclosure as defined by the appended claims.

[0037] Additional aspects, advantages, features, and objects of the present disclosure would be made apparent from the drawings and the detailed description of the illustrative implementations construed in conjunction with the appended claims that follow. BRIEF DESCRIPTION OF THE DRAWINGS

[0038] The summary above, as well as the following detailed description of illustrative embodiments, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the present disclosure, exemplary constructions of the disclosure are shown in the drawings. However, the present disclosure is not limited to specific methods and instrumentalities disclosed herein. Moreover, those skilled in the art will understand that the drawings are not to scale. Wherever possible, like elements have been indicated by identical numbers.

[0039] Embodiments of the present disclosure will now be described, by way of example only, with reference to the following diagrams wherein:

[0040] FIG. 1 A is an exemplary scenario of a multi-hop network, in accordance with an embodiment of the present disclosure;

[0041] FIG. IB is an exemplary scenario of a multi -hop network with two network segments and a translation node, in accordance with another embodiment of the present disclosure;

[0042] FIG. 2 is a block diagram of a system for in-band telemetry that uses a fixed-length telemetry field per packet, in accordance with an embodiment of the present disclosure; and

[0043] FIG. 3 A and FIG. 3B collectively depicts a flow chart of a method for in-band telemetry that uses a fixed-length telemetry field per packet, in accordance with an embodiment of the present disclosure.

[0044] In the accompanying drawings, an underlined number is employed to represent an item over which the underlined number is positioned or an item to which the underlined number is adjacent. A non-underlined number relates to an item identified by a line linking the non-underlined number to the item. When a number is non-underlined and accompanied by an associated arrow, the non-underlined number is used to identify a general item at which the arrow is pointing.

[0045] DETAILED DESCRIPTION OF THE DRAWINGS

[0046] The following detailed description illustrates embodiments of the present disclosure and ways in which they can be implemented. Although some modes of carrying out the present disclosure have been disclosed, those skilled in the art would recognize that other embodiments for carrying out or practising the present disclosure are also possible.

[0047] FIG. 1 A is an exemplary scenario of a multi-hop network, in accordance with an embodiment of the present disclosure. With reference to FIG. 1 A, there is shown a network 100A comprising a first node 102 (may also be represented as Hl), a second node 104 (may also be represented as RO), a third node 106 (may also be represented as Rl), a fourth node 108 (may also be represented as R2), a fifth node 110 (may also be represented as R3), a sixth node 112 (may also be represented as R4), a seventh node 114 (may also be represented as H2) and a collector 116. A data packet which is sent through the network 100A is shown to include a second layer header 118, a third layer header 120, a telemetry header field 122, a telemetry data field 124, a fourth layer header 126, and a payload 128. The telemetry data field 124 includes a telemetry data 130. The telemetry data 130 includes four data fragments, such as ‘R0’ telemetry data, ‘Rl ’ telemetry data, ‘R4’ telemetry data, and ‘R3 ’ telemetry data.

[0048] The telemetry header field 122 of the data packet sent through the network 100A includes a telemetry data sequence number. The telemetry data sequence number is used by each node (or network device) in the network 100A to match the required telemetry data with a current packet. Moreover, the telemetry data sequence number may be used by a last node in a network (e.g., the seventh node 114 (i.e., H2) in the network 100A) to reassemble the telemetry data (e.g., the telemetry data 130). The telemetry header field 122 of the data packet sent through the network 100A further includes a fragment number. The fragment number is also used by a last node in a network (e.g., the seventh node 114 (i.e., H2) in the network 100A) for reassembling the telemetry data (e.g., the telemetry data 130).

[0049] The telemetry header field 122 of the data packet sent through the network 100A also includes a token field. The token field indicates whether the telemetry data field 124 is available for pushing the telemetry data (more specifically, fragments of the telemetry data) or not. The first node 102 (i.e., Hl) of FIG. 1A, clears the value of the token field to “0” and every other node in the network 100A that is required to send the telemetry data, receives a clear token. Thereafter, the corresponding node pushes the telemetry data into the telemetry data field 124 and sets the token field value to “ 1”. The token field can be assigned a first value, which indicates to a network device in the path (i.e., from Hl to H2 direction) that the corresponding network device can insert corresponding telemetry data into the telemetry data field 124. In an example, the first value assigned to the second node 104 (i.e., RO) in the path that the second node 104 (i.e., RO) can insert corresponding telemetry data into the telemetry data field 124. In another example, the first value assigned to the third node 106 (i.e., Rl) in the path that the third node 106 (i.e., Rl) can insert its telemetry data into the telemetry data field 124. Furthermore, the token field can also be assigned a second value, which indicates to a network device in the path that the network device cannot insert corresponding telemetry data into the telemetry data field 124. In an example, the second value assigned to the fourth node 108 (i.e., R2) in the path that the fourth node 108 (i.e., R2) cannot insert corresponding telemetry data into the telemetry data field 124.

[0050] Moreover, the telemetry data field 124 is a fixed-length field. The telemetry data field 124 may also be referred to as a fixed telemetry field (FTF) or fixed length telemetry field. The telemetry data field 124 comprises the telemetry data 130, which can be fragmented into ‘M’ number of fragments and each fragment is inserted into the telemetry data field 124 by each respective node. As shown in the FIG. 1A, the telemetry data 130 is fragmented into four fragments (i.e., ‘RO’ telemetry data, ‘Rl ’ telemetry data, ‘R4’ telemetry data, and ‘R3 ’ telemetry data), and each fragment is inserted into telemetry data field of a different data packet.

[0051] In an exemplary scenario, for a first data packet sent by the first node 102 (i.e., Hl), each of the telemetry data sequence number and the fragment number has a value equal to “zero”. The value of the fragment number is “zero”, which indicates to other nodes (e.g., the second node 104, the third node 106, the fourth node 108, the fifth node 110, the sixth node 112 and the seventh node 114) in the network 100A, that this is the first data packet that marks a sampling point (that is, the point in time at which the node records the relevant measurement data) and the other nodes (i.e., the second node 104, the third node 106, the fourth node 108, the fifth node 110, the sixth node 112 and the seventh node 114) are required to record measurement data (for example, timestamp, queue status, as possibly other data that is measured with respect to this packet) which may be sent in later data packets. Also, the value of the token field for the first data packet is set to “1” by the second node 104 (i.e., RO), and the telemetry data field 124 corresponds to one of the four fragments of the telemetry data 130, that is ‘RO’ telemetry data. Alternatively stated, the ‘RO’ telemetry data is inserted into the telemetry data field of the first data packet. Similarly, for a second data packet, the value of the telemetry data sequence number is equal to “zero,” and the fragment number value is incremented by “1”. Also, the value of the token field for the second data packet is set to “1” by the third node 106 (i.e., Rl), and the telemetry data field 124 corresponds to a second fragment of the telemetry data 130 that is the “Rl” telemetry data. For a third data packet, the telemetry data sequence number value is equal to “zero,” and the fragment number value is further incremented by 1 and becomes equal to “2”. Also, the value of the token field for the third data packet is set to “1” by the fourth node 108 (i.e., R2), and the telemetry data field 124 corresponds to a third fragment that is the “R4” telemetry data. Similarly, for a fourth data packet, the value of the telemetry data sequence number is equal to “zero” and the fragment number value is further incremented by 1 and becomes equal to “3”. Also, the value of the token field for the fourth data packet is set to “1” by the fifth node 110 (i.e., R3), and the telemetry data field 124 corresponds to a fourth fragment that is the “R3” telemetry data. In FIG. 1 A, the seventh node 114 (i.e., H2) is configured to reassemble the telemetry data 130 and may send the telemetry data 130 to a collector, such as the collector 116. FIG. IB is an exemplary scenario of a multi-hop network with two network segments and a translation node, in accordance with another embodiment of the present disclosure. FIG. IB is described in conjunction with elements from FIG. 1A. With reference to FIG. IB, there is shown a network 100B with two network segments and a translation node between the two network segments. There is provided the first node 102 (i.e., Hl), the second node 104 (i.e., RO), the third node 106 (i.e., Rl), the fourth node 108 (i.e., R2), the fifth node 110 (i.e., R3), the sixth node 112 (i.e., R4), the seventh node 114 (i.e., H2), and the collector 116. There is further shown an eighth node 132 (may also be represented as R5) and a translator network device 134 (may also be represented as T).

[0052] In an implementation, the first node 102 (i.e., Hl) may be referred to as a sender device and the seventh node 114 may be referred to as a receiver device. There is further shown a data packet that includes the second layer header 118, the third layer header 120, the telemetry header field 122, the telemetry data field 124, the fourth layer header 126, and the payload 128. The telemetry data field 124 includes the telemetry data 130 that comprises various data fragments, such as the ‘RO’ telemetry data, ‘Rl’ telemetry data, ‘R4’ telemetry data, ‘R3’ telemetry data, and ‘R5’ telemetry data.

[0053] In accordance with an embodiment, a plurality of network devices in a path includes a first subset of network devices and a second subset of network devices. The network 100B is split into two network segments, for instance, a first network segment (e.g., per-hop telemetry segment) and a second network segment (e.g., FTF segment). The first network segment includes the first subset of network devices and the second network segment includes the second subset of network devices. As shown in FIG. IB, the first subset of the network devices includes the first node 102 (i.e., Hl), the second node 104 (i.e., RO), the third node 106 (i.e., Rl), the fourth node 108 (i.e., R2), the fifth node 110 (i.e., R4), and the sixth node 112 (i.e., R3). Similarly, the second subset of network devices includes the seventh node 114 (i.e., H2) and the eighth node 132 (i.e., R5). The first subset of network devices operates in a manner where telemetry data from each of the network devices in the first subset is inserted in each telemetry data field of each packet which includes a telemetry header field. Alternatively, the first subset of network devices operates using a conventional method that is based on a per-hop telemetry protocol (e.g., IOAM, INT), where a single data packet includes multiple telemetry fields, each one pushed by a different node.

[0054] The second subset of network devices operates using a fixed telemetry field that means the telemetry data field 124 has a fixed length for each data packet. Furthermore, there is shown a network device in the path, which is not in the first or second subsets, operates as the translator network device 134, which receives a packet from the first subset of network devices and divides the telemetry data corresponding to each of the network devices of the first subset, into fragments, and sends each fragment in a separate packet of a plurality of packets over the second subset of network devices (i.e., from Hl to H2 direction). The translator network device 134 may be referred to as a translation node which is configured to act as a bridge between the two network segments of the network 100B. The translator network device 134 (i.e., T) is configured to receive the data packet from the first subset of network devices, where the received data packet includes per-hop telemetry data. The translator network device 134 (i.e., T) is configured to divide the per-hop telemetry data into a number of fragments and transmit each fragment in the plurality of data packets towards the second subset of network devices. Therefore, the translator network device 134 (i.e., T) may be referred to as a fragment senderby virtue of sending the fragments towards the FTF segment. Once all of the telemetry data is sent to the FTF segment then, the additional fragments which are intended for additional nodes present in the second network segment (i.e., FTF segment) of the network 100B are pushed towards the collector 116. For example, the eighth node 132 (i.e., R5) pushes its own data and this is done on the additional fragment which has a clear token field and then, the seventh node 114 (i.e., H2) receives all the fragments from the two segments of the network 100B and can reassemble the entire set of the telemetry data. This is advantageous to optimize the telemetry data distribution by segregating network devices into subsets, allowing the first subset of network devices to efficiently consolidate telemetry data while enabling the translator network device 134 to fragment and transmit the telemetry data over the second subset of network devices, enhancing data handling and scalability within the network path. In an implementation scenario, the translator network device 134 (i.e., T) is configured to store the per-hop telemetry data from the packet received from the first subset of network devices and fragment the per-hop telemetry data into M fragments and transmit each fragment over the next M data packets to the second subset of network devices. In the considered implementation scenario, M is large enough to include Ml fragments of the telemetry data which arrived from the first network segment and M2 fragments corresponding to the telemetry data that is required to be recorded and pushed by the second subset of network devices in the second network segment, such that M1+M2 = M. During the first Ml fragments, the translator network device 134 sets value of the token field as “1” and afterwards clears to “0”. The translator network device 134 (i.e., T) is further configured to keep a state of each data flow, which includes information about whether there is currently per-hop telemetry data that is being fragmented, the content of this data, and information about the portion that is already sent and what needs to be sent further. The data packets received from the first subset of network devices of the first network segment include the telemetry header and data in a sampling-based manner, that is, one-of-N packets, where N>M. If such a condition is not met, then the data packet with per-hop telemetry data may arrive at the translator network device 134, while a previously arrived packet with telemetry data is still being fragmented and sent to the second network segment. In such a case, the translator network device 134 is configured to discard the newly arrived telemetry data and continues to process the previous data.

[0055] Additionally, the translator network device 134 receives the data packets and decides which packets of the received packets include the telemetry header and the telemetry data fields. Although the translator network device 134 does not create the data packets. For example, the first node 102 (i.e., Hl) is configured to send 1000 packets to the seventh node 114 (i.e., H2), and 10 packets out of 1000 packets have telemetry data. Since the data packets received from the first subset of network devices of the first network segment (i.e., the per-hop telemetry segment) include the telemetry header and data in a sampling-based manner therefore, it is possible that only 10 out of 1000 packets have the telemetry data. When these 10 data packets reach the translator network device 134, the translator network device 134 fragments each of the 10 data packets into 5 fragments and transmits each fragment in one data packet. Therefore, when the translator network device 134 sends out these packets, 50 out of 1000 packets include the telemetry header and data. Alternatively stated, out of 1000 packets, 10 packets have telemetry data in the first network segment (i.e., per-hop telemetry segment) and 50 packets have telemetry data in the second network segment (i.e., the FTF segment).

[0056] In accordance with an embodiment, the telemetry header field 122 of each of the first packet and the second packet also includes a token field wherein the token field can be assigned a first value which indicates to a network device in the path that the network device can insert its telemetry data into the telemetry data field 124, and a second value which indicates to the network device that the network device cannot insert its telemetry data into the telemetry data field 124, and wherein the translator network device 134 sets the token field to the second value in each of the plurality of packets sent over the second subset of network devices after dividing the telemetry data corresponding to each of the network devices of the first subset, into fragments. The translator network device 134 (i.e., T) sets the value of the token field to the second value (i.e., “1”) when each fragment of the plurality of packets is sent to the second subset of network devices (i.e., the FTF segment). The use of the token field values in the telemetry header field 122 is advantageous for data coordination and resource utilization which further results in a precise control over telemetry data insertion for each of the network devices.

[0057] In accordance with an embodiment, the translator network device 134 receives the plurality of packets from the second subset of network devices and combines the telemetry data from each of the fragments of the plurality of packets into a single telemetry data field and inserts the combined telemetry data into a single packet and sends the single packet over the first subset of network devices. In an implementation scenario, the translator network device 134 may be configured to receive the plurality of data packets from the second subset of network devices of the second network segment (i.e., FTF segment) of the network 100B and send the plurality of data packets in form of the single data packet to the first subset of network devices of the first network segment (i.e., per-hop telemetry segment). Alternatively stated, the translator network device 134 is configured to receive the data packet from the FTF segment and send to the per-hop telemetry segment. In the considered implementation scenario, the translator network device 134 (i.e., T) is configured to function as a fragment receiver and reassemble each of the fragments of the plurality of data packets into the single telemetry data field (e.g., the telemetry data field 124). Thereafter, the single packet comprising the combined telemetry data (e.g., the telemetry data 130) is sent to the first subset of network devices (i.e., the per-hop telemetry segment). Moreover, the translator network device 134 is configured to detect the end of the telemetry data by receiving a token field value equal to zero while functioning as the fragment receiver. The FTF may be accompanied by a “number of fragments” field, which is in the telemetry header field. In such implementation scenario, this is beneficial to optimize network resources by reducing the number of individual packets traversing the network, which further leads to minimizing potential congestion, and enhancing overall efficiency in conveying comprehensive telemetry information across the network. Furthermore, such arrangement of the translator network device 134 streamlines the telemetry data aggregation and transmission, and further optimizes data consolidation and reduces packet complexity for efficient conveyance over the first subset of network devices.

[0058] Additionally, the data packet sent from the FTF segment to the per-hop telemetry segment, includes the telemetry information of the FTF segment, is the Mthpacket that is received by the translator network device 134 and caused the reassembly. While the telemetry data on the FTF segment corresponds to the first of the M packets, the Mlpacket triggers the measurement in the per-hop telemetry segment of the network 100B. Thus, the packet that finally arrives at the per-hop telemetry segment includes the telemetry data corresponding to the current packet for the per-hop telemetry segment and telemetry data corresponding to the first of the M packets for the FTF segment.

[0059] FIG. 2 is a block diagram of a system for in-band telemetry protocol that uses a fixed-length telemetry field per packet, in accordance with an embodiment of the present disclosure. FIG. 2 is described in conjunction with elements from FIGs. 1 A and IB. With reference to FIG. 2, there is shown a system 200 that includes a sender device 202, a plurality of network devices 214, and a receiver device 216. The sender device 202 includes a first controller 204 and a first communication interface 212. The sender device 202 is configured to send a first packet 206A, and a second packet 206B and optionally, a third packet 206C. Furthermore, the receiver device 216 includes a second controller 218 and optionally, a second communication interface 220. The first packet 206A includes the telemetry header field 122 and the telemetry data field 124 (of FIG. 1A).

[0060] The sender device 202 of the system 200 is configured to send the first packet 206A of information, the second packet 206B of information and optionally, the third packet 206C, along a path through the plurality of network devices 214 to the receiver device 216. Examples of the sender device 202 may include, but are not limited to, a user equipment, a personal digital assistant, a portable computing device, or an electronic device, and the like.

[0061] The receiver device 216 of the system 200 is configured to receive the first packet 206A of information, the second packet 206B of information and optionally, the third packet 206C, along the path through the plurality of network devices 214 from the sender device 202. Examples of the receiver device 216 are similar to that of the sender device 202 of the system 200.

[0062] Each of the plurality of network devices 214 is configured to transmit the first packet 206A, the second packet 206B and optionally, the third packet 206C from the sender device 202 to the receiver device 216. Examples of the plurality of network devices 214 may include, but are not limited to, routers, switches, firewalls, servers, and the like.

[0063] The first controller 204 of the sender device 202 is configured to send the first packet 206A and the second packet 206B of information from the sender device 202 to the receiver device 216. Optionally, the first controller 204 may be configured to send the third packet 206C of information from the sender device 202 to the receiver device 216. Similarly, the second controller 218 of the receiver device 216 is configured to receive the first packet 206 A and the second packet 206B of information from the sender device 202. Optionally, the second controller 218 of the receiver device 216 may be configured to receive the third packet 206C of information from the sender device 202. Examples of implementation of each of the first controller 204 and the second controller 218 may include, but are not limited to, a central data processing device, a microprocessor, a microcontroller, a complex instruction set computing (CISC) processor, an application-specific integrated circuit (ASIC) processor, a reduced instruction set (RISC) processor, a very long instruction word (VLIW) processor, a state machine, and other processors or control circuitry.

[0064] The first communication interface 212 of the sender device 202 includes either hardware or software or a combination thereof that is configured to establish communication between the first controller 204 and the plurality of network devices 214. Similarly, the second communication interface 220 includes either hardware or software or a combination thereof that is configured to establish communication between the second controller 218 and the plurality of network devices 214. Examples of each of the first communication interface 212 and the second communication interface 220 may include, but are not limited to, a computer port, a network socket, a network interface controller (NIC), and any other network interface device.

[0065] In operation, the sender device 202 (more specifically, the first controller 204 of the sender device 202) is configured to send the first packet 206A of information along a path through the plurality of network devices 214 to the receiver device 216. The first packet 206A includes the telemetry header field 122, that includes the telemetry data sequence number, a fragment number having a fragment number value and a token field. The first controller 204 of the sender device 202 is further configured to send the second packet 206B of information along the path through the plurality of network devices 214. The second packet 206B includes the telemetry header field 122 that includes the telemetry data sequence number, a fragment number having a fragment number value and a token field. The fragment number value of the second packet 206B is incremented, as compared to the fragment number value of the first packet 206A. For example, if the first packet 206A has the fragment number value as “0”, which indicates to the plurality of network devices 214 that this is the first data packet and marks the sampling point. Also, the plurality of network devices 214 are required to record the measurement data, which may be sent in later packets (e.g., the second packet 206B or the third packet 206C). Moreover, the increment in the fragment number value of the second packet 206B in comparison to that of the first packet 206A indicates that the first packet 206A and the second packet 206B correspond to the same telemetry data. The first packet 206A of information has the telemetry header field 122 that may include information, such as metadata, source of the first packet 206A, destination address of the first packet 206A, packet length, protocol information, error detection codes, and the like, that may be required for a reliable transmission of the first packet 206A of information to the receiver device 216. The second packet 206B of information also includes the telemetry header field 122 which may include the information similar to that of the first packet 206A. The first packet 206A of information also has the telemetry data field 124 that includes a telemetry data (e.g., the telemetry data 130) which is fragmented into a number of fragments, as shown in FIGs. 1 A and IB.

[0066] In an example, the sender device 202 is configured to send the first packet 206A and the second packet 206B of information to the receiver device 216, and after that, the receiver device 216 prepares a summary of flow control credits in the telemetry data for each of the plurality of network devices 214 in the path and transmit the summary to the sender device 202. Furthermore, the sender device 202 is configured to use the summary to control the transmission of data packets to the receiver device 216. As a result, a more reliable connection is established between the sender device 202 and the receiver device 216.

[0067] The system 200 is based on sending in-band telemetry protocol, which includes detailed per-hop telemetry data, and requires a short and fixed per-packet overhead that does not depend on the number of hops. The system 200 is also used for sending variable-length multi-hop telemetry data over a fixed field in multiple packets that can be used in servers, NICs, switches, and routers. Beneficially, as compared to conventional approaches, the system 200 uses the in-band telemetry approach while keeping a low per-packet overhead and allows a flexible and variable length telemetry data to be sent over multiple packets using a fixed length field per packet. FIGs. 3 A and 3B collectively depicts a flow chart of a method for in-band telemetry that uses a fixed-length telemetry field per packet, in accordance with an embodiment of the present disclosure. FIGs. 3A and 3B are described in conjunction with elements from FIG. 1 A, IB and 2. With reference to FIGs. 3 A and 3B, there is shown a flow chart of a method 300 that includes steps 302 to 322 (the steps 302 to 312 are shown in FIG. 3 A and the steps 314 to 322 are shown in FIG. 3B).

[0068] The method 300 is used for in-band telemetry protocol that uses a fixed-length telemetry field per packet, which is a relatively small field and accommodates a subset of the full set of fields that is transmitted to the receiver device 216 in order to transport all telemetry data overthe telemetry data field 124. Moreover, a piece of telemetry information is sampled for one-of-N packets, and then a telemetry data, which may be composed of a large number of bytes, is fragmented into M fragments (e.g., M<N). Each fragment is inserted in the FTF of one of the packets. Furthermore, a last node reassembles the telemetry data and may be configured to send the telemetry data to a collector, as previously shown and described in FIG. 1 A and FIG. IB.

[0069] Referring to FIG. 3 A, at step 302, the method 300 comprises incorporating the telemetry header field 122 and a placeholder for the telemetry data field 124 in a set of M packets. In an implementation, the sender device 202 is configured for incorporating the telemetry header field 122 and the placeholder for the telemetry data field 124 in the set of M packets, such as in the first packet 206A and the second packet 206B. The telemetry header field 122 includes a sequence number having a sequence number value. The sequence number may also be referred to as a telemetry data sequence number. The telemetry data sequence number is used by each network device of the plurality of network devices 214 to match the required telemetry data with a current packet. Moreover, the telemetry data sequence number may be used by a last node in a network (e.g., the seventh node 114 (i.e., H2) in the network 100A) to reassemble the telemetry data (e.g., the telemetry data 130).

[0070] At step 304, the method 300 comprises incorporating a common telemetry data sequence number into the M packets. In an implementation, the sender device 202 is configured for incorporating the common telemetry data sequence number into the M packets, such as in the first packet 206A and the second packet 206B. The sender device 202 is configured to fragment the telemetry data (e.g., the telemetry data 130) into M fragments, such that each of the M fragments is pushed into the telemetry data field of the M data packets. Also, each of the M data packets has the same telemetry data sequence number. The telemetry data sequence number remains same for the number of fragments that correspond to the same telemetry data. For example, the telemetry data sequence number remains same for the fragments that are represented as “R0” telemetry data, “Rl” telemetry data, “R4” telemetry data, and “R3” telemetry data, which corresponds to the telemetry data 130, as described in FIG. 1 A.

[0071] At step 306, the method 300 comprises incorporating a sequence of consecutive fragment numbers into each of the M packets. Since the telemetry data is fragmented into M fragments and each fragment is inserted into the telemetry data field of the M packets therefore, each packet includes the sequence of the consecutive fragment numbers. For example, the first packet 206A has a fragment number value of “0” hence, the second packet 206B has the fragment number value of “1 ” which is incremented in comparison to the fragment number value of the first packet 206A. This way, the fragment number value gets incremented in the similar pattern for remaining of the M packets.

[0072] At step 308, the method 300 comprises incorporating a token field into each of the M packets. In an implementation, the sender device 202 is configured to incorporate the token field into each of the M packets. The token field is a one-bit field that has a value of either “0” or “1”. The token field indicates whether the FTF is available for pushing the telemetry data. The first node 102 (i.e., Hl) of FIG. 1A, clears the token field value to “0” and every other node in the network lOOA that is required to send the telemetry data and receives a clear token, the node pushes the telemetry data and sets the token field value to “ 1”.

[0073] At step 310, the method 300 comprises sending the first packet 206A of information along the path through the plurality of network devices 214 to the receiver device 216, where the first packet 206A includes the telemetry header field 122 including a fragment number having a fragment number value. In an implementation, the sender device 202 may be configured to send the first packet 206A of information to the receiver device 216 through the plurality of network devices 214. The first packet 206A of information has the telemetry header field 122 which includes the fragment number having the fragment numbervalue. The fragment number value is incremented by 1 for each fragment that belongs to the same data sample (or same telemetry data, e.g., the telemetry data 130). Moreover, the fragment number value can be used by a last node (e.g., the seventh node 114 (i.e., H2) in the network 100A) to reassemble the telemetry data (i.e., the telemetry data 130).

[0074] In an implementation, the first packet 206A of information includes the telemetry header field 122 that includes the telemetry data sequence number, which is set to ‘0’ and the fragment number, which is set to ‘O’. In such implementation, the fragment number is set to ‘O’, which indicates to routers that this is the first packet 206A and marks the sampling point, which means that the routers need to record the measurement data, which may be sent in later packets. Furthermore, in such an implementation, the token is set to ‘ 1 ’ by RO (i.e., the second node 104 of FIG. 1 A), and the telemetry data field 124 comprises the “RO” telemetry data.

[0075] At step 312, the method 300 further includes sending a second packet 206B of information along the path through the plurality of network devices 214. The second packet 206B includes the telemetry header field, including a fragment number having a fragment number value, which is incremented, as compared to the fragment number of the first packet. In an implementation, the sender device 202 may be configured to send the second packet 206B of information to the receiver device 216 through the plurality of network devices 214. Similar to the first packet 206A, the second packet 206B also includes the telemetry header field (similar to that of the first packet 206A, i.e., the telemetry header field 122) that includes the fragment number value. The fragment number value of the second packet 206B is incremented by 1 in comparison to the fragment number value of the first packet 206A.

[0076] For example, a telemetry data may be composed of a large number of bytes and therefore, fragmented into M fragments. Thereafter, each fragment is inserted into the telemetry data field of M data packets and each of the M packets is sent over a Network (e.g., the network 100A). As shown in FIG. 1 A, the telemetry data 130 is large enough and fragmented into M = 4 fragments and each fragment is inserted into the telemetry data field of M = 4 data packets and each of the M packets is sent over the network 100A. Each of the M data packets has a consecutive sequence of the fragment number value when each data packet is sent over the network in a consecutive order. In another implementation scenario, the telemetry data may be fragmented into two fragments or three fragments or in a definite number of fragments.

[0077] Furthermore, each of the first packet 206A and the second packet 206B includes the telemetry data field 124, and each of the plurality of network devices 214 in the path inserts telemetry data into the telemetry data field 124, where each network device is assigned one or more fragment numbers and each such network device inserts telemetry data specific to each such network device into a packet having a fragment number assigned to the specific network device. In addition to the telemetry header field 122, each of the first packet 206A and the second packet 206B includes the telemetry data field 124. The second packet 206B includes a telemetry data field similar to the telemetry data field 124 of the first packet 206A. The telemetry data field 124 includes the telemetry data 130 that includes the fragmented data (e.g., “R0” telemetry data, “Rl” telemetry data, “R4” telemetry data, and “R3” telemetry data). Each network device from the plurality of network devices 214 is configured to insert the telemetry data to the telemetry data field 124 of the first packet 206A and the second packet 206B.

[0078] Now referring to FIG. 3B, in accordance with an embodiment, at step 314, the method 300 includes a step of sending a third packet 206C of information along the path through the plurality of network devices 214, where the third packet 206C has a telemetry header field including a fragment number having a fragment number value, which is incremented, as compared to the fragment number of the second packet 206B. In an implementation scenario, a telemetry data may be fragmented into three fragments therefore, there will be three data packets corresponding to the three fragments which will be shared over the network. Similar to the first packet 206A and the second packet 206B, the sender device 202 is configured to send the third packet 206C of information to the receiver device 216 through the plurality of network devices 214. Similar to the first packet 206A, and the second packet 206B, the third packet 206C also includes the telemetry header field that includes the fragment number value. The fragment number value of the third packet 206C is incremented by 1 in comparison to the fragment number value of the second packet 206B.

[0079] The telemetry header field 122 is separate from the telemetry data field 124, such as the telemetry header field 122 includes a telemetry data sequence number, which is incremented by one for a whole block of telemetry data, and when a network device wants to send a new block of telemetry data, the telemetry data sequence number is incremented by one. Furthermore, the fragment number is used to determine, which fragment is the current one. If there are four fragments, each one has a different fragment number value. Optionally, each fragment does not have to be for each node, and the fragment can be for a subset of each node, for example, if RO has a large telemetry data field, then the telemetry data field 124 can be broken up into three fragments. Optionally, if the fragment number of the second packet 206B is zero, then the second packet 206B is treated as a “trigger packet”, for which the telemetry data is recorded, for example, the timestamp, queue status, and possibly other data is measured with respect to the second packet, and stored, to be sent in future packets, such as in the third packet 206C.

[0080] Furthermore, the fragment number value for the third packet 206C is incremented as compared to the fragment number value of the second packet 206B. In an example, the second packet 206B includes a telemetry data sequence numberthat is set to ‘O’, a fragment number value set to ‘ 1’, a token field is set to ‘ 1’ by R1 (i.e., the third node 106 in FIG. 1A), and the telemetry data field 124 comprises the “Rl” telemetry data. The third packet 206C includes a telemetry data sequence number that is set to ‘O’, a fragment number value set to ‘2’, a token field is set to ‘ 1’ by R4 (i.e., the sixth node 112 in FIG. 1A), and the telemetry data field 124 comprises the “R4” telemetry data. The fragment number value (i.e., 2) for the third packet 206C is incremented by 1 in comparison to the fragment number value (i.e., 1) for the second packet 206B. Advantageously, the incremental fragment number value in the telemetry header field 122 enhances path traversal analysis, enabling precise identification of network device performance and potential bottlenecks in data transmission. Optionally, a fourth packet of information may be sent along the path through the plurality of network devices 214, such as the fourth packet includes a telemetry data sequence number that is set to ‘O’, a fragment number set to ‘3 ’, a token is set to ‘ 1 ’ by R3 (i.e., the fifth node 110), and the telemetry data field 124 comprises the “R3” telemetry data.

[0081] At step 316, the method 300 comprises receiving a packet with the telemetry header field 122. In an implementation, each of the plurality of network devices 214 (i.e., routers / switches) in the path is configured to receive the first packet 206A and the second packet 206B with the telemetry header field 122.

[0082] At step 318, the method 300 further comprises, reassembling the telemetry data (e.g., the telemetry data 130) from each of the plurality of network devices 214 in the path using the number of fragments field. In an implementation, the receiver device 216 is configured to reassemble the telemetry data from each of the plurality of network devices 214 in the path based on the number of fragments field. The number of fragments field includes the total number of fragments for a particular telemetry data sequence number. Alternatively stated, on the basis of the total number of fragments, the receiver device 216 is configured to reassemble the entire set of telemetry data.

[0083] In an implementation, each network node is configured to determine if a current network node, such as a first network node (e.g., the first node 102), possess any remaining telemetry data for the received telemetry data sequence number, then the corresponding network node, such as the first network node, is configured to send the remaining telemetry data based on status of the token field whether the token field is clear or not.

[0084] At step 320, the method 300 further comprises storing the received telemetry data field (i.e., the telemetry data field 124) in a reassembly buffer according to the sequence number and fragment number. In an implementation, the received data (i.e., the received telemetry data) is stored in the reassembly buffer with respect to the received telemetry data sequence number and the fragment number value.

[0085] At step 322, the method 300 further comprises sending a last fragment acknowledgement back to the fragment sender. In an implementation, the receiver device 216 may be configured to send the last fragment acknowledgement back to the sender device 202 (or the fragment sender). The last fragment acknowledgement is used to provide acknowledgement of the received telemetry data. In another implementation, the sender device 202 (i.e., the fragment sender) and the receiver device 216 (i.e., the fragment receiver) may also function as intermediate nodes.

[0086] In accordance with an embodiment, the telemetry header field 122 of each of the first packet 206A and the second packet 206B also includes a token field, such as the token field can be assigned a first value, which indicates to a network device in the path that the network device can insert corresponding telemetry data into the telemetry data field 124, and a second value, which indicates to the network device that the network device cannot insert corresponding telemetry data into the telemetry data field 124. In other words, when a network device receives a packet (e.g., the first packet 206A), then the telemetry header field 122 indicates whether a subsequent network device can insert telemetry data into the telemetry data field 124. For example, if the first value of the token field for the first packet 206A is clear, then the subsequent network device (i.e., the second node 104 (i.e., RO)) is configured for incorporating the telemetry data into the telemetry data field 124 or a subset of the telemetry data that fits into the telemetry data field 124 (i.e., leaving the remainder for future packets). By virtue of using token values in the telemetry header field 122, the method 300 enables dynamic control when network devices can contribute telemetry data, optimizing data collection efficiency and granularity while minimizing interference with the overall data flow. In such an embodiment, the telemetry data field 124 is a fixed-length field. Advantageously, the fixed length of the telemetry data field 124 simplifies packet processing and memory management, leading to predictable and efficient resource allocation within network devices ensuring consistent and reliable telemetry data extraction. In such an embodiment, each of the plurality of network devices 214 in the path sets the token field to the second value after the network device has inserted corresponding telemetry data into a respective packet. For example, the second node 104 (i.e., RO) is configured to set the token field. In another example, if the token field for the first packet 206A is clear, then the first value of the token field indicates that the first packet 206A does not contain the telemetry data field 124 content and that all data for the current sequence number was received. By virtue of updating the token field to the second value after telemetry data insertion, the method 300 ensures accurate tracking of data contributions, preventing redundant or erroneous data insertion by the network devices and enhancing the reliability of collected telemetry information.

[0087] Optionally, the fragment number value can be used as a replacement for the token field if each node has a re-assigned fragment number, for example, if R0 is assigned fragment ‘0’ and Rl is assigned fragment ‘1’, then there is no need for the token, but the token provides flexibility by avoiding the requirement for estimating the number of hops along the path through the plurality of network devices 214.

[0088] In accordance with an embodiment, when a network device in the path receives a packet having a telemetry header, which has a fragment number, which is not assigned to that network device, then the network device stores corresponding telemetry data locally to the network device. For example, a first network device receives the first packet 206A with the telemetry header field 122 that includes the fragment number, which is not assigned to the first network device and assigned to another network device, then the first network device is configured to store the received telemetry data in a reassembly buffer according to the sequence number and the fragment number of the received first packet. By virtue of storing the telemetry data locally when the network device (i.e., the first network device) encounters an unassigned fragment number, the network device minimizes data loss and maintains the integrity of telemetry information, allowing for subsequent retrieval and analysis of data even in scenarios where data association is temporarily disrupted. In accordance with an embodiment, when the network device, which has stored its telemetry data locally to the network device, receives a packet having a telemetry header, which has a fragment number, which is assigned to that network device, then the network device retrieves the telemetry data stored locally to the network device and inserts the retrieved telemetry data into the telemetry data field 124 of the received packet. For example, the first network device receives the second packet 206B with the telemetry header that includes the fragment number, which is assigned to the first network device, then the first network device is configured to retrieve the telemetry data stored locally to the network device and inserts the retrieved telemetry data into the telemetry data field 124 of the second packet 206B. Beneficially, the method 300 ensures seamless integration of the telemetry data into the corresponding packet upon fragment number alignment, enhancing data integrity and accuracy for downstream analysis.

[0089] In accordance with an embodiment, the telemetry header field 122 also includes a sequence number having a sequence number value where the sequence number corresponds to the plurality of fragments and the second packet 206B has a telemetry header field 122 including a sequence number having the same sequence number value as the sequence number value of the first packet 206A. In addition to the fragment number, the telemetry header field 122 includes the sequence number (i.e., the telemetry data sequence number). The telemetry header field 122 of the second packet 206B has the same sequence number value as that of the first packet 206A which means that each of the first packet 206A and the second packet 206B corresponds to the same telemetry data but to the different fragments of the telemetry data. This leads to a more reliable reassembly of the telemetry data at the receiver device 216.

[0090] In accordance with an embodiment, the sequence numbers and the fragment numbers are used by the receiver device 216 to reassemble the telemetry data from each of the plurality of network devices 214 in the path. The receiver device 216 is configured to use the sequence numbers and the fragment numbers in order to decide whether the entire set of the telemetry data is received or not. The use of the sequence numbers and the fragment numbers leads to more reliable data transmission and reception over the network.

[0091] In accordance with an embodiment, the telemetry header field 122 of each of the first packet 206A and the second packet 206B also includes a number of fragments field, indicating the total number of fragments for a particular sequence number, and the receiver device 216 uses the number of fragments field to reassemble the telemetry data from each of the plurality of network devices 214 in the path. In other words, the sequence number is used by each network device to match the required telemetry data with the current packet, such as the first packet 206A. Furthermore, the last node, such as the receiver device 216, uses the number of fragments field to reassemble the telemetry data from each of the plurality of network devices 214 in the path. By virtue of inclusion of the number of fragments field in the telemetry header field 122 of each of the first packet 206A and the second packet 206B, the receiver device 216 efficiently reassembles the telemetry data from each of the plurality of network devices 214. Advantageously, the inclusion of the number of fragments field in the telemetry header field 122, enables the receiver device 216 to precisely reconstruct telemetry data from all network devices in the path.

[0092] The method 300 is used for sending in-band telemetry protocol, which includes detailed per-hop telemetry data, and requires a short and fixed per-packet overhead that does not depend on the number of hops. The method 300 is also useful for sending variable-length multi-hop telemetry data over a fixed length field in multiple packets that can be used in servers, network interface cards, switches, and routers. Beneficially, the method 300 achieves a low per-packet overhead and allows flexible and variable length telemetry data to be sent over multiple packets using a fixed length field per packet. Moreover, the method 300 manifests the ability to bridge between a network segment with existing equipment using existing technologies and a different segment that is based on the method 300 which is valuable for partial or incremental deployment.

[0093] In some implementations, the steps 302 to 308 may be optional. In some implementations, the steps 314 to 322 may be optional. In some implementations, all the steps i.e., 302 to 322 may be used. The steps 302 to 322 are only illustrative, and other alternatives can also be provided where one or more steps are added, or one or more steps are provided in a different sequence without departing from the scope of the claims herein.

[0094] There is provided a computer program comprising instructions for carrying out all the steps of the method 300. The computer program is executed on a computer system. The computer program is implemented as an algorithm, embedded in a software stored in the non-transitory computer-readable storage medium having program instructions stored thereon, the program instructions being executable by the one or more processors in the computer system to execute the method 300. The non- transitory computer-readable storage means may include, but are not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. Examples of implementation of computer-readable storage medium, but are not limited to, Electrically Erasable Programmable Read-Only Memory (EEPROM), Random Access Memory (RAM), Read Only Memory (ROM), Hard Disk Drive (HDD), Flash memory, a Secure Digital (SD) card, Solid-State Drive (SSD), a computer-readable storage medium, and / or CPU cache memory.

[0095] Modifications to embodiments of the present disclosure described in the foregoing are possible without departing from the scope of the present disclosure as defined by the accompanying claims. Expressions such as “including”, “comprising”, “incorporating”, “have”, “is” used to describe, and claim the present disclosure are intended to be constmed in a non-exclusive manner, namely allowing for items, components or elements not explicitly described also to be present. Reference to the singular is also to be constmed to relate to the plural. The word “exemplary” is used herein to mean “serving as an example, instance or illustration”. Any embodiment described as “exemplary” is not necessarily to be constmed as preferred or advantageous over other embodiments or to exclude the incorporation of features from other embodiments. The word “optionally” is used herein to mean “is provided in some embodiments and not provided in other embodiments”. It is appreciated that certain features of the present disclosure, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the present disclosure, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable combination or as suitable in any other described embodiment of the disclosure.

Claims

CLAIM1. A method (300) comprising steps of: sending a first packet (206 A) of information along a path through a plurality of network devices (214) to a receiver device (216), where the first packet (206 A) has a telemetry header field (122) including a fragment number having a fragment number value; and sending a second packet (206B) of information along the path through the plurality of network devices (214), wherein the second packet (206B) includes a telemetry header field (122) including a fragment number having a fragment number value which is incremented, as compared to the fragment number of the first packet (206 A); wherein each of the first packet (206A) and the second packet (206B) also includes a telemetry data field (124), and wherein each of the plurality of network devices (214) in the path inserts telemetry data into the telemetry data field (124), where each network device is assigned one or more fragment numbers and each such network device inserts telemetry data specific to each such network device into a packet having a fragment number assigned to the specific network device.

2. The method (300) of claim 1 further comprising a step of sending a third packet (206C) of information along the path through the plurality of network devices (214), where the third packet (206C) has a telemetry header field including a fragment number having a fragment number value which is incremented, as compared to the fragment number of the second packet (206B).

3. The method (300) of claim 1 wherein the telemetry header field (122) of each of the first packet (206A) and the second packet (206B) also includes a token field wherein the token field can be assigned a first value which indicates to a network device in the path that the network device can insert its telemetry data into the telemetry data field (124), and a second value which indicates to the network device that the network device cannot insert its telemetry data into the telemetry data field (124).

4. The method (300) of claim 1 wherein the telemetry data field (124) is a fixed length field.

5. The method (300) of claim 3 wherein each of the plurality of network devices (214) in the path sets the token field to the second value after the network device has inserted its telemetry data into a respective packet.

6. The method (300) of claim 1 wherein when a network device in the path receives a packet having a telemetry header which has a fragment number which is not assigned to that network device, the network device stores its telemetry data locally to the network device.

7. The method (300) of claim 6 wherein when the network device which has stored its telemetry data locally to the network device receives a packet having a telemetry header which has a fragment number which is assigned to that network device, the network device retrieves the telemetry data stored locally to the network device and inserts the retrieved telemetry data into the telemetry data field (124) of the received packet.

8. The method (300) of claim 1 wherein a plurality of network devices (214) in a path includes a first subset of network devices and a second subset of network devices, wherein:(a) the first subset of network devices operates in a manner where telemetry data from each of the network devices in the first subset is stored in each telemetry data field of each packet which includes a telemetry header field, and(b) the second subset of network devices which operate as claimed in claim 1; wherein a network device in the path which is not in the first or second subsets operates as a translator network device (134) which receives a packet from the first subset of network devices and divides the telemetry data corresponding to each of the network devices of the first subset, into fragments, and sends each fragment in a separate packet of a plurality of packets over the second subset of network devices.

9. The method (300) of claim 8 wherein the translator network device (134) receives the plurality of packets from the second subset of network devices and combines the telemetry data from each of the fragments of the plurality of packets into a single telemetry data field and inserts the combined telemetry data into a single packet and sends the single packet over the first subset of network devices.

10. The method (300) of claim 9 wherein the telemetry header field (122) of each of the first packet (206 A) and the second packet (206B) also includes a token field wherein the token field can be assigned a first value which indicates to a network device in the path that the network device can insert its telemetry data into the telemetry data field (124), and a second value which indicates to the network device that the network device cannot insert its telemetry data into the telemetry data field ( 124), and wherein the translator network device (134) sets the token field to the second value in each of the plurality of packets sent over the second subset of network devices after dividing the telemetry data corresponding to each of the network devices of the first subset, into fragments.

11. The method (300) of claim 1 wherein the telemetry header field (122) also includes a sequence number having a sequence number value where the sequence number corresponds to the plurality of fragments and where the second packet (206B) has a telemetry header field including a sequence number having the same sequence number value as the sequence number value of the first packet (206 A).

12. The method (300) of claim 11 wherein the sequence numbers and the fragment numbers are used by the receiver device (216) to reassemble the telemetry data from each of the plurality of network devices (214) in the path.

13. The method (300) of claim 11 wherein the telemetry header field (122) of each of the first packet (206 A) and the second packet (206B) also includes a number of fragments field, indicating a total number of fragments for a particular sequence number, and wherein the receiver device (216) uses the number of fragments field to reassemble the telemetry data from each of the plurality of network devices (214) in the path.

14. A system (200) comprising means adapted for carrying out all the steps of the method (300) according to any preceding method (300) claim.

15. A computer program comprising instructions for carrying out all the steps of the method (300) according to any preceding method (300) claim, when said computer program is executed on a computer system.

Citation Information

Patent Citations

  • In-situ OAM sampling and data validation

    US20180331933A1

  • Systems for and methods of network telemetry using a repurposed field

    US20230239240A1