Bit indexed explicit replication using internet protocol version 6
Various systems and methods for performing bit indexed explicit replication (BIER) using IPv6. For example, one method involves receiving, at a node, a packet that includes an IP header. The packet also includes a multicast forwarding entry. The method also involves comparing the multicast forwarding entry with forwarding information stored by the node and selecting a neighbor based on the comparing. The method further includes forwarding the packet to the neighbor.
1. A method comprising:
receiving a packet at a node in a network of nodes, wherein
the packet comprises an internet protocol version six (IPv6) destination address field, wherein the IPv6 IP destination address field comprises a multicast forwarding entry and a multicast group identification,
the multicast forwarding entry comprises a bit mask, and each bit of the bit mask corresponds to a respective edge node of the network;
the multicast group identification can be used to identify a multicast group of hosts to which the packet is being sent;
comparing the bit mask with forwarding information stored by the node;
selecting at least one neighbor node based on the comparing;
forwarding the packet to the at least one neighbor node;
receiving a first advertisement at the node, wherein the node receives the first advertisement from a first edge node of the network, and wherein the first advertisement comprises first information identifying a first bit position in the bit mask and the first edge node;
receiving a second advertisement at the node, wherein the node receives the second advertisement from a second edge node of the network, and wherein the second advertisement comprises second information identifying a second bit position in the bit mask and the second edge node;
generating the forwarding information at the node, wherein the forwarding information is generated based on the first information and the second information, and;
storing the forwarding information at the node.
2. The method of claim 1 , further comprising:
updating the multicast forwarding entry before the packet is forwarded, wherein
the updating the multicast forwarding entry comprises clearing a bit of the bit mask.
3. The method of claim 2 , further comprising:
selecting the forwarding information stored by the node, wherein
the selecting the forwarding information is based on a set identifier value encoded in the multicast forwarding entry.
4. The method of claim 1 , wherein
the comparing comprises performing a logical AND operation between the bit mask and a portion the forwarding information.
5. The method of claim 1 , wherein
the multicast forwarding entry comprises a set identifier.
6. A system comprising:
a first node configured to
receive a packet, wherein
the packet comprises an internet protocol version six (IPv6) destination address field, wherein the IPv6 destination address field comprises a multicast forwarding entry and a multicast group identification,
the multicast forwarding entry comprises a bit mask, and each bit of the bit mask corresponds to a respective edge node of a network of nodes;
the multicast group identification can be used to identify a multicast group of hosts to which the packet is being sent;
receive a first advertisement from a first edge node of the network, wherein the first advertisement comprises first information identifying a first bit position in the bit mask and the first edge node;
receive a second advertisement from a second edge node of the network, wherein the second advertisement comprises second information identifying a second bit position in the bit mask and the second edge node;
generate forwarding information, wherein the forwarding information is generated based on the first information and the second information;
storing the forwarding information;
compare the bit mask with the forwarding information stored by the node;
select at least one neighbor node based on the comparing; and
forward the packet to the at least one neighbor node.
7. The system of claim 6 , wherein the first node is further configured to:
update the multicast forwarding entry before forwarding the packet, wherein updating the multicast forwarding entry comprises clearing a bit of the bit mask.
8. The system of claim 6 , wherein the node is further configured to:
select the forwarding information stored by the node, wherein
the selecting the forwarding information is based on a set identifier value encoded in the multicast forwarding entry.
9. A non-transitory computer readable storage medium comprising executable instructions, wherein a method is implemented in a node of a network of nodes, wherein the method is implemented in response to executing the instructions, the method comprising:
receiving a packet, wherein
the packet comprises an internet protocol version 6 (IPv6) destination address field, wherein the Iv6P destination address field comprises a multicast forwarding entry and a multicast group identification,
the multicast forwarding entry comprises a bit mask, and each bit of the bit mask corresponds to a respective edge node of the network of nodes;
the multicast group identification can be used to identify a multicast group of hosts to which the packet is being sent;
receive a first advertisement from a first edge node of the network, wherein the first advertisement comprises first information identifying a first bit position in the bit mask and the first edge node;
receive a second advertisement from a second edge node of the network, wherein the second advertisement comprises second information identifying a second bit position in the bit mask and the second edge node;
generate forwarding information, wherein the forwarding information is generated based on the first information and the second information;
storing the forwarding information;
comparing the bit mask with the forwarding information stored by the node;
selecting at least one neighbor node based on the comparing; and
forwarding the packet to the at least one neighbor node.
10. The non-transitory computer readable storage medium of claim 9 , wherein the method further comprises:
updating the multicast forwarding entry before forwarding the packet, wherein
the updating the multicast forwarding entry comprises clearing a bit of the bit mask.
11. The non-transitory computer readable storage medium of claim 9 , wherein the method further comprises:
selecting the forwarding information stored by the node, wherein
the selecting the forwarding information is based on a set identifier value encoded in the multicast forwarding entry.