Instream telemetry data plane forwarding method and apparatus

By employing a multi-level caching architecture and a flow classification list-based telemetry data plane forwarding method, the real-time measurement difficulties caused by resource constraints and dynamic topology in satellite networks are resolved. This enables efficient telemetry data processing and forwarding, thereby enhancing the monitoring capabilities of satellite networks.

CN120934610BActive Publication Date: 2026-03-17NANJING UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-10-13
Publication Date
2026-03-17

AI Technical Summary

Technical Problem

In satellite networks, due to resource constraints and characteristics such as dynamic topology and long latency, traditional in-band network measurement techniques are difficult to effectively achieve real-time measurement and monitoring. Especially under the condition of limited resources for onboard routers, the existing IOAM standard does not specify the specific implementation method of the data plane, which limits the monitoring capabilities of satellite networks.

Method used

The streaming telemetry data plane forwarding method, which adopts a multi-level caching architecture, generates service message descriptors and performs telemetry processing by separately caching the service message header and payload, thereby achieving parallel forwarding of telemetry messages. Combined with the flow classification list and control plane pre-configuration, it achieves efficient forwarding of telemetry messages.

Benefits of technology

It improves the real-time measurement capabilities of satellite networks, reduces resource consumption and network congestion, lowers the latency of telemetry messages, simplifies the forwarding process, and enhances monitoring efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120934610B_ABST
    Figure CN120934610B_ABST
Patent Text Reader

Abstract

This invention discloses a method and apparatus for forwarding telemetry data plane along with the flow, belonging to the field of communication technology. The method of this invention achieves telemetry along with the flow through multi-level caching and processing of service packet headers, enabling high-precision measurement and monitoring of satellite nodes and paths in the space network; it achieves proportional sampling of telemetry along with the flow through a flow classification list, saving resource overhead and reducing potential network congestion caused by telemetry; and it simplifies the telemetry packet uploading process by pre-configuring the telemetry packet output interface to achieve end-to-end transmission of telemetry packets. Based on this method, the device for forwarding telemetry data plane along with the flow includes a service packet processing subsystem for parsing, processing, and classifying service packets; a telemetry packet processing subsystem for constructing and uploading telemetry packets; and a packet forwarding subsystem for forwarding service packets and telemetry packets.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of communication technology, and in particular relates to a method and apparatus for forwarding telemetry data plane along a flow path. Background Technology

[0002] With the rapid development of satellite networks, their wide-area coverage, low-latency transmission, and flexible deployment capabilities have demonstrated enormous potential in strategic fields such as emergency communication, global IoT, real-time remote sensing, and military collaboration. However, due to the rapidly changing network topology, frequent establishment and interruption of inter-satellite links, and the stringent resource constraints faced by spaceborne platforms, space network measurement faces challenges such as high mobility and frequent switching, resource limitations, poor scalability, and low efficiency. Traditional network measurement methods mainly include SNMP-based network management, active probing technologies (such as ping and traceroute), passive monitoring, and flow-based measurement technologies (such as NetFlow and sFlow). Although these traditional measurement methods are widely used, they generally suffer from problems such as excessive signaling overhead, poor real-time measurement performance, insufficient accuracy, and excessive energy consumption.

[0003] In recent years, with the deepening research into network measurement technology, an in-band network measurement technique that does not require network control plane intervention and instead collects and reports network status via the network data plane has gradually become a focus of industry attention. In an in-band network telemetry system, the data plane inserts telemetry commands and measurement data into service data packets. Switching equipment with telemetry capabilities parses the telemetry commands carried in the data packets to obtain the network status information that needs to be collected and written, and finally encapsulates and sends it to the network analyzer. This method and system require embedding telemetry commands into service data packets, thus eliminating the need to send additional data packets for network measurement, and enabling more granular measurements of network topology, network performance, and network traffic.

[0004] One current research direction in in-band measurement technology is In-situ Operation Administration and Maintenance (IOAM), which involves collecting, carrying, organizing, and reporting network conditions on the data plane and has been widely used in terrestrial network measurement. However, existing IOAM-related RFC standards do not clearly specify the specific implementation method of the data plane. Especially in resource-constrained satellite network environments, the dynamic topology, long latency, and high packet loss rate make traditional terrestrial IOAM data plane deployment strategies difficult to apply directly. This invention aims to provide a method and apparatus for forwarding telemetry data planes along the flow of data, solving the problem of limited real-time measurement in satellite networks under the resource constraints of onboard routers, and effectively improving the monitoring capabilities of satellite networks. Summary of the Invention

[0005] Purpose of the invention: To address the aforementioned problems, this invention proposes a method and apparatus for forwarding telemetry data in a plane along the flow, introducing a new method for forwarding telemetry data in a plane along the flow, thereby achieving efficient and low-latency telemetry in satellite networks while meeting the strict resource constraints of on-board equipment.

[0006] The above objectives are achieved through the following technical solutions:

[0007] This invention first provides a method for forwarding telemetry data plane in the flow. This method realizes telemetry processing and packet forwarding functions on the data plane through a multi-level caching architecture. The multi-level caching architecture is a forwarding architecture oriented towards telemetry tasks in the flow. This architecture realizes telemetry data processing and parallel packet forwarding on the data plane through separation of service packet header and payload, descriptor passing and unified queue scheduling.

[0008] The specific process is as follows: the header and payload of the service message are separated and cached independently. Service message descriptors are generated and stored in the service message queue cache. By passing the service message descriptors in the service message queue cache, the telemetry processing and telemetry message generation are completed, and further telemetry message descriptors are generated. The service message descriptors and telemetry message descriptors after the telemetry processing is completed are stored together in the message queue cache to be forwarded, and a flag is set to distinguish between the two types of message descriptors. Subsequently, the service message and telemetry message are obtained by reading the message descriptors in the message queue cache to be forwarded, so as to realize the parallel scheduling and forwarding of these two types of messages. The queue cache refers to a first-in-first-out local cache, and its read order is consistent with the write order.

[0009] Furthermore, the method specifically includes the following steps:

[0010] S1. Reception and caching of service messages: After receiving a service message, the service message header and payload are separated and stored in the local cache and external cache respectively. A service message descriptor is generated and stored in the service message queue cache. In subsequent processing and forwarding, only the service message descriptor needs to be passed to operate on the service message.

[0011] The aforementioned service message descriptor refers to a data unit composed of four pieces of information after the message header and payload have been separated and cached: the service message header cache address, the service message header cache length, the payload cache address, and the payload cache length. This descriptor can uniquely locate and read the corresponding service message.

[0012] S2. Service Message Parsing and Node Type Determination: When a service message descriptor exists in the service message queue cache, read the service message descriptor and determine the current node type based on the service message header corresponding to the descriptor. If the determination is... The telemetry module is encapsulated with the flow and meets the sampling rate requirement. Telemetry transmission nodes that follow the flow, or If any of these three nodes are involved, proceed to step S3 to process the corresponding telemetry option header; otherwise, write the service message descriptor into the message queue buffer to be forwarded and proceed to step S5 to forward the message.

[0013] The sampling rate is obtained by taking the current flow's sampling rate from the flow classification list after determining that the current node is a flow-in-flow telemetry encapsulation node through the flow classification list, and then combining the packet count of the current service flow to perform flow-in-flow telemetry sampling.

[0014] S3. Flow-based Telemetry Option Header Processing: Based on the current node type confirmed by the content of the service packet header pointed to by the service packet descriptor, perform corresponding flow-based telemetry option header operations on the service packet header corresponding to the service packet descriptor: If it is a flow-based telemetry encapsulation node, insert a flow-based telemetry option header after the service packet header; if it is a flow-based telemetry transmission node, keep the flow-based telemetry option header after the service packet header unchanged; if it is a flow-based telemetry decapsulation node, read the content of the flow-based telemetry option header in the service packet header and temporarily store it in a register. If the flow-based telemetry option header already exists in the register, overwrite it. After completion, delete the flow-based telemetry option header in the service packet header; after the flow-based telemetry option header operation is completed, write the service packet descriptor into the pending forwarding packet queue buffer.

[0015] S4. Telemetry Message Construction and Upload: Based on the current node type confirmed by the service message header content pointed to by the service message descriptor, the following operations are performed on the following telemetry option header in the service message header: If it is either a telemetry encapsulation node or a telemetry transmission node, the following telemetry option header content in the service message header is read; if it is a telemetry decapsulation node, the following telemetry option header content corresponding to the current service message descriptor temporarily stored in the register is read; based on the obtained telemetry option header, metadata is collected and a telemetry message is generated; the generated telemetry message is cached and a telemetry message descriptor is formed; the telemetry message descriptor is written into the message queue to be forwarded and the flag is set to high level.

[0016] The telemetry message descriptor refers to a data unit composed of the telemetry message cache address and the telemetry message cache length information after the telemetry message is generated and cached. The corresponding telemetry message can be uniquely located and read through the telemetry message descriptor.

[0017] S5. Message Forwarding: Read the message queue buffer to be forwarded in sequence. Determine the message descriptor type based on the level of the flag bit. If the flag bit is high, it is a telemetry message descriptor. Read the telemetry message directly and forward the telemetry message through the pre-configured outgoing interface of the control plane. If the flag bit is low, it is a service message descriptor. Read the service message header and payload separately, merge the service message header and payload, and forward normally after merging.

[0018] The aforementioned control plane pre-configuration of the output interface involves the control plane looking up the routing table in advance to obtain the output interface of the data acquisition unit, specifying that telemetry messages are sent from this output interface and directly reach the data acquisition unit.

[0019] Furthermore, the reception and buffering of service messages in step S1 specifically includes:

[0020] S1.1 Separate the header and payload of the service message, write the service message header into the local cache, and write the service message payload into the external cache to obtain the service message header cache address, the service message header cache length, the payload cache address, and the payload cache length.

[0021] S1.2 Concatenate the four pieces of information—the business message header cache address, the business message header cache length, the payload cache address, and the payload cache length—to obtain the business message descriptor, and write the business message descriptor into the business message queue cache.

[0022] Furthermore, the service message parsing and node type determination described in step S2 specifically include:

[0023] S2.1 When a service message descriptor is detected in the service message queue cache, the current service message descriptor is read, and the service message header content is obtained from the service message cache based on it. If the service message queue cache is empty, the service message descriptor is continuously waited for to arrive.

[0024] S2.2 Parse the service packet header, extract the flow label field in the IPv6 protocol to determine the node type of the current service packet. If the flow label field is not within the pre-configured range of flow telemetry, determine that the current device node is either a flow telemetry encapsulation node or a non-flow telemetry node, and proceed to step S2.3 for further determination; if the flow label field is within the pre-configured range of flow telemetry, determine that the current device node is either a flow telemetry transmission node or a flow telemetry decapsulation node, and proceed to step S2.4 for further determination.

[0025] S2.3 Further, the following steps are taken: The following steps are performed: The ...

[0026] S2.4 Further, the following steps are taken to determine the following nodes: the destination address and the next-hop address are compared. If the destination address is not equal to the next-hop address, the current node is determined to be the following node and the following steps are taken to S3.2 to perform the following telemetry process of the following node. If the destination address is equal to the next-hop address, the current node is determined to be the following node and the following steps are taken to S3.3 to perform the following telemetry process of the following node.

[0027] Furthermore, the flow-fed telemetry option header processing described in step S3 specifically includes:

[0028] S3.1 Flow-in-the-Flow Telemetry Encapsulation Node: First, obtain the flow-in-the-flow telemetry option header from the flow classification list and insert it after the service packet header; second, assign the flow identifier field of the flow-in-the-flow telemetry option header to the flow label field in the service packet IPv6 protocol; finally, write the processed service packet descriptor into the packet queue buffer to be forwarded. After processing, proceed to step S4 to construct and send the telemetry packet.

[0029] S3.2 Flow-based telemetry transmission node: The service message header is not processed. The service message descriptor is written into the message queue to be forwarded and buffered. After processing, the process proceeds to step S4 to construct and send the telemetry message.

[0030] S3.3 Flow-based telemetry decapsulation node: After reading the content of the flow-based telemetry option header in the service packet header, the flow-based telemetry option header is temporarily stored in the register. If the flow-based telemetry option header already exists in the register, it is overwritten. Then, the flow-based telemetry option header carried in the service packet header is deleted, and the service packet descriptor is written into the packet queue buffer to be forwarded. After the processing is completed, step S4 is entered to construct and send the telemetry packet.

[0031] Furthermore, the telemetry message construction and transmission described in step S4 specifically includes:

[0032] S4.1 Based on the current node type confirmed by the content of the service message header pointed to by the service message descriptor, perform a read operation on the following telemetry option header in the service message header: if it is either a following telemetry encapsulation node or a following telemetry transmission node, then read the following telemetry option header content in the service message header; if it is a following telemetry decapsulation node, then read the following telemetry option header content corresponding to the current service message descriptor temporarily stored in the register.

[0033] S4.2 Collect the metadata for the current moment according to the telemetry option header instructions. The metadata includes: node number, ingress interface number, egress interface number, priority identifier, ingress / egress timestamp, queuing delay, queue depth, and buffer usage.

[0034] S4.3 Encapsulate the metadata according to the telemetry message format, obtain the telemetry message and write it to the local cache, obtain the cache address and cache length of the telemetry message and generate the telemetry message descriptor, write the telemetry message descriptor to the message queue to be forwarded and set the flag to high level.

[0035] Furthermore, the message forwarding described in step S5 specifically includes...

[0036] S5.1 Read the message queue buffer to be forwarded and determine the level of the flag bit; if it is high, it is a telemetry message descriptor, and proceed to step S5.2; if it is low, it is a service message descriptor, and proceed to step S5.3.

[0037] S5.2 Read the telemetry message according to the cache address and cache length in the telemetry message descriptor, forward the message according to the pre-configured outgoing interface, and end the current follow-up telemetry processing flow.

[0038] S5.3 Based on the service header cache address and service header cache length, as well as the payload cache address and cache length in the service message descriptor, read out the service header and payload from the cache and merge them. After merging, forward normally and end the current telemetry processing flow.

[0039] The present invention also provides a flow-following telemetry data plane forwarding device, which is based on the above-described flow-following telemetry data plane forwarding method and includes:

[0040] Business message processing subsystem: used for business message processing, parsing, and stream classification;

[0041] Telemetry message processing subsystem: used for constructing and sending telemetry messages;

[0042] Message forwarding subsystem: Used for forwarding service messages and telemetry messages.

[0043] Beneficial effects:

[0044] 1. This invention provides a method and apparatus for forwarding telemetry data plane along the flow. It adopts a multi-level caching architecture to process and forward data packets, efficiently completing the processing and forwarding of telemetry service messages and telemetry messages along the flow. During the process, the service message payload is stored in an external cache, which improves the problem of resource constraints in satellite networks and ensures real-time measurement capabilities while minimizing the consumption of valuable onboard resources.

[0045] 2. This invention achieves proportional sampling of flow telemetry by adding a sampling rate field to the flow classification list. The sampling rate can be configured in real time by the control plane according to the network conditions, saving the resource overhead of flow telemetry and reducing the network congestion that may be caused by flow telemetry.

[0046] 3. The telemetry message output interface of the present invention enables the direct output of telemetry messages to the data acquisition unit through control plane pre-configuration, avoiding the loopback processing of telemetry messages, greatly simplifying the forwarding process of telemetry messages, reducing the forwarding system overhead caused by flow telemetry, and reducing the latency of telemetry messages. Attached Figure Description

[0047] Figure 1 This is a system block diagram of a telemetry data plane forwarding device.

[0048] Figure 2 Flowchart for forwarding and processing telemetry data packets in the plane;

[0049] Figure 3 A diagram showing the business message queue cache;

[0050] Figure 4 A cache diagram of the message queue to be forwarded;

[0051] Figure 5 Flowchart for determining the type of telemetry node following the flow;

[0052] Figure 6 This is a diagram of the IPv6 protocol data structure.

[0053] Figure 7 This is a diagram of the header data structure for flow-dependent telemetry options.

[0054] Figure 8 This is a data structure diagram of the metadata for telemetry following the flow. Detailed Implementation

[0055] To make the objectives, technical solutions, and advantages of this invention clearer, the embodiments of this invention are described in detail below with reference to the accompanying drawings. These embodiments are implemented based on the technical solutions of this invention, providing detailed implementation methods and specific operating procedures. It should be understood that the specific examples described herein are merely illustrative of this invention, but the scope of protection of this invention is not limited to the following embodiments.

[0056] This invention proposes a method and apparatus for forwarding telemetry data along a satellite network. The overall processing flow is shown in the attached figure. Figure 1 As shown, the device of this invention is mainly divided into a service message processing subsystem, a telemetry message processing subsystem, and a message forwarding subsystem. The service message processing subsystem mainly receives, buffers, parses, and classifies service messages, and transmits the flow classification list matching results to the telemetry message processing subsystem. The telemetry message processing subsystem processes the flow telemetry option header and constructs the telemetry message based on the flow classification list matching results. The message forwarding subsystem sequentially reads and forwards the processed service messages and telemetry messages.

[0057] The multi-level caching architecture of the data plane message processing and forwarding method of this invention is shown in the appendix. Figure 2 As shown, the main process involves separating and independently caching the service packet header and payload, generating service packet descriptors, and storing them in a service packet queue cache. By passing the service packet descriptors from this queue cache, telemetry processing and telemetry packet generation are completed, and further telemetry packet descriptors are generated. The completed service packet descriptors and telemetry packet descriptors are then stored together in a message queue cache to be forwarded, with a flag set to distinguish between the two types of descriptors. Subsequently, service packets and telemetry packets are retrieved by reading the descriptors from this queue cache, enabling parallel scheduling and forwarding of these two types of packets. The queue cache refers to a first-in, first-out local cache, where the read order is consistent with the write order.

[0058] Specifically, the present invention provides a method for forwarding telemetry data in a plane along a flow path, comprising:

[0059] S1. Reception and buffering of service messages:

[0060] After the telemetry device receives the service message, it separates and caches the service message header and payload. The service message header is stored in the local SRAM static cache, and the message payload is stored in the external DDR cache. The service message header cache address hdr_addr[11:0], the service message header cache length hdr_len[7:0], the payload cache address payload_addr[11:0], and the payload cache length[15:0] are obtained. These four pieces of information are combined into a 48-bit data unit as the service message descriptor and stored in the service message queue cache route_fifo[47:0]. The service message queue cache is shown in the attached figure. Figure 3 As shown, in subsequent processing and forwarding, only this 48-bit service message descriptor needs to be passed to operate on the service message;

[0061] S2. Service Message Parsing: When a service message descriptor exists in the service message queue cache route_fifo, read the service message descriptor and determine the current node type based on the service message header corresponding to hdr_addr and hdr_len in the service message descriptor. If it is determined to be... The telemetry module is encapsulated with the flow and meets the sampling rate requirement. Telemetry transmission nodes that follow the flow, or If any of these three nodes are involved, the process proceeds to step S3 to process the corresponding telemetry option header; otherwise, the service message descriptor is written into the message queue to be forwarded, pkt_fifo[48:0], and the process proceeds to step S5 to forward the message.

[0062] S3. Flow-based telemetry option header processing: Based on the current node type confirmed by the business header content corresponding to hdr_addr and hdr_len in the business packet descriptor, perform corresponding flow-based telemetry option header operations on the business packet header corresponding to the business packet descriptor: If it is a flow-based telemetry encapsulation node, insert a flow-based telemetry option header after the business packet header; if it is a flow-based telemetry transmission node, keep the flow-based telemetry option header after the business packet header unchanged; if it is a flow-based telemetry decapsulation node, read the flow-based telemetry option header content in the business packet header and temporarily store it in register reg_header[63:0]. If the flow-based telemetry option header already exists in register reg_header[63:0], overwrite it. After completion, delete the flow-based telemetry option header in the business packet header. After the flow-based telemetry option header operation is completed, write the business packet descriptor into the packet queue to be forwarded pkt_fifo[47:0]. The packet queue to be forwarded is cached as shown in the appendix. Figure 4 As shown;

[0063] S4. Telemetry message construction and uploading: Based on the current node type confirmed by the content of the service message header corresponding to hdr_addr and hdr_len in the service message descriptor, the following operation is performed on the following telemetry option header in the service message header: If it is either a following telemetry encapsulation node or a following telemetry transmission node, the following telemetry option header content in the service message header is read; if it is a following telemetry decapsulation node, the following telemetry option header content corresponding to the current service message descriptor temporarily stored in the register is read; based on the obtained following telemetry option header, metadata is collected and a telemetry message is generated. The generated telemetry message is buffered and written into ioam_ram to form a telemetry message descriptor {ioam_pkt_addr[11:0], ioam_pkt_len[7:0]}. The telemetry message descriptor is written into the message queue buffer pkt_fifo[47:28] to be forwarded, and the flag pkt_fifo

[48] is set to high level.

[0064] S5. Message forwarding: Read the message queue buffer pkt_fifo[48:0] in sequence. Determine the message descriptor type based on the level of the flag pkt_fifo

[48] . If pkt_fifo

[48] =1'b1, it is a telemetry message descriptor. Read the telemetry message directly through the address and length corresponding to pkt_fifo[47:28] and forward the telemetry message through the pre-configured outgoing interface ioam_out_inf[2:0] of the control plane. If pkt_fifo

[48] =1'b0, it is a service message descriptor. Read the service message header and payload respectively, merge the service message header and payload, and forward normally after merging.

[0065] Furthermore, the reception and buffering of service messages in step S1 specifically includes:

[0066] S1.1 Separately cache the header and payload of the service message, write the header of the service message into the local static cache SRAM, and write the payload of the service message into the external cache DDR, to obtain the header cache address hdr_addr[11:0], the header cache length hdr_len[7:0], the payload cache address payload_addr[11:0], and the payload cache length payload_len[15:0].

[0067] S1.2 Concatenate the information of the cached header address hdr_addr[11:0], the length occupied by the header cache hdr_len[7:0], the payload cache address payload_addr[11:0], and the length occupied by the payload cache payload_len[15:0] to obtain the service message descriptor, and write the service message descriptor into the service message queue cache route_fifo[47:0].

[0068] Furthermore, the process for parsing the service message and determining the node type in step S2 is as follows: Figure 5 As shown, it specifically includes:

[0069] S2.1 When a service message descriptor is detected in the service message queue cache route_fifo, the current service message descriptor is read, and the message header content is obtained by reading the cache according to its message header cache address hdr_addr[11:0] and message header cache length hdr_len[7:0]. If the service message queue cache route_fifo is empty, the service message descriptor is continuously waited to be written.

[0070] S2.2 Parse the packet header and extract the flow label field from the IPv6 protocol to determine the node type. The IPv6 protocol format is shown in the attached figure. Figure 6 As shown, if the flow tag field is not within the pre-configured range of flow telemetry, the current device node is determined to be either a flow telemetry encapsulation node or a non-flow telemetry node, and proceeds to step S2.3 for further determination; if the flow tag field is within the pre-configured range of flow telemetry, the current device node is determined to be either a flow telemetry transmission node or a flow telemetry decapsulation node, and proceeds to step S2.4 for further determination.

[0071] S2.3 Further determine the in-flow telemetry encapsulation node through the flow classification list and perform in-flow telemetry sampling; match the service packet quintuple with the flow classification list. If the match is successful, determine that the current node is the in-flow telemetry encapsulation node, and obtain the sampling rate of the current service packet flow from the flow classification list; only when the service packet quintuple is successfully matched and the packet count of the current service flow meets the sampling rate requirement, perform in-flow telemetry processing on the packet, and proceed to step S3.1 to perform the in-flow telemetry process of the in-flow telemetry encapsulation node; otherwise, the service packet does not need to be processed by in-flow telemetry, and the service packet descriptor corresponding to the service packet is written into the packet queue cache pkt_fifo[47:26] to be forwarded; the packet quintuple includes source address, destination address, source port, destination port and protocol number;

[0072] Table 1. Flow Category List Structure

[0073] Table type Index value Table lookup results Stream Category List Source IP address 128 bits, destination IP address 128 bits, source port 16 bits, destination port 16 bits, protocol number 8 bits Stream classification list action (8 bits), Stream telemetry options header (64 bits), Sampling rate (8 bits)

[0074] S2.4 Further, the following steps are taken to determine the following nodes: the destination address and the next-hop address are compared. If the destination address is not equal to the next-hop address, the current node is determined to be the following node and the following steps are taken to S3.2 to perform the following telemetry process of the following node. If the destination address is equal to the next-hop address, the current node is determined to be the following node and the following steps are taken to S3.3 to perform the following telemetry process of the following node.

[0075] Furthermore, the flow-fed telemetry option header processing described in step S3 specifically includes:

[0076] S3.1 Flow-in-the-Stream Telemetry Encapsulation Node: First, obtain the flow-in-the-stream telemetry option header from the flow classification list. The structure of the flow-in-the-stream telemetry option header is shown in the appendix. Figure 7 As shown, the following steps are performed: First, the flow telemetry option header is inserted after the UDP protocol header of the service message; second, the flow identifier field of the flow telemetry option header is assigned to the flow label field in the IPv6 protocol; finally, the processed service message descriptor is written to the message queue buffer pkt_fifo[47:26] to be forwarded. After processing, step S4 is entered to construct and send the telemetry message.

[0077] S3.2 Flow-based telemetry transmission node: No processing is performed on the service message header. The service message descriptor is written into the message queue buffer pkt_fifo[47:28] to be forwarded. After processing, step S4 is entered to construct and send the telemetry message.

[0078] S3.3 Flow-based telemetry decapsulation node: After reading the flow-based telemetry option header content in the service packet header, the flow-based telemetry option header is temporarily stored in the register reg_header[63:0]. If the flow-based telemetry option header already exists in the register, it is overwritten. Then, the flow-based telemetry option header carried in the service packet header is deleted, and the service packet descriptor is written into the packet queue buffer pkt_fifo[47:28]. After processing, step S4 is entered to construct and send the telemetry packet.

[0079] Furthermore, the telemetry message construction and transmission described in step S4 specifically includes:

[0080] S4.1 Based on the current node type confirmed by the content of the service message header in the service message descriptor, perform a read operation on the following telemetry option header in the service message header: if it is either a following telemetry encapsulation node or a following telemetry transmission node, then read the following telemetry option header content in the service message header; if it is a decapsulation node, then read the following telemetry option header content corresponding to the current service message descriptor temporarily stored in the reg_header[63:0] register.

[0081] S4.2 Following the instructions in the flow-following telemetry option header, collect the metadata for the current moment. The metadata includes: node number, ingress interface number, egress interface number, priority identifier, ingress / egress timestamp, queuing delay, queue depth, and buffer usage. The metadata data structure is shown in the attached figure. Figure 8 As shown;

[0082] S4.3 Encapsulate the metadata according to the telemetry message format, obtain the telemetry message and write it into the local cache ioam_pkt_ram, obtain the cache address ioam_pkt_addr[11:0] and cache length ioam_pkt_len[7:0] of the telemetry message and combine them into a telemetry message descriptor. Write the telemetry message descriptor into the cache pkt_fifo[47:0] of the message queue to be forwarded, and set the flag pkt_fifo

[48] to high level.

[0083] Furthermore, the message forwarding described in step S5 specifically includes...

[0084] S5.1 Read the cache pkt_fifo of the message queue to be forwarded and determine the flag pkt_fifo

[48] . If pkt_fifo

[48] =1'b1, then pkt_fifo[47:0] contains a telemetry message descriptor, and proceed to step S5.2. If pkt_fifo

[48] =1'b0, then pkt_fifo[47:28] contains a service message descriptor, and proceed to step S5.3.

[0085] S5.2 Read the telemetry message according to the cache address ioam_pkt_addr[11:0] and cache length ioam_pkt_len[7:0] in the telemetry message descriptor, forward the message according to the pre-configured output port ioam_out_inf[2:0], and end the current streaming telemetry processing flow;

[0086] S5.3 Based on the packet header cache address hdr_addr[11:0] and cache length hdr_addr[7:0] and the payload cache address payload_addr[11:0] and cache length payload_addr[15:0] in the service packet descriptor, read out the service packet header and payload in the cache respectively and merge them. After merging, forward normally and end the current follow-up telemetry processing flow.

Claims

1. A method for in-stream telemetry data plane forwarding, the method comprising: The data plane is realized by a multi-level cache architecture, which is a forwarding architecture for stream telemetry tasks. The multi-level cache architecture realizes the stream telemetry data processing and parallel packet forwarding on the data plane through the separation of the service packet header and the payload, descriptor transfer and unified queue scheduling. The specific process is as follows: the service packet header and the payload are separated and independently cached, the service packet descriptor is generated and stored in the service packet queue cache, the stream telemetry processing and the telemetry packet generation are completed by transferring the service packet descriptor in the service packet queue cache, and the telemetry packet descriptor is further generated. The service packet descriptor and the telemetry packet descriptor after the stream telemetry processing are stored in the to-be-forwarded packet queue cache, and a flag bit is set to distinguish the two types of packet descriptors. The service packet and the telemetry packet are obtained by reading the packet descriptor in the to-be-forwarded packet queue cache, and the parallel scheduling and forwarding of the two types of packets are realized. The queue cache refers to a first-in-first-out local cache, and the readout order and the write-in order are consistent. The method specifically comprises the following steps: S1, receiving and caching of a service packet: after receiving a service packet, the service packet header and the payload are separated and stored in a local cache and an external cache respectively, a service packet descriptor is generated and stored in a service packet queue cache, and in the subsequent processing and forwarding process, only the service packet descriptor needs to be transferred to operate the service packet; S2, service packet analysis and node type determination: when there is a service packet descriptor in the service packet queue cache, the service packet descriptor is read and the current node type is determined according to the service packet header corresponding to the service packet descriptor. If it is determined that one of the following conditions is met: ① a stream telemetry encapsulation node and meets the sampling rate, ② a stream telemetry transmission node, or ③ a stream telemetry decapsulation node, the corresponding stream telemetry option header processing is performed in step S3; otherwise, the service packet descriptor is written into the to-be-forwarded packet queue cache and the packet forwarding is performed in step S5; S3, stream telemetry option header processing: according to the current node type confirmed by the content of the service packet header pointed by the service packet descriptor, the corresponding stream telemetry option header operation is performed on the service packet header corresponding to the service packet descriptor: if it is a stream telemetry encapsulation node, the stream telemetry option header is inserted after the service packet header; if it is a stream telemetry transmission node, the stream telemetry option header after the service packet header remains unchanged; if it is a stream telemetry decapsulation node, the stream telemetry option header content in the service packet header is read and temporarily stored in a register, and if the register already contains the stream telemetry option header, the stream telemetry option header is overwritten, and after the completion, the stream telemetry option header in the service packet header is deleted; after the stream telemetry option header operation is completed, the service packet descriptor is written into the to-be-forwarded packet queue cache; S4, telemetry message construction and sending: according to the current node type confirmed by the content of the service message header pointed by the service message descriptor, read the in-flow telemetry option header in the service message header: if it is one of the in-flow telemetry encapsulation node or the in-flow telemetry transmission node, read the in-flow telemetry option header content in the service message header, if it is the in-flow telemetry decapsulation node, read the in-flow telemetry option header content corresponding to the current service message descriptor stored in the register; collect metadata according to the obtained in-flow telemetry option header and generate a telemetry message, cache the generated telemetry message and form a telemetry message descriptor, write the telemetry message descriptor into the to-be-forwarded message queue cache, and set the flag bit to high level at the same time; S5, message forwarding: read the to-be-forwarded message queue cache in sequence, judge the message descriptor type according to the high and low level of the flag bit, if the flag bit is high level, it is a telemetry message descriptor, directly read the telemetry message, and forward the telemetry message through the interface pre-configured by the control plane; if the flag bit is low level, it is a service message descriptor, read the service message header and payload respectively, merge the service message header and payload, and forward normally after merging.

2. The in-stream telemetry data plane forwarding method of claim 1, wherein, The service message descriptor refers to a data unit composed of four information of service message header cache address, service message header cache occupation length, payload cache address and payload cache occupation length after the separation and caching of the message header and payload, which can uniquely locate and read the corresponding service message through the descriptor; The sampling rate is met by obtaining the sampling rate of the current flow from the flow classification list after determining that the current node is an in-flow telemetry encapsulation node through the flow classification list, and combining the message count of the current service flow for in-flow telemetry sampling; The telemetry message descriptor refers to a data unit composed of telemetry message cache address and telemetry message cache occupation length information after the generation and caching of the telemetry message, which can uniquely locate and read the corresponding telemetry message through the telemetry message descriptor; The control plane pre-configured interface is the out-interface of the data collector obtained by querying the routing table through the control plane, which specifies that the telemetry message is sent from the out-interface and directly reaches the data collector.

3. The in-stream telemetry data plane forwarding method according to claim 1 or 2, c h a r a c t e r i z e d by, The receiving and caching of the service message in step S1 specifically includes: S1.1 separate the header and payload of the service message, write the service message header into the local cache, and write the service message payload into the external cache, to obtain the service message header cache address, service message header cache occupation length, payload cache address and payload cache occupation length; S1.2 splice the four information of service message header cache address, service message header cache occupation length, payload cache address and payload cache occupation length to obtain the service message descriptor, and write the service message descriptor into the service message queue cache.

4. The in-stream telemetry data plane forwarding method of claim 3, wherein, The service message analysis and node type determination in step S2 specifically includes: S2.1 When detecting that there is a service message descriptor in the service message queue buffer, reading the current service message descriptor, and obtaining the service message header content according to the reading service message buffer, if the service message queue buffer is empty, continuously waiting for the arrival of the service message descriptor; S2.2 Analyzing the service message header, extracting the flow label field in the IPv6 protocol to judge the node type of the current service message, if the flow label field is not in the preconfigured range of the flow telemetry, judging that the current device node is one of the flow telemetry encapsulation node or the flow telemetry node, entering step S2.3 for further judgment; if the flow label field is in the preconfigured range of the flow telemetry, judging that the current device node is one of the flow telemetry transmission node or the flow telemetry decapsulation node, entering step S2.4 for further judgment; S2.3 Further judging the flow telemetry encapsulation node through the flow classification list and performing flow telemetry sampling; matching the service message five-tuple with the flow classification list, if the matching is successful, judging that the current node is the flow telemetry encapsulation node, and obtaining the sampling rate of the current service message flow from the flow classification list; only when the service message five-tuple matching is successful and the message count of the current service flow meets the sampling rate requirement, the message is processed for flow telemetry, entering the flow telemetry process of the flow telemetry encapsulation node; otherwise, the service message does not need to be processed for flow telemetry, and the service message descriptor corresponding to the service message is written into the to-be-forwarded message queue buffer; the message five-tuple includes the source address, the destination address, the source port, the destination port and the protocol number; S2.4 Further judging the flow telemetry transmission node and the flow telemetry decapsulation node by comparing the destination address and the next hop address; if the destination address is not equal to the next hop address, judging that the current node is the flow telemetry transmission node, entering step S3.2 for the flow telemetry process of the flow telemetry transmission node; if the destination address is equal to the next hop address, judging that the current node is the flow telemetry decapsulation node, entering the flow telemetry process of the flow telemetry decapsulation node.

5. The in-stream telemetry data plane forwarding method of claim 4, wherein, The flow telemetry option header processing in step S3 processes the service message according to the current node type confirmed by the service message header content pointed by the service message descriptor, and specifically includes: S3.1 Flow telemetry encapsulation node: first obtaining the flow telemetry option header from the flow classification list, and inserting the flow telemetry option header after the service message header; secondly, assigning the flow identification field of the flow telemetry option header to the flow label field in the IPv6 protocol of the service message; finally, writing the processed service message descriptor into the to-be-forwarded message queue buffer, and entering step S4 for telemetry message construction and uploading after the processing is completed; S3.2 Flow telemetry transmission node: without processing the service message header, writing the service message descriptor into the to-be-forwarded message queue buffer, and entering step S4 for telemetry message construction and uploading after the processing is completed; S3.3 The in-stream telemetry unpacking node reads the in-stream telemetry option header content in the service message header, temporarily stores the in-stream telemetry option header in a register, and covers the in-stream telemetry option header in the register if the register already contains the in-stream telemetry option header. Then, the in-stream telemetry option header carried in the service message header is deleted, the service message descriptor is written into the to-be-forwarded message queue cache, and the process proceeds to step S4 for telemetry message construction and uploading.

6. The in-stream telemetry data plane forwarding method of claim 5, wherein The telemetry message construction and uploading in step S4 specifically includes: S4.1 According to the current node type confirmed by the service message header content pointed by the service message descriptor, the in-stream telemetry option header in the service message header is read: if it is one of the in-stream telemetry encapsulation node and the in-stream telemetry transmission node, the in-stream telemetry option header content in the service message header is read; if it is the in-stream telemetry unpacking node, the in-stream telemetry option header content corresponding to the current service message descriptor temporarily stored in the register is read; S4.2 According to the in-stream telemetry option header indication, the metadata at the current time is collected, including: node number, incoming interface number, outgoing interface number, priority identifier, incoming and outgoing timestamp, queuing delay, queue depth and buffer occupancy; S4.3 The metadata is encapsulated according to the in-stream telemetry message format, the telemetry message is obtained and written into the local cache, the cache address and cache occupancy length of the telemetry message are obtained, and the telemetry message descriptor is generated, written into the to-be-forwarded message queue cache, and the flag bit is set to high level.

7. The in-stream telemetry data plane forwarding method of claim 6, wherein The message forwarding in step S5 specifically includes: S5.1 The to-be-forwarded message queue cache is read, and the level of the flag bit is judged: if it is high level, it is a telemetry message descriptor, and the process proceeds to step S5.2; if it is low level, it is a service message descriptor, and the process proceeds to step S5.3; S5.2 The telemetry message is read out according to the cache address and cache occupancy length in the telemetry message descriptor, the message is forwarded according to the pre-configured outgoing interface, and the current in-stream telemetry processing process is ended; S5.3 The service message header and the payload in the cache are read out and merged according to the service message header cache address and service message header cache occupancy length and the payload cache address and cache occupancy length in the service message descriptor, the merged message is normally forwarded after the merging is completed, and the current in-stream telemetry processing process is ended.

8. An in-stream telemetry data plane forwarding apparatus, characterized by: The in-stream telemetry data plane forwarding device is based on the in-stream telemetry data plane forwarding method in any one of claims 1-7, and includes: a service message processing subsystem for service message processing, analysis and flow classification; a telemetry message processing subsystem for telemetry message construction and uploading; a message forwarding subsystem for forwarding of service messages and telemetry messages.

Citation Information

Patent Citations

  • Method and system for cache management of message

    CN102404213A

  • Message processing method and device based on stream detection

    CN113556259A