[0001] This application claims priority to
Chinese Patent Application No. 201910175395.1, filed with the Chinese Patent Office on March 8, 2019 and entitled "BIER PACKET
SENDING METHOD AND APPARATUS", which is incorporated herein by reference in its entirety.
TECHNICAL FIELD
[0002] This application relates to the field of network communication, and more specifically,
to a bit index explicit replication BIER packet sending method and apparatus.
BACKGROUND
[0003] An internet protocol (internet protocol, IP) multicast technology implements efficient
point-to-multipoint data transmission on an IP network, thereby effectively saving
network bandwidth and reducing network load. Therefore, the internet protocol multicast
technology is widely used in a plurality of aspects such as real-time data transmission,
a multimedia conference, data copying, interactive personality television (internet
protocol television, IPTV), a game, and simulation. In the multicast technology, a
multicast protocol needs to be used to construct a multicast tree on a control plane,
and then the multicast tree is used to perform logical tree-like forwarding on a network
plane, to implement multicast point-to-multipoint data forwarding of multicast forwarding.
An intermediate node of a multicast routing protocol with a core of constructing a
distribution tree needs to maintain a complex multicast forwarding information state.
As a network scale becomes larger and multicast data traffic increases, the multicast
technology faces increasingly high costs and operation and maintenance challenges.
[0004] Therefore, a new technology for constructing a multicast data forwarding path is
put forward in the industry, and is referred to as a bit index explicit replication
(bit indexed explicit replication, BIER) technology. The technology proposes a new
multicast technology architecture that does not need to construct a multicast distribution
tree. A forwarding node that supports the BIER technology can forward a BIER packet
in a BIER domain based on encapsulated BIER header information.
[0005] When a single router node sends the BIER packet to a node in another BIER domain,
the router needs to encapsulate the BIER packet. The single router node is also considered
as a single-node BIER domain. A BIER domain (BIER domian) may be a network area that
can flood bit location information of a node through an interior protocol and establish
a bit index forwarding table BIFT. Bit location information of nodes is not flooded
between different BIER domains. When a leaf node receives a multicast join request,
and a multicast source of the multicast join request is not in a local BIER domain,
in the conventional technology, path information that a packet sent by the multicast
source arrives at the local BIER domain needs to be configured for the leaf node,
and the leaf node sends the path information to a head node.
[0006] However, different protocols correspond to different path information, for example,
in multi-protocol label switching (multi-protocol label switching, MPLS), path information
is an MPLS label value. For another example, in internet protocol version 6 (internet
protocol version 6, IPv6), path information is an address format of the IPv6. Therefore,
in the conventional technology, the leaf node sends the configured path information
to the head node. On one hand, signaling overheads are relatively high. On the other
hand, different protocols correspond to different path information, and therefore
more modifications are made to the protocol.
SUMMARY
[0007] This application provides a BIER packet sending method and apparatus. Because a leaf
node does not need to send path information to a head node, signaling overheads are
relatively low.
[0008] According to a first aspect, a BIER packet sending method is provided. The method
includes:
[0009] A first node receives a packet sent by a second node in a second BIER domain, where
the packet carries an identifier of the second BIER domain, and the first node is
not in the second BIER domain; the first node determines a BIER packet sending policy
corresponding to the identifier of the second BIER domain based on the identifier
of the second BIER domain and according to a preconfigured BIER packet sending policy;
and the first node encapsulates and sends a BIER packet according to the BIER packet
sending policy.
[0010] It should be understood that the first node may be a routing and forwarding device
in a first BIER domain, and the device has a function of encapsulating a BIER header
and a P2P tunnel into a packet, and sending an encapsulated packet. Alternatively,
the first node may be a single device, and the single device has a function of encapsulating
a BIER header and a P2P tunnel into a multicast packet, and sending an encapsulated
packet.
[0011] In a possible implementation, the BIER packet sending policy includes path information.
The first node encapsulates the path information corresponding to the identifier of
the second BIER domain into the BIER packet. The first node sends the BIER packet
to the second BIER domain based on the path information encapsulated into the BIER
packet.
[0012] In the foregoing technical solutions, path information of a P2P tunnel corresponding
to the identifier of the second BIER domain may be determined in local configuration
information based on the identifier of the second BIER domain. A leaf node does not
need to send the path information of the P2P tunnel to a head node, thereby reducing
signaling overheads. In addition, because different protocols correspond to different
segment identifier SID values of the P2P tunnel, and different SID types correspond
to different protocol packet formats, the leaf node in this application does not need
to send the segment identifier SID of the P2P tunnel to the head node, and different
segment identifiers SIDs corresponding to different protocols do not need to be defined
at the leaf node. Therefore, fewer modifications are made to the existing protocol.
[0013] In another possible implementation, the BIER packet sending policy further includes
an identifier of a bit index forwarding table BIFT-ID. The first node encapsulates
a BIER header of the BIER packet based on the BIFT-ID corresponding to the identifier
of the second BIER domain. The first node sends the BIER packet to the second node
in the second BIER domain based on the BIER header.
[0014] In another possible implementation, the path information includes a segment identifier
of segment routing SR, an endpoint identifier of a user datagram protocol UDP tunnel,
an SID of an internet protocol IP, or an endpoint identifier IP of a generic routing
encapsulation GRE tunnel.
[0015] In another possible implementation, the identifier of the second BIER domain is a
sub-domain SD identifier of the second BIER domain in which the second node is located.
[0016] In another possible implementation, the first node is a head node, and the second
node is a leaf node.
[0017] According to a second aspect, a BIER packet sending apparatus is provided. The apparatus
includes:
a receiving module, configured to receive a packet sent by a second node in a second
BIER domain, where the packet carries an identifier of the second BIER domain, and
the first node is not in the second BIER domain;
a determining module, configured to determine a BIER packet sending policy corresponding
to the identifier of the second BIER domain based on the identifier of the second
BIER domain and according to a preconfigured BIER packet sending policy; and
a sending module, configured to encapsulate and send a BIER packet according to the
BIER packet sending policy.
[0018] In a possible implementation, the BIER packet sending policy includes path information.
The sending module is specifically configured to: encapsulate path information corresponding
to the identifier of the second BIER domain into the BIER packet; and send the BIER
packet to the second BIER domain based on the path information encapsulated into the
BIER packet.
[0019] In another possible implementation, the BIER packet sending policy further includes
an identifier of a bit index forwarding table BIFT-ID. The sending module is specifically
configured to: encapsulate a BIER header of the BIER packet based on a BIFT-ID corresponding
to the identifier of the second BIER domain; and send the BIER packet to the second
node in the second BIER domain based on the BIER header.
[0020] In another possible implementation, the path information includes a segment identifier
SID of segment routing SR, an endpoint identifier of a user datagram protocol UDP
tunnel, an SID of an internet protocol IP, or an endpoint identifier IP of a generic
routing encapsulation GRE tunnel.
[0021] In another possible implementation, the identifier of the second BIER domain is a
sub-domain SD identifier of the second BIER domain in which the second node is located.
[0022] In another possible implementation, the first node is a head node, and the second
node is a leaf node.
[0023] According to a third aspect, a bit index explicit replication BIER packet sending
apparatus is provided, including an input/output interface, a processor, and a memory.
The processor is configured to control the input/output interface to receive and send
information, and the memory is configured to store a computer program. The processor
is configured to invoke the computer program from the memory and run the computer
program, so that the primary node is enabled to perform the method in any one of the
first aspect or the possible implementations of the first aspect.
[0024] Optionally, the processor may be a general-purpose processor, and may be implemented
by using hardware or software. When implemented by using hardware, the processor may
be a logic circuit, an integrated circuit, or the like. When the implemented by using
software, the processor may be a general-purpose processor, and is implemented by
reading software code stored in the memory. The memory may be integrated into the
processor, may be located outside the processor, or may exist independently.
[0025] According to a fourth aspect, a computer program product is provided. The computer
program product includes computer program code. When the computer program code is
run on a computer, the computer is enabled to perform the methods in the foregoing
aspects.
[0026] According to a fifth aspect, a computer-readable medium is provided. The computer-readable
medium stores program code. When the computer program code is run on a computer, the
computer is enabled to perform the methods in the foregoing aspects.
BRIEF DESCRIPTION OF DRAWINGS
[0027]
FIG. 1 is a schematic networking diagram of a BIER technology according to an embodiment
of this application;
FIG. 2 is a schematic block diagram of sending a BIER multicast data packet based
on a BIER header in a BIER domain according to an embodiment of this application;
FIG. 3 is a schematic block diagram of sending a BIER multicast data packet across
BIER domains applied to an embodiment of this application;
FIG. 4 is a schematic flowchart of a method of transmitting a BIER packet across BIER
domains according to an embodiment of this application;
FIG. 5 is a schematic block diagram of transmitting a BIER packet across BIER domains
based on an SR-MPLS tunnel according to an embodiment of this application;
FIG. 6 is a schematic block diagram of transmitting a BIER packet across BIER domains
based on a UDP tunnel according to an embodiment of this application;
FIG. 7 is a schematic flowchart of a method of transmitting a BIER packet in a BIER
domain according to an embodiment of this application;
FIG. 8 is a schematic block diagram of a BIER packet sending apparatus 800 according
to an embodiment of this application; and
FIG. 9 is a schematic block diagram of a BIER packet sending apparatus 900 according
to an embodiment of this application.
DESCRIPTION OF EMBODIMENTS
[0028] The following describes technical solutions of this application with reference to
accompanying drawings.
[0029] An internet protocol (internet protocol, IP) multicast technology implements efficient
point-to-multipoint data transmission on an IP network, thereby effectively saving
network bandwidth and reducing network load. Therefore, the internet protocol multicast
technology is widely used in a plurality of aspects such as real-time data transmission,
a multimedia conference, data copying, interactive personality television (internet
protocol television, IPTV), a game, and simulation. A multicast protocol of the multicast
technology needs to construct a control plane multicast tree, and use the multicast
tree to make a network plane be in a logical tree-like structure, to implement point-to-multipoint
data forwarding of multicast forwarding. An intermediate node of a multicast routing
protocol with a core of constructing a distribution tree needs to maintain a complex
multicast forwarding information state. As a network scale becomes larger and multicast
data traffic increases, the multicast technology faces increasingly high costs and
operation and maintenance challenges.
[0030] Therefore, a new technology for constructing a multicast data forwarding path is
put forward in the industry, and is referred to as a bit index explicit replication
(bitindexed explicit replication, BIER) technology. The technology proposes a new
multicast technology architecture that does not need to construct a multicast distribution
tree. As shown in FIG. 1, a router that supports the BIER technology may be referred
to as a BIER forwarding router (BIER forwarding router, BFR), and the BFR device may
receive and forward a BIER packet. A multicast forwarding domain including one or
more BFRs is referred to as a BIER domain (BIER domian). At an edge of the BIER domain,
a device that performs BIER data packet encapsulation on multicast data of a user
is referred to as a BIER forwarding ingress router (BIERforwarding ingress router,
BFIR), and a device that decapsulates a BIER data packet is referred to as a BIER
forwarding egress router (BIERforwarding egress router, BFER).
[0031] In the BIER domain, a globally unique bit position (bit position) is configured for
each edge node (for example, the BFER) in an entire BIER sub-domain (sub domain, SD).
For example, a value may be configured for each edge node as a BFR identifier (identification,
ID), for example, a value ranging from 1 to 256. All BFR-IDs in the BIER domain form
a bit string (bit string). When multicast traffic (also referred to as a BIER multicast
data packet) is transmitted in the BIER domain, a specific BIER header needs to be
additionally encapsulated, and the BIER header marks all destination nodes of the
multicast traffic in a form of the bit string. An intermediate forwarding node in
the BIER domain performs routing based on the bit string carried in the BIER header,
to ensure that the multicast traffic can be sent to all of the destination addresses.
[0032] Bit location information configured for a node is flooded in the BIER domain in advance
by using a routing protocol, for example, an open shortest path first (open shortest
path first, OSPF) protocol, an intermediate system to intermediate system (intermediate
system to intermediate system, ISIS) protocol, a border gateway protocol (border gateway
protocol, BGP), or an interior gateway protocol (interior gateway protocol, IGP) in
a layer 3 network, to form a bit index forwarding table (bit index forwarding table,
BIFT) used to guide each node in the BIER domain to forward the multicast traffic.
When receiving the BIER packet encapsulated with the BIER header, the BFR forwards
the BIER packet to the destination node according to the BIFT.
[0033] For ease of understanding, concepts related to the BIER header and the BIFT mentioned
above are described in detail.
[0034] A format of the BIER header may include but is not limited to the bit string (bit
string) and a BIFT-ID.
(1) BIFT-ID
[0035] Under multi-protocol label switching (multi-protocol label switching, MPLS) encapsulation,
the BIFT may be a label. The label identifier may include a combination of an SD/bit
string length (bit string length, BSL)/set identifier (set identifier, SI). Different
BIFT-IDs may correspond to different combinations of SD/BSL/SI.
[0036] The SD is a sub-domain in the BIER domain, and different SDs may be configured in
the BIER domain based on actual service scenario requirements. For example, different
SDs may be configured in the BIER domain based on different services, for example,
a virtual private network (virtual private network, VPN). For example, a VPN 1 uses
an SD 0, and a VPN 1 uses an SD 1.
[0037] It should be noted that a plurality of VPNs may alternatively use a same SD. Different
SDs in the BIER domain may be in a same IGP process or topology, or may not be in
a same IGP process or topology. This is not specifically limited in this embodiment
of this application.
[0038] The BSL is a length of the bit string included in the BIER header. There may be a
plurality of BSL types. This is not specifically limited in this embodiment of this
application. The BSL may be 64 bits (bit), 128 bits, 256 bits, or the like.
[0039] The SI may be understood as a set including a plurality of nodes or configured BFR-IDs
in a network. For example, when the BSL is 256 bits, but there are more than 256 nodes
or 256 configured BFR-IDs in the network, the nodes or the BFR IDs need to be divided
into different sets. For example, nodes whose BFR-IDs are 1 to 256 form a set 0 (set
0, or SI = 0), and nodes whose BFR-IDs are 257 to 512 form a set 1 (set 1, or SI =
1).
[0040] After receiving the BIER multicast data packet, the BFR in the BIER domain may determine,
based on the BIFT-ID in the BIER header, an SD to which the BIER multicast data packet
belongs, a used BSL, and a set including nodes that forward the packet or configured
BFR-IDs.
[0041] The following lists several possible combinations of SD/BSL/SI represented by BIFT-IDs.
BIFT-ID = 91: corresponding to SD 0, BSL 256, SI 0;
BIFT-ID = 92: corresponding to SD 0, BSL 256, SI 1;
BIFT-ID = 93: corresponding to SD 0, BSL 256, SI 2;
BIFT-ID = 94: corresponding to SD 0, BSL 256, SI 3;
BIFT-ID = 95: corresponding to SD 0, BSL 512, SI 0; and
BIFT-ID = 96: corresponding to SD 0, BSL 512, SI 1;
[0042] For example, when BIFT-ID = 92, after receiving the BIER multicast data packet, the
BFR may determine, based on the BIFT-ID in the BIER header, that the BIER multicast
data packet belongs to the SD 0, the BSL used in the BIER header is 256 bits, and
a set of nodes that forward the packet is the set 1 (including a set of the nodes
whose BFR-IDs are 257 to 512).
(2) Bit string (bit string)
[0043] Each bit in the bit string may be used to indicate a next-hop node that receives
the BIER multicast data packet. When the BFR in the BIER domain receives the packet
including the BIER header, the BFR forwards the BIER multicast data packet based on
the bit string and the BIFT-ID that are carried in the BIER header.
[0044] For example, when the BIFT-ID in the BIER header received by the BFR is 92, the length
of the bit string is 256 bits, and a node that forwards the BIER multicast data packet
is one of the nodes whose BFR-IDs are 257 to 512. A least significant bit (rightmost
bit) in the bit string is used to indicate that a next-hop node is a node whose BFR-ID
is 257, and a second bit from right to left in the bit string is used to indicate
that a next-hop node is a node whose BFR-ID is 258.
[0045] It should be understood that the BIER header has different encapsulation formats
in different protocols.
[0046] The Ethernet protocol (ethernet, Eth) is used as an example. A format of a BIER packet
encapsulated under the Eth protocol is:
Eth header + BIER header + data.
[0047] An example of an MPLS protocol on an Ethernet link is used. A format of a BIER packet
encapsulated under the MPLS protocol is:
Eth header + (optionally, another label) + BIER header + data.
[0048] An internet protocol version 6 protocol (internet protocol version 6, IPv6) is used
as an example. A format of a BIER packet encapsulated under the IPv6 protocol on an
Ethernet link is:
Eth header + IPv6 basic header + IPv6 destination extension header (including a BIER
header) + data.
[0049] With reference to FIG. 2, the following describes a specific implementation in which
the intermediate forwarding node in the BIER domain sends the BIER multicast data
packet based on the BIER header. For ease of description, in FIG. 2, a BIER packet
encapsulated by using the MPLS protocol in the BIER domain (which may also be referred
to as a BIER-MPLS for short below) is used as an example.
[0050] FIG. 2 is a schematic block diagram of sending a BIER multicast data packet based
on a BIER header in a BIER domain according to an embodiment of this application.
FIG. 2 may include a multicast source node, a multicast destination node, a BFR 1,
a BFR 2, and a BFR 3.
[0051] It should be understood that one BIER domain may include a plurality of forwarding
nodes BFRs. For ease of description, three BFRs are used as an example for description
in FIG. 2.
[0052] As shown in FIG. 2, the BFR 1 is an ingress BFR, and the BFR 3 is an egress BFR.
It is assumed that bit positions of the BFR 1, the BFR 2, and the BFR 3 are 0001,
0010, and 0100 respectively. The egress BFR 3 notifies the bit position of the BFR
3 in the BIER domain by using an interior protocol. After receiving a notification
of the bit position of the egress BFR 3, the ingress BFR 1 stores the bit position
of the BFR 3 in a local bit index forwarding table. For a specific description of
the interior protocol, refer to the foregoing description. Details are not described
herein again.
(1) Multicast source (source) node
[0053] When a user in a network requires specific data, the multicast source may serve as
a server to send a required multicast packet to the user.
[0054] Specifically, the multicast source node may send an internet protocol (internet protocol,
IP) packet to the next-hop BFR 1. The IP packet may include two parts: an Eth header
and data.
(2) BFIR 1
[0055] BFIR 1 may also be referred to as a head node and has a capability of BIER encapsulation.
When the ingress BFIR 1 receives the multicast packet sent by the multicast source
node, it is assumed that the multicast packet needs to be sent to the egress BFER
3. The BFIR 1 calculates that a value of a bit string of the packet is 0010 based
on a mapping relationship in the bit index forwarding table pre-stored locally, and
encapsulates the multicast packet of the user into a BIER multicast data packet. A
bit string in a BIER header of the BIER multicast data packet is filled with 0010,
and the BIER multicast data packet is forwarded to the BFR 2.
(3) BFR 2
[0056] After receiving the BIER multicast data packet, the intermediate forwarding node
BFR 2 searches for the bit index forwarding table pre-stored locally, and determines
to fill the bit string in the BIER header of the BIER multicast data packet sent to
the BFR 3 with 0100.
(4) BFER 2
[0057] The BFER 2 may also be referred to as a leaf node and has a capability of BIER decapsulation.
After receiving the BIER multicast data packet from the BFR 2, the egress BFER 2 determines
that the egress BFER 2 is a destination node of the BIER multicast data packet based
on the bit string 0100 in the BIER header and a BFR-ID 3 of the egress BFER 2, decapsulates
the BIER multicast data packet, and sends the IP packet to the multicast destination
node.
[0058] FIG. 2 describes a process in which one or more forwarding devices send a BIER multicast
data packet based on a header of a BIER packet in a BIER domain. The following describes
a process in which a BIER multicast data packet is sent between different BIER domains
by using the BIER technology.
[0059] A BIER domain (BIER domian) may be understood as a network area that can flood bit
location information of a node through an interior protocol and establish a bit index
forwarding table BIFT. Bit location information of a node is not flooded between different
BIER domains. For example, the interior protocol is deployed in an autonomous system
(autonomous system, AS) domain, and bit location information of a node is flooded.
The AS domain may be a BIER domain. For another example, in a network with a plurality
of AS domains, interior protocol may be deployed in different AS domains, and bit
location information of a node is flooded. However, the interior protocol deployed
between the AS domains does not flood bit location information of a node. In this
case, the plurality of AS domains may be understood as different BIER domains.
[0060] FIG. 3 is a schematic block diagram of sending a BIER multicast data packet across
BIER domains applied to an embodiment of this application. In FIG. 2, a plurality
of BIER domains may be included. For ease of description, a first BIER domain and
a second BIER domain are used as an example for description.
[0061] As shown in FIG. 3, the first BIER domain includes a BFR 10, a BFR 11, and a BFR
12. The second BIER domain includes a BFR 20, a BFR 21, and a BFR 22. The BFR 11 and
the BFR 21 may also be referred to as provider edge (provider edge, PE) routers.
[0062] It should be noted that, in this embodiment of this application, a head node across
the second BIER domain and an intermediate network may be a router in the first BIER
domain, or may be a single device. The device, as a head node, has a function of encapsulating
a BIER header into the multicast packet, encapsulating a P2P tunnel, and sending the
packet.
[0063] Referring to FIG. 3, in this embodiment of this application, the head node needs
to send the BIER packet to the second BIER domain through the peer-to-peer (peer to
peer, P2P) tunnel, and then perform replication and forwarding in the second BIER
domain based on the BIER header. For example, the P2P tunnel may be established between
the head node and a BFR node close to the intermediate network in the second BIER
domain, or the P2P tunnel may be established between the head node and another node
in the second BIER domain. A node serving as a P2P tunnel endpoint in the second BIER
domain may also be referred to as an anchor point, and is configured to start BIER
replication and forwarding after sending a P2P unicast packet across BIER domains
to the anchor point.
[0064] For example, when the BFR 21 in the second BIER domain receives a user multicast
join request sent by a user, and a multicast source of the user multicast join request
is a multicast source 1, because the BFR 21 and the multicast source 1 belong to different
BIER domains, the BIER packet needs to be sent from the head node to the second BIER
domain through the peer-to-peer (peer to peer, P2P) tunnel, and then replication and
forwarding are performed in the second BIER domain based on the BIER header. For example,
the P2P tunnel may be established between the head node and a BFR node close to the
intermediate network in the second BIER domain, or the P2P tunnel may be established
between the head node and another node in the second BIER domain. A node serving as
a P2P tunnel endpoint in the second BIER domain may also be referred to as an anchor
point, and is configured to start BIER replication and forwarding after sending a
P2P unicast packet across BIER domains to the anchor point. BFR 10, as the head node,
may send the BIER packet to the second BIER domain through the P2P tunnel, and then
perform replication and forwarding in the second BIER domain based on the BIER header.
For example, the P2P tunnel may be established between the head node, BFR 10 and a
BFR node close to the intermediate network in the second BIER domain. For another
example, the P2P tunnel may further be established between the head node, BFR 10 and
another node in the second BIER domain.
[0065] It should be understood that, a node serving as a P2P tunnel endpoint in the second
BIER domain may also be referred to as an anchor point, and is configured to start
replication and forwarding on the BIER packet after sending a P2P unicast packet across
BIER domains to the node.
[0066] To enable the BFR 10 in the first BIER domain to send the BIER multicast data packet
to the BFR 20 in the second BIER domain through the P2P tunnel, in the conventional
technology, after receiving the multicast join request sent by the user, the BFR 21
may add encapsulation information of the P2P tunnel in the second BIER domain to a
multicast join message sent to the BFR 11, for example, a segment identifier (segment
identification, SID) of the BFR 20 in the second BIER domain.
[0067] Specifically, the SID of the BFR 20 may be configured for the BFR 21 in the second
BIER domain. The BFR 21 may send the SID of the BFR 20 to the BFR 11 by using border
gateway protocol-mobile virtual private network (border gateway protocol-multicastvirtual
private network, BGP-MVPN) signaling. Segment routing (segment routing, SR) divides
the P2P tunnel between the BFR 10 and the BFR 20 through which a packet flow passes
into a plurality of segments, and the plurality of segments are identified by SIDs.
The SR adds the SIDs of the plurality of segments divided on the P2P tunnel to encapsulation
information of the tunnel in an outer layer of the BIER header, so that the plurality
of segments on the P2P tunnel between the BFR 10 and the BFR 20 may send the BIER
multicast data packet from the BFR 10 in the first BIER domain to the BFR 20 in the
second BIER domain hop by hop based on SID information of the BFR 20 encapsulated
outside the BIER multicast data packet.
[0068] However, different protocols correspond to different SID values, for example, in
the MPLS, a SID value corresponding to the SR is an MPLS label value. For another
example, in the internet protocol version 6 (internet protocol version 6, IPv6), an
SID value corresponding to the SR is an address format of the IPv6. Different SID
types correspond to different protocol packet formats. Therefore, different provider
multicast service interface tunnel attributes (p-multicast service interface tunnel
attribute, PTA) need to be defined for different SID types of the BFR 20 on the BFR
21. On the one hand, defining different tunnel attributes PTA makes more modifications
to the existing protocol. On the other hand, the SID of the BFR 20 needs to be configured
for the BFR 21 in the second BIER domain, and the BFR 21 further needs to send the
configured SID of the BFR 20 to the BFR 11, causing relatively high signaling overheads.
[0069] In the technical solutions provided in this embodiment of this application, the BFR
21 does not need to send the SID of the BFR 20 to the BFR 11, and does not need to
use different PTA tunnel types according to different protocols, thereby making fewer
modifications to the protocol and reducing signaling overheads.
[0070] It should be noted that this embodiment of this application is applicable to a plurality
of protocols. For example, the BIER domain may use a BIER packet encapsulated by the
MPLS protocol. In this case, the P2P tunnel described in FIG. 2 may be an SR-MPLS
tunnel, or may be a user datagram protocol (user datagram protocol, UDP) tunnel. P2P
tunnel information is first encapsulated before the BIER header is encapsulated. For
another example, the BIER domain may use a BIER packet encapsulated by the Eth protocol.
In this case, the P2P tunnel described in FIG. 2 may be a UDP tunnel. UDP tunnel information
is encapsulated before the BIER header. For another example, the BIER domain may use
a BIER packet encapsulated by the IPv6 protocol. In this case, the P2P tunnel described
in FIG. 2 may be an SRv6 tunnel. SRv6 tunnel information is encapsulated before the
BIER header. The SRv6 tunnel may carry a segment routing header (segment routing header,
SRH), or may not carry an SRH header. In a case that the tunnel carries an SRH header,
the SRv6 tunnel is an IPv6 tunnel with an explicit specified tunnel path. In a case
that the tunnel does not carry an SRH header, the SRv6 tunnel is an IPv6 tunnel with
a non-explicit specified tunnel path. For example, a destination address of an IPv6
header is: unicast + IPv6 extension header carrying the BIER header + inner IP header
+ multicast data packet. A unicast source address and a unicast destination address
of the IPv6 header represent an IPv6 tunnel, and the BIER header is processed after
the BIER header arrives at an end of the IPv6 tunnel.
[0071] The SRv6 tunnel may be understood as segment routing using the IPv6 protocol, and
the SR-MPLS tunnel may be understood as segment routing using the MPLS protocol.
[0072] In this embodiment of this application, the node in the first BIER domain and the
node in the second BIER domain need to be configured. Configuration information may
include but is not limited to an identifier of a BIER domain, a VPN sending configuration
table, and a packet sending policy. The following describes the foregoing several
types of configuration information in detail by using the first BIER domain as an
example.
(1) Configure the identifier of the BIER domain
[0073] In this embodiment of this application, the identifier of the BIER domain may be
configured for the first BIER domain. A configuration granularity is not specifically
limited in this embodiment of this application. For example, an identifier may be
configured for the first BIER domain, and all SDs in the first BIER domain use the
identifier. For another example, an identifier may be configured for each SD in the
first BIER domain.
[0074] For example, an identifier of the first BIER domain is a color (color) 1, an identifier
of the second BIER domain is a color 2, and the configuration granularity is that
an identifier is configured for each SD in the first BIER domain. Specific configuration
signaling of the identifier of the BIER domain is as follows:
bier 1
sub-domain 0
bfr-prefix
bfr-id
protocol xxx //xxx, for example, may be an ISIS protocol, an OSPF protocol, or the
border gateway protocol (border gateway protocol, BGP)
encapsulation-type xxx //xxx, for example, may be the MPLS protocol, the Eth protocol,
or the IPv6 protocol
color 1 //configure an identifier of a domain for sub-domain 0 of bier 1
(2) VPN sending configuration table
[0075] The table is used to configure a sub-domain in the first BIER domain that is used
by a VPN and a packet sending policy used by the VPN.
[0076] Specific signaling of the VPN sending configuration table is as follows:
mvpn
bier 1 sub-domain 0 replication-policy xxx
[0077] (3) Configure the packet sending policy (also referred to as a replication policy
(replication-policy)).
[0078] The configured packet sending policy may include but is not limited to path information
and encapsulation information. The path information is a correspondence between an
identifier (for example, a color) of each BIER domain and a path used to transmit
a packet to a BIER domain corresponding to a color. The encapsulation information
includes information about encapsulating the BIER header, for example, a bit string
and a BIFT-ID that are required for encapsulating the BIER header.
[0079] Specific configuration signaling is as follows:
<color=1>
use bsl 256 //specify a BSL used to encapsulate the BIER when the packet is sent
path=NULL
<color=2>
use bsl 256 //specify a BSL used to encapsulate the BIER when the packet is sent
BIFT-id<SD_BSL>=X //specify a BIFT-ID value required for encapsulating the BIER header
when the packet is sent, where the BIFT-ID value is configured based on a tunnel endpoint
to which the path points
path=SID_list<SID1,SID2,R20> //specify a path when the packet is sent
[0080] In the foregoing signaling, "<color=1>path=NULL" is used to indicate that the BIER
multicast data packet is transmitted between nodes in the first BIER domain based
on the encapsulated BIER header. "use bsl" is used to determine a length of a bit
string used when a plurality of BFR-IDs of the BIER domain represented by <color=2>
are encapsulated into a bit string of the BIER header. "path=NULL" is used to determine
that the head node and the leaf node receiving a multicast join request are in a same
BIER domain. In this case, it is determined that the head node does not need to pass
through the P2P tunnel, and the head node forwards the packet according to a bit index
forwarding table BIFT stored locally, for example, the bit string may be used to determine
an egress interface and a BFR-ID of a next hop.
[0081] In the foregoing signaling, "<color=2>path=SID_list<SID1,SID2,R20>" is used to indicate
that the node in the first BIER domain transmits the BIER multicast data packet to
the node in the second BIER domain. "use bsl" is used to determine a length of a bit
string used when a plurality of BFR-IDs of the BIER domain represented by <color=2>
are encapsulated into a bit string of the BIER header. "BIFT-id<SD_BSL>=X" is used
to determine a BIFT-ID field encapsulated into the BIER header. The field is determined
by a specific triplet, SD/BSI/SI. In BIER-MPLS encapsulation, the BIFT-ID value is
an MPLS label. "path=SID_list<SID1,SID2,R20>" is used to determine encapsulation information
of the P2P tunnel except for the BIER header. If the P2P tunnel is an SR-MPLS tunnel
or an SRv6 tunnel, encapsulation information of the P2P tunnel is a SID list (list).
SID 1, SID 2, and R 20 are used to indicate segment identifiers SIDs of a plurality
of segments on a P2P tunnel between the first BIER domain and the second BIER domain.
[0082] It should be understood that for a same SD and a same BSL, BIFT-IDs of different
SIs are consecutive. For example, if SD=0, 1, and 2, corresponding BIFT-ID values
are respectively 101, 102, and 103.
[0083] It should be further understood that a BIFT-ID may be dynamically allocated, or may
be statically and directly obtained and configured. This is not specifically limited
in this embodiment of this application.
[0084] Optionally, in some embodiments, an encapsulation format of the P2P tunnel in the
replication policy matches a protocol used to encapsulate the BIER multicast data
packet in the sub-domain 0, so that the conventional technology may support overlay
encapsulation of the BIER packet and the P2P tunnel, thereby reducing modifications
made to the existing protocol. For example, if an encapsulation format of the BIER
packet is a BIER-MPLS, the encapsulation format of the P2P tunnel may be an SR-MPLS,
a UDP, or a generic routing encapsulation (generic routing encapsulation, GRE) protocol.
For another example, if an encapsulation format of the BIER packet is a BIER-IPv6,
the encapsulation format of the P2P tunnel may be an SRv6, or an IPv6.
[0085] Optionally, in some embodiments, the configuration information may further include
a tracking table, and the table is used to track each leaf node in the BIER domain.
In addition, the table may aggregate leaf nodes based on a color that each leaf node
carries and is used to indicate a BIER domain in which the leaf node is located, and
determine a leaf node that a specific color has. This can avoid a case in the conventional
technology in which, after a color that is carried by each leaf node and that is of
a BIER domain in which the leaf node is located is received, leaf nodes that carry
the same color need to be extracted one by one, thereby reducing signaling overheads.
[0086] In this embodiment of this application, the head node and the leaf node in the second
BIER domain may be separately configured according to the foregoing configuration
method. For ease of description, in this embodiment of this application, a color (color)
identifier is used to identify the identifier of the first BIER domain and the identifier
of the second BIER domain. For example, a color 1 is used to indicate an identifier
of a sub-domain 0 in the first BIER domain, and a color 2 is used to indicate an identifier
of a sub-domain 0 in the second BIER domain.
[0087] It should be noted that the head node may be in the first BIER domain, or may be
an independent node. This is not specifically limited in this embodiment of this application.
For ease of description, the following provides description by using an example in
which the head node is in the first BIER domain.
[0088] A node (for example, the BFR 11 or the BFR 12) in the first BIER domain is configured
according to the following table:
bier 1
sub-domain 0
bfr-prefix
bfr-id
protocol xxx //xxx, for example, may be the ISIS protocol, the OSPF protocol, or the
BGP protocol
encapsulation-type xxx //xxx, for example, may be the MPLS protocol, the Eth protocol,
or the IPv6 protocol
color 1 //configure an identifier of the BIER domain for the sub-domain 0 of bier
1
ip vpn vpn 1
ipv4-family
mvpn
bier 1 sub-domain 0 rep-policy xxx//xxx may be a configured packet sending policy
multicast rep-policy (mpls/ipv6) xxx
<color=1>
use bsl 256 //specify a BSL used to encapsulate the BIER when the packet is sent
path=NULL
<color=2>
se bsl 256 //specify a BSL used to encapsulate the BIER when the packet is sent
BIFT-id<SD_BSL>=X //specify a BIFT-ID value required for encapsulating the BIER header
when the packet is sent, where the BIFT-ID value is configured based on a tunnel endpoint
to which the path points
path=SID_list<SID1,SID2,R20> //specify a path when the packet is sent
[0089] It should be noted that, in this embodiment of this application, when the packet
is sent, the path may be a path of an SR or SRv6 tunnel, or may be a path of an IP,
a UDP, or a GRE tunnel.
[0090] A node (for example, the PE 21 or the PE 22) in the second BIER domain is configured
according to the following table:
bier 2
sub-domain 0
bfr-prefix
bfr-id
protocol xxx //xxx, for example, may be the ISIS protocol, the OSPF protocol, or the
BGP protocol
encapsulation-type xxx //xxx, for example, may be the MPLS protocol, the Eth protocol,
or the IPv6 protocol
color 2 //configure an identifier of the BIER domain for the sub-domain 0 of bier
2
ip vpn vpn 1
ipv4-family
mvpn
bier 2 sub-domain 0 rep-policy xxx//xxx may be a configured packet sending policy
multicast rep-policy (mpls/ipv6) xxx
<color=1>
use bsl 256 //specify a BSL used to encapsulate the BIER when the packet is sent
BIFT-id<SD_BSL>=Y //specify a BIFT-ID value required for encapsulating the BIER header
when the packet is sent, where the BIFT-ID value is configured based on a tunnel endpoint
to which the path points
path=SID_list<SID1,SID2,R10> //specify a path when the packet is sent
<color=2>
use bsl 256 //specify a BSL used to encapsulate the BIER when the packet is sent
path=NULL
[0091] With reference to a specific example, the following describes in detail a specific
implementation process that the node in the first BIER domain determines a transmission
path of the BIER multicast data packet according to the foregoing configuration table.
[0092] In some embodiments, the BFR 21 in the second BIER domain receives the user multicast
join request sent by a user, and the multicast source of the user multicast join request
is the BFR 11 in the first BIER domain.
[0093] FIG. 4 is a schematic flowchart of a method of transmitting a BIER packet across
BIER domains according to an embodiment of this application. The method shown in FIG.
4 may include steps 410 to 430. The following separately describes processes of steps
410 to 430 in detail.
[0094] Step 410: A BFR 21 in a second BIER domain sends a multicast join message to a BFR
11 in a first BIER domain, and the message carries an identifier of the second BIER
domain (for example, a configured identifier of the second BIER domain is a color
2).
[0095] Specifically, the multicast join message may be a message sent by the BFR 21 in the
second BIER domain to the BFR 11 in the first BIER domain by using a BGP protocol.
For example, the multicast join message may be a control-plane BGP message, for example,
a BGP-MVPN message, a BGP-EVPN message, or a message sent through a tunnel by using
protocol independent multicast (protocol independent multicast, PIM).
[0096] Step 420: The BFR 11 in the first BIER domain generates a corresponding BIER multicast
data packet forwarding entry 1 based on the identifier of the second BIER domain and
according to a locally configured packet sending policy.
[0097] The BFR 11 in the first BIER domain may determine, based on the identifier color
2 of the second BIER domain and according to the locally configured packet sending
policy "<color=2>path=SID_list<SID1,SID2,R20>", that a BIER multicast data packet
transmitted from the BFR 11 to a PE 21 in the second BIER domain needs to pass through
a BFR 20. The BIER multicast data packet forwarding entry delivered by the BFR 11
is as follows:
[0098] Forwarding entry 1: (virtual routing and forwarding (virtual routing forwarding,
VRF), multicast source (source, S), multicast goal group (group, G), color2, SD/BSL/SI,
flag=1, encap_path=XXX, and encap_bit string).
[0099] If flag=1 in the forwarding entry 1, it indicates that a path configured by the BFR
11 is valid, a leaf node in the multicast goal is not in the BIER domain, encapsulation
information of a P2P tunnel needs to be determined based on the path in the forwarding
entry 1, and the encapsulation information of the P2P tunnel is encapsulated before
a BIER header. In addition, an egress interface of the path is searched for based
on the encapsulation information of the P2P tunnel, and an IP address and a source
media access control address (media access control address, MAC) of a next hop are
determined.
[0100] For example, it should be understood that, path=SID_list<SID1,SID2,R20> may be that
the BIER packet transmitted from the BFR 11 in the first BIER domain to the multicast
goal needs to be forwarded through the BFR 20, and then enter the second BIER domain
to be sent to the BFR 21 hop by hop. The SID 1 and the SID 2 may be understood as
routers whose segment identifiers are an SID 1 and an SID 2 respectively and through
which the tunnel between the first BIER domain and the second BIER domain passes.
The BIER packet is sent by the routers whose segment identifiers are the SID 1 and
the SID 2 respectively, and then arrives at the BFR 20.
[0101] Step 430: The BFR 11 in the first BIER domain encapsulates the multicast packet,
the BIER header, and the encapsulation information of the P2P tunnel based on the
forwarding entry 1, and sends the encapsulated BIER multicast data packet.
[0102] Different P2P tunnels may correspond to different encapsulation information. For
example, the P2P tunnel is an SR-MPLS tunnel, and the encapsulation information of
the P2P tunnel may be an MPLS label. For example, the P2P tunnel is a UDP tunnel,
and the encapsulation information of the P2P tunnel may be a UDP header and an IP
header. The following provides descriptions with reference to FIG. 5 and FIG. 6.
[0103] FIG. 5 is a schematic block diagram of transmitting a BIER packet across BIER domains
based on an SR-MPLS tunnel according to an embodiment of this application.
[0104] Step 1: A BFR 21 in a second BIER domain sends a multicast join message to a BFR
11 in a first BIER domain.
[0105] The multicast join message sent by the BFR 21 in the second BIER domain to the BFR
11 may carry an identifier of the second BIER domain and BIER information of the BFR
21. For example, the BIER information may be a BFR-ID of the second BIER domain.
[0106] Step 2: The BFR 11 in the first BIER domain determines a forwarding entry based on
the identifier that is of the second BIER domain and that is carried in the multicast
join message sent by the BFR 21 and according to a packet sending policy.
[0107] For example, the identifier of the second BIER domain is a color 2, and the BFR 11
determines, according to the locally configured packet sending policy "<color=2>path=SID_list<SID1,SID2,R20>",
that a BIER multicast data packet transmitted from the BFR 11 to the BFR 21 in the
second BIER domain needs to pass through a BFR 20.
[0108] The BIER multicast data packet forwarding entry delivered by the BFR 11 is as follows:
[0109] Forwarding entry 1: (virtual routing and forwarding (virtual routing forwarding,
VRF), multicast source (source, S), multicast goal (goal, G), color2, SD/BSL/SI, flag=1,
encap_path=XXX, and encap_bit string).
[0110] If flag=1 in the forwarding entry 1, it indicates that a path configured by the BFR
11 is valid, a leaf node in the multicast goal is not in the BIER domain, encapsulation
information of a P2P tunnel needs to be determined based on the path in the forwarding
entry 1, and the encapsulation information of the P2P tunnel is encapsulated before
a BIER header. In addition, an egress interface of the path is searched for based
on the encapsulation information of the P2P tunnel, and an IP address and a source
media access control address (media access control address, MAC) of a next hop are
determined.
[0111] Step 3: The BFR 11 in the first BIER domain receives an IP multicast packet sent
by a multicast source 1.
[0112] Step 4: The BFR 11 encapsulates the IP multicast packet.
[0113] The BFR 11 determines, based on the delivered forwarding entry 1, that the IP multicast
packet needs to be sent to the second BIER domain.
[0114] The BFR 11 may further encapsulate the IP multicast packet according to the packet
sending policy and based on an ID of the BFR 21. Specifically, the BFR 11 may determine
a BIFT-ID and a bit string (bit string) in an encapsulated BIERheader based on "<color=2>use
bsl 256 BIFT-id<SD_BSL>=X" in local configuration information and the ID of the BFR
21. The BFR 11 may further determine the encapsulation information of the P2P tunnel
based on path information "path=SID_list<SID1,SID2,R20>". For example, segment identifiers
of routers passing through the P2P tunnel are an SID 1 and an SID 2 respectively.
The BIER packet is sent by the routers whose segment identifiers are the SID 1 and
the SID 2 respectively, and then arrives at the BFR 20 whose segment identifier is
an R 20. The encapsulation information of the P2P tunnel is encapsulated in an outer
layer of the BIER header.
[0115] Step 5: The BFR 11 sends the encapsulated BIER packet to the BFR 21.
[0116] A BFR 10 may search for an egress interface of a path based on an encapsulated MPLS
label stack, and determine an IP address and a source media access control address
(media access control address, MAC) of a next hop.
[0117] Specifically, a segment identifier of a next-hop router in the MPLS label stack is
the SID 1, and the BFR 10 determines, based on a locally stored forwarding entry that
is about the router whose segment identifier is the SID 1, an egress interface configured
to arrive at the router whose identifier is the SID 1 and the MAC address of the next
hop, and transmits the BIER packet to a next hop of the router whose identifier is
the SID 1. For example, the BFR 10 may broadcast an address resolution protocol (address
resolution protocol, ARP) request packet based on an IP address of the next hop of
the router whose identifier is the SID 1. The ARP request packet carries the IP address
of the next hop, and is used to obtain a MAC address of the next hop.
[0118] Similarly, after passing through the routers whose segment identifiers are the SID
1, the SID 2, and the R 20 respectively, the BIER multicast data packet is sent to
the BFR 20. The BFR 20 may send the BIER packet to the BFR 21 in the second BIER domain
based on the BIER packet header.
[0119] For a specific process of sending the BIER packet in the BIER domain based on the
BIER packet header, refer to the description in FIG. 2. Details are not described
herein again.
[0120] FIG. 6 is a schematic block diagram of transmitting a BIER packet across BIER domains
based on a UDP tunnel according to an embodiment of this application.
[0121] Step 1: A BFR 21 in a second BIER domain sends a multicast join message to a BFR
11 in a first BIER domain.
[0122] The step 1 in FIG. 6 is corresponding to the step 1 in FIG. 5. For details, refer
to the description in FIG. 5. Details are not described herein again.
[0123] Step 2: The BFR 11 in the first BIER domain determines a forwarding entry based on
the identifier that is of the second BIER domain and that is carried in the multicast
join message sent by the BFR 21 and according to a packet sending policy.
[0124] The step 2 in FIG. 6 is corresponding to the step 2 in FIG. 5. For details, refer
to the description in FIG. 5. Details are not described herein again.
[0125] Step 3: The BFR 11 in the first BIER domain receives an IP multicast packet sent
by a multicast source 1.
[0126] The step 3 in FIG. 6 is corresponding to the step 3 in FIG. 5. For details, refer
to the description in FIG. 5. Details are not described herein again.
[0127] Step 4: The BFR 11 encapsulates the IP multicast packet.
[0128] The BFR 11 in the first BIER domain determines an encapsulated BIER header and encapsulation
information of a P2P tunnel (the P2P tunnel is a UDP tunnel, and the encapsulation
information of the P2P tunnel is a UDP header and an IP header) based on path information
and encapsulation information in the packet sending policy.
[0129] Specifically, the BFR 11 may determine a BIFT-ID and a bit string (bit string) in
an encapsulated BIER header based on "<color=2>use bsl 256 BIFT-id<SD_BSL>=X" in local
configuration information and the ID of the BFR 21.
[0130] The BFR 11 may further encapsulate an IP and the UDP header in an outer layer of
the encapsulated BIER header as a tunnel. A corresponding port number field or protocol
number field in the UDP packet indicates that the BIER header is encapsulated in the
UDP packet. After the UDP header is encapsulated, an IP header is encapsulated in
an outer layer of the UDP header. A destination address of the IP header is an endpoint
address of a P2P tunnel specified by a path in the forwarding entry delivered by the
BFR 11, so that the BIER multicast data packet is transmitted to a next hop of the
P2P tunnel. After receiving the BIER multicast data packet, the next-hop node searches
for an IP routing table based on the outer IP header and forwards the packet without
changing content of the BIER header.
[0131] Step 5: The BFR 11 sends the encapsulated BIER packet to the BFR 21.
[0132] A BFR 10 may determine, based on the encapsulated UDP header, that the packet is
a BIER multicast data packet, and may send the BIER multicast data packet to a next-hop
node based on the destination address of the IP header. Similarly, after passing through
routers whose segment identifiers are SID 1, SID 2, and R 20 respectively, the BIER
multicast data packet is sent to a BFR 20. The BFR 20 may send the BIER packet to
the BFR 21 in the second BIER domain based on the BIER packet header.
[0133] For a specific process of sending the BIER packet in the BIER domain based on the
BIER packet header, refer to the description in FIG. 2. Details are not described
herein again.
[0134] In some embodiments, a BFR 12 in the first BIER domain receives the user multicast
join request sent by a user, and a multicast source of the user multicast join request
is the BFR 11 in the first BIER domain.
[0135] FIG. 7 is a schematic flowchart of a method of transmitting a BIER packet in a BIER
domain according to an embodiment of this application. The method shown in FIG. 7
may include steps 710 to 730. The following separately describes processes of steps
710 to 730 in detail.
[0136] Step 710: A BFR 12 in a first BIER domain sends a multicast join message to a BFR
11 in a first BIER domain, and carries an identifier of the first BIER domain (for
example, a configured identifier of the first BIER domain is a color 1).
[0137] The step 710 is corresponding to the step 410. For details, refer to the description
in the step 410. Details are not described herein again.
[0138] Step 720: The BFR 11 in the first BIER domain generates a corresponding BIER multicast
data packet forwarding entry 2 based on the identifier of the first BIER domain and
according to a locally configured packet sending policy.
[0139] The BFR 11 in the first BIER domain may determine, based on the identifier color
1 that the BFR 11 carries and according to the locally configured packet sending policy,
"<color=1>path=NULL>", that a BIER multicast data packet transmitted from the BFR
11 to the BFR 12 in the first BIER domain does not need to pass through a P2P tunnel,
for example, does not need to pass through a P2P tunnel from the BFR 11 to a BFR 20.
The BIER multicast data packet forwarding entry delivered by the BFR 11 is as follows:
[0140] Forwarding entry 2: (VRF, S, G, colorl, SD/BSL/SI, flag=0, encap_path=XXX, encap_bit
string).
[0141] If flag=0 in the forwarding entry 2, it indicates that a path configured by the BFR
11 is invalid, and the multicast goal is in the BIER domain, and a required egress
interface and a next-hop node may be determined based on the bit string in a BIER
header and a mapping relationship in a bit index forwarding table pre-stored locally.
[0142] Step 730: The BFR 11 in the first BIER domain encapsulates the multicast packet and
the BIER header based on the forwarding entry 2, and sends the encapsulated BIER multicast
data packet.
[0143] For a specific method of sending the BIER multicast data packet in the first BIER
domain, refer to the description in FIG. 2. Details are not described herein again.
[0144] The foregoing describes in detail the BIER packet sending method provided in the
embodiments of this application with reference to FIG. 1 to FIG. 7. The following
describes in detail a BIER packet sending apparatus in the embodiments of this application
with reference to FIG. 8 and FIG. 9. It should be understood that the descriptions
of the method embodiments are corresponding to descriptions of the apparatus embodiments.
Therefore, for parts that are not described in detail, refer to the foregoing method
embodiments.
[0145] FIG. 8 is a schematic block diagram of a BIER packet sending apparatus 800 according
to an embodiment of this application. The BIER packet sending apparatus 800 may include:
a receiving module 810, configured to receive a packet sent by a second node in a
second BIER domain, where the packet carries an identifier of the second BIER domain,
and the first node is not in the second BIER domain;
a determining module 820, configured to determine a BIER packet sending policy corresponding
to the identifier of the second BIER domain based on the identifier of the second
BIER domain and according to a preconfigured BIER packet sending policy; and
a sending module 830, configured to encapsulate and send a BIER packet according to
the BIER packet sending policy.
[0146] Optionally, in some embodiments, the BIER packet sending policy includes path information.
The sending module 830 is specifically configured to: encapsulate path information
corresponding to the identifier of the second BIER domain into the BIER packet; and
send the BIER packet to the second BIER domain based on the path information encapsulated
into the BIER packet.
[0147] Optionally, in some embodiments, the BIER packet sending policy includes an identifier
of a bit index forwarding table BIFT-ID. The sending module 830 is specifically configured
to: encapsulate a BIER header of the BIER packet based on a BIFT-ID corresponding
to the identifier of the second BIER domain; and send the BIER packet to the second
node in the second BIER domain based on the BIER header.
[0148] Optionally, in some embodiments, the path information includes a segment identifier
SID of segment routing SR, an endpoint identifier of a user datagram protocol UDP
tunnel, an SID of an internet protocol IP, or an endpoint identifier IP of a generic
routing encapsulation GRE tunnel.
[0149] Optionally, in some embodiments, the identifier of the second BIER domain is a sub-domain
SD identifier of the second BIER domain in which the second node is located.
[0150] Optionally, in some embodiments, the first node is a head node, and the second node
is a leaf node.
[0151] FIG. 9 is a schematic block diagram of a BIER packet sending apparatus 900 according
to an embodiment of this application. The BIER packet sending apparatus 900 may include
a memory 910, a processor 1002, and an input/output interface 930.
[0152] The memory 910, the processor 920, and the input/output interface 930 are connected
by using an internal connection path. The memory 910 is configured to store a program
instruction. The processor 920 is configured to execute the program instruction stored
in the memory 910, to control the input/output interface 930 to receive input data
and information, and output data such as an operation result.
[0153] It should be understood that, in the embodiments of this application, the processor
920 may be a central processing unit (central processing unit, CPU), or may further
be another general-purpose processor, a digital signal processor (digital signal processor,
DSP), an application-specific integrated circuit (application specific integrated
circuit, ASIC), a field programmable gate array (field programmable gate Array, FPGA),
or another programmable logic device, discrete gate or transistor logic device, discrete
hardware component, or the like. The general-purpose processor may be a microprocessor,
or the processor may be any conventional processor or the like. Alternatively, the
processor 920 may be one or more integrated circuits, and is configured to execute
a related program, to implement the technical solutions provided in the embodiments
of this application.
[0154] The memory 910 may include a read-only memory and a random access memory, and provide
an instruction and data to the processor 920. A part of the processor 920 may further
include a non -volatile random access memory. For example, the processor 920 may further
store information of a device type.
[0155] In an implementation process, steps in the foregoing methods can be implemented by
using a hardware integrated logical circuit in the processor 920, or by using instructions
in a form of software. The method disclosed with reference to the embodiments of this
application may be directly performed by a hardware processor, or may be performed
by using a combination of hardware in the processor and a software module. The software
module may be located in a mature storage medium in the art, such as a random access
memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically
erasable programmable memory, or a register. The storage medium is located in the
memory 910, and the processor 920 reads information in the memory 910 and completes
the steps in the foregoing methods in combination with hardware of the processor 920.
To avoid repetition, details are not described herein again.
[0156] It should be understood that the BIER packet sending apparatus 900 according to this
embodiment of this application is configured to perform corresponding procedures of
the methods in FIG. 2 to FIG. 7 in the embodiments of this application. In addition,
the foregoing and other operations and/or functions of the modules in the BIER packet
sending apparatus 900 are separately configured to implement the corresponding procedures
of the methods in FIG. 2 to FIG. 7 in the embodiments of this application. For brevity,
details are not described herein again.
[0157] It should be noted that, in the BIER packet sending apparatus 900 shown in FIG. 9,
the processor may invoke a computer program in the memory to implement the steps performed
by the modules. For example, the processor may invoke a computer instruction stored
in a cache to perform the steps that need to be performed by the modules (for example,
the receiving module 810 and the sending module 820 shown in FIG. 8).
[0158] It should be understood that sequence numbers of the foregoing processes do not mean
execution sequences in various embodiments of this application. The execution sequences
of the processes should be determined based on functions and internal logic of the
processes, and should not be construed as any limitation on the implementation processes
of the embodiments of this application.
[0159] A person of ordinary skill in the art may be aware that, in combination with the
examples described in the embodiments disclosed in this specification, units and algorithm
steps may be implemented by electronic hardware or a combination of computer software
and electronic hardware. Whether the functions are performed by hardware or software
depends on particular applications and design constraint conditions of the technical
solutions. A person skilled in the art may use different methods to implement the
described functions for each particular application, but it should not be considered
that the implementation goes beyond the scope of this application.
[0160] It may be clearly understood by a person skilled in the art that, for the purpose
of convenient and brief description, for a detailed working process of the foregoing
system, apparatus, and unit, refer to a corresponding process in the foregoing method
embodiments, and details are not described herein again.
[0161] In the several embodiments provided in this application, it should be understood
that the disclosed system, apparatus, and method may be implemented in another manner.
For example, the described apparatus embodiment is merely an example. For example,
division into units is merely logical function division and may be other division
in an actual implementation. For example, a plurality of units or components may be
combined or integrated into another system, or some features may be ignored or not
performed. In addition, the displayed or discussed mutual couplings or direct couplings
or communication connections may be implemented through some interfaces. The indirect
couplings or communication connections between the apparatuses or units may be implemented
in an electronic, a mechanical, or another form.
[0162] Units described as separate parts may or may not be physically separate, and parts
displayed as units may or may not be physical units, may be located in one position,
or may be distributed on a plurality of network units. Some or all of the units may
be selected based on actual requirements to achieve the objectives of the solutions
of the embodiments.
[0163] In addition, functional units in the embodiments of this application may be integrated
into one processing unit, or each of the units may exist alone physically, or two
or more units are integrated into one unit.
[0164] When the functions are implemented in the form of a software functional unit and
sold or used as an independent product, the functions may be stored in a computer-readable
storage medium. Based on such an understanding, the technical solutions of this application
essentially, or the part contributing to the conventional technology, or some of the
technical solutions may be implemented in a form of a software product. The computer
software product is stored in a storage medium, and includes several instructions
for instructing a computer device (which may be a personal computer, a server, a network
device, or the like) to perform all or some of the steps of the methods described
in the embodiments of this application. The foregoing storage medium includes any
medium that can store program code, such as a USB flash drive, a removable hard disk,
a read-only memory (read-only memory, ROM), a random access memory (random access
memory, RAM), a magnetic disk, or an optical disc.
[0165] The foregoing descriptions are merely specific implementations of this application,
but are not intended to limit the protection scope of this application. Any variation
or replacement readily figured out by a person skilled in the art within the technical
scope disclosed in this application shall fall within the protection scope of this
application. Therefore, the protection scope of this application shall be subject
to the protection scope of the claims.