Bit indexed explicit replication forwarding optimization
First Claim
Patent Images
1. A method comprising:
- receiving a packet at a node, whereinthe packet comprises a bit string;
selecting a selected entry in a bit indexed forwarding table (BIFT) generated, using at least one of a bit-indexed routing table (BIRT) or an existing BIFT generated using the BIRT, such that the BIFT is indexed by bit position, whereinthe BIFT comprises a plurality of entries, each of whichcorresponds to a corresponding bit position in the bit string, andstores a corresponding identifier of a plurality of identifiers,as a result of the BIFT being indexed by bit position, the BIFT allows a plurality of the corresponding identifiers to correspond to another node,the selecting comprisesidentifying a bit position, andin response to a first value of a first bit stored in the bit string at the bit position and a second value of a second bit stored in the entry indicating that the entry should be selected as the selected entry, selecting an entry in the BIFT corresponding to the bit position, as the selected entry, andthe selected entry comprisesa forwarding bit mask, andan identifier; and
in response to the entry being selected as the selected entry, forwarding the packet to the another node, whereinthe another node is identified by the identifier, andthe forwarding comprisescreating an outgoing bit string in an outgoing packet using at least the forwarding bit mask and the bit string, andtransmitting the outgoing packet to the another node.
1 Assignment
0 Petitions
Accused Products
Abstract
Various systems and methods for performing bit indexed explicit replication (BIER). For example, one method involves receiving a packet at a node. The packet includes a bit string. The node traverses the bit string and selects an entry in a bit indexed forwarding table (BIFT). The entry includes a forwarding bit mask. Based on the forwarding bit mask and the bit string, the node forwards the packet.
68 Citations
20 Claims
-
1. A method comprising:
-
receiving a packet at a node, wherein the packet comprises a bit string; selecting a selected entry in a bit indexed forwarding table (BIFT) generated, using at least one of a bit-indexed routing table (BIRT) or an existing BIFT generated using the BIRT, such that the BIFT is indexed by bit position, wherein the BIFT comprises a plurality of entries, each of which corresponds to a corresponding bit position in the bit string, and stores a corresponding identifier of a plurality of identifiers, as a result of the BIFT being indexed by bit position, the BIFT allows a plurality of the corresponding identifiers to correspond to another node, the selecting comprises identifying a bit position, and in response to a first value of a first bit stored in the bit string at the bit position and a second value of a second bit stored in the entry indicating that the entry should be selected as the selected entry, selecting an entry in the BIFT corresponding to the bit position, as the selected entry, and the selected entry comprises a forwarding bit mask, and an identifier; and in response to the entry being selected as the selected entry, forwarding the packet to the another node, wherein the another node is identified by the identifier, and the forwarding comprises creating an outgoing bit string in an outgoing packet using at least the forwarding bit mask and the bit string, and transmitting the outgoing packet to the another node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A network device comprising:
-
one or more processors; a memory, wherein the memory is configured to store a bit indexed forwarding table (BIFT) generated, using at least one of a bit-indexed routing table (BIRT) or an existing BIFT generated using the BIRT, such that the BIFT is indexed by bit position, and coupled to the one or more processors; a network interface, configured to receive a packet and coupled to the one or more processors, wherein the packet comprises a bit string; and a non-transitory computer-readable storage medium, coupled to the one or more processors and storing program instructions that, when executed, are configured to cause the one or more processors to select a selected entry in the BIFT, wherein the BIFT comprises a plurality of entries, each of which corresponds to a corresponding bit position in the bit string, and stores a corresponding identifier of a plurality of identifiers, as a result of the BIFT being indexed by bit position, the BIFT allows a plurality of the corresponding identifiers to correspond to another node, the program instructions configured to select the selected entry comprise further program instructions configured to identify a bit position, and in response to a first value of a first bit stored in the bit string at the bit position and a second value of a second bit stored in the entry indicating that the entry should be selected as the selected entry, select an entry in the BIFT corresponding to the bit position, as the selected entry, and the selected entry comprises a forwarding bit mask, and an identifier, and in response to the entry being selected as the selected entry, forward the packet to the another node, wherein the another node is identified by the identifier, and the program instructions configured to cause the one or more processors to forward comprise further program instructions configured to cause the one or more processors to create an outgoing bit string in an outgoing packet using at least the forwarding bit mask and the bit string, and transmit the outgoing packet to the another node. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A system comprising:
-
processing means for processing program instructions; storage means for storing, coupled to the processing means, wherein the storage means is configured to store a bit indexed forwarding table (BIFT) generated, using at least one of a bit-indexed routing table (BIRT) or an existing BIFT generated using the BIRT, such that the BIFT is indexed by bit position; network interface means for receiving a packet, wherein the network interface means is coupled to the processing means, and the packet comprises a bit string; and non-transitory computer-readable storage means for storing the program instructions, coupled to the processing means and storing the program instructions, which are configured to cause the processing means to select a selected entry in the BIFT, wherein the BIFT comprises a plurality of entries, each of which corresponds to a corresponding bit position in the bit string, and stores a corresponding identifier of a plurality of identifiers, as a result of the BIFT being indexed by bit position, the BIFT allows a plurality of the corresponding identifiers to correspond to another node, the program instructions configured to select the selected entry comprise further program instructions configured to identify a bit position, and in response to a first value of a first bit stored in the bit string at the bit position and a second value of a second bit stored in the entry indicating that the entry should be selected as the selected entry, select an entry in the BIFT corresponding to the bit position, as the selected entry, and the selected entry comprises a forwarding bit mask, and an identifier, and in response to the entry being selected as the selected entry, forward the packet to the another node, wherein the another node is identified by the identifier, and the program instructions configured to cause the processing means to forward comprise further program instructions configured to cause the processing means to create an outgoing bit string in an outgoing packet using at least the forwarding bit mask and the bit string, and transmit the outgoing packet to the another node. - View Dependent Claims (17, 18, 19, 20)
-
Specification