Packet forwarding method, device, network device, and storage media

KR1020260133869APending Publication Date: 2026-09-04NEW H3C TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
KR1020267024871
Authority / Receiving Office
KR · KR
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-14
Publication Date
2026-09-04

Smart Images

  • Figure PCT00003_ABST
    Figure PCT00003_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a packet forwarding method, apparatus, network device, and storage medium, and relate to the field of communication technology. The method comprises: acquiring a first packet—the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of a node in an SRv6 forwarding path, and the node in the SRv6 forwarding path includes a first node and the entire previous hop node of the first node—; and transmitting the first packet over an SRv6 forwarding path to cause a tail node to report the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path. This can prevent packet loss problems that occur due to failure to recognize the minimum available bandwidth of an SRv6 forwarding path.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] The present application relates to the field of communication technology, and in particular to packet forwarding methods, devices, network devices, and storage media. Background Technology

[0002] The SRv6 Segment Routing Traffic Engineering Policy (SRv6 TE Policy) is a new tunnel traffic guidance technology developed based on the Internet Protocol Version 6 Segment Routing (SR) technology. By using this tunnel traffic guidance technology, service packets can be guided to the appropriate SRv6 TE Policy, and furthermore, service packets can be forwarded using the forwarding path within the SRv6 TE Policy.

[0003] To enhance the reliability of the forwarding path, the controller can deploy multiple candidate paths simultaneously to the source node and switch to a lower-priority backup candidate path when all high-priority main candidate paths become unavailable.

[0004] In light of this, the present application provides a packet forwarding method, device, network device, and storage medium to enable the timely acquisition of the minimum available bandwidth of a node on a forwarding path. Specific technical measures are as follows.

[0005] In a first aspect, an embodiment of the present application provides a packet forwarding method applied to a first node, said method:

[0006] Step of acquiring a first packet - the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of a node in an SRv6 forwarding path, and the node in the SRv6 forwarding path includes the first node and the entire immediately preceding hop node of the first node -;

[0007] The method includes the step of transmitting the first packet over the SRv6 forwarding path to cause the tail node to report the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path.

[0008] In a possible implementation, when the first node is a source node, the step of acquiring the first packet is:

[0009] Step of receiving the second packet;

[0010] Step of acquiring a first bandwidth - the first bandwidth is the minimum available bandwidth of the outgoing interface of the first node -;

[0011] The method includes the step of carrying the first bandwidth in the first IPv6 option header and encapsulating the first IPv6 option header in the outer layer of the second packet to obtain the first packet.

[0012] In a possible implementation, when the first node is an intermediate node, the step of acquiring the first packet is:

[0013] Step of receiving a third packet - said third packet includes a second IPv6 option header, said second IPv6 option header includes a second bandwidth, said second bandwidth is the minimum value of the minimum available bandwidth of the entire previous hop node of said first node -;

[0014] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, the step of maintaining the second bandwidth to acquire the first packet;

[0015] If the second bandwidth is greater than the minimum available bandwidth of the first node, the method includes the step of updating the second bandwidth to the minimum available bandwidth of the first node to obtain the first packet.

[0016] 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 relay node, and the entire previous hop node includes an endpoint node and / or a relay node.

[0017] The first IPv6 option header above is a destination option header, the intermediate node above is an endpoint node, and the entire previous hop node above is an endpoint node.

[0018] 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, and the minimum available bandwidth field is used to carry the first bandwidth.

[0019] In a possible implementation, the second packet is a data packet or an active performance measurement packet.

[0020] In a second aspect, an embodiment of the present application provides a packet forwarding method applied to a second node, said method:

[0021] Step of receiving a first packet - the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of the entire previous hop node of the second node, and the entire previous hop node is located within an SRv6 forwarding path -;

[0022] The method includes a step of reporting a third bandwidth - wherein the third bandwidth is the minimum bandwidth among the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.

[0023] In a possible implementation, a data packet is encapsulated in the internal layer of the first packet; and the step of reporting the third bandwidth is:

[0024] A step of reporting the third bandwidth to the controller if the third bandwidth is the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path initially selected, or if the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path immediately prior selected; or,

[0025] If the third bandwidth is the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path selected initially, or if the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path selected immediately prior, the method includes the step of transmitting an IP packet containing the third bandwidth to a source node.

[0026] In a possible implementation, an active performance measurement packet is encapsulated in the internal layer of the first packet; and the step of reporting the third bandwidth is:

[0027] The method includes the step of transmitting a response packet of the active performance measurement packet to the source node - the response packet includes a TLV structure, and the TLV structure is used to carry the third bandwidth.

[0028] In a possible implementation, the active performance measurement packet is a STAMP packet, and 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.

[0029] In a possible implementation, the first IPv6 option header is a Hop-by-Hop option header, and the entire previous hop node includes an endpoint node and / or a relay node, or

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

[0031] 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, and the minimum available bandwidth field is used to carry the first bandwidth.

[0032] In a third aspect, an embodiment of the present application provides a packet forwarding device applied to a first node, said device:

[0033] Acquisition module for acquiring a first packet - the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of a node within an SRv6 forwarding path, and the node within the SRv6 forwarding path includes the first node and the entire previous hop node of the first node -;

[0034] It includes a transmission module for transmitting the first packet on the SRv6 forwarding path to cause the tail node to report the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path.

[0035] In a possible implementation, where the first node is a source node, the acquisition module specifically:

[0036] Receive the second packet;

[0037] Acquiring a first bandwidth, which is the minimum available bandwidth of the outgoing interface of the first node;

[0038] 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 packet to be used to acquire the first packet.

[0039] In a possible implementation, where the first node is an intermediate node, the acquisition module specifically:

[0040] Receiving a third packet - said third packet includes a second IPv6 option header, said second IPv6 option header includes a second bandwidth, said second bandwidth is the minimum value of the minimum available bandwidth of the entire previous hop node of said first node -;

[0041] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, the second bandwidth is maintained to acquire the first packet;

[0042] 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 and used to acquire the first packet.

[0043] 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 relay node, and the entire previous hop node includes an endpoint node and / or a relay node, or

[0044] The first IPv6 option header above is a destination option header, the intermediate node above is an endpoint node, and the entire previous hop node above is an endpoint node.

[0045] 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, and the minimum available bandwidth field is used to carry the first bandwidth.

[0046] In a possible implementation, the second packet is a data packet or an active performance measurement packet.

[0047] In a fourth aspect, an embodiment of the present application provides a packet forwarding device applied to a second node, said device:

[0048] A receiving module for receiving a first packet - the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of the entire previous hop node of the second node, and the entire previous hop node is located within an SRv6 forwarding path -;

[0049] A reporting module for reporting a third bandwidth - wherein the third bandwidth is the minimum bandwidth among the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node - is included.

[0050] In a possible implementation, a data packet is encapsulated in the internal layer of the first packet; and the reporting module, specifically:

[0051] If the third bandwidth is the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path initially selected, or if the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path immediately prior selected, report the third bandwidth to the controller, or

[0052] If the third bandwidth is the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path selected first, or if the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path selected immediately prior, it is used to transmit an IP packet containing the third bandwidth to the source node.

[0053] In a possible implementation, an active performance measurement packet is encapsulated in the internal layer of the first packet; and the reporting module, specifically:

[0054] It is used to transmit a response packet of the active performance measurement packet to the source node, the response packet includes a TLV structure, and the TLV structure is used to carry the third bandwidth.

[0055] In a possible implementation, the active performance measurement packet is a STAMP packet, and 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.

[0056] In a possible implementation, the first IPv6 option header is a Hop-by-Hop option header, and the entire previous hop node includes an endpoint node and / or a relay node, or

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

[0058] 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, and the minimum available bandwidth field is used to carry the first bandwidth.

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

[0060] processor;

[0061] Transceiver;

[0062] The machine-readable storage medium comprises a machine-readable storage medium that stores a machine-executable instruction that can be stored and executed by the processor, and the machine-executable instruction causes the processor to perform the following steps, i.e.,

[0063] Step of acquiring a first packet - the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of a node in an SRv6 forwarding path, and the node in the SRv6 forwarding path includes the first node and the entire previous hop node of the first node -;

[0064] The step of transmitting the first packet on the SRv6 forwarding path to cause the tail node to report the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path is executed.

[0065] In a possible implementation, where the first node is a source node, the machine-executable instruction also causes the processor to perform the following steps, i.e.,

[0066] Step of receiving the second packet;

[0067] Step of acquiring a first bandwidth - the first bandwidth is the minimum available bandwidth of the outgoing interface of the first node -;

[0068] 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 packet to execute the step of acquiring the first packet.

[0069] In a possible implementation, where the first node is an intermediate node, the machine-executable instruction also causes the processor to perform the following steps, i.e.,

[0070] Step of receiving a third packet - said third packet includes a second IPv6 option header, said second IPv6 option header includes a second bandwidth, said second bandwidth is the minimum value of the minimum available bandwidth of the entire previous hop node of said first node -;

[0071] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, the step of maintaining the second bandwidth to acquire the first packet;

[0072] If the second bandwidth is greater than the minimum available bandwidth of the first node, the step of obtaining the first packet is executed by updating the second bandwidth to the minimum available bandwidth of the first node.

[0073] 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 relay node, and the entire previous hop node includes an endpoint node and / or a relay node, or

[0074] The first IPv6 option header above is a destination option header, the intermediate node above is an endpoint node, and the entire previous hop node above is an endpoint node.

[0075] 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, and the minimum available bandwidth field is used to carry the first bandwidth.

[0076] In a possible implementation, the second packet is a data packet or an active performance measurement packet.

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

[0078] processor;

[0079] Transceiver;

[0080] The machine-readable storage medium comprises a machine-readable storage medium that stores a machine-executable instruction that can be stored and executed by the processor, and the machine-executable instruction causes the processor to perform the following steps, i.e.,

[0081] Step of receiving a first packet - the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of the entire previous hop node of the second node, and the entire previous hop node is located within an SRv6 forwarding path -;

[0082] The step of reporting the third bandwidth—where the third bandwidth is the minimum bandwidth among the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node—is executed.

[0083] In a possible implementation, a data packet is encapsulated in the inner layer of the first packet; and the machine-executable instruction also causes the processor to perform the following steps, i.e.,

[0084] A step of reporting the third bandwidth to a controller if the third bandwidth is the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path initially selected, or if the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path immediately prior selected; or,

[0085] If the third bandwidth is the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path selected initially, or if the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path selected immediately prior, the step of transmitting an IP packet containing the third bandwidth to the source node is executed.

[0086] In a possible implementation, an active performance measurement packet is encapsulated in the inner layer of the first packet; and the machine-executable instruction also causes the processor to perform the following steps, i.e.,

[0087] The step of transmitting a response packet of the active performance measurement packet to the source node—wherein the response packet includes a TLV structure, and the TLV structure is used to carry the third bandwidth—is executed.

[0088] In a possible implementation, the active performance measurement packet is a STAMP packet, and 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.

[0089] In a possible implementation, the first IPv6 option header is a Hop-by-Hop option header, and the entire previous hop node includes an endpoint node and / or a relay node, or

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

[0091] 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, and the minimum available bandwidth field is used to carry the first bandwidth.

[0092] In a seventh aspect, an embodiment of the present application provides a machine-readable storage medium that stores a machine-executable instruction, and when called and executed by a processor, the machine-executable instruction causes the processor to execute a method according to the first aspect.

[0093] In the eighth aspect, an embodiment of the present application provides a computer program product comprising instructions, and when executed on a computer, causes the computer to execute the method according to the first aspect.

[0094] By using the above technical method, a first packet acquired by a first node includes a first IPv6 option header and a second packet, wherein the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of nodes within an SRv6 forwarding path, and the nodes within the SRv6 forwarding path include the first node and all previous hop nodes of the first node. Furthermore, the first packet is forwarded along the SRv6 forwarding path, enabling the tail node to know the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path and to report the said minimum value. This allows the controller or source node to acquire the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path in a timely manner. The said minimum value can reflect the minimum available bandwidth of the SRv6 forwarding path and, furthermore, can prevent packet loss problems caused by not recognizing the minimum available bandwidth of the SRv6 forwarding path. Brief explanation of the drawing

[0095] The drawings described herein are intended to provide further understanding of the present application and constitute part of the present application. The schematic embodiments of the present application and their descriptions are for the purpose of illustrating the present application and do not constitute an inappropriate limitation to the present application. FIG. 1 is an exemplary schematic diagram of an SRv6 packet forwarding process provided by an embodiment of the present application. FIG. 2 is a flowchart of a packet forwarding method provided by an embodiment of the present application. FIG. 3 is a schematic diagram of an IPv6 option header provided by an embodiment of the present application. FIG. 4 is a flowchart of another packet forwarding method provided by an embodiment of the present application. FIG. 5 is a schematic diagram of the TLV structure provided by an embodiment of the present application. FIG. 6 is a schematic diagram of a multipath scenario provided by an embodiment of the present application. FIG. 7 is a schematic diagram of the structure of a packet forwarding device provided by an embodiment of the present application. FIG. 8 is a schematic diagram of the structure of another packet forwarding device provided by an embodiment of the present application. FIG. 9 is a schematic diagram of the structure of a network device provided by an embodiment of the present application. FIG. 10 is a schematic diagram of the structure of another network device provided by an embodiment of the present application. Specific details for implementing the invention

[0096] To clarify the purpose, technical solution, and advantages of the present application, the present application is described in more detail below with reference to the attached drawings and examples. Clearly, the described examples are only some of the examples of the present application, not all. All other examples obtained by a person skilled in the art based on the examples of the present application fall within the scope of protection of the present application.

[0097] To aid understanding, related concepts associated with the embodiments of the present application are explained.

[0098] 1. SRv6 introduction.

[0099] The advancement of cloud computing presents new challenges to wide area networks (WWANs) and demands innovation in conventional WWANs. Software-defined networking in a wide area network (SD-WAN) is a core technology for reconfiguring WWANs; it meets the WWAN requirements of cloud computing by accelerating network delivery, optimizing application experience, increasing bandwidth utilization, and simplifying network operations through means such as automated deployment, centralized control, intelligent scheduling, and visualization. Intelligent scheduling is a core capability of next-generation WWANs and is critical for ensuring application quality and optimizing bandwidth resources. While existing traffic engineering technologies, such as Multi-Protocol Label Switching (MPLS) and Resource Reservation Protocol-Traffic Engineering (RSVP-TE), can meet the differentiated bandwidth guarantee requirements of applications, they cannot satisfy the demands of next-generation WWANs—such as dynamic deployment, flexible scheduling, speed, and scalability—due to issues like a large number of protocol types, complex deployment, difficult management, and low scalability. Therefore, a new protocol called Segment Routing (SR) emerged.

[0100] The SR adopts a source node path selection mechanism, in which the source node pre-encapsulates the Segment Identifier (SID) of the segment through which the forwarding path must pass, and when a packet passes through the SR node, the SR node forwards the packet according to the packet's SID. Nodes other than the source node do not need to maintain path state.

[0101] Segment Routing IPv6 (SRv6) refers to the implementation of Segment Routing (SR) based on the IPv6 forwarding plane. In SRv6, the source node can explicitly specify the forwarding path of an IPv6 packet by inserting a routing extension header, specifically a Segment Routing Header (SRH), into the IPv6 packet and adding a list of SIDs—namely, the SIDs of all segments through which the forwarding path must pass—to the SRH. SRv6 provides flexible and efficient control means for SD-WANs and features simple deployment and easy scalability, enabling better traffic scheduling and path optimization, ensuring critical quality of service, balancing traffic distribution, increasing dedicated line utilization, and reducing line costs.

[0102] Based on their differing functions, nodes in an SRv6 network are classified into the following roles:

[0103] Source Node It is responsible for inserting the SRH into the IPv6 header of an IPv6 packet, or encapsulating the IPv6 header and inserting the SRH into the outer layer of the packet. The source node is used to guide the packet flow to the SRv6 path defined in the SRH's Segment List.

[0104] relay node: It is located on the SRv6 path of the packet, does not participate in SRv6 processing, and performs only general IPv6 packet forwarding. The relay node may be a node that supports SRv6 or a node that does not support SRv6.

[0105] Endpoint (Endpoint) Node : If the IPv6 destination address of the received SRv6 packet is the SRv6 SID configured on the Endpoint node, process it according to the command of the SRv6 SID and update the SRH.

[0106] Tail Node : This is the last Endpoint node of the SRv6 forwarding path.

[0107] Even the same node can play different roles in different SRv6 paths. For example, a node might be a source node in one SRv6 path, and a relay node or endpoint node in another SRv6 path.

[0108] 2. SRv6 Packet forwarding process.

[0109] As illustrated in FIG. 1, device A of FIG. 1 is the source node, devices C and E are endpoint nodes, and devices B and D are relay nodes. The SRv6 packet forwarding process includes the following steps:

[0110] Step 1, after device A receives an IPv6 packet as a source node, it encapsulates the SRH and IPv6 header into the IPv6 packet, and then finds a routing table based on the destination address of the encapsulated IPv6 header and forwards the encapsulated packet to device B.

[0111] Since the path from device A to device D must pass through two Endpoint nodes, device C and device E, the SL of the SRH is 2-1, i.e., SL=1, and the list of SIDs encapsulated in the SRH includes Segment List [0]=E and Segment List [1]=C.

[0112] The source address of the IPv6 header is the 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, that is, the address of device C.

[0113] Step 2, after receiving the packet, device B looks up the routing table based on the destination address in the IPv6 header and forwards the packet to device C.

[0114] Step 3, Device C checks the SL of the SRH, and if SL > 0, it decreases the SL value by 1 and updates the destination address of the IPv6 header to the address indicated by SL. That is, Segment List [0] corresponding to SL=0, i.e., the address of Device E. Then, Device C looks up the routing table according to the destination address of the IPv6 header and forwards the packet to Device D.

[0115] Step 4, after receiving the packet, device D looks up the routing table based on the destination address in the IPv6 header and forwards the packet to device E.

[0116] Step 5, device E, which is the tail node, receives the packet and checks the SL value of the SRH header; if SL=0, it decapsulates the packet, removes the encapsulated IPv6 header and SRH, and then forwards the packet according to the destination address of the original IPv6 packet.

[0117] To enhance the reliability of forwarding paths, the controller pre-positions multiple candidate paths on the source node. The source node forwards traffic via the main candidate path with the highest priority, and if all main candidate paths with the highest priority become unavailable, it can switch the traffic to a reserve candidate path with the lowest priority.

[0118] Each node within a forwarding path carries different services and has varying forwarding capabilities. When traffic is relatively high, traffic congestion may occur at some nodes within the forwarding path, which can result in the actual maximum transmittable traffic of that path being less than the expected transmittable traffic. If this situation occurs, and the source node continues to forward packets on the original forwarding path using a preset bandwidth without adjusting the forwarding path in a timely manner, packet loss due to insufficient bandwidth may occur.

[0119] To resolve this issue, the minimum value of the minimum available bandwidth of each node within the current forwarding path must be obtained, and 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, packet loss can be prevented by timely switching traffic to a forwarding path with sufficient bandwidth.

[0120] However, since neither the controller nor the source node can currently obtain the minimum value of the minimum available bandwidth of each node within the current forwarding path, they cannot recognize whether the minimum available bandwidth of the current forwarding path is insufficient; consequently, timely path switching cannot be performed, and the problem of packet loss still persists.

[0121] To solve the above problem, an embodiment of the present application provides a packet forwarding method, the method being applied to a first node, the first node being a source node or an intermediate node of an SRv6 forwarding path, and as illustrated in FIG. 2, the method comprising the following steps.

[0122] S201, acquires a first packet, the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of a node in an SRv6 forwarding path, and the node in the SRv6 forwarding path includes a first node and all previous hop nodes of the first node.

[0123] Here, the SRv6 forwarding path is a forwarding path from a source node to a tail node in an SRv6 network, and intermediate nodes within the SRv6 forwarding path may be relay nodes or endpoint nodes.

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

[0125] S202 transmits a first packet on the SRv6 forwarding path to cause the tail node to report the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path.

[0126] It can be understood that the first IPv6 option header of the packet received by the tail node contains the minimum value of the minimum available bandwidth of the entire previous hop node of the tail node (simply referred to as bandwidth A). The tail node can compare bandwidth A with its own minimum available bandwidth. If its own minimum available bandwidth is less than bandwidth A, it sets 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 sets bandwidth A as the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path.

[0127] Using the method, a first packet acquired by a first node includes a first IPv6 option header and a second packet, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of nodes within an SRv6 forwarding path, and the nodes within the SRv6 forwarding path include the first node and all previous hop nodes of the first node. Furthermore, the first packet is forwarded along the SRv6 forwarding path, allowing the tail node to know the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path and to report the said minimum value. This enables the controller or source node to acquire the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path in a timely manner. The said minimum value can reflect the minimum available bandwidth of the SRv6 forwarding path and, furthermore, can prevent packet loss problems caused by not recognizing the minimum available bandwidth of the SRv6 forwarding path.

[0128] It is understandable that the controller or source node can obtain the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path and use that minimum value as the minimum available bandwidth of the SRv6 forwarding path. Furthermore, when the minimum available bandwidth of the currently used SRv6 forwarding path is insufficient, a timely path switching can be performed to prevent packet loss problems caused by insufficient bandwidth.

[0129] Here, a decision can be made by comprehensively considering other factors, such as transmission delay, in addition to the minimum available bandwidth during path switching, and the embodiments of the present application are not limited to the path switching method.

[0130] In the embodiments of the present application, the first node may be a source node or an intermediate node, and each is described below.

[0131] If the first node is the source node, S201, the step of acquiring the first packet can be implemented as follows:

[0132] That is, it can be implemented as a step of receiving a second packet; a step of acquiring a first bandwidth; and a step of carrying the first bandwidth in a first IPv6 option header and encapsulating the first IPv6 option header in the outer layer of the second packet to acquire the first packet.

[0133] The first bandwidth is the minimum available bandwidth of the outgoing interface of the first node, and the outgoing interface is the outgoing interface of the first node on the SRv6 forwarding path.

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

[0135] It is understandable that, before forwarding the second packet using the SRv6 network, the source node must encapsulate an IPv6 header and an SRH in the second packet, and in the embodiments of the present application, further encapsulate a first IPv6 option header to carry a first bandwidth. The first IPv6 option header is located between the IPv6 header and the SRH. Since the source node is the first node of the SRv6 forwarding path, the first bandwidth encapsulated by the source node is the minimum available bandwidth of the source node outgoing interface. The SRH includes a list of SIDs, and the list of SIDs includes the SIDs of each endpoint node through which the SRv6 forwarding path passes.

[0136] By using this method, when the source node adds SRv6 encapsulation to the second packet, it additionally encapsulates a first IPv6 option header to carry the minimum available bandwidth, so that when a node in the SRv6 forwarding path receives the first packet, it can update the minimum available bandwidth carried by the first IPv6 option header according to its own minimum available bandwidth, thereby enabling the tail node to obtain the minimum value of the minimum available bandwidth of all nodes in the SRv6 forwarding path. Subsequently, the source node or controller can refer to this minimum value when switching paths, thereby preventing packet loss due to insufficient bandwidth.

[0137] If the first node is an intermediate node, S201, the step of acquiring the first packet can be implemented as follows:

[0138] That is, the step of receiving the third packet - the third packet includes a second IPv6 option header, the second IPv6 option header includes a second bandwidth, and the second bandwidth is the minimum value of the minimum available bandwidth of the entire previous hop node of the first node -;

[0139] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, the step of maintaining the second bandwidth to acquire the first packet; and

[0140] If the second bandwidth is greater than the minimum available bandwidth of the first node, the second bandwidth can be updated to the minimum available bandwidth of the first node to acquire the first packet.

[0141] It can be understood that after receiving the third packet, the first node can compare the second bandwidth with its minimum available bandwidth.

[0142] 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 first packet is acquired by making the second bandwidth the first bandwidth.

[0143] If the second bandwidth is greater than the minimum available bandwidth of the first node, it means 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 first packet is acquired by setting the minimum available bandwidth of the first node as the first bandwidth.

[0144] It can be understood that if the first node is an endpoint node, after receiving the third packet, the first node updates the destination address of the IPv6 header and the SL of the SRH, then obtains the first packet, and further forwards the first packet along the SRv6 forwarding path.

[0145] Using this method, intermediate nodes within an SRv6 forwarding path can compare the second bandwidth carried by the third packet with their own minimum available bandwidth after receiving the third packet. If the second bandwidth is smaller, they maintain the second bandwidth; if their own minimum available bandwidth is smaller, they update the second bandwidth within the third packet to their own minimum available bandwidth. By having each intermediate node perform the minimum available bandwidth comparison and update, the tail node is enabled to obtain the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path. Furthermore, the source node or controller can refer to this minimum value during path switching, thereby preventing packet loss due to insufficient bandwidth.

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

[0147] The encapsulation location of the Minimum Available Bandwidth option depends on the measurement requirements, and if the minimum value of the Minimum Available Bandwidth of all IPv6 nodes (including relay nodes and endpoint nodes) within the SRv6 forwarding path needs to be measured, the Minimum Available Bandwidth option is encapsulated in the Hop-by-Hop option header. In this case, the first IPv6 option header is the Hop-by-Hop option header, and the intermediate node in the above embodiment is an endpoint node or a relay node. Accordingly, the entire previous hop node includes an endpoint node and / or a relay node. For example, in the case of Device B of FIG. 1, the entire previous hop node of Device B is only Device A, and Device A is an endpoint node; that is, the entire previous hop node of Device B is an endpoint node. As another example, in the case of Device C of FIG. 1, the entire previous hop node of Device C includes Device A and Device B, where Device A is an endpoint node and Device B is a relay node; in other words, the entire previous hop node of Device C includes an endpoint node and a relay node.

[0148] Alternatively, if the minimum available bandwidth of each segment (i.e., each endpoint node) within the SRv6 forwarding path needs to be measured, the minimum available bandwidth option is encapsulated in the Destination Options header. In this case, the first IPv6 option header is the destination options header, and the intermediate node in the above embodiment is the endpoint node. Correspondingly, 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 packet's destination address is located, when the first packet is forwarded along the SRv6 forwarding path, the destination address of the IPv6 header can be updated only to the IP address of the endpoint node indicated by the SID list, and not to the IP address of the relay node. Therefore, only the endpoint node can recognize the minimum available bandwidth option included in the destination options header, compare it with the bandwidth value carried in the minimum available bandwidth option, and update it. In this case, the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path reported by the tail node refers to the minimum value of the minimum available bandwidth of all endpoint nodes within the SRv6 forwarding path.

[0149] As illustrated in FIG. 3, the first IPv6 option header includes an Option Type field, an Opt Data Len field, and a Minimum available bandwidth field, and the Minimum available bandwidth field is used to carry the first bandwidth.

[0150] Here, 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.

[0151] Corresponding to the above method embodiment, the embodiment of the present application also provides a packet forwarding method applied to a second node, the second node may be a tail node of an SRv6 forwarding path, and as illustrated in FIG. 4, the method comprises the following steps.

[0152] S401 receives a first packet, the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of the entire previous hop node of the second node, and all previous hop nodes are located within an SRv6 forwarding path.

[0153] Here, the SRv6 forwarding path is a forwarding path from the source node to the tail node in the SRv6 network, and since the tail node has already received the first packet, the first bandwidth is the minimum value of the minimum available bandwidth of each node excluding the tail node within the SRv6 forwarding path.

[0154] S402 reports the third bandwidth, where the third bandwidth is the minimum bandwidth among the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.

[0155] Here, if 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; and if the minimum available bandwidth of the second node is greater than the first bandwidth, the third bandwidth is the first bandwidth.

[0156] It can be understood that the third bandwidth is the minimum value of the minimum available bandwidth of the entire previous hop node of the tail node. After receiving the first packet, the tail node first obtains the first bandwidth from the first IPv6 option header before removing the SRv6 encapsulation, and then determines the third bandwidth by comparing the first bandwidth with the minimum available bandwidth of the local link.

[0157] Using this method, the first packet received by the second node includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, and the first bandwidth is the minimum value of the minimum available bandwidth of the entire previous hop of the second node. Furthermore, the second node reports a third bandwidth by setting the minimum bandwidth between its own minimum available bandwidth and the first bandwidth as the third bandwidth. This allows the controller or source node to obtain the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path in a timely manner. This minimum value can reflect the minimum available bandwidth of the SRv6 forwarding path and, furthermore, can prevent packet loss problems caused by not recognizing the minimum available bandwidth of the SRv6 forwarding path.

[0158] It is understandable that the controller or source node can obtain the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path and use that minimum value as the minimum available bandwidth of the SRv6 forwarding path. Furthermore, when the minimum available bandwidth of the currently used SRv6 forwarding path is insufficient, a timely path switching can be performed to prevent packet loss problems caused by insufficient bandwidth.

[0159] In an embodiment of the present application, the second node reporting a third bandwidth specifically includes the following three cases:

[0160] Case 1 , if the third bandwidth is the minimum value of the minimum available bandwidth of all nodes in the initially selected SRv6 forwarding path, or if the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes in the immediately preceding SRv6 forwarding path, the third bandwidth is reported to the controller.

[0161] Here, the second node obtains the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path and records the minimum value locally. After determining the third bandwidth, if the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path is not currently recorded locally, the second node may determine that the third bandwidth is the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path that was initially selected. Conversely, if the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path that was previously selected is already recorded locally, the third bandwidth is compared with the recorded minimum value. If the two values ​​are different, it means that the minimum value of the minimum available bandwidth has changed, so the second node reports the third bandwidth; if the two values ​​are the same, it means that the minimum value of the minimum available bandwidth has not changed, so the second node does not need to report the third bandwidth again, thereby saving transmission and processing overhead.

[0162] Case 2 , if the third bandwidth is the minimum value of the minimum available bandwidth of all nodes in the initially selected SRv6 forwarding path, or if the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes in the immediately preceding selected SRv6 forwarding path, an IP packet is transmitted to the source node, and the IP packet includes the third bandwidth.

[0163] Here, the IP packet is a packet of a user-defined format, and the embodiments of the present application do not limit the format of said IP packet.

[0164] What needs to be explained is that in cases 1 and 2, a data packet is encapsulated in the inner layer of the first packet. That is, the source node encapsulates the first IPv6 option header in the outer layer of the general data packet, so that the tail node can obtain the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path, and further report the third bandwidth to the controller or source node depending on the configuration.

[0165] Case 3 , an active performance measurement packet is encapsulated in the internal layer of the first packet. In this case, the second node transmits a response packet of the active performance measurement packet to the source node, and the response packet includes a TLV structure, and the TLV structure is used to carry the third bandwidth.

[0166] In one implementation method, the active performance measurement packet is a STAMP packet. Accordingly, as illustrated in FIG. 5, the TLV structure includes STAMP TLV Flag bits, a Type field, a Length field, and a Minimum available bandwidth field, the Minimum available bandwidth field is used to carry a third bandwidth, and the STAMP TLV Flag bits include a U flag, the value of which is 1. Here, the fact that the U flag is 1 indicates that the TLV is an extended TLV that the other party must recognize.

[0167] Here, the STAMP TLV flag bit occupies 1 byte.

[0168] The type field occupies 1 byte.

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

[0170] The minimum available bandwidth field is a 4-byte integer.

[0171] In an embodiment of the present application, the tail node is a STAMP session reflector, and if the tail node supports a bandwidth measurement function, the tail node must obtain the minimum available bandwidth (i.e., the third bandwidth) of the SRv6 forwarding path, encapsulate the said minimum available bandwidth in the TLV of the response packet, and transmit the said minimum available bandwidth to the source node as reflected data.

[0172] By doing this, the minimum available bandwidth of the SRv6 forwarding path can be measured using the STAMP protocol, and the tail node acts as a session reflector to extend the STAMP TLV of the response packet so that the STAMP TLV carries the minimum available bandwidth, thereby enabling the session sender (i.e., the source node) to obtain the minimum available bandwidth of the SRv6 forwarding path, and performing a timely path switch when the minimum available bandwidth is insufficient to prevent packet loss due to insufficient bandwidth.

[0173] A specific example is explained below. As illustrated in FIG. 6, FIG. 6 illustrates an SRv6 policy multipath scenario. For service traffic from Node A to Node E, the controller forwards two candidate paths (CPs), CP1 and CP2, down to the source node A.

[0174] Here, CP1 is the main candidate path and CP2 is the reserve candidate path, and the preset bandwidth of the segment list paths of CP1 and CP2 is 100 Mbps.

[0175] The SRv6 forwarding path configuration on Source Node A is as follows:

[0176]

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

[0178] The priority of candidate path 2 is 100, and candidate path 2 includes two segment list paths, where the path consisting of node A, node C, node F and node E has a weight of 1 and a bandwidth of 100 Mbps; the path consisting of node A, node F and node E has a weight of 1 and a bandwidth of 100 Mbps.

[0179] Under normal circumstances, the main candidate path CP1 can forward 200 Mbps of traffic. When traffic congestion occurs on CP1 and it can no longer meet the forwarding requirements, Source Node A must promptly switch the traffic to the backup candidate path CP2. As an example, the forwarding requirement is that the bandwidth of the candidate path must be greater than 150 Mbps.

[0180] To address the said transition requirements, a minimum available bandwidth measurement function can be enabled on an SRv6 forwarding path by the method according to an embodiment of the present application. Assume that traffic congestion exists at Node D, so that the actual service forwarding bandwidth of Node D (i.e., minimum available bandwidth) is lowered to less than 50 Mbps, e.g., 43 Mbps, while the minimum available bandwidth of the remaining nodes is still 100 Mbps. When Node D receives an SRv6 packet, it encapsulates its minimum available bandwidth in an IPv6 option header and forwards the SRv6 packet to Node E. Node E determines that the minimum value of the minimum available bandwidth within the path currently consisting of A, Node B, Node D, and Node E is 43 Mbps, and can feed back the said 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 is 143 Mbps, which is less than the 150 Mbps already specified in the forwarding requirements, and furthermore, can quickly switch the candidate path to switch the service flow to CP2, which is free from congestion.

[0181] As can be seen, through the embodiments of the present application, the actual minimum available bandwidth of an SRv6 forwarding path can be measured, and when the actual minimum available bandwidth of an SRv6 forwarding path does not meet the forwarding requirements, the controller or source node can quickly recognize this and select a new forwarding path for the service flow in a timely manner.

[0182] It is necessary to explain that the above-mentioned path switching method is merely an example, and in actual implementation, path switching can be performed by combining the minimum available bandwidth of the SRv6 forwarding path and other factors, and the embodiments of the present application are not limited thereto.

[0183] Corresponding to the above method embodiment, an embodiment of the present application also provides a packet forwarding device, said device applied to a first node, and as illustrated in FIG. 7, said device:

[0184] Acquisition module (701) for acquiring a first packet - the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of a node in an SRv6 forwarding path, and the node in the SRv6 forwarding path includes a first node and all previous hop nodes of the first node -;

[0185] It includes a transmission module (702) for transmitting a first packet on an SRv6 forwarding path to cause a tail node to report the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path.

[0186] Optionally, if the first node is the source node, the acquisition module (701) specifically:

[0187] Receive the second packet,

[0188] Acquiring the first bandwidth, which is the minimum available bandwidth of the outgoing interface of the first node, and

[0189] 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 packet to be used to acquire the first packet.

[0190] Optionally, if the first node is an intermediate node, the acquisition module (701) specifically:

[0191] Receive a third packet - the third packet includes a second IPv6 option header, the second IPv6 option header includes a second bandwidth, and the second bandwidth is the minimum value of the minimum available bandwidth of the first node's entire previous hop node -;

[0192] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, the second bandwidth is maintained to acquire the first packet;

[0193] 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 and used to acquire the first packet.

[0194] Optionally, the first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a relay node, and the entire previous hop node includes an endpoint node and / or a relay node, or

[0195] 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.

[0196] 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.

[0197] Optionally, the second packet is a data packet or an active performance measurement packet.

[0198] Corresponding to the method embodiment, the embodiment of the present application also provides a packet forwarding device, said device applied to a second node, and as illustrated in FIG. 8, said device:

[0199] A receiving module (801) for receiving a first packet - the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of all previous hop nodes of the second node, and all previous hop nodes are located within an SRv6 forwarding path -;

[0200] A reporting module (802) for reporting a third bandwidth—the third bandwidth is the minimum bandwidth among the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node—is included.

[0201] Optionally, the internal layer of the first packet encapsulates a data packet; and the reporting module (802) specifically:

[0202] If the third bandwidth is the minimum value of the minimum available bandwidth of all nodes within the initially selected SRv6 forwarding path, or if the third bandwidth differs from the minimum value of the minimum available bandwidth of all nodes within the immediately prior selected SRv6 forwarding path, report the third bandwidth to the controller, or

[0203] If the third bandwidth is the minimum value of the minimum available bandwidth of all nodes in the first selected SRv6 forwarding path, or if the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes in the immediately preceding selected SRv6 forwarding path, it is used to transmit an IP packet containing the third bandwidth to the source node.

[0204] Optionally, an active performance measurement packet is encapsulated in the internal layer of the first packet; and the reporting module (802) specifically:

[0205] It is used to transmit a response packet of the active performance measurement packet to the source node, the response packet includes a TLV structure, and the TLV structure is used to carry a third bandwidth.

[0206] Optionally, the active performance measurement packet is a STAMP packet, and 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 a third bandwidth, and the STAMP TLV flag bit includes a U flag, the value of which is 1.

[0207] Optionally, the first IPv6 option header is a Hop-by-Hop option header, and the entire previous hop node includes an endpoint node and / or relay node, or

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

[0209] 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.

[0210] Corresponding to the method embodiment, the embodiment of the present application also provides a network device, said network device being a first node, and as illustrated in FIG. 9, said network device being:

[0211] Processor (901);

[0212] Transceiver (904);

[0213] The machine-readable storage medium (902) is included, and the machine-readable storage medium (902) stores machine-executable instructions executable by a processor (901), and the machine-executable instructions cause the processor (901) to perform the following steps, i.e.,

[0214] Step of acquiring the first packet - the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of nodes in the SRv6 forwarding path, and the nodes in the SRv6 forwarding path include the first node and the entire previous hop node of the first node -;

[0215] The step of transmitting a first packet on the SRv6 forwarding path to cause the tail node to report the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path is executed.

[0216] Optionally, if the first node is the source node, the machine-executable instruction also causes the processor (901) to perform the following steps, i.e.,

[0217] Step of receiving the second packet;

[0218] Step of acquiring the first bandwidth - the first bandwidth is the minimum available bandwidth of the outgoing interface of the first node -;

[0219] 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 packet to execute the step of acquiring the first packet.

[0220] Optionally, if the first node is an intermediate node, the machine-executable instruction also causes the processor (901) to perform the following steps, i.e.,

[0221] Step of receiving a third packet - the third packet includes a second IPv6 option header, the second IPv6 option header includes a second bandwidth, and the second bandwidth is the minimum value of the minimum available bandwidth of the entire previous hop node of the first node -;

[0222] If the second bandwidth is less than or equal to the minimum available bandwidth of the first node, the step of maintaining the second bandwidth to acquire the first packet;

[0223] 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 execute the step of acquiring the first packet.

[0224] Optionally, the first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a relay node, and the entire previous hop node includes an endpoint node and / or a relay node, or

[0225] 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.

[0226] 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.

[0227] Optionally, the second packet is a data packet or an active performance measurement packet.

[0228] As illustrated in FIG. 9, the network device may also include a communication bus (903). A processor (901), a machine-readable storage medium (902), and a transceiver (904) communicate with each other through the communication bus (903), and the communication bus (903) may be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The communication bus (903) may be classified into an address bus, a data bus, a control bus, etc.

[0229] The transceiver (904) may be a wireless communication module, and the transceiver (904) exchanges data with another device under the control of the processor (901).

[0230] The machine-readable storage medium (902) may include Random Access Memory (RAM) and may also include Non-Volatile Memory (NVM), for example, at least one disk memory. Additionally, the machine-readable storage medium (902) may also be at least one storage device located away from the processor.

[0231] The processor (901) may include a general-purpose processor, a central processing unit (CPU), a network processor (NP), etc.; and may also be a digital signal processing (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, an individual gate or transistor logic device, or an individual hardware component.

[0232] Corresponding to the method embodiment, the embodiment of the present application also provides a network device, said network device is a second node, and as illustrated in FIG. 10, said network device is:

[0233] Processor (1001);

[0234] Transceiver (1004);

[0235] The machine-readable storage medium (1002) is included, and the machine-readable storage medium (1002) stores machine-executable instructions executable by a processor (1001), and the machine-executable instructions cause the processor (1001) to perform the following steps, i.e.,

[0236] Step of receiving the first packet - the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of the entire previous hop node of the second node, and all previous hop nodes are located within an SRv6 forwarding path -;

[0237] Execute the step of reporting the third bandwidth - the third bandwidth is the minimum bandwidth among the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node.

[0238] Optionally, the inner layer of the first packet encapsulates a data packet; and the machine-executable instruction also causes the processor (1001) to perform the following steps, i.e.,

[0239] A step of reporting the third bandwidth to the controller if the third bandwidth is the minimum value of the minimum available bandwidth of all nodes within the initially selected SRv6 forwarding path, or if the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes within the immediately previously selected SRv6 forwarding path; or,

[0240] If the third bandwidth is the minimum value of the minimum available bandwidth of all nodes in the initially selected SRv6 forwarding path, or if the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes in the immediately previously selected SRv6 forwarding path, the step of transmitting an IP packet containing the third bandwidth to the source node is executed.

[0241] Optionally, an active performance measurement packet is encapsulated in the inner layer of the first packet; and the machine-executable instruction also causes the processor (1001) to perform the following steps, i.e.,

[0242] Execute the step of transmitting a response packet of the active performance measurement packet to the source node - the response packet includes a TLV structure, and the TLV structure is used to carry the third bandwidth.

[0243] Optionally, the active performance measurement packet is a STAMP packet, and 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 a third bandwidth, and the STAMP TLV flag bit includes a U flag, the value of which is 1.

[0244] Optionally, the first IPv6 option header is a Hop-by-Hop option header, and the entire previous hop node includes an endpoint node and / or relay node, or

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

[0246] 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.

[0247] As illustrated in FIG. 10, the network device may also include a communication bus (1003). A processor (1001), a machine-readable storage medium (1002), and a transceiver (1004) communicate with each other through the communication bus (1003), and the communication bus (1003) may be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The communication bus (1003) may be classified into an address bus, a data bus, a control bus, etc.

[0248] The transceiver (1004) may be a wireless communication module, and the transceiver (1004) exchanges data with another device under the control of the processor (1001).

[0249] The machine-readable storage medium (1002) may include Random Access Memory (RAM) and may also include Non-Volatile Memory (NVM), for example, at least one disk memory. Additionally, the machine-readable storage medium (1002) may also be at least one storage device located away from the aforementioned processor.

[0250] The processor (1001) may include a general-purpose processor, a central processing unit (CPU), a network processor (NP), etc.; and may also be a digital signal processing (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, an individual gate or transistor logic device, or an individual hardware component.

[0251] Based on the same inventive concept, according to the packet forwarding method provided by an embodiment of the present application, the embodiment of the present application also provides a machine-readable storage medium, the machine-readable storage medium stores machine-executable instructions that can be executed by a processor. The processor is facilitated by the machine-executable instructions to implement a step of any one of the packet forwarding methods.

[0252] In another embodiment provided in the present application, a computer program product including a command is also provided, and when executed on a computer, the computer is made to execute the steps of any one of the packet forwarding methods of the above embodiments.

[0253] It is necessary to clarify that, in this specification, relational terms such as "first," "second," etc., are intended merely to distinguish one entity or action from another entity or action and do not require or imply any actual relationship or order between such entities or actions. Furthermore, the terms "include," "comprising," or other variations thereof are intended for non-exclusive inclusion; thus, a process, method, article, or device comprising a series of elements may include not only those elements but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. Without further limitation, an element defined by the phrase "comprising one ..." does not exclude the existence of another identical element in a process, method, article, or device comprising such element.

[0254] The foregoing are merely preferred embodiments of the present application and are not intended to limit the present application. All modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present application are included within the scope of protection of the present application.

Claims

Claim 1 A packet forwarding method applied to a first node, comprising the step of acquiring a first packet—wherein the first packet includes a first IPv6 option header, wherein the first IPv6 option header includes a first bandwidth, wherein the first bandwidth is the minimum value of the minimum available bandwidth of a node within an SRv6 forwarding path, and wherein the node within the SRv6 forwarding path includes the first node and all previous hop nodes of the first node—; and the step of transmitting the first packet over the SRv6 forwarding path to cause a tail node to report the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path. Claim 2 A packet forwarding method according to claim 1, wherein, when the first node is a source node, the step of acquiring the first packet comprises: receiving a second packet; acquiring a first bandwidth - the first bandwidth is the minimum available bandwidth of the outgoing interface of the first node -; carrying the first bandwidth in the first IPv6 option header and encapsulating the first IPv6 option header in the outer layer of the second packet to acquire the first packet. Claim 3 A packet forwarding method according to claim 1, wherein, when the first node is an intermediate node, the step of acquiring the first packet comprises: receiving a third packet - the third packet includes a second IPv6 option header, the second IPv6 option header includes a second bandwidth, and the second bandwidth is the minimum value of the minimum available bandwidth of the entire previous hop node of the first node -; if the second bandwidth is less than or equal to the minimum available bandwidth of the first node, acquiring the first packet by maintaining the second bandwidth; and if the second bandwidth is greater than the minimum available bandwidth of the first node, acquiring the first packet by updating the second bandwidth to the minimum available bandwidth of the first node. Claim 4 A packet forwarding method according to claim 3, wherein the first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a relay node, and the entire previous hop node includes an endpoint node and / or a relay node, or the first IPv6 option header is a destination option header, the intermediate node is an endpoint node, and the entire previous hop node is an endpoint node. Claim 5 A packet forwarding method according to any one of claims 1 to 4, wherein 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. Claim 6 A packet forwarding method according to paragraph 2, characterized in that the second packet is a data packet or an active performance measurement packet. Claim 7 A packet forwarding method applied to a second node, comprising the steps of: receiving a first packet—the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of all previous hop nodes of the second node, and all previous hop nodes are located within an SRv6 forwarding path—; and reporting a third bandwidth—the third bandwidth is the minimum bandwidth among the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node. Claim 8 A packet forwarding method according to claim 7, wherein a data packet is encapsulated in the internal layer of the first packet; and the step of reporting the third bandwidth comprises: reporting the third bandwidth to a controller if the third bandwidth is the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path selected initially, or if the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path selected immediately prior; or transmitting an IP packet containing the third bandwidth to a source node if the third bandwidth is the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path selected initially, or if the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path selected immediately prior. Claim 9 A packet forwarding method according to claim 7, wherein an active performance measurement packet is encapsulated in the internal layer of the first packet; and the step of reporting the third bandwidth comprises: transmitting a response packet of the active performance measurement packet to a source node, wherein the response packet includes a TLV structure, and the TLV structure is used to carry the third bandwidth. Claim 10 A packet forwarding method according to claim 9, wherein the active performance measurement packet is a STAMP packet, 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. Claim 11 A packet forwarding method according to any one of claims 7 to 10, wherein the first IPv6 option header is a Hop-by-Hop option header and the entire previous hop node includes an endpoint node and / or a relay node, or the first IPv6 option header is a destination option header and the entire previous hop node is an endpoint node. Claim 12 A packet forwarding method according to claim 11, wherein the first IPv6 option header comprises 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. Claim 13 A packet forwarding device applied to a first node, comprising: an acquisition module for acquiring a first packet—the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of a node within an SRv6 forwarding path, and the node within the SRv6 forwarding path includes the first node and all previous hop nodes of the first node—; and a transmission module for transmitting the first packet on the SRv6 forwarding path to cause a tail node to report the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path. Claim 14 A packet forwarding device according to claim 13, wherein, when the first node is a source node, the acquisition module specifically: receives a second packet; acquires a first bandwidth which is the minimum available bandwidth of the outgoing interface of the first node, carries the first bandwidth in the first IPv6 option header, and encapsulates the first IPv6 option header in the outer layer of the second packet to be used to acquire the first packet. Claim 15 A packet forwarding device according to claim 13, wherein, when the first node is an intermediate node, the acquisition module specifically: receives a third packet—the third packet includes a second IPv6 option header, the second IPv6 option header includes a second bandwidth, the second bandwidth being the minimum value of the minimum available bandwidth of the entire previous hop node of the first node—; if the second bandwidth is less than or equal to the minimum available bandwidth of the first node, the second bandwidth is maintained to acquire the first packet; and 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 and used to acquire the first packet. Claim 16 A packet forwarding device according to claim 15, wherein the first IPv6 option header is a Hop-by-Hop option header, the intermediate node is an endpoint node or a relay node, and the entire previous hop node includes an endpoint node and / or a relay node, or the first IPv6 option header is a destination option header, the intermediate node is an endpoint node, and the entire previous hop node is an endpoint node. Claim 17 A packet forwarding device characterized in that, in any one of claims 13 to 16, the first IPv6 option header comprises 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. Claim 18 A packet forwarding device according to claim 14, characterized in that the second packet is a data packet or an active performance measurement packet. Claim 19 A packet forwarding device applied to a second node, wherein the device comprises: a receiving module for receiving a first packet, wherein the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of all previous hop nodes of the second node, and all previous hop nodes are located within an SRv6 forwarding path; and a reporting module for reporting a third bandwidth, wherein the third bandwidth is the minimum bandwidth among the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node. Claim 20 A packet forwarding device characterized in that, in claim 19, a data packet is encapsulated in the internal layer of the first packet; and the reporting module is used to, specifically: report the third bandwidth to a controller when the third bandwidth is the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path selected initially, or when the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path selected immediately prior, or transmit an IP packet containing the third bandwidth to a source node when the third bandwidth is the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path selected initially, or when the third bandwidth is different from the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path selected immediately prior. Claim 21 A packet forwarding device according to claim 19, wherein an active performance measurement packet is encapsulated in the internal layer of the first packet; and the reporting module is, specifically: used to transmit a response packet of the active performance measurement packet to a source node, wherein the response packet includes a TLV structure, and the TLV structure is used to carry the third bandwidth. Claim 22 A packet forwarding device according to claim 21, wherein the active performance measurement packet is a STAMP packet, 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. Claim 23 A packet forwarding device according to any one of claims 19 to 22, wherein the first IPv6 option header is a Hop-by-Hop option header and the entire previous hop node includes an endpoint node and / or a relay node, or the first IPv6 option header is a destination option header and the entire previous hop node is an endpoint node. Claim 24 A packet forwarding device according to claim 23, wherein the first IPv6 option header comprises 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. Claim 25 A network device applied to a first node comprises: a processor; a transceiver; and a machine-readable storage medium, wherein the machine-readable storage medium stores machine-executable instructions executable by the processor, and the machine-executable instructions cause the processor to execute the following steps: namely, the step of acquiring a first packet - wherein the first packet includes a first IPv6 option header, the first IPv6 option header includes a first bandwidth, the first bandwidth is the minimum value of the minimum available bandwidth of a node within an SRv6 forwarding path, and the node within the SRv6 forwarding path includes the first node and the entire previous hop node of the first node -; and the step of transmitting the first packet over the SRv6 forwarding path to cause a tail node to report the minimum value of the minimum available bandwidth of all nodes within the SRv6 forwarding path. Claim 26 A network device according to claim 25, wherein, when the first node is a source node, the machine-executable instruction also causes the processor to execute the following steps: receiving a second packet; acquiring a first bandwidth—wherein the first bandwidth is the minimum available bandwidth of the outgoing interface of the first node—; carrying the first bandwidth into the first IPv6 option header and encapsulating the first IPv6 option header into the outer layer of the second packet to acquire the first packet. Claim 27 A network device according to claim 25, wherein, when the first node is an intermediate node, the machine-executable instruction also causes the processor to execute the following steps: receiving a third packet—wherein the third packet includes a second IPv6 option header, wherein the second IPv6 option header includes a second bandwidth, wherein the second bandwidth is the minimum value of the minimum available bandwidth of the entire previous hop node of the first node—; if the second bandwidth is less than or equal to the minimum available bandwidth of the first node, acquiring the first packet by maintaining the second bandwidth; and if the second bandwidth is greater than the minimum available bandwidth of the first node, acquiring the first packet by updating the second bandwidth to the minimum available bandwidth of the first node. Claim 28 A 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 relay node, and the entire previous hop node includes an endpoint node and / or a relay node, or the first IPv6 option header is a destination option header, the intermediate node is an endpoint node, and the entire previous hop node is an endpoint node. Claim 29 A network device according to any one of claims 25 to 28, wherein the first IPv6 option header comprises 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. Claim 30 A network device according to claim 26, characterized in that the second packet is a data packet or an active performance measurement packet. Claim 31 A network device applied to a second node comprises: a processor; a transceiver; and a machine-readable storage medium, wherein the machine-readable storage medium stores machine-executable instructions executable by the processor, and the machine-executable instructions cause the processor to execute the following steps: receiving a first packet—wherein the first packet includes a first IPv6 option header, and the first IPv6 option header includes a first bandwidth, wherein the first bandwidth is the minimum value of the minimum available bandwidth of all previous-hop nodes of the second node, and all previous-hop nodes are located within an SRv6 forwarding path—; and reporting a third bandwidth—wherein the third bandwidth is the minimum bandwidth among the first bandwidth and the second bandwidth, and the second bandwidth is the minimum available bandwidth of the second node. Claim 32 A network device according to claim 31, wherein a data packet is encapsulated in the inner layer of the first packet; and wherein the machine-executable instruction also causes the processor to execute the following steps: reporting the third bandwidth to a controller if the third bandwidth is the minimum value of the minimum available bandwidth of the entire node within the SRv6 forwarding path selected initially, or if the third bandwidth is different from the minimum value of the minimum available bandwidth of the entire node within the SRv6 forwarding path selected immediately prior; or transmitting an IP packet containing the third bandwidth to a source node if the third bandwidth is the minimum value of the minimum available bandwidth of the entire node within the SRv6 forwarding path selected initially, or if the third bandwidth is different from the minimum value of the minimum available bandwidth of the entire node within the SRv6 forwarding path selected immediately prior. Claim 33 A network device according to claim 31, wherein an active performance measurement packet is encapsulated in the internal layer of the first packet; and wherein the machine-executable instruction also causes the processor to execute the following step, namely, the step of transmitting a response packet of the active performance measurement packet to a source node—the response packet includes a TLV structure, and the TLV structure is used to carry the third bandwidth. Claim 34 A network device according to claim 33, wherein the active performance measurement packet is a STAMP packet, 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. Claim 35 A network device according to any one of claims 31 to 34, wherein the first IPv6 option header is a Hop-by-Hop option header and the entire previous hop node includes an endpoint node and / or relay node, or the first IPv6 option header is a destination option header and the entire previous hop node is an endpoint node. Claim 36 A network device according to claim 35, wherein the first IPv6 option header comprises 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. Claim 37 A machine-readable storage medium, wherein the machine-executable instruction is stored, and when called and executed by a processor, the machine-executable instruction causes the processor to execute the method of any one of claims 1 to 12. Claim 38 A computer program product characterized in that, in the computer program product, the computer program product causes a processor to execute the method of any one of claims 1 to 12.