Srv6 packet forwarding method, device and computer readable storage medium

By encapsulating and updating the Slice_ID in the address field of the IPv6 header of the SRv6 packet, and combining it with indication information to optimize the forwarding path, the problem of unreasonable Slice_ID carrying position in the prior art is solved, achieving efficient SRv6 packet forwarding and reducing hardware costs.

CN119094494BActive Publication Date: 2025-11-18FIBERHOME TELECOMMUNICATION TECHNOLOGIES CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202411350933.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-09-26
Publication Date
2025-11-18
Estimated Expiration
2044-09-26

AI Technical Summary

Technical Problem

In existing technologies, the location of the Slice_ID in SRv6 network slice packets is unreasonable, which leads to difficulties in chip implementation, differential service conflicts, load balancing service conflicts, and traceability function conflicts. Furthermore, HBH cannot be parsed on older devices, affecting the effective utilization rate of network slice packets.

Method used

The Slice_ID is encapsulated at a specific bit in the destination address field of the IPv6 header of the SRv6 packet and updated through intermediate stations. The forwarding mode is identified by combining the first indication information and the second indication information, thereby optimizing the forwarding path of the SRv6 packet. The EM+EM two-level lookup table is used instead of the TCAM+EM two-level lookup table to reduce hardware costs.

Benefits of technology

By carrying the Slice_ID in the destination address field of the IPv6 header, the problems of high chip implementation difficulty, differential service conflict, load sharing service conflict, and traceability function conflict are solved, which improves the forwarding efficiency and effective utilization of network slice packets and reduces hardware costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119094494B_ABST
    Figure CN119094494B_ABST
Patent Text Reader

Abstract

A SRv6 packet forwarding method, device and computer readable storage medium. The method comprises: for a user packet received by a first station on a packet forwarding path, encapsulating an SRH and a Slice_ID for the user packet to obtain a SRv6 packet and forwarding to a next hop, wherein the Slice_ID is encapsulated in a specific bit of a destination address field of an IPv6 header; for a SRv6 packet received by an intermediate station on the packet forwarding path, updating the destination address field of the IPv6 header, and encapsulating the Slice_ID in the specific bit of the destination address field of the IPv6 header to obtain a new SRv6 packet and forwarding to the next hop. Through the present application, the Slice_ID is carried in the specific bit of the destination address field of the IPv6 header, solving the problems of large chip implementation difficulty, differentiated service conflict, load sharing service conflict and traceability function conflict existing in the existing scheme.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of network slicing technology, specifically to an SRv6 packet forwarding method, apparatus, and computer-readable storage medium. Background Technology

[0002] In a network that has deployed SRv6 network slicing, each independent virtual network is called a network slice instance, and each virtual network is identified by a unique network slice instance ID (also known as a Slice ID). When network slice packets are transmitted within a network slice instance, they need to carry the Slice ID.

[0003] Currently, there is a solution based on carrying the Slice_ID in the source IP. This solution modifies the device's source IP, which has a significant impact on URPF (Unicast Reverse Path Forwarding) and SBFD (Seamless Bidirectional Forwarding Detection) that require source tracing functions.

[0004] Another approach involves inserting an HBH (Hop-by-Hop Options Header) between the IPv6 header and the SRH (Segment Routing Header) to carry the Slice_ID. This approach increases the load on network slice packets, resulting in low effective utilization of network slice packet forwarding. Furthermore, HBH cannot be parsed on traditional legacy devices, causing significant challenges to engineering deployment. Adding HBH also presents new challenges to the chip's parsing depth, parsing logic, and microcode instruction space, especially when coexisting with the DOH (Destination Options Header) extension header for IOAM (Inband Operation Administration and Maintenance) functions, which significantly increases the chip's implementation difficulty.

[0005] Another approach is to use 8 bits of the 20-bit Flow_label field in the IPv6 header to carry the Slice_ID, but this would affect the load balancing effect.

[0006] Another approach is to use the TC field in the IPv6 header to carry the Slice_ID, but this would affect traditional differential service operations. Summary of the Invention

[0007] This application provides an SRv6 message forwarding method, apparatus, and computer-readable storage medium, which can solve the technical problem of unreasonable Slice_ID carrying position in the prior art.

[0008] In a first aspect, embodiments of this application provide an SRv6 packet forwarding method, the SRv6 packet forwarding method comprising:

[0009] For user packets received by the first station on the packet forwarding path, the user packet is encapsulated with a segmented routing table header SRH and a Slice_ID to obtain an SRv6 packet, and the SRv6 packet is sent to the next hop. The Slice_ID is encapsulated in a specific bit in the destination address field of the IPv6 header of the user packet.

[0010] For SRv6 packets received by intermediate stations along the packet forwarding path, the destination address field of the IPv6 header of the SRv6 packet is updated, and the Slice_ID is encapsulated in a specific bit of the destination address field of the IPv6 header to obtain a new SRv6 packet and send it to the next hop.

[0011] In conjunction with the first aspect, in one implementation, a specific bit in the destination address field of the IPv6 header is the second to last 8 bits in the destination address field of the IPv6 header.

[0012] In conjunction with the first aspect, in one implementation, the SRv6 message forwarding method further includes:

[0013] For a user packet received by the first site on the packet forwarding path, the first indication information and the second indication information are encapsulated in a specific bit of the flow tag field of the IPv6 header of the user packet. The first indication information is used to identify whether the SRv6 packet needs to be forwarded through the slice channel, and the second indication information is used to identify different forwarding modes.

[0014] In conjunction with the first aspect, in one implementation, sending the SRv6 message to the next hop includes:

[0015] If the first indication information is the first character, the SRv6 message is sent to the next hop through the forwarding interface;

[0016] If the first indication information is the second character, then check if a slice channel exists;

[0017] If a slice channel exists, the SRv6 message is sent to the next hop through the slice channel;

[0018] If no slice channel exists and the second indication information is the third character, the SRv6 message will be sent to the next hop through the forwarding interface.

[0019] In conjunction with the first aspect, in one implementation, the SRv6 message forwarding method further includes:

[0020] If no slice channel exists and the second indication information is the fourth character, then the SRv6 message is discarded.

[0021] In conjunction with the first aspect, in one implementation, the encapsulation of the segmented routing table header (SRH) for the user packet includes:

[0022] When the number of segment identifiers contained in the segmented routing header (SRH) exceeds the number that can be encapsulated in one encapsulation process, some stages in the encapsulation process are skipped starting from the second encapsulation process.

[0023] In conjunction with the first aspect, in one implementation, the SRv6 message forwarding method further includes:

[0024] For SRv6 packets received by the second-to-last station on the packet forwarding path, if the number of segment identifiers contained in the segmented routing header SRH of the SRv6 packet is greater than the number that can be stripped in the first round of stripping, some stages in the stripping process are skipped starting from the second round of stripping.

[0025] In conjunction with the first aspect, in one implementation, the SRv6 message forwarding method further includes:

[0026] For SRv6 packets received by intermediate stations along the packet forwarding path, the IPv6 header of the SRv6 packet is parsed to obtain the Locator and Function.

[0027] Using the Locator as the information to be searched, the first-level exact match table is searched to obtain the first search result. The first-level exact match table is stored in static random access memory.

[0028] Using the Function and the first search result as the information to be searched, search the second-level exact matching table to determine the forwarding interface of the SRv6 packet.

[0029] Secondly, embodiments of this application provide an SRv6 packet forwarding device, the SRv6 packet forwarding device comprising:

[0030] The first encapsulation module is used to encapsulate the user packet received by the first station on the packet forwarding path into an SRv6 packet by encapsulating the segmented routing table header SRH and Slice_ID. The Slice_ID is encapsulated in a specific bit in the destination address field of the IPv6 header of the user packet.

[0031] The sending module is used to send SRv6 messages to the next hop;

[0032] The second encapsulation module is used to update the destination address field of the IPv6 header of the SRv6 packet received by the intermediate station on the packet forwarding path, and encapsulate the Slice_ID in a specific bit in the destination address field of the IPv6 header to obtain a new SRv6 packet.

[0033] The sending module is also used to send new SRv6 messages to the next hop.

[0034] Thirdly, embodiments of this application provide a computer-readable storage medium storing an SRv6 packet forwarding program, wherein when the SRv6 packet forwarding program is executed by a processor, it implements the steps of the SRv6 packet forwarding method as described in the first aspect.

[0035] The beneficial effects of the technical solutions provided in this application include:

[0036] In this embodiment, for user packets received by the first station on the packet forwarding path, a segmented routing table header (SRH) and a Slice_ID are encapsulated in the user packet to obtain an SRv6 packet, which is then sent to the next hop. The Slice_ID is encapsulated in a specific bit within the destination address field of the IPv6 header of the user packet. For SRv6 packets received by intermediate stations on the packet forwarding path, the destination address field of the IPv6 header of the SRv6 packet is updated, and the Slice_ID is encapsulated in a specific bit within the destination address field of the IPv6 header to obtain a new SRv6 packet, which is then sent to the next hop. This embodiment, by carrying the Slice_ID in a specific bit within the destination address field of the IPv6 header, solves the problems of high chip implementation difficulty, differential service conflicts, load-sharing service conflicts, and tracing function conflicts inherent in existing solutions. Attached Figure Description

[0037] Figure 1 This is a flowchart illustrating an embodiment of the SRv6 message forwarding method of this application;

[0038] Figure 2 This is a schematic diagram of the Slice_ID encapsulation location in one embodiment;

[0039] Figure 3 A diagram illustrating the process of updating the destination address field of the IPv6 header for intermediate nodes;

[0040] Figure 4 This is a schematic diagram showing the encapsulation positions of the first indication information and the second indication information in one embodiment;

[0041] Figure 5 This is a schematic diagram of the functional modules of an embodiment of the SRv6 message forwarding device of this application. Detailed Implementation

[0042] To enable those skilled in the art to better understand the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present application, and not all embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of the present application.

[0043] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.

[0044] Firstly, embodiments of this application provide an SRv6 message forwarding method.

[0045] In one embodiment, reference is made to Figure 1 , Figure 1 This is a flowchart illustrating an embodiment of the SRv6 message forwarding method of this application. Figure 1 As shown, the SRv6 message forwarding methods include:

[0046] Step S10: For the user packet received by the first station on the packet forwarding path, encapsulate the user packet with the segmented routing table header SRH and Slice_ID to obtain the SRv6 packet, and send the SRv6 packet to the next hop. The Slice_ID is encapsulated in a specific bit in the destination address field of the IPv6 header of the user packet.

[0047] In this embodiment, the user packet includes an IPv6 header and a data payload, and may also include an ETH header. The Segmentation Routing Header (SRH) consists of basic SRH information and a SID (Segment ID) list. The specific information contained in the SID list is related to the forwarding path of the user packet.

[0048] The Slice_ID is encapsulated in a specific bit in the destination address field of the IPv6 header of the user message. This specific bit is defined according to actual needs.

[0049] Furthermore, in one embodiment, a specific bit in the destination address field of the IPv6 header is the second to last 8 bits in the destination address field of the IPv6 header.

[0050] In this embodiment, the Slice_ID is encapsulated in the second-to-last 8 bits of the destination address field in the IPv6 header of the user packet. This allows the last 8 bits of the destination address field in the IPv6 header to be reserved for the loop prevention function of VPLS BUM. (Refer to...) Figure 2 , Figure 2This is a schematic diagram of the Slice_ID encapsulation location in one embodiment.

[0051] Step S20: For the SRv6 packets received by intermediate stations on the packet forwarding path, update the destination address field of the IPv6 header of the SRv6 packets, and encapsulate the Slice_ID in a specific bit in the destination address field of the IPv6 header to obtain a new SRv6 packet and send it to the next hop.

[0052] In this embodiment, SRv6 technology inserts a Segment Routing Header (SRH) into IPv6 packets, pushes an explicit IPv6 address stack onto the SRH, and intermediate stations continuously update the destination address field and offset address stack of the IPv6 header to complete hop-by-hop forwarding. (Refer to...) Figure 3 , Figure 3 This diagram illustrates updating the destination address field of the IPv6 header for intermediate nodes. (Example) Figure 3 As shown, the user message includes an ETH header, an IPv6 header, and a data payload. The encapsulated SRv6 message includes an ETH header, an IPv6 header, SRH basic information (srh_base in the figure), and a SID list (i.e., SID LIST[0]~SID LIST[n-1] in the figure). For each intermediate node, the destination address field of the IPv6 header of the SRv6 message is updated with its corresponding SID LIST[i].

[0053] In addition, each intermediate node can obtain the Slice_ID by parsing the SRv6 message sent by the previous node, and then encapsulate the Slice_ID in a specific bit in the destination address field of the IPv6 header, such as the second to last 8 bits in the destination address field of the IPv6 header.

[0054] In this embodiment, for user packets received by the first station on the packet forwarding path, a segmented routing table header (SRH) and a Slice_ID are encapsulated in the user packet to obtain an SRv6 packet, which is then sent to the next hop. The Slice_ID is encapsulated in a specific bit within the destination address field of the IPv6 header of the user packet. For SRv6 packets received by intermediate stations on the packet forwarding path, the destination address field of the IPv6 header of the SRv6 packet is updated, and the Slice_ID is encapsulated in a specific bit within the destination address field of the IPv6 header to obtain a new SRv6 packet, which is then sent to the next hop. This embodiment, by carrying the Slice_ID in a specific bit within the destination address field of the IPv6 header, solves the problems of high chip implementation difficulty, differential service conflicts, load-sharing service conflicts, and tracing function conflicts inherent in existing solutions.

[0055] Furthermore, in one embodiment, the SRv6 message forwarding method further includes:

[0056] For a user packet received by the first site on the packet forwarding path, the first indication information and the second indication information are encapsulated in a specific bit of the flow tag field of the IPv6 header of the user packet. The first indication information is used to identify whether the SRv6 packet needs to be forwarded through the slice channel, and the second indication information is used to identify different forwarding modes.

[0057] In this embodiment, the first indication information can be stored in the most significant bit of the flow label field in the IPv6 header, and the second indication information can be stored in the second most significant bit of the flow label; alternatively, the first indication information can be stored in the second most significant bit of the flow label field in the IPv6 header, and the second indication information can be stored in the most significant bit of the flow label. (Refer to...) Figure 4 , Figure 4 This is a schematic diagram showing the encapsulation positions of the first and second indication information in one embodiment. Figure 4 As shown, SPI represents the first indication information and S represents the second indication information.

[0058] Furthermore, in one embodiment, sending the SRv6 message to the next hop includes:

[0059] If the first indication information is the first character, the SRv6 message is sent to the next hop through the forwarding interface;

[0060] If the first indication information is the second character, then check if a slice channel exists;

[0061] If a slice channel exists, the SRv6 message is sent to the next hop through the slice channel;

[0062] If no slice channel exists and the second indication information is the third character, the SRv6 message will be sent to the next hop through the forwarding interface.

[0063] In this embodiment, if the first indication information is the first character, it indicates that SRv6 packets do not need to be forwarded through the slice channel, and the SRv6 packets are sent to the next hop through the forwarding interface. The forwarding interface is determined by the SID information of the current site. If the first indication information is the second character, it indicates that SRv6 packets need to be forwarded through the slice channel. The slice channel is searched using the information in the destination address field of the IPv6 header and the forwarding interface. If the search result shows that a slice channel exists, the SRv6 packets are sent to the next hop through the found slice channel. If the search result shows that no slice channel exists and the second indication information is the third character, it indicates that the current mode is loose, and the SRv6 packets are sent to the next hop through the forwarding interface.

[0064] Furthermore, in one embodiment, the SRv6 message forwarding method further includes:

[0065] If no slice channel exists and the second indication information is the fourth character, then the SRv6 message is discarded.

[0066] In this embodiment, if there is no slice channel and the second indication information is the fourth character, it indicates that the current mode is strict, and the SRv6 message is discarded.

[0067] The first, second, third, and fourth characters are set according to actual needs. It is only necessary to define that the first and second characters are different, and that the third and fourth characters are different, and to define the meaning represented by each character.

[0068] Furthermore, in one embodiment, the encapsulation of the segmented routing table header (SRH) for the user message includes:

[0069] When the number of segment identifiers contained in the segmented routing header (SRH) exceeds the number that can be encapsulated in one encapsulation process, some stages in the encapsulation process are skipped starting from the second encapsulation process.

[0070] In this embodiment, when encapsulating a segmented routing header (SRH) for a user packet, if the packet forwarding path traverses many stations, the SRH will contain a large number of segment identifiers. However, the number of segments that can be encapsulated in one encapsulation cycle is determined by the chip's performance. If the SRH contains 10 segment identifiers, and the encapsulation cycle can only encapsulate 5 segments, then at least two encapsulation cycles are required. This increases forwarding latency and jitter, which may not meet the needs of some scenarios with high latency and jitter requirements.

[0071] Assuming a single encapsulation process requires sequentially traversing modules 1 through 50 of the chip, after the first encapsulation cycle, subsequent encapsulation cycles only traverse predefined modules, such as modules 3, 7, and 10. This skips certain stages of the encapsulation process, thereby reducing forwarding latency and jitter.

[0072] Furthermore, in one embodiment, the SRv6 message forwarding method further includes:

[0073] For SRv6 packets received by the second-to-last station on the packet forwarding path, if the number of segment identifiers contained in the segmented routing header SRH of the SRv6 packet is greater than the number that can be stripped in the first round of stripping, some stages in the stripping process are skipped starting from the second round of stripping.

[0074] In this embodiment, for SRv6 packets received by the second-to-last station on the packet forwarding path, the SRH needs to be stripped. If the packet forwarding path traverses many stations, the number of segment identifiers contained in the SRH will also be relatively large. However, the number that can be stripped in one round of stripping is determined by the chip's performance. If the SRH contains 10 segment identifiers, and the number that can be stripped in one round of stripping is 5, then at least two rounds of stripping are required. This increases forwarding latency and jitter, which may not meet the requirements of some scenarios with high latency and jitter requirements.

[0075] Assuming a stripping process requires sequentially traversing modules 1 through 50 in the chip, after the first stripping cycle, subsequent stripping cycles only traverse preset modules, such as modules 3, 7, and 10. This skips certain stages of the stripping process, thereby reducing forwarding latency and jitter.

[0076] Furthermore, in one embodiment, the SRv6 message forwarding method further includes:

[0077] For SRv6 packets received by intermediate stations along the packet forwarding path, the IPv6 header of the SRv6 packet is parsed to obtain the Locator and Function. The first-level exact match table is searched using the Locator as the information to be searched to obtain the first search result. The first-level exact match table is stored in static random access memory. The second-level exact match table is searched using the Function and the first search result as the information to be searched to determine the forwarding interface of the SRv6 packet.

[0078] In this embodiment, the forwarding interface is determined by a two-level lookup table method of EM+EM instead of the conventional two-level lookup table method of TCAM+EM. The hardware for the EM table (exact match table) is static random access memory (SRAM). SRAM is less expensive than the hardware carrying the TCAM, thus reducing hardware costs in this embodiment.

[0079] Secondly, embodiments of this application also provide an SRv6 message forwarding device.

[0080] In one embodiment, reference is made to Figure 5 , Figure 5 This is a functional module diagram of an embodiment of the SRv6 message forwarding device of this application. Figure 5 As shown, the SRv6 message forwarding device includes:

[0081] The first encapsulation module is used to encapsulate the user packet received by the first station on the packet forwarding path into an SRv6 packet by encapsulating the segmented routing table header SRH and Slice_ID. The Slice_ID is encapsulated in a specific bit in the destination address field of the IPv6 header of the user packet.

[0082] The sending module is used to send SRv6 messages to the next hop;

[0083] The second encapsulation module is used to update the destination address field of the IPv6 header of the SRv6 packet received by the intermediate station on the packet forwarding path, and encapsulate the Slice_ID in a specific bit in the destination address field of the IPv6 header to obtain a new SRv6 packet.

[0084] The sending module is also used to send new SRv6 messages to the next hop.

[0085] Furthermore, in one embodiment, a specific bit in the destination address field of the IPv6 header is the second to last 8 bits in the destination address field of the IPv6 header.

[0086] Furthermore, in one embodiment, the SRv6 message forwarding device further includes a third encapsulation module, used for:

[0087] For a user packet received by the first site on the packet forwarding path, the first indication information and the second indication information are encapsulated in a specific bit of the flow tag field of the IPv6 header of the user packet. The first indication information is used to identify whether the SRv6 packet needs to be forwarded through the slice channel, and the second indication information is used to identify different forwarding modes.

[0088] Furthermore, in one embodiment, the sending module is used to:

[0089] If the first indication information is the first character, the SRv6 message is sent to the next hop through the forwarding interface;

[0090] If the first indication information is the second character, then check if a slice channel exists;

[0091] If a slice channel exists, the SRv6 message is sent to the next hop through the slice channel;

[0092] If no slice channel exists and the second indication information is the third character, the SRv6 message will be sent to the next hop through the forwarding interface.

[0093] Furthermore, in one embodiment, the sending module is used to:

[0094] If no slice channel exists and the second indication information is the fourth character, then the SRv6 message is discarded.

[0095] Furthermore, in one embodiment, the first encapsulation module is used for:

[0096] When the number of segment identifiers contained in the segmented routing header (SRH) exceeds the number that can be encapsulated in one encapsulation process, some stages in the encapsulation process are skipped starting from the second encapsulation process.

[0097] Furthermore, in one embodiment, the SRv6 message forwarding device further includes a stripping module, used for:

[0098] For SRv6 packets received by the second-to-last station on the packet forwarding path, if the number of segment identifiers contained in the segmented routing header SRH of the SRv6 packet is greater than the number that can be stripped in the first round of stripping, some stages in the stripping process are skipped starting from the second round of stripping.

[0099] Furthermore, in one embodiment, the SRv6 message forwarding device further includes a lookup module, used for:

[0100] For SRv6 packets received by intermediate stations along the packet forwarding path, the IPv6 header of the SRv6 packet is parsed to obtain the Locator and Function.

[0101] Using the Locator as the information to be searched, the first-level exact match table is searched to obtain the first search result. The first-level exact match table is stored in static random access memory.

[0102] Using the Function and the first search result as the information to be searched, search the second-level exact matching table to determine the forwarding interface of the SRv6 packet.

[0103] The functions of each module in the SRv6 message forwarding device correspond to the steps in the SRv6 message forwarding method embodiment, and their functions and implementation processes will not be described in detail here.

[0104] Thirdly, embodiments of this application also provide a computer-readable storage medium.

[0105] The present application provides a computer-readable storage medium storing an SRv6 message forwarding program, wherein when the SRv6 message forwarding program is executed by a processor, it implements the steps of the SRv6 message forwarding method described above.

[0106] The method implemented when the SRv6 message forwarding program is executed can be referred to in the various embodiments of the SRv6 message forwarding method of this application, and will not be repeated here.

[0107] It should be noted that the sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0108] The terms "comprising" and "having," and any variations thereof, in the specification, claims, and accompanying drawings of this application are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the listed steps or units, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to such process, method, product, or apparatus. The terms "first," "second," and "third," etc., are used to distinguish different objects, etc., and do not indicate a sequence, nor do they limit "first," "second," and "third" to different types.

[0109] In the description of the embodiments of this application, terms such as "exemplary," "for example," or "for instance" are used to indicate examples, illustrations, or explanations. Any embodiment or design described as "exemplary," "for example," or "for instance" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or designs. Specifically, the use of terms such as "exemplary," "for example," or "for instance" is intended to present the relevant concepts in a concrete manner.

[0110] In the description of the embodiments of this application, unless otherwise stated, " / " means "or". For example, A / B can mean A or B. The "and / or" in the text is merely a description of the relationship between related objects, indicating that there can be three relationships. For example, A and / or B can mean: A exists alone, A and B exist simultaneously, and B exists alone. In addition, in the description of the embodiments of this application, "multiple" means two or more.

[0111] In some processes described in the embodiments of this application, multiple operations or steps are included in a specific order. However, it should be understood that these operations or steps may not be executed in the order they appear in the embodiments of this application, or they may be executed in parallel. The sequence number of the operation is only used to distinguish different operations, and the sequence number itself does not represent any execution order. In addition, these processes may include more or fewer operations, and these operations or steps may be executed sequentially or in parallel, and these operations or steps may be combined.

[0112] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) as described above, and includes several instructions to cause a terminal device to execute the methods described in the various embodiments of this application.

[0113] The above are merely preferred embodiments of this application and do not limit the patent scope of this application. Any equivalent structural or procedural transformations made using the content of this application's specification and drawings, or direct or indirect applications in other related technical fields, are similarly included within the patent protection scope of this application.

Claims

1. An SRv6 message forwarding method, characterized in that, The SRv6 message forwarding method includes: For user packets received by the first station on the packet forwarding path, the user packet is encapsulated with a segmented routing table header SRH and a Slice_ID to obtain an SRv6 packet, and the SRv6 packet is sent to the next hop. The Slice_ID is encapsulated in a specific bit in the destination address field of the IPv6 header of the user packet. For SRv6 packets received by intermediate stations on the packet forwarding path, the destination address field of the IPv6 header of the SRv6 packet is updated, and the Slice_ID is encapsulated in a specific bit of the destination address field of the IPv6 header to obtain a new SRv6 packet and send it to the next hop; The process of encapsulating user packets with a segmented routing table header (SRH) includes: When the number of segment identifiers contained in the segmented routing header (SRH) exceeds the number that can be encapsulated in one encapsulation process, some stages in the encapsulation process are skipped starting from the second encapsulation process.

2. The SRv6 message forwarding method as described in claim 1, characterized in that, The specific bit in the destination address field of the IPv6 header is the second to last 8 bits in the destination address field of the IPv6 header.

3. The SRv6 message forwarding method as described in claim 1, characterized in that, The SRv6 message forwarding method further includes: For a user packet received by the first site on the packet forwarding path, the first indication information and the second indication information are encapsulated in a specific bit of the flow tag field of the IPv6 header of the user packet. The first indication information is used to identify whether the SRv6 packet needs to be forwarded through the slice channel, and the second indication information is used to identify different forwarding modes.

4. The SRv6 message forwarding method as described in claim 3, characterized in that, The step of sending the SRv6 message to the next hop includes: If the first indication information is the first character, the SRv6 message is sent to the next hop through the forwarding interface; If the first indication information is the second character, then check if a slice channel exists; If a slice channel exists, the SRv6 message is sent to the next hop through the slice channel; If no slice channel exists and the second indication information is the third character, the SRv6 message will be sent to the next hop through the forwarding interface.

5. The SRv6 message forwarding method as described in claim 4, characterized in that, The SRv6 message forwarding method further includes: If no slice channel exists and the second indication information is the fourth character, then the SRv6 message is discarded.

6. The SRv6 message forwarding method as described in claim 1, characterized in that, The SRv6 message forwarding method further includes: For SRv6 packets received by the second-to-last station on the packet forwarding path, if the number of segment identifiers contained in the segmented routing header SRH of the SRv6 packet is greater than the number that can be stripped in the first round of stripping, some stages in the stripping process are skipped starting from the second round of stripping.

7. The SRv6 message forwarding method as described in claim 1, characterized in that, The SRv6 message forwarding method further includes: For SRv6 packets received by intermediate stations along the packet forwarding path, the IPv6 header of the SRv6 packet is parsed to obtain the Locator and Function. Using the Locator as the information to be searched, the first-level exact match table is searched to obtain the first search result. The first-level exact match table is stored in static random access memory. Using the Function and the first search result as the information to be searched, the second-level exact matching table is searched to determine the forwarding interface of the SRv6 packet.

8. An SRv6 message forwarding device, characterized in that, The SRv6 message forwarding device includes: The first encapsulation module is used to encapsulate the user packet received by the first station on the packet forwarding path into a segmented routing table header SRH and a Slice_ID to obtain an SRv6 packet, and then send the SRv6 packet to the next hop. The Slice_ID is encapsulated in a specific bit in the destination address field of the IPv6 header of the user packet. The second encapsulation module is used to update the destination address field of the IPv6 header of the SRv6 packet received by the intermediate station on the packet forwarding path, and encapsulate the Slice_ID in a specific bit in the destination address field of the IPv6 header to obtain a new SRv6 packet and send it to the next hop. The first encapsulation module is specifically used for: When the number of segment identifiers contained in the segmented routing header (SRH) exceeds the number that can be encapsulated in one encapsulation process, some stages in the encapsulation process are skipped starting from the second encapsulation process.

9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores an SRv6 packet forwarding program, wherein when the SRv6 packet forwarding program is executed by a processor, it implements the steps of the SRv6 packet forwarding method as described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Data message forwarding method and device and routing equipment

    CN115567434A