Method for obtaining next hop, method and device for generating forwarding table entry

By directly determining the forwarding table entry index based on the bit position of the BIER multicast message in the BIER network, the problem of insufficient BIER forwarding hardware performance is solved, efficient forwarding and storage optimization is achieved, and network scenarios with larger bit string lengths are supported.

CN114257539BActive Publication Date: 2025-10-03HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202011273084.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-09-11
Filing Date
2020-11-13
Publication Date
2025-10-03
Estimated Expiration
2040-11-13

AI Technical Summary

Technical Problem

Existing BIER forwarding hardware has high performance requirements when processing a large number of BFR neighbors and cannot support network scenarios with a BSL of 512 or 1024, resulting in low forwarding efficiency.

Method used

By directly determining the index of the forwarding table entry based on the bit set to 1 in the BIER multicast message, the device identification can be directly obtained without looking up the F-BM, which simplifies the forwarding process and reduces the performance requirements for the forwarding hardware.

Benefits of technology

Improves forwarding efficiency, supports 512-bit or 1024-bit BSL network scenarios, reduces storage space requirements, and improves system scalability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114257539B_ABST
    Figure CN114257539B_ABST
Patent Text Reader

Abstract

An embodiment of the present application provides a method for obtaining a next hop, comprising: receiving a bit index explicitly copied BIER multicast message, the BIER multicast message including a first bit string, the first bit stirng including a bit set to 1 corresponding to a bit forwarding exit router BFER; determining an index of a forwarding table entry based on the bit set to 1 in the first bit string, the forwarding table entry including the index and an identifier of a device serving as the next hop; and directly obtaining the identifier of the device based on the index. An embodiment of the present application also provides a method for generating a forwarding table entry, comprising: receiving an identifier and a BFR‑id of a device sent by a device; obtaining a forwarding table entry based on the identifier and the BFR‑id of the device, the index of the forwarding table entry corresponding to the BFR‑id, the forwarding table entry being used to directly obtain the identifier of the device serving as the next hop included in the forwarding table entry based on the index. The BFR‑id in the above method is used to identify a BFER that can communicate with a device, and the device in the above method is a BFER or a first intermediate BFR passed through to reach the BFER.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a method for obtaining a next hop, a method for generating a forwarding table entry, and a device. Background Art

[0002] In the Bit Index Explicit Replication (BIER) domain, when forwarding a BIER multicast message, a bit forwarding ingress router (BFIR) or an intermediate BIER forwarding router (transit bitforwarding router, transit BFR) can determine the BFR neighbor (BFR-NBR) as the next hop based on the bit string (bit string) carried in the BIER multicast message and the configured bit index forwarding table (BIFT). Specifically, the BFIR uses the offset of the bit set to 1 in the bit string included in the first received BIER multicast message as the sequence number (SN) to obtain a BIFT entry. The forwarding bit string mask (forwarding bitmask, F-BM) included in the BIFT entry is ANDed with the bit string included in the first BIER multicast message to obtain an updated bit string. The BFIR replaces the bit string included in the first BIER multicast message with the updated bit string to obtain a second BIER multicast message. The BFIR sends the second BIER multicast message to the BFR neighbors included in the BIFT table entry.

[0003] In the above-mentioned process of forwarding BIER multicast messages using BIFT, taking the bit string length (BSL) of 256 as an example, a table entry in BIFT includes an F-BM field occupying 256 bits and a BFR neighbor field occupying 8 bits. When the number of BFR neighbors is relatively large, the BFIR or intermediate BFR needs to read at least 256 bits of data in the F-BM field from the memory for each copy of the message. For example, if 10 copies of the message are copied, at least 2560 bits of data need to be read. This places high performance requirements on the forwarding hardware, and the performance of existing forwarding hardware cannot support BIER forwarding scenarios with a BSL of 512 or 1024. Summary of the Invention

[0004] The embodiments of the present application provide a method for obtaining a next hop, a method and apparatus for generating a forwarding table entry, which can reduce the performance requirements for forwarding hardware and improve forwarding efficiency.

[0005] In a first aspect, a method for obtaining a next hop is provided, the method comprising: receiving a BIER multicast message, the BIER multicast message comprising a first bit string, the first bit stirng comprising bits set to 1 corresponding to a bit forwarding egress router (BFER); determining an index of a forwarding table entry based on the bits set to 1 in the first bit string, the forwarding table entry comprising the index and an identifier of a device serving as the next hop; directly obtaining the identifier of the device based on the index, the device being the BFER or a first intermediate BFR passed through to reach the BFER.

[0006] In the above method, the identifier of the corresponding device is directly obtained according to the index of the forwarding table entry without looking up the bit string in the F-BM in the usual BIFT table entry, which helps to reduce the performance requirements of the forwarding hardware and improve forwarding efficiency.

[0007] In one possible implementation, the index is a serial number corresponding to the bit forwarding router identifier (BFR-id) of the BFER, and the device identifier corresponds to a serial number. The above forwarding table entry can support forwarding behavior in network scenarios with a BSL of 512 bits or 1024 bits, which can further improve scalability.

[0008] In one possible implementation, the forwarding table entry further includes a second bit string, wherein the second bit string has only one bit set to 1, and the offset of the bit set to 1 in the second bit string corresponds to the serial number included in the forwarding table entry in which it is located. Based on the forwarding table entry, directly obtaining the device identifier according to the index includes: obtaining the identifier of the device serving as the next hop included in the forwarding table entry according to the serial number, without searching the second bit string included in the forwarding table entry. Since there is no need to read the F-BM, directly determining the device identifier according to the index can further improve forwarding efficiency.

[0009] In one possible implementation, the forwarding table entry includes N identifiers, where N is less than or equal to the value of the read bit width, and the N identifiers include the identifier of the device, and the order of any identifier included in the N identifiers in the forwarding table entry corresponds to the serial number. Based on the forwarding table entry, directly obtaining the identifier of the device according to the index includes: determining a row number according to the serial number and the read bit width, the row number corresponding to the quotient of the serial number and the read bit width; and obtaining the N identifiers included in the forwarding table entry corresponding to the row number. The above-mentioned forwarding table entry does not need to store the usual F-BM, which can save storage space and reduce the high-performance requirements for forwarding hardware when reading F-BM. In addition, the use of the above-mentioned forwarding table entry can support forwarding behavior in network scenarios where the BSL is 512bit or 1024bit, which can further improve scalability.

[0010] In a possible implementation, determining the index of the forwarding table entry based on the bit set to 1 in the first bit string includes: obtaining an offset of the bit set to 1 in the first bit string; and determining the index based on the offset, where the offset corresponds to the index.

[0011] In one possible implementation, the index is used to identify the row where M identification sets are located, where M is an integer greater than or equal to 2, and the M identification sets include the identification of the device, the identification set to which the identification of the device belongs corresponds to the data block to which the serial number belongs, and the order of the identification of the device within the identification set to which it belongs corresponds to the serial number. The above-mentioned forwarding table entry does not need to store the usual F-BM, which can save storage space and reduce the high-performance requirements for forwarding hardware when reading F-BM. In addition, the use of the above-mentioned forwarding table entry can support forwarding behavior in network scenarios where the BSL is 512bit or 1024bit, which can further improve scalability.

[0012] In one possible implementation, determining the index of the forwarding table entry based on the bit set to 1 in the first bit string includes: determining the data block to which the bit set to 1 in the first bit string belongs based on the first bit string and the read bit width; obtaining an identification set corresponding to the data block to which the bit set to 1 in the first bit string belongs, the M identification sets including the identification set corresponding to the data block; and determining the row where the M identification sets are located based on the identification set corresponding to the data block.

[0013] In a possible implementation, directly obtaining the identifier of the device according to the index includes: acquiring the identifier of the device from the set of M identifiers included in the index.

[0014] In one possible implementation, the method further includes: receiving the identifier of the device and the BFR-id sent by the device; obtaining the serial number corresponding to the BFR-id based on the BFR-id; obtaining the forwarding table entry based on the serial number and the identifier of the device, the index of the forwarding table entry being the serial number, and the next hop of the forwarding table entry being the identifier of the device.

[0015] In a possible implementation, the method further includes: receiving the device identifier and the BFR-id sent by the device; obtaining the second bit string and the serial number corresponding to the BFR-id according to the BFR-id; obtaining the forwarding entry according to the serial number, the second bit string, and the device identifier, wherein the index of the forwarding entry is the serial number, the F-BM of the forwarding entry is the second bit string, and the next hop of the forwarding entry of the forwarding entry is the device identifier.

[0016] In one possible implementation, the method further includes: receiving the identifier of the device and the BFR-id sent by the device; obtaining the serial number corresponding to the BFR-id based on the BFR-id; sorting the serial number and the identifier of the device according to the read bit width to obtain the forwarding table entry, the row number of the forwarding table entry corresponding to the quotient of the serial number and the read bit width, and the order of the identifier of the device included in the forwarding table entry among the N identifiers corresponds to the serial number.

[0017] In one possible implementation, the method further includes: receiving the device identifier and the BFR-id sent by the device; obtaining the corresponding sequence number based on the BFR-id; dividing the identifiers corresponding to the sequence numbers according to the order of the sequence numbers to obtain L identifier sets, where L corresponds to the quotient of the maximum value of the sequence number and a preset value, and the preset value is the number of bits included in the data block; dividing the L identifier sets according to a moving window, and combining the identifier sets within the moving window to obtain the forwarding table entries including the M identifier sets. The maximum value of the sequence number is 256, the preset value is 8, L is 32, and M is 2.

[0018] The method provided in the first aspect may be performed by the BFIR or by a second intermediate BFR.

[0019] In a second aspect, a method for generating a forwarding table entry is provided, the method comprising: receiving an identifier and a BFR-id of the device sent by a device, the BFR-id being used to identify a BFER capable of communicating with the device, the device being the BFER or a first BFR passed through to reach the BFER; obtaining a forwarding table entry based on the identifier and the BFR-id of the device, the index of the forwarding table entry corresponding to the BFR-id, the forwarding table entry being used to directly obtain the identifier of the device as the next hop included in the forwarding table entry based on the index.

[0020] In a possible implementation, the index is a serial number corresponding to the BFR-id, and the identifier of the device corresponds to a serial number.

[0021] In a possible implementation, the forwarding table entry further includes a first bit string, the first bit string has only one bit set to 1, and the offset of the bit set to 1 in the first bit string corresponds to the sequence number included in the forwarding table entry in which it is located.

[0022] In one possible implementation, the forwarding table entry includes N identifiers, where N is less than or equal to the read bit width, the N identifiers include the identifier of the device, and the order of any identifier included in the N identifiers in the forwarding table entry corresponds to the serial number.

[0023] In one possible implementation, the index is used to identify the row where M identification sets are located, where M is an integer greater than or equal to 2, and the M identification sets include the identification of the device. The identification set to which the identification of the device belongs corresponds to the data block to which the serial number belongs, and the order of the identification of the device within the identification set to which it belongs corresponds to the serial number.

[0024] In a possible implementation, the method further includes: obtaining the serial number corresponding to the BFR-id according to the BFR-id; obtaining the forwarding entry according to the serial number and the identifier of the device, wherein the index of the forwarding entry is the serial number, and the next hop of the forwarding entry is the identifier of the device.

[0025] In one possible implementation, the method further includes: obtaining the first bit string and the serial number corresponding to the BFR-id according to the BFR-id; obtaining the forwarding entry according to the serial number, the first bit string, and the identifier of the device, the index of the forwarding entry being the serial number, the F-BM of the forwarding entry being the first bit string, and the next hop of the forwarding entry being the identifier of the device.

[0026] In one possible implementation, the method further includes: obtaining the serial number corresponding to the BFR-id based on the BFR-id; sorting the serial number and the identifier of the device according to the read bit width to obtain the forwarding table entry, the row number of the forwarding table entry corresponding to the quotient of the serial number and the read bit width, and the order of the identifier of the device included in the forwarding table entry among the N identifiers corresponds to the serial number.

[0027] In one possible implementation, the method further includes: obtaining the sequence number corresponding to the BFR-id based on the BFR-id; dividing the identifiers corresponding to the sequence number according to the order of the sequence numbers to obtain L identifier sets, where L corresponds to the quotient of the maximum value of the sequence number and a preset value, and the preset value is the number of bits included in the data block; dividing the L identifier sets according to a moving window, and combining the identifier sets within the moving window to obtain the forwarding table entry including the M identifier sets. The maximum value of the sequence number is 256, the preset value is 8, L is 32, and M is 2.

[0028] The method provided in the second aspect may be performed by the BFIR or by a second intermediate BFR.

[0029] According to a third aspect, a forwarding device is provided, which includes a unit for implementing functions corresponding to the steps included in the method provided in the first aspect or a possible implementation manner under the first aspect.

[0030] In a fourth aspect, a device for generating a forwarding table entry is provided, the device comprising a unit for implementing functions corresponding to the steps included in the method provided in the second aspect or a possible implementation manner under the second aspect.

[0031] In a fifth aspect, a system is provided, which includes the forwarding device provided in the third aspect, or the system includes the apparatus for generating a forwarding table entry provided in the fourth aspect.

[0032] In a sixth aspect, a chip is provided, comprising a memory and a processor, wherein the memory is used to store computer instructions, and the processor is used to call and run the computer instructions from the memory to execute the method for obtaining the next hop provided in the first aspect or a possible implementation manner under the first aspect, or to execute the method for generating a forwarding table entry provided in the second aspect or a possible implementation manner under the second aspect.

[0033] In the seventh aspect, a computer program product is provided, which includes one or more computer program instructions. When the computer program instructions are loaded and executed by a computer, the computer executes the method for obtaining the next hop provided by the first aspect or a possible implementation method under the first aspect, or executes the method for generating a forwarding table entry provided by the second aspect or a possible implementation method under the second aspect.

[0034] In an eighth aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium is used to store instructions, wherein the instructions include a program designed for executing the method for obtaining the next hop provided by the first aspect or a possible implementation method under the first aspect, or the instructions include a program designed for executing the method for generating a forwarding table entry provided by the second aspect or a possible implementation method under the second aspect.

[0035] In the ninth aspect, a forwarding device is provided, which includes a processor and a non-transitory computer-readable storage medium storing program instructions for execution by the processor, wherein the program instructions instruct the processor to execute the method for obtaining the next hop provided by the first aspect or a possible implementation method under the first aspect.

[0036] In the tenth aspect, a device for generating a forwarding table entry is provided, characterized in that the device includes a processor and a non-transitory computer-readable storage medium storing program instructions for execution by the processor, and the program instructions instruct the processor to execute the method for generating a forwarding table entry provided by the second aspect or a possible implementation method under the second aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0037] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the following briefly introduces the drawings required for describing the embodiments or the prior art.

[0038] Figure 1 A schematic diagram of a BIER network scenario.

[0039] Figure 2 Schematic diagram of the BIER network scenario provided for an embodiment of this application.

[0040] Figure 3 A flowchart of the method for obtaining forwarding table entries provided in Example 1 of the present application.

[0041] Figure 4 A flowchart of a method for forwarding multicast messages provided in Example 2 of the present application.

[0042] Figure 5 Another BIER network scenario schematic diagram provided for an embodiment of the present application.

[0043] Figure 6 A flowchart of the method for obtaining forwarding table entries provided in Example 3 of the present application.

[0044] Figure 7 A schematic diagram of the format of a forwarded multicast message provided in Example 4 of the present application.

[0045] Figure 8 A format diagram of a BIER multicast message provided in an embodiment of the present application.

[0046] Figure 9 A schematic diagram of the format of another BIER multicast message provided in an embodiment of the present application.

[0047] Figure 10 A format diagram of another BIER multicast message provided for an embodiment of the present application.

[0048] Figure 11 A schematic diagram of the structure of the forwarding device provided in an embodiment of the present application.

[0049] Figure 12 A schematic diagram of the structure of an apparatus for generating forwarding table entries provided in an embodiment of the present application.

[0050] Figure 13 Another structural diagram of the forwarding device provided in an embodiment of the present application.

[0051] Figure 14 Another structural diagram of the device for generating forwarding table entries provided in an embodiment of the present application. DETAILED DESCRIPTION

[0052] To make the purpose, technical solutions and advantages of the embodiments of the present invention more clear, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention.

[0053] Figure 1In the BIER network scenario shown, device 101 is connected to multicast receiver 1. Device 102 is connected to multicast receiver 2. Device 103 is connected to multicast receiver 3. Device 104 is connected to multicast receiver 4. Device 255 receives multicast receiver 5. Device 256 receives multicast receiver 6. Device 101 is connected to device 105, which is connected to device 109. Devices 102 and 103 are connected to device 106, which is connected to device 109. Device 104 is connected to device 107, which is connected to device 109. Devices 255 and 256 are connected to device 108, which is connected to device 109. Device 109 is connected to device 110, which is connected to the multicast source. Device 110 is a BFIR. Devices 109, 106, 107, and 108 are intermediate BFRs. Device 101, device 102, device 103, device 104, device 255, and device 256 are BFERs. Device 101 is assigned a BFR-id of 1. Device 102 is assigned a BFR-id of 2. Device 103 is assigned a BFR-id of 3. Device 104 is assigned a BFR-id of 4. Device 255 is assigned a BFR-id of 255. Device 256 is assigned a BFR-id of 256. The above-mentioned devices 101, device 102, device 103, device 104, device 255, and device 256 belong to the same sub-domain (SD) of BIER, and have the same set identifier (SI), for example, SI can be 0.

[0054] exist Figure 1 In the scenario shown, multicast receiver 2 and multicast receiver 6 need to receive multicast packets from the multicast source. Figure 1 Devices 101, 102, 103, 104, 255, and 256 advertise their assigned BFR IDs and device identifiers (represented as a102) to their BFR neighbors via Interior Gateway Protocol (IGP) flooding. For example, device 102 advertises its BFR ID and address to device 106. Device 103 advertises its BFR ID and device identifier (represented as a102) to device 106. The device identifier can be an address or name. Device 106 generates a BIFT entry, as shown in Table 1-1.

[0055] Table 1-1

[0056]

[0057]

[0058] In Table 1-1, each BIFT entry includes a sequence number (SN), an F-BM, and a BFR-NBR. Ellipses indicate the omission of the 252 empty entries with SNs 4 to 255. These empty entries can be represented by the entry with SN 256 in Table 1-1. The SN included in any entry in Table 1-1 is a value corresponding to the BFR-id. For example, an SN of 1 indicates a BFR-id of 1, and an SN of 3 indicates a BFR-id of 3. The bit string in the F-BM included in any entry in Table 1-1 includes bits set to 1. The offset of these bits in the bit string corresponds to the BFER's BFR-id. The BFR-NBR included in any entry in Table 1-1 indicates the next hop to the BFER corresponding to the bit string in the F-BM. This next hop can be a BFER or an intermediate BFR. For example, in the table entry with an SN of 2, a102 may be the device identifier of device 102. That is, the table entry with an SN of 2 indicates that the next hop to the BFER (device 102) with a BFR-ID of 2 identified by 0000…0000000000000000000000000000010 is the device (device 102) identified by a102. In the table entry with an SN of 3, a103 may be the device identifier of device 103. That is, the table entry with an SN of 3 indicates that the next hop to the BFER (device 103) with a BFR-ID of 3 identified by 0000…0000000000000000000000000000100 is the device (device 103) identified by a103.

[0059] Device 255 publishes its own BFR-id and device identity (denoted as a255) to device 108. Device 256 publishes its own BFR-id and device identity (denoted as a256) to device 108. Device 108 generates a BIFT table entry as shown in Table 1-2 below.

[0060] Table 1-2

[0061] SN F-BM (256bit) BFR-NBR 1 0000…00000000000000000000000000000000 0 2 0000…00000000000000000000000000000000 0 … … … 255 0100…00000000000000000000000000000000 a255 256 1000…00000000000000000000000000000000 a256

[0062] In Table 1-2, the ellipsis indicates the omission of the 252 empty entries with SNs 3 to 254. These empty entries can be represented by the entry with SN 1 in Table 1-2. The meaning of SN in Table 1-2 is the same as that in Table 1-1. The meaning of F-BM in Table 1-2 is the same as that in Table 1-1. The meaning of BFR-NBR in Table 1-2 is the same as that in Table 1-1. In the entry with SN 255, a255 can be the device identifier of device 255. That is, the entry with SN 255 indicates that the next hop to the BFER (device 255) with BFR-ID 255 identified by 0100…0000000000000000000000000000000 is the device (device 255) identified by a255. In the table entry with SN 256, a256 may be the device identifier of device 256, that is, the table entry with SN 256 indicates that the next hop to the BFER (device 256) with BFR-id 256 identified by 1000…00000000000000000000000000000000 is the device (device 256) identified by a256.

[0063] The method for devices 105 and 107 to generate BIFT entries can refer to the method for device 106 to generate BIFT entries, which will not be repeated here.

[0064] Device 105 sends its device identifier and the BFR ID of device 101 to device 109. The device identifier of device 105 is a105. Device 107 sends its device identifier and the BFR ID of device 104 to device 109. The device identifier of device 107 is a107. Device 106 sends its device identifier, the BFR ID of device 102, and the BFR ID of device 103 to device 109. The device identifier of device 106 is a106. Device 108 sends its device identifier, the BFR ID of device 255, and the BFR ID of device 256 to device 109. The device identifier of device 108 is a108. Device 109 generates a BIFT entry based on the parameters obtained through IGP flooding, as shown in Table 1-3.

[0065] Table 1-3

[0066] SN F-BM (256bit) BFR-NBR 1 0000…00000000000000000000000000000001 a105 2 0000…00000000000000000000000000000110 a106 3 0000…00000000000000000000000000000110 a106 4 0000…00000000000000000000000000001000 a107 … … … 255 1100…00000000000000000000000000000000 a108 256 1100…00000000000000000000000000000000 a108

[0067] In Table 1-3, the ellipsis indicates the omission of 250 empty entries with SNs 5 to 254. These empty entries can be represented by the entry with SN 256 in Table 1-1. The meaning of SN in Table 1-3 is the same as that of SN in Table 1-1. The meaning of F-BM in Table 1-3 is the same as that of F-BM in Table 1-1. The meaning of BFR-NBR in Table 1-3 is the same as that of BFR-NBR in Table 1-1. In the entry with SN 1, a105 is the device identifier of device 105. That is, the entry with SN 1 indicates that the next hop to the BFER (device 101) with BFR-ID 1, identified by 0000…00000000000000000000000000000001, is the device identified by a105 (device 105). In the table entry with an SN of 2, a106 is the device identifier of device 106. That is, the table entry with an SN of 2 indicates that the next hop to the BFER (device 102) with a BFR-ID of 2 identified by 0000…0000000000000000000000000000110 is the device identified by a106 (device 106). In the table entry with an SN of 3, a106 is the device identifier of device 106. That is, the table entry with an SN of 3 indicates that the next hop to the BFER (device 103) with a BFR-ID of 3 identified by 0000…000000000000000000000000000110 is the device identified by a106 (device 106). In the table entry with an SN of 4, a107 is the device identifier of device 107. That is, the table entry with an SN of 4 indicates that the next hop to the BFER (device 104) with a BFR-ID of 4 identified by 0000…0000000000000000000000000001000 is the device (device 107) identified by a107. In the table entry with an SN of 255, a108 is the device identifier of device 108. That is, the table entry with an SN of 255 indicates that the next hop to the BFER (device 255) with a BFR-ID of 255 identified by 1100…000000000000000000000000000000000 is the device (device 108) identified by a108. In the table entry with SN 256, a108 is the device identifier of device 108. That is, the table entry with SN 256 indicates that the next hop of the BFER (device 256) with BFR-ID 256 identified by 1100…0000000000000000000000000000000 is the device (device 108) identified by a108.The reason why the F-BMs in the entries with SN 2 and SN 3 have the same bit string is that device 106 reports to device 109 that it can communicate with BFERs with BFR-IDs 2 and 3, that is, the bit strings are both 0000…00000000000000000000000000000000110. For the same reason, the F-BMs in the entry with SN 255 and the entry with SN 256 are the same.

[0068] Device 109 may send its own device identifier (which may be represented as a109), the BFR-ID of device 101, the BFR-ID of device 102, the BFR-ID of device 103, the BFR-ID of device 104, the BFR-ID of device 255, and the BFR-ID of device 256 to device 110. Device 110 obtains a BIFT table entry based on the above parameters, as shown in Tables 1-4 below.

[0069] Table 1-4

[0070] SN F-BM (256bit) BFR-NBR 1 1100…00000000000000000000000000001111 a109 2 1100…00000000000000000000000000001111 a109 3 1100…00000000000000000000000000001111 a109 4 1100…00000000000000000000000000001111 a109 … … … 255 1100…00000000000000000000000000001111 a109 256 1100…00000000000000000000000000001111 a109

[0071] In Table 1-4, ellipsis indicates the omission of the 250 empty entries with SNs 5 to 254. A value of 0 in the BFR-NBR column in Tables 1-1 to 1-4 indicates that there is no next hop or that the next hop is empty. The value "..." in the BFR-NBR column indicates that there is no next hop or that the next hop is empty. These empty entries can be represented by the entry with SN 256 in Table 1-1. The meaning of SN in Table 1-4 is the same as that of SN in Table 1-1. The meaning of F-BM in Table 1-4 is the same as that of F-BM in Table 1-1. The meaning of BFR-NBR in Table 1-4 is the same as that of BFR-NBR in Table 1-1. In the above table entries with SNs of 1, 2, 3, 4, 255, and 256, the F-BM includes the same original bit string. Therefore, device b's str1in0g9 all feed back to device 101011...000, which can be 0010, 020, 0031, 1141, 00B0F0R0-0i0d00. The above table entries with SNs of 1B, FE2, R3, 4, 255, and 256 have the same next hop, namely, the device identified by a109 (device 109).

[0072] by Figure 1Taking the BIER network scenario and the above-mentioned BIFT tables (Table 1-1 to Table 1-4) as an example, the sending of multicast messages from the multicast source to multicast receiver 2 and multicast receiver 6 is described. In one implementation, the device 110 serving as the BFIR receives a multicast message containing (S, G) from the multicast source. The device 110 determines the BFERs (device 102 and device 256) connected to multicast receiver 2 and multicast receiver 6 respectively based on the (S, G) in the multicast message. The device 110 obtains a bit string with a value of 1000…000000000000000000000000000000000010 based on the BFR-id of device 102 (the value is 2) and the BFR-id of device 256 (the value is 256). The device 110 encapsulates the BIER header on the outer layer of the multicast message to obtain the first BIER multicast message. The BIER header of the first BIER multicast message includes a bit string with a value of 1000…0000000000000000000000000000000010. In the process of forwarding the first BIER multicast message, device 110 uses the offset of the first bit set to 1 in the bit string from right to left as the SN lookup table 1-4 to obtain the table entry with SN of 2. Device 110 performs an AND operation on 1100…0000000000000000000000000000001111 in the table entry with SN of 2 and the bit string with a value of 1000…00000000000000000000000000000010 included in the first BIER multicast message. The result of the AND operation is the same as the bit string in the first BIER multicast message, and the bit string is not replaced. Device 110 sends the first BIER multicast message to the device identified by a109 (the identifier in the BFR-NBR in the table entry with SN 2). Device 110 inverts 1100…000000000000000000000000000001111 in the table entry with SN 2 to obtain 0011…111111111111111111111111110000. Device 110 performs an AND operation on the result obtained by the inversion operation and the bit string with a value of 1000…00000000000000000000000000000010 in the first BIER multicast message. The result is all 0, and the query ends.After device 109 receives the first BIER multicast message, it can use the offset of the first bit set to 1 in the bit string with a value of 1000…00000000000000000000000000000010 from right to left in the bit string (offset is 2) as the SN to look up table 1-3, and obtain the table entry with SN 2. Device 109 can perform an AND operation on 0000…00000000000000000000000000000000110 in the table entry with SN 2 and the bit string with a value of 1000…00000000000000000000000000000010 in the first BIER multicast message to obtain 0000…000000000000000000000000000000010. Device 109 replaces the bit string with a value of 1000…0000000000000000000000000000000010 in the first BIER multicast message with the result obtained by the AND operation to obtain a second BIER message, which includes a bit string with a value of 0000…0000000000000000000000000000000010. Device 109 sends the second BIER message to the device (device 106) identified by the BFR-NBR with an SN of 2 in Table 1-3. The device 109 may perform a negation operation on 0000…000000000000000000000000000000011 included in the table entry with SN 2 in Table 1-3 to obtain 1111…1111111111111111111111111111001. The device 109 performs an AND operation on the result obtained by the negation operation and the bit string with a value of 1000…000000000000000000000000000000010 in the first BIER multicast message to obtain 1000…000000000000000000000000000000000000000 Device 109 uses the offset of the first bit set to 1 in the right-to-left direction in bitstring (offset is 256) obtained by the AND operation as SN lookup table 1-3 to obtain the table entry with SN 256.Device 109 can perform an AND operation on 1100…0000000000000000000000000000000000000 in the table entry with SN 256 and the bit string with a value of 1000…0000000000000000000000000000010 in the first BIER multicast message to obtain 1000…000000000000000000000000000000000000. Device 109 replaces the bit string with a value of 1000…0000000000000000000000000000010 in the first BIER multicast message with the result obtained by the AND operation to obtain a third BIER message. The bit string included in the third BIER message is 1000…000000000000000000000000000000000000. Device 109 can send the third BIER message to the BFR-NBR (device identified by a108) included in the table entry with SN of 256 in Table 1-3, that is, device 108. Device 106 can send the second BIER multicast message to device 102 by looking up Table 1-1 according to the bitstring in the received second BIER multicast message according to the method adopted by the above-mentioned device 109. Device 108 can send the third BIER multicast message to device 256 by looking up Table 1-2 according to the bit string in the received third BIER multicast message according to the method adopted by the above-mentioned device 109. According to the above-mentioned processing process of the BIER multicast message by the forwarding device acting as BFIR or intermediate BFR, it can be seen that when the BSL is 256 bits, each BIFT table entry in the BIFT occupies 256 bits of F-BM and 8 bits of BFR-NBR. When the number of BFR-NBRs is large, the forwarding device needs to read at least 256 bits from the memory each time it copies a BIER multicast message. In the extreme case of copying 256 messages (each forwarding device can copy a maximum of 256 messages when the BSL is 256 bits), 64k bits need to be read from the memory, which places extremely high performance requirements on the forwarding hardware and has low forwarding efficiency. However, ordinary forwarding hardware cannot support table entry reading operations that occupy more than 256 bits of memory.

[0073] In another implementation, Figure 1The method for any device in the BIER network scenario shown to obtain BIFT and the content of BIFT are the same as those mentioned in the above implementation method, while the table lookup forwarding operation is different from the above implementation method. The forwarding of the first BIER multicast message by device 109 is taken as an example for relevant explanation. The first BIER multicast message includes a bit string with a value of 1000…0000000000000000000000000000000010. Device 109 traverses Table 1-3 starting from SN 1. Device 109 performs an AND operation on the bit string included in the first BIER multicast message and 0000…0000000000000000000000000000000001 in the table entry with SN 1, obtains all 0s, and does not copy the message. Device 109 performs an AND operation on the inverted result of 0000…00000000000000000000000000000000001 in the table entry with SN 1 (1111…111111111111111111111111111110) and the bit string in the first BIER multicast message to obtain 1000…0000000000000000000000000000000010, which is not 0, and continues to traverse the next SN. Device 109 performs an AND operation on the bit string included in the first BIER multicast message and 0000…000000000000000000000000000000000001 in the table entry with SN of 2 to obtain non-zero 0000…000000000000000000000000000000001. Device 109 replaces the bit string in the first BIER multicast message with the result obtained by the AND operation to obtain a second BIER multicast message. The second BIER multicast message includes 0000…00000000000000000000000000000000001. Device 109 sends the second BIER multicast message to the device (device 106) identified by BFR-NBR in the table entry with SN of 2. Device 109 may adopt a similar method to traverse to the table entry with SN 256, obtain the third BIER multicast message according to the table entry with SN 256, and send it to device 256. The third BIER multicast message includes 1000…00000000000000000000000000000000000.In this implementation, each time a device in the BIER network scenario forwards a BIER multicast message, it needs to traverse all BIFT entries in the BIFT. However, not all BIFT entries can complete the replication and forwarding of the BIER multicast message. For example, if the bit string in the BIER multicast message and the bit string in the F-BM in the BIFT entry are ANDed, the BIFT entry with a result of 0 cannot be used to guide the forwarding of the BIER multicast message. This will result in a waste of memory bandwidth and read operations, and place higher demands on the performance of the forwarding hardware. In addition, this implementation will still have the problems that existed in the previous implementation.

[0074] In order to solve the problem in the above-mentioned solution, an embodiment of the present application provides a method for obtaining the next hop, in which a first BIER multicast message is received, the first BIER multicast message includes a first bit string, and the bit set to 1 included in the first bitstirng corresponds to the BFER; the index of the forwarding table entry is determined according to the bit set to 1 in the first bit string, the forwarding table entry includes the index and the identifier of the device serving as the next hop; the identifier of the device is directly obtained according to the index, and the device is the BFER or the first BFR passed through to reach the BFER. In the above method, the identifier of the device can be directly obtained according to the index without performing the usual operation of searching for the F-BM in the BIFT table entry, thereby eliminating the hardware resources consumed by the F-BM reading operation, reducing the performance requirements for the forwarding hardware, and improving forwarding efficiency.

[0075] Figure 2 Schematic diagram of the BIER network scenario provided for an embodiment of this application. Figure 2 The device 101 in the BIER network scenario shown is Figure 1 Device 101 in the BIER network scenario shown is the same. Figure 2 The device 102 in the BIER network scenario shown is connected to Figure 1 Device 102 in the BIER network scenario shown is the same. Figure 2 Device 103 in the BIER network scenario shown is Figure 1 Device 103 in the BIER network scenario shown is the same. Figure 2 The device 104 in the BIER network scenario shown is connected to Figure 1 Device 104 in the BIER network scenario shown is the same. Figure 2 Device 255 in the BIER network scenario shown is connected to Figure 1 Device 255 in the BIER network scenario shown is the same. Figure 2 The device 256 in the BIER network scenario shown is connected to Figure 1Device 256 in the BIER network scenario shown is the same. Figure 2 The device 210 in the BIER network scenario shown is connected to the multicast source. Device 210 is a BFIR. Take the multicast receiver 2 and the multicast receiver 6 need to receive the multicast message of the multicast source as an example. When other multicast receivers receive the multicast message of the multicast source, Figure 2 The devices in the BIER network scenario shown can use the method provided in the embodiment of the present application to forward BIER multicast messages, which will not be repeated here. Device 205, device 206, device 207, device 208 and device 209 are intermediate BFRs. Device 205 is connected to device 101 and device 209 respectively. Device 206 is connected to device 102, device 103 and device 209 respectively. Device 207 is connected to device 104 and device 209 respectively. Device 208 is connected to device 255, device 256 and device 209 respectively. Device 101, device 102, device 103, device 104, device 255, device 256, device 205, device 206, device 207, device 208, device 209 and device 210 are in the same BIER subdomain. For example, the identifier of the BIER subdomain to which each device belongs is 0. The BFR-ID valid in the BIER subdomain mentioned in the embodiment of the present application refers to a BFR-id with a non-zero value. The BFR-ids assigned to the devices 101, 102, 103, 104, 255, and 256 as BFERs are the same as Figure 1 The BFR-id configured in the BIER scenario shown is the same and will not be repeated here. Figure 2The BIER network scenario shown is for a network scenario with a BSL of 256 bits. The set identifiers (SI) of devices 101, 102, 103, 104, 255, and 256 are all 0. The above BSL represents the length of the bit string, and each bit in the bit string that is set to 1 corresponds to the SI and BFR-id to which the bit string belongs, that is, the length of the BSL determines the range of BFR-ids that can be identified by a bit string. When the value of the BFR-id exceeds the range of BFR-ids that can be identified by the bit string of the BSL length, the SI and bit string are needed to effectively distinguish and identify the BFR-id. When the value of the BFR-id is greater than 256, the BFR in the BIER subdomain can be effectively distinguished by setting the value of the SI and the bit string of the BSL to 256 bits. For example, if the BFR-id of the device is 257, the BFR-id can be indicated as 257 by having an SI of 1 and a bit string of 0001. Or when the value of BFR-id is greater than 256, the BFER can be distinguished by extending the length of the bit string, for example, BSL is 512 bits or 1024 bits to distinguish the BFER in the BIER subdomain.

[0076] Example 1

[0077] Figure 3 A flowchart of the method for obtaining forwarding table entries provided in Example 1 of the present application. Figure 3 The corresponding embodiment is for the scenario where multicast receiver 2 and multicast receiver 6 receive multicast messages from the multicast source. Figure 3 And the BFIR in the corresponding embodiment can be Figure 2 Device 210 in the BIER network scenario shown. Figure 3 And the intermediate BFR in the corresponding embodiment can be Figure 2 Device 209, device 206 or device 208 in the BIER network scenario shown. Figure 3 And the BFER in the corresponding embodiment can be Figure 2 Device 102 or device 256 in the BIER network scenario shown below. Figure 2 and Figure 3 , describes the method for obtaining forwarding table entries provided in an embodiment of the present application.

[0078] S301, BFER publishes its own BFR-id and device identity through IGP.

[0079] For example, the device identifier in the first embodiment can be information such as an address or name that can be routed to the device. BFER publishes its own BFR-id and device identifier through IGP flooding. Figure 2 In the illustrated scenario, device 101 floods a BFR-id with a value of 1 and the device identity of device 101 (represented as a101) via IGP. Device 102 floods a BFR-id with a value of 2 and the device identity of device 102 (represented as a102) via IGP. Device 103 floods a BFR-id with a value of 3 and the device identity of device 103 (represented as a103) via IGP. Device 104 floods a BFR-id with a value of 4 and the device identity of device 104 (represented as a104) via IGP. Device 255 floods a BFR-id with a value of 255 and the device identity of device 255 (represented as a255) via IGP. Device 256 floods a BFR-id with a value of 256 and the device identity of device 103 (represented as a256) via IGP. The device serving as the BFER may publish the parameters in a conventional IGP flooding manner, and the specific implementation details of the IGP flooding are not described in detail in the embodiment of the present application.

[0080] S302: The intermediate BFR publishes its own device identity and the BFR-id of the BFER through the IGP.

[0081] For example, the intermediate BFR obtains the BFR-id of the BFER through IGP flooding. The intermediate BFR publishes its own device address and the obtained BFER's BFR-id. Figure 2In the illustrated scenario, device 205 obtains a BFR-id value of 1 through IGP and floods the BFR-id value of 1 and the device identifier of device 205 (denoted as a205) through IGP. Device 206 obtains a BFR-id value of 2 and a BFR-id value of 3 through IGP and floods the BFR-id value of 2, the BFR-id value of 3, and the device identifier of device 206 (denoted as a206) through IGP. Device 207 obtains a BFR-id value of 4 through IGP and floods the BFR-id value of 4 and the device identifier of device 207 (denoted as a207) through IGP. Device 208 obtains a BFR-id value of 25 and a BFR-id value of 256 through IGP and floods the BFR-id value of 255, the BFR-id value of 256, and the device identifier of device 208 (denoted as a208) through IGP. Among them, the intermediate BFR mentioned in S302 can be directly connected to the BFER. If the intermediate BFR mentioned in S302 is not directly connected to the BFER, but is connected to the BFER through other intermediate BFRs, the BFR-id of the BFER obtained by the intermediate BFR through IGP comes from other intermediate BFRs, and the intermediate BFR can also obtain the device identifier of other intermediate BFRs through IGP flooding. Figure 2 In the illustrated scenario, device 209 is not directly connected to the BFER device. The parameters obtained by device 209 through IGP flooding include: a first parameter group, a second parameter group, a third parameter group, and a fourth parameter group. The first parameter group includes a205 and a BFR-ID value of 1. The second parameter group includes a206, a BFR-ID value of 2, and a BFR-ID value of 3. The third parameter group includes a207 and a BFR-ID value of 4. The fourth parameter group includes a208, a BFR-ID value of 255, and a BFR-ID value of 256. Device 209 floods a209, a BFR-ID value of 1, a BFR-ID value of 2, a BFR-ID value of 3, a BFR-ID value of 4, a BFR-ID value of 255, and a BFR-ID value of 256 through IGP.

[0082] S303: The intermediate BFR obtains a first forwarding table according to the parameters obtained through IGP flooding. The first forwarding table includes a sequence number and an identifier of a device serving as a next hop.

[0083] For example, the BFR-id flooded via IGP can be expressed as a 256-bit bit string, where the offset of the bits set to 1 in the bit string flooded via IGP is the value of the BFR-id. Alternatively, the BFR-id flooded via IGP can be expressed as a specific value between 1 and 256, and the device receiving the BFR-id converts it into a 256-bit bit string, where the offset of the bits set to 1 in the bit string is the value of the BFR-id. The intermediate BFR obtains the first forwarding table based on parameters obtained via IGP flooding, including: the intermediate BFR obtains a forwarding entry in the first forwarding table based on a BFR-id obtained via IGP flooding and the corresponding device identifier, the forwarding entry including a sequence number and a neighbor (NBR), the sequence number corresponding to the BFR-id, and the NBR used to record the identifier of the device serving as the next hop. The identifier of the device corresponding to the BFR-id is the identifier of a device that can communicate with the BFER identified by the BFR-id or the identifier of the BFER identified by the BFR-id. The NBR is used to record the neighboring device of the next hop passed through to reach the BFER identified by the BFR-id. If the intermediate BFR is directly connected to the BFER, the NBR is the device identifier of the BFER. If the intermediate BFR is connected to the BFER through other intermediate BFRs, the NBR is the device identifier of the other intermediate BFR. Optionally, any forwarding entry included in the first forwarding table also includes a bit string, the offset of the bit set to 1 in the bit string in the forwarding table entry corresponds to the BFR-id, and the number of bits set to 1 in the bit string is not greater than 1. The forwarding table entry also includes an F-BM, which is used to store or record the bit string.

[0084] exist Figure 2 In the illustrated scenario, device 206 obtains the fifth and sixth parameter groups through IGP flooding. The fifth parameter group includes a102 and a BFR-id value of 2. The sixth parameter group includes a103 and a BFR-id value of 3. Based on the fifth parameter group, device 206 can obtain a table entry with an SN of 2. The NBR in the table entry with an SN of 2 is a102. Based on the sixth parameter group, device 206 obtains a table entry with an SN of 3. The NBR in the table entry with an SN of 3 is a103. The ellipsis in Table 2-1 indicates the omission of 252 table entries with SNs starting from 4 to 255. Each of these 252 omitted table entries includes an NBR of 0. In Table 2-1, an NBR of 0 indicates that the next hop is null or does not exist.

[0085] Table 2-1

[0086] SN NBR (8bit) 1 0 2 a102 3 a103 … … 256 0

[0087] In another possible implementation, the device 206 may obtain, based on the BFR-id with a value of 2 in the fifth parameter group, an SN with a value of 2 and a bit string with a value of 0000…0000000000000000000000000000000010. The device 206 may obtain, based on a102 in the fifth parameter group, an SN with a value of 2, and a bit string with a value of 0000…000000000000000000000000000000010 (stored in the F-BM), a forwarding table entry with an SN of 2 in Table 2-2. The device 206 may obtain, based on the BFR-id with a value of 3 in the sixth parameter group, an SN with a value of 3 and a bit string with a value of 0000…000000000000000000000000000000100. Device 206 obtains the forwarding table entry with SN 3 in Table 2-2 based on a103 in the sixth parameter group, the SN with a value of 3, and the bit string with a value of 0000…00000000000000000000000000000000100 (stored in F-BM). The ellipsis in Table 2-2 indicates that 252 entries with SNs starting from 4 and ending at 255 are omitted. The NBR included in each of the 252 omitted entries is 0. In the embodiment of the present application, an NBR of 0 indicates that the next hop is empty or does not exist. The BSL of the bit string included in the F-BM is 256 bits, and the bit string includes… 220 bits from the 33rd bit to the 252th bit from right to left are omitted. In the F-BM obtained by device 206, in the bit sting containing the bit set to 1, there is only one bit set to 1, and the offset of the bit set to 1 in the bit string corresponds to the value of the SN. In this embodiment of the present application, the offset of the bit set to 1 in the bit string is the SN. In other possible time modes, the offset of the bit set to 1 in the bit string is the difference between the SN and a constant, or the offset of the bit set to 1 in the bit string is the sum of the SN and a constant. The constant can be 1 or another natural number greater than 1, and this application does not limit this.

[0088] Table 2-2

[0089] SN F-BM (256bit) NBR (8bit) 1 0000…00000000000000000000000000000000 0 2 0000…00000000000000000000000000000010 a102 3 0000…00000000000000000000000000000100 a103 … … … 256 0000…00000000000000000000000000000000 0

[0090] Figure 2The device 206 in the illustrated scenario can sort the SN and the NBR corresponding to the SN according to Table 2-1. Specifically, it can be based on the read bit width of the forwarding hardware, and multiple NBRs sorted according to the size of the SN are used as a row, and the number of the multiple NBRs is less than or equal to the value of the read bit width. The row where the NBR corresponding to a certain SN is located, such as the row number, corresponds to the quotient of the SN and the read bit width, and specifically can be the quotient of the difference between the corresponding SN and a constant and the read bit width, and the constant can be 1 or other possible natural numbers greater than 1. In the embodiment of the present application, the read bit width of 16 is used as an example for illustration. The implementation method of the read bit width being other numerical values ​​can refer to the embodiment of the read bit width of 16. When the constant is 1, the difference between the SN with a value of 1 to 16 and 1 and the quotient of the read bit width is 0, and the row number of the corresponding row is the sum of the quotient and 1. For example, the row where 1-16 is located in Table 2-3 is a forwarding table entry, that is, the row number of the forwarding table entry is 1. In the forwarding table entry with row number 1, the NBR corresponding to SN 2 is a102, and the NBR corresponding to SN 3 is a103. In another implementation, the row number of the row containing the NBR corresponding to a particular SN can be the sum of the quotient of the SN and the read bit width and a constant. For an SN at the maximum read bit width, the row number of the row containing the NBR is the quotient of the SN and the read bit width. For example, in Table 2-3, the row number of the row containing the NBR corresponding to the SN value 16 is 1, and the row number of the row containing the NBR corresponding to SN values ​​1-15 is 1. Table 2-3 includes 16 rows. In Table 2-3, "..." indicates the omission of empty content, and X can be 0. Whether the NBR is X or 0, it indicates that the next hop is empty or does not exist.

[0091] Table 2-3

[0092]

[0093]

[0094] For example, device 206 stores the M NBRs in Table 2-1 in a row in Table 2-3, that is, the number of columns in Table 2-3 excluding the column identified by the SN is M. The size of M depends on the read bit width of the forwarding hardware. M can be a power of 2, where N is an integer greater than or equal to 1. Example 1 of the present application takes M as 16 as an example. In the forwarding table shown in Table 2-3, the number of columns represents the bit width M that can be read each time. For example, numbers 1 to 16 indicate that device 206 can read 16 SNs each time. The identifier of the NBR of each table item in Table 2-1 is stored in the cell corresponding to the SN in Table 2-3. In other words, the order of the identifier of the NBR of each table item in Table 2-1 in the 16 identifiers in each row of Table 2-3 corresponds to the SN of the NBR in Table 2-1. The above 16 identifiers include NBRs with values ​​of 0 or X. For example, in the entry with SN 2 in Table 2-1, the NBR value a102 is stored in cell 2 in row 1 (the row corresponding to SNs 1-16). In the entry with SN 3 in Table 2-1, the NBR value a103 is stored in cell 3 in row 1 (the row corresponding to SNs 1-16). In Table 2-3, the rows where the 16 SNs are located are represented by row numbers. For example, the rows corresponding to SNs 1-16 are represented by row number 1, and the rows corresponding to SNs 17-32 are represented by row number 2.

[0095] exist Figure 2 In the illustrated scenario, device 208 obtains the seventh and eighth parameter groups through IGP flooding. The seventh parameter group includes a255 and a BFR-id value of 255. The eighth parameter group includes a256 and a BFR-id value of 256. Device 208 can obtain Table 2-4 based on the seventh and eighth parameter groups. The ellipsis in Table 2-4 indicates 252 entries with SNs ranging from 3 to 254, each of which includes an NBR of 0. The method for device 208 to obtain Table 2-4 can be similar to the method for device 206 to obtain Table 2-1 and is not further described here.

[0096] Table 2-4

[0097] SN NBR (8bit) 1 0 2 0 … … 255 a255 256 a256

[0098] In another possible implementation, device 208 may obtain Table 2-5 based on the seventh parameter group and the eighth parameter group. The method for device 208 to obtain Table 2-5 can refer to the method for device 206 to obtain Table 2-2, and will not be repeated here. The ellipsis in Table 2-5 represents 252 entries with SNs starting from 3 and ending at 254. The NBR included in each of the 252 entries is 0, indicating that the next hop is empty or does not exist. The BSL of the bit string included in the F-BM is 256 bits, and the bit string contains... omitting 220 bits from the 33rd bit to the 252nd bit from right to left. In the F-BM obtained by device 208, there is only one bit in the bit sting containing the bit set to 1, and the offset of the bit set to 1 in the bit string corresponds to the value of the SN. The next hop of the BFER corresponding to the bit set to 1 in the bit string is the device identified by the NBR.

[0099] Table 2-5

[0100]

[0101]

[0102] Figure 2 Device 208 in the illustrated scenario can further obtain the forwarding table shown in Table 2-6 based on Table 2-4. The specific method for obtaining Table 2-3 by device 206 is similar and will not be further described here. The "..." in Table 2-6 indicates an omission of empty content. X can be replaced by 0 to indicate that the next hop is empty or does not exist.

[0103] Table 2-6

[0104] SN 1 2 3 4-14 15 16 1-16 X X X … X X 17-32 X X X … X X … … … … … … … 241-256 X X X a255 a256

[0105] For example, device 208 stores the NBRs corresponding to the M SNs in Table 2-4 into an entry in Table 2-6, i.e., the number of columns in Table 2-6 excluding the columns identified by the SNs is M. M is the read bit width of device 208, which can be the same as the read bit width of device 206. If the read bit width of device 208 is different from the read bit width of device 206, the number of columns in Table 2-6 excluding the columns identified by the SNs is not 16. This can be adjusted based on the read bit width of device 208, and this embodiment of the present application will not further illustrate this. The order of the NBR identifier of each entry in Table 2-4 within the row of Table 2-6 determined by the SN corresponding to the NBR is determined by the SN corresponding to the NBR. For example, in the table entry with SN 255 in Table 2-4, the NBR identifier with the value a255 is stored in the cell corresponding to 15 in the row where the SN 255 is located (rows identified by 241-256, also known as row number 16) in Table 2-6. Within the rows identified by 241-256, the SN 255 is located in the column identified by 15 in that row. In the table entry with SN 256 in Table 2-4, the NBR identifier with the value a256 is stored in the cell corresponding to 16 in the row where the SN 256 is located (rows identified by 241-256, also known as row number 16) in Table 2-6. Within the rows identified by 241-256, the SN 256 is located in the column identified by 16 in that row. In Table 2-6, the rows where the 16 SNs are located can be represented by row numbers. For example, the rows corresponding to SNs 1-16 can be represented by row number 1, and the rows corresponding to SNs 17-32 can be represented by row number 2.

[0106] exist Figure 2 In the illustrated scenario, device 209 obtains the first, second, third, and fourth parameter groups through IGP flooding, as described in S302. Device 209 can obtain Table 2-7 based on the first, second, third, and fourth parameter groups. The specific method used by device 206 to obtain Table 2-1 is similar and will not be further described here. The ellipsis in Table 2-7 indicates 250 entries with SNs ranging from 5 to 254. Each of these 250 entries has an NBR of 0. An NBR of 0 indicates that the next hop is empty or does not exist.

[0107] Table 2-7

[0108] SN NBR (8bit) 1 a205 2 a206 3 a206 4 a207 … … 255 a208 256 a208

[0109] In another possible implementation, device 209 may obtain Table 2-8 based on the first parameter group, the second parameter group, the third parameter group, and the fourth parameter group. The specific method can be found in the method for device 206 to obtain Table 2-2, and will not be repeated here. The ellipsis in Table 2-8 represents 250 entries with SNs starting from 5 and ending at 254. Each of these 250 entries includes an NBR of 0. An NBR value of 0 indicates that the next hop is empty or does not exist. The BSL of the bit string included in the F-BM is 256 bits, and the bit string contains... omitting the 220 bits from the 33rd bit to the 252nd bit from right to left. In the F-BM obtained by device 209, only one bit in the bit sting containing the bit set to 1 is set to 1, and the offset of the bit set to 1 in the bit string corresponds to the SN value. The next hop of the BFER corresponding to the bit set to 1 in the bit string is the device identified by the NBR.

[0110] Table 2-8

[0111] SN F-BM (256bit) NBR (8bit) 1 0000…00000000000000000000000000000001 a205 2 0000…00000000000000000000000000000010 a206 3 0000…00000000000000000000000000000100 a206 4 0000…00000000000000000000000000001000 a207 … … … 255 0100…00000000000000000000000000000000 a208 256 1000…00000000000000000000000000000000 a208

[0112] Figure 2 Device 209 in the illustrated scenario can further obtain the forwarding table shown in Table 2-9 based on Table 2-7. For details, refer to the method used by device 206 to obtain Table 2-3, which is not further described here. The "..." in Table 2-9 indicates an omission of empty content. X can be replaced by 0 to indicate that the next hop is empty or does not exist.

[0113] Table 2-9

[0114] SN 1 2 3 4 4-14 15 16 1-16 a205 a206 a206 a207 … X X 17-32 X X X X … X X … … … … … … … … 241-256 X X X X … a208 a208

[0115] For example, device 209 stores M NBRs in Table 2-7 in an entry in Table 2-9, i.e., the number of columns in Table 2-9 excluding the column indicated by the SN is M. M is the read bit width of device 209, which can be the same as the read bit width of device 206 or device 208. If the read bit width of device 209 is different from that of device 206 or device 208, the number of columns in Table 2-9 excluding the column indicated by the SN is not 16. This can be adjusted based on the read bit width of device 209, and this embodiment of the present application will not further illustrate this. The order of the NBR identifiers of each entry in Table 2-7 within the row of Table 2-9 determined by the SN corresponding to the NBR is determined by the SN corresponding to the NBR. For example: in the entry with SN 1 in Table 2-7, the NBR identifier with the value a205 is stored in the cell corresponding to the SN with the value 1 in Table 2-9, i.e., the cell at the intersection of the row corresponding to SN 1-16 and the column numbered 1. In the table entry with SN 2 in Table 2-7, the NBR identifier with the value a206 is stored in the cell corresponding to the SN 2 in Table 2-9, that is, the cell at the intersection of the row corresponding to SN 1-16 and the column numbered 2. In the table entry with SN 3 in Table 2-7, the NBR identifier with the value a206 is stored in the cell corresponding to the SN 3 in Table 2-9, that is, the cell at the intersection of the row corresponding to SN 1-16 and the column numbered 3. In the table entry with SN 4 in Table 2-7, the NBR identifier with the value a207 is stored in the cell corresponding to the SN 4 in Table 2-9, that is, the cell at the intersection of the row corresponding to SN 1-16 and the column numbered 4. In the entry with SN 255 in Table 2-7, the NBR identifier with the value a208 is stored in the cell corresponding to the SN 255 in Table 2-9, that is, the cell at the intersection of the row corresponding to SNs 241-256 and column numbered 15. In the entry with SN 256 in Table 2-7, the NBR identifier with the value a208 is stored in the cell corresponding to the SN 256 in Table 2-9, that is, the cell at the intersection of the row corresponding to SNs 241-256 and column numbered 16. In Table 2-9, the rows where the 16 SNs are located are represented by row numbers. For example, the rows corresponding to SNs 1-16 are represented by row number 1, and the rows corresponding to SNs 17-32 are represented by row number 2.

[0116] S304: The BFIR obtains a second forwarding table according to the parameters obtained through IGP flooding, where the second forwarding table includes a sequence number and an identifier of a next hop.

[0117] For example, the parameters obtained by the BFIR through IGP flooding include the device identifier of the intermediate BFR and the BFR-id obtained by the intermediate BFR. The BFIR obtains a second forwarding table based on the obtained parameters. Any table entry in the second forwarding table includes an SN and an NBR. The value of the SN of any forwarding entry in the second forwarding table is the value of the BFR-id, and the NBR is the device identifier of the next hop passed through to reach the BFER identified by the BFR-id. Optionally, any forwarding entry also includes a bit string. The number of bits set to 1 in the bit string included in any forwarding entry is not greater than 1, and the offset of the bits set to 1 in the bit string corresponds to the value of the SN. Figure 2 In the illustrated scenario, device 210, acting as a BFIR, receives a209 from device 209 via IGP flooding, along with BFR-ID values ​​of 1, 2, 3, 4, 255, and 256. Based on the parameters from device 209, device 210 obtains the forwarding entries shown in Table 2-10 using the same method used by device 206 to obtain Table 2-1. In Table 2-10, "..." indicates that the NBR of the 250 entries with SNs from 5 to 254 is 0, indicating that the next hop is null or does not exist.

[0118] Table 2-10

[0119] SN NBR (8bit) 1 a209 2 a209 3 a209 4 a209 … … 255 a209 256 a209

[0120] In another possible implementation, device 210 may obtain Table 2-11 based on the multiple BFR-ids and a209 flooded by device 209. For the specific method, refer to the method for device 206 to obtain Table 2-2, which will not be repeated here. The values ​​of the above multiple BFR-ids are 1, 2, 3, 4, 255, and 256. The ellipsis in Table 2-11 represents 250 entries with SNs starting from 5 and ending at 254. The NBR included in each of the 250 entries is 0, indicating that the next hop is empty or does not exist. The BSL of the bit string included in the F-BM is 256 bits, and the bit string contains... omitting 220 bits from the 33rd bit to the 252nd bit from right to left. In the F-BM obtained by device 210, in the bit sting containing the bit set to 1, only one bit is set to 1, and the offset of the bit set to 1 in the bit string corresponds to the value of the SN. The next hop of the BFER corresponding to the bit set to 1 in the arrival bit string is the device identified by the NBR.

[0121] Table 2-11

[0122]

[0123]

[0124] Figure 2 Device 210 in the illustrated scenario can further obtain the forwarding table shown in Table 2-12 based on Table 2-10. The specific method can refer to the method for device 206 to obtain Table 2-3, which will not be repeated here. In Table 2-12, ... indicates the omission of empty content, and X can be 0 or empty.

[0125] Table 2-12

[0126] SN 1 2 3 4 4-14 15 16 1-16 a209 a209 a209 a209 … X X 17-32 X X X X … X X … … … … … … … … 241-256 X X X X … a209 a209

[0127] For example, device 210 stores the M NBRs in Table 2-10 in one entry (a row) in Table 2-12. That is, the number of columns in Table 2-12 excluding the columns indicated by SN is M. M is the read bit width of device 210, which can be the same as the read bit width of device 206, device 208, or device 209. If the read bit width of device 210 is different from that of device 206, device 208, or device 209, the number of columns in Table 2-12 excluding the columns indicated by SN is not 16. Specifically, it can be adjusted based on the read bit width of device 2-12, for example, to 32 or 8. This embodiment of the present application does not further illustrate this point. The NBR identifier for each entry in Table 2-10 is stored in the cell corresponding to the SN in Table 2-12 corresponding to the NBR. For example, in the entry with SN 1 in Table 2-10, the NBR identifier with the value a209 is stored in the cell corresponding to the SN in Table 2-12 corresponding to the value 1, that is, the cell at the intersection of the row corresponding to SN 1-16 and the column labeled 1. In the entry with SN 2 in Table 2-10, the NBR identifier with the value a209 is stored in the cell corresponding to the SN in Table 2-12 corresponding to the value 2, that is, the cell at the intersection of the row corresponding to SN 1-16 and the column labeled 2. In the entry with SN 3 in Table 2-10, the NBR identifier with the value a209 is stored in the cell corresponding to the SN in Table 2-12 corresponding to the value 3, that is, the cell at the intersection of the row corresponding to SN 1-16 and the column labeled 3. In the table entry with an SN of 4 in Table 2-10, the NBR identifier with the value a209 is stored in the cell corresponding to the SN of 4 in Table 2-12, that is, the cell at the intersection of the row corresponding to SNs 1-16 and the column numbered 4. In the table entry with an SN of 255 in Table 2-10, the NBR identifier with the value a209 is stored in the cell corresponding to the SN of 255 in Table 2-9, that is, the cell at the intersection of the row corresponding to SNs 241-256 and the column numbered 15. In the table entry with an SN of 256 in Table 2-10, the NBR identifier with the value a209 is stored in the cell corresponding to the SN of 256 in Table 2-12, that is, the cell at the intersection of the row corresponding to SNs 241-256 and the column numbered 16. In Table 2-12, the rows where the 16 SNs are located can be represented by row numbers. For example, the rows corresponding to SNs 1-16 can be represented by row number 1, and the rows corresponding to SNs 17-32 can be represented by row number 2.

[0128] Tables 2-1, 2-3, 2-4, 2-6, 2-7, 2-9, 2-10, and 2-12 above are based on an example where M is 16. For a BIER network scenario with a 256-bit BSL, the forwarding table can include 16 entries. Because the 256 bits occupied by each F-BM are omitted, when M is 16, the forwarding table can be expanded to include 32 entries for a BIER network scenario with a 512-bit BSL, and 64 BIFT entries for a 1024-bit BSL. Since the forwarding hardware no longer needs to read the 256-bit F-BM included in typical BIFT entries, it can quickly complete entry lookup and forwarding without requiring performance upgrades, even in network scenarios with a 512-bit or 1024-bit BSL, further improving forwarding efficiency.

[0129] The offset of the bit set to 1 mentioned in the first embodiment of the present application (which may also be referred to as the offset of the bit set to 1 in the bit string) is the offset of the bit set to 1 relative to the bit string in the right-to-left direction. The above-mentioned right-to-left direction is determined based on the data reading method of the forwarding hardware, and the right-to-left direction may also be replaced by the left-to-right direction. If the offset of the bit set to 1 is determined from the left-to-right direction, the offset of the bit set to 1 in the bit string in the first embodiment of the present application will also change accordingly. For example: for Table 2-12, for BFR-ids of 1, 2, 3, 4, 255, and 256, the bit string will be expressed as 1111…000000000000000000000000000000011. The content of Table 2-12 does not change. When the BFIR forwards the BIER multicast message, it reads the bit string in the BIER multicast message from left to right.

[0130] The SN value in the forwarding table obtained in Example 1 of the present application is an example. The SN can also be an integer multiple of the BFR-id, or the sum of an integer multiple of the BFR-id and a constant. The first bit from right to left of the bit string can be called the 1st bit, and the last bit on the left can be called the 256th bit. Alternatively, the first bit from right to left of the bit string can be called the 0th bit, and the last bit on the left can be called the 255th bit. This embodiment of the present application is not limited to the above representation.

[0131] In the method for obtaining forwarding table entries provided in the embodiments of the present application, a device acting as a BFIR or a device acting as an intermediate BFR can configure forwarding table entries through the control plane. In the forwarding table entries provided in the embodiments of the present application, the SN corresponding to the BFR-id is directly used to determine the NBR as the next hop, eliminating the space required to store the F-BM and the hardware resources consumed by the F-BM reading operation, thereby reducing the performance requirements for the forwarding hardware.

[0132] Example 2

[0133] Figure 4 A flow chart of the method for forwarding multicast messages provided in Example 2 of the present application. The table entry for forwarding BIER multicast messages mentioned in Example 2 is the forwarding table entry obtained in Example 1. Example 2 is described by taking the reading of the bit string from right to left as an example. In another embodiment, the bit string can be read from left to right instead of from right to left. The embodiment of the present application does not give an example of the above-mentioned direction from left to right. Figure 2 、 Figure 3 and Figure 4 , describes the method for forwarding multicast messages provided in Example 2 of the present application.

[0134] S401, device 210 obtains the first BIER multicast message based on the multicast message from the multicast source.

[0135] For example, the device 210 obtains the first BIER multicast message based on the multicast message from the multicast source, including: the device 210 obtains the bit string based on the BFR-id of the BFER connected to one or more multicast receivers; the device 210 encapsulates the BIER header on the received multicast message to obtain the first BIER multicast message, and the BIER header includes the bit string. Optionally, the device 210 can also obtain the SI to which the bit string belongs based on the BFR-id of the BFER connected to one or more multicast receivers. The BIER header included in the first BIER multicast message also includes the SI to which the bit string belongs. Figure 2In the BIER network scenario shown, device 210 learns from the configuration that multicast receiver 2 and multicast receiver 6 need to obtain the multicast message sent by the multicast source. Multicast receiver 2 is connected to device 102, which serves as a BFER. Multicast receiver 6 is connected to device 256, which serves as a BFER. The BFR-id of device 102 is 2, and the BFR-id of device 256 is 256. Since the BFR-ids of device 102 and device 256 do not exceed the range of 256, device 102 and device 256 belong to the same SI, for example, the SI can be 0. The bit string obtained by device 210 can be expressed as 1000…0000000000000000000000000000000010. The above bit string omits the 220 bits with the middle value of 0. The BIER header in the first BIER multicast message obtained by device 210 includes the above-mentioned bit string.

[0136] S402, device 210 determines its own next hop based on its configured forwarding table entries and sends the first BIER multicast message.

[0137] For example, the next hop of device 210 refers to the next node that the BFER connected to one or more multicast receivers passes through in the direction from the multicast source to the multicast receiver, such as Figure 2 Device 209 in.

[0138] For example, the method for device 210 to determine its own next hop may include the following two methods:

[0139] In a first implementation, the device 210 obtains the offset of the bit set to 1 in the right-to-left direction in the bit string of the first BIER multicast message, such as the offset is 2 and 256. The device 210 uses 2 and 256 as SN to look up Table 2-10 or Table 2-11 in Example 1 to obtain the NBR with a value of a209. Or the device 210 uses 2 and 256 as indexes to look up the matching cells in Table 2-12, that is, a209 in the cell in the second column of the row where the SN is 1-16, and a209 in the cell in the 16th column of the row where the SN is 241-256. Specifically, the device 210 uses the row number 1 (the row where the SN with a value of 1-16 in Table 2-12 is located) corresponding to the quotient of the SN with a value of 2 and the read bit width with a value of 16 to determine that the forwarding table entry identified by row number 1 needs to be read. Device 210 obtains the NBR with a value of a209 from the forwarding table entry identified by row number 1 of Table 2-12 according to the position of the NBR determined by the SN with a value of 2 (the NBR in the cell where the row identified by row number 1 intersects the column identified by row number 2 is the NBR with a value of a209 corresponding to the SN with a value of 2). Device 210 determines that it is necessary to read the forwarding table entry identified by row number 16 (the row where the SN with a value of 241-16 is located in Table 2-12) based on the quotient of the SN with a value of 256 and the read bit width with a value of 16. Device 210 obtains the NBR with a value of a209 from the forwarding table entry identified by row number 16 of Table 2-12 according to the position of the NBR determined by the SN with a value of 256 (the NBR in the cell where the row identified by row number 16 intersects the column identified by row number 16 is the NBR with a value of a209 corresponding to the SN with a value of 256).

[0140] In the second implementation, the device 210 obtains the offset of the first bit set to 1 in the bit string of the first BIER multicast message from right to left, for example, the offset is 2. The device 210 uses 2 as the SN to look up Table 2-10 or Table 2-11 in Example 1 to obtain an NBR with a value of a209. Or the device 210 uses 2 as the index to look up the matching cell in Table 2-12, that is, a209 in the cell in the second column of the row where the SN is 1-16. The device 210 sets the second bit to 0 from right to left and obtains 1000…00000000000000000000000000000000000. The device 210 determines that the offset of the first bit set to 1 from right to left is 256. The device 210 uses 256 as the SN to look up Table 2-10 or Table 2-11 in Example 1 to obtain an NBR with a value of a209. Alternatively, device 210 uses index 256 to search for a matching cell in table 2-12, ie, cell a209 in the row and column 16 where SN 241-256 is located. The method for device 210 to search table 2-12 to determine the next hop can be found in the first implementation above and will not be described in detail here.

[0141] Among them, when device 210 looks up Table 2-11, it can directly determine the NBR corresponding to the SN without looking up the F-BM in Table 2-11. When device 210 looks up Table 2-12, it can use the offset of the first bit set to 1 in the right-to-left direction in the bit string of the first BIER multicast message to determine the serial number corresponding to the offset, determine the row number where the SN is located based on the quotient of the determined serial number and the read bit width, and read the NRB of the sorting position determined by the SN in the row. For example, the offset of 2 in the bit string of the first BIER multicast message determines that the SN is 2, and the quotient of the SN of 2 and the read bit width of 16 determines that the row number corresponding to the SN of 2 is 1. The offset of 256 in the bit string of the first BIER multicast message determines that the SN is 256, and the quotient of the SN offset of 256 and the read bit width of 16 determines that the row number corresponding to the SN of 256 is 16. The above table lookup method for determining the NBR does not require reading the usual F-BM, which can improve forwarding efficiency and reduce the performance requirements of forwarding hardware.

[0142] Compared with the conventional BIFT table lookup method (reading the BIFT table entries shown in Table 1-4 requires reading 32 table entries, each table entry in Table 1-4 occupies 256 bits of F-BM and 8 bits of BFR-NBR identifier, and a total of 8448 bits need to be read), the table lookup method adopted by device 210 can reduce the performance requirements of forwarding hardware, and the table entries in Table 2-10, Table 2-11 and Table 2-12 can be further expanded according to the BSL value. Without increasing the performance requirements of the forwarding hardware, it can meet the table lookup forwarding requirements of bit strings with BSLs of 512 and 1024.

[0143] For example, the device 210 obtains the BIER multicast message sent to the next hop in the following three ways:

[0144] In the first possible implementation, since when device 210 uses Table 2-10 and Table 2-12 to determine the NBR, the next hop of the BFER corresponding to the 2nd bit and the 256th bit set to 1 in the first BIER multicast message reached by device 210 is device 209, then device 210 only sends a copy of the first BIER multicast message and does not replace the bit string in the first BIER multicast message.

[0145] In a second possible implementation, when device 210 determines the NBR using Table 2-11, since the NBRs are the same, device 210 performs an AND operation on the bit string of the F-BM in SN 2 and the bit string of the F-BM in SN 256 in a certain order with the bit string in the first BIER multicast message to obtain a bit sting with a value of 1000…0000000000000000000000000000000010. The certain order may be to first perform an AND operation on the bit string of the F-BM in SN 2 and the bit string in the first BIER multicast message, and then perform an AND operation on the result of the AND operation with the bit string of the F-BM in SN 256. Alternatively, the certain order may be to first perform an AND operation on the bit string of the F-BM in SN 256 and the bit string in the first BIER multicast message, and then perform an AND operation on the result of the AND operation with the bit string of the F-BM in SN 2. Alternatively, in a certain order, the bit string of the F-BM in SN 2 may be first ANDed with the bit string of the F-BM in SN 256, and the result of the ANDed operation may be ANDed again with the bit string in the first BIER multicast message. If the bit string obtained from the above two ANDed operations is the same as the bit string in the first BIER multicast message, the bit string replacement operation will not be performed.

[0146] In a third possible implementation, the device 210 may determine, when looking up Table 2-11, that the table entry with SN 2 is used to forward the first BIER multicast message. The device 210 performs an AND operation on the F-BM in the table entry with SN 2 and the bitstring in the first BIER multicast message to obtain 000…0000000000000000000000000000000010. The device 210 replaces the bit string in the first BIER multicast message with the result of the AND operation to obtain the first sub-message. The bitstring of the first sub-message is 000…000000000000000000000000000000010. When looking up Table 2-11, device 210 can determine that the table entry with SN 256 is used to forward the first BIER multicast message. For example, after completing the table lookup operation with SN 2, the offset of the first bit set to 1 in the bit string after the second bit from right to left in the bit string of the first BIER multicast message is cleared to 0 is used as the new SN, that is, the SN is 256. Device 210 performs an AND operation on the F-BM in the table entry with SN 256 and the bit string in the first BIER multicast message to obtain 100…0000000000000000000000000000000000. Device 210 replaces the bit string in the first BIER multicast message with the result of the AND operation to obtain the second sub-message. The bit string of the second sub-message is 100…000000000000000000000000000000000000. Device 210 may send the second sub-message and the first sub-message as a first BIER multicast message to device 209. In this implementation, the first BIER multicast message includes the first sub-message and the second sub-message, and the first BIER multicast message is a concept of a collection.

[0147] Regarding the possible implementation methods of device 210 obtaining the BIER multicast message sent to the next hop, the first possible implementation method and the second possible implementation method can save bandwidth between device 210 and device 209. The third possible implementation method can avoid subsequent intermediate BFRs from performing copy operations.

[0148] S403, device 209 determines its own next hop and sends it based on its configured table entry and the bit string in the first BIER multicast message.

[0149] For example, the next hop of device 209 refers to the next node that the BFER connected to one or more multicast receivers passes through in the direction from the multicast source to the multicast receiver, such as Figure 2For the first BIER multicast message in the second embodiment of the present application, according to the offset of the bit set to 1 in the bit string in the first BER multicast message, device 209 determines that its next hop is Figure 2 Device 206 and device 208 in.

[0150] For example, the method for device 209 to determine the next hop may include the following two methods:

[0151] In a first implementation, device 209 obtains the offset of the bits set to 1 in the right-to-left direction in the bit string included in the first BIER multicast message, such as the offset is 2 and 256. Device 209 directly searches Table 2-7 or Table 2-8 in Example 1 with 2 and 256 as SN to obtain NBRs with values ​​of a206 and a208. Device 209 needs to copy a copy of the first BIER multicast message. Or device 209 uses 2 and 256 as indexes to search for matching cells in Table 2-9, i.e., a206 in the cell in the second column of the row where SN is 1-16, and a208 in the cell in the 16th column of the row where SN is 241-256. Specifically, device 209 uses row number 1 (the row where SN with a value of 1-16 in Table 2-9 is located) corresponding to the quotient of the SN with a value of 2 and the read bit width with a value of 16 to determine that the forwarding table entry identified by row number 1 needs to be read. Equipment 209, from the forwarding table item identified by row number 1 of table 2-9, obtains the NBR that is a206 according to the position of the NBR that is determined by SN of 2 (the NBR in the cell that row number 1 identified and column intersection of numerical value is that 2 identifies is the NBR that is a206 corresponding to the SN of 2). Equipment 209 determines that it needs to read the forwarding table item identified by row number 16 with the SN of 256 and the quotient of the read bit width of 16 (the row where the SN of 241-16 is located in the table 2-9). Equipment 209, from the forwarding table item identified by row number 16 of table 2-9, obtains the NBR that is a208 according to the position of the NBR that is determined by SN of 256 (the NBR in the cell that row number 16 identified and column intersection of numerical value is that 16 identifies is the NBR that is a208 corresponding to the SN of 256).

[0152] In the second implementation, device 209 obtains the offset of the first bit set to 1 in the right-to-left direction in the bit string of the first BIER multicast message, for example, the offset is 2. Device 209 uses 2 as the SN to look up Table 2-7 or Table 2-8 in Example 1 and obtains an NBR with a value of a206. Or device 209 uses 2 as the index to look up the matching cell in Table 2-9, that is, a206 in the cell in the second column of the row where the SN is 1-16. Device 209 sets the second bit to 0 in the right-to-left direction and obtains 1000…0000000000000000000000000000000000. Device 209 determines that the offset of the first bit set to 1 in the right-to-left direction is 256. Device 209 uses 256 as the SN to look up Table 2-7 or Table 2-8 in Example 1 and obtains an NBR with a value of a208. Alternatively, device 209 uses index 256 to search for a matching cell in table 2-9, ie, cell a208 in the row and column 16 where SN 241-256 is located. The method for device 209 to search table 2-9 to determine the next hop can be found in the first implementation above and will not be described in detail here.

[0153] Among them, when device 209 looks up Table 2-8, it can directly determine the NBR corresponding to it based on the SN, without having to look up the bit string contained in the F-BM in Table 2-8. When device 209 looks up Table 2-9, it can use the offset of the first bit set to 1 in the right-to-left direction in the bitstring of the first BIER multicast message to determine the serial number corresponding to the offset, and determine the row number where the SN is located based on the quotient of the determined serial number and the read bit width, and read the NRB in the row whose sorting position is determined by the SN, thereby avoiding reading the usual F-BM and reducing the performance requirements for forwarding hardware.

[0154] Compared with the conventional BIFT table lookup method (reading the BIFT table entries shown in Table 1-3 requires reading 32 table entries, each table entry in Table 1-3 occupies 256 bits of F-BM and 8 bits of BFR-NBR identifier, and a total of 8448 bits need to be read), the table lookup method adopted by device 209 can reduce the performance requirements of forwarding hardware, and the table entries in Table 2-7, Table 2-8 and Table 2-9 can be further expanded according to the BSL value. Without increasing the performance requirements of the forwarding hardware, it can meet the table lookup forwarding requirements of bit strings with BSLs of 512 and 1024.

[0155] For example, device 209 obtains the BIER multicast message sent to the next hop in the following two ways:

[0156] In the first possible implementation, since when device 209 uses Table 2-7 and Table 2-9 to determine the NBR, the next hop of the BFER corresponding to the second bit set to 1 in the first BIER multicast message reached by device 209 is device 206, and the next hop of the BFER corresponding to the 256th bit set to 1 in the first BIER multicast message reached by device 209 is device 208, then device 209 needs to perform message copying and bit string replacement operations. Specifically, device 209 determines that the table entry with SN of 2 can be used to forward the first BIER multicast message, and device 209 retains the second bit set to 1 from right to left in the bit string of the first BIER multicast message (the bit corresponding to SN of 2), clears the other bits, and obtains a bit sting with a value of 0000…000000000000000000000000000000010. Device 209 obtains a second BIER multicast message based on the first BIER multicast message and the bit sting with a value of 0000…0000000000000000000000000000000010. The second BIER multicast message includes the bit sting of 0000…0000000000000000000000000000000010. Device 209 sends the second BIER multicast message to the NBR in the table entry with SN 2, that is, device 206. Device 209 can clear the second bit that is set to 1 in the bit string from right to left in the first BIER multicast message to 0, and obtain a bit sting with a value of 1000…00000000000000000000000000000000000000. Since the bitsting with a value of 1000…000000000000000000000000000000000 is not all 0, the device 209 copies a copy of the first BIER multicast message. The device 209 can replace the bit string in the first BIER multicast message with 1000…0000000000000000000000000000000000 to obtain a third BIER multicast message. Alternatively, the device 209 can retain the bit corresponding to the SN in the first BIER multicast message (the 256th bit from right to left) unchanged according to the table lookup result of SN being 256, clear the other bits to obtain a bit sting with a value of 1000…000000000000000000000000000000000000. Device 209 obtains the third BIER multicast message based on the first BIER multicast message and the bit sting with a value of 1000…000000000000000000000000000000000000.The third multicast message includes a bit sting with a value of 1000…0000000000000000000000000000000000. Device 209 sends the third BIER multicast message to the NBR in the table entry with an SN of 256, that is, device 208.

[0157] In a second possible implementation, when device 209 looks up Table 2-8, it determines that the table entry with SN 2 is used to forward the first BIER multicast message. Device 209 performs an AND operation on the F-BM in the table entry with SN 2 and the bit string in the first BIER multicast message to obtain 000…0000000000000000000000000000000010. Device 209 replaces the bit string in the first BIER multicast message with the result of the AND operation to obtain a second BIER multicast message. The bit string of the second BIER multicast message is 000…0000000000000000000000000000000010. Device 209 sends the second BIER multicast message to the NBR in the table entry with SN 2, that is, device 206. When looking up Table 2-8, device 209 can determine that the table entry with SN of 256 is used to forward the first BIER multicast message. The method by which device 209 determines that the table entry with SN of 256 is used to forward the first BIER multicast message can be referred to the method adopted by device 210 and will not be repeated here. Device 209 performs an AND operation on the F-BM in the table entry with SN of 256 and the bit string in the first BIER multicast message to obtain 100…0000000000000000000000000000000000. Device 209 replaces the bit string in the first BIER multicast message with the result of the AND operation to obtain a third BIER multicast message. The bit string of the third BIER multicast message is 100…0000000000000000000000000000000000000. Device 209 sends the third BIER multicast message to the NBR in the table entry with SN 256, that is, device 208.

[0158] In a third possible implementation, device 209 receives a first BIER multicast message including a first sub-message and a second sub-message. Device 209 may adopt the first possible implementation or the second possible implementation to obtain the second BIER multicast message and the third BIER multicast message. The difference from the first possible implementation or the second possible implementation is that, since device 210 has already performed message replication, device 209 does not need to perform message replication and bit string replacement. Specifically, since the bit string included in the first sub-message includes only one bit set to 1, that is, the 2nd bit from right to left, device 209 uses the first sub-message as the second BIER multicast message. Device 209 sends the second BIER multicast message to the NBR in the table entry with SN 2, that is, device 206. Since the bit string included in the second sub-message includes only one bit set to 1, that is, the 256th bit from right to left, device 209 uses the second sub-message as the third BIER multicast message. Device 209 sends the third BIER multicast message to the NBR in the table entry with SN 256, that is, device 208.

[0159] S404, device 206 determines its own next hop and sends it based on its configured BIFT table entry and the second BIER multicast message.

[0160] For example, the next hop of device 206 refers to the next node that the BFER connected to one or more multicast receivers passes through in the direction from the multicast source to the multicast receiver, such as Figure 2 Device 102 and device 103 in the embodiment 2 of the present application are explained by taking the example that multicast receiver 2 and multicast receiver 6 need to receive multicast messages from the multicast source. Then, based on the offset of the bit set to 1 in the second BIER multicast message in the bit string, device 206 determines that the next hop of the second BIER multicast message is device 102.

[0161] For example, the method for device 206 to determine the next hop may include: device 206 obtains the offset of the bit set to 1 in the right-to-left direction in the bit string included in the second BIER multicast message, for example, the offset is 2. Device 206 uses 2 as the SN to look up Table 2-1 or Table 2-2 in Example 1 to obtain the NBR with a value of a102. Or device 206 uses 2 as the index to look up the matching cell in Table 2-3, that is, the NBR of a102 in the cell in the second column of the row where the SN is 1-16. Among them, when device 206 looks up Table 2-2, it can directly determine the corresponding NBR based on the SN without looking up the F-BM in Table 2-2. When device 206 looks up table 2-3, it can use the quotient of the offset of the first bit set to 1 in the right-to-left direction in the bit string of the second BIER multicast message and the read bit width to determine the row number where the SN is located, and read the NRB in the row. For example, the quotient of the offset with a value of 2 and the read bit width with a value of 16 is 0, and the row number where the SN is located is determined to be 1. Compared with the conventional BIFT table lookup method (reading the BIFT table items shown in Table 1-1 requires reading 32 table items, and each table item in Table 1-1 occupies 256 bits of F-BM and 8 bits of BFR-NBR identifier, and a total of 8448 bits need to be read), the table lookup method adopted by device 206 can reduce the performance requirements for forwarding hardware, and the table items in Table 2-1, Table 2-2 and Table 2-3 can be further expanded according to the value of BSL. Without increasing the performance requirements of the forwarding hardware, it can meet the table lookup and forwarding requirements of bit strings with BSLs of 512 and 1024. The method for the device 206 to look up Table 2-3 to determine the next hop can be referred to the method for the device 209 to look up Table 2-9 to determine the next hop, which will not be repeated here.

[0162] For example, device 206 obtains the BIER multicast message sent to the next hop in the following two implementations:

[0163] In a first possible implementation, since the next hop of the BFER corresponding to the second bit set to 1 in the second BIER multicast message when device 206 determines the NBR using Table 2-1 and Table 2-3 is device 102, device 206 does not need to perform message copying and bit string replacement operations. Device 206 sends the second BIER multicast message to the NBR in the table entry with an SN of 2, that is, device 102. Device 206 can clear the second bit set to 1 in the bit string from right to left in the second BIER multicast message to 0, and obtain a bitsting with a value of 0000…00000000000000000000000000000000, all 0s, and then device 206 no longer copies the message.

[0164] In a second possible implementation, when device 206 looks up table 2-2, it determines that the table entry with SN 2 is used to forward the second BIER multicast message. Device 206 performs an AND operation on the F-BM in the table entry with SN 2 and the bit string in the second BIER multicast message, and obtains 000…00000000000000000000000000000000010, which is the same as the bit string in the second BIER multicast message, and no replacement or copy operation is performed. Device 206 sends the second BIER multicast message to the NBR in the table entry with SN 2, that is, device 102. Device 206 can clear the second bit that is set to 1 in the bit string from right to left in the second BIER multicast message to 0, and obtain a bit sting with a value of 0000…000000000000000000000000000000000, all 0s, then device 206 will no longer copy the message.

[0165] S405, device 208 determines its own next hop and sends it based on its configured BIFT table entry and the third BIER multicast message.

[0166] For example, the next hop of device 208 refers to the next node that the BFER connected to one or more multicast receivers passes through in the direction from the multicast source to the multicast receiver, such as Figure 2 Device 255 and device 256 in the device. The second embodiment of the present application is to illustrate the example where multicast receiver 2 and multicast receiver 6 need to receive multicast messages from the multicast source. According to the offset of the bit set to 1 in the third BIER multicast message in the bit string, device 208 determines that the next hop of the third BIER multicast message is device 256.

[0167] For example, the method for device 208 to determine the next hop may include: device 208 obtains the offset of the bit set to 1 in the right-to-left direction in the bit string included in the third BIER multicast message, for example, the offset is 256. Device 208 uses 256 as the SN to look up Table 2-4 or Table 2-5 in Example 1 to obtain the NBR with a value of a256. Or device 208 uses 256 as the index to look up the matching cell in Table 2-6, that is, the NBR of a256 in the cell in the 16th column of the row where the SN is 241-256. Among them, when device 208 looks up Table 2-5, it can directly determine the corresponding NBR based on the SN without looking up the F-BM in Table 2-5. When device 208 looks up Table 2-6, it can use the quotient of the offset of the first bit set to 1 in the right-to-left direction in the bit string of the third BIER multicast message and the read bit width to determine the row number where the SN is located and read the NRB in the row. For example, the quotient of the offset with a value of 256 and the read bit width with a value of 16 is 16, and the row number where the SN is located is determined to be 16. Compared with the conventional BIFT table lookup method (reading the BIFT table items shown in Table 1-2 requires reading 32 table items, each table item in Table 1-2 occupies 256 bits of F-BM and 8 bits of BFR-NBR identifier, and a total of 8448 bits need to be read), the table lookup method adopted by device 208 can reduce the performance requirements for forwarding hardware, and the table items in Table 2-4, Table 2-5 and Table 2-6 can be further expanded according to the value of BSL. Without increasing the performance requirements of the forwarding hardware, it can meet the table lookup and forwarding requirements of bit strings with BSLs of 512 and 1024. The method for the device 208 to look up Table 2-6 to determine the next hop can be referred to the method for the device 209 to look up Table 2-9 to determine the next hop, which will not be repeated here.

[0168] For example, the device 208 obtains the BIER multicast message sent to the next hop in the following two ways:

[0169] In a first possible implementation, since the next hop of the BFER corresponding to the 256th bit set to 1 in the third BIER multicast message when device 208 determines the NBR using Tables 2-1 and 2-3 is device 256, device 208 does not need to perform message copying and bit string replacement operations. Device 208 sends the third BIER multicast message to the NBR in the table entry with an SN of 256, that is, device 256. Device 208 can clear the second bit set to 1 in the bit string from right to left in the third BIER multicast message to 0, and obtain a bit sting with a value of 0000…00000000000000000000000000000000, all 0s, and then device 208 no longer copies the message.

[0170] In a second possible implementation, when device 208 looks up Table 2-2, it determines that the table entry with SN 256 is used to forward the third BIER multicast message. Device 208 performs an AND operation on the F-BM in the table entry with SN 256 and the bit string in the third BIER multicast message, and obtains 100…0000000000000000000000000000000000, which is the same as the bit string in the third BIER multicast message, and no replacement or copy operation is performed. Device 208 sends the third BIER multicast message to the NBR in the table entry with SN 256, that is, device 256. Device 208 can clear the second bit that is set to 1 in the bit string from right to left in the third BIER multicast message to 0, and obtain a bit sting with a value of 0000…000000000000000000000000000000000, all 0s, then device 208 will no longer copy the message.

[0171] S406: The device serving as the BFER obtains the multicast message and sends it to the multicast receiver.

[0172] For example, after receiving the second BIER multicast message, device 102, acting as a BFER, determines that the bit string includes its own BFR-ID based on the bit string (0000…00000000000000000000000000000000010) in the second BIER multicast message. That is, the second bit set to 1 from right to left represents the BFR-ID of device 102. Device 102, acting as a BFER, strips the BIER header from the second BIER multicast message and sends it to multicast receiver 2 connected to it. After receiving the third BIER multicast message, device 256, acting as a BFER, determines that the bit string includes its own BFR-ID based on the bit string (1000…00000000000000000000000000000000000000000000000. That is, the 256th bit set to 1 from right to left represents the BFR-ID of device 256. Device 256 acting as a BFER strips the BIER header from the third BIER multicast message and sends it to the multicast receiver 6 connected to itself.

[0173] In the method provided in the first embodiment of the present application, the forwarding device in the BIER network scenario, such as a device serving as a BFIR, an intermediate BFR or a BFER, can obtain the optimized BIFT table entries provided in the embodiment of the present application through the control plane, and use the optimized BIFT table entries provided in the embodiment of the present application to forward BIER multicast messages, thereby eliminating the operation of reading the bit string in the F-BM determined by the BSL included in the usual BIFT table entries, thereby improving the forwarding efficiency and scalability without improving the forwarding hardware performance.

[0174] Figure 5 Another BIER network scenario schematic diagram provided for an embodiment of the present application. Figure 5 The BIER network scenario shown is similar to Figure 2 The BIER network scenario shown differs in that Figure 5 The BIER network scenario shown is in Figure 2 In the network scenario shown above, multicast receiver 7 is added, hoping to receive multicast packets from a multicast source. Multicast receiver 7 connects to device 509 via device 511, acting as a BFER. Device 509 is connected to devices 510, 505, 506, 507, and 508. Device 510 is connected to the multicast source. Device 511, acting as a BFER, is assigned a BFR ID of 31. Figure 5 The BIER network scenario shown is Figure 2Devices with the same reference numerals have the same functions and are not described in detail here. Devices 505, 506, 507, 508, and 509 are intermediate BFRs. Device 210 is a BFIR. Figure 5 In the BIER network scenario shown, multicast receiver 2, multicast receiver 6 and multicast receiver 7 need to receive multicast messages sent by the multicast source.

[0175] Example 3

[0176] Figure 6 A flowchart of the method for obtaining forwarding table entries provided in Example 3 of the present application. Figure 6 The corresponding embodiment is for the scenario where multicast receiver 2, multicast receiver 6 and multicast receiver 7 receive multicast messages from the multicast source. Figure 6 And the BFIR in the corresponding embodiment can be Figure 5 Device 510 in the BIER network scenario shown. Figure 6 And the intermediate BFR in the corresponding embodiment can be Figure 5 Device 509, device 506 or device 508 in the BIER network scenario shown. Figure 6 And the BFER in the corresponding embodiment can be Figure 5 Device 102, device 256 or device 511 in the BIER network scenario shown below. Figure 5 and Figure 6 , describes the method for obtaining forwarding table entries provided in an embodiment of the present application.

[0177] S601, BFER publishes its own BFR-id and device identity through IGP.

[0178] For details of the content of S601, please refer to the content of S301 in the first embodiment. Figure 5 In the illustrated scenario, the device acting as a BFER can use the method in S301 to publish its own BFR-id and device identity. The method for device 511 to publish its own BFR-id and device identity can refer to the method used by any device acting as a BFER in S301. The device identity of device 511 is a511.

[0179] S602: The intermediate BFR publishes its own device identity and the BFR-id of the BFER via IGP.

[0180] For details about S602, refer to S302 in Example 1. Intermediate BFRs other than device 509 can use the method in S302 to advertise their own device identifiers and the BFR ID of their BFER. Compared to S302 in Example 1, device 509, acting as an intermediate BFR, advertises a209 and BFR IDs of 1, 2, 3, 4, 31, 255, and 256 via IGP flooding.

[0181] S603: The intermediate BFR obtains a first forwarding table according to the parameters obtained through IGP flooding, where the first forwarding table includes an identifier of the next hop.

[0182] exist Figure 5 In the illustrated scenario, device 506 can use the method of S303 in Example 1 to obtain the same table entries as those in Table 2-3 of Example 1. Based on the obtained table entries that are the same as those in Table 2-3, device 506 divides the NBRs into identifier sets. For example, the 256 NBRs included in Table 2-3 are divided into 32 identifier sets, each identifier set including 8 NBRs sorted by SN. Device 506 divides the 32 identifier sets obtained by SN sorting (such as Bi, i below, the value range is between 0 and 31) into 32 identifier sets according to moving windows. For example, for a moving window with a value of 5, the first moving window includes B0-B4, the second moving window includes B1-B5, the third moving window includes B2-B6...the 28th moving window includes B27-B31, the 29th moving window includes B28-B31, the 30th moving window includes B29-B31, and the 31st moving window includes B30 and B31. The device 506 combines the Bi included in each moving window to obtain the Bi included in each row in Table 3-1. In Table 3-1, the identification set corresponding to B0 includes NBR with a value of a102.

[0183] Table 3-1

[0184] index 0 1 2 3 4 5 6 7 0 B0 B1 B0 B2 B0 B3 B0 B4 1 B1 B2 B1 B3 B1 B4 B1 B5 2 B2 B3 B2 B4 B2 B5 B2 B6 … … … … … … … … … 27 B27 B28 B27 B29 B27 B30 B27 B31 28 B28 B29 B28 B30 B28 B31 29 B29 B30 B29 B31 30 B30 B31

[0185] For example, the device 506 can divide the 8-bit identifier of each row in Table 2-3 through the control plane to obtain the identifier set of the Bi identifier. Among them, B0 in Table 3-1 represents the identifier set formed by the identifiers in the 1st to 8th columns of the table entries with SNs of 1-16 in Table 2-3. B1 in Table 3-1 represents the identifier set formed by the identifiers in the 9th to 16th columns of the table entries with SNs of 1-16 in Table 2-3. B2 in Table 3-1 represents the identifier set formed by the identifiers in the 1st to 8th columns of the table entries with SNs of 17-32 in Table 2-3. B3 in Table 3-1 represents the identifier set formed by the identifiers in the 9th to 16th columns of the table entries with SNs of 17-32 in Table 2-3. B30 in Table 3-1 represents the identifier set formed by the identifiers in the 1st to 8th columns of the table entries with SNs of 241-256 in Table 2-3. B31 in Table 3-1 represents the identifier set formed by the identifiers in the 9th to 16th columns of the table entries with SNs of 241-256 in Table 2-3. According to the above method, the 256 identifiers in Table 2-3 are converted into the 32 identifier sets B0 to B31 mentioned above. The number of columns corresponding to the identifier set identified by Bi in Table 3-1 in Table 2-1 can be determined based on the quotient of M and Y. In Example 3, M is 16 and Y is 2, wherein Y can also be other values ​​that are divisible by 16. The embodiment of the present application can select a value that can improve the forwarding hardware performance from the possible values ​​of Y, that is, Y is 2. Device 206 can group the 31 identifier sets from B0 to B31 through the control plane, and the group includes 32 identifier sets for example for explanation, that is, the 32 identifier sets included in each group are fully combined, such as two-by-two combinations, to obtain the table entries in the form of Table 3-2.

[0186] Table 3-2

[0187]

[0188]

[0189] exist Figure 5 In the illustrated scenario, device 508 can use the method used by device 208 in S303 of Example 1 to obtain the same table entries as in Table 2-6 of Example 1. Based on the obtained table entries identical to Table 2-6, device 508 divides the NBRs according to the method used by device 506, obtaining Table 3-3. In Table 3-3 obtained by device 508, B31 contains the NBR associated with multicast receiver 6, namely a256. Since the BFR-ID of device 256, to which device 508 is connected, is 256, Table 3-3 generated by device 508 adds a row with an entry indexed at 121.

[0190] Table 3-3

[0191]

[0192]

[0193] exist Figure 5 In the scenario shown, device 509 can use the method used by device 209 in S303 of embodiment 1 to obtain Table 3-4. In Table 3-4, ... indicates the omission of empty content, and X can be 0 or empty.

[0194] Table 3-4

[0195] SN 1 2 3 4 4-14 15 16 1-16 a205 a206 a206 a207 … X X 17-32 X X X X … a511 X … … … … … … … … 241-256 X X X X … a208 a208

[0196] In Table 3-4, a205 is the device identifier of device 505 connected to device 101. a206 is the device identifier of device 506 connected to devices 102 and 103. a207 is the device identifier of device 507 connected to device 104. a511 is the device identifier of device 511 connected to multicast receiver 7. a208 is the device identifier of device 208 connected to devices 255 and 256. The BFR-ID of device 101 is 1. The BFR-ID of device 102 is 2. The BFR-ID of device 103 is 3. The BFR-ID of device 104 is 4. The BFR-ID of device 255 is 255. The BFR-ID of device 256 is 256. The BFR-ID of device 511 is 31. The correspondence between NBRs and SNs in Table 3-4 is the same as in Table 2-7 and is not repeated here.

[0197] For example, device 509 divides the NBRs based on Table 3-4 using the method used by device 506, obtaining Table 3-5. In Table 3-5 obtained by device 509, B0 contains the NBR associated with multicast receiver 2, namely, a206. B3 contains the NBR associated with multicast receiver 7, namely, a511. B31 contains the NBR associated with multicast receiver 6, namely, a208. The entry with index 121 in Table 3-5 for device 509 has the same meaning as in Table 3-3, indicating that device 509 can communicate with device 256, whose BFR-ID is 256.

[0198] Table 3-5

[0199]

[0200]

[0201] S604: The BFIR obtains a second forwarding table according to the parameters obtained through IGP flooding, where the second forwarding table includes an identifier of the next hop.

[0202] Figure 5In the scenario shown, device 510 can use the method used by device 210 in S304 of embodiment 1 to obtain Table 3-6. In Table 3-6, ... indicates the omission of empty content, and X can be 0 or null. In Table 3-6, a209 is the device identifier of device 509.

[0203] Table 3-6

[0204] SN 1 2 3 4 4-14 15 16 1-16 a209 a209 a209 a209 … X X 17-32 X X X X … a209 X … … … … … … … … 241-256 X X X X … a209 a209

[0205] For example, device 510 divides the NBRs based on Table 3-6 using the method used by device 506, obtaining Table 3-7. In Table 3-7 obtained by device 510, B0 contains the NBR associated with multicast receiver 2, namely, a209. B3 contains the NBR associated with multicast receiver 7, namely, a209. B31 contains the NBR associated with multicast receiver 6, namely, a209. The entry with index 121 in Table 3-7 for device 510 has the same meaning as in Table 3-4, indicating that device 510 can communicate with device 256, whose BFR-ID is 256.

[0206] Table 3-7

[0207]

[0208]

[0209] The tables in the form of Tables 3-1 to 3-7 above are based on an example of M being 16, for a BIER network scenario with a BSL of 256 bits. Since the 256 bits occupied by each F-BM are omitted, when M is 16, the above forwarding table can be further expanded for BIER network scenarios with a BSL of 512 bits or 1024 bits. Since the forwarding hardware no longer needs to read the 256-bit F-BM included in the usual BIFT table entries, even for network scenarios with a BSL of 512 bits or 1024 bits, the forwarding hardware can quickly complete table entry lookup and forwarding without any performance improvement, further improving forwarding efficiency.

[0210] In the forwarding table provided in the embodiment of the present application, the Bi containing multiple NBRs can be directly indexed according to whether the bit in its corresponding bitstring is set to 1, that is, the NBR as the next hop is directly obtained, which saves the space for storing F-BM and the hardware resources consumed by reading F-BM operations, and can reduce the performance requirements for forwarding hardware.

[0211] Example 4

[0212] Figure 7The flow chart of the method for forwarding multicast messages provided in the fourth embodiment of the present application. The table entries in the fourth embodiment are the table entries obtained in the third embodiment. The multicast receivers 2, 6 and 7 in the fourth embodiment need to obtain multicast messages from the multicast source. Figure 5 、 Figure 6 and Figure 7 , describes the method for forwarding multicast messages provided in Example 4 of the present application.

[0213] S701, device 510 obtains the first BIER multicast message based on the multicast message from the multicast source.

[0214] In this embodiment, the device 510 can adopt the method in S401 of Example 2 to obtain the first BIER multicast message, which will not be repeated here. The bit string included in the first BIER multicast message in Example 4 is different from the bit sting included in the first BIER multicast message in Example 1. The bit string included in the first BIER multicast message in Example 4 is 1000…0100000000000000000000000000000010, that is, the 2nd bit, 31st bit and 256th bit from right to left of the bitstring in the first BIER multicast message in Example 4 are set to 1.

[0215] S702, device 510 determines its own next hop and sends the first BIER multicast message based on its configured table forwarding items.

[0216] For example, the device 510 determines the table entry in Table 3-7 to be searched based on whether the 8-bit data block in the bit string included in the first BIER multicast message from right to left is all 0. The device 510 reads 32 8-bit data blocks from the bit string of the first BIER multicast message from right to left, that is, 1000…01000000000000000000000000000000010. The first data block (1st bit to 8th bit), the fourth data block (25th bit to 32nd bit) and the 32nd data block (249th bit to 256th bit) from right to left contain bits set to 1. The first data block corresponds to B0. The fourth data block corresponds to B3. The 32nd data block corresponds to B31. The identification set identified by Bi is a set of n NBRs, and the value of n is the quotient of M and Y. According to the contents of Table 3-7, the NBR corresponding to the 2nd bit in the identifier set identified by B0 is a209. The NBR corresponding to the 31st bit in the identifier set identified by B3 is a209. The NBR corresponding to the 256th bit in the identifier set identified by B31 is a209. Device 510 determines that B0 and B3 are the identifier sets associated with the bits set to 1 based on the offsets of the bits set to 1 in the bit string of the first BIER multicast message, such as 2 and 31. Device 510 searches for the row containing B0 and B3 in Table 3-7, reads the NBR corresponding to the 2nd bit in B0 and the NBR corresponding to the 31st bit in B3, and obtains a209. Device 510 clears the 2nd and 31st bits from right to left in the bit string included in the first BIER multicast message to 0 (i.e., clears the bits corresponding to the identifier sets identified by B0 and B3 in the bit string to 0), and obtains a bit string with a value of 1000…0000000000000000000000000000000000000. Device 510 determines that the 32nd data block of the bit string with a value of 1000…0000000000000000000000000000000000 contains a bit set to 1, then uses B31 corresponding to the 31st data block to look up Table 3-7, reads the NBR corresponding to the 256th bit in B31, and obtains a209. Device 510 sends the first BIER multicast message to a209.

[0217] S703, device 509 determines its own next hop and sends it based on its configured forwarding table entry and the bit string in the first BIER multicast message.

[0218] For example, device 509 reads four 8-bit data blocks from right to left in the bit string of the first BIER multicast message, namely 1000…01000000000000000000000000000000010. The first, fourth and 32nd data blocks from right to left contain bits set to 1. The first data block corresponds to B0. The fourth data block corresponds to B3. The 32nd data block corresponds to B31. According to the contents of Table 3-5, the NBR corresponding to the 2nd bit in the identifier set identified by B0 is a206. The NBR corresponding to the 31st bit in the identifier set identified by B3 is a511. The NBR corresponding to the 256th bit in the identifier set identified by B31 is a208. Device 509 determines that B0 and B3 are the identifier sets related to the bits set to 1 based on the offset of the bits set to 1 in the bit string of the first BIER multicast message. Device 509 searches Table 3-5 for the row containing B0 and B3, reads the NBR (a206) corresponding to the second bit in B0, and reads the NBR (a511) corresponding to the 31st bit in B3. Device 509 makes a copy of the first BIER multicast message. Device 509 clears all bits except the second bit to zero, obtaining a bit string with a value of 0000…00000000000000000000000000000000010. Device 509 replaces the bit string in the first BIER multicast message with 0000…000000000000000000000000000000010, obtaining a second BIER multicast message. Device 509 sends the second BIER multicast message to a206. Device 509 clears all bits except the 31st bit to zero, obtaining a bit string with a value of 0000…01000000000000000000000000000000000. Device 509 replaces the bit string in the copied first BIER multicast message with 0000…010000000000000000000000000000000000, obtaining a fourth BIER multicast message. Device 509 sends the fourth BIER multicast message to a511. Device 509 clears the 2nd and 31st bits from right to left in the bit string included in the first BIER multicast message to 0 (i.e., clears the bits corresponding to the identifier sets identified by B0 and B3 in the bit string to 0), obtaining a bit string with a value of 1000…00000000000000000000000000000000000000000000.Device 509 determines that the 32nd data block of the bit string with a value of 1000…000000000000000000000000000000000 contains a bit set to 1. It then uses B31 corresponding to the 32nd data block to look up Table 3-5, reads the NBR corresponding to the 256th bit in B31, and obtains a208. Device 509 copies the first BIER multicast message. Device 509 replaces the bit string in the copied first BIER multicast message with 1000…0000000000000000000000000000000000, obtaining a third BIER multicast message. Device 509 sends the third BIER multicast message to a208.

[0219] S704, device 506 determines its own next hop and sends the second BIER multicast message based on its configured BIFT table entry and the second BIER multicast message.

[0220] In this embodiment, device 506 adopts the method adopted by device 206 in embodiment 1 to determine that the next hop is device 102, and sends a second BIER multicast message to device 102. The method by which device 506 determines the next hop is similar to the method adopted by the aforementioned device 509, that is, based on the offset of the bit set to 1 in the bit string of the second BIER multicast message, that is, the offset is 2, and the NBR included in B0 corresponding to the second bit is searched, that is, a102. Device 506 sends the second BIER multicast message to a102.

[0221] S705, device 508 determines its own next hop and sends the third BIER multicast message based on its configured BIFT table entry and the third BIER multicast message.

[0222] In this embodiment, device 508 adopts the method adopted by device 208 in embodiment 1 to determine that the next hop is device 256, and sends the third BIER multicast message to device 256. The method used by device 508 to determine the next hop is similar to the method adopted by the above-mentioned device 509, that is, based on the offset of the bit set to 1 in the bit string of the third BIER multicast message, that is, the offset is 256, and the NBR included in B31 corresponding to the 256th bit is searched, that is, a256. Device 508 sends the third BIER multicast message to a256.

[0223] S706: The device serving as the BFER obtains the multicast message and sends it to the multicast receiver.

[0224] For example, the method for the device 102, device 256 and device 511 as BFERs to obtain and send multicast messages can refer to the method adopted by the device 102 in the first embodiment, which will not be repeated here.

[0225] In the method provided in Example 2, the forwarding device in the BIER network scenario, such as a device serving as a BFIR, an intermediate BFR, or a BFER, can further optimize the table entries provided in Example 1 through the control plane to obtain the optimized table entries provided in Example 2 of the present application. Compared with the forwarding method of Example 1, the amount of data read during each forwarding table lookup can be further reduced. For example, in Example 2, the amount of data that is the product of 128 bits and 2 is read (a Bi identifier set is 128 bits, and only 2 identifier sets need to be read). Compared with Example 1, the amount of data read is further reduced by 128 bits, which improves the forwarding efficiency and scalability without improving the performance of the forwarding hardware.

[0226] The bit string carrying method in any BIER multicast message mentioned in Example 2 and Example 4 of the present application may include the following methods:

[0227] Method 1: The bit string is carried in the destination options header (DOH) after the IPv6 header included in the BIER multicast message, see Figure 8 The packet format shown in the figure. The next header in the IPv6 header is assigned a value of 60, indicating that the IPv6 header is followed by the DOH. The next header in the DOH is 4, indicating that the payload following it is the fourth version of the Internet Protocol (Internet Protocol version 4, IPv4) multicast packet. The next header in the DOH is 41, indicating that the payload following it is the sixth version of the Internet Protocol (Internet Protocol version 6, IPv6) multicast packet. The DOH also includes a bit string field ( Figure 8 (not shown), this bit string is used to carry the bit string in the BIER multicast message.

[0228] Method 2: The bit string is carried in the destination options header (DOH) after the IPv6 header included in the BIER multicast message, see Figure 9The packet format shown in the figure. The next header in the IPv6 header is assigned a value of 0, indicating that the IPv6 header is followed by a hop-by-hop option header (HBH option header). The next header in the hop-by-hop option header is assigned a value of 60, indicating that the hop-by-hop option header is followed by a DOH. The next header in the DOH is 4, indicating that the subsequent payload is an Internet Protocol version 4 (IPv4) multicast message. The next header in the DOH is 41, indicating that the subsequent payload is an Internet Protocol version 6 (IPv6) multicast message. The DOH also includes a bit string field ( Figure 8 (not shown), this bit string is used to carry the bit string in the BIER multicast message.

[0229] Method 3: The bit string is carried in the IPv6 extension header after the IPv6 header included in the BIER multicast message, see Figure 10 The message format shown. The BIER header in the IPv6 extension header can be used to carry the bit string in the BIER multicast message of the embodiment of the present application. Figure 10 The multicast data message in can be an IPv4 multicast message or an IPv6 multicast message.

[0230] Figure 11 A schematic diagram of the structure of the forwarding device provided in an embodiment of the present application. Figure 11 The forwarding device 1100 provided in the corresponding embodiment is described from the perspective of logical structure, and can be set in the device as a BFIR or the device as an intermediate BFR mentioned in any of the above embodiments 1 to 4, such as Figure 2 Device 210, device 209, device 206 or device 208 in the scene shown, Figure 5 Device 510, device 509, device 506 or device 508 in the scene shown. Figure 11 , describes the structure of the forwarding device provided in the embodiment of the present application.

[0231] Forwarding device 1100 includes: a receiving unit 1101, a determining unit 1102, and an obtaining unit 1103. Receiving unit 1101 is configured to receive a BIER multicast message, wherein the BIER multicast message includes a first bit string, wherein the bits set to 1 in the first bitstirng correspond to the BFER. Determining unit 1102 is configured to determine an index of a forwarding table entry based on the bits set to 1 in the first bit string, wherein the forwarding table entry includes the index and an identifier of a next-hop device. Obtaining unit 1103 is configured to directly obtain the identifier of the device based on the index, wherein the device is the BFER or the first intermediate forwarding router (BFR) passed through to reach the BFER. Forwarding device 1100 is device 210 in Example 2, and determining unit 1102 and obtaining unit 1103 are configured to support device 210 in executing S402 in Example 2. Forwarding device 1100 is device 209 in Example 2, and determining unit 1102 and obtaining unit 1103 are configured to support device 209 in executing S403 in Example 2. The forwarding device 1100 is the device 206 in the second embodiment. The determining unit 1102 and the obtaining unit 1103 are used to support the device 206 in executing S404 in the second embodiment. The forwarding device 1100 is the device 208 in the second embodiment. The determining unit 1102 and the obtaining unit 1103 are used to support the device 208 in executing S405 in the second embodiment. The forwarding device 1100 is the device 510 in the fourth embodiment. The determining unit 1102 and the obtaining unit 1103 are used to support the device 510 in executing S702 in the fourth embodiment. The forwarding device 1100 is the device 509 in the fourth embodiment. The determining unit 1102 and the obtaining unit 1103 are used to support the device 509 in executing S703 in the fourth embodiment. The forwarding device 1100 is the device 506 in the fourth embodiment. The determining unit 1102 and the obtaining unit 1103 are used to support the device 506 in executing S704 in the fourth embodiment. The forwarding device 1100 is the device 508 in the fourth embodiment, and the determining unit 1102 and the obtaining unit 1103 are used to support the device 508 in executing S705 in the fourth embodiment.

[0232] In a first possible implementation, the index is a serial number corresponding to the BFR-id of the BFER, and the device identifier corresponds to a serial number. The forwarding table entry in the first possible implementation may be a forwarding table entry included in a forwarding table such as Table 2-1, Table 2-4, Table 2-7, or Table 2-10 of Example 1.

[0233] In a second possible implementation, the forwarding table entry is based on the first possible implementation, and further includes a second bit string. The second bit string has one and only one bit set to 1, and the offset of the bit set to 1 in the second bit string corresponds to the serial number included in the forwarding table entry in which it is located. The forwarding table entry in the second possible implementation may be a forwarding table included in a forwarding table such as Table 2-2, Table 2-5, Table 2-8, or Table 2-11 in Example 1. Based on the forwarding table entry in the second possible implementation, the obtaining unit 1103 is specifically configured to obtain the identifier of the device as the next hop included in the forwarding table entry according to the serial number, without searching for the second bit string included in the forwarding table entry.

[0234] In a third possible implementation, the forwarding table entry includes N identifiers, where N is less than or equal to the value of the read bit width, the N identifiers include the identifier of the device, and the order of any identifier included in the N identifiers in the forwarding table entry corresponds to the serial number. The forwarding table entry in this third possible implementation can be a forwarding table entry included in a forwarding table such as Table 2-3, Table 2-6, Table 2-9 or Table 2-12 in Example 1. Based on the forwarding table entry of the third possible implementation, the obtaining unit 1103 is specifically used to: determine a row number according to the serial number and the read bit width, the row number corresponding to the quotient of the serial number and the read bit width; and obtain the N identifiers included in the forwarding table entry corresponding to the row number.

[0235] Based on the forwarding table entries of the three possible implementations, the determining unit 1102 is specifically configured to: obtain an offset of the bit set to 1 in the first bit string in the first bit string; and determine the index according to the offset, where the offset corresponds to the index.

[0236] In a fourth possible implementation, the index is used to identify a row containing M identifier sets, where M is an integer greater than or equal to 2, the M identifier sets include the identifier of the device, the identifier set to which the identifier of the device belongs corresponds to the data block to which the sequence number belongs, and the order of the identifier of the device within the identifier set to which it belongs corresponds to the sequence number. The forwarding table entries in this fourth possible implementation may be forwarding table entries included in forwarding tables such as Table 3-2, Table 3-3, Table 3-5, or Table 3-7 in Example 3.

[0237] Based on the forwarding table entry of the fourth possible implementation, the determining unit 1102 is specifically configured to: determine, based on the first bit string and the read bit width, the data block to which the bit set to 1 in the first bit string belongs; obtain an identification set corresponding to the data block to which the bit set to 1 in the first bit string belongs, the M identification sets including the identification set corresponding to the data block; and determine, based on the identification set corresponding to the data block, the row in which the M identification sets are located. The obtaining unit 1103 is specifically configured to: obtain the identification of the device from the M identification sets included in the row corresponding to the index.

[0238] By way of example, forwarding device 1100 may also obtain a forwarding entry in the following manner. When the forwarding entry is a forwarding entry in the first, second, or third possible implementation, receiving unit 1101 is further configured to receive the device identifier and the BFR-ID sent by the device. Obtaining unit 1103 is further configured to: obtain the corresponding sequence number based on the BFR-ID; and obtain the forwarding entry based on the sequence number and the device identifier, where the index of the forwarding entry is the sequence number and the next hop of the forwarding entry is the device identifier.

[0239] For example, when the forwarding table entry is the forwarding table entry in the second possible implementation manner, the receiving unit 1101 is further configured to receive the device identifier and the BFR-id sent by the device. The obtaining unit 1103 is further configured to: obtain the second bit string and the serial number corresponding to the BFR-id based on the BFR-id; and obtain the forwarding table entry based on the serial number, the second bit string, and the device identifier, wherein the index of the forwarding table entry is the serial number, the forwarding bit string mask F-BM of the forwarding table entry is the second bit string, and the next hop of the forwarding table entry is the device identifier.

[0240] For example, when the forwarding table entry is the forwarding table entry in the third possible implementation, the receiving unit 1101 is further configured to receive the device identifier and the BFR-id sent by the device. The obtaining unit 1103 is further configured to: obtain the corresponding serial number based on the BFR-id; and sort the serial number and the device identifier according to the read bit width to obtain the forwarding table entry, wherein the row number of the forwarding table entry corresponds to the quotient of the serial number and the read bit width, and the order of the device identifier included in the forwarding table entry among the N identifiers corresponds to the serial number.

[0241] For example, when the forwarding table entry is the forwarding table entry in the fourth possible implementation method described above, the receiving unit 1101 is further used to receive the identifier of the device and the BFR-id sent by the device. The obtaining unit 1103 is further used to: obtain the serial number corresponding to the BFR-id according to the BFR-id; divide the identifiers corresponding to the serial numbers according to the order of the serial numbers to obtain L identifier sets, where L corresponds to the quotient of the maximum value of the serial number and a preset value, and the preset value is the number of bits included in the data block; divide the L identifier sets according to the moving window, and combine the identifier sets within the moving window to obtain the forwarding table entry including the M identifier sets. The size of the moving window can be set as needed. In the embodiment of the present application, the moving window is 5 identifier sets. The maximum value of the serial number is 256, the preset value is 8, L is 32, and M is 2.

[0242] Figure 12 A schematic diagram of the structure of an apparatus for generating forwarding table entries provided in an embodiment of the present application. Figure 12 The apparatus 1200 provided in the corresponding embodiment is described from the perspective of logical structure, and can be set in the device as a BFIR or the device as an intermediate BFR mentioned in any of the above embodiments 1 to 4, such as Figure 2 Device 210, device 209, device 206 or device 208 in the scene shown, Figure 5 Device 510, device 509, device 506 or device 508 in the scene shown. Figure 12 , the structure of the device for generating forwarding table entries provided in an embodiment of the present application is described.

[0243] Apparatus 1200 includes a receiving unit 1201 and an obtaining unit 1202. Receiving unit 1201 is configured to receive an identifier and a BFR-ID of the device sent by a device. The BFR-ID is used to identify a BFER capable of communicating with the device. The device is the BFER or the first BFR passed through to reach the BFER. Obtaining unit 1202 is configured to obtain a forwarding entry based on the identifier and the BFR-ID of the device. The index of the forwarding entry corresponds to the BFR-ID, and the forwarding entry is used to directly obtain the identifier of the device as the next hop included in the forwarding entry based on the index. Apparatus 1200 is apparatus 210 in Example 1. Obtaining unit 1202 is configured to support apparatus 210 in executing S304 in Example 1. Apparatus 1200 is apparatus 209 in Example 1. Obtaining unit 1202 is configured to support apparatus 209 in executing S303 in Example 1. The apparatus 1200 is the device 206 in the first embodiment, and the obtaining unit 1202 is used to support the device 206 in executing S303 in the first embodiment. The apparatus 1200 is the device 208 in the first embodiment, and the obtaining unit 1202 is used to support the device 208 in executing S303 in the first embodiment.

[0244] In a first possible implementation, the index is a serial number corresponding to the BFR-id, and the device identifier corresponds to a serial number. The forwarding table entries in the first possible implementation may be forwarding table entries included in a forwarding table such as Table 2-1, Table 2-4, Table 2-7, or Table 2-10 of Example 1.

[0245] In a second possible implementation, the forwarding table entry is based on the first possible implementation and further includes a first bit string, wherein the first bit string has only one bit set to 1, and the offset of the bit set to 1 in the first bit string corresponds to the sequence number included in the forwarding table entry in which the bit is located. The forwarding table entry in this second possible implementation may be a forwarding table such as Table 2-2, Table 2-5, Table 2-8, or Table 2-11 in Example 1.

[0246] In a third possible implementation, the forwarding table entry includes N identifiers, where N is less than or equal to the value of the read bit width, the N identifiers include an identifier of the device, and the order of any identifier included in the N identifiers in the forwarding table entry corresponds to the sequence number. The forwarding table entry in this third possible implementation can be a forwarding table included in a forwarding table such as Table 2-3, Table 2-6, Table 2-9, or Table 2-12 in Example 1.

[0247] In a fourth possible implementation, the index is used to identify a row containing M identifier sets, where M is an integer greater than or equal to 2, the M identifier sets include the identifier of the device, the identifier set to which the identifier of the device belongs corresponds to the data block to which the sequence number belongs, and the order of the identifier of the device within the identifier set to which it belongs corresponds to the sequence number. The forwarding table entries in this fourth possible implementation may be forwarding table entries included in forwarding tables such as Table 3-2, Table 3-3, Table 3-5, or Table 3-7 in Example 3.

[0248] For example, when the forwarding table entry is a forwarding table entry in the first, second or third possible implementation manner mentioned above, the obtaining unit 1202 is further used to: obtain the serial number corresponding to the BFR-id according to the BFR-id; obtain the forwarding table entry according to the serial number and the identifier of the device, the index of the forwarding table entry is the serial number, and the next hop of the forwarding table entry is the identifier of the device.

[0249] For example, when the forwarding table entry is the forwarding table entry in the second possible implementation method mentioned above, the obtaining unit 1202 is further used to: obtain the first bit string and the serial number corresponding to the BFR-id according to the BFR-id; obtain the forwarding table entry according to the serial number, the first bit string and the identifier of the device, the index of the forwarding table entry is the serial number, the forwarding bit string mask F-BM of the forwarding table entry is the first bitstring, and the next hop of the forwarding table entry is the identifier of the device.

[0250] For example, when the forwarding table entry is the forwarding table entry in the third possible implementation method mentioned above, the obtaining unit 1202 is further used to: obtain the serial number corresponding to it according to the BFR-id; sort the serial number and the identifier of the device according to the read bit width to obtain the forwarding table entry, the row number of the forwarding table entry corresponds to the quotient of the serial number and the read bit width, and the order of the identifier of the device included in the forwarding table entry among the N identifiers corresponds to the serial number.

[0251] For example, when the forwarding table entry is the forwarding table entry in the fourth possible implementation method mentioned above, the obtaining unit 1202 is also used to: obtain the serial number corresponding to it according to the BFR-id; divide the identifier corresponding to the serial number according to the order of the serial number to obtain L identifier sets, where L corresponds to the quotient of the maximum value of the serial number and a preset value, and the preset value is the number of bits included in the data block; divide the L identifier sets according to the moving window, and combine the identifier sets in the moving window to obtain the forwarding table entry including the M identifier sets. The size of the moving window can be set as needed. In the embodiment of the present application, the moving window is 5 identifier sets. The maximum value of the serial number is 256, the preset value is 8, L is 32, and M is 2.

[0252] Figure 13 Another structural diagram of the forwarding device provided in an embodiment of the present application. Figure 13 The forwarding device 1300 provided in the corresponding embodiment may be Figure 11 The forwarding device 1100 provided in the corresponding embodiment, or Figure 12 The forwarding device where the apparatus 1200 provided in the corresponding embodiment is located. Figure 13 The forwarding device 1300 provided in the corresponding embodiment is described from the perspective of hardware structure. Forwarding device 1300 includes a processor 1301, a memory 1302, a communication bus 1304, and a communication interface 1303. The processor 1301, the memory 1302, and the communication interface 1303 are connected via the communication bus 1304. The memory 1302 is used to store programs. When the forwarding device 1300 is configured as a device serving as a BFIR, the processor 1301 executes the method performed by device 210 in the second embodiment or the method performed by device 510 in the fourth embodiment according to the executable instructions included in the program read from the memory 1302. When the forwarding device 1300 is configured as a device serving as an intermediate BFR, the processor 1301 executes the method performed by device 209, device 206, or device 208 in the second embodiment or the method performed by device 509, device 506, or device 508 in the fourth embodiment according to the executable instructions included in the program read from the memory 1302.

[0253] Figure 14 Another structural diagram of the device for generating forwarding table entries provided in an embodiment of the present application. Figure 14 The device 1400 provided in the corresponding embodiment may be Figure 12 The corresponding embodiment provides an apparatus 1200 . Figure 14The apparatus 1400 provided in the corresponding embodiment is described from the perspective of hardware structure. Apparatus 1400 includes a processor 1401, a memory 1402, a communication bus 1404, and a communication interface 1403. The processor 1401, the memory 1402, and the communication interface 1403 are connected via the communication bus 1404. The memory 1402 is used to store programs. When apparatus 1400 is configured in a device serving as a BFIR, the processor 1401 executes the method performed by device 210 in the first embodiment or the method performed by device 510 in the third embodiment according to the executable instructions included in the program read from the memory 1402. When apparatus 1400 is configured in a device serving as an intermediate BFR, the processor 1401 executes the method performed by device 209, device 206, or device 208 in the first embodiment or the method performed by device 509, device 506, or device 508 in the third embodiment according to the executable instructions included in the program read from the memory 1402.

[0254] An embodiment of the present application provides a system, comprising a forwarding device 1100 or apparatus 1200, or a forwarding device 1300 or apparatus 1400. Forwarding device 1100 or forwarding device 1300 may be used to execute the method performed by the device acting as a BFIR in the second or fourth embodiment, or the method performed by the device acting as an intermediate BFR in the second or fourth embodiment. Apparatus 1200 or apparatus 1400 may be used to execute the method performed by the device acting as a BFIR in the first or third embodiment, or the method performed by the device acting as an intermediate BFR in the first or third embodiment.

[0255] The embodiment of the present application provides a chip. The chip may include Figure 13 The memory 1301 and processor 1301 are shown. The memory 1302 is used to store computer instructions. The processor 1301 is used to call and run the computer instructions from the memory 1302 to execute the method for determining the next hop provided in embodiment 2 or embodiment 4. The chip may include Figure 14 The memory 1401 and processor 1401 are shown. The memory 1402 is used to store computer instructions. The processor 1401 is used to call and execute the computer instructions from the memory 1402 to perform the method for generating forwarding entries provided in Example 1 or Example 3. The chip provided in the embodiment of the present application can be set on the forwarding hardware, or the forwarding circuit included in the forwarding hardware can be integrated into the chip provided in the embodiment of the present application.

[0256] The terms "first," "second," "third," "fourth," and the like in the specification and claims of this application and in the accompanying drawings are used to distinguish similar objects and are not necessarily used to describe a particular order or precedence. It should be understood that the terms used in this manner are interchangeable where appropriate so that the embodiments described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "including" and "having," and any variations thereof, are intended to cover non-exclusive inclusions, e.g., a process, method, system, product, or apparatus comprising a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such process, method, product, or apparatus.

[0257] In this application, "at least one item" means one or more, and "plurality" means two or more. "At least one of the following items" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple. In this application, "A and / or B" is considered to include A alone, B alone, and A+B.

[0258] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0259] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical module division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0260] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be obtained based on actual needs to achieve the objectives of this embodiment.

[0261] In addition, each module unit in each embodiment of the present application can be integrated into a processing unit, each unit can exist physically separately, or two or more units can be integrated into a single unit. The above-mentioned integrated units can be implemented in the form of hardware or software module units.

[0262] If the integrated unit is implemented in the form of a software module unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0263] Those skilled in the art will appreciate that in one or more of the above examples, the functions described herein can be implemented using hardware, software, firmware, or any combination thereof. When implemented using software, these functions can be stored in a computer-readable medium or transmitted as one or more instructions or codes on a computer-readable medium. Computer-readable media include computer storage media and communication media, wherein communication media include any medium that facilitates the transmission of computer programs from one place to another. The storage medium can be any available medium that can be accessed by a general-purpose or special-purpose computer.

[0264] The specific implementation methods described above further illustrate the objectives, technical solutions and beneficial effects of the present invention in detail. It should be understood that the above descriptions are merely specific implementation methods of the present invention.

[0265] As described above, the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the above embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the above embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application.

Claims

1. A method for obtaining a next hop, characterized in that: The method comprises: Receive a bit index explicitly copied BIER multicast message, the BIER multicast message includes a first bit string, the first bit stirng includes a bit set to 1 corresponding to a bit forwarding egress router BFER; Determining an index of a forwarding table entry according to the bit set to 1 in the first bit string, the forwarding table entry including the index and an identifier of a device serving as a next hop; The identifier of the device is directly obtained according to the index, where the device is the BFER or a first intermediate forwarding router BFR passed through by the device to reach the BFER.

2. The method according to claim 1, characterized in that The index is a serial number corresponding to the bit forwarding router identifier BFR-id of the BFER, and the identifier of the device corresponds to a serial number.

3. The method according to claim 2, characterized in that The forwarding table entry further includes a second bit string, wherein the second bit string has only one bit set to 1, and the offset of the bit set to 1 in the second bit string corresponds to the sequence number included in the forwarding table entry in which the bit is located.

4. The method according to claim 3, characterized in that Directly obtaining the identification of the device according to the index includes: The identifier of the device serving as the next hop included in the forwarding table entry is obtained according to the serial number, without searching for the second bit string included in the forwarding table entry.

5. The method according to claim 2, characterized in that The forwarding table entry includes N identifiers, where N is less than or equal to a read bit width. The N identifiers include an identifier of the device, and the order of any identifier included in the N identifiers in the forwarding table entry corresponds to the serial number.

6. The method according to claim 5, characterized in that Directly obtaining the identification of the device according to the index includes: determining a row number according to the serial number and the read bit width, the row number corresponding to the quotient of the serial number and the read bit width; Obtain the N identifiers included in the forwarding entry corresponding to the row number.

7. The method according to any one of claims 1 to 6, characterized in that: Determining the index of the forwarding table entry according to the bit set to 1 in the first bit string includes: Obtaining the offset of the bit set to 1 in the first bit string within the first bit string; The index is determined according to the offset, where the offset corresponds to the index.

8. The method according to claim 2, characterized in that The index is used to identify the row where M identification sets are located, where M is an integer greater than or equal to 2, and the M identification sets include the identification of the device. The identification set to which the identification of the device belongs corresponds to the data block to which the serial number belongs, and the order of the identification of the device within the identification set to which it belongs corresponds to the serial number.

9. The method according to claim 8, characterized in that Determining the index of the forwarding table entry according to the bit set to 1 in the first bit string includes: Determining, based on the first bit string and the read bit width, a data block to which bits set to 1 in the first bit string belong; Obtain an identification set corresponding to a data block to which the bit set to 1 in the first bit string belongs, the M identification sets including the identification set corresponding to the data block; The rows where the M identification sets are located are determined according to the identification sets corresponding to the data blocks.

10. The method according to claim 8 or 9, characterized in that Directly obtaining the identification of the device according to the index includes: The identification of the device is obtained from the set of M identifications included in the index.

11. The method according to claim 2, characterized in that The method further comprises: receiving an identifier of the device and the BFR-id sent by the device; Obtain the serial number corresponding to the BFR-id according to the BFR-id; The forwarding entry is obtained according to the serial number and the identifier of the device, where the index of the forwarding entry is the serial number and the next hop of the forwarding entry is the identifier of the device.

12. The method according to claim 3 or 4, characterized in that The method further comprises: receiving an identifier of the device and the BFR-id sent by the device; Obtaining, according to the BFR-id, the second bit string and the serial number corresponding to the BFR-id; The forwarding table entry is obtained according to the serial number, the second bit string, and the identifier of the device, where the index of the forwarding table entry is the serial number, the forwarding bit string mask F-BM of the forwarding table entry is the second bit string, and the next hop of the forwarding table entry is the identifier of the device.

13. The method according to claim 5 or 6, characterized in that The method further comprises: receiving an identifier of the device and the BFR-id sent by the device; Obtain the serial number corresponding to the BFR-id according to the BFR-id; According to the read bit width, the serial number and the identifier of the device are sorted to obtain the forwarding table entry, the row number of the forwarding table entry corresponds to the quotient of the serial number and the read bit width, and the order of the identifier of the device included in the forwarding table entry among the N identifiers corresponds to the serial number.

14. The method according to claim 8, characterized in that The method further comprises: receiving an identifier of the device and the BFR-id sent by the device; Obtain the serial number corresponding to the BFR-id according to the BFR-id; Dividing the identifiers corresponding to the sequence numbers according to the sorting of the sequence numbers to obtain L identifier sets, where L corresponds to the quotient of the maximum value of the sequence numbers and a preset value, and the preset value is the number of bits included in the data block; The L identification sets are divided according to a moving window, and the identification sets within the moving window are combined to obtain the forwarding table entries including the M identification sets.

15. The method according to claim 14, characterized in that The maximum value of the sequence number is 256, the preset value is 8, L is 32, and M is 2.

16. The method according to claim 1, wherein The method is executed by a bit forwarding ingress router (BFIR) or a second intermediate BFR.

17. A method for generating a forwarding table entry, characterized in that: The method comprises: receiving an identifier of the device and a bit forwarding router identifier (BFR-id) sent by a receiving device, where the BFR-id is used to identify a bit forwarding egress router (BFER) capable of communicating with the device, and the device is the BFER or a first intermediate bit forwarding router (BFR) passed through by the device to reach the BFER; A forwarding entry is obtained according to the device identifier and the BFR-id, wherein the index of the forwarding entry corresponds to the BFR-id, and the forwarding entry is used to directly obtain the identifier of the device as the next hop included in the forwarding entry according to the index.

18. The method according to claim 17, characterized in that The index is a serial number corresponding to the BFR-id, and the identifier of the device corresponds to a serial number.

19. The method according to claim 18, characterized in that The forwarding table entry further includes a first bit string, wherein the first bit string has only one bit set to 1, and the offset of the bit set to 1 in the first bit string corresponds to the sequence number included in the forwarding table entry in which the bit is located.

20. The method according to claim 18, wherein The forwarding table entry includes N identifiers, where N is less than or equal to a read bit width. The N identifiers include an identifier of the device, and the order of any identifier included in the N identifiers in the forwarding table entry corresponds to the serial number.

21. The method according to claim 18, wherein The index is used to identify the row where M identification sets are located, where M is an integer greater than or equal to 2, and the M identification sets include the identification of the device. The identification set to which the identification of the device belongs corresponds to the data block to which the serial number belongs, and the order of the identification of the device within the identification set to which it belongs corresponds to the serial number.

22. The method according to any one of claims 18 to 20, characterized in that The method further comprises: Obtain the serial number corresponding to the BFR-id according to the BFR-id; The forwarding entry is obtained according to the serial number and the identifier of the device, where the index of the forwarding entry is the serial number and the next hop of the forwarding entry is the identifier of the device.

23. The method according to claim 19, wherein The method further comprises: Obtaining, according to the BFR-id, the first bit string and the serial number corresponding to the BFR-id; The forwarding table entry is obtained according to the serial number, the first bit string, and the identifier of the device, where the index of the forwarding table entry is the serial number, the forwarding bit string mask F-BM of the forwarding table entry is the first bit string, and the next hop of the forwarding table entry is the identifier of the device.

24. The method according to claim 20, characterized in that The method further comprises: Obtain the serial number corresponding to the BFR-id according to the BFR-id; According to the read bit width, the serial number and the identifier of the device are sorted to obtain the forwarding table entry, the row number of the forwarding table entry corresponds to the quotient of the serial number and the read bit width, and the order of the identifier of the device included in the forwarding table entry among the N identifiers corresponds to the serial number.

25. The method according to claim 21, characterized in that The method further comprises: Obtain the serial number corresponding to the BFR-id according to the BFR-id; Dividing the identifiers corresponding to the sequence numbers according to the sorting of the sequence numbers to obtain L identifier sets, where L corresponds to the quotient of the maximum value of the sequence numbers and a preset value, and the preset value is the number of bits included in the data block; The L identification sets are divided according to a moving window, and the identification sets within the moving window are combined to obtain the forwarding table entries including the M identification sets.

26. The method according to claim 25, characterized in that The maximum value of the sequence number is 256, the preset value is 8, L is 32, and M is 2.

27. The method according to claim 17, wherein The method is executed by a bit forwarding ingress router (BFIR) or a second intermediate BFR.

28. A forwarding device, characterized in that: The forwarding device includes: A receiving unit, configured to receive a bit index explicit replication BIER multicast message, wherein the BIER multicast message includes a first bit string, wherein the bits set to 1 included in the first bit stirng correspond to the bit forwarding egress router BFER; a determining unit, configured to determine an index of a forwarding table entry according to the bit set to 1 in the first bit string, the forwarding table entry including the index and an identifier of a device serving as a next hop; The obtaining unit is configured to directly obtain an identifier of the device according to the index, where the device is the BFER or a first intermediate forwarding router (BFR) passed through to reach the BFER.

29. The forwarding device according to claim 28, characterized in that The index is a serial number corresponding to the bit forwarding router identifier BFR-id of the BFER, and the identifier of the device corresponds to a serial number.

30. The forwarding device according to claim 29, wherein: The forwarding table entry further includes a second bit string, wherein the second bit string has only one bit set to 1, and the offset of the bit set to 1 in the second bit string corresponds to the sequence number included in the forwarding table entry in which the bit is located.

31. The forwarding device according to claim 30, characterized in that The obtaining unit is specifically configured to obtain the identifier of the device serving as the next hop included in the forwarding entry according to the sequence number, without searching for the second bit string included in the forwarding entry.

32. The forwarding device according to claim 29, wherein: The forwarding table entry includes N identifiers, where N is less than or equal to a read bit width. The N identifiers include an identifier of the device, and the order of any identifier included in the N identifiers in the forwarding table entry corresponds to the serial number.

33. The forwarding device according to claim 32, characterized in that The obtaining unit is specifically configured to: determining a row number according to the serial number and the read bit width, the row number corresponding to the quotient of the serial number and the read bit width; Obtain the N identifiers included in the forwarding entry corresponding to the row number.

34. The forwarding device according to any one of claims 28 to 33, characterized in that: The determining unit is specifically configured to: Obtaining the offset of the bit set to 1 in the first bit string within the first bit string; The index is determined according to the offset, where the offset corresponds to the index.

35. The forwarding device according to claim 29, wherein: The index is used to identify the row where M identification sets are located, where M is an integer greater than or equal to 2, and the M identification sets include the identification of the device. The identification set to which the identification of the device belongs corresponds to the data block to which the serial number belongs, and the order of the identification of the device within the identification set to which it belongs corresponds to the serial number.

36. The forwarding device according to claim 35, characterized in that The determining unit is specifically configured to: Determining, based on the first bit string and the read bit width, a data block to which bits set to 1 in the first bit string belong; Obtain an identification set corresponding to a data block to which the bit set to 1 in the first bit string belongs, the M identification sets including the identification set corresponding to the data block; The rows where the M identification sets are located are determined according to the identification sets corresponding to the data blocks.

37. The forwarding device according to claim 35 or 36, characterized in that: The obtaining unit is specifically configured to: The identification of the device is obtained from the set of M identifications included in the row corresponding to the index.

38. The forwarding device according to claim 29, characterized in that The receiving unit is further configured to receive the device identifier and the BFR-id sent by the device; The obtaining unit is further configured to: Obtain the serial number corresponding to the BFR-id according to the BFR-id; The forwarding entry is obtained according to the serial number and the identifier of the device, where the index of the forwarding entry is the serial number and the next hop of the forwarding entry is the identifier of the device.

39. The forwarding device according to claim 30 or 31, characterized in that: The receiving unit is further configured to receive the device identifier and the BFR-id sent by the device; The obtaining unit is further configured to: Obtaining, according to the BFR-id, the second bit string and the serial number corresponding to the BFR-id; The forwarding table entry is obtained according to the serial number, the second bit string, and the identifier of the device, where the index of the forwarding table entry is the serial number, the forwarding bit string mask F-BM of the forwarding table entry is the second bit string, and the next hop of the forwarding table entry is the identifier of the device.

40. The forwarding device according to claim 32 or 33, characterized in that: The receiving unit is further configured to receive the device identifier and the BFR-id sent by the device; The obtaining unit is further configured to: Obtain the serial number corresponding to the BFR-id according to the BFR-id; According to the read bit width, the serial number and the identifier of the device are sorted to obtain the forwarding table entry, the row number of the forwarding table entry corresponds to the quotient of the serial number and the read bit width, and the order of the identifier of the device included in the forwarding table entry among the N identifiers corresponds to the serial number.

41. The forwarding device according to claim 35, wherein: The receiving unit is further configured to receive the device identifier and the BFR-id sent by the device; The obtaining unit is further configured to: Obtain the serial number corresponding to the BFR-id according to the BFR-id; Dividing the identifiers corresponding to the sequence numbers according to the sorting of the sequence numbers to obtain L identifier sets, where L corresponds to the quotient of the maximum value of the sequence numbers and a preset value, and the preset value is the number of bits included in the data block; The L identification sets are divided according to a moving window, and the identification sets within the moving window are combined to obtain the forwarding table entries including the M identification sets.

42. The forwarding device according to claim 41, characterized in that The maximum value of the sequence number is 256, the preset value is 8, L is 32, and M is 2.

43. The forwarding device according to claim 28, wherein: The forwarding device is a bit forwarding ingress router (BFIR) or a second intermediate BFR.

44. A device for generating a forwarding table entry, characterized in that The device comprises: a receiving unit, configured to receive an identifier of the device and a bit forwarding router identifier (BFR-id) sent by a device, wherein the BFR-id is used to identify a bit forwarding egress router (BFER) capable of communicating with the device, and the device is the BFER or a first intermediate bit forwarding router (BFR) passed through by the device to reach the BFER; The obtaining unit is configured to obtain a forwarding entry according to the device identifier and the BFR-id, wherein the index of the forwarding entry corresponds to the BFR-id, and the forwarding entry is used to directly obtain the identifier of the device as the next hop included in the forwarding entry according to the index.

45. The device according to claim 44, characterized in that The index is a serial number corresponding to the BFR-id, and the identifier of the device corresponds to a serial number.

46. ​​The device according to claim 45, characterized in that The forwarding table entry further includes a first bit string, wherein the first bit string has only one bit set to 1, and the offset of the bit set to 1 in the first bit string corresponds to the sequence number included in the forwarding table entry in which the bit is located.

47. The device according to claim 45, characterized in that The forwarding table entry includes N identifiers, where N is less than or equal to a read bit width. The N identifiers include an identifier of the device, and the order of any identifier included in the N identifiers in the forwarding table entry corresponds to the serial number.

48. The device according to claim 45, characterized in that The index is used to identify the row where M identification sets are located, where M is an integer greater than or equal to 2, and the M identification sets include the identification of the device. The identification set to which the identification of the device belongs corresponds to the data block to which the serial number belongs, and the order of the identification of the device within the identification set to which it belongs corresponds to the serial number.

49. The device according to any one of claims 45 to 47, characterized in that The obtaining unit is further configured to: Obtain the serial number corresponding to the BFR-id according to the BFR-id; The forwarding entry is obtained according to the serial number and the identifier of the device, where the index of the forwarding entry is the serial number and the next hop of the forwarding entry is the identifier of the device.

50. The device according to claim 46, characterized in that The obtaining unit is further configured to: Obtaining, according to the BFR-id, the first bit string and the serial number corresponding to the BFR-id; The forwarding table entry is obtained according to the serial number, the first bit string, and the identifier of the device, where the index of the forwarding table entry is the serial number, the forwarding bit string mask F-BM of the forwarding table entry is the first bit string, and the next hop of the forwarding table entry is the identifier of the device.

51. The device according to claim 47, characterized in that The obtaining unit is further configured to: Obtain the serial number corresponding to the BFR-id according to the BFR-id; According to the read bit width, the serial number and the identifier of the device are sorted to obtain the forwarding table entry, the row number of the forwarding table entry corresponds to the quotient of the serial number and the read bit width, and the order of the identifier of the device included in the forwarding table entry among the N identifiers corresponds to the serial number.

52. The device according to claim 48, characterized in that The obtaining unit is further configured to: Obtain the serial number corresponding to the BFR-id according to the BFR-id; Dividing the identifiers corresponding to the sequence numbers according to the sorting of the sequence numbers to obtain L identifier sets, where L corresponds to the quotient of the maximum value of the sequence numbers and a preset value, and the preset value is the number of bits included in the data block; The L identification sets are divided according to a moving window, and the identification sets within the moving window are combined to obtain the forwarding table entries including the M identification sets.

53. The device according to claim 52, characterized in that The maximum value of the sequence number is 256, the preset value is 8, L is 32, and M is 2.

54. The device according to claim 44, characterized in that The device is a bit forwarding ingress router (BFIR) or a second intermediate BFR.

55. A system, characterized in that The system includes the forwarding device according to any one of claims 28 to 43, or the apparatus according to any one of claims 44 to 54.

56. A chip, characterized in that The chip includes a memory and a processor, the memory is used to store computer instructions, and the processor is used to call and run the computer instructions from the memory to execute the method for obtaining the next hop described in any one of claims 1 to 16, or to execute the method for generating a forwarding table entry described in any one of claims 17 to 27.

57. A computer program product, characterized in that The computer program product includes one or more computer program instructions. When the computer program instructions are loaded and executed by a computer, the computer executes the method for obtaining the next hop described in any one of claims 1 to 16, or the method for generating a forwarding table entry described in any one of claims 17 to 27.

58. A computer-readable storage medium, characterized in that The computer-readable storage medium is used to store instructions, wherein the instructions include a program designed for executing the method for obtaining the next hop described in any one of claims 1 to 16, or the instructions include a program designed for executing the method for generating a forwarding table entry described in any one of claims 17 to 27.

59. A forwarding device, characterized in that: The forwarding device includes a processor and a non-transitory computer-readable storage medium storing program instructions for execution by the processor, wherein the program instructions instruct the processor to execute the method for obtaining a next hop according to any one of claims 1 to 16.

60. A device for generating a forwarding table entry, characterized in that: The apparatus includes a processor and a non-transitory computer-readable storage medium storing program instructions for execution by the processor, wherein the program instructions instruct the processor to execute the method for generating a forwarding table entry according to any one of claims 17 to 27.

Citation Information

Patent Citations

  • Method for realizing bit index display copying and bit forwarding router

    CN106572023A

  • BIER MPLS network device, message forwarding method thereof and medium

    CN108989209A