Deterministic path probing instance multiplexing method, apparatus and device
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- NEW H3C TECH CO LTD
- Filing Date
- 2023-08-15
- Publication Date
- 2026-08-07
AI Technical Summary
[0038]有鉴于此,本发明提供一种确定性路径探测实例复用方法、装置和设备,用于解决在相同段列表上重复创建确定性路径探测实例导致资料浪费的技术问题
[0076]本发明在通过确定性路径对确定性流进行转发时,通过探测实例复用表来复用使用相同段列表的确定性路径上创建的确定性路径探测实例,通过复用确定性路径探测实例,避免了使用相同段列表标签栈的确定性路径上创建重复的确定性路径探测实例,从而提高了确定性路径资源的利用率。
Smart Images

Figure CN117201384B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of communication technology, and in particular to a method, apparatus, and device for multiplexing deterministic path detection instances. Background Technology
[0002] Traditional Ethernet uses a best-effort approach to transmit data, reducing end-to-end latency to tens of milliseconds. However, many emerging services, such as autonomous driving, connected vehicles, smart transportation, industrial control, smart agriculture, remote surgery, driverless cars, virtual reality (VR) games, and smart services, require end-to-end latency to be controlled in the microsecond to millisecond range, latency jitter to the microsecond level, and reliability to above 99.9999%. Therefore, there is an urgent need to establish a next-generation network that can provide timely and accurate data transmission services.
[0003] Deterministic Networking (DetNet) is a network technology that provides deterministic quality of service (QoS). It is a new technology that provides end-to-end deterministic QoS guarantees for various services on top of Ethernet. The DetNet end-to-end network architecture mainly includes an SDN controller and three types of DetNet network nodes: ingress edge nodes, transport nodes, and egress edge nodes.
[0004] As the brain of the entire system, the SDN controller collects information such as the topology and latency of the DetNet network, calculates the path that meets the end-to-end latency requirements of the service, and establishes a mapping relationship between deterministic service flows and forwarding cycles.
[0005] The ingress edge node (referred to as the ingress node) determines whether the end-to-end service flow of the terminal system is allowed to enter the DetNet network for deterministic forwarding based on packet characteristics, and divides packets with irregular arrival times into different forwarding cycles according to time. The service flow entering the DetNet network is called a deterministic service flow, which can be defined by the five-tuple of the IP packet (source IP address, destination IP address, source port, destination port, protocol type) and the DSCP (Differentiated Services Code Point).
[0006] Transmission nodes and egress edge nodes (referred to as egress nodes) will queue and send out the messages sent by the upstream nodes within a certain period from a designated interface of this node within a specified period.
[0007] Users can define flow characteristics (source and destination subnets, source and destination ports, or DSCP values, etc.) that require deterministic forwarding in the SDN controller. Then, the SDN controller can create deterministic paths and bind the deterministic flows requiring deterministic forwarding and the segment routing policy (SRPolicy) carrying the deterministic flows to these paths. The segment routing policy is configured with a segment list, which specifies the forwarding path for the packets.
[0008] The deployment of deterministic networks mainly involves three aspects of configuration:
[0009] 1. Definition of deterministic flow: The characteristics of service flows that need to be forwarded deterministically are defined by source and destination subnets, source and destination ports, DSCP, protocol type, etc.
[0010] #Example of a deterministic flow definition
[0011] detnetip enable
[0012] detnetip flow 2001 destination-ip 2.2.2.2 mask 24 source-ip6.6.6.6mask 24destination-port 2300 source-port 3200 protocol 1dscp 61
[0013] detnetip flow 2002 destination-ipv6 2000::2prefix 64source-ipv61000::2prefix 64destination-port 2300 source-port 3200protocol 1dscp 61
[0014] In the above example of deterministic flow configuration, two deterministic flows are configured, with deterministic flow identifiers of 2001 and 2002 respectively. The configuration of each deterministic flow includes source IP address and port, destination IP address and port, protocol type, differential service code point (DSCP), etc.
[0015] 2. Deterministic path deployment: This mainly involves configuring the ingress of deterministic flow packets, the bound deterministic flow, the deterministic timeslot, and the segment routing policy (SR Policy) that carries deterministic traffic forwarding.
[0016] #Deterministic path configuration example
[0017] detnetip path 1
[0018] source interface GigabitEthernet0 / 0 / 3
[0019] Apply flow 2001
[0020] Apply flow 2002
[0021] timeslot hop 1value 2
[0022] timeslot hop 2value 5
[0023] timeslot hop 3value 8
[0024] type srv6
[0025] policy color 10end-point ipv6 73::73
[0026] In the configuration example of the deterministic path 1 above, the source interface is used to configure the source interface of the packet's entry path. The deterministic path is bound to / applied to which deterministic flows(s) are configured in the apply flow section. In this example, deterministic flows identified by identifiers 2001 and 2002 are bound to the deterministic path identified by path 1. The transmission nodes and time slots that the packets of the deterministic flow traverse on this deterministic path are configured in the timeslot section. The segment routing protocol version of the deterministic path is configured in the type section, and the segment routing policy bound to the deterministic path is configured in the policy section.
[0027] 3. Deterministic Path Probing Example: The main configuration is the bound deterministic path identifier ID, which is used to assemble the parameter information of the probe packet, the probe period, etc.
[0028] #Example of a deterministic path detection instance
[0029] detnetoam enable
[0030] instance 1
[0031] binding-path-id 1
[0032] flow source-ip 2.2.2.10destination-ip 6.6.6.10source-port2001destination-port 2005
[0033] period 10
[0034] measure enable
[0035] In the example of the deterministic path probing above, deterministic path probing instance 1 is configured to be bound to deterministic path 1 (binding-path-id 1). The flow section is used to configure the IP address and port information of the entry and exit nodes of the probing path. In addition, it also includes the configuration of the probing period and the probing enable switch (measure).
[0036] After configuring the deterministic path and deterministic path probe instance, the device assembles probe packets based on probe packet parameter information. Then, it probes along the segment-list in the bound deterministic path's segment routing policy (SR Policy), detecting metrics such as maximum, minimum, and average timeslot deviation between upstream and downstream nodes. By reporting the timeslot deviation of each node to the controller, the controller can calculate the optimal forwarding timeslot for each node based on the probe results and deploy it to the deterministic path. When a flow requiring deterministic forwarding is matched, it enters the bound deterministic path. Based on the segment list and deterministic timeslot information in the deterministic path's segment routing policy, the ingress node encapsulates the deterministic flow's packets with a Segment Route Header (SRH) and simultaneously encapsulates deterministic timeslot information. This allows intermediate nodes to forward packets according to the determined timeslots, thus achieving deterministic forwarding.
[0037] Between two network nodes, users can create multiple segment routing policies to carry different services. When deterministic forwarding of deterministic flows of multiple user services is required, these deterministic flows may be bound to multiple segment routing policies. The path results calculated by the controller for these segment routing policies may be mostly the same, and the segment lists deployed by the controller for these segment routing policies are almost identical (the path order and weight may differ). According to the current protocol specification, when deterministic forwarding of deterministic flows of multiple user services is required, the same number of probe instances as the number of deterministic flows needs to be started to probe the time slot deviation of each deterministic path. When multiple deterministic paths are bound to the same segment routing policy, starting a large number of probe instances will result in a large number of duplicate probes, wasting device performance. Summary of the Invention
[0038] In view of this, the present invention provides a method, apparatus and device for reusing deterministic path detection instances, which solves the technical problem of data waste caused by repeatedly creating deterministic path detection instances on the same segment list.
[0039] Based on one aspect of the embodiments of the present invention, the present invention provides a method for reusing deterministic path detection instances, the method comprising:
[0040] Create a first deterministic path, bind a first segment routing policy to the first deterministic path, the first segment routing policy includes a first segment list, and the unique identifier of the first segment list is the first segment list identifier;
[0041] A first deterministic path detection instance is created for the first deterministic path, wherein the first deterministic path detection instance is the first deterministic path detection instance created based on the first segment list;
[0042] Create a second deterministic path, in which a second segment routing policy is bound, and the second segment routing policy includes a second segment list, the unique identifier of which is the second segment list identifier;
[0043] If the second list identifier is the same as the first list identifier, the first deterministic path detection instance is reused for the second deterministic path to guide the forwarding of deterministic flows in the second deterministic path.
[0044] Furthermore, a probe instance reuse table is used to record the one-to-one correspondence between segment list identifiers and deterministic path probe instances, as well as the reuse relationship between deterministic paths with the same segment list and deterministic path probe instances.
[0045] When creating the first deterministic path detection instance, the correspondence between the first segment list identifier and the first deterministic path detection instance, as well as the reuse relationship between the first deterministic path detection instance and the first deterministic path, are recorded in the detection instance reuse table.
[0046] When creating a second deterministic path, based on the same segment list identifier, the probe instance reuse table is used to determine that a first deterministic path probe instance has been created on the first segment list, and the reuse relationship between the second deterministic path and the first deterministic path probe instance is recorded in the probe instance reuse table;
[0047] Based on the reuse relationships recorded in the detection instance reuse table, the detection results of the first deterministic path detection instance are used to guide the forwarding of deterministic flows in the second deterministic path.
[0048] Furthermore, the method further includes: before triggering the deletion of the deterministic path bound to the first deterministic path detection instance, determining whether there are other deterministic paths reusing the first deterministic path detection instance based on the detection instance reuse table;
[0049] If the determination is yes, then the original deterministic path bound to the first deterministic path detection instance is updated to any one of the other deterministic paths that reuse the first deterministic path detection instance, and the reuse relationship between the original deterministic path and the first deterministic path detection instance is deleted from the detection instance reuse table.
[0050] If the determination is negative, the record corresponding to the first deterministic path detection instance is directly deleted from the detection instance reuse table.
[0051] Furthermore, the method also includes: before updating the first segment list in the first segment routing policy to the fourth segment list, matching the segment list identifier in the probe instance reuse table using the first segment list identifier;
[0052] If no record is matched, update the first list in the first routing policy to the fourth list.
[0053] If a record is matched, the fourth list identifier is used to match it in the probe instance reuse table;
[0054] If a record is matched using both the first and fourth list identifiers, the reuse relationship between the deterministic path bound to the first routing policy and the deterministic path probe instance created on the first list is deleted from the record matched by the first list identifier; and the first list in the first routing policy is updated to the fourth list, and the reuse relationship between the deterministic path bound to the first routing policy and the deterministic path probe instance created on the fourth list is added to the record matched by the fourth list identifier.
[0055] If a record is matched using the first segment list identifier but not using the fourth segment list identifier, the reuse relationship between the deterministic path bound to the first segment routing policy and the deterministic path probe instance created on the first segment list is deleted from the record matched by the first segment list identifier; the first segment list in the first segment routing policy is updated to the fourth segment list; a new deterministic path probe instance is created on the deterministic path bound to the first segment routing policy; and a new record is added to the probe instance reuse table to save the reuse relationship between the fourth segment list and the new deterministic path probe instance.
[0056] Furthermore, when deleting the reuse relationship between the deterministic path bound to the first segment routing policy and the deterministic path probe instance created on the first segment list from the records that match the identifier of the first segment list, it is determined whether there are other deterministic paths that reuse the deterministic path probe instance created on the first segment list.
[0057] If the determination is negative, the record corresponding to the first segment list identifier is directly deleted; if the determination is positive, it is further determined whether the deterministic path bound to the deterministic path probe instance corresponding to the record is a deterministic path bound to the first segment routing policy. If it is positive, the deterministic path bound to the deterministic path probe instance corresponding to the record is modified to any other deterministic path; if it is negative, the reuse relationship between the deterministic path bound to the first segment routing policy and the deterministic path probe instance created on the first segment list is directly deleted from the records matching the first segment list identifier.
[0058] Based on another aspect of the embodiments of the present invention, the present invention also provides a deterministic path detection instance reuse device. The device provided by the present invention can be implemented in software, hardware, or a combination of both. When implemented as a software module, the program code of the software module is loaded into the storage medium of the device, and the processor reads and executes the program code from the storage medium. The device includes:
[0059] The path creation module is used to create a first deterministic path, in which a first segment routing policy is bound, the first segment routing policy includes a first segment list, and the unique identifier of the first segment list is the first segment list identifier; and to create a second deterministic path, in which a second segment routing policy is bound, the second segment routing policy includes a second segment list, and the unique identifier of the second segment list is the second segment list identifier;
[0060] The instance creation module is used to create a first deterministic path detection instance for a first deterministic path, wherein the first deterministic path detection instance is the first deterministic path detection instance created based on the first segment list;
[0061] The instance reuse module is used to reuse the first deterministic path detection instance in the second deterministic path to guide the forwarding of deterministic flows in the second deterministic path when the second segment list identifier is the same as the first segment list identifier.
[0062] Furthermore, the device also includes:
[0063] The reuse table module is used to record the one-to-one correspondence between the segment list identifiers and the deterministic path detection instances in the detection instance reuse table, as well as the reuse relationship between deterministic paths with the same segment list and deterministic path detection instances.
[0064] When creating the first deterministic path detection instance, the instance creation module records the correspondence between the first list identifier and the first deterministic path detection instance, as well as the reuse relationship between the first deterministic path detection instance and the first deterministic path, in the detection instance reuse table.
[0065] When creating a second deterministic path, the instance reuse module learns from the probe instance reuse table that a first deterministic path probe instance has been created on the first segment list based on the same segment list identifier. The reuse relationship between the second deterministic path and the first deterministic path probe instance is recorded in the probe instance reuse table. Based on the reuse relationship recorded in the probe instance reuse table, the probe results of the first deterministic path probe instance for the first deterministic path guide the forwarding of deterministic flows in the second deterministic path.
[0066] Furthermore, the device also includes:
[0067] The path deletion module is used to determine whether there are other deterministic paths reusing the first deterministic path detection instance before triggering the deletion of the deterministic path bound to the first deterministic path detection instance;
[0068] If the determination is yes, then the original deterministic path bound to the first deterministic path detection instance is updated to any one of the other deterministic paths that reuse the first deterministic path detection instance, and the reuse relationship between the original deterministic path and the first deterministic path detection instance is deleted from the detection instance reuse table.
[0069] If the determination is negative, the record corresponding to the first deterministic path detection instance is directly deleted from the detection instance reuse table.
[0070] Furthermore, the device also includes:
[0071] The policy update module is used to match the segment list identifier in the probe instance reuse table before updating the first segment list in the first segment routing policy to the fourth segment list;
[0072] If no record is matched, update the first list in the first routing policy to the fourth list.
[0073] If a record is matched, the fourth list identifier is used to match it in the probe instance reuse table;
[0074] If a record is matched using both the first and fourth list identifiers, the reuse relationship between the deterministic path bound to the first routing policy and the deterministic path probe instance created on the first list is deleted from the record matched by the first list identifier; and the first list in the first routing policy is updated to the fourth list, and the reuse relationship between the deterministic path bound to the first routing policy and the deterministic path probe instance created on the fourth list is added to the record matched by the fourth list identifier.
[0075] If a record is matched using the first segment list identifier but not using the fourth segment list identifier, the reuse relationship between the deterministic path bound to the first segment routing policy and the deterministic path probe instance created on the first segment list is deleted from the record matched by the first segment list identifier; the first segment list in the first segment routing policy is updated to the fourth segment list; a new deterministic path probe instance is created on the deterministic path bound to the first segment routing policy; and a new record is added to the probe instance reuse table to save the reuse relationship between the fourth segment list and the new deterministic path probe instance.
[0076] When forwarding a deterministic flow through a deterministic path, this invention reuses deterministic path probe instances created on deterministic paths using the same segment list by using a probe instance reuse table. By reusing deterministic path probe instances, the invention avoids creating duplicate deterministic path probe instances on deterministic paths using the same segment list tag stack, thereby improving the utilization rate of deterministic path resources. Attached Figure Description
[0077] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments of the present invention or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the present invention. For those skilled in the art, other drawings can be obtained from these drawings of the embodiments of the present invention.
[0078] Figure 1 This is a schematic diagram of a network environment for probing deterministic paths in one embodiment of the present invention;
[0079] Figure 2 A flowchart of the steps of a deterministic path detection instance reuse method is provided for one embodiment of the present invention;
[0080] Figure 3 This is a flowchart illustrating the steps of an SDN controller reusing deterministic path instances based on a probe instance multiplexing table in one embodiment of the present invention.
[0081] Figure 4 This is a schematic diagram of the processing steps for changes in the reuse relationship of deterministic path probing instances caused by updating the segment list in the segment routing policy in one embodiment of the present invention.
[0082] Figure 5 This is a schematic diagram of an electronic device structure for implementing the deterministic path detection instance reuse method provided by the present invention, according to an embodiment of the present invention. Detailed Implementation
[0083] The terminology used in this embodiment of the invention is for the purpose of describing specific embodiments only and is not intended to limit the embodiments of the invention. The singular forms “a,” “the,” and “the” used in this embodiment are also intended to include the plural forms unless the context clearly indicates otherwise. It should be understood that although the terms first, second, third, etc., may be used to describe various information in this embodiment, this information should not be limited to these terms. These terms are only used to distinguish similar information, entities, or steps, and not to describe a specific order or sequence. For example, without departing from the scope of this embodiment, first information may also be referred to as second information, and similarly, second information may also be referred to as first information. Furthermore, the word “if” used can be interpreted as “when…”, “when…”, or “in response to a determination.” The term “and / or” in this invention is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, and B alone, where A and B can be singular or plural. And, in the description of this invention, unless otherwise stated, “multiple” means two or more. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b, or c can be expressed as: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.
[0084] Figure 1This is a schematic diagram of a network environment for probing deterministic paths in one embodiment of the present invention. As shown in the figure, 100 deterministic flows are configured for 100 user services. Deterministic paths need to be created for these deterministic flows in the SDN controller. When creating deterministic paths and forwarding deterministic flows, deterministic path probing instances are created on the deterministic paths accordingly. Nodes PE1 (10::1) and PE2 (70::1) are the ingress / source node and egress / destination node of the deterministic path probing instance, respectively. Deterministic path probing instances are created between PE1 and PE2. The deterministic path binding segment routing policies are SRv6Policy1~100. In reality, there are only 5 different transmission nodes between PE1 and PE2: P1(20::1), P2(30::1), P3(40::1), P4(50::1), and P5(60::1). The segment lists configured in the 100 segment routing policies pass through these 5 transmission nodes respectively. That is, Segment-list1 goes through P1(20::1) to PE2(70::1). Segment-list2 follows the segment route from P2 (30::1) to PE2 (70::1), Segment-list3 follows the segment route from P3 (40::1) to PE2 (70::1), Segment-list4 follows the segment route from P4 (50::1) to PE2 (70::1), and Segment-list5 follows the segment route from P5 (60::1) to PE2 (70::1).
[0085] When creating a deterministic path, the created deterministic flow and segment routing policy are bound together, and different segment routing policies are used to carry different types of service flows. Under the original protocol, when performing deterministic flow forwarding for these 100 services, a deterministic path probe instance would be created on each deterministic path to probe the time slot deviation of each path. However, in reality, the segment-lists in the segment routing policies bound to the deterministic paths are mostly the same, and the probe results are also mostly the same. Starting a large number of deterministic path probe instances would result in a large amount of duplicate probing, wasting device performance and path resources.
[0086] To address the aforementioned problems, this invention provides a reuse scheme for deterministic path probing instances, resolving the resource waste inherent in deterministic network probing mechanisms. The basic idea of this invention is to reuse deterministic path probing instances created on deterministic paths using the same segment list by using a probe instance reuse table when forwarding deterministic flows through deterministic paths. By reusing deterministic path probing instances, this invention avoids creating duplicate deterministic path probing instances on deterministic paths using the same segment list label stack, thereby improving the utilization rate of deterministic path resources.
[0087] Based on the basic idea of the present invention, the present invention provides the following embodiments. It should be noted that the steps shown in the flowcharts in the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions. Furthermore, although a logical order is shown in the flowcharts, in some cases, the steps shown or described may be executed in a different order than that shown here.
[0088] Figure 2 A flowchart of a deterministic path detection instance reuse method is provided for one embodiment of the present invention. This method is applied to an SDN controller and includes:
[0089] Step 201. Create a first deterministic path, in which a first segment routing policy is bound, and the first segment routing policy includes a first segment list, the unique identifier of which is the first segment list identifier;
[0090] When creating a deterministic path, a deterministic flow and a segment routing policy need to be bound to the deterministic path. The segment routing policy includes the configuration of a segment list, which specifies the transmission nodes through which the deterministic flow passes. For example... Figure 1 For example, the first deterministic path is bound to the first segment routing policy Policy1, the segment list in Policy1 is the first segment list Segment-list1, and the message transmission path specified by Segment-list1 passes through P1->PE2.
[0091] This invention calculates a unique identifier for each segment list (represented by the segment list path label stack) in each segment routing policy; this identifier is referred to as the segment list identifier. The algorithm for calculating the unique identifier can use various hash-based algorithms such as MD5, SHA, and SM; this invention does not impose a specific limitation. Based on the segment list identifier, the forwarding path of a deterministic flow can be uniquely determined. This invention achieves the reuse of deterministic path probing instances based on the uniqueness of the segment list in the segment routing policy. That is, regardless of whether the names of the segment routing policies bound to the deterministic paths are the same, as long as the segment lists in these segment routing policies are the same, deterministic path probing instances created on the same segment list will be reused.
[0092] Step 202. Create a first deterministic path detection instance for the first deterministic path, wherein the first deterministic path detection instance is the first deterministic path detection instance created based on the first segment list;
[0093] Step 203. Create a second deterministic path, in which a second segment routing policy is bound, and the second segment routing policy includes a second segment list, the unique identifier of which is the second segment list identifier;
[0094] In this invention, multiple deterministic paths can be bound to the same segment routing policy. In this case, the first segment routing policy and the second segment routing policy are essentially the same. The terms "first" and "second" are only used to distinguish segment routing policies bound to different deterministic paths.
[0095] In this invention, multiple segment routing policies with different names can use the same segment list, and the segment list identifier is unique. The segment list specifies the transmission nodes traversed by the deterministic path. The message transmission paths traversed by deterministic paths using the same segment routing policy or different segment routing policies with the same segment list are the same. Based on this, the purpose of this invention is to create only one deterministic path probe instance for deterministic paths using the same segment list. Under the condition that the segment list identifier is unique and the same, the later-created deterministic path reuses the previously created deterministic path probe instance.
[0096] Step 204. If the second segment list identifier is the same as the first segment list identifier, the first deterministic path detection instance is reused for the second deterministic path to guide the forwarding of deterministic flows in the second deterministic path.
[0097] The guidance for forwarding deterministic flows in the second deterministic path refers to the following: the SDN controller calculates the optimal forwarding timeslot for packets on each transmission node based on the detection results (such as maximum transmission timeslot deviation, minimum timeslot deviation, average timeslot deviation, etc.) of the first deterministic path detection instance bound to that detection instance, and applies the calculated optimal forwarding timeslot to each transmission node on the second deterministic path to achieve forwarding control of deterministic flows on the second deterministic path.
[0098] The implementation process of the deterministic path detection instance reuse method provided by the present invention will be described in detail below with reference to specific embodiments. In the deterministic path detection instance reuse method provided by the present invention, the SDN controller needs to maintain at least the following configuration information:
[0099] 1) The path label stack and segment list identification information of each segment list in the segment routing policy (SR Policy).
[0100] 2) The binding relationship between segment routing policy (SR Policy) and deterministic path.
[0101] 3) Probe Instance Reuse Table: This table records the one-to-one correspondence between segment list identifiers and deterministic path probe instances, as well as the reuse relationship between deterministic paths with the same segment list and deterministic path probe instances. Each record in the probe instance reuse table uniquely corresponds to a path determined by the segment list path label stack (referred to as the segment list) and a uniquely created deterministic path probe instance on that path. This invention uses a digest extraction algorithm (e.g., MD5 algorithm) to calculate a unique segment list identifier for each segment list path label stack. This allows for the reuse of deterministic path probe instances based on the segment list identifier when multiple deterministic paths are bound to segment routing policies with the same segment list. For simplicity, this invention refers to multiple deterministic paths bound to segment routing policies with the same segment list as deterministic paths bound to the same segment list. Table 1 below is an example of a probe instance reuse table:
[0102] Table 1
[0103]
[0104] The probe instance reuse table in Table 1 includes 5 fields:
[0105] The first field, Field 1, is the Segment List Identifier field. This field records the unique identifier calculated based on the Segment-list path tag stack, i.e., the Segment List Identifier. For example, the unique identifier calculated using the MD5 algorithm can be set as the Key index field.
[0106] The second field, or Field 2, is the Segment-list path label stack field (optional). This field records the contents of the Segment-list path label stack in the segment routing policy. The MD5 value calculated from the contents of this field is the content of the first field. Field 2 in Table 1 is mainly added for the purpose of clearly describing the scheme. In practical applications, this field may not be included. The contents of this field can be directly obtained from the segment routing policy bound to the deterministic path and the segment list identifier can be calculated.
[0107] For example, the segment list identifier calculated by the MD5 algorithm for "index 10ipv6 6000::1;index 20ipv6 7000::1;index 30ipv6 8000::1" is "2fe2f7c3776158b20825723e5b3e13b0".
[0108] The third field, Field 3, is the path list field. This field records all deterministic path identifiers that reuse the same deterministic path detection instance in a list format. This field allows the establishment of reuse relationships between deterministic path detection instances and the deterministic paths that reuse those instances.
[0109] The fourth field, Field 4, is the Segment Routing Policy List field (optional). This field records, in list format, the segment routing policy identifiers bound to deterministic paths that reuse the same deterministic path probe instance. Different segment routing policies can be configured with the same segment list, and different deterministic paths can also be bound to the same segment routing policy. This field indicates which segment routing policies have the same segment list. In practical applications, this field can be omitted; its content can be obtained through the binding relationship between deterministic paths and segment routing policies.
[0110] The fifth field, Field 5, is the instance binding path identifier field. This field records the deterministic path bound to the deterministic path probe instance uniquely corresponding to the segment list identifier, or in other words, the deterministic path probe instance uniquely corresponding to the segment list identifier is deployed on the deterministic path identified by this field value. A one-to-one correspondence between segment list identifiers and deterministic path probe instances can be established through the contents of Field 1 and Field 5. Field 3 records one or more deterministic paths that have a reuse relationship. For example, Detnetpath id 2 and Detnetpath id 3 reuse the deterministic path probe instance deployed on Detnetpath id 1. These three deterministic paths have a reuse relationship, and the deterministic path bound to the deterministic path probe instance can be called the primary deterministic path. Only one deterministic path is bound to a single deterministic path probe instance. By examining the contents of Field 5 and the binding relationship between the deterministic path and the deterministic path probe instance, we can determine which deterministic path probe instance is being reused, and thus obtain the probe results.
[0111] Figure 3 This is a flowchart illustrating the steps of an SDN controller reusing deterministic path instances based on a probe instance reuse table in one embodiment of the present invention, including the following steps:
[0112] Step 301. Create a third deterministic path and calculate the unique identifier of the third segment list in the third segment routing policy bound to the third deterministic path, i.e., the third segment list identifier;
[0113] Step 302. Use the third segment list identifier to match the segment list identifier field in the probe instance reuse table. If no record is matched, proceed to step 303; otherwise, proceed to step 304.
[0114] Step 303. Create a third deterministic path detection instance for the third deterministic path. Insert a new record into the detection instance reuse table to record the one-to-one correspondence between the third segment list identifier and the third deterministic path detection instance, as well as the reuse relationship between the third deterministic path detection instance and the third deterministic path.
[0115] If no record is found in field 1 of the probe instance reuse table using the third segment list identifier, it means that no deterministic path probe instance has been created on the third deterministic path corresponding to that segment list identifier. This is the first deterministic path probe instance created based on the third segment list. Each segment list identifier can only correspond to one record entry in the probe instance reuse table.
[0116] Taking Table 1 as an example, if a deterministic path probe instance is first created based on the third segment column (2fe2f7c3776158b20825723e5b3e13b0) of the third segment routing policy (SR Policy1) bound to the third deterministic path (Detnetpath id 1), then the third segment list identifier is recorded in field 1 of the probe instance reuse table. Field 2 records the segment list path label stack corresponding to the third segment list identifier. Field 3 records the deterministic path identifier (Detnetpath id 1), which contains the deterministic path identifiers of all deterministic path probe instances indicated by reuse field 5. Field 4 records the third policy route (SR Policy1) bound to the third deterministic path. Field 5 records the deterministic path identifier (Detnetpath id 1) bound to the newly established deterministic path probe instance. The deterministic path probe instance created on the corresponding deterministic path can be queried through the deterministic path identifier in field 5.
[0117] Step 304. For the deterministic path detection instance corresponding to the record matched by the third deterministic path reuse, record the reuse relationship between the deterministic path detection instance and the third deterministic path in the detection instance reuse table;
[0118] As shown in the example in Table 1, if the third deterministic path (Detnetpath id 2) is bound to the third segment routing policy (SRPolicy2), and the segment lists used by SR Policy1 and SR Policy2 are the same (i.e., the segment list identifiers are the same) ("2fe2f7c3776158b20825723e5b3e13b0"), then using the segment list identifier of SR Policy2 bound to Detnetpath id 2 to match field 1 in the probe instance reuse table will match the first record in Table 1. This indicates that a deterministic path probe instance (Instance 1) has already been created based on this segment list. In this case, the present invention will reuse the already created deterministic path probe instance (Instance 1) bound to Detnetpath id 1 for the third deterministic path (Detnetpath id 2), thereby avoiding the repeated creation of deterministic path probe instances on the same segment list-corresponding deterministic path, thus avoiding the waste of probe resources. To reuse deterministic path detection instances, all deterministic path identifiers that reuse the same deterministic path detection instance need to be recorded in field 3 of the detection instance reuse table. For example, in field 3 of the first record, the deterministic path identifier Detnetpath id2 of the deterministic path detection instance created on Detnetpath id 1 is appended based on the order of reuse, and the segment routing policy SR Policy2 bound to path Detnetpath id2 is appended in field 4.
[0119] In one embodiment of the present invention, if it is necessary to delete the deterministic path bound to the deterministic path detection instance, it is necessary to consider whether there are other deterministic paths that reuse the deterministic path detection instance. If there are other deterministic paths that reuse the deterministic path detection instance, the detection instance cannot be deleted directly. It is necessary to first modify the original deterministic path bound to the deterministic path detection instance to any of the other deterministic paths with reuse relationship, and then update the reuse relationship between the deterministic path and the deterministic path detection instance recorded in field 3 of the table, delete the original deterministic path, and update field 5 to the newly bound deterministic path.
[0120] As shown in the example in Table 1, if you need to delete the deterministic path probe instance bound to Detnetpath id 1 or delete the deterministic path Detnetpath id 1, you first need to match Detnetpath id 1 in field 5 of the probe instance reuse table. If a record is matched, you further query field 3 to see if there are other deterministic paths reusing this probe instance. If there are other deterministic paths reusing this deterministic path probe instance (for example, Detnetpath id 2 and Detnetpath id 3 in addition to Detnetpath id 1), you cannot directly delete the deterministic path probe instance. You can modify the original deterministic path Detnetpath id 1 bound to the deterministic path probe instance to any new deterministic path identifier in field 3 other than Detnetpath id. For example, modify it to Detnetpath id 2 in sequence or randomly select one from Detnetpath id 2 and Detnetpath id 3 as the new bound deterministic path. At the same time, you also need to delete Detnetpath id from field 3. 1. Modify the value of field 5 to the newly bound deterministic path identifier. If it is determined that the deterministic path probe instance to be deleted has not been reused by any other deterministic path besides the one it is bound to, the corresponding record can be directly deleted from the probe instance reuse table.
[0121] Figure 4 This is a flowchart illustrating the processing steps in an embodiment of the present invention where updating the segment list in a segment routing policy causes a change in the reuse relationship of deterministic path probing instances. In some cases, the SDN controller may modify the segment list in the segment routing policy, for example, changing the original segment list in the first segment routing policy to a new segment list. Modifying the segment list in the segment routing policy causes a change in the segment list identifier, thereby affecting the reuse relationship of deterministic path probing instances.
[0122] Step 401. Before updating the first segment list in the first segment routing policy to the fourth segment list, use the first segment list identifier to match the segment list identifier in the probe instance reuse table; if no record is matched, proceed to step 402; if a record is matched, proceed to step 403.
[0123] Step 402. Directly update the first segment list in the first segment routing policy to the fourth segment list;
[0124] If no record is matched in field 1 of Table 1 using the first segment list identifier, it means that the first segment list has not yet been used for deterministic forwarding. Therefore, there is no situation where deterministic path probing instances are reused, and the segment list in the first segment routing policy can be updated directly. If a record is matched, it means that the first segment list has been used for deterministic flow forwarding. If the segment list needs to be updated, it is necessary to consider whether there is a situation where deterministic path probing instances are reused.
[0125] Step 403. If a record is matched in the probe instance reuse table using the first list identifier, match it in the probe instance reuse table using the fourth list identifier; if a record is matched, proceed to step 404; if no record is matched, proceed to step 406.
[0126] Step 404. Remove the reuse relationship between the deterministic path bound to the first segment routing policy and the deterministic path probe instance created on the first segment list from the records that match the first segment list identifier;
[0127] Step 405. Update the first segment list in the first segment routing policy to the fourth segment list, and add a reuse relationship between the deterministic path bound to the first segment routing policy and the deterministic path probe instance created on the fourth segment list from the records that identify the matching identifiers in the fourth segment list.
[0128] If a record is matched using both the first and fourth segment list identifiers, it indicates that deterministic path detection instances have been created on both the old and new segment lists. In this case, the old reuse relationship needs to be deleted (step 404), and then a new reuse relationship needs to be added to the record matched by the fourth segment list identifier (step 405). For example, if the first segment list in the first routing policy (SR Policy1) bound to the first deterministic path (Detnetpath id 1) in Table 1 is modified to the fourth segment list, and the fourth segment list is exactly the same as the segment list in SR Policy11 bound to Detnetpath id 11, then the binding relationship between Detnetpath id 1 and the deterministic path detection instance created on the first segment list needs to be deleted in the first record, and then the reuse relationship between Detnetpath id 1 and the deterministic path detection instance created on the fourth segment list needs to be added in the second record.
[0129] It should be further explained that in steps 404 and 406, when deleting the reuse relationship between the deterministic path bound to the first segment routing policy and the deterministic path probe instance created on the first segment list from the records matching the first segment list identifier, it is necessary to determine whether there are other deterministic paths reusing the deterministic path probe instance created on the first segment list. If not (corresponding to the case where there is only one deterministic path identifier in field 3 of a record), the record corresponding to the first segment list identifier can be directly deleted; if so (corresponding to the case where there are multiple deterministic path identifiers in field 3 of a record), it is necessary to further determine whether the deterministic path bound to the deterministic path probe instance corresponding to the record is a deterministic path bound to the first segment routing policy. If it is determined to be yes (corresponding to the case where field 5 of the first record in Table 1 is Detnetpath id 1), it is necessary to modify the deterministic path bound to the deterministic path probe instance corresponding to the record to any other deterministic path (such as Detnetpath id 2 in field 3); if it is determined to be no (corresponding to the case where field 3 of the first record in Table 1 is Detnetpath id 1), the deterministic path bound to the deterministic path probe instance corresponding to the record needs to be modified to any other deterministic path (such as Detnetpath id 2 in field 3); In case 2), the reuse relationship between the deterministic path bound to the first segment routing policy and the deterministic path probe instance created on the first segment list can be directly deleted from the record that matches the identifier of the first segment list.
[0130] Step 406. Remove the reuse relationship between the deterministic path bound to the first segment routing policy and the deterministic path probe instance created on the first segment list from the records that match the first segment list identifier;
[0131] Step 407. Update the first segment list in the first segment routing policy to the fourth segment list, create a new deterministic path probe instance on the deterministic path bound to the first segment routing policy (that is, equivalent to creating a new deterministic path probe instance on the fourth segment list), and add a new record in the probe instance reuse table to save the reuse relationship between the fourth segment list and the new deterministic path probe instance.
[0132] If a record is matched using the first segment list but no record is matched using the fourth segment list, it means that a deterministic path detection instance has been created on the old segment list but not yet on the new segment list. In this case, the old reuse relationship needs to be dismantled (step 406), and then a new deterministic path detection instance is created on the new segment list. A record is added to the detection instance reuse table to save the reuse relationship between the new segment list and the new deterministic path detection instance (step 407).
[0133] If there is no record corresponding to the fourth segment list in the probe instance reuse table, after completing step 406, the first segment list in the first segment routing policy can be updated to the fourth segment list. At this time, the first deterministic path bound to the first segment routing policy has been updated to the path determined by the fourth segment list. When using the first deterministic path for deterministic forwarding, it is necessary to create a deterministic path probe instance based on the modified fourth segment list as the first deterministic path, and add a record to the probe instance reuse table to save the reuse relationship between the fourth segment list and the newly created deterministic path probe instance.
[0134] Figure 5 This is a schematic diagram of an electronic device 500 for implementing the deterministic path detection instance reuse method provided by the present invention, according to an embodiment of the present invention. The device 500 includes a processor 510 such as a central processing unit (CPU), a communication bus 520, a communication interface 540, and a memory 530. The processor 510 and the memory 530 can communicate with each other via the communication bus 520. The memory 530 stores a computer program, which, when executed by the processor 510, can implement the functions of one or more steps in the deterministic path detection instance reuse method provided by the present invention.
[0135] Memory refers to a device based on a storage medium used to store computer programs and / or data. It can be volatile memory (VM, often called main memory) or non-volatile memory (NVM). Main memory refers to internal storage that directly exchanges data with the processor. It can read and write data at any time and at high speed, serving as a storage medium for temporary data of the operating system and other running programs. Main memory can be Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), etc. Non-volatile memory refers to memory that uses persistent storage media, characterized by large capacity and persistent data retention. It can be Storage Class Memory (SCM), Solid State Drive (SSD), NAND flash memory, hard disks, etc. SCM is an industry term for a new type of storage medium that falls between main memory and flash memory. It is a composite storage technology that combines the characteristics of persistent storage and main memory, with access speeds slower than DRAM but faster than SSDs.
[0136] The processor can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.
[0137] It should be recognized that embodiments of the present invention can be implemented or carried out by computer hardware, a combination of hardware and software, or by computer instructions stored in non-transitory (or non-persistent) memory. The method can be implemented using standard programming techniques, including a non-transitory storage medium configured with a computer program within the computer program, wherein such a storage medium causes the computer to operate in a specific and predefined manner. Each program can be implemented in a high-level procedural or object-oriented programming language to communicate with the computer system. However, if desired, the program can be implemented in assembly or machine language. In any case, the language can be a compiled or interpreted language. Furthermore, for this purpose, the program can run on a programmed application-specific integrated circuit. Moreover, the operations of the processes described in this invention can be performed in any suitable order unless otherwise indicated by the invention or otherwise clearly contradicted by the context. The processes (or variations and / or combinations thereof) described in this invention can be executed under the control of one or more computer systems configured with executable instructions and can be implemented by hardware or a combination thereof as code (e.g., executable instructions, one or more computer programs, or one or more applications) that commonly executes on one or more processors. The computer program includes a plurality of instructions executable by one or more processors.
[0138] Furthermore, the method can be implemented in any suitable type of computing platform, including but not limited to personal computers, minicomputers, mainframes, workstations, networked or distributed computing environments, standalone or integrated computer platforms, or in communication with charged particle tools or other imaging devices. Aspects of the invention can be implemented as machine-readable code stored on a non-transitory storage medium or device, whether removable or integrated into a computing platform, such as a hard disk, optical read and / or write storage medium, RAM, ROM, etc., such that it is readable by a programmable computer, and when the storage medium or device is read by the computer, it can be used to configure and operate the computer to perform the processes described herein. Furthermore, the machine-readable code, or portions thereof, can be transmitted via wired or wireless networks. The invention includes these and other different types of non-transitory computer-readable storage media when such media comprises instructions or programs that implement the steps described above in conjunction with a microprocessor or other data processor. When programmed according to the methods and techniques described in the invention, the invention also includes the computer itself.
[0139] The above description is merely an embodiment of the present invention and is not intended to limit the invention. Various modifications and variations can be made to the present invention by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principle of the present invention should be included within the scope of protection of the present invention.
Claims
1. A method for reusing deterministic path detection instances, characterized in that, The methods include: Create a first deterministic path, bind a first segment routing policy to the first deterministic path, the first segment routing policy includes a first segment list, and the unique identifier of the first segment list is the first segment list identifier; A first deterministic path detection instance is created for the first deterministic path, wherein the first deterministic path detection instance is the first deterministic path detection instance created based on the first segment list; Create a second deterministic path, in which a second segment routing policy is bound, and the second segment routing policy includes a second segment list, the unique identifier of which is the second segment list identifier; If the second list identifier is the same as the first list identifier, the first deterministic path detection instance is reused for the second deterministic path to guide the forwarding of deterministic flows in the second deterministic path; The probe instance reuse table records the one-to-one correspondence between segment list identifiers and deterministic path probe instances, as well as the reuse relationship between deterministic paths with the same segment list and deterministic path probe instances. When creating the first deterministic path detection instance, the correspondence between the first segment list identifier and the first deterministic path detection instance, as well as the reuse relationship between the first deterministic path detection instance and the first deterministic path, are recorded in the detection instance reuse table. When creating a second deterministic path, based on the same segment list identifier, the probe instance reuse table is used to determine that a first deterministic path probe instance has been created on the first segment list, and the reuse relationship between the second deterministic path and the first deterministic path probe instance is recorded in the probe instance reuse table; Based on the reuse relationships recorded in the detection instance reuse table, the detection results of the first deterministic path detection instance are used to guide the forwarding of deterministic flows in the second deterministic path.
2. The method according to claim 1, characterized in that, The method further includes: Before triggering the deletion of the deterministic path bound to the first deterministic path probe instance, it is determined whether there are other deterministic paths reusing the first deterministic path probe instance based on the probe instance reuse table; If the determination is yes, then the original deterministic path bound to the first deterministic path detection instance is updated to any one of the other deterministic paths that reuse the first deterministic path detection instance, and the reuse relationship between the original deterministic path and the first deterministic path detection instance is deleted from the detection instance reuse table. If the determination is negative, the record corresponding to the first deterministic path detection instance is directly deleted from the detection instance reuse table.
3. The method according to claim 1, characterized in that, The method further includes: Before updating the first segment list in the first segment routing policy to the fourth segment list, the segment list identifier is used to match the segment list identifier in the probe instance reuse table; If no record is matched, update the first list in the first routing policy to the fourth list. If a record is matched, the fourth list identifier is used to match it in the probe instance reuse table; If a record is matched using both the first and fourth list identifiers, the reuse relationship between the deterministic path bound to the first routing policy and the deterministic path probe instance created on the first list is deleted from the record matched by the first list identifier; and the first list in the first routing policy is updated to the fourth list, and the reuse relationship between the deterministic path bound to the first routing policy and the deterministic path probe instance created on the fourth list is added to the record matched by the fourth list identifier. If a record is matched using the first segment list identifier but not using the fourth segment list identifier, the reuse relationship between the deterministic path bound to the first segment routing policy and the deterministic path probe instance created on the first segment list is deleted from the record matched by the first segment list identifier; the first segment list in the first segment routing policy is updated to the fourth segment list; a new deterministic path probe instance is created on the deterministic path bound to the first segment routing policy; and a new record is added to the probe instance reuse table to save the reuse relationship between the fourth segment list and the new deterministic path probe instance.
4. The method according to claim 3, characterized in that, When deleting the reuse relationship between the deterministic path bound to the first segment routing policy and the deterministic path probe instance created on the first segment list from the records that match the identifier of the first segment list, it is determined whether there are other deterministic paths that reuse the deterministic path probe instance created on the first segment list. If the determination is negative, the record corresponding to the first segment list identifier is directly deleted; if the determination is positive, it is further determined whether the deterministic path bound to the deterministic path probe instance corresponding to the record is a deterministic path bound to the first segment routing policy. If it is positive, the deterministic path bound to the deterministic path probe instance corresponding to the record is modified to any other deterministic path; if it is negative, the reuse relationship between the deterministic path bound to the first segment routing policy and the deterministic path probe instance created on the first segment list is directly deleted from the records matching the first segment list identifier.
5. A deterministic path detection instance reuse device, characterized in that, The device includes: The path creation module is used to create a first deterministic path, in which a first segment routing policy is bound, the first segment routing policy includes a first segment list, and the unique identifier of the first segment list is the first segment list identifier; and to create a second deterministic path, in which a second segment routing policy is bound, the second segment routing policy includes a second segment list, and the unique identifier of the second segment list is the second segment list identifier; The instance creation module is used to create a first deterministic path detection instance for a first deterministic path, wherein the first deterministic path detection instance is the first deterministic path detection instance created based on the first segment list; An instance reuse module is used to reuse the first deterministic path detection instance in the second deterministic path to guide the forwarding of deterministic flows in the second deterministic path when the second segment list identifier is the same as the first segment list identifier. The reuse table module is used to record the one-to-one correspondence between the segment list identifiers and the deterministic path detection instances in the detection instance reuse table, as well as the reuse relationship between deterministic paths with the same segment list and deterministic path detection instances. When creating the first deterministic path detection instance, the instance creation module records the correspondence between the first list identifier and the first deterministic path detection instance, as well as the reuse relationship between the first deterministic path detection instance and the first deterministic path, in the detection instance reuse table. When creating a second deterministic path, the instance reuse module learns from the probe instance reuse table that a first deterministic path probe instance has been created on the first segment list based on the same segment list identifier. The reuse relationship between the second deterministic path and the first deterministic path probe instance is recorded in the probe instance reuse table. Based on the reuse relationship recorded in the probe instance reuse table, the probe results of the first deterministic path probe instance for the first deterministic path guide the forwarding of deterministic flows in the second deterministic path.
6. The apparatus according to claim 5, characterized in that, The device further includes: The path deletion module is used to determine whether there are other deterministic paths reusing the first deterministic path detection instance before triggering the deletion of the deterministic path bound to the first deterministic path detection instance; If the determination is yes, then the original deterministic path bound to the first deterministic path detection instance is updated to any one of the other deterministic paths that reuse the first deterministic path detection instance, and the reuse relationship between the original deterministic path and the first deterministic path detection instance is deleted from the detection instance reuse table. If the determination is negative, the record corresponding to the first deterministic path detection instance is directly deleted from the detection instance reuse table.
7. The apparatus according to claim 5, characterized in that, The device further includes: The policy update module is used to match the segment list identifier in the probe instance reuse table before updating the first segment list in the first segment routing policy to the fourth segment list; If no record is matched, update the first list in the first routing policy to the fourth list. If a record is matched, the fourth list identifier is used to match it in the probe instance reuse table; If a record is matched using both the first and fourth list identifiers, the reuse relationship between the deterministic path bound to the first routing policy and the deterministic path probe instance created on the first list is deleted from the record matched by the first list identifier; and the first list in the first routing policy is updated to the fourth list, and the reuse relationship between the deterministic path bound to the first routing policy and the deterministic path probe instance created on the fourth list is added to the record matched by the fourth list identifier. If a record is matched using the first segment list identifier but not using the fourth segment list identifier, the reuse relationship between the deterministic path bound to the first segment routing policy and the deterministic path probe instance created on the first segment list is deleted from the record matched by the first segment list identifier; the first segment list in the first segment routing policy is updated to the fourth segment list; a new deterministic path probe instance is created on the deterministic path bound to the first segment routing policy; and a new record is added to the probe instance reuse table to save the reuse relationship between the fourth segment list and the new deterministic path probe instance.
8. An electronic device, characterized in that, It includes a processor, a communication interface, a storage medium, and a communication bus, wherein the processor, the communication interface, and the storage medium communicate with each other through the communication bus; Storage medium used to store computer programs; A processor, when executing a computer program stored on a storage medium, performs the method steps of any one of claims 1-4.
9. A storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it performs the method as described in any one of claims 1 to 4.
Citation Information
Patent Citations
Path optimization method and device
CN113472657A
Method and device for service packet transmission
WO2021036962A1