Message forwarding method and device, network equipment and storage medium

CN121195486AActive Publication Date: 2025-12-23NEW H3C TECH CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
CN202480000511.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-03-14
Publication Date
2025-12-23
Estimated Expiration
2044-03-14

AI Technical Summary

Technical Problem

The existing technology cannot obtain the minimum available bandwidth of each node in the SRv6 forwarding path in a timely manner, resulting in the inability to perform path switching in a timely manner, causing packet loss problems.

Method used

By sending a message with an IPv6 option header carrying the minimum available bandwidth information on the SRv6 forwarding path, the tail node can report the minimum available bandwidth of all nodes in the SRv6 forwarding path. The controller or source node can obtain the minimum value and perform path switching in a timely manner.

Benefits of technology

This effectively avoids packet loss caused by the inability to perceive the minimum available bandwidth of the SRv6 forwarding path, ensuring the reliability of network transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121195486A_ABST
    Figure CN121195486A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a message forwarding method and device, network equipment and a storage medium, and relates to the technical field of communication. The method comprises the steps that a first message is acquired, the first message comprises a first IPv6 option header, the first IPv6 option header comprises a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of nodes in an SRv6 forwarding path, and the nodes in the SRv6 forwarding path comprise a first node and all previous hop nodes of the first node; and sending the first message on the SRv6 forwarding path, so that the tail node reports the minimum value of the minimum available bandwidth of all the nodes in the SRv6 forwarding path. The problem of packet loss caused by the fact that the minimum available bandwidth of an SRv6 forwarding path cannot be sensed can be avoided.
Need to check novelty before this filing date? Find Prior Art

Description

Message forwarding method, device, network equipment and storage medium Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a message forwarding method, apparatus, network equipment, and storage medium. Background Art

[0002] The Internet Protocol Version 6 Segment Routing Traffic Engineering Policy (SRv6 TE Policy) is a new tunnel diversion technology developed based on Internet Protocol Version 6 Segment Routing (SRv6). This tunnel diversion technology can divert service packets to the appropriate SRv6 TE Policy and then forward them using the forwarding path defined in that SRv6 TE Policy.

[0003] To enhance the reliability of the forwarding path, the controller deploys multiple candidate paths on the source node simultaneously. When all high-priority primary candidate paths become unavailable, the controller switches to low-priority backup candidate paths.

[0004] Summary of the Invention

[0005] In view of this, the present application provides a message forwarding method, apparatus, network device, and storage medium to timely obtain the minimum available bandwidth of nodes on the forwarding path. The specific technical solution is as follows:

[0006] In a first aspect, an embodiment of the present application provides a message forwarding method, applied to a first node, the method comprising:

[0007] Obtain a first message, where the first message includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, and the first bandwidth is a minimum value of a minimum available bandwidth of nodes in an SRv6 forwarding path, where the nodes in the SRv6 forwarding path include the first node and all previous hop nodes of the first node;

[0008] The first message is sent on the SRv6 forwarding path, so that the tail node reports the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path.

[0009] In a possible implementation, when the first node is a source node, obtaining the first message includes:

[0010] receiving a second message;

[0011] Obtaining a first bandwidth, where the first bandwidth is a minimum available bandwidth of an outbound interface of the first node;

[0012] The first bandwidth is carried in the first IPv6 option header, and the first IPv6 option header is encapsulated in an outer layer of the second message to obtain the first message.

[0013] In a possible implementation, when the first node is an intermediate node, obtaining the first message includes:

[0014] Receive a third message, where the third message includes a second IPv6 option header, where the second IPv6 option header includes a second bandwidth, where the second bandwidth is a minimum value of minimum available bandwidths of all previous hop nodes of the first node;

[0015] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, maintain the second bandwidth and obtain the first message;

[0016] If the second bandwidth is greater than the minimum available bandwidth of the first node, the second bandwidth is updated to the minimum available bandwidth of the first node to obtain the first message.

[0017] In a possible implementation, the first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a transit node, and all previous hop nodes include endpoint nodes and / or transit nodes; or,

[0018] The first IPv6 option header is a destination option header, the intermediate node is an endpoint node, and all previous-hop nodes are endpoint nodes.

[0019] In a possible implementation, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, where the minimum available bandwidth field is used to carry the first bandwidth.

[0020] In a possible implementation manner, the second message is a data message or an active performance measurement message.

[0021] In a second aspect, an embodiment of the present application provides a message forwarding method, applied to a second node, the method comprising:

[0022] Receive a first message, where the first message includes a first IPv6 option header, where the first IPv6 option header includes a first bandwidth, where the first bandwidth is a minimum value of minimum available bandwidths of all previous hop nodes of the second node, where all the previous hop nodes are located in an SRv6 forwarding path;

[0023] A third bandwidth is reported, where the third bandwidth is the minimum bandwidth of the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.

[0024] In a possible implementation, the inner layer of the first message is encapsulated with a data message; and reporting the third bandwidth includes:

[0025] If the third bandwidth is the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the first time, or the third bandwidth is different from the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the previous time, then report the third bandwidth to the controller; or,

[0026] If the third bandwidth is the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the first time, or the third bandwidth is different from the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the previous time, an IP packet is sent to the source node, where the IP packet includes the third bandwidth.

[0027] In a possible implementation, the first message is encapsulated with an active performance measurement message in an inner layer; and reporting the third bandwidth includes:

[0028] A response message for the active performance measurement message is sent to a source node, where the response message includes a TLV structure, and the TLV structure is used to carry the third bandwidth.

[0029] In one possible implementation, the active performance measurement message is a STAMP message, the TLV structure includes a STAMP TLV flag bit, a type field, a length field and a minimum available bandwidth field, the minimum available bandwidth field is used to carry the third bandwidth, and the STAMP TLV flag bit includes a U flag, and the value of the U flag is 1.

[0030] In a possible implementation, the first IPv6 option header is a Hop-by-Hop option header, and all previous hop nodes include endpoint nodes and / or transit nodes; or,

[0031] The first IPv6 option header is a destination option header, and all the previous hop nodes are endpoint nodes.

[0032] In a possible implementation, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, where the minimum available bandwidth field is used to carry the first bandwidth.

[0033] In a third aspect, an embodiment of the present application provides a message forwarding device, applied to a first node, the device comprising:

[0034] an acquisition module, configured to acquire a first message, where the first message includes a first IPv6 option header, where the first IPv6 option header includes a first bandwidth, where the first bandwidth is a minimum value of a minimum available bandwidth of nodes in an SRv6 forwarding path, where the nodes in the SRv6 forwarding path include the first node and all previous hop nodes of the first node;

[0035] A sending module is configured to send the first message on the SRv6 forwarding path, so that the tail node reports the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path.

[0036] In a possible implementation, when the first node is a source node, the acquiring module is specifically configured to:

[0037] receiving a second message;

[0038] Obtaining a first bandwidth, where the first bandwidth is a minimum available bandwidth of an outbound interface of the first node;

[0039] The first bandwidth is carried in the first IPv6 option header, and the first IPv6 option header is encapsulated in an outer layer of the second message to obtain the first message.

[0040] In a possible implementation, when the first node is an intermediate node, the obtaining module is specifically configured to:

[0041] Receive a third message, where the third message includes a second IPv6 option header, where the second IPv6 option header includes a second bandwidth, where the second bandwidth is a minimum value of minimum available bandwidths of all previous hop nodes of the first node;

[0042] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, maintain the second bandwidth and obtain the first message;

[0043] If the second bandwidth is greater than the minimum available bandwidth of the first node, the second bandwidth is updated to the minimum available bandwidth of the first node to obtain the first message.

[0044] In a possible implementation, the first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a transit node, and all previous hop nodes include endpoint nodes and / or transit nodes; or,

[0045] The first IPv6 option header is a destination option header, the intermediate node is an endpoint node, and all previous-hop nodes are endpoint nodes.

[0046] In a possible implementation, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, where the minimum available bandwidth field is used to carry the first bandwidth.

[0047] In a possible implementation manner, the second message is a data message or an active performance measurement message.

[0048] In a fourth aspect, an embodiment of the present application provides a message forwarding device, applied to a second node, the device comprising:

[0049] A receiving module, configured to receive a first message, where the first message includes a first IPv6 option header, where the first IPv6 option header includes a first bandwidth, where the first bandwidth is a minimum value of the minimum available bandwidths of all previous hop nodes of the second node, where all the previous hop nodes are located in an SRv6 forwarding path;

[0050] The reporting module is configured to report a third bandwidth, where the third bandwidth is the minimum bandwidth between the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.

[0051] In a possible implementation, the inner layer of the first message is encapsulated with a data message; and the reporting module is specifically configured to:

[0052] If the third bandwidth is the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the first time, or the third bandwidth is different from the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the previous time, then report the third bandwidth to the controller; or,

[0053] If the third bandwidth is the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the first time, or the third bandwidth is different from the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the previous time, an IP packet is sent to the source node, where the IP packet includes the third bandwidth.

[0054] In a possible implementation, the first message is encapsulated with an active performance measurement message in an inner layer; and the reporting module is specifically configured to:

[0055] A response message for the active performance measurement message is sent to a source node, where the response message includes a TLV structure, and the TLV structure is used to carry the third bandwidth.

[0056] In one possible implementation, the active performance measurement message is a STAMP message, the TLV structure includes a STAMP TLV flag bit, a type field, a length field and a minimum available bandwidth field, the minimum available bandwidth field is used to carry the third bandwidth, and the STAMP TLV flag bit includes a U flag, and the value of the U flag is 1.

[0057] In a possible implementation, the first IPv6 option header is a Hop-by-Hop option header, and all previous hop nodes include endpoint nodes and / or transit nodes; or,

[0058] The first IPv6 option header is a destination option header, and all the previous hop nodes are endpoint nodes.

[0059] In a possible implementation, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, where the minimum available bandwidth field is used to carry the first bandwidth.

[0060] In a fifth aspect, an embodiment of the present application provides a network device, applied to a first node, the network device including:

[0061] processor;

[0062] transceiver;

[0063] A machine-readable storage medium storing machine-executable instructions capable of being executed by the processor; the machine-executable instructions prompting the processor to perform the following steps:

[0064] Obtain a first message, where the first message includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, and the first bandwidth is a minimum value of a minimum available bandwidth of nodes in an SRv6 forwarding path, where the nodes in the SRv6 forwarding path include the first node and all previous hop nodes of the first node;

[0065] The first message is sent on the SRv6 forwarding path, so that the tail node reports the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path.

[0066] In a possible implementation, when the first node is a source node, the machine-executable instructions further cause the processor to perform the following steps:

[0067] receiving a second message;

[0068] Obtaining a first bandwidth, where the first bandwidth is a minimum available bandwidth of an outbound interface of the first node;

[0069] The first bandwidth is carried in the first IPv6 option header, and the first IPv6 option header is encapsulated in an outer layer of the second message to obtain the first message.

[0070] In a possible implementation, when the first node is an intermediate node, the machine-executable instructions further cause the processor to perform the following steps:

[0071] Receive a third message, where the third message includes a second IPv6 option header, where the second IPv6 option header includes a second bandwidth, where the second bandwidth is a minimum value of minimum available bandwidths of all previous hop nodes of the first node;

[0072] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, maintain the second bandwidth and obtain the first message;

[0073] If the second bandwidth is greater than the minimum available bandwidth of the first node, the second bandwidth is updated to the minimum available bandwidth of the first node to obtain the first message.

[0074] In a possible implementation, the first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a transit node, and all previous hop nodes include endpoint nodes and / or transit nodes; or,

[0075] The first IPv6 option header is a destination option header, the intermediate node is an endpoint node, and all previous-hop nodes are endpoint nodes.

[0076] In a possible implementation, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, where the minimum available bandwidth field is used to carry the first bandwidth.

[0077] In a possible implementation manner, the second message is a data message or an active performance measurement message.

[0078] In a sixth aspect, an embodiment of the present application provides a network device, applied to a second node, the network device comprising:

[0079] processor;

[0080] transceiver;

[0081] A machine-readable storage medium storing machine-executable instructions capable of being executed by the processor; the machine-executable instructions prompting the processor to perform the following steps:

[0082] Receive a first message, where the first message includes a first IPv6 option header, where the first IPv6 option header includes a first bandwidth, where the first bandwidth is a minimum value of minimum available bandwidths of all previous hop nodes of the second node, where all the previous hop nodes are located in an SRv6 forwarding path;

[0083] A third bandwidth is reported, where the third bandwidth is the minimum bandwidth of the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.

[0084] In a possible implementation, a data message is encapsulated in an inner layer of the first message; and the machine-executable instructions further cause the processor to execute the following steps:

[0085] If the third bandwidth is the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the first time, or the third bandwidth is different from the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the previous time, then report the third bandwidth to the controller; or,

[0086] If the third bandwidth is the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the first time, or the third bandwidth is different from the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the previous time, an IP packet is sent to the source node, where the IP packet includes the third bandwidth.

[0087] In a possible implementation, the first message is encapsulated with an active performance measurement message in an inner layer; and the machine-executable instructions further cause the processor to execute the following steps:

[0088] A response message for the active performance measurement message is sent to a source node, where the response message includes a TLV structure, and the TLV structure is used to carry the third bandwidth.

[0089] In one possible implementation, the active performance measurement message is a STAMP message, the TLV structure includes a STAMP TLV flag bit, a type field, a length field and a minimum available bandwidth field, the minimum available bandwidth field is used to carry the third bandwidth, and the STAMP TLV flag bit includes a U flag, and the value of the U flag is 1.

[0090] In a possible implementation, the first IPv6 option header is a Hop-by-Hop option header, and all previous hop nodes include endpoint nodes and / or transit nodes; or,

[0091] The first IPv6 option header is a destination option header, and all the previous hop nodes are endpoint nodes.

[0092] In a possible implementation, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, where the minimum available bandwidth field is used to carry the first bandwidth.

[0093] In a seventh aspect, an embodiment of the present application provides a machine-readable storage medium storing machine-executable instructions. When called and executed by a processor, the machine-executable instructions prompt the processor to perform the method described in the first aspect above.

[0094] In an eighth aspect, an embodiment of the present application provides a computer program product comprising instructions, which, when executed on a computer, enables the computer to execute the method described in the first aspect above.

[0095] Using the above technical solution, the first message obtained by the first node includes a first IPv6 option header and a second message. The first IPv6 option header includes a first bandwidth, which is the bandwidth value of the minimum available bandwidth of the nodes in the SRv6 forwarding path. The nodes in the SRv6 forwarding path include the first node and all the previous hop nodes of the first node. Furthermore, the first message is forwarded according to the SRv6 forwarding path, so that the tail node can know the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path, and can report the minimum value. In this way, the controller or source node can obtain the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path in a timely manner. This minimum value can reflect the minimum available bandwidth of the SRv6 forwarding path, thereby avoiding the packet loss problem caused by the inability to perceive the minimum available bandwidth of the SRv6 forwarding path. BRIEF DESCRIPTION OF THE DRAWINGS

[0096] The drawings described herein are used to provide further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute improper limitations on the present application.

[0097] FIG1 is an exemplary schematic diagram of an SRv6 message forwarding process provided in an embodiment of the present application;

[0098] FIG2 is a flow chart of a message forwarding method provided in an embodiment of the present application;

[0099] FIG3 is a schematic diagram of an IPv6 option header provided in an embodiment of the present application;

[0100] FIG4 is a flow chart of another message forwarding method provided in an embodiment of the present application;

[0101] FIG5 is a schematic diagram of a TLV structure provided in an embodiment of the present application;

[0102] FIG6 is a schematic diagram of a multipath scenario provided by an embodiment of the present application;

[0103] FIG7 is a schematic structural diagram of a message forwarding device provided in an embodiment of the present application;

[0104] FIG8 is a schematic structural diagram of another message forwarding device provided in an embodiment of the present application;

[0105] FIG9 is a schematic diagram of the structure of a network device provided in an embodiment of the present application;

[0106] FIG10 is a schematic diagram of the structure of another network device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0107] To make the objectives, technical solutions, and advantages of this application more clearly understood, the present application is further described below with reference to the accompanying drawings and examples. It is apparent that the described examples are only a portion of the embodiments of this application, and not all of them. All other embodiments derived by persons of ordinary skill in the art based on the examples in this application are intended to fall within the scope of protection of this application.

[0108] To facilitate understanding, relevant concepts involved in the embodiments of this application are explained.

[0109] 1. Introduction to SRv6

[0110] The development of cloud computing has posed new challenges to wide area networks (WANs), requiring a transformation of traditional WANs. Software-defined networking in a wide area network (SD-WAN), as a core technology for reshaping WANs, accelerates network delivery, optimizes application experience, improves bandwidth utilization, and simplifies network operations and maintenance through automated deployment, centralized control, intelligent scheduling, and visualization, meeting the WAN requirements of cloud computing. Intelligent scheduling is a key capability of next-generation WANs, crucial for ensuring application quality and optimizing bandwidth resources. Existing traffic engineering technologies, such as Multi-Protocol Label Switching (MPLS) and Resource Reservation Protocol-Traffic Engineering (RSVP-TE) based on traffic engineering extensions, can meet the differentiated bandwidth requirements of applications. However, they suffer from a wide variety of protocols, complex deployment, difficult management, and poor scalability. These technologies cannot meet the dynamic deployment, flexible scheduling, rapid speed, and scalability requirements of next-generation WANs. Therefore, a new protocol, Segment Routing (SR), has emerged.

[0111] SR uses a source node path selection mechanism. The source node pre-encapsulates the segment identifier (SID) of the forwarding path. When a packet passes through an SR node, the SR node forwards the packet based on the SID. Nodes other than the source node do not need to maintain path state.

[0112] Segment Routing IPv6 (SRv6) refers to the implementation of SR based on the IPv6 forwarding plane. SRv6 source nodes can insert a routing extension header, the Segment Routing Header (SRH), into IPv6 packets. This header contains the SIDs of all segments that the forwarding path will traverse, known as a SID list, thereby explicitly specifying the forwarding path for the IPv6 packet. SRv6 provides a flexible and efficient control method for SD-WAN, featuring simple deployment and easy scalability. It can better implement traffic scheduling and path optimization, ensuring the quality of critical services, balancing traffic distribution, improving dedicated line utilization, and reducing line costs.

[0113] Based on their functions, nodes in an SRv6 network are divided into the following roles:

[0114] Source node: Responsible for inserting the SRH into the IPv6 header of an IPv6 packet, or encapsulating the IPv6 header and inserting the SRH. The source node is used to guide the packet flow into the SRv6 path defined by the segment list in the SRH.

[0115] A transit node is located on the SRv6 path of a packet. It does not participate in SRv6 processing and only performs normal IPv6 packet forwarding. A transit node can be either SRv6-capable or non-SRv6-capable.

[0116] Endpoint node: If the IPv6 destination address of the received SRv6 packet is the SRv6 SID configured on the Endpoint node, it processes the packet according to the instructions of the SRv6 SID and updates the SRH.

[0117] Tail node: The last endpoint of the SRv6 forwarding path.

[0118] The same node can have different roles in different SRv6 paths. For example, a node can be a source node in one SRv6 path and a transit node or endpoint node in other SRv6 paths.

[0119] 2. SRv6 message forwarding process.

[0120] As shown in Figure 1, device A is the source node, devices C and E are endpoint nodes, and devices B and D are transit nodes. The SRv6 message forwarding process includes the following steps:

[0121] Step 1: After receiving the IPv6 message as the source node, device A encapsulates the IPv6 message with an SRH and an IPv6 header, then searches the routing table based on the destination address in the encapsulated IPv6 header and forwards the encapsulated message to device B.

[0122] Since the path from device A to device D needs to pass through two endpoint nodes, device C and device E, the SL in the SRH is 2-1, that is, SL=1, and the SID list encapsulated in the SRH includes Segment List[0]=E and Segment List[1]=C.

[0123] The source address in the IPv6 header is an address of device A, and the destination address is the address indicated by SL, that is, the address of Segment List [1] indicated by SL=1, which is the address of device C.

[0124] Step 2: After receiving the message, device B searches the routing table based on the destination address in the IPv6 header and forwards the message to device C.

[0125] Step 3: Device C checks the SL in the SRH. If SL > 0, it decrements the SL value by 1 and updates the destination address in the IPv6 header to the address indicated by the SL. That is, SL = 0 corresponds to Segment List [0], which is the address of Device E. Device C then searches the routing table based on the destination address in the IPv6 header and forwards the packet to Device D.

[0126] Step 4: After receiving the message, device D searches the routing table based on the destination address in the IPv6 header and forwards the message to device E.

[0127] Step 5: Device E, acting as the egress node, receives the message, checks the SL value in the SRH header, and finds that SL=0. It then decapsulates the message, removes the encapsulated IPv6 header and SRH, and forwards the message according to the destination address of the original IPv6 message.

[0128] To enhance forwarding path reliability, the controller pre-deploys multiple candidate paths on the source node. The source node preferentially forwards traffic along high-priority primary candidate paths. If all high-priority primary candidate paths become unavailable, the source node switches traffic to lower-priority backup candidate paths.

[0129] Each node in a forwarding path carries different services and has varying forwarding capabilities. When traffic is high, some nodes along the path may experience congestion, causing the path's actual maximum forwardable traffic to be less than the expected capacity. If this happens, if the source node fails to adjust the forwarding path and continues forwarding packets along the original path according to the preset bandwidth, packet loss may occur due to insufficient bandwidth.

[0130] To address this issue, we need to obtain the minimum value of the minimum available bandwidth of each node in the current forwarding path. This minimum value can reflect the minimum available bandwidth of the current forwarding path. If the minimum available bandwidth of the current forwarding path is insufficient, traffic can be promptly switched to a forwarding path with sufficient bandwidth to avoid packet loss.

[0131] However, currently neither the controller nor the source node can obtain the minimum value of the minimum available bandwidth of each node in the current forwarding path, and thus cannot perceive whether the minimum available bandwidth of the current forwarding path is insufficient, and thus cannot perform path switching in time, and the problem of packet loss still exists.

[0132] To solve the above problem, an embodiment of the present application provides a message forwarding method. The method is applied to a first node, where the first node is a source node or an intermediate node in an SRv6 forwarding path. As shown in FIG2 , the method includes:

[0133] S201. Obtain a first message, where the first message includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, and the first bandwidth is a minimum value of a minimum available bandwidth of nodes in an SRv6 forwarding path, where the nodes in the SRv6 forwarding path include the first node and all previous-hop nodes of the first node.

[0134] The SRv6 forwarding path is a forwarding path from a source node to an end node in an SRv6 network. Intermediate nodes in the SRv6 forwarding path may be transit nodes or endpoint nodes.

[0135] For example, in Figure 1 , the SRv6 forwarding path is a forwarding path consisting of device A, device B, device C, device D, and device E.

[0136] S202: Send a first message on the SRv6 forwarding path, so that the egress node reports the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path.

[0137] It is understood that the first IPv6 options header of the message received by the egress node includes the minimum value of the minimum available bandwidth of all previous-hop nodes of the egress node (referred to as bandwidth A for short). The egress node can compare bandwidth A with its own minimum available bandwidth. If its own minimum available bandwidth is less than bandwidth A, it uses its own minimum available bandwidth as the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path. If its own available bandwidth is greater than or equal to bandwidth A, it still uses bandwidth A as the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path.

[0138] Using this method, the first message obtained by the first node includes a first IPv6 options header and a second message. The first IPv6 options header includes a first bandwidth, which is the bandwidth value of the minimum available bandwidth of the nodes in the SRv6 forwarding path. The nodes in the SRv6 forwarding path include the first node and all of the first node's previous hop nodes. Furthermore, the first message is forwarded according to the SRv6 forwarding path, so that the tail node can learn the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path and can report this minimum value. In this way, the controller or source node can promptly obtain the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path. This minimum value can reflect the minimum available bandwidth of the SRv6 forwarding path, thereby avoiding packet loss caused by the inability to perceive the minimum available bandwidth of the SRv6 forwarding path.

[0139] It is understood that after the controller or source node obtains the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path, it can use this minimum value as the minimum available bandwidth of the SRv6 forwarding path. Therefore, when the minimum available bandwidth of the currently used SRv6 forwarding path is insufficient, path switching can be performed in a timely manner to avoid packet loss due to insufficient bandwidth.

[0140] When performing path switching, in addition to the minimum available bandwidth, other factors may also be considered for decision making, such as transmission delay, etc. The embodiment of the present application does not limit the path switching method.

[0141] In the embodiment of the present application, the first node may be a source node or an intermediate node, which are introduced below respectively.

[0142] When the first node is a source node, S201, obtaining a first message, can be implemented as follows:

[0143] Receive the second message; obtain the first bandwidth, carry the first bandwidth in the first IPv6 option header, and encapsulate the first IPv6 option header in the outer layer of the second message to obtain the first message.

[0144] The first bandwidth is a minimum available bandwidth of an outbound interface of the first node, where the outbound interface is an outbound interface of the first node on the SRv6 forwarding path.

[0145] The second message is a data message or an active performance measurement message. As an example, the active performance measurement message may be a Simple Two-Way Active Measurement Protocol (STAMP) or a Two-Way Active Measurement Protocol (TWAMP).

[0146] It is understood that before forwarding the second message using the SRv6 network, the source node must encapsulate the second message with an IPv6 header and an SRH. In the embodiment of the present application, a first IPv6 options header for carrying the first bandwidth is additionally encapsulated. The first IPv6 options header is located between the IPv6 header and the SRH. Since the source node is the first node in the SRv6 forwarding path, the first bandwidth encapsulated by the source node is the minimum available bandwidth of the source node's outbound interface. The SRH includes a SID list, which includes the SIDs of each endpoint node passed through the SRv6 forwarding path.

[0147] Using this method, when the source node adds SRv6 encapsulation to the second message, it also adds a first IPv6 options header that carries the minimum available bandwidth. This allows nodes along the SRv6 forwarding path to update the minimum available bandwidth carried in the first IPv6 options header based on their own minimum available bandwidth after receiving the first message. This allows the tail node to obtain the minimum value of the minimum available bandwidth of all nodes along the SRv6 forwarding path. This minimum value can then be used as a reference when the source node or controller performs subsequent path switching, preventing packet loss due to insufficient bandwidth.

[0148] When the first node is an intermediate node, S201, obtaining a first message, can be implemented as follows:

[0149] A third message is received, where the third message includes a second IPv6 option header, the second IPv6 option header includes a second bandwidth, and the second bandwidth is a minimum value of minimum available bandwidths of all previous-hop nodes of the first node.

[0150] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, maintain the second bandwidth and obtain the first message;

[0151] If the second bandwidth is greater than the minimum available bandwidth of the first node, the second bandwidth is updated to the minimum available bandwidth of the first node to obtain the first message.

[0152] It is understandable that after receiving the third message, the first node may compare the second bandwidth with its own minimum available bandwidth.

[0153] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, it means that the minimum value of the minimum available bandwidth has not changed. Therefore, the second bandwidth is maintained, that is, the second bandwidth is used as the first bandwidth, thereby obtaining the first message.

[0154] If the second bandwidth is greater than the minimum available bandwidth of the first node, it indicates that the minimum value of the minimum available bandwidth has changed. Therefore, the second bandwidth is updated to the minimum available bandwidth of the first node, that is, the minimum available bandwidth of the first node is used as the first bandwidth, thereby obtaining the first message.

[0155] It is understandable that when the first node is an endpoint node, after receiving the third message, the first node needs to update the destination address in the IPv6 header and the SL in the SRH, and then obtain the first message, and then continue to forward the first message along the SRv6 forwarding path.

[0156] Using this method, after receiving the third message, an intermediate node in the SRv6 forwarding path can compare the second bandwidth carried in the third message with its own minimum available bandwidth. If the second bandwidth is smaller, the second bandwidth is maintained; if the minimum available bandwidth is smaller, the second bandwidth in the third message is updated to its own minimum available bandwidth. By comparing and updating the minimum available bandwidths of each intermediate node, the tail node can obtain the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path. Subsequently, the source node or controller can refer to this minimum value when performing path switching, avoiding packet loss due to insufficient bandwidth.

[0157] In the embodiment of the present application, the minimum value of the minimum available bandwidth of each node in the SRv6 forwarding path is encapsulated in the first IPv6 option header as an IPv6 option. The IPv6 option can be named Minimum Available Bandwidth Option.

[0158] The encapsulation location of the minimum available bandwidth option depends on the measurement requirements. If it is necessary to measure the minimum value of the minimum available bandwidth of all IPv6 nodes (including transit nodes and endpoint nodes) in the SRv6 forwarding path, the minimum available bandwidth option is encapsulated in the Hop-by-Hop Options header. In this case, the first IPv6 option header is a Hop-by-Hop option header, and the intermediate node in the above embodiment is an endpoint node or a transit node. Accordingly, all previous hop nodes include endpoint nodes and / or transit nodes. For example, for device B in Figure 1, all previous hop nodes of device B are only device A, and device A is an endpoint node, that is, all previous hop nodes of device B are endpoint nodes. For another example, for device C in Figure 1, all previous hop nodes of device C include device A and device B, device A is an endpoint node, and device B is a transit node, that is, all previous hop nodes of device C include endpoint nodes and transit nodes.

[0159] Alternatively, if it is necessary to measure the minimum available bandwidth of each segment (i.e., each endpoint node) in the SRv6 forwarding path, the minimum available bandwidth option is encapsulated in the destination options header. In this case, the first IPv6 options header is the destination options header, and the intermediate node in the above embodiment is the endpoint node. Accordingly, all previous hop nodes are endpoint nodes. Since the destination options header is used to carry optional information that only needs to be processed by the node where the destination address of the message is located, when the first message is forwarded along the SRv6 forwarding path, the destination address in the IPv6 header can only be updated to the IP address of the endpoint node indicated by the SID list, and will not be updated to the IP address of the transit node. Therefore, only the endpoint node can recognize the minimum available bandwidth option included in the destination options header and compare and update the bandwidth value carried in the minimum available bandwidth option. In this case, the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path reported by the tail node refers to the minimum value of the minimum available bandwidth of all endpoint nodes in the SRv6 forwarding path.

[0160] As shown in FIG3 , the first IPv6 option header includes an option type (Option Type) field, an option data length (Opt Data Len) field, and a minimum available bandwidth (Minimum available bandwidth) field. The minimum available bandwidth field is used to carry the first bandwidth.

[0161] The option type field and the option data length field each occupy 1 byte, and the minimum available bandwidth field is a 4-byte integer.

[0162] Corresponding to the above method embodiment, an embodiment of the present application further provides a message forwarding method, which is applied to a second node. The second node may be an end node in an SRv6 forwarding path. As shown in FIG4 , the method includes:

[0163] S401: Receive a first message, where the first message includes a first IPv6 option header. The first IPv6 option header includes a first bandwidth, where the first bandwidth is a minimum value of minimum available bandwidths of all previous-hop nodes of a second node, and all previous-hop nodes are located in an SRv6 forwarding path.

[0164] The SRv6 forwarding path is a forwarding path from the source node to the egress node in the SRv6 network. The egress node has received the first message. Therefore, the first bandwidth is a minimum value of the minimum available bandwidth of each node in the SRv6 forwarding path except the egress node.

[0165] S402: Report a third bandwidth, where the third bandwidth is the minimum available bandwidth between the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.

[0166] When the minimum available bandwidth of the second node is less than or equal to the second bandwidth, the third bandwidth is the minimum available bandwidth of the second node; when the minimum available bandwidth of the second node is greater than the first bandwidth, the third bandwidth is the first bandwidth.

[0167] It is understood that the third bandwidth is the minimum of the minimum available bandwidths of all previous-hop nodes of the egress node. After receiving the first packet and before removing the SRv6 encapsulation, the egress node first obtains the first bandwidth from the first IPv6 options header and then compares the first bandwidth with the minimum available bandwidth of the local link to determine the third bandwidth.

[0168] Using this method, the first message received by the second node includes a first IPv6 options header, which includes a first bandwidth. The first bandwidth is the minimum of the minimum available bandwidths of all previous hops of the second node. The second node then uses the minimum of its own minimum available bandwidth and the first bandwidth as the third bandwidth and reports the third bandwidth. This allows the controller or source node to promptly obtain the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path. This minimum value can reflect the minimum available bandwidth of the SRv6 forwarding path, thereby avoiding packet loss caused by the inability to perceive the minimum available bandwidth of the SRv6 forwarding path.

[0169] It is understood that after the controller or source node obtains the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path, it can use this minimum value as the minimum available bandwidth of the SRv6 forwarding path. Therefore, when the minimum available bandwidth of the currently used SRv6 forwarding path is insufficient, path switching can be performed in a timely manner to avoid packet loss due to insufficient bandwidth.

[0170] In the embodiment of the present application, the second node reports the third bandwidth in the following three situations:

[0171] Case 1: If the third bandwidth is the minimum value of the minimum available bandwidth of all nodes in the first selected SRv6 forwarding path, or the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, the third bandwidth is reported to the controller.

[0172] Among them, after the second node obtains the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path, it will record the minimum value locally. After the second node determines the third bandwidth, if the local node has not currently recorded the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path, the third bandwidth can be determined to be the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path selected for the first time. Conversely, if the local node has currently recorded the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path selected last time, the third bandwidth is compared with the recorded minimum value. If the two are different, it means that the minimum value of the minimum available bandwidth has changed, and the second node reports the third bandwidth; if the two are the same, it means that the minimum value of the minimum available bandwidth has not changed, and the second node does not need to re-report the third bandwidth, which can save transmission and processing overhead.

[0173] Case 2: If the third bandwidth is the minimum value of the minimum available bandwidth of all nodes in the first selected SRv6 forwarding path, or the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes in the previously selected SRv6 forwarding path, an IP packet is sent to the source node, and the IP packet includes the third bandwidth.

[0174] Among them, the IP message is a message in a custom format, and the embodiment of the present application does not limit the format of the IP message.

[0175] It should be noted that in Case 1 and Case 2, the inner layer of the first message is encapsulated with a data message, that is, the source node encapsulates the first IPv6 option header in the outer layer of the ordinary data message, so that the tail node can obtain the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path, and then report the third bandwidth to the controller or source node according to the configuration.

[0176] Case 3: The first message is encapsulated with an active performance measurement message in its inner layer. In this case, the second node sends a response message for the active performance measurement message to the source node, where the response message includes a TLV structure, and the TLV structure is used to carry the third bandwidth.

[0177] In one embodiment, the active performance measurement message is a STAMP message. Accordingly, as shown in FIG5 , the TLV structure includes a STAMP TLV flag bit (Flags), a type (Type) field, a length (Length) field, and a minimum available bandwidth (Minimum available bandwidth) field. The minimum available bandwidth field is used to carry the third bandwidth. The STAMP TLV flag bit includes a U flag, and the value of the U flag is 1. Among them, the U flag is 1, indicating that the TLV is an extended TLV that needs to be recognized by the other end.

[0178] Among them, the STAMP TLV flag bit occupies 1 byte;

[0179] The type field occupies 1 byte;

[0180] The length field is used to indicate the length of the content carried by the TLV structure, occupies 2 bytes, and has a value of 4;

[0181] The Minimum Available Bandwidth field is a 4-byte integer.

[0182] In an embodiment of the present application, the tail node acts as a STAMP session reflector. When the tail node supports the bandwidth measurement function, after the tail node obtains the minimum available bandwidth (i.e., the third bandwidth) of the SRv6 forwarding path, it is necessary to encapsulate the minimum available bandwidth in the TLV of the response message, so that the minimum available bandwidth is transmitted to the source node as reflected data.

[0183] In this way, the STAMP protocol can be used to measure the minimum available bandwidth of the SRv6 forwarding path. The tail node acts as a session reflector by extending the STAMP TLV of the response message so that the STAMP TLV carries the minimum available bandwidth, so that the session sender (that is, the source node) can obtain the minimum available bandwidth of the SRv6 forwarding path. When the minimum available bandwidth is insufficient, path switching can be performed in time to avoid packet loss caused by insufficient bandwidth.

[0184] The following is an explanation with reference to a specific example. As shown in FIG6 , FIG6 shows an SRv6 policy multipath scenario. For service traffic from node A to node E, the controller sends two candidate paths (CP) to source node A, namely CP1 and CP2.

[0185] CP1 is a primary candidate path, CP2 is a backup candidate path, and the preset bandwidths of the segment list paths of CP1 and CP2 are both 100 Mbps.

[0186] The SRv6 forwarding path configuration on source node A is as follows:

[0187] SRv6 policy POL1 (Policy 1)

[0188] Candidate Path CP1

[0189] Preference 200

[0190] Segment List 11<SID-A,SID-B,SID-E> ,Weight 1,100Mbps

[0191] Segment List 12<SID-A,SID-B,SID-D,SID-E> ,Weight 1,100Mbps

[0192] Candidate Path CP2

[0193] Preference 100

[0194] Segment List 21<SID-A,SID-C,SID-F,SID-E> ,Weight 1,100Mbps

[0195] Segment List 22<SID-A,SID-F,SID-E> ,Weight 1,100Mbps

[0196] That is, candidate path 1 has a priority of 200 and includes two segment list paths. The path consisting of nodes A, B, and E has a weight of 1 and a bandwidth of 100 Mbps; the path consisting of nodes A, B, D, and E has a weight of 2 and a bandwidth of 100 Mbps.

[0197] Candidate path 2 has a priority of 100 and includes two segment list paths. The path consisting of nodes A, C, F, and E has a weight of 1 and a bandwidth of 100 Mbps; the path consisting of nodes A, F, and E has a weight of 1 and a bandwidth of 100 Mbps.

[0198] Under normal circumstances, the primary candidate path CP1 can forward 200 Mbps of traffic. When CP1 becomes congested and no longer meets the forwarding requirements, source node A must promptly switch traffic to the backup candidate path CP2. For example, the forwarding requirement is that the bandwidth of the candidate path must be greater than 150 Mbps.

[0199] In response to this switching requirement, the minimum available bandwidth measurement function can be enabled on the SRv6 forwarding path according to the method of the embodiment of the present application. If there is traffic congestion on node D, the bandwidth that node D can actually forward the service (i.e., the minimum available bandwidth) drops below 50Mbps, for example, 43Mbps, and the minimum available bandwidth of the remaining nodes is still 100Mbps. When node D receives the SRv6 message, it will encapsulate its own minimum available bandwidth in the IPv6 option header and forward the SRv6 message to node E. Node E can determine that the minimum value of the minimum available bandwidth in the path currently composed of A, node B, node D and node E is 43Mbps, and feed back the minimum value of the minimum available bandwidth to the source node A. Source node A can calculate that the minimum available bandwidth of the two segment list paths of CP1 at this time is 143Mbps, which is less than the 150Mbps specified in the forwarding requirement, and can then quickly switch the candidate path and switch the service flow to the uncongested CP2.

[0200] It can be seen that through the embodiments of the present application, the actual minimum available bandwidth of the SRv6 forwarding path can be measured. When the actual minimum available bandwidth of the SRv6 forwarding path does not meet the forwarding requirements, the controller or source node can quickly perceive it and promptly select a new forwarding path for the service flow.

[0201] It should be noted that the above-mentioned method of switching paths is only an example. In actual implementation, path switching can be performed based on the minimum available bandwidth of the SRv6 forwarding path and other factors. The embodiments of the present application do not limit this.

[0202] Corresponding to the above method embodiment, an embodiment of the present application further provides a message forwarding device, which is applied to a first node. As shown in FIG7 , the device includes:

[0203] An acquisition module 701 is configured to acquire a first message, where the first message includes a first IPv6 options header, where the first IPv6 options header includes a first bandwidth, where the first bandwidth is a minimum value of a minimum available bandwidth of nodes in an SRv6 forwarding path, where the nodes in the SRv6 forwarding path include the first node and all previous hop nodes of the first node.

[0204] The sending module 702 is configured to send a first message on the SRv6 forwarding path, so that the tail node reports the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path.

[0205] Optionally, when the first node is a source node, the acquiring module 701 is specifically configured to:

[0206] receiving a second message;

[0207] Obtain a first bandwidth, where the first bandwidth is a minimum available bandwidth of an outbound interface of the first node;

[0208] The first bandwidth is carried in the first IPv6 option header, and the first IPv6 option header is encapsulated in the outer layer of the second message to obtain the first message.

[0209] Optionally, when the first node is an intermediate node, the acquiring module 701 is specifically configured to:

[0210] Receive a third message, where the third message includes a second IPv6 option header, the second IPv6 option header includes a second bandwidth, and the second bandwidth is a minimum value of minimum available bandwidths of all previous hop nodes of the first node;

[0211] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, maintain the second bandwidth and obtain the first message;

[0212] If the second bandwidth is greater than the minimum available bandwidth of the first node, the second bandwidth is updated to the minimum available bandwidth of the first node to obtain the first message.

[0213] Optionally, the first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a transit node, and all previous hop nodes include endpoint nodes and / or transit nodes; or,

[0214] The first IPv6 option header is the destination option header, the intermediate node is the endpoint node, and all previous-hop nodes are endpoint nodes.

[0215] Optionally, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, and the minimum available bandwidth field is used to carry the first bandwidth.

[0216] Optionally, the second message is a data message or an active performance measurement message.

[0217] Corresponding to the above method embodiment, an embodiment of the present application further provides a message forwarding device, which is applied to the second node. As shown in FIG8 , the device includes:

[0218] A receiving module 801 is configured to receive a first message, where the first message includes a first IPv6 option header, where the first IPv6 option header includes a first bandwidth, where the first bandwidth is a minimum value of the minimum available bandwidths of all previous hop nodes of the second node, where all previous hop nodes are located in an SRv6 forwarding path;

[0219] The reporting module 802 is configured to report a third bandwidth, where the third bandwidth is the minimum bandwidth between the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.

[0220] Optionally, the inner layer of the first message is encapsulated with a data message; the reporting module 802 is specifically configured to:

[0221] If the third bandwidth is the minimum value of the minimum available bandwidths of all nodes in the first selected SRv6 forwarding path, or the third bandwidth is different from the minimum value of the minimum available bandwidths of all nodes in the previously selected SRv6 forwarding path, then report the third bandwidth to the controller; or,

[0222] If the third bandwidth is the minimum value of the minimum available bandwidths of all nodes in the first selected SRv6 forwarding path, or the third bandwidth is different from the minimum value of the minimum available bandwidths of all nodes in the previously selected SRv6 forwarding path, an IP packet is sent to the source node, where the IP packet includes the third bandwidth.

[0223] Optionally, the first message is encapsulated with an active performance measurement message in an inner layer; the reporting module 802 is specifically configured to:

[0224] A response message for the active performance measurement message is sent to the source node, where the response message includes a TLV structure, and the TLV structure is used to carry the third bandwidth.

[0225] Optionally, the active performance measurement message is a STAMP message, the TLV structure includes a STAMP TLV flag bit, a type field, a length field and a minimum available bandwidth field, the minimum available bandwidth field is used to carry the third bandwidth, the STAMP TLV flag bit includes a U flag, and the value of the U flag is 1.

[0226] Optionally, the first IPv6 option header is a Hop-by-Hop option header, and all previous hop nodes include endpoint nodes and / or transit nodes; or,

[0227] The first IPv6 options header is the destination options header, and all previous hop nodes are endpoint nodes.

[0228] Optionally, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, and the minimum available bandwidth field is used to carry the first bandwidth.

[0229] Corresponding to the above method embodiment, the embodiment of the present application further provides a network device, which should be a first node. As shown in FIG9 , the network device includes:

[0230] Processor 901;

[0231] transceiver 904;

[0232] A machine-readable storage medium 902 stores machine-executable instructions that can be executed by the processor 901; the machine-executable instructions prompt the processor 901 to perform the following steps:

[0233] Obtain a first message, where the first message includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, and the first bandwidth is a minimum value of a minimum available bandwidth of nodes in an SRv6 forwarding path, where the nodes in the SRv6 forwarding path include the first node and all previous hop nodes of the first node;

[0234] A first message is sent on the SRv6 forwarding path, so that the tail node reports a minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path.

[0235] Optionally, when the first node is a source node, the machine executable instructions further cause the processor 901 to perform the following steps:

[0236] receiving a second message;

[0237] Obtain a first bandwidth, where the first bandwidth is a minimum available bandwidth of an outbound interface of the first node;

[0238] The first bandwidth is carried in the first IPv6 option header, and the first IPv6 option header is encapsulated in the outer layer of the second message to obtain the first message.

[0239] Optionally, when the first node is an intermediate node, the machine executable instructions further cause the processor 901 to perform the following steps:

[0240] Receive a third message, where the third message includes a second IPv6 option header, the second IPv6 option header includes a second bandwidth, and the second bandwidth is a minimum value of minimum available bandwidths of all previous hop nodes of the first node;

[0241] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, maintain the second bandwidth and obtain the first message;

[0242] If the second bandwidth is greater than the minimum available bandwidth of the first node, the second bandwidth is updated to the minimum available bandwidth of the first node to obtain the first message.

[0243] Optionally, the first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a transit node, and all previous hop nodes include endpoint nodes and / or transit nodes; or,

[0244] The first IPv6 option header is the destination option header, the intermediate node is the endpoint node, and all previous-hop nodes are endpoint nodes.

[0245] Optionally, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, and the minimum available bandwidth field is used to carry the first bandwidth.

[0246] Optionally, the second message is a data message or an active performance measurement message.

[0247] As shown in Figure 9, the network device may further include a communication bus 903. The processor 901, the machine-readable storage medium 902, and the transceiver 904 communicate with each other via the communication bus 903. The communication bus 903 may be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus. The communication bus 903 may be divided into an address bus, a data bus, a control bus, and the like.

[0248] The transceiver 904 may be a wireless communication module. Under the control of the processor 901 , the transceiver 904 exchanges data with other devices.

[0249] The machine-readable storage medium 902 may include random access memory (RAM) or non-volatile memory (NVM), such as at least one disk storage device. Alternatively, the machine-readable storage medium 902 may be at least one storage device located remotely from the processor.

[0250] The processor 901 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.

[0251] Corresponding to the above method embodiment, the embodiment of the present application further provides a network device, which is a second node. As shown in FIG10 , the network device includes:

[0252] Processor 1001;

[0253] transceiver 1004;

[0254] A machine-readable storage medium 1002 stores machine-executable instructions that can be executed by the processor 1001; the machine-executable instructions prompt the processor 1001 to perform the following steps:

[0255] Receive a first message, where the first message includes a first IPv6 option header, where the first IPv6 option header includes a first bandwidth, where the first bandwidth is a minimum value of minimum available bandwidths of all previous hop nodes of the second node, where all previous hop nodes are located in an SRv6 forwarding path;

[0256] A third bandwidth is reported, where the third bandwidth is the minimum bandwidth of the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.

[0257] Optionally, a data message is encapsulated in an inner layer of the first message; the machine executable instructions further cause the processor 1001 to perform the following steps:

[0258] If the third bandwidth is the minimum value of the minimum available bandwidths of all nodes in the first selected SRv6 forwarding path, or the third bandwidth is different from the minimum value of the minimum available bandwidths of all nodes in the previously selected SRv6 forwarding path, then report the third bandwidth to the controller; or,

[0259] If the third bandwidth is the minimum value of the minimum available bandwidths of all nodes in the first selected SRv6 forwarding path, or the third bandwidth is different from the minimum value of the minimum available bandwidths of all nodes in the previously selected SRv6 forwarding path, an IP packet is sent to the source node, where the IP packet includes the third bandwidth.

[0260] Optionally, the first message is encapsulated with an active performance measurement message in an inner layer; the machine executable instructions further prompt the processor 1001 to perform the following steps:

[0261] A response message for the active performance measurement message is sent to the source node, where the response message includes a TLV structure, and the TLV structure is used to carry the third bandwidth.

[0262] Optionally, the active performance measurement message is a STAMP message, the TLV structure includes a STAMP TLV flag bit, a type field, a length field and a minimum available bandwidth field, the minimum available bandwidth field is used to carry the third bandwidth, the STAMP TLV flag bit includes a U flag, and the value of the U flag is 1.

[0263] Optionally, the first IPv6 option header is a Hop-by-Hop option header, and all previous hop nodes include endpoint nodes and / or transit nodes; or,

[0264] The first IPv6 options header is the destination options header, and all previous hop nodes are endpoint nodes.

[0265] Optionally, the first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, and the minimum available bandwidth field is used to carry the first bandwidth.

[0266] As shown in Figure 10, the network device may further include a communication bus 1003. The processor 1001, the machine-readable storage medium 1002, and the transceiver 1004 communicate with each other via the communication bus 1003. The communication bus 1003 may be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus. The communication bus 1003 may be divided into an address bus, a data bus, a control bus, and the like.

[0267] The transceiver 1004 may be a wireless communication module. Under the control of the processor 1001 , the transceiver 1004 exchanges data with other devices.

[0268] The machine-readable storage medium 1002 may include random access memory (RAM) or non-volatile memory (NVM), such as at least one disk storage device. Alternatively, the machine-readable storage medium 1002 may be at least one storage device located remote from the processor.

[0269] Processor 1001 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, and discrete hardware components.

[0270] Based on the same inventive concept, in accordance with the message forwarding method provided in the above embodiments of the present application, the present application also provides a machine-readable storage medium storing machine-executable instructions that can be executed by a processor. The processor is prompted by the machine-executable instructions to implement the steps of any of the above message forwarding methods.

[0271] In another embodiment provided by the present application, a computer program product including instructions is also provided, which, when executed on a computer, enables the computer to execute the steps of any message forwarding method in the above embodiments.

[0272] It should be noted that, in this document, relational terms such as first and second, etc., are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship or order between these entities or operations. Moreover, the terms "comprises," "comprising," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of other identical elements in the process, method, article, or device comprising the element.

[0273] The above description is only a preferred embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present application shall be included in the scope of protection of the present application.

Claims

1. A message forwarding method, characterized in that: Applied to the first node, the method includes: Obtain a first message, where the first message includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, and the first bandwidth is a minimum value of a minimum available bandwidth of nodes in an SRv6 forwarding path, where the nodes in the SRv6 forwarding path include the first node and all previous hop nodes of the first node; The first message is sent on the SRv6 forwarding path, so that the tail node reports the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path.

2. The method according to claim 1, characterized in that When the first node is a source node, obtaining the first message includes: receiving a second message; Obtaining a first bandwidth, where the first bandwidth is a minimum available bandwidth of an outbound interface of the first node; The first bandwidth is carried in the first IPv6 option header, and the first IPv6 option header is encapsulated in an outer layer of the second message to obtain the first message.

3. The method according to claim 1, characterized in that When the first node is an intermediate node, obtaining the first message includes: Receive a third message, where the third message includes a second IPv6 option header, where the second IPv6 option header includes a second bandwidth, where the second bandwidth is a minimum value of minimum available bandwidths of all previous hop nodes of the first node; If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, maintain the second bandwidth and obtain the first message; If the second bandwidth is greater than the minimum available bandwidth of the first node, the second bandwidth is updated to the minimum available bandwidth of the first node to obtain the first message.

4. The method according to claim 3, characterized in that The first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a transit node, and all previous hop nodes include endpoint nodes and / or transit nodes; or, The first IPv6 option header is a destination option header, the intermediate node is an endpoint node, and all previous-hop nodes are endpoint nodes.

5. The method according to any one of claims 1 to 4, characterized in that The first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, and the minimum available bandwidth field is used to carry the first bandwidth.

6. The method according to claim 2, characterized in that The second message is a data message or an active performance measurement message.

7. A message forwarding method, characterized in that: Applied to the second node, the method includes: Receive a first message, where the first message includes a first IPv6 option header, where the first IPv6 option header includes a first bandwidth, where the first bandwidth is a minimum value of minimum available bandwidths of all previous hop nodes of the second node, where all the previous hop nodes are located in an SRv6 forwarding path; A third bandwidth is reported, where the third bandwidth is the minimum bandwidth of the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.

8. The method according to claim 7, characterized in that The inner layer of the first message is encapsulated with a data message; The reporting of the third bandwidth includes: If the third bandwidth is the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path selected for the first time, or the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path selected last time, then the control The device reports the third bandwidth; or, If the third bandwidth is the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the first time, or the third bandwidth is different from the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the previous time, an IP packet is sent to the source node, where the IP packet includes the third bandwidth.

9. The method according to claim 7, characterized in that The first message is encapsulated with an active performance measurement message in its inner layer; The reporting of the third bandwidth includes: A response message for the active performance measurement message is sent to a source node, where the response message includes a TLV structure, and the TLV structure is used to carry the third bandwidth.

10. The method according to claim 9, characterized in that The active performance measurement message is a STAMP message, the TLV structure includes a STAMP TLV flag bit, a type field, a length field and a minimum available bandwidth field, the minimum available bandwidth field is used to carry the third bandwidth, the STAMP TLV flag bit includes a U flag, and the value of the U flag is 1.

11. The method according to any one of claims 7 to 10, characterized in that: The first IPv6 option header is a Hop-by-Hop option header, and all previous hop nodes include endpoint nodes and / or transit nodes; or The first IPv6 option header is a destination option header, and all the previous hop nodes are endpoint nodes.

12. The method according to claim 11, characterized in that The first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, and the minimum available bandwidth field is used to carry the first bandwidth.

13. A message forwarding device, characterized in that: Applied to a first node, the apparatus includes: an acquisition module, configured to acquire a first message, where the first message includes a first IPv6 option header, where the first IPv6 option header includes a first bandwidth, where the first bandwidth is a minimum value of a minimum available bandwidth of nodes in an SRv6 forwarding path, where the nodes in the SRv6 forwarding path include the first node and all previous hop nodes of the first node; A sending module is configured to send the first message on the SRv6 forwarding path, so that the tail node reports the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path.

14. The device according to claim 13, characterized in that When the first node is a source node, the acquisition module is specifically configured to: receiving a second message; Obtaining a first bandwidth, where the first bandwidth is a minimum available bandwidth of an outbound interface of the first node; The first bandwidth is carried in the first IPv6 option header, and the first IPv6 option header is encapsulated in an outer layer of the second message to obtain the first message.

15. The device according to claim 13, characterized in that When the first node is an intermediate node, the obtaining module is specifically configured to: Receive a third message, where the third message includes a second IPv6 option header, where the second IPv6 option header includes a second bandwidth, where the second bandwidth is a minimum value of minimum available bandwidths of all previous hop nodes of the first node; If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, maintain the second bandwidth and obtain the first message; If the second bandwidth is greater than the minimum available bandwidth of the first node, the second bandwidth is updated to the minimum available bandwidth of the first node to obtain the first message.

16. The device according to claim 15, characterized in that The first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a transit node, and all the A one-hop node includes an endpoint node and / or a transit node; or, The first IPv6 option header is a destination option header, the intermediate node is an endpoint node, and all previous-hop nodes are endpoint nodes.

17. The device according to any one of claims 13 to 16, characterized in that The first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, and the minimum available bandwidth field is used to carry the first bandwidth.

18. The device according to claim 14, characterized in that The second message is a data message or an active performance measurement message.

19. A message forwarding device, characterized in that: Applied to the second node, the apparatus includes: A receiving module, configured to receive a first message, where the first message includes a first IPv6 option header, where the first IPv6 option header includes a first bandwidth, where the first bandwidth is a minimum value of the minimum available bandwidths of all previous hop nodes of the second node, where all the previous hop nodes are located in an SRv6 forwarding path; The reporting module is configured to report a third bandwidth, where the third bandwidth is the minimum bandwidth between the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.

20. The device according to claim 19, characterized in that The inner layer of the first message is encapsulated with a data message; the reporting module is specifically used to: If the third bandwidth is the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the first time, or the third bandwidth is different from the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the previous time, then report the third bandwidth to the controller; or, If the third bandwidth is the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the first time, or the third bandwidth is different from the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the previous time, an IP packet is sent to the source node, where the IP packet includes the third bandwidth.

21. The device according to claim 19, characterized in that The first message is encapsulated with an active performance measurement message in an inner layer; the reporting module is specifically configured to: A response message for the active performance measurement message is sent to a source node, where the response message includes a TLV structure, and the TLV structure is used to carry the third bandwidth.

22. The device according to claim 21, characterized in that The active performance measurement message is a STAMP message, the TLV structure includes a STAMP TLV flag bit, a type field, a length field and a minimum available bandwidth field, the minimum available bandwidth field is used to carry the third bandwidth, the STAMP TLV flag bit includes a U flag, and the value of the U flag is 1.

23. The device according to any one of claims 19 to 22, characterized in that The first IPv6 option header is a Hop-by-Hop option header, and all previous hop nodes include endpoint nodes and / or transit nodes; or The first IPv6 option header is a destination option header, and all the previous hop nodes are endpoint nodes.

24. The device according to claim 23, characterized in that The first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, and the minimum available bandwidth field is used to carry the first bandwidth.

25. A network device, characterized in that: Applied to a first node, the network device includes: processor; transceiver; A machine-readable storage medium storing machine-executable instructions capable of being executed by the processor; the machine-executable instructions prompting the processor to perform the following steps: Obtain a first message, where the first message includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, and the first bandwidth is a minimum value of a minimum available bandwidth of nodes in an SRv6 forwarding path, where the nodes in the SRv6 forwarding path include the first node and all previous hop nodes of the first node; The first message is sent on the SRv6 forwarding path, so that the tail node reports the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path.

26. The network device according to claim 25, characterized in that When the first node is a source node, the machine-executable instructions further cause the processor to perform the following steps: receiving a second message; Obtaining a first bandwidth, where the first bandwidth is a minimum available bandwidth of an outbound interface of the first node; The first bandwidth is carried in the first IPv6 option header, and the first IPv6 option header is encapsulated in an outer layer of the second message to obtain the first message.

27. The network device according to claim 25, characterized in that When the first node is an intermediate node, the machine-executable instructions further cause the processor to perform the following steps: Receive a third message, where the third message includes a second IPv6 option header, where the second IPv6 option header includes a second bandwidth, where the second bandwidth is a minimum value of minimum available bandwidths of all previous hop nodes of the first node; If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, maintain the second bandwidth and obtain the first message; If the second bandwidth is greater than the minimum available bandwidth of the first node, the second bandwidth is updated to the minimum available bandwidth of the first node to obtain the first message.

28. The network device according to claim 27, wherein: The first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a transit node, and all previous hop nodes include endpoint nodes and / or transit nodes; or, The first IPv6 option header is a destination option header, the intermediate node is an endpoint node, and all previous-hop nodes are endpoint nodes.

29. The network device according to any one of claims 25 to 28, characterized in that: The first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, and the minimum available bandwidth field is used to carry the first bandwidth.

30. The network device according to claim 26, wherein: The second message is a data message or an active performance measurement message.

31. A network device, characterized in that: Applied to the second node, the network device includes: processor; transceiver; A machine-readable storage medium storing machine-executable instructions capable of being executed by the processor; the machine-executable instructions prompting the processor to perform the following steps: Receive a first message, where the first message includes a first IPv6 option header, where the first IPv6 option header includes a first bandwidth, where the first bandwidth is a minimum value of minimum available bandwidths of all previous hop nodes of the second node, where all the previous hop nodes are located in an SRv6 forwarding path; A third bandwidth is reported, where the third bandwidth is the minimum bandwidth of the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.

32. The network device according to claim 31, wherein: The inner layer of the first message is encapsulated with a data message; the machine executable instructions further cause the processor to perform the following steps: If the third bandwidth is the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the first time, or the third bandwidth is different from the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the previous time, then report the third bandwidth to the controller; or, If the third bandwidth is the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the first time, or the third bandwidth is different from the minimum value of the minimum available bandwidths of all nodes in the SRv6 forwarding path selected for the previous time, an IP packet is sent to the source node, where the IP packet includes the third bandwidth.

33. The network device according to claim 31, wherein: The first message is encapsulated with an active performance measurement message in an inner layer; the machine executable instructions further cause the processor to execute the following steps: A response message for the active performance measurement message is sent to a source node, where the response message includes a TLV structure, and the TLV structure is used to carry the third bandwidth.

34. The network device according to claim 33, wherein: The active performance measurement message is a STAMP message, the TLV structure includes a STAMP TLV flag bit, a type field, a length field and a minimum available bandwidth field, the minimum available bandwidth field is used to carry the third bandwidth, the STAMP TLV flag bit includes a U flag, and the value of the U flag is 1.

35. The network device according to any one of claims 31 to 34, characterized in that: The first IPv6 option header is a Hop-by-Hop option header, and all previous hop nodes include endpoint nodes and / or transit nodes; or The first IPv6 option header is a destination option header, and all the previous hop nodes are endpoint nodes.

36. The network device according to claim 35, characterized in that The first IPv6 option header includes an option type field, an option data length field, and a minimum available bandwidth field, and the minimum available bandwidth field is used to carry the first bandwidth.

37. A machine-readable storage medium, characterized in that The method stores machine executable instructions, which, when called and executed by a processor, prompt the processor to implement the method according to any one of claims 1 to 12.

38. A computer program product, characterized in that The computer program product causes the processor to implement the method according to any one of claims 1 to 12.

Citation Information

Patent Citations

  • Method and system for transmitting control information in VXLAN transmission

    CN111917624A

  • Communication method and related equipment

    CN112468403A

  • Message forwarding method and system in SRv6, electronic equipment and storage medium

    CN114124781A

  • Data message forwarding method and device and routing equipment

    CN115567434A

  • Immediate ready implementation of virtually congestion free guarantedd service capable network

    US20070008884A1