IFIT flow table scanning method and related device

In the scanning method of the IFIT flow table, the scanning module receives and processes the scanning instructions of the control surface device, reduces the interaction frequency between the control surface device and the data surface device, solves the performance pressure problem caused by frequent interaction in the prior art, and improves the The scanning efficiency of IFIT flow tables is achieved.

CN119182860APending Publication Date: 2024-12-24SUZHOU CENTEC COMM CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411243833.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-05
Publication Date
2024-12-24

AI Technical Summary

Technical Problem

The existing IFIT flow table scanning method requires frequent interaction between the control surface devices and the data surface devices, occupying a large amount of computing resources of the control surface devices, affecting the accuracy and efficiency of data processing.

Method used

Provide a scanning method of IFIT flow table. By receiving scanning instructions sent by the control surface device through the scanning module, determining the target flow table from the managed IFIT flow table according to the flow table identification, and performing corresponding scanning operations based on the scanning information to reduce control Interaction frequency between the surface device and the data surface device.

Benefits of technology

This method enables the control surface device to issue a scan instruction once, and the data surface device can perform scan operations one by one, reducing the performance pressure of the control surface device and improving the scanning efficiency of the IFIT flowmeter.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119182860A_ABST
    Figure CN119182860A_ABST
Patent Text Reader

Abstract

The invention provides an IFIT flow table scanning method and a related device, and relates to the field of communication. The method is applied to a data plane device in communication connection with a control plane device, and the data plane device comprises a scanning module. The scanning module receives a scanning instruction sent by the control plane device, and the scanning instruction comprises flow table identifiers of a plurality of target flow tables and scanning information of each target flow table; in response to the scanning instruction, determining a plurality of target flow tables from the IFIT flow tables managed by the scanning module according to the flow table identifiers; and executing a corresponding scanning operation according to the scanning information of each target flow table. Thus, the control plane device only needs to issue the scanning instruction once, and the scanning module in the data plane device can execute scanning operation on the matched target flow tables one by one according to the flow table identifier in the scanning instruction, so that the interaction frequency between the control plane device and the data plane device is reduced, and the performance pressure of the control plane device is relieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of network communications, and in particular to a scanning method and related device for an IFIT flow table. Background Art

[0002] IFIT (In-situ Flow Information Telemetry) is a detection technology that directly detects network performance indicators such as latency and packet loss by marking the characteristics of real network service flows. Therefore, it is widely used in Ethernet environments with high transmission real-time requirements, such as data center networks and industrial networks.

[0003] With the rapid development of mobile bearer, private network and cloud network architecture, bearer network faces new demands and challenges such as ultra-large bandwidth, massive connections, high reliability and low latency. IFIT inserts IFIT flow headers into real business messages for performance detection, and uses Telemetry technology to upload monitoring information in real time, and finally presents the performance indicators of each packet or flow to users intuitively through a visual interface.

[0004] like Figure 1 As shown, first, starting from the head node of the network traffic, when the target flow reaches the head node, the head node will specially mark these data packets and generate an IFIT flow containing IFIT tags. These tags usually include a unique FlowID, which is used to identify and track the transmission of the data flow in the network.

[0005] Then, the IFIT stream with the IFIT tag is transmitted in the network, passing through the intermediate nodes and the tail node. At each node passed, these nodes will perform real-time network performance detection on the IFIT stream, mainly including detection of delay, packet loss rate, etc. Each node reports these detection results to the analyzer located in the network management system. The analyzer will centrally process the monitoring information from different nodes, so as to be able to evaluate the overall performance of the network in real time.

[0006] After the IFIT flow reaches the tail node of the network, the tail node will remove the IFIT mark to restore the data flow to the original target flow, ensuring the normal transmission of the business flow without interference. Throughout the process, by detecting each key node in the network transmission path, IFIT can provide fine-grained, low-overhead real-time network performance detection, helping network operators quickly identify and locate potential network problems and optimize network performance.

[0007] However, in practice, it was found that with the continuous increase in the capacity of network equipment, the current scanning method of the IFIT flow table requires frequent interaction between the control plane devices and the data plane devices responsible for detecting the IFIT flow, which will occupy a large amount of computing resources of the control plane devices, thereby affecting the accuracy and efficiency of data processing. Summary of the invention

[0008] In order to overcome at least one of the deficiencies in the prior art, the present application provides a scanning method and a related device for an IFIT flow table, specifically comprising:

[0009] In a first aspect, the present application provides a method for scanning an IFIT flow table, which is applied to a data plane device that is communicatively connected to a control plane device, wherein the data plane device includes a scanning module, and the method includes:

[0010] The scanning module receives a scanning instruction sent by the control plane device, wherein the scanning instruction includes flow table identifiers of multiple target flow tables and scanning information of each of the target flow tables;

[0011] In response to the scanning instruction, determining the plurality of target flow tables from the IFIT flow table managed by the scanning module according to the flow table identifier;

[0012] A corresponding scanning operation is performed according to the scanning information of each target flow table.

[0013] In combination with the optional implementation manner of the first aspect, the performing corresponding scanning operations according to the scanning information of each target flow table respectively includes:

[0014] If the scanning instruction is a flow table configuration instruction, then for each of the target flow tables, determining whether the target flow table has a head node identifier;

[0015] If so, the flow table parameter value in the scanning information of the target flow table is configured into the target flow table, so that the target flow table detects the IFIT flow using the flow table parameter value.

[0016] In combination with the optional implementation manner of the first aspect, the flow table parameter value includes a packet loss coloring value and a delay coloring value, and configuring the flow table parameter value in the scanning information into the target flow table includes:

[0017] The packet loss coloring value and the delay coloring value are respectively written into their respective reserved locations in the target flow table.

[0018] In combination with the optional implementation manner of the first aspect, after configuring the flow table parameter value in the scanning information of the target flow table into the target flow table, the method further includes:

[0019] If the scanning information includes a cyclic activation flag and a cyclic period, the flow table parameter value in the scanning information of the target flow table is periodically configured into the target flow table according to the cyclic period.

[0020] In combination with the optional implementation manner of the first aspect, the performing corresponding scanning operations according to the scanning information of each target flow table respectively includes:

[0021] If the scanning instruction is a flow table reading instruction, then for each of the target flow tables, the detection information of the target flow table on the IFIT flow is read from the target flow table;

[0022] The detection information is sent to the data plane device.

[0023] In conjunction with the optional implementation manner of the first aspect, after sending the detection information to the data plane device, the method further includes:

[0024] The flow table parameter values ​​written into the target flow table are cleared, so that the target flow table stops detecting the IFIT flow.

[0025] In a second aspect, the present application provides a method for scanning an IFIT flow table, which is applied to a control plane device that is communicatively connected to a data plane device, wherein the data plane device includes a scanning module, and the method includes:

[0026] Sending a scanning instruction to the scanning module, wherein the scanning instruction includes a flow table identifier and scanning information bound to the flow table identifier;

[0027] The scanning instruction is used to instruct the scanning module to determine at least one target flow table matching the flow table identifier from the IFIT flow table managed by the scanning module; and to perform a scanning operation corresponding to the scanning information on each of the target flow tables.

[0028] In conjunction with an optional implementation manner of the second aspect, the scanning instruction is a flow table configuration instruction that is periodically issued, and the control plane device further issues other flow table configuration instructions at different periods, and the different periods have the same common multiples, and the method further includes:

[0029] After a preset time period after the flow table configuration instruction is sent to the scanning module, a flow table reading instruction is sent to the scanning module, wherein the preset time period is greater than the issuing cycle of the flow table configuration instruction, wherein the flow table configuration instruction is used to instruct the scanning module to report the detection information of the target flow table on the IFIT flow.

[0030] In a third aspect, the present application provides a control plane device, which includes a processor and a memory, wherein the memory stores a computer program, and when the computer program is executed by the processor, the IFIT flow table scanning method is implemented.

[0031] In a fourth aspect, the present application further provides a data plane device, the data plane device comprising a processor and a memory, the memory storing a computer program, and when the computer program is executed by the processor, the IFIT flow table scanning method is implemented.

[0032] In a fifth aspect, the present application also provides a network device, which includes the control plane device and the data plane device.

[0033] Compared with the prior art, this application has the following beneficial effects:

[0034] The present application provides a scanning method and related device for an IFIT flow table. The method is applied to a data plane device that is communicatively connected to a control plane device, and the data plane device includes a scanning module. In the method, the scanning module receives a scanning instruction sent by the control plane device, wherein the scanning instruction includes flow table identifiers of multiple target flow tables and scanning information of each target flow table; in response to the scanning instruction, multiple target flow tables are determined from the IFIT flow table managed by the scanning module according to the flow table identifier; and corresponding scanning operations are performed respectively according to the scanning information of each target flow table. In this way, the control plane device only needs to issue a scanning instruction once, and the scanning module in the data plane device can perform scanning operations on the matched multiple target flow tables one by one according to the flow table identifier in the scanning instruction, thereby reducing the interaction frequency between the control plane device and the data plane device, and alleviating the performance pressure of the control plane device. BRIEF DESCRIPTION OF THE DRAWINGS

[0035] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings required for use in the embodiments will be briefly introduced below. It should be understood that the following drawings only show certain embodiments of the present application and therefore should not be regarded as limiting the scope. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.

[0036] Figure 1 One of the schematic diagrams of the IFIT flow monitoring principle provided in the embodiment of the present application;

[0037] Figure 2 The second schematic diagram of the IFIT flow monitoring principle provided in the embodiment of the present application...;

[0038] Figure 3 One of the schematic diagrams of the delay calculation principle provided in the embodiment of the present application;

[0039] Figure 4 The second schematic diagram of the delay calculation principle provided in the embodiment of the present application;

[0040] Figure 5 A schematic diagram of the flow table configuration principle provided in the embodiment of the present application;

[0041] Figure 6 A flowchart of a scanning method for an IFIT flow table provided in an embodiment of the present application;

[0042] Figure 7 A schematic diagram of the scanning principle of the scanning module provided in an embodiment of the present application. DETAILED DESCRIPTION

[0043] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, rather than all the embodiments. The components of the embodiments of the present application described and shown in the drawings here can be arranged and designed in various different configurations.

[0044] Therefore, the following detailed description of the embodiments of the present application provided in the accompanying drawings is not intended to limit the scope of the present application for which protection is sought, but merely represents selected embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in the field without creative work are within the scope of protection of the present application.

[0045] It should be noted that similar reference numerals and letters denote similar items in the following drawings, and therefore, once an item is defined in one drawing, further definition and explanation thereof is not required in subsequent drawings.

[0046] In the description of the present application, it should be noted that the terms "first", "second", "third", etc. are only used to distinguish the description and cannot be understood as indicating or implying relative importance. In addition, the terms "comprise", "include" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also includes other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the presence of other identical elements in the process, method, article or device including the element.

[0047] Based on the above statement, in order to make the following embodiments easier to understand, Figure 2 , Figure 3 , Figure 4 Explain the packet loss and delay detection principles based on IFIT flow:

[0048] First of all, it should be understood that the IFIT detection process mainly involves three objects: the target flow, the network through which the target flow passes, and the detection system.

[0049] (1) Target flow:

[0050] By using the IFIT flow table to monitor the target flow, this embodiment provides three different monitoring intensities, allowing the received messages to be matched with different degrees of precision. According to the matching results, the pre-configured operations in the IFIT flow table will be executed on the successfully matched messages. Therefore, the IFIT flow table can be used to implement network performance detection tools such as packet loss detection, delay detection, jitter detection, path tracking, and traffic distribution. The hierarchical monitoring mechanism provided by this embodiment ensures that different traffic characteristics can be flexibly responded to, thereby achieving more accurate and efficient traffic management and analysis. The following is a detailed description of these three detection intensities:

[0051] The five-tuple granularity can uniquely determine the detection flow by specifying the relevant field information in the IP packet header, including the five-tuple of source IP address, destination IP address, protocol number, source port number, destination port number, and DSCP. This method is suitable for performance detection of specific flows. For example, if you want to detect the network activity of a specific application or the access traffic of a specific website, then the five-tuple granularity detection is the most appropriate.

[0052] MAC granularity can uniquely determine the detection flow by specifying the relevant field information in the Ethernet packet header, including the source MAC address, destination MAC address, and protocol type. This method is suitable for performance testing of specific flows. Therefore, MAC granularity detection allows network administrators to track and analyze traffic at a more granular level. For example, in a local area network (LAN) environment, when it is necessary to detect the communication traffic between specific devices, MAC granularity detection is particularly important.

[0053] Peer granularity is a more macroscopic detection method, mainly used to track end-to-end traffic conditions. It generates target flows by specifying the peer IPv4 / IPv6 address or the peer locator mechanism. This method is suitable for performance detection of the overall end-to-end traffic. Therefore, peer granularity detection is suitable for analyzing the overall trend and performance indicators of traffic from a specific source to a specific destination in the network, such as evaluating the end-to-end quality of service (QoS) of a specific business or application in a data center network.

[0054] (2) Traversing the network:

[0055] The network that the target flow passes through is the network that carries the target flow, that is, the target flow is neither generated nor terminated in the network, and each node in the network is required to have IP reachability, that is, it can be addressed and routed through the IP protocol, so that the data packet can reach the destination point accurately from the source point.

[0056] Depending on the bearer network, the following six methods are supported:

[0057] SRv6 tunnel, a tunnel technology based on Segment Routing (SR), uses IPv6 prefix and label sequence to define the path. SRv6 allows flexible and programmable path control on IP networks, thereby supporting various types of data transmission, including multicast, broadcast, and specific application requirements.

[0058] MPLS-SR tunnels combine the features of MPLS (Multiprotocol Label Switching) and SR to create efficient traffic paths on IP / MPLS networks, while using the flexibility of SR to configure and optimize the paths.

[0059] MPLS tunnel, the traditional MPLS tunnel technology, is used to provide a dedicated and reliable transmission path in a multi-protocol IP network. MPLS tunnel achieves fast forwarding by adding labels to data packets, improving network efficiency and security.

[0060] VxLAN Tunnel,VxLAN (Virtual eXtensible Local Area Network) is a UDP-based Layer 2 tunnel protocol used to extend the network in a virtualized environment.,Therefore, it allows the creation of virtual networks on the existing physical network infrastructure,,supporting larger-scale virtual machine (VM) migration and network isolation.

[0061] Native IPv4 network refers to a network built directly based on the IPv4 protocol, which is suitable for traditional Internet communications, enterprise LANs, etc. In these scenarios, IPv4 provides basic IP addressing and routing functions to support various applications and services.

[0062] Native IPv6 network is similar to Native IPv4, but based on IPv6 protocol, it provides a larger address space and supports more advanced network functions, such as multiplexing, flow labeling, network security enhancement, etc. Therefore, IPv6 network is particularly suitable for the needs of future networks, including the Internet of Things, mobile communications and other fields.

[0063] (3) Detection system

[0064] Based on the introduction of the target flow and the target flow's traversal network in the above embodiment, Figure 2 As shown, the detection system includes the head node, the middle node, and the tail node:

[0065] The first node is the device where the target flow enters the traversal network. It is responsible for screening the target flow, adding an IFIT flow header to the target flow, collecting the monitoring information of the target flow and reporting it to the analyzer.

[0066] The intermediate node automatically identifies the IFIT target flow according to whether the message contains the IFIT flow header, and then decides whether to collect the monitoring information of the target flow and report it to the analyzer according to the measurement type carried in the IFIT header.

[0067] The tail node is the device where the target flow leaves the target and traverses the network. The tail node automatically identifies the IFIT target flow based on whether the message contains the IFIT flow header, collects the monitoring information of the target flow and reports it to the analyzer, and finally strips off the IFIT flow header of the target flow to restore the message to the original target flow.

[0068] The analyzer is responsible for collecting the monitoring information sent by the head node, intermediate node, and tail node and completing the data aggregation and calculation.

[0069] Therefore, each node performs different IFIT processing operations at the node granularity. According to different processing operations, there are mainly three types of nodes:

[0070]

[0071] Based on the introduction of the target flow, the target flow traversing the network and the detection system in the above embodiments, Figure 3 As shown in the figure, IFIT packet loss detection detects packet loss at different nodes in the network by marking and counting packets, and determines the location of packet loss. It can also calculate the packet loss rate. The detection process is as follows:

[0072] (1) Detection timer start and L-bit mark

[0073] In IFIT packet loss detection, the control plane device of the first node will run a detection timer. The period of the detection timer is configured by the user, such as 1 second, 10 seconds, 60 seconds or 300 seconds. Each time the detection timer starts, the first node will mark the message of the target flow and set the value of the packet loss mark value (L-bit) of the message. In order to avoid statistical errors, the value of L-bit is alternately set to 0 and 1 in adjacent detection cycles. For example, if the value of L-bit is 0 in one cycle, then the value of L-bit will be set to 1 in the next cycle, and so on.

[0074] (2) Message detection information of each node

[0075] The control plane devices at the head node, intermediate node, and tail node all run a statistical timer to count the received messages with the corresponding L-bit mark.

[0076] (3) Data statistics and clearing

[0077] When the statistical timer cycle ends, each node will read and clear the message count corresponding to the L-bit counted in the cycle. This process can ensure that the count in the next statistical cycle will not be affected by the data in the previous cycle, thereby ensuring the accuracy of the statistical results.

[0078] (4) Packet loss detection and analysis

[0079] Each node (first node, middle node and tail node) reports its counted message count to the analyzer. Assume that the count of the first node is P i , the count of intermediate nodes is P m , the count of the tail node is P e , the analyzer can determine whether there is packet loss, determine the location of packet loss, and calculate the packet loss rate by comparing these count values. i >P m >P e , it means that there is packet loss between the head node and the intermediate node and between the intermediate node and the tail node.

[0080] like Figure 4 As shown in the figure, according to the delay color mark value (D-bit) of the message, the timestamp of the message is recorded on different nodes of the network, so as to calculate the delay between nodes, within nodes and end-to-end. The detection process is as follows:

[0081] (1) Detection timer start and D-bit marking

[0082] In IFIT delay detection, the control plane device of the first node will run a detection timer. The period of this timer is configured by the user, such as 1 second, 10 seconds, 30 seconds, 60 seconds or 300 seconds. At the beginning of each detection cycle, the first node will set the D-bit value of the first message of the target flow to 1, and set the D-bit value of subsequent messages to 0. In other words, in each detection cycle, only one message is marked for delay detection, avoiding the extra burden brought by the delay statistics of a large number of messages.

[0083] (2) Time record of each node

[0084] When the first node, the middle node, and the tail node receive a message with a D-bit value of 1, these nodes will immediately record the current timestamp. These timestamps reflect the specific arrival time of the message with a D-bit of 1 at each node. For example, Figure 4 t in 0 ,t 1 ,t 2 ,t 3 ,t 4 ,t 5 The timestamps respectively indicate the specific arrival time of the message at the head node, intermediate node and tail node.

[0085] (3) Delay calculation and analysis

[0086] The timestamps recorded by each node will be reported to the analyzer. The analyzer can calculate the network delay based on these timestamps, including inter-node delay, intra-node delay, and end-to-end total delay. Specifically:

[0087] The inter-node delay can be calculated by comparing the timestamps of two adjacent nodes.

[0088] The intra-node delay can be calculated by comparing the timestamps of the inbound and outbound directions of the same node, for example, Figure 3 Medium 1 With t 0 The difference can also reflect the delay of internal processing in the first node.

[0089] The total end-to-end delay can be calculated by comparing the timestamps of the first and last nodes, for example, Figure 4 t in 5 With t 0 The difference represents the total delay experienced by the message from the head node to the tail node.

[0090] Based on the introduction of the packet loss and delay detection principles of IFIT flows in the above embodiments, as introduced in the background technology, the current scanning method of the IFIT flow table requires frequent interaction between the control plane devices and the data plane devices responsible for detecting the IFIT flows, which will occupy a large amount of computing resources of the control plane devices, thereby affecting the accuracy and efficiency of data processing.

[0091] For this, see Figure 5 The network device shown in the figure can be a switch or a router. The network device includes a control plane device and a data plane device. Among them, the control plane device can be used to perform multiple tasks and handle a wide range of applications. For example, the CPU can run a variety of software programs, from operating systems to applications, covering a wide range of functions from data processing, computing to image rendering. Therefore, a device integrated with a CPU can be used as a control plane device.

[0092] Data plane devices are chips designed specifically for specific tasks or specific application scenarios. For example, network devices such as routers, switches, and firewalls usually need to process a large number of data packets and execute complex network protocols and rules. These operations require efficient and low-latency processing capabilities, especially in environments that need to handle large-scale data traffic. Therefore, the above-mentioned data plane devices can be ASIC chips. Through their highly optimized design, ASIC chips can provide higher performance and efficiency for packet processing, traffic management, encryption, security, and protocol processing.

[0093] In this embodiment, the control plane device is responsible for the processing of the control plane. Specifically, the detection timer running in the control plane device sets the packet loss coloring value (L-bit) or the delay coloring value (D-bit) to the IFIT flow table of the data plane device one by one at the beginning of the detection cycle; then, the statistical timer running in the control plane device reads and clears the statistical count of the L-bit to the IFIT flow table one by one at the end of the statistical cycle, and receives the D-bit timestamp from the ASIC; finally, the packet loss detection result and the delay detection result are reported to the analyzer.

[0094] The data plane device is responsible for data plane processing. Specifically, the data plane device maintains the input IFIT flow table (Input IFIT flow table) and the output IFIT flow table (Output IFIT flow table). For the first node, when the input IFIT flow matches the Input IFIT flow table, the data plane device marks it as a target flow message, adds an IFIT header encapsulation to the message, and sets the corresponding packet loss coloring value (L-bit) and delay coloring value (D-bit).

[0095] For other nodes, if the IFIT flow matches the Input / Output IFIT flow table, the data plane device performs cumulative counting processing on the data packets with the packet loss color value; and records the current timestamp of the data packet carrying the delay color value, and sends the timestamp to the control plane device for subsequent delay detection.

[0096] In summary, the control plane devices and data plane devices work closely together to complete the detection of IFIT flows: from setting detection parameters, statistical analysis, to data encapsulation and transmission, to timestamp collection and feedback, forming a complete data flow processing chain. If the message matches the Input / Output IFIT flow table, and the D-bit carried by the message is 1, the current timestamp is recorded and reported to the CPU. Therefore, the control plane device mainly includes the following two operations on the IFIT flow table in the data plane device:

[0097] (1) The detection timer starts and the L-bit and D-bit are set one by one

[0098] (2) After the statistics timer ends, read and clear the L-bit detection information one by one

[0099] As the capacity of network equipment continues to increase, the size of the IFIT flow table maintained in the data plane device is also increasing exponentially. This means that the above-mentioned one-by-one operations of the control plane device on the IFIT flow table in the data plane device will occupy a large amount of computing resources of the control plane device. In addition, due to the large size of the IFIT flow table, the cumulative time to complete all the one-by-one operations will be long. When this time reaches a certain proportion of the detection cycle, timing problems will be introduced.

[0100] Exemplarily, the above user-configured periods of 1 second, 10 seconds, 30 seconds, 60 seconds or 300 seconds are continued. Assume that the data plane device is configured with 50 IFIT flow tables with a period of 1 second, and 30 IFIT flow tables with a period of 10 seconds. This means that the data plane device needs to operate the 50 IFIT flow tables with a period of 1 second one by one every 1 second; similarly, it needs to operate the 30 flow tables with a period of 10 seconds one by one every 10 seconds. As the capacity of network equipment continues to increase, the number of flow tables configured in the data plane devices will only increase, and then the cumulative time of one-by-one operations will increase synchronously.

[0101] Based on the discovery of the above technical problems, the inventors have proposed the following technical solutions to solve or improve the above problems through creative work. It should be noted that the defects in the solutions in the above prior art are the results obtained by the inventors after practice and careful research. Therefore, the discovery process of the above problems and the solutions proposed in the embodiments of the present application for the above problems below should all be the contributions made by the inventors to the present application in the process of invention and creation, and should not be understood as technical contents known to those skilled in the art.

[0102] In view of the technical problems found above, this embodiment provides a scanning method for an IFIT flow table, which is applied to a data plane device that is communicatively connected to a control plane device, and the data plane device includes a scanning module. In this method, the scanning module receives a scanning instruction sent by the control plane device, wherein the scanning instruction includes flow table identifiers of multiple target flow tables and scanning information of each target flow table; in response to the scanning instruction, multiple target flow tables are determined from the IFIT flow table managed by the scanning module according to the flow table identifier; and corresponding scanning operations are performed according to the scanning information of each target flow table. In this way, the control plane device only needs to issue a scanning instruction once, and the scanning module in the data plane device can perform scanning operations on the matched multiple target flow tables one by one according to the flow table identifier in the scanning instruction, thereby reducing the interaction frequency between the control plane device and the data plane device, and alleviating the performance pressure of the control plane device.

[0103] To make the solution provided by this embodiment clearer, Figure 6 Each step of the method is described in detail. However, it should be understood that the operations of the flowchart may not be implemented in order, and steps without logical contextual relationships may be reversed in order or implemented simultaneously. In addition, those skilled in the art may add one or more other operations to the flowchart, or remove one or more operations from the flowchart under the guidance of the content of this application. Figure 6 As shown, the method includes:

[0104] S1A, the scanning module receives a scanning instruction sent by the control plane device.

[0105] The scanning instruction includes flow table identifiers of multiple target flow tables and scanning information for each target flow table. In an optional implementation, the number of the flow table identifiers can be multiple, and each flow table identifier corresponds to a target flow table. In other implementations, the number of the flow table identifiers can also be only one, but the flow table identifier corresponds to multiple target flow tables of the same type.

[0106] Exemplarily, the above user-configured periods of 1 second, 10 seconds, 30 seconds, 60 seconds or 300 seconds are used as an example. At this time, the data plane device is configured with an IFIT flow table that runs once every 1 second, an IFIT flow table that runs once every 10 seconds, an IFIT flow table that runs once every 30 seconds, an IFIT flow table that runs once every 60 seconds, and an IFIT flow table that runs once every 300 seconds. Each period may correspond to multiple IFIT flow tables, for example, there may be 10 IFIT flow tables that run once every 1 second.

[0107] Based on the detection cycle set by the user, the control plane device needs to configure and read these IFIT flow tables periodically according to the detection cycle. For example, every 1 second, the IFIT flow table with an operating cycle of 1 second needs to be configured or read; similarly, every 10 seconds, the IFIT flow table with an operating cycle of 10 seconds needs to be configured or read. Therefore, when the operating cycle of the IFIT flow table is used as the flow table identifier, a single flow table identifier may correspond to multiple target flow tables.

[0108] In addition, the number of the above scanning modules can also be multiple. For example, Figure 7 As shown, the ASIC chip as a data plane device integrates multiple scanning modules, namely, an input direction scanning module and an output direction scanning module, which respectively scan and process the input IFIT stream and the output IFIT stream one by one. The CPU in the control plane device can send scanning instructions to the input direction scanning module and the output direction scanning module at the same time, and can also send scanning instructions to the input direction scanning module and the output direction scanning module separately.

[0109] Based on the above implementation of the flow table identification, continue to refer to Figure 6 , the method further comprises:

[0110] S2A, in response to the scanning instruction, multiple target flow tables are determined from the IFIT flow table managed by the scanning module according to the flow table identifier.

[0111] S3A, performing corresponding scanning operations according to the scanning information of each target flow table.

[0112] In this way, batch scanning of multiple target flow tables is realized through the scanning module, which reduces the interaction frequency between the control plane device and the data plane device and improves the scanning efficiency of the IFIT flow table.

[0113] For this, see Figure 7 , a detection timer and a statistical timer are running on the CPU in the control plane device. When the detection timer performs the "set L-bit and D-bit" operation, it only needs to interact with the scanning module in the ASIC once, and send the scanning instruction carrying the flow table identifier to the inbound scanning module and the outbound scanning module. Similarly, when the detection timer performs the "read and clear L-bit statistical count" operation, it only needs to interact with the scanning module in the ASIC once, and send the scanning instruction carrying the flow table identifier to the inbound scanning module and the outbound scanning module. The ASIC chip can operate on the multiple target flow tables scanned one by one according to the flow table identifier.

[0114] As Figure 7The detection timer and the statistics timer shown in the figure both send scanning instructions to complete different operations. In this embodiment, the scanning instruction sent by the detection timer is called a flow table configuration instruction, and the scanning instruction sent by the statistics timer is called a flow table reading instruction. The response methods of these two instructions are described in detail below.

[0115] (1) Scanning instructions are flow table configuration instructions

[0116] If the scanning instruction is a flow table configuration instruction, then for each target flow table, the scanning module determines whether the target flow table has a head node identifier; if so, the flow table parameter value in the scanning information of the target flow table is configured into the target flow table so that the target flow table uses the flow table parameter value to detect the IFIT flow.

[0117] In the process of configuring the flow table parameter values ​​in the scanning information of the target flow table into the target flow table, the scanning module may write the packet loss coloring value and the delay coloring value into their respective reserved positions in the target flow table.

[0118] Exemplarily, the IFIT flow table provided in this embodiment has the following configurable parameters:

[0119] L-bit: This parameter is used to record the L-bit value corresponding to the current cycle of the detection timer.

[0120] D-bit: When this parameter is set to 1, the ASIC will automatically set the value to 0 after processing the periodic received packets to prevent more than one D-bit colored message from appearing in the same period.

[0121] Period: This parameter is used to record the period ID parameter of the flow, corresponding to periods such as 1s, 10s, 30s, 60s, and 300s. Different timers only process the IFIT Flow whose period ID matches the timer period.

[0122] isSourceNode: This parameter is used to record the first node ID or non-first node ID, where 1 is the first node ID and 0 is the non-first node ID. Only the first node needs to set the L-bit and D-bit.

[0123] Based on the above IFIT flow table configurable parameters, continue to refer to 7. After the detection timer cycle running on the CPU in the control plane device starts, it determines which cycle IDs of the IFIT flow table need to be processed this time, and calculates the L-bit value corresponding to each cycle ID. In this regard, it can be understood that different cycle IDs correspond to different L-bit values, which are used as coloring identifiers for the IFIT flow table. Finally, the detection timer generates a flow table configuration instruction based on the above cycle IDs that need to be processed and the L-bit values ​​corresponding to each cycle ID. The parameter details in the flow table configuration instruction are as follows:

[0124] Period_Bitmap, this parameter is used to record the period ID in the form of Bitmap;

[0125] Operation, this parameter is set to 0, indicating that the scan instruction is a flow table configuration instruction, instructing the scan module to perform the "set L-bit and D-bit" operation;

[0126] L-bit_Bitmap, this parameter is used to set the Bitmap bit corresponding to the period ID to the L-bit value;

[0127] D-bit_Bitmap, this parameter is used to set the Bitmap bit corresponding to the period ID to 1;

[0128] isCircle, when this parameter is set to the loop enable flag, it indicates periodic loop execution; when this parameter is set to the loop disable flag, it indicates a single execution, where the loop enable flag is 1 and the loop disable flag is 0;

[0129] idleTime: When isCircle is set to the loop disable flag, this parameter is not used; when isCircle is set to the loop enable flag, this parameter is used to record the loop period.

[0130] For the above flow table configuration instructions, Period_Bitmap records the flow table identifier, and the rest is the scan information. L-bit_Bitmap and D-bit_Bitma in the scan information represent the flow table parameter values, and isCircle and idleTime in the scan information are used to record the loop activation identifier and the loop period.

[0131] Based on the introduction of the flow table configuration instructions in the above embodiment, Figure 7 The inbound scanning module and the outbound scanning module in the ISP respond in the following ways:

[0132] Taking the inbound scanning module as an example, based on the parameters of the above IFIT flow table, the inbound scanning module will traverse each IFIT flow table in the inbound IFIT flow table in turn, and then determine whether the flow table has a first node identifier. If not, the IFIT flow table will be skipped.

[0133] On the contrary, if there is a first node identifier, the inbound scanning module will determine whether the Period in the IFIT flow table matches the period ID configured in Period_Bitmap. If not, the IFIT flow table will be skipped;

[0134] On the contrary, if there is a match, the inbound direction scanning module obtains the L-bit value corresponding to the period ID from the L-bit_Bitmap and updates it to the position reserved for the parameter in the IFIT flow table.

[0135] When the delay state needs to be detected, the inbound scanning module also obtains the D-bit value corresponding to the cycle ID from the D-bit_Bitmap and updates it to the position preset for the parameter in the IFIT flow table. It should be noted that the outbound scanning module responds to the flow table configuration instruction in the same way, which will not be repeated here.

[0136] In addition, as described in the above embodiment, isSourceNode in the flow table configuration instruction is used to record the loop enable instruction and the loop disable instruction. Therefore, if the scanning module detects that the scanning information also includes a loop enable flag and a loop period, after configuring the flow table parameter value in the scanning information of the target flow table into the target flow table, the flow table parameter value in the scanning information of the target flow table is periodically configured into the target flow table according to the loop period.

[0137] For example, continue with Figure 7 Take the inbound scanning module and the outbound scanning module as an example. Assuming that the cycle period is 10s, and each round of scanning operation takes 0.1s, the value of the parameter idleTime can be set to 9.9s. In this way, the inbound scanning module and the outbound scanning module perform a scanning operation on the managed IFIT flow table approximately every 10s, which can further reduce Figure 7 The CPU performance overhead in .

[0138] (2) The scanning instruction is a flow table read instruction

[0139] For each target flow table, the scanning module reads the detection information of the target flow table on the IFIT flow from the target flow table; and sends the detection information to the data plane device. In addition, the scanning module also clears the flow table parameter value written into the target flow table, so that the target flow table stops detecting the IFIT flow. In this embodiment, the detection information includes the timestamp of the tag loss statistics count and the delay detection collection. Of course, in other embodiments, the detection information may also include other message features.

[0140] Exemplarily, continue to refer to 7, after the statistical timer cycle running on the CPU in the control plane device expires, it is determined which IFIT flow tables of the cycle ID need to be processed this time; then, based on the above cycle ID that needs to be processed, a flow table read instruction is generated, and the details of the flow table read instruction are as follows:

[0141] Period_Bitmap: This parameter is used to record the period ID in the form of Bitmap;

[0142] Operation: Set to 1, indicating the "read and clear L-bit detection information" operation;

[0143] L-bit_Bitmap: This parameter is not used;

[0144] D-bit_Bitmap: This parameter is not used;

[0145] isCircle: When this parameter is set to the loop disable flag, it indicates a single execution; the loop disable flag is 0;

[0146] idleTime: This parameter is not used.

[0147] For the above flow table configuration instructions, Figure 7 The inbound scanning module and the outbound scanning module in the ISP respond in the following ways:

[0148] Continuing with the inbound scanning module as an example, the inbound scanning module will traverse all the IFIT flow tables in turn to determine whether the Period of the IFIT flow table matches the Period_Bitmap. If not, the IFIT flow table will be skipped; otherwise, the statistical counts of the L-bit 0 and 1 in the IFIT flow table will be reported to the CPU, and cleared after reporting, so that the target flow table stops detecting subsequent IFIT flows.

[0149] In addition, as described in the above embodiment, the scanning instruction also includes two parameters, isCircle and idleTime, which are respectively called a cycle flag and a cycle period. Therefore, when the two parameters take effect, the inbound scanning module and the outbound scanning module periodically scan the IFIT flow table according to idleTime.

[0150] Based on the introduction of the data plane device in the above implementation, this implementation also provides an IFIT flow table scanning method, which is applied to a control plane device that is connected to the data plane device in communication. In this method, the control plane device sends a scanning instruction to the scanning module, wherein the scanning instruction includes flow table identifiers of multiple target flow tables and scanning information of each target flow table; the scanning instruction is used to instruct the scanning module to determine multiple target flow tables from the IFIT flow table managed by the scanning module according to the flow table identifier; and perform a scanning operation corresponding to the scanning information on each target flow table respectively.

[0151] As introduced in the above embodiment, packet loss and delay detection of IFIT flow can be achieved by issuing flow table configuration instructions and flow table reading instructions, and these operations are not one-time operations, but are performed periodically. Therefore, when the scanning instruction is a flow table configuration instruction periodically issued by the control plane device, after each cycle, a flow table reading instruction will also be issued to read the detection information of the IFIT flow.

[0152] However, the control plane device also sends other flow table configuration instructions in different cycles, and the different cycles have the same common multiples, which may lead to the situation where the flow table configuration instructions and the flow table reading instructions are sent at the same time, but the scanning module can only respond to the flow table configuration instructions or the flow table reading instructions at the same time.

[0153] For example, the user-configured periods of 1s, 10s, 30s, 60s, and 300s are used as examples. There is a three-fold relationship between 10s and 30s. When the third 10 seconds arrives, the flow table configuration instruction may be triggered. At the same time, the flow table reading instruction of the first 30-second period may also be triggered at this time, causing a conflict.

[0154] In this regard, the control plane device sends a flow table reading instruction to the scanning module after a preset time after sending the flow table configuration instruction to the scanning module, wherein the preset time is greater than the issuance cycle of the flow table configuration instruction, wherein the flow table configuration instruction is used to instruct the scanning module to report the detection information of the target flow table for the IFIT flow.

[0155] Thus, on the basis of each cycle of issuing the flow table configuration instruction, the flow table reading instruction is issued after a preset time delay to ensure that the scanning module staggers the response flow table reading instruction and the flow label reading instruction.

[0156] For example, assuming that 10 seconds is a cycle, the preset duration may be 10.5 seconds, and this 0.5 second time difference is enough for the scanning module to complete a scanning operation. The specific details are shown in the following table:

[0157] Timer T0 T1 T2 T3 Detection timer start time 10:0:0.0 10:0:10.0 10:0:20.0 10:0:30.0 Statistics and timing end time 10:0:13.5 10:0:23.5 10:0:33.5 10:0:43.5

[0158] Based on the above-mentioned IFIT flow table scanning method provided in this embodiment, under the same inventive concept, this embodiment also provides a control plane device, the control plane device includes a processor and a memory, the memory stores a computer program, and when the computer program is executed by the processor, the IFIT flow table scanning method is implemented.

[0159] In addition, this embodiment further provides a data plane device, which includes a processor and a memory, wherein the memory stores a computer program, and when the computer program is executed by the processor, any one of the IFIT flow table scanning methods is implemented.

[0160] Finally, this embodiment also provides a network device, which includes a control plane device and a data plane device.

[0161] The memory may be an information recording device based on any electronic, magnetic, optical or other physical principle, used to record execution instructions, data, etc. In some embodiments, the memory may be, but is not limited to, a volatile memory, a non-volatile memory, a storage drive, etc.

[0162] In some embodiments, the volatile memory may be a random access memory (RAM); in some embodiments, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable read-only memory (EEPROM), a flash memory, etc.; in some embodiments, the storage drive may be a disk drive, a solid-state drive, any type of storage disk (such as a CD, a DVD, etc.), or a similar storage medium, or a combination thereof, etc.

[0163] The processor may be an integrated circuit chip having a signal processing capability, and the processor may include one or more processing cores (e.g., a single-core processor or a multi-core processor). By way of example only, the processor may include a central processing unit (CPU), an application specific integrated circuit (ASIC), an application specific instruction set processor (ASIP), a graphics processing unit (GPU), a physical processing unit (PPU), a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic device (PLD), a controller, a microcontroller unit, a reduced instruction set computer (RISC), or a microprocessor, or any combination thereof.

[0164] In addition, it should be noted that the implementation of the processing flow in the above-mentioned embodiment is not limited to the processor reading and running a pure computer-readable program code from a memory, but can also be implemented by hardware or logic devices. That is, the improvement of a technology can be divided into hardware improvements (for example, improvements to circuit structures such as diodes, transistors, switches, etc.) and software improvements (for improvements to method flows). However, with the development of technology, many improvements to method flows today can be regarded as direct improvements to hardware circuit structures. Designers almost always obtain corresponding hardware circuit structures by programming the improved method flow into the hardware circuit. Therefore, it cannot be said that an improvement in a method flow cannot be implemented using a hardware entity module.

[0165] For example, a programmable logic device (PLD) (such as a field programmable gate array (FPGA)) is an integrated circuit whose logic function is determined by the user's programming of the device. Designers can "integrate" a digital system on a PLD by programming themselves, without having to ask chip manufacturers to design and produce dedicated integrated circuit chips. Moreover, nowadays, instead of manually making integrated circuit chips, this kind of programming is mostly implemented by "logic compiler" software, which is similar to the software compiler used when developing and writing programs, and the original code before compilation must also be written in a specific programming language, which is called hardware description language (HDL). There is not only one kind of HDL, but many kinds, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, RHDL (Ruby Hardware Description Language), etc. Among them, VHDL (Very-High-Speed ​​Integrated Circuit Hardware Description Language) and Verilog are currently the most commonly used. It should be clear to those skilled in the art that only by slightly programming the method flow in the above-mentioned hardware description languages ​​and programming it into the integrated circuit, the hardware circuit that implements the logic method flow can be easily obtained.

[0166] It should be understood that the apparatus and method disclosed in the above-mentioned embodiments can also be implemented in other ways. The apparatus embodiments described above are merely schematic. For example, the flowcharts and block diagrams in the accompanying drawings show the possible architecture, functions and operations of the apparatus, methods and computer program products according to the multiple embodiments of the present application. In this regard, each box in the flowchart or block diagram can represent a module, a program segment or a part of a code, and the module, a program segment or a part of a code contains one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or the flowchart, and the combination of boxes in the block diagram and / or the flowchart can be implemented with a dedicated hardware-based system that performs a specified function or action, or can be implemented with a combination of dedicated hardware and computer instructions.

[0167] The above are only various implementations of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

Claims

1. A scanning method for an IFIT flow table, characterized in that: A data plane device is applied to a data plane device in communication with a control plane device, the data plane device includes a scanning module, and the method includes: The scanning module receives a scanning instruction sent by the control plane device, wherein the scanning instruction includes flow table identifiers of multiple target flow tables and scanning information of each of the target flow tables; In response to the scanning instruction, determining the plurality of target flow tables from the IFIT flow table managed by the scanning module according to the flow table identifier; A corresponding scanning operation is performed according to the scanning information of each target flow table.

2. The scanning method of the IFIT flow table according to claim 1, characterized in that: The performing corresponding scanning operations according to the scanning information of each target flow table respectively includes: If the scanning instruction is a flow table configuration instruction, then for each of the target flow tables, determining whether the target flow table has a head node identifier; If so, the flow table parameter value in the scanning information of the target flow table is configured into the target flow table, so that the target flow table detects the IFIT flow using the flow table parameter value.

3. The scanning method of the IFIT flow table according to claim 2, characterized in that: After configuring the flow table parameter value in the scanning information of the target flow table into the target flow table, the method further includes: If the scanning information further includes a cyclic activation flag and a cyclic period, the flow table parameter value in the scanning information of the target flow table is periodically configured into the target flow table according to the cyclic period.

4. The scanning method of the IFIT flow table according to claim 1, characterized in that: The performing corresponding scanning operations according to the scanning information of each target flow table respectively includes: If the scanning instruction is a flow table reading instruction, then for each of the target flow tables, the detection information of the target flow table on the IFIT flow is read from the target flow table; The detection information is sent to the data plane device.

5. The scanning method of the IFIT flow table according to claim 4, characterized in that: After sending the detection information to the data plane device, the method further includes: The flow table parameter values ​​written into the target flow table are cleared, so that the target flow table stops detecting the IFIT flow.

6. A scanning method for an IFIT flow table, characterized in that: A control plane device is applied to a control plane device in communication with a data plane device, wherein the data plane device includes a scanning module, and the method includes: Sending a scanning instruction to the scanning module, wherein the scanning instruction includes flow table identifiers of multiple target flow tables and scanning information of each of the target flow tables; The scanning instruction is used to instruct the scanning module to determine the multiple target flow tables from the IFIT flow table managed by the scanning module according to the flow table identifier; and to perform a scanning operation corresponding to the scanning information on each of the target flow tables respectively.

7. The scanning method of the IFIT flow table according to claim 6, characterized in that: The scanning instruction is a flow table configuration instruction issued periodically, the control plane device also issues other flow table configuration instructions in different periods, and the different periods have the same common multiples, and the method further includes: After a preset time period after the flow table configuration instruction is sent to the scanning module, a flow table reading instruction is sent to the scanning module, wherein the preset time period is greater than the issuing cycle of the flow table configuration instruction, wherein the flow table configuration instruction is used to instruct the scanning module to report the detection information of the target flow table on the IFIT flow.

8. A control surface device, characterized in that: The control plane device includes a processor and a memory, the memory stores a computer program, and when the computer program is executed by the processor, the IFIT flow table scanning method according to any one of claims 1 to 5 is implemented.

9. A data plane device, characterized in that: The data plane device includes a processor and a memory, the memory stores a computer program, and when the computer program is executed by the processor, the IFIT flow table scanning method according to any one of claims 6 to 7 is implemented.

10. A network device, characterized in that: The network device includes the control plane device according to claim 8 and the data plane device according to claim 9.