Method and apparatus for identifying segment identifiers

JP7636588B2Active Publication Date: 2025-02-26NEW H3C TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023571565
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-09-22
Filing Date
2022-02-25
Publication Date
2025-02-26
Estimated Expiration
2042-02-25

Smart Images

  • Figure 0007636588000001
    Figure 0007636588000001
  • Figure 0007636588000002
    Figure 0007636588000002
  • Figure 0007636588000003
    Figure 0007636588000003
Patent Text Reader

Abstract

The present application provides a method and device for identifying a segment identifier, which is related to the field of communication. The method includes receiving a first message and a second message sent from a second device, where the first message includes at least one first block identifier and a boundary address of an address space corresponding to each first block identifier, and the second message includes at least one second block identifier and a first index value; and calculating a first SID using the boundary address of the first address space corresponding to the same block and the first index value, where the same block is a block represented by the same block identifier among the at least one first block identifier and the at least one second block identifier. When the technical means provided in the present application are applied, the overhead of messages during SID distribution is reduced, thereby ensuring the performance of the device and the stability of the message transmission protocol.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] This application claims priority to China Patent Application No. 202111108022.6, filed with the China Intellectual Property Office on September 22, 2021, with the invention title "Method and device for determining segment identification," the entire contents of which are incorporated herein by reference.

[0002] The present application relates to the field of communications, and in particular to a method and apparatus for identifying a segment identifier. [Background technology]

[0003] In a Segment Routing Internet Protocol Version 6 (SRv6) network, a device needs to distribute a segment identifier (SID) to the SRv6 network to realize the transmission of subsequent data messages.

[0004] For each device in an SRv6 network, the device sends a link state message to each of its corresponding neighbor devices, which includes one or more complete SIDs. After receiving the link state message, the neighbor devices of the device can determine the SIDs that the device has distributed. Summary of the Invention

[0005] The present embodiment aims to provide a method and device for identifying a segment identifier to ensure device performance and stability of message transmission protocol by reducing message overhead during SID distribution. Specific solutions are as follows:

[0006] In a first aspect, an embodiment of the present application provides a method for identifying a segment identifier applied to a first device in an SRv6 network, the SRv6 network further comprising a second device, the first device and the second device are neighbor devices, and the second device stores a first SID, which is a first segment identifier, and the method includes: receiving a first message and a second message transmitted from the second device, the first message including at least one first block identifier and a boundary address of an address space corresponding to each first block identifier, and the second message including at least one second block identifier and a first index value; Calculating the first SID using a boundary address of a first address space corresponding to the same block and the first index value, wherein the same block is a block represented by the same block identifier among the at least one first block identifier and the at least one second block identifier.

[0007] In one possible embodiment, the first message includes a first sub-TLV, the first sub-TLV including a Block Identifier field, a Start SID field, and an End SID field, the Block Identifier field is for carrying the at least one first block identifier, the Start SID field is for carrying a start address of an address space corresponding to each first block, and the End SID field is for carrying an end address of an address space corresponding to each first block.

[0008] In one possible embodiment, the first sub-TLV further includes an offset amount field for carrying a first offset amount.

[0009] In one possible embodiment, the second message includes a second sub-TLV, a third sub-TLV, or a fourth sub-TLV; The second sub-TLV is for carrying an index of a link SID of a point-to-point P2P neighbor type, the second sub-TLV including a block identifier field, an index number field, an index length field, at least one index field, and an endpoint action field corresponding to each index field; the third sub-TLV is for carrying an index of a link SID of a local area network LAN neighbor type, the third sub-TLV including a block identifier field, an index number field, an index length field, at least one index field, and an endpoint action field corresponding to each index field; the fourth sub-TLV is for carrying an index of a device SID, the fourth sub-TLV including a block identifier field, an index number field, an index length field, at least one index field, and an endpoint action field corresponding to each index field; the block identifier field is for carrying the second Block identifier, the index number field is for carrying a quantity of indexes, the index length field is for carrying a length of indexes, each index field is for carrying an index value, and each endpoint action field is for carrying an endpoint action corresponding to one index value.

[0010] In one possible aspect, the second sub-TLV further includes an offset amount field, the third sub-TLV further includes an offset amount field, and the fourth sub-TLV further includes an offset amount field, the offset amount field being for carrying the first offset amount.

[0011] In one possible aspect, the first message further includes an endpoint operation number and an endpoint operation, the first index value is a start index value, the start index value is an index value corresponding to a first endpoint operation included in the first message, and calculating the first SID using a boundary address of a first address space corresponding to the same block and the first index value is specifically as follows: calculating an index value corresponding to each endpoint operation included in the first message based on the number of endpoint operations and the start index value; Calculating a SID corresponding to each endpoint operation based on a boundary address of the first address space and an index value corresponding to each endpoint operation included in the first message.

[0012] In one possible aspect, the first message includes a fifth sub-TLV, the fifth sub-TLV including a block identifier field, a start SID field, an end SID field, a flag field, an algorithm field, a weight field, a number of operations field, and an endpoint operation field, the block identifier field is for carrying the first block identifier, the start SID field is for carrying a start address of the first address space, the end SID field is for carrying an end address of the first address space, the flag field is for carrying a sharing flag, the sharing flag is shared by multiple SIDs included in the block represented by the first block identifier, the algorithm field is for carrying a shared algorithm, the shared algorithm is shared by multiple SIDs included in the block represented by the first block identifier, the weight field is for carrying a sharing weight, the sharing weight is shared by multiple SIDs included in the block represented by the first block identifier, the number of operations field is for carrying the number of endpoint operations, and each endpoint operation is for carrying one endpoint operation.

[0013] In one possible embodiment, the fifth sub-TLV further includes an offset amount field, and the offset amount field is for carrying the first offset amount.

[0014] In one possible embodiment, the second message includes a sixth sub-TLV or a seventh sub-TLV; The sixth sub-TLV is for carrying an index of a link SID of a point-to-point P2P neighbor type, and the sixth sub-TLV includes a block identifier field, an index length field, and a start index field; The seventh sub-TLV is for carrying an index of a link SID of a local area network LAN neighbor type, and the seventh sub-TLV includes a block identifier field, an index length field, and a start index field, the block identifier field is for carrying the second block identifier, the index length field is for carrying the length of the start index field, and the start index field is for carrying the start index value.

[0015] In one possible embodiment, the sixth sub-TLV further includes an offset amount field, and the seventh sub-TLV further includes an offset amount field, the offset amount field being for carrying the first offset amount.

[0016] In a second aspect, an embodiment of the present application provides an electronic device, the electronic device being a first device in an SRv6 network, the SRv6 network further comprising a second device, the first device and the second device being neighbor devices of each other, the second device storing a first segment identifier SID, the electronic device comprising a processor, a transceiver, and a machine-readable storage medium storing machine-executable instructions executable by the processor, the machine-executable instructions causing the processor to: receiving a first message and a second message transmitted from the second device by a transceiver, the first message including at least one first block identifier and a boundary address of an address space corresponding to each first block identifier, and the second message including at least one second block identifier and a first index value; The first SID is calculated using a boundary address of a first address space corresponding to the same block and the first index value, and the same block is represented by the same block identifier among the at least one first block identifier and the at least one second block identifier.

[0017] In a third aspect, an embodiment of the present application provides a machine-readable storage medium having stored thereon machine-executable instructions executable by the processor, the machine-executable instructions causing the processor to perform steps of a method for identifying a segment identifier as described in any one of the preceding claims.

[0018] In a fourth aspect, an embodiment of the present application further provides a computer program product comprising instructions, which when executed by a computer, cause the computer to perform the steps of the method for identifying a segment identifier as set forth in any one of the preceding claims.

[0019] In the technical means provided by the embodiment of the present application, the SID distribution process in the related art needs to carry the complete SID, whereas in the embodiment of the present application, the first message and the second message sent by the second device to the first device do not include the first SID stored in the second device, but send the block identifier of the block to which the stored SID belongs, the boundary address of the first address space of the block, and the index value corresponding to the SID to the first device. Therefore, when the SRv6 network includes many devices, each device can accurately identify the SID distributed by the device based on the information included in the first message and the second message by sending the first message and the second message to its neighbor device. In addition, since the data amount corresponding to the block identifier included in the first message and the block identifier and the index value included in the second message is obviously smaller than the data amount corresponding to the complete SID, when there are many SIDs to be distributed in the SRv6 network, according to the method provided by the embodiment of the present application, the data amount of information to be carried by the message can be obviously reduced, and the number of messages to be sent can be reduced. This effectively reduces the message overhead in the SID distribution process, and ensures device performance and the stability of the message transfer protocol.

[0020] Of course, it is not necessary for the implementation of any product or method herein to achieve all of the above advantages simultaneously. [Brief description of the drawings]

[0021] [Figure 1-a] Figure 1-a is a schematic diagram of one SRv6 End SID sub-TLV. [Figure 1-b] Figure 1-b is a schematic diagram of one of the SRv6 End.X SID sub-TLVs. [Figure 1-c]Figure 1-c is a schematic diagram of one of the SRv6 LAN End.X SID sub-TLVs. [Diagram 2] FIG. 2 is a flowchart of a first kind of a method for identifying a segment identifier provided by an embodiment of the present application. [Diagram 3] FIG. 3 is a schematic diagram of a configuration of an SRv6 network provided by an embodiment of the present application. [Figure 4] FIG. 4 is a flowchart of a second kind of a method for identifying a segment identifier provided by an embodiment of the present application. [Diagram 5] FIG. 5 is a schematic diagram of a SID. [Figure 6] FIG. 6 is a flowchart of a third type of a method for identifying a segment identifier provided by an embodiment of the present application. [Figure 7] FIG. 7 is a flowchart of a fourth type of a method for identifying a segment identifier provided by an embodiment of the present application. [Figure 8] FIG. 8 is a flowchart of a fifth type of a method for identifying a segment identifier provided by an embodiment of the present application. [Figure 9] FIG. 9 is a flowchart of a sixth type of a method for identifying a segment identifier provided by an embodiment of the present application. [Figure 10-a] FIG. 10-a is a schematic diagram of an SRv6 SID Block sub-TLV provided by an embodiment of the present application. [Figure 10-b] FIG. 10-b is a schematic diagram of an SRv6 End.X SID Index Sub-TLV provided by an embodiment of the present application. [Figure 10-c] FIG. 10-c is a schematic diagram of an SRv6 LAN End.X SID Index Sub-TLV provided by an embodiment of the present application. [Figure 10-d] FIG. 10-d is a schematic diagram of an SRv6 End SID Index Sub-TLV provided by an embodiment of the present application. [Figure 11] FIG. 11 is a flowchart of a seventh type of a method for identifying a segment identifier provided by an embodiment of the present application. [Figure 12-a] FIG. 12-a is another schematic diagram of the Rule-based End.X SID Block sub-TLV provided by an embodiment of the present application. [Figure 12-b] FIG. 12-b is another schematic diagram of the Rule-based End.X SID Index sub-TLV provided by an embodiment of the present application. [Figure 12-c] FIG. 12-c is another schematic diagram of the Rule-based LAN End.X SID Index sub-TLV provided by an embodiment of the present application. [Figure 13-a] FIG. 13-a is a schematic diagram of a first type of configuration of a segment identifier device provided by an embodiment of the present application. [Figure 13-b] FIG. 13-b is a schematic diagram of a second type of configuration of a segment identifier device provided by an embodiment of the present application. [Figure 14] FIG. 14 is a schematic diagram of one configuration of a device provided by an embodiment of the present application. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0022] In an SRv6 network, two adjacent devices can distribute SID information through the Intermediate System-to-Intermediate System (IS-IS) protocol or Open Shortest Path First Version 3 (OSPFv3). However, in an SRv6 network, the number of devices is very large and the length of one SID reaches 128 bits, so during SID distribution, a large number of link state messages are sent between each device, and each link state message contains a large amount of data, which increases the message overhead during SID distribution, seriously affecting the performance of the device and the stability of the message transmission protocol.

[0023] For easy understanding, an example is taken of sending an SID from device 1 to device 2 in an SRv6 network based on the IS-IS protocol, where device 1 and device 2 are neighbor devices.

[0024] In an SRv6 network, when device 1 performs SID distribution, it sends a link state message to all of its corresponding neighbor devices, and the message includes a complete SID. The SID may be the device SID of device 1 (denoted as End SID). The SID may be the link SID between device 1 and the neighbor devices (denoted as End.X SID). Here, the link SID is the SID corresponding to the output interface in the message transmission process, i.e., the SID corresponding to the link through which the message is transmitted.

[0025] If the SID is a device SID, device 1 can send a link state message to device 2 (for ease of distinction, it is referred to as the first link state message). The first link state message carries an SRv6 End SID sub-TLV. Here, the SRv6End SID sub-TLV is for distributing the device SID. Specifically, as shown in Figure 1-a, Figure 1-a is a schematic diagram of the SRv6 End SID sub-TLV.

[0026] In the SRv6 End SID sub-TLV shown in Figure 1-a, in addition to including general fields such as Type, Length, Flags, and Endpoint Behavior, it further includes a SID field, which is for filling a device SID corresponding to a device. For example, in Figure 1-a, a 128-bit value of the SID field is shown.

[0027] If the SID is a link SID between devices, device 1 can send a link state message to device 2 (for ease of distinction, it is referred to as a second link state message). The second link state message carries an SRv6 End.X SID sub-TLV or an SRv6 LAN End.X SID sub-TLV. Here, the SRv6 End.X SID sub-TLV is for distributing link SIDs of a point-to-point (Peer-to-Peer, P2P) neighbor type, and the SRv6 LAN End.X SID sub-TLV is for distributing link SIDs of a local area network (LAN) neighbor type. Specifically, as shown in Figure 1-b and Figure 1-c, Figure 1-b is a schematic diagram of an SRv6 End.X SID sub-TLV, and Figure 1-c is a schematic diagram of an SRv6 LAN End.X SID sub-TLV.

[0028] In the SRv6 End.X SID sub-TLV shown in Figure 1-b and the SRv6 LAN End.X SID sub-TLV shown in Figure 1-c, in addition to including general fields such as type, length, flags, algorithm, weight, etc., it further includes a SID field for filling the link SID between devices, for example, a 128-bit value in the SID field in Figure 1-b, or a 128-bit value in the SID field in Figure 1-c.

[0029] When the device 1 sends the second link state message carrying the link SID to the device 2, the device 1 can determine whether the second link state message carries the SRv6 End.X SID sub-TLV or the SRv6 LAN End.X SID sub-TLV based on the neighbor establishment manner between the device 1 and the device 2. For example, if the device 1 and the device 2 are P2P neighbors, the device 1 sends the second link state message carrying the SRv6 End.X SID sub-TLV to the device 2. Also, for example, if the device 1 and the device 2 are LAN neighbors, the device 1 sends the second link state message carrying the SRv6 LAN End.X SID sub-TLV to the device 2.

[0030] Even when SID distribution is performed based on OSPFv3, it is realized by sending a link state message carrying SRv6 End SID sub-TLV, SRv6End.X SID sub-TLV, or SRv6 LAN End.X SID sub-TLV, but the difference is that there are certain differences in the common fields corresponding to SRv6 End SID sub-TLV, SRv6 End.XSID sub-TLV, or SRv6LAN End.X SID sub-TLV in the link state message sent by the two protocols. For example, the type field in the link state message carrying SRv6 End SID sub-TLV sent based on the IS-IS protocol occupies 8 bits, and the type field in the link state message carrying SRv6 End SID sub-TLV sent based on OSPFv3 occupies 16 bits. The process of distributing SID based on OSPFv3 can refer to the process of distributing SID based on the IS-IS protocol, so a detailed description is omitted here. In the following, for easy understanding, the SID distribution process based on the IS-IS protocol will be described as an example.

[0031] In the SID distribution process of the related technology, whether based on the IS-IS protocol or OSPFv3, the link state message must carry the complete SID, that is, the 128-bit SID. In this case, the data volume of the link state message is large. In the SRv6 network, the SID of each device and the number of link SIDs between two neighbor devices are multiple. A large number of link state messages are sent when distributing SIDs, and the data volume of each link state message is large. As a result, the message overhead of the SID distribution process is large, which affects the performance of the device and the stability of the IS-IS protocol or OSPFv3.

[0032] In order to solve the problems of the related art, an embodiment of the present application provides a method for identifying a segment identifier. As shown in Figure 2, Figure 2 is a flowchart of a first type of a method for identifying a segment identifier provided by an embodiment of the present application. The method is applied to a first device in an SRv6 network, the SRv6 network further includes a second device, the first device and the second device are neighbor devices, and the second device stores a first SID. The method specifically includes the following steps:

[0033] Step S201: Receive a first message and a second message sent from a second device, where the first message includes at least one first block identifier and a boundary address of an address space corresponding to each first block identifier, and the second message includes at least one second block identifier and a first index value.

[0034] The first message and the second message in the embodiment of the present application can be both link state messages, for example, in the process of distributing SIDs based on IS-IS protocol, the link state message can be a Link State Packet (LSP). In the process of distributing SIDs based on OSPF protocol, the link state message can be an LSA message. When the process of the embodiment of the present application is applied to other networks, appropriate messages can also be selected as the first message and the second message according to the provisions of other networking protocols.

[0035] Step S202: Calculate a first SID using a boundary address of a first address space corresponding to the same block and a first index value, where the same block is a block represented by the same block identifier among at least one first block identifier and at least one second block identifier.

[0036] The SRv6 network may include multiple devices. The first device may be any device in the SRv6 network. The first device may have one or more neighbor devices. The second device is any device in the neighbor devices of the first device. Here, the first device and the second device are not specifically limited. In the following, for easy understanding, the first device and the second device in the SRv6 network will be described as an example.

[0037] According to the method shown in FIG. 2, after receiving the first message and the second message sent from the second device, the first device can use the boundary address of the first address space of the same block and the first index value to calculate the first SID distributed by the second device. In the related art, the SID distribution process needs to carry the complete SID, whereas in the embodiment of the present application, the first message and the second message sent by the second device to the first device do not include the first SID stored in the second device, and send to the first device the block identifier of the block to which the stored SID belongs, the boundary address of the first address space of the block, and the index value corresponding to the SID. Therefore, when the SRv6 network includes many devices, each device sends the first message and the second message to its neighbor device, and the neighbor device can accurately identify the SID distributed by the device based on the information included in the first message and the second message. In addition, since the amount of data corresponding to the block identifier included in the first message and the block identifier and index value included in the second message is significantly smaller than the amount of data corresponding to the complete SID, when there are many SIDs to be distributed in an SRv6 network, according to the method provided in the embodiment of the present application, the amount of data of information to be carried in a message can be significantly reduced, and the number of messages to be sent can be reduced, thereby effectively reducing the message overhead in the SID distribution process and ensuring device performance and the stability of the message transfer protocol.

[0038] In the above step S201, i.e., receiving the first message and the second message sent from the second device, the first message includes at least one first block identifier and a boundary address of an address space corresponding to each first block identifier, and the second message includes at least one second block identifier and a first index value.

[0039] In this step, the first SID is stored in the second device. When the second device distributes the SID, it can send a first message and a second message to its neighboring devices. All of the neighboring devices of the second device can receive the first message and the second message. That is, the first device can receive the first message and the second message sent from the second device.

[0040] The first message may be a link state message (for ease of distinction, it is denoted as a third link state message, and the first message will be described as the third link state message in the following embodiment), and the first message may include a first sub-TLV, and the first sub-TLV may be an SRv6 SID Block sub-TLV included in the link state message. Here, the SRv6 SID Block sub-TLV is a sub-type-length-value (TLV) of the SRv6 Locator TLV. That is, the sub-TLV of the SRv6 Locator TLV includes the SRv6 SID Block sub-TLV. The SRv6 SID Block sub-TLV is for distributing related information of the block to which the SID belongs. According to the current protocol, the link state message includes the SRv6 Locator TLV, and the first sub-TLV in the embodiment of the present application is a sub-TLV of the SRv6 Locator TLV, but the embodiment of the present application is not limited thereto, and the first sub-TLV may be a sub-TLV of another TLV included in the first message.

[0041] The second message may be a link state message (for ease of distinction, it is denoted as a fourth link state message, and the second message is described as a fourth link state message in the following embodiment), and the second message may include a second sub-TLV, a third sub-TLV, or a fourth sub-TLV. The second sub-TLV is an SRv6 End.X SID Index Sub-TLV, the third sub-TLV is an SRv6 LAN End.X SID Index Sub-TLV, and the fourth sub-TLV is an SRv6 End SID Index Sub-TLV. Here, the SRv6End.X SID Index Sub-TLV is for distributing related information corresponding to a link SID of a P2P neighbor type, the SRv6LAN End.X SID Index Sub-TLV is for distributing related information corresponding to a link SID of a LAN neighbor type, and the SRv6End SID Index Sub-TLV is for distributing related information corresponding to a device SID.

[0042] In the above fourth link state message, the parent TLVs of the SRv6 End.X SID Index Sub-TLV and the SRv6LAN End.X SID Index Sub-TLV include, but are not limited to, Extended IS Reachability TLV (also called TLV-22), IS Neighbor Attribute TLV (also called TLV-23), L2 Bundle Member Attributes TLV (also called TLV-25), inter-AS reachability information TLV (also called TLV-141), MT-ISN TLV (also called TLV-222), and MT IS Neighbor Attribute TLV (also called TLV-223). The parent TLV of the SRv6 End SID Index Sub-TLV is the SRv6 Locator TLV. According to the current protocol definition, the second sub-TLV and the third sub-TLV in the embodiment of the present application can be the sub-TLV of the above TLV-22, TLV-23, TLV-25, TLV-141, TLV-222 or TLV-223, and the fourth sub-TLV can be the sub-TLV of the SRv6 Locator TLV. The embodiment of the present application is not limited thereto, and the second sub-TLV, the third sub-TLV and the fourth sub-TLV can also be the sub-TLV of other TLVs included in the second message.

[0043] After receiving the third link state message and the fourth link state message, the first device can identify the device corresponding to the SID distributed by the first message and the second message based on information contained in the SRv6 SID Block sub-TLV in the third link state message and the upper TLV corresponding to the SRv6 End.X SIDIndex Sub-TLV, the SRv6 LAN End.X SID Index Sub-TLV, or the SRv6 End SID Index Sub-TLV in the fourth link state message.

[0044] For easy understanding, two neighbor devices, namely device 1 and device 2, are taken as an example. When device 1 sends a first message and a second message corresponding to the link SIDs of device 1 and another neighbor device (e.g. device 3) to device 2, device 2 receives a third link state message carrying an SRv6 SID Block sub-TLV and a fourth link state message carrying an SRv6 LAN End.X SID Index Sub-TLV sent from device 1. In this case, device 2 can identify the devices corresponding to the first message and the second message sent by device 1, that is, device 1 and device 3, based on the information in the upper TLV (i.e., the above SRv6 Locator TLV) corresponding to the SRv6 SID Block sub-TLV in the received third link state message and the information in the upper TLV (the above TLV-22) corresponding to the SRv6 LAN End.X SID Index Sub-TLV in the fourth link state message.

[0045] For the above SRv6 SID Block sub-TLV, SRv6 End.X SID Index Sub-TLV, SRv6 LAN End.X SID Index Sub-TLV and SRv6 End SID Index Sub-TLV, please refer to the following description, and detailed description will be omitted here.

[0046] In the embodiment of the present application, the number of first SIDs stored in the second device may be one or more. When the number of first SIDs stored in the second device is more than one, the first SID may include a device SID of the second device and a link SID between the second device and its neighbor device, and when the multiple first SIDs stored in the second device belong to different blocks, the first message and the second message may include a block identifier of the block to which each first SID belongs.

[0047] The neighbor devices of the second device include at least the first device, and may also include other neighbor devices, where the neighbor devices of the second device are not specifically limited.

[0048] For ease of understanding, description will be given taking Fig. 3 as an example. Fig. 3 is a schematic diagram of a configuration of an SRv6 network provided by an embodiment of the present application.

[0049] Here, it is assumed that the second device is device 2 in Fig. 3, and the first device is device 3 in Fig. 3. A first SID is stored in device 2. The first SID may include a device SID and a link SID. Here, the device SID is the device SID of device 2, and the link SID may include a link SID between device 1 and device 2, and a link SID between device 2 and device 3.

[0050] In the embodiment of the present application, each device in the SRv6 network may have one or more device SIDs, and two neighbor devices may have one or more link SIDs between them. Here, the type of SID included in the first SID and the number of first SIDs are not particularly limited. In the following, for easy understanding, the distribution of one first SID is described as an example, but is not limited in any way.

[0051] In one preferred embodiment, when the first SID stored in the second device includes a device SID, the SRv6 SID Block sub-TLV in the third link state message carries a block identifier corresponding to the device SID and a boundary address of the first address space corresponding to the block identifier. The SRv6 End SIDIndex Sub-TLV in the fourth link state information carries a block identifier corresponding to the device SID and a first index value.

[0052] In another preferred embodiment, when the first SID stored in the second device includes a link SID, the SRv6 SID Block sub-TLV in the third link state message carries a block identifier corresponding to the link SID and a boundary address of the first address space corresponding to the block identifier. The SRv6 End.X SID Index Sub-TLV or the SRv6 LAN End.X SID Index Sub-TLV in the fourth link state message carries a block identifier corresponding to the link SID and a first index value.

[0053] Regarding the fourth link state message, when the first SID stored in the second device is a link SID, if the second device and the first device are P2P adjacent, the fourth link state message carries an SRv6 End.X SID Index Sub-TLV, and if the second device and the first device are LAN adjacent, the fourth link state message carries an SRv6 LAN End.X SID Index Sub-TLV.

[0054] In the embodiment of the present application, the sub-TLV carried in the fourth link state message is different according to the type corresponding to the first SID and the neighbor type between the first device and the second device. Here, the sub-TLV carried in the fourth link state message is not specifically limited.

[0055] In the embodiment of the present application, the first message and the second message may be the same message or different messages. For example, when the first message is a third link state message and the second message is a fourth link state message, the third link state message and the fourth link state message may be the same link state message or different link state messages. Here, the third link state message and the fourth link state message are not specifically limited.

[0056] In an embodiment of the present application, the first message includes a first block identifier of a first block to which the first SID belongs, a boundary address of a first address space corresponding to the first block, and a first offset amount. The second message includes a second block identifier of a second block, and a first index value corresponding to the first SID.

[0057] Since the first SID may be a device SID or a link SID, the at least one first block identifier included in the first message and the at least one second block identifier included in the second message may have the same block identifier or may have different block identifiers.

[0058] The address space corresponding to the first block may be expressed as a range of SID values ​​corresponding to the first block. The block may be divided and acquired based on a preset rule, and the detailed division method may refer to the following description, and the detailed description will be omitted here.

[0059] In the above step S202, the first SID is calculated using the boundary address of the first address space corresponding to the same block and the first index value. In the embodiment of the present application, after receiving the first message and the second message transmitted from the second device, the first device obtains the same block identifier from at least one first block identifier and at least one second block identifier, and further determines that the boundary address of the first address space corresponding to the same block identifier and the first index value indicate the same first SID.

[0060] Here, the first message may include one or more first block identifiers, and the second message may include one or more second block identifiers.

[0061] When the first message includes a first block identifier and the second message includes a second block identifier, after receiving the first message and the second message sent from the second device, the first device can determine whether the first block identifier included in the first message and the second block identifier included in the second message represent the same block, that is, by determining whether the first block identifier included in the first message and the second block identifier included in the second message are the same, the first device can determine whether the SID corresponding to the first message and the SID corresponding to the second message are the same SID.

[0062] In one preferred embodiment, when the first block identifier included in the first message and the second block identifier included in the second message are the same, that is, when the first block identifier and the second block identifier represent the same block, the first device can determine that the SID corresponding to the first block identifier and the second block identifier are the same SID, that is, the first SID. In this case, the first device can execute the above step S202, that is, the first device can determine the SID, that is, the first SID, based on the boundary address in the first address space included in the first message and the first index value included in the second message. For a specific method of determining the first SID, see the following description, but a detailed description will be omitted here.

[0063] In an embodiment of the present application, the SID is represented as a 128-bit Internet Protocol Version 6 (IPv6) address. The address space to which the first block belongs is specifically represented as a range of SID values ​​corresponding to the first block (i.e., a range of IPv6 address values). The boundary address of the first address space may be a start SID and an end SID in the range of SID values ​​corresponding to the first address space. For example, the start address in the first address space boundary address may be a start SID (i.e., Start SID) in the range of SID values ​​corresponding to the first address space. Also, for example, the boundary address of the first address space may be an end SID (i.e., End SID) in the range of SID values ​​corresponding to the first address space.

[0064] In another preferred embodiment, if the first device receives a first message and does not find a second message containing a block identifier that is the same as the block identifier in the first message, i.e., if the second message is missing a boundary address of the first address space that is necessary to calculate the SID, the first device discards the first message.

[0065] If the first device receives a second message and does not find a first message containing a block identifier that is the same as the block identifier in the second message, i.e., if the first index value required to calculate the SID is missing, the first device discards the second message.

[0066] In one preferred embodiment, taking into consideration the influence of the network environment on the link state message between the first device and the second device, if the first device does not find the first message or the second message with the same Block identifier, it waits for a preset period of time, and if it does not find the first message and the second message with the same Block identifier after the preset period has elapsed, the first device can discard the received second message or first message.

[0067] In one preferred embodiment, the first device can transmit the received first and second messages (e.g., a third link state message and a fourth link state message) after receiving the first and second messages, and the neighbor nodes of the first device can identify the first SID distributed by the second device based on the received first and second messages.

[0068] In the embodiment of the present application, the first message further includes a first offset amount, or the second message further includes a first offset amount.Therefore, the step S202 can be specifically realized as follows. The first SID is calculated based on the boundary address of the first address space, the first offset amount, and the first index value.

[0069] In a preferred embodiment, when the boundary address of the first address space is the start address of the first address space, the embodiment of the present application further provides a method for identifying a segment identifier according to the method shown in Figure 2. As shown in Figure 4, Figure 4 is a second type of flowchart for identifying a segment identifier provided by the embodiment of the present application. The method includes the following steps:

[0070] Step S401: Receive a first message and a second message sent from a second device.

[0071] Here, the first message includes at least one first block identifier, a boundary address of an address space corresponding to each first block identifier, and a first offset amount, and the second message includes at least one second block identifier and a first index value.

[0072] Alternatively, the first message includes at least one first block identifier and a boundary address of an address space corresponding to each first block identifier. The second message includes at least one second block identifier, a first index value, and a first offset amount.

[0073] Step S402: According to the address rule of the SID, the first index value corresponding to the same block is offset by the first offset amount to obtain the first offset address.

[0074] Here, the same block is a block represented by at least one first block identifier and at least one second block identifier.

[0075] In this step, when one first block identifier included in the first message and one second block identifier included in the second message indicate the same block, the first device performs offset processing on the first index value included in the second message based on the first offset amount and in accordance with the address rule of the SID to obtain a first offset address. That is, the first offset address is obtained by offsetting the first index value by the first offset amount.

[0076] In an SRv6 network, a device SID or a link SID is composed of a locator, a function, and arguments, as specifically shown in Fig. 5. Fig. 5 is a schematic diagram of a SID.

[0077] Here, Locator is used to identify the network segment to which the SID belongs. Locator is unique within the Segment Routing (SR) domain. Function is used to identify the local operation command bound to the SID, and a designated node in the SR domain performs the relevant operation based on the Function field of the SID after receiving traffic. Arguments is used to define information such as message stream and service.

[0078] For example, the first index value is 1 and the first offset amount is 16. In this case, according to the address rule of the SID described above, offsetting the first index value by the first offset amount can be expressed as the address obtained after offsetting the first index value 16 bits to the left, that is, the address 0::1:0. That is, the first offset address is 0::1:0.

[0079] In an embodiment of the present application, the address rule of the SID can be specified based on the number of bits corresponding to the Locator, Function, and Arguments included in the SID.

[0080] Step S403: A first SID is calculated based on the start address and the first offset address.

[0081] In this step, the first device can calculate the first SID corresponding to the first message and the second message based on the first offset address obtained by the offset process and the boundary address of the first address space included in the first message (i.e., the start address of the first address space). The calculation method of the first SID will be described later, but detailed description will be omitted here.

[0082] The above steps S402 to S403 are subdivisions of the above step S202.

[0083] Through the above steps S402 to S403, in the process of distributing a large amount of SIDs, the device can offset the first index value using the above first offset amount to obtain a first offset address, and accurately calculate the SIDs corresponding to the received first and second messages, i.e., the SIDs distributed by the second device to the SRv6 network, based on the first offset address and the address in the first address space. The distribution and calculation of SIDs is realized, the amount of data included in the link state message is reduced, and the accuracy of the calculated SIDs is ensured, thereby ensuring the accuracy of the distributed SIDs.

[0084] In a preferred embodiment, the present embodiment further provides a method for identifying a segment identifier according to the method shown in Fig. 4. As shown in Fig. 6, Fig. 6 is a flowchart of a third type of identifying a segment identifier provided by the present embodiment. The method includes the following steps:

[0085] Step S601: Receive a first message and a second message sent from a second device.

[0086] Here, the first message includes at least one first block identifier, a boundary address of an address space corresponding to each first block identifier, and a first offset amount, and the second message includes at least one second block identifier and a first index value.

[0087] Alternatively, the first message includes at least one first block identifier and a boundary address of an address space corresponding to each first block identifier. The second message includes at least one second block identifier, a first index value, and a first offset amount.

[0088] Step S602: According to the address rule of the SID, the first index value corresponding to the same block is offset by the first offset amount to obtain the first offset address.

[0089] The above steps S601 and S602 are the same as the above steps S401 and S402.

[0090] Step S603: The sum of the start address and the first offset address is calculated.

[0091] In this step, the first device can add the start address of the first address space and the first offset address to obtain the sum of the start address and the first offset address.

[0092] In one preferred embodiment, the first device calculates the sum of the start address and the first offset address, and then the sum can be used as an SID corresponding to the first message and the second message, i.e., the first SID.

[0093] In another preferred embodiment, in consideration of the possibility of transmission errors occurring during the transmission of the third link state message and the fourth link state message, in order to ensure the accuracy of the identified first SID, the first device can determine whether the SID corresponding to the sum of the calculated start address and the first offset address is within the first address space. That is, it is determined whether the SID corresponding to the sum of the calculated start address and the first offset address is within the range of SID values ​​corresponding to the first address space. If it is within the first address space, execute step S604. If it is not within the first address space, execute step S605.

[0094] In one preferred embodiment, the determination of whether the SID corresponding to the sum of the above-mentioned start address and the first offset address is within the first address space is specifically as follows: It is determined whether the sum of the start address and the first offset address is equal to or greater than the start address of the first address space and equal to or less than the end address of the first address space. If the sum of the start address and the first offset address is equal to or greater than the start address of the first address space and equal to or less than the end address of the first address space, it is determined that the SID corresponding to the sum is within the first address space. If the sum of the start address and the first offset address is smaller than the start address of the first address space or larger than the end address of the first address space, it is determined that the SID corresponding to the sum is not within the first address space.

[0095] In the embodiment of the present application, the sum of the start address and the first offset address is expressed as an IPv6 address, and the SID corresponding to the IPv6 address is expressed as the sum itself.

[0096] Step S604: If the SID corresponding to the total value is within the first address space, the SID corresponding to the total value is set as the first SID.

[0097] The above steps S603 to S604 are subdivisions of step S403.

[0098] Step S605: If the SID corresponding to the sum value is not within the first address space, the SID corresponding to the sum value is rejected as the first SID.

[0099] In this step, if the SID corresponding to the calculated sum of the start address and the first offset address is not present in the first address space, the first device can determine that an error has occurred in the calculated sum. In this case, the first device can reject the SID corresponding to the calculated sum as the first SID.

[0100] By determining whether an SID corresponding to the sum of the start address and the first offset address is in the first address space, it is possible to effectively detect whether an error occurs in the calculated sum, thereby avoiding the SID corresponding to an incorrect sum from being set as the first SID, and ensuring the accuracy of the obtained first SID, thereby ensuring the message transmission process based on the subsequent SID.

[0101] In a preferred embodiment, when the boundary address of the first address space is the end address of the first address space, the embodiment of the present application further provides a method for identifying a segment identifier according to the method shown in Figure 2. As shown in Figure 7, Figure 7 is a flowchart of a fourth type of identifying a segment identifier provided by the embodiment of the present application. The method includes the following steps:

[0102] Step S701: Receive a first message and a second message sent from a second device.

[0103] Here, the first message includes at least one first block identifier, a boundary address of an address space corresponding to each first block identifier, and a first offset amount, and the second message includes at least one second block identifier and a first index value.

[0104] Alternatively, the first message includes at least one first block identifier and a boundary address of an address space corresponding to each first block identifier. The second message includes at least one second block identifier, a first index value, and a first offset amount.

[0105] Step S702: According to the address rule of the SID, the first index value corresponding to the same block is offset by the first offset amount to obtain a second offset address.

[0106] Here, the same block is a block that is represented by the same block in at least one first block identifier and at least one second block identifier.

[0107] The method of obtaining the second offset address can refer to the method of obtaining the first offset address, and detailed description thereof will be omitted here.

[0108] Step S703: The first SID is calculated based on the end address and the second offset address.

[0109] In this step, the first device can calculate the first SID corresponding to the first message and the second message based on the second offset address obtained by the offset process and the boundary address of the first address space included in the first message (i.e., the end address of the first address space). The calculation method of the first SID will be described later, but detailed description will be omitted here.

[0110] The above steps S702 to S703 are subdivisions of the above step S202.

[0111] In a preferred embodiment, the present embodiment further provides a method for identifying a segment identifier, according to the method shown in Fig. 7. As shown in Fig. 8, Fig. 8 is a flowchart of a fifth type of identifying a segment identifier provided by the present embodiment. The method includes the following steps:

[0112] Step S801: Receive a first message and a second message sent from a second device.

[0113] Here, the first message includes at least one first block identifier, a boundary address of an address space corresponding to each first block identifier, and a first offset amount, and the second message includes at least one second block identifier and a first index value.

[0114] Alternatively, the first message includes at least one first block identifier and a boundary address of an address space corresponding to each block. The second message includes at least one second block identifier, a first index value, and a first offset amount.

[0115] Step S802: According to the address rule of the SID, the first index value corresponding to the same block is offset by the first offset amount to obtain a second offset address.

[0116] The above steps S801 and S802 are the same as the above steps S701 and S702.

[0117] Step S803: The difference between the end address and the second offset address is calculated.

[0118] In this step, the first device calculates the difference between the end address of the first address space and the second offset address, and is able to obtain the difference between the end address and the second offset address.

[0119] In one preferred embodiment, the first device can calculate a difference between the end address and the second offset address, and then identify the difference as an SID corresponding to the first message and the second message, i.e., the first SID.

[0120] In another preferred embodiment, in consideration of the possibility of transmission errors occurring during the transmission of the third link state message and the fourth link state message, in order to ensure the accuracy of the identified first SID, the first device can determine whether the SID corresponding to the calculated difference value between the end address and the second offset address is within the first address space. That is, it determines whether the SID corresponding to the calculated difference value between the end address and the second offset address is within the range of SID values ​​corresponding to the first address space. If it is within the first address space, execute step S804. If it is not within the first address space, execute step S805.

[0121] The manner of determining whether an SID corresponding to the difference between the above-mentioned end address and the second offset address is within the first address space may refer to the method of determining whether an SID corresponding to the sum of the above-mentioned specific start address and the first offset address is within the first address space, and detailed description thereof will be omitted here.

[0122] Step S804: If the SID corresponding to the difference value is in the first address space, the SID corresponding to the difference value is set as the first SID.

[0123] The above steps S803 to S804 are subdivisions of the above step S703.

[0124] Step S805: If the SID corresponding to the difference value is not within the first address space, the SID corresponding to the difference value is rejected as the first SID.

[0125] In this step, if the SID corresponding to the calculated difference between the end address and the second offset address is not present in the first address space, the first device can determine that an error has occurred in the calculated difference. In this case, the first device can refuse to set the SID corresponding to the difference as the first SID.

[0126] By determining whether an SID corresponding to the difference value between the end address and the second offset address is in the first address space, it is possible to effectively detect whether an error has occurred in the calculated difference value, thereby avoiding the SID corresponding to an incorrect difference value from being set as the first SID, and by ensuring the accuracy of the obtained first SID, the message transmission process based on the subsequent SID is ensured.

[0127] In the above embodiments of Fig. 4 and Fig. 6 to Fig. 8, the method of calculating the first SID has been described using the start address and end address in the first address space as an example. In addition, the first device can calculate the first SID distributed by the second device based on any address other than the start address and end address in the first address space.

[0128] For easy understanding, the calculation method of the first SID will be described by assuming that any address other than the start address and the end address in the first address space is the address A. In this case, the first offset amount may include a sign bit indicating positive or negative, for example, a sign bit value of 0 indicates a positive number, and a sign bit value of 1 indicates a negative number. The first device offsets the index value by the first offset amount according to the address rule of the SID to obtain an offset address, and then calculates a sum or difference value between the address A and the offset address based on the sign bit of the first offset amount to obtain the first SID. For example, when the sign bit of the first offset amount indicates a positive number, the first device can obtain the first SID by calculating the sum of the address A and the offset address. When the sign bit of the first offset amount indicates a negative number, the first device can obtain the first SID by calculating a difference value between the address A and the offset address.

[0129] In the embodiment of the present application, the address in the first address space used in the calculation process of the first SID is not specifically limited.

[0130] In a preferred embodiment, the first device stores a second SID, and the embodiment of the present application further provides a segment identifier identification method based on the method shown in Figure 2. As shown in Figure 9, Figure 9 is a flowchart of a sixth type of segment identifier identification provided by the embodiment of the present application. The method includes the following steps:

[0131] Step S901: Receive a first message and a second message sent from a second device, where the first message includes at least one first block identifier and a boundary address of an address space corresponding to each first block identifier, and the second message includes at least one second block identifier and a first index value.

[0132] Step S902: A first SID is calculated using the boundary address of the first address space corresponding to the same block and the first index value.

[0133] Here, the same block is a block represented by the same block identifier among at least one first block identifier and at least one second block identifier.

[0134] The above steps S901 to S902 are the same as the above steps S201 to S202.

[0135] Step S903: The stored second SID is obtained.

[0136] The second SID may include one or more of a device SID of the first device and a link SID between the first device and its neighbor node, where the second SID is not particularly limited.

[0137] Step S904: Identify a target block to which the second SID belongs based on the correspondence between each pre-defined block and the address space.

[0138] In a preferred embodiment, for each device in the SRv6 network, the device can be divided into a plurality of SID value ranges according to a preset address space division rule, and each SID value range can be a block. In this case, the preset rule is the preset address space division rule.

[0139] For easy understanding, the address space 0::100:0~0::300:0 will be described as an example. The device can divide the address space into two blocks according to a preset rule, for example, the address space corresponding to Block 1 can be 0::100:0~0::200:0, and the address space corresponding to Block 2 can be 0::201:0~0::300:0.

[0140] In another preferred embodiment, for each device in the SRv6 network, the device can partition into multiple SID value ranges according to a preset bit partitioning rule, and each SID value range can be a block. In this case, the preset rule is the preset bit partitioning rule.

[0141] For easy understanding, a division into four bits will be taken as an example. The value range of the address space is 0000 to 1111. The device can be divided into two SID value ranges based on these four bits, that is, two blocks can be obtained.

[0142] For example, the address storage space corresponding to Block A is 0000-0011, that is, the third bit and the fourth bit can be set to 0. The address storage space corresponding to Block B is 0100-1111, that is, at least one of the third bit and the fourth bit is set to 1.

[0143] The blocks may be divided and acquired based on a preset address space division rule, or may be divided and acquired based on a preset bit division rule. Here, the method of dividing the blocks is not specifically limited.

[0144] In the embodiment of the present application, the devices in the SRv6 network may be divided according to a preset rule, and the number of blocks may be the same or different. The value range of the address space corresponding to each block may be the same or different. Here, the number of blocks and the address space corresponding to each device in the SRv6 network are not specifically limited.

[0145] In one preferred embodiment, as known from known communication protocol standards, the Arguments field in the SID is 0. Therefore, when partitioning blocks according to the above-mentioned preset rules, the address space to be partitioned can be specified based on the number of bits in the Arguments field included in the SID. That is, an address space with an Arguments field of 0 is selected and partitioned to obtain one or more blocks.

[0146] In one preferred embodiment, after each device in the SRv6 network acquires one or more partitioned blocks, it can store the corresponding block identifier, i.e., block ID, assigned to each block.

[0147] After acquiring the second SID, the first device identifies the address space in which the second SID is located (hereinafter referred to as the second address space) based on the correspondence between each pre-defined block and address space, identifies the block corresponding to the second address space in which the second SID is located as the block to which the second SID belongs, and acquires the target block.

[0148] In the above embodiment, step S904 is executed after step S903. In addition, step S904 and step S901 may be executed simultaneously, or may be executed before step S901. Here, the order of execution of steps S901 and S904 is not particularly limited.

[0149] Step S905: A second index value corresponding to the second SID is identified based on the correspondence between each SID and the index value in the second address space corresponding to the target block.

[0150] In an embodiment of the present application, there is an index value corresponding to each SID in the second address space corresponding to the target block. After identifying the second address space corresponding to the target block to which the second SID belongs, the first device can identify the index value corresponding to the second SID based on the correspondence between each SID in the second address space and the index value, and set it as the second index value.

[0151] In an embodiment of the present application, an index value corresponding to each SID in the second address space can be identified based on a boundary address of the second address space.

[0152] For example, the SID value range corresponding to the second address space is 0::100:0 to 0::200:0, the start address of the second address space is 0:::100:0, the index value corresponding to 0::100:0 may be 0, the index value corresponding to 0::101:0 may be 1, and the index value corresponding to 0::102:0 may be 2. By analogy, the index value corresponding to 0:200:0 may be 256=2*16 2 -16 2 It may be.

[0153] Also, for example, the SID value range corresponding to the second address space is 0::100:0 to 0::200:0, the end address of the second address space is 0:::200:0, the index value corresponding to 0::200:0 may be 0, the index value corresponding to 0::1FF:0 may be 1, the index value corresponding to 0::1FE:0 may be 2, and by analogy therewith, the index value corresponding to 0::100:0 may be 256. In the embodiments of the present application, the method of identifying index values ​​corresponding to each SID in the second address space is not specifically limited.

[0154] Step S906: Send a third message and a fourth message to each neighbor device, where the third message includes a third block identifier of the target block and a boundary address of the second address space, and the fourth message includes the third block identifier and a second index value.

[0155] The first device can transmit a third message and a fourth message to each of its neighbor devices. After receiving the third message and the fourth message, each of the neighbor devices corresponding to the first device can identify the second SID based on the third message and the fourth message. For a method of identifying the second SID, the above method of identifying the first SID can be referred to, but detailed description will be omitted here.

[0156] In one preferred embodiment, the third message further includes a second offset amount, or the fourth message further includes a second offset amount. Before step S906, the method further includes: calculating a second offset amount of a boundary address of the second address space according to an attribute characteristic of each address in the second address space.

[0157] In one preferred embodiment, in a known communication protocol standard, the SID includes an Arguments field, and the Arguments field is located in the low address bits of the SID, and each bit corresponding to the Arguments field is 0, so that the first device can specify all the bits corresponding to the Arguments field as a second offset amount of the boundary address of the second address space.

[0158] In the embodiment of the present application, the attribute characteristic of each address in the second address space can be expressed as the number of bits whose value is 0 in the low-order address bits of each address.

[0159] The boundary address of the second address space may be, for example, a start address or an end address of the second address space.

[0160] In the embodiment of the present application, the first device may specify the second offset amount according to the actual needs of the user. In one example, the first device selects a first number of address bits from the lower address bits as the second offset amount, where the value of the first number may be 10, 20, 30, etc. In another example, the second offset amount may be 0, and when the second offset amount is 0, the second offset amount may not be carried in the third message and the fourth message.

[0161] In this example, it is understood that the second offset amount is not specified strictly based on the fields included in the conventional SID, but some address bits are selected as the second offset amount according to the actual needs of the user, and the value corresponding to each selected address bit may be 0 or 1, and the value corresponding to each address bit is not limited in the embodiment of the present application.

[0162] In the embodiment of the present application, the method of specifying the second offset amount is not particularly limited.

[0163] In the embodiment of the present application, the third message may be a link state message (referred to as a fifth link state message for easy distinction), the third message includes a sub-TLV, and the sub-TLV of the third message may be an SRv6 SID Block sub-TLV in the fifth link state message. The fourth message may be a link state message (referred to as a sixth link state message for easy distinction), the fourth message includes a sub-TLV, and the sub-TLV of the fourth message may be an SRv6 End.X SID Index Sub-TLV, an SRv6 LAN End.X SID Index Sub-TLV, or an SRv6End SID Index Sub-TLV in the sixth link state message.

[0164] In one preferred embodiment, the first device can send the third message and the fourth message to the neighbor node, and can also send the first message and the second message, where the messages sent by the first device are not specifically limited.

[0165] For easy understanding, the first to fourth sub-TLVs will be described using Figs. 10-a to 10-d as examples.

[0166] The first sub-TLV includes a block identifier field, a start SID field, and an end SID field. The block identifier field is for carrying at least one first block identifier. The start SID field is for carrying a start address of an address space corresponding to each first block. The end SID field is for carrying an end address of an address space corresponding to each first block.

[0167] As an example, the first sub-TLV may be an SRv6 SID Block sub-TLV, and Fig. 10-a is a schematic diagram of an SRv6 SID Block sub-TLV provided in an embodiment of the present application. According to the current protocol definition, the SRv6 SID Block sub-TLV includes a type field, a length field, a next sub-TLV length field (Sub-sub-tlv-len), and a next sub-TLV field (Sub-sub-TLVs). In an embodiment of the present application, the SRv6 SID Block sub-TLV includes a block identifier field (Block ID), a start SID field (Start SID), and an end SID field (End ID) in addition to the above fields.

[0168] Preferably, the SRv6 SID Block sub-TLV may further include an offset field, and the offset field may carry a first offset, and the first offset is for indicating an offset of a boundary address of an address space corresponding to a block identifier included in the SRv6 SID Block sub-TLV. Although one block identifier is illustrated in Fig. 10a, it is understood that when the SRv6 SID Block sub-TLV includes multiple block identifiers, the first offset is used to indicate an offset of a boundary address of an address space corresponding to each block identifier.

[0169] In the IS-IS protocol, the type field, length field, block identifier field, offset amount field, and next sub-TLV length field in the SRv6 SID Block sub-TLV may all occupy 8 bits, the length of the next sub-TLV field is variable, and the start SID field and end SID field may all occupy 128 bits. In other protocols, the length of each field and the arrangement order of each field are not limited to this and are not limited by the embodiments of the present application.

[0170] Preferably, the sub-TLV in the third message may be an SRv6 SID Block sub-TLV, in which case the value of the Block Identifier field of the SRv6 SID Block sub-TLV is the third Block identifier in the third message, the value of the Offset Amount field is the second offset amount in the third message, and the values ​​of the Start SID field and End SID field are the start address and end address of the second address space, respectively.

[0171] The second sub-TLV is for carrying an index of a P2P neighbor type link SID. The second sub-TLV includes a block identifier field, an index number field, an index length field, at least one index field, and an endpoint action field corresponding to each index field.

[0172] The third sub-TLV is for carrying an index of a LAN neighbor type link SID. The third sub-TLV includes a block identifier field, an index number field, an index length field, at least one index field, and an endpoint action field corresponding to each index field.

[0173] The fourth sub-TLV is for carrying an index of the device SID. The fourth sub-TLV includes a block identifier field, an index number field, an index length field, at least one index field, and an endpoint operation field corresponding to each index field.

[0174] Here, in the second, third and fourth sub-TLVs, the block identifier field is for carrying a second block identifier, the index number field is for carrying the number of indexes, the index length field is for carrying the length of the index, and the index field is for carrying one index value.

[0175] For example, the second sub-TLV may be an SRv6 End.X SID Index Sub-TLV, and the third sub-TLV may be an SRv6 LAN End.X SID Index Sub-TLV. Figure 10-b is a schematic diagram of an SRv6 End.X SID Index Sub-TLV provided by an embodiment of the present application. Figure 10-c is a schematic diagram of an SRv6 LAN End.X SID Index Sub-TLV provided by an embodiment of the present application.

[0176] According to the current protocol, both the SRv6 End.X SID Index Sub-TLV and the SRv6 LAN End.X SIDIndex Sub-TLV include a type field, a length field, a flag field, an algorithm field, and a weight field. In the embodiment of the present application, in addition to the above fields, the SRv6 LAN End.X SIDIndex Sub-TLV further includes a block identifier field (Block ID), an index number field (Index Num), an index length field (Index Length), at least one index field (Index), and an endpoint behavior field (Endpoint Behavior) corresponding to each index field. Here, if the Index Number field is Num, then at least one Index field includes Index 0, Index 1, ..., Index Num-1, and correspondingly, the Endpoint Behavior field includes Endpoint Behavior 0, Endpoint Behavior 1, ..., Endpoint Behavior Num-1.

[0177] The SRv6 End.X SID Index Sub-TLV further includes a Neighbor System Identifier field (Neighbor System-ID), and the number of bits occupied by the Neighbor System Identifier field is variable and can be determined based on the Neighbor System Identifier.

[0178] In the IS-IS protocol, the type field, length field, flag field, algorithm field, weight field, block identifier field, index number field, index length field, and each endpoint operation field in the SRv6 End.X SID Index Sub-TLV and SRv6 LAN End.X SID Index Sub-TLV may each occupy 8 bits, and the number of bits occupied by each index field is variable. In other protocols, the length of each field and the arrangement order of each field are not limited to this.

[0179] Preferably, the sub-TLV in the fourth message may be an SRv6 End.X SID Index Sub-TLV. In this case, the value of the block identifier field of the SRv6 End.X SID Index Sub-TLV may be the third block identifier in the fourth message, and the value of the index field may be the second index value in the fourth message.

[0180] Alternatively, the sub-TLV in the fourth message may be an SRv6 LAN End.X SID Index Sub-TLV. In this case, the value of the block identifier field of the SRv6 LAN End.X SID Index Sub-TLV may be the third block identifier, and the value of the index field may be the second index value in the fourth message.

[0181] The Block identifiers in both Figures 10-b and 10-c are identifiers corresponding to the link SIDs.

[0182] As an example, the fourth sub-TLV may be an SRv6 End SID Index Sub-TLV, and FIG. 10-d is a schematic diagram of an SRv6 End SID Index Sub-TLV provided by an embodiment of the present application. According to the current protocol, the SRv6 End SID Index Sub-TLV further includes a type field, a length field, and a flag field. In an embodiment of the present application, the SRv6 End SIDIndex Sub-TLV further includes, in addition to the above fields, a block identifier field (Block ID), an index number field (Index Num), an index length field (Index Length), at least one index field (Index), and an endpoint behavior field (Endpoint Behavior) corresponding to each index field. Here, if the Index Number field is Num, then at least one Index field includes Index 0, Index 1, ..., Index Num-1, and correspondingly, the Endpoint Behavior field includes Endpoint Behavior 0, Endpoint Behavior 1, ..., Endpoint Behavior Num-1.

[0183] In the IS-IS protocol, the type field, length field, flag field, algorithm field, weight field, block identifier field, index number field, index length field, and each endpoint operation field in the SRv6 End SID Index Sub-TLV may occupy 8 bits, and the number of bits occupied by each index field is variable. In other protocols, the length of each field and the arrangement order of each field are not limited to this and are not limited by the embodiments of the present application.

[0184] Preferably, the sub-TLV in the fourth message may be an SRv6 End SID Index Sub-TLV, in which case the value of the block identifier field of the SRv6 End SID Index Sub-TLV may be the third block identifier in the fourth message, and the value of the index field may be the second index value in the fourth message.

[0185] Preferably, the second sub-TLV further includes an offset amount field, the third sub-TLV further includes an offset amount field, and the fourth sub-TLV further includes an offset amount field, where the offset amount field can carry the first offset amount.

[0186] The offset amount included in the second sub-TLV is the offset amount of the address space corresponding to the block identifier included in the second sub-TLV.

[0187] The offset amount included in the third sub-TLV is the offset amount of the address space corresponding to the block identifier included in the third sub-TLV.

[0188] The offset amount included in the fourth sub-TLV is the offset amount of the address space corresponding to the block identifier included in the fourth sub-TLV.

[0189] 10-a to 10-d show TLVs in a link state message transmitted based on the IS-IS protocol. The TLVs in a link state message transmitted based on OSPFv3 are basically similar to the TLVs in a link state message transmitted based on the IS-IS protocol, and the configuration of the TLVs in a link state message transmitted based on OSPFv3 will not be specifically described here.

[0190] For easy understanding, we will take two neighbor devices, device 1 and device 2, as an example to explain the distribution process of SIDs stored in device 1. Assume that device 1 stores two device SIDs represented as 1::101:0 and 1:102:0. The number of blocks allocated by device 1 is 1, the block identifier of this block is 1, and the address space is 1:::100:0 to 1::200:0.

[0191] The index information corresponding to the SID assigned to the block in device 1 is shown in Index 1:1::101:0 and Index 2:1::102:0. The index corresponding to SID 1::101:0 is Index 1, and the index corresponding to SID1::102:0 is Index 2.

[0192] At a certain time, device 1 sends to a neighbor device, device 2, a link state message 1 carrying an SRv6 SID Block sub-TLV and a link state message 2 carrying an SRv6 End SID Index Sub-TLV. In the SRv6 SID Block sub-TLV, the block identifier (i.e., Block-ID) field is 1, the start SID field is 1::100:0, the end SID field is 1::200:0, and the offset (i.e., offset) field is 16. In the SRv6 End SID Index Sub-TLV, the segment identifier field is 1, the index number (i.e., Index Num) field is 2, the index length (i.e., Index Length) field is 1, the Index 0 field occupies 1 byte and has a value of 1 (i.e., the index value is 1), and the Index 1 field occupies 1 byte and has a value of 2 (i.e., the index value is 2).

[0193] After receiving Link State Message 1 and Link State Message 2 sent from Device 1, Device 2 can perform offset processing on the index value (i.e., 1) of index 0 of the SRv6 End SID Index Sub-TLV based on the offset value (i.e., 16) included in the offset amount field, i.e., offset index 1 16 bits to the left to obtain offset address 0::1:0. In this case, Device 2 can add offset address 0::1:0 and start SID (i.e., 1::100:0) to obtain SID 1::101:0.

[0194] For Index1 in the SRv6 End SID Index Sub-TLV, an offset can be applied to its index value (i.e., 2) based on the offset value (i.e., 16) included in the offset amount field, i.e., offsetting Index2 16 bits to the left to obtain offset address 0::2:0. In this case, device 2 can add offset address 0::2:0 to the start SID (i.e., 1::100:0) to obtain SID 1::102:0.

[0195] In this case, device 2 can determine that the SIDs distributed by device 1 are 1::101:0 and 1::102:0.

[0196] When a device has many neighbor devices or uses many Flex-Algorithms, many link SIDs (End.X SIDs) need to be distributed, which further increases the message overhead when distributing SIDs. In order to reduce the message overhead when distributing SIDs, the embodiment of the present application can further compress the message content when distributing SIDs.

[0197] According to the above, in another embodiment of the present application, the first message in step S201 further includes an endpoint operation number and an endpoint operation, and the first index value in step S201 can be a start index value, and the start index value is an index value corresponding to the first endpoint operation included in the first message. Based on this, the embodiment of the present application provides another segment identifier identification method, and as shown in FIG. 11, the method specifically includes the following steps:

[0198] Step S1101: Receive a first message and a second message sent from a second device.

[0199] The first message includes at least one first block identifier, a boundary address of an address space corresponding to each first block identifier, an endpoint operation number, and an endpoint operation. The second message includes at least one second block identifier and a first index value. Each endpoint operation included in the first message corresponds to an index value, and the index values ​​corresponding to the multiple endpoint operations included in the first message are consecutive. The first index value included in the second message is a start index value, and the start index value is an index value corresponding to the first endpoint operation included in the first message.

[0200] For example, if the number of endpoint operations included in the first message is 4, the first message contains four endpoint operations, and if the index value corresponding to the first endpoint operation is 1, the first index value included in the second message is 1.

[0201] In an embodiment of the present application, a plurality of link SIDs are stored in the second device, and the block identifiers included in the first message and the second message are all identifiers of blocks belonging to the link SIDs.

[0202] If the first message further includes an endpoint operation number and an endpoint operation, step S202 can be specifically realized as follows. Step S1102: Calculate an index value corresponding to each endpoint operation included in the first message based on the endpoint operation number and the start index value.

[0203] As can be seen, the index value corresponding to the first endpoint operation included in the first message is the start index value, the index value corresponding to the second endpoint operation is the start index value plus 1, and the index value corresponding to the third endpoint operation is the start index value plus 1 plus another 1; by analogy, an index value corresponding to each endpoint operation included in the first message can be calculated.

[0204] Preferably, step S1102 can be specifically realized as follows: The sum of the start index value and N is set as an index value corresponding to the Nth endpoint operation included in the first message, and the value of N ranges from 0 to the difference between the number of endpoint operations and 1.

[0205] For example, if the number of endpoint operations included in the first message is four, the index value corresponding to the zeroth endpoint operation included in the first message is the start index value, the index value corresponding to the first endpoint operation is the sum of the start index value and 1, the index value corresponding to the second endpoint operation is the sum of the start index value and 2, the index value corresponding to the third endpoint operation is the sum of the start index value and 3, and the index value corresponding to the fourth endpoint operation is the sum of the start index value and 4.

[0206] Step S1103: Calculate a SID corresponding to each endpoint operation based on the boundary address of the first address space and the index value corresponding to each endpoint operation included in the first message.

[0207] According to the embodiment of the present application, the SID distribution process in the related art requires the complete SID to be carried, whereas in the embodiment of the present application, the complete SID is not carried in the first message and the second message. And, when multiple link SIDs need to be distributed, the second message does not need to carry an index value corresponding to each link SID, and since the start index value is carried, the first device can calculate the index value corresponding to each endpoint operation based on the start index value included in the second message and the number of endpoint operations included in the first message to calculate the SID corresponding to each endpoint operation. In this way, when the second device includes many neighbor devices or uses many Flex-Algorithms, the method provided by the embodiment of the present application can reduce the amount of data required for the second message and the message overhead when distributing link SIDs, thereby ensuring the performance of the device and the stability of the message transmission protocol.

[0208] In one possible embodiment, when neither the first message nor the second message includes the first offset amount, the above S1103 can be specifically realized as follows: An index value corresponding to each endpoint operation is set as a first offset address, and a SID corresponding to each endpoint operation is calculated based on a boundary address of the first address space and the first offset address corresponding to each endpoint operation.

[0209] In another possible embodiment, the first message further includes a first offset amount, or the second message further includes a first offset amount. When the first message or the second message includes the first offset amount, the above S1103 specifically includes the following steps:

[0210] Step A: According to the address rule of the SID, the index value corresponding to each endpoint operation is offset by a first offset amount to obtain a first offset address corresponding to each endpoint operation.

[0211] Step B: Calculate a SID corresponding to each endpoint operation based on the boundary address of the first address space and the first offset address corresponding to each endpoint operation.

[0212] Here, when the boundary address of the first address space is the start address of the first address space, step B specifically includes calculating the sum of the start address and a first offset address corresponding to each endpoint operation, and when each calculated sum is within the first address space, setting each calculated sum as the SID of each endpoint operation.

[0213] Alternatively, if the boundary address of the first address space is an end address of the first address space, step B specifically includes calculating a difference value between the end address and a first offset address corresponding to each endpoint operation, and if each calculated difference value is within the first address space, setting each calculated difference value as the SID of each endpoint operation.

[0214] In step B, the method of calculating a SID corresponding to each endpoint operation based on the boundary address of the first address space and each first offset address is the same as the method of calculating the first SID based on the boundary address of the first address space and each first offset address in the above embodiment, and the explanation of the above embodiment can be referred to, so a detailed explanation is omitted here.

[0215] In an embodiment corresponding to FIG. 11, the first message may include a fifth sub-TLV, which includes a Block Identifier field, a Start SID field, an End SID field, a Flags field, an Algorithm field, a Weight field, a Number of Operations field, and an Endpoint Operation field.

[0216] Here, the block identifier field is for carrying a first block identifier, the start SID field is for carrying a start address of the first address space, and the end SID field is for carrying an end address of the first address space.

[0217] The flag field is for carrying a shared flag, and the shared flag is shared by multiple SIDs included in the block represented by the first block identifier. The algorithm field is for carrying a shared algorithm, and the shared algorithm is shared by multiple SIDs included in the block represented by the first block identifier. The weight field is for carrying a shared weight, and the shared weight is shared by multiple SIDs included in the block represented by the first block identifier.

[0218] The operation number field is for carrying the endpoint operation number, and each endpoint operation is for carrying one endpoint operation.

[0219] Preferably, the first message may be a link state message, and the fifth sub-TLV may be a Rule-based End.X SID Block sub-TLV included in the link state message. According to the current protocol, the link state message includes an SRv6 Locator TLV, and the fifth sub-TLV in the embodiment of the present application is a sub-TLV of the SRv6 Locator TLV, but is not limited by the embodiment of the present application, and the fifth sub-TLV may be a sub-TLV of another TLV included in the first message.

[0220] As shown in Figure 12-a, Figure 12-a is a schematic diagram of a Rule-based End.X SID Block sub-TLV provided by an embodiment of the present application, according to the current protocol definition, the Rule-based End.X SID Block sub-TLV includes a type field, a length field, a next sub-TLV length field (Sub-sub-tlv-len) and a next sub-TLV field (Sub-sub-TLVs). In the embodiment of the present application, in addition to the above fields, the Rule-based End.X SID Block sub-TLV further includes a block identifier field, a start SID field, an end SID field, a flag field, an algorithm field, a weight field, an action number field and an endpoint action field.

[0221] Preferably, the Rule-based End.X SID Block sub-TLV may further include an offset amount field, and the offset amount field may carry a first offset amount, and the first offset amount is for indicating an offset amount of a boundary address of an address space corresponding to a block identifier included in the Rule-based End.X SID Block sub-TLV. Taking one block identifier as an example in Figure 12a, it can be understood that when the Rule-based End.X SID Block sub-TLV includes multiple block identifiers, the first offset amount is used to indicate an offset of a boundary address of an address space corresponding to each block identifier.

[0222] The number of bits occupied by the fields originally included in the Rule-based End.X SID Block sub-TLV is the number of bits specified in the IS-IS protocol, and the number of bits occupied by the newly added fields can be set based on actual needs, and the embodiment of the present application is not limited thereto. Figure 12-a is an example, and the length of each field and the arrangement order of each field are not limited thereto.

[0223] In an embodiment corresponding to FIG. 11, the second message may include the sixth sub-TLV or the seventh sub-TLV.

[0224] The sixth sub-TLV is for carrying the index of the link SID of the P2P neighbor type. The sixth sub-TLV includes a block identifier field, an index length field, and a start index field.

[0225] The seventh sub-TLV is for carrying an index of a link SID of a neighbor type of the local area network LAN. The seventh sub-TLV includes a block identifier field, an index length field, and a start index field.

[0226] Here, the block identifier field is for carrying a second block identifier, the index length field is for carrying a start index field length, and the start index field is for carrying the start index value.

[0227] Preferably, the second message may be a link state message, the sixth sub-TLV may be a Rule-based End.X SID Index sub-TLV included in the link state message, and the seventh sub-TLV may be a Rule-based LAN End.X SID Index sub-TLV included in the link state message. According to the current protocol definition, the sixth sub-TLV and the seventh sub-TLV in the embodiment of the present application may be sub-TLVs of the above TLV-22, TLV-23, TLV-25, TLV-141, TLV-222 or TLV-223. However, the embodiment of the present application is not limited thereto, and the sixth sub-TLV and the seventh sub-TLV may be sub-TLVs of other TLVs included in the second message.

[0228] FIG. 12-b is a schematic diagram of a Rule-based End.X SID Index sub-TLV provided by an embodiment of the present application, and FIG. 12-c is a schematic diagram of a Rule-based LAN End.X SID Index sub-TLV provided by an embodiment of the present application.

[0229] According to the current protocol, both the Rule-based End.X SID Index sub-TLV and the Rule-based LAN End.X SID Index sub-TLV include a type field and a length field. In the embodiment of the present application, the flag field, algorithm field and weight field originally included in the Rule-basedEnd.X SID Index sub-TLV and the Rule-based LAN End.X SID Index sub-TLV are carried in the above-mentioned 5th sub-TLV, and the 6th sub-TLV and the 7th sub-TLV carrying the same Block identifier as the 5th sub-TLV can share the flag field, algorithm field and weight field carried in the 5th sub-TLV. This can further reduce the message overhead in the link SID distribution process.

[0230] In the embodiment of the present application, the Rule-based End.X SID Index sub-TLV and the Rule-based LAN End.X SID Index sub-TLV may further include a block identifier field, an index length field, and a start index field. That is, the Rule-based End.X SID Index sub-TLV and the Rule-based LAN End.X SID Index sub-TLV do not need to carry the indexes of all link SIDs to be notified, but only the index of the first link SID among multiple link SIDs with consecutive indexes. This can further reduce the message overhead when distributing link SIDs.

[0231] Preferably, the sixth sub-TLV (Rule-based End.X SID Index sub-TLV) may further include an offset amount field, and the seventh sub-TLV (Rule-based LAN End.X SID Index sub-TLV) may further include an offset amount field, which is for carrying the first offset amount.

[0232] The first offset included in the Rule-based End.X SID Index sub-TLV is intended to indicate the boundary address of the address space corresponding to the block identifier included in the Rule-based End.X SID Index sub-TLV. The first offset amount included in the Rule-based LAN End.X SID Index sub-TLV is intended to indicate the offset amount of the boundary address of the address space corresponding to the block identifier included in the Rule-based LAN End.X SID Index sub-TLV.

[0233] The number of bits occupied by the fields originally included in the Rule-based End.X SID Index sub-TLV and Rule-based LAN End.X SID Index sub-TLV is the number of bits specified in the IS-IS protocol, and the number of bits occupied by the newly added fields can be set based on actual needs, and the embodiment of the present application is not limited thereto. Figures 12-b and 12-b are examples, and the length of each field and the arrangement order of each field are not limited thereto.

[0234] In one preferred embodiment, based on the above embodiment, in the embodiment shown in Figure 9, the first device can store a plurality of SIDs with consecutive indexes, and the first SID in the plurality of SIDs with consecutive indexes is the second SID. That is, the second index value included in the fourth message is the index value of the first SID in the plurality of SIDs with consecutive indexes. The third message further includes an endpoint operation number and an endpoint operation, where the endpoint operation number is the number of SIDs with consecutive indexes, and the plurality of SIDs with consecutive indexes respectively correspond to the endpoint operations included in the third message.

[0235] Here, the sub-TLV included in the third message may have the same TLV configuration as that shown in FIG. 12-a, and the sub-TLV included in the third message may have the same TLV configuration as that shown in FIG. 12-b or FIG. 12-c.

[0236] Based on the same inventive concept, according to the above-mentioned segment identifier identification method provided by the embodiment of the present application, the embodiment of the present application further provides a segment identifier identification device. As shown in Fig. 13-a, Fig. 13-a is a schematic diagram of the configuration of a first type of segment identifier device provided by the embodiment of the present application. The device is applied to the above-mentioned first device, and specifically includes the following modules:

[0237] A receiving module 1301: for receiving a first message and a second message sent from a second device, where the first message includes at least one first block identifier and a boundary address of an address space corresponding to each first block identifier, and the second message includes at least one second block identifier and a first index value. Calculation module 1302: for calculating a first SID using a boundary address of a first address space and a first index value corresponding to the same block, where the same block is a block represented by the same block identifier among at least one first block identifier and at least one second block identifier.

[0238] Preferably, the first message further includes a first offset amount, or the second message further includes a first offset amount, and the calculation module 1302 is specifically for calculating the first SID based on the boundary address of the first address space, the first offset amount, and the first index value.

[0239] Preferably, the boundary address of the first address space is a start address of the first address space; Specifically, the calculation module 1302 is for offsetting the first index value by a first offset amount in accordance with the address rule of the SID to obtain a first offset address, and calculating the first SID based on the start address and the first offset address.

[0240] Preferably, the calculation module 1302 specifically calculates the sum of the start address and the first offset address, and if the SID corresponding to the sum is within the first address space, sets the SID corresponding to the sum as the first SID.

[0241] Preferably, the boundary address of the first address space is an end address of the first address space. Specifically, the calculation module 1302 is for offsetting the first index value by a first offset amount in accordance with the address rule of the SID to obtain a second offset address, and calculating the first SID based on the end address and the second offset address.

[0242] Preferably, the calculation module 1302 specifically calculates a difference between an end address and a second offset address, and if the SID corresponding to the difference is within the first address space, sets the SID corresponding to the difference as the first SID.

[0243] Preferably, the first message includes a first sub-TLV, the first sub-TLV including a block identifier field, a start SID field, and an end SID field; Here, the block identifier field is for carrying at least one first block identifier, the start SID field is for carrying the start address of the address space corresponding to each first block, and the end SID field is for carrying the end address of the address space corresponding to each first block.

[0244] Preferably, the first sub-TLV further includes an offset amount field, and the offset amount field is for carrying the first offset amount.

[0245] Preferably, the second message includes a second sub-TLV, a third sub-TLV or a fourth sub-TLV; The second sub-TLV is for carrying an index of a link SID of a point-to-point P2P neighbor type, and the second sub-TLV includes a block identifier field, an index number field, an index length field, at least one index field, and an endpoint operation field corresponding to each index field; The third sub-TLV is for carrying an index of a link SID of a local area network LAN neighbor type, and the third sub-TLV includes a block identifier field, an index number field, an index length field, at least one index field, and an endpoint action field corresponding to each index field; The fourth sub-TLV is for carrying an index of the device SID, and the fourth sub-TLV includes a block identifier field, an index number field, an index length field, at least one index field, and an endpoint operation field corresponding to each index field; Here, the block identifier field is for carrying the second block identifier, the index number field is for carrying the quantity of indexes, the index length field is for carrying the length of the index, each index field is for carrying one index value, and each endpoint operation field is for carrying an endpoint operation corresponding to one index value.

[0246] Preferably, the second sub-TLV further includes an offset amount field, the third sub-TLV further includes an offset amount field, and the fourth sub-TLV further includes an offset amount field, where the offset amount field is for carrying the first offset amount.

[0247] Preferably, the first message further includes an endpoint operation number and an endpoint operation, and the first index value is a start index value, and the start index value is an index value corresponding to a first endpoint operation included in the first message; Specifically, the calculation module 1302 is for calculating an index value corresponding to each endpoint operation included in the first message based on the number of endpoint operations and a start index value, and for calculating a SID corresponding to each endpoint operation based on the boundary address of the first address space and the index value corresponding to each endpoint operation included in the first message.

[0248] Preferably, the calculation module 1302 is specifically for calculating the sum of the start index value and N as an index value corresponding to the Nth endpoint operation included in the first message, and the value of N ranges from 0 to the difference between the number of endpoint operations and 1.

[0249] Preferably, the first message further includes a first offset amount, or the second message further includes a first offset amount; Specifically, the calculation module 1302 is for offsetting an index value corresponding to each endpoint operation by a first offset amount in accordance with an address rule of the SID, obtaining a first offset address corresponding to each endpoint operation, and calculating a SID corresponding to each endpoint operation based on the boundary address of the first address space and the first offset address corresponding to each endpoint operation.

[0250] Preferably, the boundary address of the first address space is a start address of the first address space; Specifically, the calculation module 1302 calculates the sum of the start address and the first offset address corresponding to each endpoint operation, and if each calculated sum is within the first address space, sets each calculated sum as the SID of each endpoint operation.

[0251] Preferably, the boundary address of the first address space is an end address of the first address space; Specifically, the calculation module 1302 calculates the difference between the start address and a first offset address corresponding to each endpoint operation, and if each of the calculated difference values ​​is within the first address space, sets each of the calculated difference values ​​as the SID of each endpoint operation.

[0252] Preferably, the first message includes a fifth sub-TLV, the fifth sub-TLV including a block identifier field, a start SID field, an end SID field, a flag field, an algorithm field, a weight field, an operation number field, and an endpoint operation field; Here, the block identifier field is for carrying a first block identifier, the start SID field is for carrying a start address of the first address space, the end SID field is for carrying an end address of the first address space, and the flag field is for carrying a shared flag, which is shared by multiple SIDs included in the block represented by the first block identifier, The algorithm field is for carrying a shared algorithm, and the shared algorithm is shared by multiple SIDs included in the Block represented by the first Block identifier; the weight field is for carrying a shared weight, and the shared weight is shared by multiple SIDs included in the Block represented by the first Block identifier; the number of operations field is for carrying the number of endpoint operations, and each endpoint operation is for carrying one endpoint operation.

[0253] Preferably, the fifth sub-TLV further includes an offset amount field, and the offset amount field is for carrying the first offset amount.

[0254] Preferably, the second message includes a sixth sub-TLV or a seventh sub-TLV; The sixth sub-TLV is for carrying an index of a link SID of a point-to-point P2P neighbor type, and the sixth sub-TLV includes a block identifier field, an index length field, and a start index field; The seventh sub-TLV is for carrying an index of a link SID of a local area network LAN neighbor type, and the seventh sub-TLV includes a block identifier field, an index length field, and a start index field; Here, the block identifier field is for carrying a second block identifier, the index length field is for carrying the length of the start index field, and the start index field is for carrying a start index value.

[0255] Preferably, the sixth sub-TLV further includes an offset amount field, and the seventh sub-TLV further includes an offset amount field, where the offset amount field is for carrying the first offset amount.

[0256] Preferably, the first device stores the second SID. As shown in FIG. 13-b, the segment identifier identifying device further comprises: an acquisition module 1303 used to acquire the stored second SID; A first identification module 1304 is used to identify a target block to which the second SID belongs based on a correspondence relationship between each block and an address space that has been previously divided; A second identification module 1305 is used to identify a second index value corresponding to a second SID based on a correspondence relationship between each SID and an index value in a second address space corresponding to a target block; The device further includes a sending module 1306 for sending a third message and a fourth message to each neighbor device, the third message including a third block identifier of the target block, a second offset amount, and a boundary address of the second address space, and the fourth message including the third block identifier and the second index value.

[0257] Preferably, the first device stores a plurality of SIDs with consecutive indexes, and a first SID in the plurality of SIDs with consecutive indexes is the second SID; The third message further includes an endpoint operation number and an endpoint operation, where the endpoint operation number is the number of SIDs with consecutive indexes, and the multiple SIDs with consecutive indexes have a one-to-one correspondence with the endpoint operations included in the third message.

[0258] Preferably, the calculation module 1302 is for calculating a second offset amount of the boundary address of the second address space based on the attribute characteristic of each address in the second address space.

[0259] Based on the same inventive concept, according to the above-mentioned method for identifying a segment identifier provided by the embodiment of the present application, the embodiment of the present application further provides an electronic device, as shown in Fig. 14, comprising a processor 1401, a machine-readable storage medium 1402, and a transceiver 1404. The machine-readable storage medium 1402 stores machine-executable instructions executable by the processor 1401, and the machine-executable instructions cause the processor 1401 to: receiving a first message and a second message transmitted by the transceiver 1404 from a second device, the first message including at least one first block identifier and a boundary address of an address space corresponding to each first block identifier, and the second message including at least one second block identifier and a first index value; The method executes the following: calculating a first SID using a boundary address of a first address space corresponding to the same block and a first index value, where the same block is a block represented by the same block identifier among at least one first block identifier and at least one second block identifier.

[0260] Preferably, the first message further includes a first offset amount, or the second message further includes the first offset amount, and the machine-executable instructions cause the processor 1401 to calculate a first SID based on a boundary address of the first address space, the first offset amount, and the first index value.

[0261] Preferably, the boundary address of the first address space is a start address of the first address space; The machine-executable instructions cause the processor 1401 to offset the first index value by a first offset amount in accordance with an address rule of the SID to obtain a first offset address, and calculate a first SID based on the start address and the first offset address.

[0262] Preferably, the machine-executable instructions further cause the processor 1401 to calculate a sum of the start address and the first offset address, and if the SID corresponding to the sum is within the first address space, set the SID corresponding to the sum as the first SID.

[0263] Preferably, the boundary address of the first address space is an end address of the first address space; The machine-executable instructions further cause the processor 1401 to offset the first index value by a first offset amount to obtain a second offset address according to an address rule of the SID, and calculate the first SID based on the end address and the second offset address.

[0264] Preferably, the machine-executable instructions further cause the processor 1401 to calculate a difference value between the end address and the second offset address, and if the SID corresponding to the difference value is within the first address space, set the SID corresponding to the difference value as the first SID.

[0265] Preferably, the first message includes a first sub-TLV, the first sub-TLV including a block identifier field, a start SID field, and an end SID field, the block identifier field is for carrying at least one first block identifier, the start SID field is for carrying a start address of an address space corresponding to each first block, and the end SID field is for carrying an end address of the address space corresponding to each first block.

[0266] Preferably, the first sub-TLV further includes an offset amount field, and the offset amount field is for carrying the first offset amount.

[0267] Preferably, the second message includes a second sub-TLV, a third sub-TLV or a fourth sub-TLV; The second sub-TLV is for carrying an index of a link SID of a point-to-point P2P neighbor type, and the second sub-TLV includes a block identifier field, an index number field, an index length field, at least one index field, and an endpoint operation field corresponding to each index field; The third sub-TLV is for carrying an index of a link SID of a local area network LAN neighbor type, and the third sub-TLV includes a block identifier field, an index number field, an index length field, at least one index field, and an endpoint action field corresponding to each index field; The fourth sub-TLV is for carrying an index of the device SID, and the fourth sub-TLV includes a block identifier field, an index number field, an index length field, at least one index field, and an endpoint operation field corresponding to each index field; Here, the block identifier field is for carrying a second block identifier, the index number field is for carrying the quantity of indexes, the index length field is for carrying the length of the index, each index field is for carrying one index value, and each endpoint operation field is for carrying an endpoint operation corresponding to one index value.

[0268] Preferably, the second sub-TLV further includes an offset amount field, the third sub-TLV further includes an offset amount field, and the fourth sub-TLV further includes an offset amount field, where the offset amount field is for carrying the first offset amount.

[0269] Preferably, the first message further includes an endpoint operation number and an endpoint operation, and the first index value is a start index value, and the start index value is an index value corresponding to a first endpoint operation included in the first message; The machine-executable instructions cause the processor 1401 to calculate an index value corresponding to each endpoint operation included in the first message based on the number of endpoint operations and a start index value, and calculate a SID corresponding to each endpoint operation based on a boundary address of the first address space and the index value corresponding to each endpoint operation included in the first message.

[0270] Preferably, the machine executable instructions cause the processor 1401 to execute an index value corresponding to the Nth endpoint operation included in the first message, the sum of the start index value and N being a value ranging from 0 to the difference between the number of endpoint operations and 1.

[0271] Preferably, the first message further includes a first offset amount, or the second message further includes the first offset amount, and the machine-executable instructions cause the processor 1401 to execute: offsetting an index value corresponding to each endpoint operation by the first offset amount according to an address rule of the SID, obtaining a first offset address corresponding to each endpoint operation, and calculating a SID corresponding to each endpoint operation based on a boundary address of the first address space and the first offset address corresponding to each endpoint operation.

[0272] Preferably, the boundary address of the first address space is a start address of the first address space, and the machine-executable instructions cause the processor 1401 to calculate a sum of the start address and a first offset address corresponding to each endpoint operation, and if each calculated sum is within the first address space, set each calculated sum as the SID of each endpoint operation.

[0273] Preferably, the boundary address of the first address space is an end address of the first address space, and the machine-executable instructions cause the processor 1401 to calculate a difference between the start address and a first offset address corresponding to each endpoint operation, and if each of the calculated difference values ​​is within the first address space, set each of the calculated difference values ​​as a SID for each endpoint operation.

[0274] Preferably, the first message includes a fifth sub-TLV, the fifth sub-TLV including a Block Identifier field, a Start SID field, an End SID field, a Flags field, an Algorithm field, a Weight field, an Action Count field, and an Endpoint Action field. Here, the block identifier field is for carrying the first block identifier, the start SID field is for carrying the start address of the first address space, the end SID field is for carrying the end address of the first address space, the flag field is for carrying a shared flag, which is shared by multiple SIDs included in the block represented by the first block identifier, the algorithm field is for carrying a shared algorithm, which is shared by multiple SIDs included in the block represented by the first block identifier, the weight field is for carrying a shared weight, which is shared by multiple SIDs included in the block represented by the first block identifier, and the number of operations field is for carrying the number of endpoint operations, each endpoint operation being for carrying one endpoint operation.

[0275] Preferably, the fifth sub-TLV further includes an offset amount field, and the offset amount field is for carrying the first offset amount.

[0276] Preferably, the second message includes a 6th Sub-TLV or a 7th Sub-TLV, the 6th Sub-TLV is for carrying an index of a link SID of a point-to-point P2P neighbor type, the 6th Sub-TLV includes a block identifier field, an index length field, and a start index field, the 7th Sub-TLV is for carrying an index of a link SID of a local area network LAN neighbor type, the 7th Sub-TLV includes a block identifier field, an index length field, and a start index field, the block identifier field is for carrying the second Block identifier, the index length field is for carrying the length of the start index field, and the start index field is for carrying the start index value.

[0277] Preferably, the sixth sub-TLV further includes an offset amount field, and the seventh sub-TLV further includes an offset amount field, where the offset amount field is for carrying the first offset amount.

[0278] Preferably, the first device stores the second SID. The machine executable instructions cause the processor 1401 to execute the following: obtain the stored second SID; identify a target block to which the second SID belongs based on the correspondence between each block and the address space pre-defined; identify a second index value corresponding to the second SID based on the correspondence between each SID and an index value in the second address space corresponding to the target block; and transmit a third message and a fourth message to each neighbor device by the transceiver 1404, the third message including a third block identifier of the target block and a boundary address of the second address space, and the fourth message including the third block identifier and the second index value.

[0279] Preferably, the first device stores a plurality of SIDs with consecutive indexes, and a first SID in the plurality of SIDs with consecutive indexes is the second SID; The third message further includes an endpoint operation number and an endpoint operation, where the endpoint operation number is the number of SIDs with consecutive indexes, and the multiple SIDs with consecutive indexes have a one-to-one correspondence with the endpoint operations included in the third message.

[0280] Preferably, the third message further includes a second offset, or the fourth message further includes a second offset, and the machine-executable instructions cause the processor 1401 to calculate a second offset amount of a boundary address of the second address space based on attribute characteristics of each address in the second address space.

[0281] As shown in Fig. 14, the electronic device may further include a communication bus 1403. The processor 1401, the machine-readable storage medium 1402, and the transceiver 1404 communicate with each other via the communication bus 1403. The communication bus 1403 may be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The communication bus 1403 may be divided into an address bus, a data bus, a control bus, etc.

[0282] The transceiver 1404 may be a wireless communication module, which exchanges data with other devices (ACs and terminals) under the control of the processor 1401.

[0283] The machine-readable storage medium 1402 may include a Random Access Memory (RAM) or a Non-Volatile Memory (NVM), such as at least one magnetic disk device. The machine-readable storage medium 1402 may also be at least one storage device remote from the processor.

[0284] The processor 1401 may be a general-purpose processor including a Central Processing Unit (CPU), a Network Processor (NP), etc., or may be a Digital Signal Processing (DSP), an Application Specific Integrated Circuit (ASIC), a Field-Programmable Gate Array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component.

[0285] Based on the same inventive concept, according to the method for identifying a segment identifier provided by the embodiment of the present application as described above, the embodiment of the present application further provides a machine-readable storage medium, which stores machine-executable instructions, the machine-executable instructions causing a processor to perform the steps of the method according to any one of the above claims.

[0286] In another embodiment provided herein, a computer program product is further provided, the computer program product including instructions, which when executed by a computer, causes the computer to perform the steps of the method for identifying a segment identifier of any of the above-mentioned embodiments.

[0287] It should be noted that, in this specification, relational terms such as first and second are merely used to distinguish one entity or operation from another entity or operation, and do not require or imply that such a physical relationship or order exists between the entities or operations. Also, the terms "comprise," "include," and other variations are intended to be non-exclusive inclusive, such that a process, method, article, or device that includes a set of elements includes not only those elements, but also other elements not expressly listed, or includes the inherent elements in such process, method, article, or device. Unless otherwise specifically limited, an element limited by "including a ..." does not exclude that the process, method, article, or device that includes the above element also has other identical elements.

[0288] In addition, although the embodiments in this specification are described as being related to each other, the same or similar parts between the embodiments may be referred to each other, and the differences between each embodiment and other embodiments will be mainly described. In particular, the embodiments of the segment identifier specifying apparatus, device, and machine-readable storage medium are almost similar to the embodiments of the segment identifier specifying method, so that the description is simple, and the relevant parts may be referred to the embodiments of the segment identifier specifying method.

[0289] The above description is merely a preferred embodiment of the present application, and does not limit the scope of protection of the present application. Any amendments, equivalent replacements, modifications, etc. made within the spirit and principles of the present application shall be included in the scope of protection of the present application.

Claims

1. A method for identifying a segment identifier applied to a first device in an SRv6 network, the SRv6 network further comprising a second device, the first device and the second device being neighbor devices, the second device storing a first SID which is a first segment identifier, the method comprising: receiving a first message and a second message transmitted from the second device, the first message including at least one first block identifier and a boundary address of an address space corresponding to each first block identifier, and the second message including at least one second block identifier and a first index value; calculating the first SID by using a boundary address of a first address space corresponding to the same block and the first index value, the same block being a block represented by a same block identifier among the at least one first block identifier and the at least one second block identifier; The first message further includes a first offset amount, or the second message further includes a first offset amount; Calculating the first SID by using a boundary address of a first address space corresponding to the same block and the first index value, calculating the first SID based on a boundary address of the first address space, the first offset amount, and the first index value; 13. A method for identifying a segment identifier, comprising:

2. a boundary address of the first address space is a start address of the first address space, Calculating the first SID based on a boundary address of the first address space, the first offset amount, and the first index value includes: offsetting the first index value by the first offset amount according to an address rule of an SID to obtain a first offset address; calculating the first SID based on the start address and the first offset address; 2. The method according to claim 1 .

3. Calculating the first SID based on the start address and the first offset address includes: calculating a sum of the start address and the first offset address; If the SID corresponding to the sum is within the first address space, the SID corresponding to the sum is set as the first SID.

3. The method according to claim 2 .

4. a boundary address of the first address space is an end address of the first address space, Calculating the first SID based on a boundary address of the first address space, the first offset amount, and the first index value includes: offsetting the first index value by the first offset amount according to an address rule of an SID to obtain a second offset address; calculating the first SID based on the end address and the second offset address; 2. The method according to claim 1 .

5. Calculating the first SID based on the end address and the second offset address includes: calculating a difference between the end address and the second offset address; If the SID corresponding to the difference value is within the first address space, the SID corresponding to the difference value is set as the first SID.

5. The method according to claim 4 .

6. The first message includes a first sub-TLV, the first sub-TLV including a block identifier field, a start SID field, and an end SID field; the block identifier field is for carrying the at least one first block identifier; The start SID field is for carrying the start address of the address space corresponding to each first block, The end SID field is for carrying the end address of the address space corresponding to each first block.

2. The method according to claim 1 .

7. The first sub-TLV further includes an offset amount field, and the offset amount field is for carrying a first offset amount.

7. The method according to claim 6 .

8. the second message includes a second sub-TLV, a third sub-TLV, or a fourth sub-TLV; The second sub-TLV is for carrying an index of a link SID of a point-to-point P2P neighbor type, and the second sub-TLV includes a block identifier field, an index number field, an index length field, at least one index field, and an endpoint operation field corresponding to each index field; The third sub-TLV is for carrying an index of a link SID of a local area network (LAN) neighbor type, and the third sub-TLV includes a block identifier field, an index number field, an index length field, at least one index field, and an endpoint action field corresponding to each index field; The fourth sub-TLV is for carrying an index of a device SID, and the fourth sub-TLV includes a block identifier field, an index number field, an index length field, at least one index field, and an endpoint operation field corresponding to each index field; the block identifier field is for carrying the second block identifier; The index number field is for carrying the number of indexes; The index length field is for carrying the length of the index, Each index field is intended to carry one index value, Each endpoint action field is for carrying an endpoint action corresponding to one index value.

2. The method according to claim 1 .

9. The second sub-TLV further includes an offset amount field, the third sub-TLV further includes an offset amount field, and the fourth sub-TLV further includes an offset amount field, the offset amount field being for carrying the first offset amount.

9. The method according to claim 8.

10. The first message further includes an endpoint operation number and an endpoint operation; the first index value is a start index value, the start index value being an index value corresponding to a first endpoint operation included in the first message; Calculating the first SID by using a boundary address of a first address space corresponding to the same block and the first index value, calculating an index value corresponding to each endpoint operation included in the first message based on the number of endpoint operations and the start index value; calculating an SID corresponding to each endpoint operation based on a boundary address of the first address space and an index value corresponding to each endpoint operation included in the first message.

2. The method according to claim 1 .

11. Calculating an index value corresponding to each endpoint operation included in the first message based on the number of endpoint operations and the start index value, The sum of the start index value and N is an index value corresponding to the N-th endpoint operation included in the first message, and the value of N ranges from 0 to the difference between the number of endpoint operations and 1.

11. The method according to claim 10.

12. The first message further includes a first offset amount, or the second message further includes a first offset amount; Calculating an SID corresponding to each endpoint operation based on a boundary address of the first address space and an index value corresponding to each endpoint operation included in the first message, offsetting an index value corresponding to each endpoint operation by the first offset amount according to an address rule of the SID to obtain a first offset address corresponding to each endpoint operation; calculating an SID corresponding to each endpoint operation based on a boundary address of the first address space and a first offset address corresponding to each endpoint operation; 12. The method according to claim 10 or 11.

13. a boundary address of the first address space is a start address of the first address space, Calculating an SID corresponding to each endpoint operation based on a boundary address of the first address space and a first offset address corresponding to each endpoint operation, calculating a sum of the start address and a first offset address corresponding to each endpoint operation; and if each calculated sum is within the first address space, setting each calculated sum as an SID for each endpoint operation.

13. The method according to claim 12.

14. a boundary address of the first address space is an end address of the first address space, Calculating an SID corresponding to each endpoint operation based on a boundary address of the first address space and a first offset address corresponding to each endpoint operation, Calculating a difference between the end address and a first offset address corresponding to each end point operation; If each of the calculated difference values ​​is within the first address space, setting each of the calculated difference values ​​as an SID for each of the endpoint operations.

13. The method according to claim 12.

15. the first message includes a fifth sub-TLV, the fifth sub-TLV including a block identifier field, a start SID field, an end SID field, a flag field, an algorithm field, a weight field, an operation number field, and an endpoint operation field; the block identifier field is for carrying the first block identifier; the start SID field is for carrying a start address of the first address space; The end SID field is for carrying an end address of the first address space. The flag field is for carrying a shared flag, and the shared flag is shared by a plurality of SIDs included in the block represented by the first block identifier, The algorithm field is for carrying a shared algorithm, and the shared algorithm is shared by a plurality of SIDs included in the block represented by the first block identifier, The weight field is for carrying a shared weight, and the shared weight is shared among a plurality of SIDs included in the block represented by the first block identifier, the action number field is for carrying the endpoint action number; Each endpoint action is for carrying one endpoint action, 11. The method according to claim 10.

16. The fifth sub-TLV further includes an offset amount field, and the offset amount field is for carrying the first offset amount.

16. The method according to claim 15.

17. The second message includes a sixth sub-TLV or a seventh sub-TLV; The sixth sub-TLV is for carrying an index of a link SID of a point-to-point P2P neighbor type, and the sixth sub-TLV includes a block identifier field, an index length field, and a start index field; The seventh sub-TLV is for carrying an index of a link SID of a local area network (LAN) neighbor type, and the seventh sub-TLV includes a block identifier field, an index length field, and a start index field; the block identifier field is for carrying the second block identifier; The index length field is for carrying the length of the start index field, the start index field is for carrying the start index value; 11. The method according to claim 10.

18. The sixth sub-TLV further includes an offset amount field, and the seventh sub-TLV further includes an offset amount field, the offset amount field being for carrying a first offset amount.

20. The method according to claim 17 .

19. The first device stores a second SID; The method comprises: Obtaining the stored second SID; Identifying a target block to which the second SID belongs based on a correspondence relationship between each pre-classified block and an address space; Identifying a second index value corresponding to the second SID based on a correspondence relationship between each SID and an index value in a second address space corresponding to the target block; Sending a third message and a fourth message to each neighbor device, the third message including a third block identifier of the target block and a boundary address of the second address space, and the fourth message including the third block identifier and the second index value.

2. The method according to claim 1 .

20. the first device stores a plurality of SIDs having consecutive indexes, a first SID in the plurality of SIDs having consecutive indexes being the second SID; The third message further includes an endpoint operation number and an endpoint operation, the endpoint operation number being the number of SIDs with consecutive indexes, and the SIDs with consecutive indexes correspond one-to-one to the endpoint operations included in the third message.

20. The method according to claim 19.

21. The third message further includes a second offset amount, or the fourth message further includes a second offset amount; Prior to transmitting the third message and the fourth message to each neighbor device, the method further comprises: calculating the second offset amount of a boundary address of the second address space based on an attribute characteristic of each address in the second address space; 21. The method according to claim 19 or 20.

22. An electronic device that is a first device in an SRv6 network, the SRv6 network further comprising a second device, the first device and the second device being neighbor devices, the second device storing a first SID that is a first segment identifier, and the electronic device: A processor; A transceiver; and a machine-readable storage medium storing machine-executable instructions executable by the processor, the machine-executable instructions causing the processor to: receiving, by a transceiver, a first message and a second message transmitted from the second device, the first message including at least one first block identifier and a boundary address of an address space corresponding to each first block identifier, and the second message including at least one second block identifier and a first index value; calculating the first SID by using a boundary address of a first address space corresponding to the same block and the first index value, the same block being a block represented by a same block identifier among the at least one first block identifier and the at least one second block identifier; An electronic device comprising:

23. The machine executable instructions further cause the processor to perform the steps of the method of any one of claims 1 to 21.

23. The electronic device according to claim 22.

24. storing machine-executable instructions which, when invoked and executed by a processor, effect the steps of the method of any one of claims 1 to 21; A machine-readable storage medium comprising:

Citation Information

Patent Citations

  • Indexed segment id

    US20140254596A1