Data package processing method and device
By acquiring and updating the location information of SIDs in the data packets and reducing the length of the SRv6 expansion header, the problem of excessive header of existing SRv6 packets is solved, network utilization and device performance are improved, and more flexible and efficient network deployment and upgrades are supported.
Patent Information
- Application Number
- JP2022564475
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-04-24
- Filing Date
- 2021-04-23
- Publication Date
- 2025-03-28
- Estimated Expiration
- 2041-04-23
AI Technical Summary
The high amount of existing SRv6 data packets leads to a reduced network utilization, making it difficult to support deep load balancing, in-band networks and service headers (NSHs), and the interconnection with SR-MPLS networks brings the problem of interface imbalance, increasing deployment and maintenance costs.
By obtaining the location information of the first and second Segment Identifier (SID) in the data packet, copying and updating the SID to the destination address of the data packet to reduce the length of the SRv6 expansion header, it supports the use of standard SIDs and compressed SIDs to achieve packet compression and effectively reduce overhead.
It effectively reduces the overhead of SRv6 data packets, improves the bandwidth utilization of the network, reduces the complexity and cost of network equipment, supports smoother upgrades and evolution, and promotes the rapid deployment and expansion of SRv6 technology in operator networks.
Smart Images

Figure 0007653451000004 
Figure 0007653451000005 
Figure 0007653451000006
Abstract
Description
[Technical field]
[0001] The present disclosure relates to the field of communications technology, and in particular to a data package processing method and device.
[0002] (CROSS-REFERENCE TO RELATED APPLICATIONS) This application is filed based on the Chinese patent application bearing application number 202010334603.0, filed with the China Patent Office on April 24, 2020, and claims priority to the Chinese patent application, the entire contents of which are incorporated herein by reference. [Background technology]
[0003] In carrier networks, there is a high requirement for the number of segment routing (SR) label layers. Take the bearer network in the fifth generation mobile communication technology (5G: 5th Generation) as an example. With the centralized deployment of the 5G core network, the traffic of the base station needs to go through the metropolitan area network and the Internet Protocol (IP: Internet Protocol) backbone network. In a typical scenario, in the metropolitan area network, there are 8-10 nodes in the access ring, 4-8 nodes in the convergence ring, and 4-8 nodes in the core ring, and in the IP backbone network, the traffic needs to go through multiple router nodes. At the same time, due to the requirements of network slicing, high reliability service-level agreement (SLA), and manageability and controllability, in carrier networks, the path needs to be explicitly specified, and the end-to-end SR tunnel will be more than 10 hops. Therefore, most carriers that have deployed Multi-Protocol Label Switching (MPLS)-SR currently require support for eight or more layers of Segment Identifier (SID) labels.
[0004] Currently, SRv6 is an extended SR solution based on Internet Protocol Version 6 (IPv6). The SRv6 solution realizes forwarding based on the Segment Routing Header (SRH), and its SID length is 128 bits. Eight-layer SIDs generate 128 bytes of overhead in the data package, and for an average application payload of 256 bytes, the SRv6 overhead is more than one-third, and the bandwidth utilization falls to less than 67%. In the same scenario, the SR-MPLS overhead is only 32 bytes, and the bandwidth utilization is still 89%. A comparative analysis of the bearing efficiency of SRv6 and SR-MPLS when the number of SIDs is 1 to 10 is shown in Figure 1 (a simple comparison of only the overhead of SRH and SR-MPLS SID). Summary of the Invention [Problem to be solved by the invention]
[0005] On the one hand, the increased overhead causes a decrease in network utilization, and on the other hand, it brings more challenges to support deep load balancing of deep data packages, in-band telemetry, and Network Service Header (NSH).
[0006] In addition, the deployment of SRv6 will inevitably coexist with SR-MPLS networks. Differences in network utilization may cause interface imbalance issues at the network edge, which will result in wasted investment. When an SR-MPLS network interconnects with an SRv6 network domain, considering a 100G link, 256-byte data package, and eight-layer SID, due to the large difference in link utilization, the SSRv6 domain will require two 100 Gigabit Ethernet (GE) links to match one 100GE in the R-MPLS domain.
[0007] In carrier applications, SRv6 requires the insertion of more than 128 Byte fields into data packages, which corresponds to a depth of 32 MPLS-SR labels, exceeding the capabilities of deployed network chips and significantly degrading network performance and introducing higher latency and jitter when using loopback solutions inside the chip. Redesigned network chips require further expansion of internal processing bus bandwidth to support SRv6, which is a major driver of chip cost and power consumption.
[0008] SRv6 requires the network chip to completely read the full SRH at the intermediate node, and then extract and forward the segment to be processed according to the position indicated by the pointer.Compared with MPLS-SR, which only reads the outermost layer label, the implementation complexity further increases the processing delay of the network chip.
[0009] Low power consumption and low latency will be key drivers of carriers' 5G solutions, and the increased power consumption, cost and latency brought to network chips by the complexity of SRv6 will pose challenges to its implementation and application.
[0010] Based on the above analysis, the overhead of the existing SRv6 data package is relatively large, the complexity of the network chip increases, and smooth upgrades are difficult. As a result, SRv6 cannot be rapidly deployed in carrier networks, and further evolution based on SRv6 technology is needed.
[0011] An object of the present disclosure is to provide a data package processing method and device for solving the problem of the large overhead of existing SRv6 data packages.
[0012] According to a first aspect, an embodiment of the present disclosure provides a data package processing method, the data package processing method including: obtaining first information and second information of a first segment identifier (SID), where the first information indicates a position of a container in which the first SID is located in a SID list of a data package, and the second information indicates a position of the first SID in the container; obtaining a position of the first SID in a SID list based on the first information and the second information; copying the first SID to a destination address of the data package, and sending the data package.
[0013] In some example embodiments of the present disclosure, obtaining first and second information for the first SID includes obtaining third and fourth information for a second SID, where the third information indicates a location of a container in which the second SID is located in a SID list of the data package and the fourth information indicates a location of the second SID in the container, and obtaining the first and second information for the first SID based on the third and fourth information for the second SID.
[0014] In some example embodiments of the present disclosure, obtaining the third information and the fourth information of the second SID includes obtaining the third information of the second SID from a segment routing header (SRH) of the data package, and obtaining an index of the second SID from a destination address of the data package, wherein the index of the second SID includes the fourth information.
[0015] In some example embodiments of the present disclosure, obtaining the first information and the second information of the first SID based on the third information and the fourth information of the second SID includes determining whether the first SID and the second SID are in the same container based on the fourth information of the second SID or attribute information of the second SID, and if the first SID and the second SID are in the same container, the first information of the first SID and the third information of the second SID are the same and obtaining the second information of the first SID based on the fourth information of the second SID, or if the first SID and the second SID are not in the same container, obtaining the first information of the first SID based on the third information of the second SID and determining the second information of the first SID based on a SID type of the first SID.
[0016] In some example embodiments of the present disclosure, the SID type of the first SID is indicated by attribute information of the second SID.
[0017] In some example embodiments of the present disclosure, the data package processing method further includes updating first information of the first SID to an SRH of the data package, and updating second information of the first SID to a destination address of the data package as an index of the first SID.
[0018] In some example embodiments of the present disclosure, copying the first SID to a destination address of a data package and sending the data package includes copying the first SID to a destination address of a data package, combining the first SID with a common prefix or address block of the destination addresses to obtain a new destination address, and forwarding the data package to a next node based on the new destination address, or copying the first SID and the second information to a destination address of a data package, combining the first SID and the second information with a common prefix or address block of the destination addresses to obtain a new destination address, and forwarding the data package to a next node based on the new destination address, or copying the first SID and the second information to a destination address of a data package and forwarding the data package to a next node.
[0019] In some example embodiments of the present disclosure, obtaining the first information and the second information of the first SID includes obtaining third information, fourth information, and fifth information of a second SID, where the third information indicates a container location where the second SID is located in a SID list of the data package, the fourth information indicates a location of the second SID in the container, and the fifth information indicates a SID type of the second SID and / or indicates whether to compress the second SID, and obtaining the first information and the second information of the first SID based on the third information, fourth information, and fifth information of the second SID, where the second SID is the SID immediately before the first SID in the SID list.
[0020] In some example embodiments of the present disclosure, obtaining the third information, fourth information, and fifth information of the second SID includes obtaining the third information of the second SID from an SRH of the data package, and obtaining an index of the second SID from a destination address of the data package, wherein the index of the second SID includes the fourth information and the fifth information.
[0021] In some example embodiments of the present disclosure, obtaining the first information and the second information of the first SID based on the third information, fourth information, and fifth information of the second SID includes determining whether the first SID and the second SID are in the same container based on an SID type of the second SID and an SID type of the first SID, and if the first SID and the second SID are in the same container, the first information of the first SID and the third information of the second SID are the same and obtaining the second information of the first SID based on the fourth information of the second SID, or if the first SID and the second SID are not in the same container, obtaining the first information of the first SID based on the third information of the second SID and determining the second information of the first SID based on the SID type of the first SID.
[0022] In some example embodiments of the present disclosure, the container is used to store one standard SID or multiple compressed SIDs, where the compressed SID includes a node identifier and a function value of the node.
[0023] According to a second aspect, an embodiment of the present disclosure further provides a node, the node comprising: an acquisition module configured to acquire first and second information of a first SID, the first information indicating a location of a container in a SID list of a data package in which the first SID is located, and the second information indicating a location of the first SID in the container; a processing module configured to derive a position of the first SID in a SID list based on the first information and the second information; and a transmitting module configured to copy the first SID to a destination address of a data package and transmit the data package.
[0024] According to a third aspect, an embodiment of the present disclosure further provides a node, the node comprising: a transceiver; a processor; and a memory for storing a computer program executable by the processor; the transceiver is configured to transmit and receive data under control of the processor; The processor is configured, upon reading the computer program in the memory, to execute the steps of the data package processing method according to the embodiment of the above first aspect of the present disclosure.
[0025] According to a fourth aspect, an embodiment of the present disclosure further provides a computer readable storage medium having a computer program stored therein, the computer program, when executed, causing a processor to perform steps of the data package processing method described in the first aspect of the embodiment of the present disclosure.
[0026] In the embodiment of the present disclosure, the SID list includes at least a compressed SID, and when the destination address of the data package is updated, the compressed SID and the common prefix in the current destination address are spliced to form a new SID, and the table lookup and forwarding are continued, thereby realizing compression of the data package and effectively reducing the header overhead of the data package. Furthermore, the standard SID and the compressed SID can be mixed and programmed into the SID list to support hybrid programming of compressed nodes and normal nodes, and realize stock evolution and smooth upgrade. [Brief description of the drawings]
[0027] [Figure 1] Schematic diagram showing a comparative analysis of the bearing efficiency of SR with different numbers of SIDs when the payload length is 256 bytes (B). [Diagram 2] FIG. 1 is a schematic diagram of a standard SRv6 extension header encapsulation format. [Diagram 3]4 is an exemplary flowchart of a data package processing method according to an embodiment of the present disclosure. [Figure 4] FIG. 1 is a schematic diagram of a standard network programmable SRv6 SID format. [Diagram 5] FIG. 1 is a schematic diagram of a representative network programmable SRv6 Locator. [Figure 6] FIG. 1 is a schematic diagram of a compressible SRv6 SID format according to an embodiment of the present disclosure. [Figure 7] FIG. 1 is a schematic diagram of a compressed 32-bit SID Container format according to an embodiment of the present disclosure. [Figure 8] FIG. 13 is a schematic diagram of a hybrid programming format of 128-bit SRv6 SID and 32-bit X-SID in X-SRH in accordance with an embodiment of the present disclosure. [Figure 9] FIG. 13 is a schematic diagram illustrating the encoding of a 128 bit SRv6 SID and a 32 bit X-SID when hybridly programmed into an X-SRH according to an embodiment of the present disclosure. [Figure 10] FIG. 1 is a schematic diagram of an XI according to an embodiment of the present disclosure. [Figure 11] FIG. 13 is a schematic diagram illustrating updating an X-SID according to an embodiment of the present disclosure. [Figure 12] FIG. 2 is a schematic diagram illustrating transferring data packages in a hybrid programming scenario, according to an embodiment of the present disclosure. [Figure 13] FIG. 2 is a schematic diagram illustrating the transfer of data packages in a simple compression scenario according to an embodiment of the present disclosure. [Figure 14] FIG. 2 is a first schematic diagram of a node according to an embodiment of the present disclosure. [Figure 15] FIG. 2 is a second schematic diagram of a node according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0028] Various other advantages and benefits will become apparent to those skilled in the art upon reading the following detailed description of the exemplary embodiments. The drawings are intended only for illustrative purposes of the exemplary embodiments and are not to be considered as limiting the present disclosure. Moreover, like reference numerals throughout the drawings represent like elements.
[0029] SR is a source routing technology that is based on the concept of Software Defined Network (SDN) to configure a path-oriented connected network architecture, support the multi-level programmable requirements of future networks, and meet the connection requirements under the application scenarios of 5G super-connection and slicing. SR-MPLS is an SR solution formed based on the current mainstream MPLS forwarding plane.
[0030] SRv6 is an extended SR solution based on IPv6. IPv6 technology is the key technology of the new generation of networks. SRv6 based on IPv6 takes into account the future evolution trend of networks, and the research on the mechanism of SRv6 technology is a hotspot in the industry.
[0031] The standard SRv6 128-bit SID uses an IPv6 address format SID, and compared with an MPLS label format SID with routable attributes, it simplifies the creation of inter-area paths and simplifies the establishment of end-to-end paths in IPv6 networks. At the same time, SRv6 SID supports programmable capabilities and can flexibly process network and service functions, and can flexibly meet the requirements of various services and network functions in terms of cooperative support of centralized and distributed control planes, and can adapt to the needs of network and service development.
[0032] SR guides data packages through the network by encapsulating a series of instructions through a header node, and in the SRv6 architecture, one instruction is one 128-bit IPv6 address, and referring to Figure 2, Figure 2 shows the encapsulation format of a standard SRv6 extension header, where the IPv6 header includes a Version field, a Traffic Class field, a Flow Label field, a Payload Length field, a Next Header field, a Hop Limit field, a Source Address field, and a Destination Address field. The SRH extension header includes a Next Header field, an Hdr Ext len field (indicating the length of the SRH header), a Routing Type field, a Segment left field (indicating the number of intermediate nodes to be visited before reaching the destination node), a Last Entry field (indicating that the segment list contains the index of the last element of the segment list), a Flags field (indicating some identifier of the data package), a Tag field (used to identify data packages of the same group), a Segment list field (containing a 128-bit IPv6 address), an Optional TLV object field (which is variable), and a Payload field.
[0033] As can be seen from the encapsulation of the SRv6 extension header, the encapsulation length of the SRv6 extension header is 40 Bytes (IPv6 header) + 8 Bytes (SRH fixed header) + 16 × N Bytes (Segment List). Therefore, as the number of SIDs specified in SRv6 increases, the additional overhead caused by the encapsulation of the SRv6 extension header increases. To solve this problem, it is necessary to realize the function to shorten the SRv6 extension header.
[0034] Although standard SRv6 has many advantages as mentioned above, its disadvantages are also obvious. At present, the actual deployment of SRv6 technology in networks faces two challenges. First, the overhead of SRv6 data packages is large, and the bandwidth utilization rate of network links is low. For a packet length of 256 bytes and SID with 8 layers, the bandwidth utilization rate is only about 60%. Second, the requirements for SRv6 data package processing on chips are high, and existing network equipment is not good at supporting the duplication and manipulation of deep SRH headers. The 128-bit SRH header processing reduces the processing efficiency of existing chips.
[0035] Regarding the problems existing in the standard SRv6 technology, the inventors have optimized the SRv6 SID by compressing and optimizing the standard SRv6 SRH, using a more concise and shorter X-SID (e.g., a typical 32-bit SID identifier), and by indicating the standard 128-bit SID with a 32-bit X-SID and replacing the encapsulation in the SRH header, the overhead of the encapsulation of the standard SRv6 SRH can be optimized, and at the same time, the performance of SRv6 can be greatly optimized while supporting SRv6 functions, and the large-scale deployment of SRv6 technology can be supported.
[0036] Hereinafter, the technical solutions in the embodiments of the present disclosure will be described clearly and completely with reference to the drawings in the embodiments of the present disclosure, but it is obvious that the described embodiments are only a part of the embodiments of the present disclosure, and are not all of the embodiments. Based on the embodiments of the present disclosure, all other embodiments obtained by those skilled in the art without creative efforts are included in the protection scope of the embodiments of the present disclosure.
[0037] The term "comprising" in the specification and claims of the embodiments of the present disclosure, and any variations thereof, are intended to cover non-exclusive inclusion, for example, a process, method, system, product, or device that includes a series of steps or units is not limited to those steps or units explicitly recited, but may include other steps or units not explicitly recited, or other steps or units inherent in these processes, methods, products, or devices. Furthermore, the term "and / or" in the specification and claims represents at least one of the connected objects, for example, A and / or B represents three cases: only A is included, only B is included, and both A and B are present.
[0038] In the embodiments of the present disclosure, the term "exemplary" or "for example" denotes an example, illustration, or explanation. Any embodiment or design solution described in the embodiments of the present disclosure as "exemplary" or "for example" should not be construed as preferred or superior over other embodiments or design solutions. Rather, terms such as "exemplary" or "for example" are intended to present the associated concept in a particular manner.
[0039] The techniques described herein are not limited to 5G systems, subsequent evolution communication systems, and Long Term Evolution (LTE) / LTE-Advanced (LTE-A) systems, such as Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Orthogonal Frequency Division Multiple Access (OFDMA), Single-carrier Frequency-Division Multiple Access (SC-FDMA), and other wireless communication systems.
[0040] The terms "system" and "network" are always used interchangeably herein. A CDMA system may implement radio technologies such as CDMA2000, Universal Terrestrial Radio Access (UTRA), etc. UTRA includes Wideband CDMA (WCDMA, Wideband Code Division Multiple Access) and other CDMA variants. A TDMA system may implement radio technologies such as Global System for Mobile Communication (GSM). An OFDMA system may implement radio technologies such as Ultra Mobile Broadband (UMB), Evolution-UTRA (E-UTRA), IEEE 11 (Wi-Fi), IEEE 802.16 (WiMAX), IEEE 802.20, Flash-OFDM, etc. UTRA and E-UTRA are parts of the Universal Mobile Telecommunications System (UMTS). LTE and higher levels of LTE (e.g., LTE-A) are new UMTS releases that use E-UTRA. UTRA, E-UTRA, UMTS, LTE, LTE-A and GSM are described in documents from an organization named "3rd Generation Partnership Project (3GPP®)". CDMA2000 and UMB are described in documents from an organization named "3rd Generation Partnership Project 2 (3GPP® 2)". The techniques described herein may be applied to the systems and radio technologies mentioned above as well as other systems and radio technologies.
[0041] Referring to FIG. 3, an embodiment of the present disclosure provides a data package processing method, where an execution subject of the data package processing method may be a node (e.g., an SRv6 node), and the data package processing method includes the following steps:
[0042] In step 301, first information and second information of a first SID are obtained, the first information indicating a location of a container in which the first SID is located in a SID list of a data package, and the second information indicating a location of the first SID in the container.
[0043] In some exemplary embodiments, the first information may be Segment Left (SL) information that identifies the number of remaining Segments, and the second information may be Index information, which is also called SID Index information, and the embodiments of the present disclosure are not particularly limited thereto.
[0044] A container (also called a SID Container) may include one or more first SIDs, for example, the container may be 128 bits and the container may include one standard SID (128-bit SID) or multiple compressed SIDs, i.e., the above first SID may be a standard SID or a compressed SID, and the compressed SID may be a 32-bit compressed SID or a 16-bit compressed SID, and this embodiment is not limited thereto.
[0045] Taking a 32-bit compressed SID as an example, one 128-bit container may contain three 32-bit compressed SIDs and one padding to complete the 128 bits, or may contain two 32-bit compressed SIDs and two padding to complete the 128 bits, or may contain one 32-bit compressed SID and three padding to complete the 128 bits, or may contain four 32-bit compressed SIDs. It can be understood that the first SID above does not include padding to complete the 128 bits.
[0046] For example, if a 128-bit container includes three 32-bit compressed SIDs and one padding to complete the 128 bits, from left to right it is padding, 32-bit compressed SID, 32-bit compressed SID, 32-bit compressed SID, and 32-bit compressed SID, and the second information for each can be 0, 1, 2, or 3.
[0047] For example, a 28-bit container includes a 128-bit standard SID. There is only one standard SID in the container, and the second information of the standard SID can be null or a predetermined value.
[0048] For example, if a SID list includes five containers, the positions of the containers in the SID list are, from bottom to top, SL=0, SL=1, SL=2, SL=3, and SL=4. It can be understood that in the embodiments of the present disclosure, there are no particular limitations on the expression format of "the position of the container in the SID list."
[0049] In step 302, a position of the first SID in a SID list is obtained based on the first information and the second information.
[0050] By way of example, if the first SID is a compressed SID, one corresponding compressed SID can be located and obtained in the SID list based on the SL and Index of the compressed SID; in this case, if the first SID is a 128-bit SID, the second information may be empty, and one corresponding 128-bit SID can be located and obtained in the SID list based on the SL of the first SID.
[0051] In step 303, the first SID is copied (or updated) to the destination address of the data package, and the data package is sent.
[0052] In method 1, a first SID is duplicated to a destination address of a data package, the first SID is combined with a common prefix or address block of the destination address to obtain a new destination address, and the data package is forwarded to a next node based on the new destination address.
[0053] For example, the first SID may be a compressed SID, and a corresponding compressed SID can be located in the SID list based on the SL and Index of the compressed SID, the compressed SID can be copied to the destination address of the data package, and combined with a common prefix or address block to obtain a new destination address, and the data package can be forwarded to the next node based on the new destination address.
[0054] In method 2, the first SID and the second information are copied to a destination address of a data package, the first SID and the second information are combined with a common prefix or address block of the destination address to obtain a new destination address, and the data package is forwarded to a next node based on the new destination address.
[0055] For example, the first SID may be a compressed SID, and a corresponding compressed SID can be located in the SID list based on the SL and Index of the compressed SID, the compressed SID and Index can be copied to the destination address of the data package, and combined with a common prefix or address block to obtain a new destination address, and the data package can be forwarded to the next node based on the new destination address.
[0056] In the third method, the first SID and the second information are copied to the destination address of the data package, and the data package is forwarded to the next node. For example, the first SID is a 128-bit SID, and a corresponding 128-bit SID can be located in a SID list according to the SL and index of the 128-bit SID, and the 128-bit SID can be copied to the destination address of the data package, and the data package can be forwarded to the next node.
[0057] In some example embodiments of the present disclosure, step 301 may include the following steps.
[0058] In step 3011, third information and fourth information of a second SID are obtained, the third information indicating the position of a container in which the second SID is located in the SID list of the data package, and the fourth information indicating the position of the second SID in the container.
[0059] In some exemplary embodiments, the third information may be segment left (SL) information that identifies the number of remaining Segments, and the fourth information may be index information, although the embodiments of the present disclosure are not particularly limited thereto.
[0060] In step 3012, first and second information of the first SID are obtained based on third and fourth information of the second SID.
[0061] In some example embodiments, the second SID is the SID immediately preceding the first SID in the SID list, or the second SID is arranged before the first SID in the SID list and may include one or more Padding (e.g., represented by "0") between the second SID and the first SID, e.g., the order in the SID list is second SID, Padding, first SID.
[0062] The above "the second SID is the SID immediately preceding the first SID" can be understood as the first SID being the next SID of the second SID, that is, the node matching the first SID is the next node of the node matching the second SID, for example, the node matching the first SID is N3, and the node matching the second SID is N2.
[0063] In some demonstrative embodiments, before step 3011, it can be determined whether the next SID of the second SID is padding, and if the next SID of the second SID is not padding, step 3011 is performed, and if the next SID of the second SID is padding, the first SID is a single 128-bit SID by default, in which case the first information of the first SID can be calculated based on the third information of the second SID, and the second information of the first SID can be set to empty.
[0064] For example, it is possible to identify whether the next SID of the second SID is padding based on the attribute information of the second SID. That is, when an END.X SID (second SID) locally issued by a node is searched for in a local SID table and a COC Flavor (which indicates the SID type of the next SID) is not configured, it is possible to identify whether the next SID of the second SID is padding.
[0065] In some example embodiments of the present disclosure, step 3011 may include the following steps.
[0066] In step 30111, the third information of the second SID is obtained from the SRH of the data package.
[0067] In step 30112, the index of the second SID is obtained from the destination address of the data package, and the index of the second SID includes the fourth information. That is, the index of the second SID may include one indication bit or multiple indication bits. In the embodiment of the present disclosure, there is no particular limitation on the format of the index of the second SID.
[0068] In some example embodiments of the present disclosure, step 3012 may include the following steps.
[0069] In step 30121, it is determined whether the first SID and the second SID are in the same container based on the fourth information of the second SID or the attribute information of the second SID.
[0070] In one example, when the fourth information of the second SID is greater than zero, it indicates that the first SID and the second SID are in the same container, and when the fourth information of the second SID is equal to zero, it indicates that the first SID and the second SID are not in the same container.
[0071] As another example, if the attribute information of the second SID does not indicate the SID type of the next SID, it indicates that the first SID and the second SID are not in the same container. That is, if the END.X SID (second SID) issued locally by the node is searched for in the Local SID table and no COC Flavor (which indicates the SID type of the next SID) is configured, it indicates by default that the next SID (first SID) is a 128-bit SID, that is, one Padding may be included between the second SID and the first SID.
[0072] In step 30122, if the first SID and the second SID are in the same container, the first information of the first SID and the third information of the second SID are the same (i.e., the SL is the same), and the second information of the first SID is obtained based on the fourth information of the second SID, for example, by subtracting 1 from the fourth information (Index) of the second SID to obtain the second information (Index) of the first SID, or If the first SID and the second SID are not in the same container, the first information of the first SID is obtained based on the third information of the second SID, for example, by subtracting 1 from the third information of the second SID (SL-1) to obtain the first information of the first SID (SL), and the second information of the first SID is determined based on the SID type of the first SID.
[0073] Exemplarily, if the SID type of the first SID is 32 bits, the second information of the first SID is "3".
[0074] In some example embodiments of the present disclosure, the SID type of the first SID may be indicated by attribute information (COC Flavor) of the second SID, and it can be understood that the attribute information of the second SID can be found in the local SID table of the current node, as shown in Table 1.
[0075] [Table 1]
[0076] In some example embodiments of the present disclosure, the data package processing method further includes updating first information of the first SID to an SRH of the data package, and updating second information of the first SID to a destination address of the data package as an index of the first SID.
[0077] In some example embodiments of the present disclosure, step 301 may include the following steps.
[0078] In step 3013, third information, fourth information and fifth information of a second SID are obtained, the third information indicating a container location in which the second SID is located in the SID list of the data package, the fourth information indicating a location of the second SID in the container, and the fifth information indicating a SID type of the second SID and / or indicating whether the second SID is compressed.
[0079] By way of example, the SID type may include 8 bits, 16 bits, 32 bits, 64 bits, or 128 bits, etc.
[0080] In some demonstrative embodiments, the fifth information may include one indication bit or multiple indication bits.
[0081] In step 3014, the first information and the second information of the first SID are obtained based on the third information, the fourth information and the fifth information of the second SID.
[0082] Here, the second SID may be the SID immediately preceding the first SID in the SID list, or the second SID may be arranged before the first SID in the SID list and may include one or more paddings (e.g., represented by "0") between the second SID and the first SID.
[0083] In some example embodiments of the present disclosure, step 3013 may include the following steps.
[0084] In step 30131, the third information of the second SID is obtained from the SRH of the data package.
[0085] In step 30132, an index of the second SID is obtained from a destination address of the data package, and the index of the second SID includes fourth information and fifth information.
[0086] In some demonstrative embodiments, the index of the second SID may include one indicator bit or multiple indicator bits.
[0087] In some example embodiments of the present disclosure, step 3014 may include the following steps.
[0088] In step 30141, it is determined whether the first SID and the second SID are in the same container based on the SID type of the second SID and the SID type of the first SID.
[0089] Exemplarily, if the SID type of the second SID is 32 bits and the SID type of the first SID is 32 bits, it is determined that the first SID and the second SID are in the same container, and if the SID type of the second SID is 32 bits and the SID type of the first SID is 128 bits, it is determined that the first SID and the second SID are not in the same container.
[0090] In step 30142, if the first SID and the second SID are in the same container, the first information of the first SID and the third information of the second SID are the same (i.e., the SL is the same), and the second information of the first SID is obtained based on the fourth information of the second SID, for example, by subtracting 1 from the fourth information of the second SID (Index-1) to obtain the second information of the first SID, or If the first SID and the second SID are not in the same container, the first information of the first SID is obtained based on the third information of the second SID, for example, by subtracting 1 from the third information of the second SID to obtain the first information of the first SID, and the second information of the first SID is determined based on the SID type of the first SID.
[0091] Exemplarily, if the SID type of the first SID is 32 bits, the second information of the first SID is “3”, that is, the index of the first SID is 3.
[0092] In an embodiment of the present disclosure, the container is used to store one regular SID or multiple compressed SIDs, where the compressed SID includes a node identifier and a function value of the node.
[0093] In the embodiment of the present disclosure, the SID list at least includes a compressed SID. When the destination address of a data package is updated, the compressed SID and the common prefix in the current destination address are spliced to form a new SID, and table lookup and forwarding are continued, thereby realizing compression of the data package and effectively reducing the header overhead of the data package.
[0094] Furthermore, in the embodiment of the present disclosure, standard SIDs and compressed SIDs are mixed and programmed into the SID list, so that the SRv6 path can support hybrid programming of compressed nodes and normal nodes, realizing stock evolution and smooth upgrade. At the same time, in a multi-domain scenario, due to limitations in the address plan, there is no guarantee that SIDs in multiple domains have a common prefix, and hybrid programming can easily realize the establishment of SRv6 paths across multiple domains.
[0095] In the following, an IPv6 scenario is taken as an example, and it should be understood that the embodiments of the present disclosure are not limited to IPv6 technology, but can also be applied to other versions of IP technology (e.g., IPv5, IPv7, IPv9, IPv10, etc.), and the methods applied to other versions of IP technology are similar to those of IPv6 technology, and will not be repeated here.
[0096] In the deployment of SRv6, the address plan requires that an address block used for SID allocation be divided, also called a SID Space. Therefore, in one SRv6 domain, SIDs allocated from the SID Space can have a common prefix. Usually, all SIDs in an SRH have the same prefix, and this part is redundant. By removing this redundant information, the overhead of the SRv6 header can be effectively reduced.
[0097] Therefore, in the embodiment of the present disclosure, the Common Prefix of the SID in the SID List is removed, and only the changed compressed SID (also called short SID or X-SID) is carried. When switching the destination address, the compressed SID is stitched with the common prefix in the current IPv6 destination address to form a new SID, and the table lookup and forwarding are continued, thereby realizing the compression of SRv6.
[0098] Furthermore, in the embodiment of the present disclosure, a mixture of traditional SRv6 SIDs and compressed SIDs are programmed into SRv6 (for example, the SRv6 is also called X-SRv6), thereby supporting hybrid programming of compressed nodes and normal nodes in the SRv6 path, and realizing stock evolution and smooth upgrade. At the same time, in a multi-domain scenario, due to limitations in the address plan, there is no guarantee that SIDs in multiple domains have a common prefix, and hybrid programming can easily realize the establishment of an SRv6 path across multiple domains.
[0099] (1) Introduction to the standard 12v6 SID format SRv6 Segment Identifier: Used to identify the ID of an SRv6 Segment. A standard SRv6 SID is a 128-bit IPv6 address. Considering the support of SRv6 network programmability, it generally consists of three parts, as shown in Figure 4.
[0100] (1) Location (Locator) is an identifier assigned to a network node to route and forward data packages to the node in the network topology, and the Locator identifies location information. A route corresponding to the Locator is published by the node to the network through an Interior Gateway Protocol (IGP), so that other devices cooperate to forward data packages to the node that issues the Locator. In SRv6 SID, the length of the Locator is variable to apply to networks of different scales.
[0101] (2) Function is used to express the forwarding operation (corresponding to the operation code of a computer instruction) that the command performs. In SRv6 network programming, different forwarding operations are expressed by different Functions, such as forwarding the data package to the specified link, or finding the table in the specified table and forwarding it.
[0102] (3) Arguments (hereafter referred to as Args) is a selectable field that is a parameter corresponding to the execution of the command, and these parameters may include flow, service, or any other relevant information.
[0103] 5, the Locator may be subdivided into B:N, where "B" identifies an SRv6 SID block, which is usually assigned to a positioning subnet by a carrier and is usually represented by a prefix, and "N" represents an identifier for distinguishing nodes in the subnet. Therefore, since all SIDs in one SRv6 network have a common prefix B, the B portion of the SID in one SID List is repeated for redundancy.
[0104] (2) Introduction to compressed SRv6 SID format As can be seen from the standard SRv6 SID format, typical applications that support SRv6 network programming have rules for their SID format, and the standard SRv6 SID format can be optimized by fully utilizing the SID format rules.
[0105] In an embodiment of the present disclosure, an exemplary 32-bit SRv6 compressed SID format is defined, where the compressed SID may consist of a Node ID and a Function ID in a standard 128-bit SID.
[0106] The standard 128-bit SID format is also called a full SID, which is defined as a standard SRv6 SID, and the 32-bit SID is a compressed SID (also called an X-SID), which is the variant of the full SID, as shown in Figure 6.
[0107] Similarly, a 16-bit compressed SID may be defined. In the following, a 32-bit compressed SID is taken as an example, and it can be understood that the embodiment of the 16-bit compressed SID is similar to the embodiment of the 32-bit compressed SID, and will not be described again here.
[0108] The conversion relationship between full SIDs and compressed SIDs can use the following methods according to the SRv6 Locator rules.
[0109] Full SID = B (Block, i.e., common prefix) + N (Node ID) + F (Function) + A (Args) (optional) + Padding (optional)
[0110] Compression SID = N (node ID) + F (function)
[0111] As can be seen, the compressed SID can be appended with the common prefix / address block to form a complete SID.
[0112] To support compression, it is necessary to plan an SRv6 SID format that supports compression. For example, the Common Prefix is 96 bits and the compressed SID is 32 bits, for example, the Common Prefix is 64 bits and the following compressed SID is 32 bits, with the low 32 bits of the remainder being 0. To identify the SRv6 SID of the positioning as a compressible SID, it is necessary to extend one corresponding control plane protocol that publishes the compressible SID and publishes the compression capability of the SID and the structure information of the SID.
[0113] (3) Introduction of the container format for storing compressed SID and standard SID When compressed SIDs and standard SIDs are programmed into the SRH SID List, in order to position compressed SIDs accurately, compressed SIDs should be programmed to be 128-bit aligned, i.e., four 32-bit compressed SIDs or multiple short compressed SIDs of other lengths should be placed in one 128-bit row. If a row is not completely filled, it should be filled with padding to align it to 128 bits.
[0114] For ease of understanding, the embodiment of the present disclosure defines the concept of a 128-bit SID Container. One SID Container may include the following:
[0115] (1) One SRv6 standard SID.
[0116] (2) Multiple compressed SIDs (X-SIDs), e.g., four 32-bit compressed SIDs or eight 16-bit compressed SIDs.
[0117] If various SIDs are programmed in a hybrid manner, it should be ensured that they are aligned to 128 bits. If the compressed SID cannot completely fill 128 bits, it must be supplemented with padding. Taking a 32-bit compressed SID as an example, a possible format of the SID Container is shown in Figure 7.
[0118] Since the SRv6 SRH can encode various types of SID Container, the SRH is also called compressed SRH. This is a new implementation of SRv6, and is also called compressed SRv6. The details of the data plane compressed SRv6 method are introduced below.
[0119] (IV) Introduction of compressed SRH in compressed SRv6 data plane method The format of the compressed SRH is identical to that of the SRH [RFC8754] without changing the format and field semantics, but 128-bit SIDs and 32-bit compressed SIDs can be hybrid programmed in the compressed SRH. As shown in Figure 8, the format includes a Next Header field, an Hdr Ext len field, a Routing Type field, a Segment left field, a Last Entry field, a Flags field, a Tag field, an X-SID Container field (containing a 128-bit value), and an Optional TLV object field (which is mutable).
[0120] An example of encoding when a 128-bit SID and a 32-bit X-SID are hybrid-programmed into the X-SRH is shown in FIG.
[0121] A compressed SRv6 path consists of an SRv6 subpath and an SRv6 compressed subpath. An SRv6 subpath is encoded by an SRv6 SID. An SRv6 compressed subpath consists of a compressible 128-bit SRv6 SID prefix followed by multiple compressed SIDs. The end of the compressed SID list should be delimited by 128 bits, and the next may be a standard 128-bit SRv6 SID or a SRv6 compressed subpath with a different prefix.
[0122] In order to identify the start and end of the SRv6 compression path in the SID list, that is, the boundary between 128-bit SIDs and 32-bit SIDs, it is necessary to add several types of attributes (Flavor) and issue SIDs corresponding to the Flavor. For the values of the behavior for the COC32 attribute (COC32 Flavor), see Table 2. For COC16, we will not define it for now.
[0123] [Table 2]
[0124] Therefore, if the SID of the destination address (DA) carries a COC32 Flavor, it indicates that the next 32-bit compressed SID needs to be updated to the destination address. If the SID in the DA does not carry a COC Flavor SID, it indicates "SL--" (SL minus 1) and update the next 128-bit SID to the destination address (if SL>0). Here, SL can locate the position of the 128-bit Container.
[0125] Therefore, the encoding rules for compressed SRv6 in the SID List include:
[0126] (1) The start of a compressed SRv6 path is indicated by a single 128-bit COC32 Flavor SID that contains a COC32 Flavor SID. This SID carries the complete SID information, including information such as the Common Prefix, that can be used in subsequent compressed SIDs to recover the complete Next SID.
[0127] (2) All compressed SIDs along the compression path are compressed SIDs carrying COC32, indicating that the next one is a 32-bit compressed SID.
[0128] (3) The last compressed SID in the compression pass is a 32-bit compressed SID with no COC Flavor and is used to indicate the end of the compression pass. The SRv6 SID bound to the DA is then processed according to the processing rules for 128-bit SIDs.
[0129] It should be explained that the reason why the last SID is a SID without COC Flavor is because after the last SID is updated to the destination address, the SID in DA does not have COC Flavor and is therefore processed by the node as a 128-bit SID, which is consistent with the current SRv6 processing. Therefore, this ends the compression pass and can switch from a 32-bit compressed SID to a 128-bit SID.
[0130] As can be seen, such a design can adequately support the following two scenarios:
[0131] (1) In a hybrid programming scenario, the compression pass is completed and the code is switched from 32-bit to 128-bit.
[0132] (2) In simple compression scenarios, the last SID does not have a COC flavor, so the last hop processing is consistent with current SRv6 and more compatible.
[0133] Furthermore, in order to locate the next compressed SID in the compression pass, an index of the compressed SID (X-SID Index, hereinafter abbreviated as XI) can be added to locate the position of the compressed SID in the SID Container. Furthermore, the index may indicate whether the SID is compressed or indicate the SID type of the SID.
[0134] The basic concept of positioning is as follows:
[0135] 1. The next compressed SID is located at SL+XI, where SL locates the location of the 128-bit container and XI locates the location of the specific X-SID in the 128-bit container.
[0136] 2. How to position the boundaries of variable length SIDs in hybrid programming scenarios.
[0137] (1) Check whether the SID type has changed by comparing the SID's "SID type of next SID" with the SID type of the current SID. For example, if the SID's "SID type of next SID" is 32 bits and the current SID type is 128 bits, it means that the boundary has been reached.
[0138] (2) Correspondingly modify XI in the destination address to locate the next SID / X-SID.
[0139] (3) If the SID type of the next SID is 32 bits, update the next 32 bits of X-SID to the X-SID position corresponding to the IPv6 destination address, and the X-SID can be located by the SRH[SL][XI].
[0140] For example, the index can be placed after the compressed SID in the destination address, and exemplarily, the index is placed in the two least significant bits (LSBs) of 128 bits as shown in Figure 10. When issuing a compressed SID, space must be reserved for the index, and its value is 0. During transfer, the value of XI is the position attribute of the compressed SID and indicates the position of the SID in the X-SID Container.
[0141] For example, the COC32 Flavor SID may indicate that the next 32 bits of the compressed SID are to be updated to the destination address, and the compressed SID position may be positioned by SL and XI.
[0142] Taking a 32-bit compressed SID as an example, the pseudocode for processing a data package received by a node (endpoint) is as follows:
[0143] ---------------------------------------------------------------------------------- if IPv6 DA hits a COC32 Flavor SID / / 32bit X-SID processing if DA.XI==0: / / first compressed SID on next line SL--; DA.XI = 3 Else / / The next compressed SID of this row DA.XI-- DA[CP..CP+31] = SRH[SL][DA.XI] Forward the packet based on new DA Else / / Normal SRv6 branch, not affected SRv6 processing ----------------------------------------------------------------------------------
[0144] The processing process is triggered by the COC Flavor SID, and the operation data is limited to the COC Flavor SID, which does not affect the existing SRv6 main process and does not affect the processing of existing SIDs and SRHs. The format is compatible with SRH, and the processing is compatible with existing SRv6. Here, XI is after the compressed SID of DA. Taking a simple compression path + 128 bit VPN SID as an example, an example of encoding and updating X-SID is shown in Figure 11.
[0145] (5) Data package transfer process in hybrid programming scenarios When deploying SRv6 compression, address planning must be done and then the control and data planes must be upgraded to support SRv6 compression.
[0146] First, a node sets an extension C-flag in the SRv6 Capabilities TLV of a protocol such as an IGP to identify that the node supports compression capabilities.
[0147] A node instantiates an SRv6 SID that can support compression and publishes it to the network through protocols such as IGP / BGP / BGP-LS or sends it to a controller. After the SID is instantiated, the node creates a corresponding SID forwarding table entry.
[0148] Referring to FIG. 12, node k may publish two sets of SIDs, both of which carry the C-Flag and support compression, one of which carries a COC32 flavor and the other of which carries no flavor. For example, A:k:1:: is an END.X SID bound to a particular interface that carries COC32, and A:k:2:: is an END.X SID bound to the same interface that does not carry a COC32 flavor. According to this scheme, A:1:1:: is a COC32 flavor End.X SID, and A:4:2:: is a SID that does not have a COC flavor.
[0149] When publishing a SID, it MUST identify that the SID format supports compression by setting the C-flag in the TLV (e.g., SRv6 End SID sub-TLV, SRv6 End.X SID sub-TLV, SRv6 LAN End.X SID sub-TLV) corresponding to the SIDs A:1:1::, A:2:1::, A:3:1::, A:4:1::, A:4:2::, A:6:1::, A:7:1::, A:8:1::, A:9:1::, A:9:2::, and A:10:10:: (these formats support compressed VPN SIDs and facilitate simple compression demonstration).
[0150] The issued SID includes a compressible SID carrying the COC32 Flavor, which is used to identify the SIDs following the SID as 32 X-SIDs (e.g., multiple SIDs A:k:1:: in the example below).
[0151] When A:k:1:: is issued, it must carry a SID Structure Sub-sub-TLV. If the Common Prefix (A) length is 64, the X-SID length is 32 (the Node ID length is 16, the Function ID length is 16), and the Argument length is 32, then in the SID Structure Sub-sub-TLV of the issued SID, the Locator Block length is 64, the Node ID length is 16, the Function length is 16, and the Argument length is 32.
[0152] In the figure, the A1:: prefix is a prefix that does not support compressed SIDs, so A1::5:1 is a non-compressible SID. Therefore, during publication, it also carries the SID Structure Sub-sub-TLV, where the Locator Block length is 64, the Node ID length is 16, and the Function length is 48.
[0153] The device sends via BGP-LS to the controller the node's capability to support compression, the SID that supports compression, and the SID that carries the added COC32 flavor, which the controller uses to calculate the path.
[0154] After the path calculation is completed, the controller issues a SID List containing compressed SIDs via the BGP SR Policy, and in this case, a sub-TLV describing the SID format must be inserted between the Segment sub-TLVs of the SID list. For example, the 10 SIDs in the following example need to insert SID encoding sub-TLVs before A:2:1:: and A:7:1::, where Start is the length of the Common Prefix (63 in the figure), and End is Common Prefix+32 (95 in the figure). Also, SID encoding sub-TLVs need to be inserted before A1::5:1 and A:10:10::, where Start of SID encoding sub-TLV is equal to 0, and End of SID encoding sub-TLV is equal to 127.
[0155] [Table 3]
[0156] In the example, the SID List contains a total of 10 SIDs.
[0157] A:1:1:: END.X(COC32) A:2:1:: END.X(COC32) A:3:1:: END.X(COC32) A:4:2:: END.X A1::5:1 END.X SID that does not support compression A:6:1:: END.X(COC32) A:7:1:: END.X(COC32) A:8:1:: END.X(COC32) A:9:2:: END.X A:10:10:: END.DT4 VPN SID (not participating in compression)
[0158] The SID list in the reduced mode and after compression encoding is as shown in Fig. 12. Here, END.X SID A:1:1:: is not encoded in the SID list.
[0159] (1) When node 1 receives the data package, the destination address "A:1:1::" is matched in the Local SID table with the COC Flavor END.X SID issued locally by the node, in this case, the SRH is SL=5 and DA.XI=0, so it points to 2:1 with SL-- and DA.XI=3, updates X-SID 2:1 to DA, and forwards it to the next node 2. In this case, the destination address is A:2:1::3.
[0160] (2) When node 2 receives the data package, the destination address "A:2:1:3::" matches the COC Flavor END.X SID that the node issued locally in the Local SID table, in this case SL=4, so DA.XI is 3, which is greater than 0, so the node executes DA.XI-- and updates (or copies) the next X-SID 3:1 pointed to by SRH[SL][DA.XI] to DA, and forwards it to the next node. In this case, the destination address is "A:3:1::2".
[0161] (3) When node 3 receives the data package, the destination address "A:1:2::" is matched in the Local SID table with the COC Flavor END.X SID issued locally by the node, in this case the SRH is SL=4 and DA.XI=2, so it points to 4:2 with SL-- and DA.XI=3, updates X-SID 4:2 to DA and forwards to the next node. In this case the destination address is "A:4:2::1".
[0162] (4) When node 4 receives the data package, the destination address “A:4:2:1::” is matched in the Local SID table with the END.X SID that the node issued locally, and therefore, since there is no COC Flavor, it defaults to indicating that the next SID is a 128-bit SID, and therefore SL=SL-1=3, and “A1::5:1” is copied to the DA and forwarded.
[0163] (5) Node 5 is a normal SRv6 node, and therefore performs normal SRv6 forwarding, replicating “A:6:1::” to DA and forwarding it to the next node.
[0164] (6) When node 6 receives the data package, the destination address "A:6:1::" is matched in the Local SID table with the COC Flavor END.X SID issued locally by the node, in this case the SRH is SL=2 and DA.XI=0, so it points to 7:1 with SL-- and DA.XI=3, updates X-SID 7:1 to DA, and forwards it to the next node 2. In this case the destination address is "A:7:1::3".
[0165] As can be seen, "7:1" corresponds to the first SID and "A:6:1::" corresponds to the second SID.
[0166] (7) Similarly, when nodes 7 and 8 receive the data package, they process the COC Flavor SID, update the destination address, and forward the data package.
[0167] (8) After receiving the data package, node 9 performs the same process as node 4. Since the SID at DA matches an SID that does not have a COC Flavor in the Local SID table, SL--=0, and the VPN SID is copied to DA and forwarded to node 10.
[0168] (9) Node 10 performs processing according to the normal VPN SID.
[0169] (VI) Data package transmission process in a simple compression scenario Referring to Figure 13, the control plane process principle, topology information and SID information are the same as in the hybrid programming case. When an SR policy is issued, it is necessary to insert the corresponding SID Encoding sub-TLV description format into the SID list of the BGP SR policy. The following is an example.
[0170] A SID encoding sub-TLV needs to be inserted before A:2:1::, where Start is the length of the Common Prefix (which is 63 in the figure) and End is the Common Prefix+32 (which is 95 in the figure).
[0171] In the example, the SID List contains a total of 10 SIDs.
[0172] A:1:1:: END.X(COC32) A:2:1:: END.X(COC32) A:3:1:: END.X(COC32) A:4:1:: END.X(COC32) A:5:1:: END.X(COC32) A:6:1:: END.X(COC32) A:7:1:: END.X(COC32) A:8:1:: END.X(COC32) A:9:1:: END.X(COC32) A:10:10::END.DT4 VPN SID (participating in compression).
[0173] The SID list after the Reduced mode and compression encoding is as shown in Fig. 13. Here, END.X SID A:1:1:: is not encoded in the SID list.
[0174] (1) After encapsulating the data package, node 0 sends the data package to the next hop node 1, where the SRH is SL=3 and DA.XI=0. The SID Flavor is COC, and the encapsulation format of the next SID is identified as 32-bit X-SID.
[0175] (2) When node 1 receives the data package, the destination address “A:1:1::” indicates that the locally issued format is COC Flavor END.X which supports compression, and the next SID is a 32-bit X-SID, in this case SL=3 and DA.XI=0, therefore SL-- and DA.XI=3, it points to 2:1, copies 2:1 to DA and updates X-SID, then finds and forwards the table based on the new DA.
[0176] As can be understood, "2:1" corresponds to the first SID and "1:1" corresponds to the second SID.
[0177] (3) Similarly, for subsequent nodes 2, 3, 4, 5, 6, 7, 8, 9, the nodes update the corresponding X-SID to DA based on the values of SL and DA.XI, and forward to the find table.
[0178] (4) When node 10 receives the data package, the DA is "A:10:10::", which is a SID that does not have a COC Flavor (the VPN SID itself does not have this type of Flavor), and VPN SID processing is performed.
[0179] Referring to FIG. 14, an embodiment of the present disclosure further provides a node, the node 1400 comprising: an acquisition module 1401 configured to acquire first and second information of a first SID, the first information indicating a location of a container in which the first SID is located in a SID list of a data package, and the second information indicating a location of the first SID in the container; a processing module 1402 configured to obtain a position of the first SID in a SID list based on the first information and the second information; and a sending module 1403 configured to copy the first SID to a destination address of a data package and send the data package.
[0180] In some embodiments, the acquisition module 1401 is configured to acquire third information and fourth information of a second SID, the third information indicating a position of a container in which the second SID is located in a SID list of the data package, and the fourth information indicating a position of the second SID in the container, and obtain first information and second information of the first SID based on the third information and fourth information of the second SID, where the second SID is the SID immediately before the first SID in the SID list.
[0181] In some embodiments, the acquisition module 1401 is configured to acquire third information of the second SID from an SRH of the data package and acquire an index of the second SID from a destination address of the data package, the index of the second SID including fourth information.
[0182] In some embodiments, the acquisition module 1401 is configured to determine whether the first SID and the second SID are in the same container based on the fourth information of the second SID or the attribute information of the second SID, and if the first SID and the second SID are in the same container, the first information of the first SID and the third information of the second SID are the same and obtain the second information of the first SID based on the fourth information of the second SID, or if the first SID and the second SID are not in the same container, obtain the first information of the first SID based on the third information of the second SID and determine the second information of the first SID based on a SID type of the first SID.
[0183] In some embodiments, the SID type of the first SID is indicated by attribute information of the second SID.
[0184] In some embodiments, the node 1400 further comprises an updating module configured to update the first information of the first SID to an SRH of the data package and to update the second information of the first SID to a destination address of the data package as an index of the first SID.
[0185] In some embodiments, the acquisition module 1401 is configured to acquire third information, fourth information and fifth information of a second SID, the third information indicating a container location in which the second SID is located in a SID list of the data package, the fourth information indicating a location of the second SID in the container, and the fifth information indicating a SID type of the second SID and / or indicating whether to compress the second SID, and to obtain first information and second information of the first SID based on the third information, fourth information and fifth information of the second SID, the second SID being the SID immediately before the first SID in the SID list.
[0186] In some embodiments, the acquisition module 1401 is configured to acquire third information of the second SID from an SRH of the data package and acquire an index of the second SID from a destination address of the data package, the index of the second SID including the fourth information and the fifth information.
[0187] In some embodiments, the acquisition module 1401 is configured to determine whether the first SID and the second SID are in the same container based on an SID type of the second SID and an SID type of the first SID, and if the first SID and the second SID are in the same container, first information of the first SID and third information of the second SID are the same and obtain second information of the first SID based on fourth information of the second SID, or if the first SID and the second SID are not in the same container, obtain first information of the first SID based on third information of the second SID and determine second information of the first SID based on an SID type of the first SID.
[0188] In some embodiments, the container is used to store a number of compressed SIDs, where the compressed SID includes a node identifier and a value of the function of the node.
[0189] In some embodiments, the sending module 1403 is configured to copy the first SID to a destination address of a data package, combine the first SID with a common prefix or address block of the destination addresses to obtain a new destination address, and forward the data package to a next node based on the new destination address, or copy the first SID and the second information to a destination address of a data package, combine the first SID and the second information with a common prefix or address block of the destination addresses to obtain a new destination address, and forward the data package to a next node based on the new destination address, or copy the first SID and the second information to a destination address of a data package, and forward the data package to a next node.
[0190] It should be noted that the data package processing of the node in the above embodiment is only described as an example with respect to the division of each program module mentioned above, but in actual application, the above processing can be allocated to different program modules as needed, that is, the internal structure of the node can be divided into different program modules to perform all or part of the above processing. In addition, the node and data package processing embodiment provided in the above embodiment belongs to the same concept as the information processing method embodiment, and the specific implementation thereof can be referred to the method embodiment, and will not be described again here.
[0191] Referring to FIG. 15, an embodiment of the present disclosure further provides a node, the node 1500 comprising: a transceiver 1501; a processor 1502; and a memory 1503 for storing a computer program executable by the processor 1502; The transceiver 1501 is configured to transmit and receive data under the control of the processor 1502; The processor 1502 is configured to read the computer program in the memory 1503 and execute the steps of the data package processing method described in the above embodiments of the present disclosure.
[0192] It should be understood that the memory 1503 may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory. Here, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a ferromagnetic random access memory (FRAM), a flash memory, a magnetic memory, a compact disk, or a compact disk read-only memory (CD-ROM), and the magnetic memory may be a magnetic disk memory or a magnetic tape memory. The volatile memory may be a random access memory (RAM) used as an external cache.Various forms of RAM may be used, such as, by way of example and not limitation, static random access memory (SRAM), synchronous static random access memory (SSRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct memory bus random access memory (DRRAM). Memory 1503 according to embodiments of the invention is intended to include, but is not limited to, these and any other suitable types of memory.
[0193] The methods disclosed in the above embodiments of the present invention can be applied to or realized by the processor 1502. The processor 1502 can be an integrated circuit chip with signal processing functions. In the realization process, each step of the above-mentioned method can be performed by an instruction in the form of an integrated logic circuit of hardware or software in the processor 1502. The above processor 1502 can be a general-purpose processor, a digital signal processor (DSP), or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, etc. The processor 1502 can realize or execute each method, step and logic block diagram disclosed in the embodiments of the present invention. The general-purpose processor can be a microprocessor, any conventional processor, etc. According to the steps of the method disclosed in the embodiments of the present invention, they can be directly embodied in a hardware decoding processor, or can be executed by a combination of hardware and software modules in the decoding processor. The software module may be disposed in a storage medium, which is disposed in the memory 1503, and the processor 1502 reads information in the memory 1503 and performs the steps of the method in combination with the hardware.
[0194] In an example embodiment, a node may be implemented by one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Programmable Logic Devices (PLDs), Complex Programmable Logic Devices (CPLDs), Field-Programmable Gate Arrays (FPGAs), general-purpose processors, controllers, Micro Controller Units (MCUs), Microprocessors, or other electronic elements to perform the methods.
[0195] In an exemplary embodiment, the present invention further provides a computer readable storage medium such as a memory 1503 containing computer program instructions, and the above-mentioned computer program can be executed by the processor 1502 of the node 1500 to perform the above-mentioned method. The computer storage medium may be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface memory, optical disk, or CD-ROM, or may be any one or any combination of various devices of the above-mentioned memories.
[0196] An embodiment of the present disclosure further provides a computer-readable storage medium having a computer program stored therein, the computer program, when executed, causing a processor to perform steps of a data package processing method described in the embodiment of the present disclosure.
[0197] The features disclosed in any method or apparatus embodiment provided herein may be combined in any non-conflicting manner to obtain new method or apparatus embodiments.
[0198] The steps of the method or algorithm described in this disclosure may be implemented in the form of hardware or software instructions executed by a processor. The software instructions may be configured in corresponding software modules, which may be stored in RAM, flash memory, ROM, EPROM, EEPROM, registers, hard disk, removable hard disk, compact disk read-only memory, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from the storage medium and write information to the storage medium. Of course, the storage medium may be a component of the processor. The processor and the storage medium may be located in an ASIC. Furthermore, the ASIC may be located in the core network interface device. Of course, the processor and the storage medium may exist as separate components in the core network interface device.
[0199] Those skilled in the art can understand that the functions described in the present disclosure in one or more of the above examples can be realized by hardware, software, firmware, or any combination. When implemented in software, these functions may be stored on a computer-readable medium or transmitted as one or more instructions or codes on a computer-readable medium. Computer-readable media include computer storage media and communication media, where communication media includes any medium for conveniently transmitting a program from one place to another. Storage media may be any available medium accessible to a general-purpose computer or a special-purpose computer.
[0200] Although the above specific embodiments have further described the objectives, technical solutions and advantageous effects of the present disclosure in detail, it should be understood that the above description is only a specific embodiment of the present disclosure, and is not intended to limit the protection scope of the present disclosure, and any modifications, equivalent replacements, improvements, etc. made based on the technical solutions of the present disclosure should be included in the protection scope of the present disclosure.
[0201] Those skilled in the art will appreciate that the embodiments of the present disclosure may be provided as a method, a system, or a program product. Thus, the embodiments of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment that combines software and hardware. Furthermore, the embodiments of the present disclosure may take the form of a program product embodied in one or more computer usable storage media (including, but not limited to, disk memory, CD-ROM, optical memory, etc.) that contain computer usable program code.
[0202] The embodiments of the present disclosure are described with reference to flowcharts and / or block diagrams of methods, devices (systems), and program products according to the embodiments of the present disclosure. It will be understood that each process and / or block of the flowcharts and / or block diagrams, and combinations of processes and / or blocks of the flowcharts and / or block diagrams, can be realized by program instructions. These program instructions can be provided to a processor of a general purpose computer, a special purpose computer, an embedded processor, or other programmable data processing device to generate a machine, which generates an apparatus for performing the functions specified in a process or processes of the flowcharts and / or a block or blocks of the block diagrams.
[0203] These program instructions may be stored in a computer-readable memory that can cause a computer or other programmable data processing apparatus to operate in a particular manner, such that the instructions stored in the computer-readable memory cause an article of manufacture that includes an instruction apparatus that implements the functions specified in a process or processes of the flowcharts and / or a block or blocks of the block diagrams.
[0204] These program instructions may further be loaded into a computer or other programmable data processing apparatus to cause the computer or other programmable apparatus to perform a series of operational steps to generate a computer-implemented process, whereby the instructions executed on the computer or other programmable apparatus provide steps for implementing the functions specified in a process or processes of the flowcharts and / or a block or blocks of the block diagrams.
[0205] Obviously, those skilled in the art can make various modifications and changes to the embodiments of the present disclosure without departing from the spirit and scope of the present disclosure. Therefore, if such modifications and changes of the embodiments of the present disclosure are within the scope of the present disclosure and its equivalents, the present disclosure is also intended to include such modifications and changes.
Claims
1. 1. A method for processing a data package, comprising the steps of: obtaining first and second information for a first segment identifier (SID), the first information indicating a location of a container in which the first SID is located in a SID list of a data package, the second information indicating a location of the first SID in the container, the container being used to store one standard SID or multiple compressed SIDs, the first SID being a compressed SID or a 128 bit SRv6 SID, the SID list including multiple containers, at least one of the multiple containers being used to store multiple compressed SIDs, and if one of the multiple containers is not completely filled with compressed SIDs, the container includes padding bits; obtaining a position of the first SID in a SID list based on the first information and the second information; copying the first SID into a destination address of a data package and transmitting the data package; Obtaining the first information and the second information of the first SID includes: obtaining third information, fourth information, and fifth information of a second SID, the third information indicating a container location where the second SID is located in a SID list of the data package, the fourth information indicating a location of the second SID in the container, the fifth information indicating a SID type of the second SID and / or indicating whether the second SID is compressed, the SID type including 8 bit, 16 bit, 32 bit, 64 bit, or 128 bit; obtaining first and second information of the first SID based on third, fourth and fifth information of the second SID; The method of claim 1, wherein the second SID is the SID immediately preceding the first SID in the SID list.
2. Obtaining the first information and the second information of the first SID includes: obtaining third and fourth information of a second SID, the third information indicating a location of a container in which the second SID is located in a SID list of the data package, and the fourth information indicating a location of the second SID in the container; obtaining first and second information of the first SID based on third and fourth information of the second SID; 2. The data package processing method according to claim 1.
3. Obtaining the third information and the fourth information of the second SID includes: Obtaining third information of the second SID from a segment routing header (SRH) of the data package; obtaining an index of the second SID from a destination address of the data package, the index of the second SID including fourth information.
3. A method for processing a data package according to claim 2.
4. Obtaining first information and second information of the first SID based on third information and fourth information of the second SID includes: determining whether the first SID and the second SID are in the same container based on fourth information of the second SID or attribute information of the second SID; When the first SID and the second SID are in the same container, the first information of the first SID and the third information of the second SID are the same, and the second information of the first SID is obtained based on the fourth information of the second SID; or if the first SID and the second SID are not in the same container, obtaining first information of the first SID based on third information of the second SID, and determining second information of the first SID based on a SID type of the first SID, the SID type comprising 8 bit, 16 bit, 32 bit, 64 bit, or 128 bit.
3. A method for processing a data package according to claim 2.
5. The SID type of the first SID is indicated by the attribute information of the second SID.
5. A data package processing method according to claim 4.
6. The data package processing method includes: updating first information of the first SID to an SRH of the data package; and updating the second information of the first SID to a destination address of the data package as an index of the first SID.
2. The data package processing method according to claim 1.
7. Duplicating the first SID into a destination address of a data package and transmitting the data package includes: copying the first SID into a destination address of the data package, combining the first SID with a common prefix or address block of the destination addresses to obtain a new destination address, and forwarding the data package to a next node based on the new destination address; or copying the first SID and the second information to a destination address of the data package, combining the first SID and the second information with a common prefix or address block of the destination address to obtain a new destination address, and forwarding the data package to a next node based on the new destination address; or copying the first SID and the second information to a destination address of the data package and forwarding the data package to a next node.
2. The data package processing method according to claim 1.
8. Obtaining the third information, the fourth information, and the fifth information of the second SID includes: obtaining third information of the second SID from an SRH of the data package; and obtaining an index of the second SID from a destination address of the data package, the index of the second SID including fourth information and fifth information.
2. The data package processing method according to claim 1.
9. Obtaining first information and second information of the first SID based on third information, fourth information, and fifth information of the second SID includes: determining whether the first SID and the second SID are in the same container based on a SID type of the second SID and a SID type of the first SID, where the SID type of the first SID is indicated by attribute information (COC Flavor) of the second SID; When the first SID and the second SID are in the same container, the first information of the first SID and the third information of the second SID are the same, and the second information of the first SID is obtained based on the fourth information of the second SID; or if the first SID and the second SID are not in the same container, obtaining first information of the first SID based on third information of the second SID, and determining second information of the first SID based on a SID type of the first SID.
2. The data package processing method according to claim 1.
10. The compressed SID includes a node identifier and a function value of the node indicated by the node identifier.
2. The data package processing method according to claim 1.
11. an index of the first SID is placed after the compressed SID in the destination address; 2. The data package processing method according to claim 1.
12. the index of the first SID is placed in the least significant bits of the destination address; The data package processing method according to claim 11.
13. A node, a transceiver, a processor, and a memory for storing a computer program executable by the processor; the transceiver is configured to transmit and receive data under control of the processor; A node, wherein the processor is configured to execute a method for processing a data package according to any one of claims 1 to 12 upon reading a computer program in the memory.
14. A computer readable storage medium storing a computer program which, when executed by a processor, causes the processor to carry out the data package processing method according to any one of claims 1 to 12.
Citation Information
Patent Citations
Communication system, forwarding nodes, path management server and communication method
WO2011083846A1