Network nodes forward data. Network nodes may take form in one or more routers, one or more bridges, one or more switches, one or more servers, or any other suitable communications processing device. The data is commonly formatted as messages and forwarded using forwarding tables. A message is a formatted unit of data that typically contains control information and payload data. Control information may include information that identifies sources and destinations, such as addresses, error detection codes like checksums, sequencing information, etc. Control information is typically found in message headers and trailers. Payload data is typically located between the message headers and trailers. Depending on factors such as the network level and network protocol used, a message may be formatted and/or referred to as one of various specific types such as packets, datagrams, segments, or frames.
Forwarding messages involves various processes that, while simple in concept, can be complex. The processes involved in forwarding vary, depending on the type of forwarding method used. Overall forwarding configurations include unicast, broadcast, and multicast forwarding. Unicast is a method of point-to-point communication most often used when a particular node (known as a source) wishes to send data to another particular node (known as a receiver) and is not concerned with sending the data to multiple receivers. Broadcast is method used when a source wishes to send data to all receivers in a domain, and multicast allows a source to send data to a group of receivers in a domain while preventing the data from being sent to other receivers in the domain.
Multicast is the preferred method of data forwarding for many popular applications, such as streaming media distribution. One reason for this is that multicast is a bandwidth-conserving technology that allows delivery of data to multiple receivers while avoiding transmission of multiple copies of the same message over the same network link. However, in traditional multicast systems, a relatively large amount of control plane information is used. Setting up and maintaining this control information has a tendency to become complex and costly in terms of computing resources, and can become a major limiting factor in overall network performance.
The present disclosure may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
Overview
Methods and network devices are disclosed for traffic-engineered forwarding through a new form of bit indexed explicit replication (BIER). In one embodiment, a method includes receiving at a first node in a network a message comprising a message bit array, and comparing bit values at one or more bit positions in the message bit array to one or more entries in a forwarding table stored at the first node. The one or more bit positions correspond in this embodiment to links in the network. This embodiment of the method further includes forwarding the message over a link represented in the forwarding table if a result of the comparing indicates that the link is included in a path to be taken by the message. In a further embodiment of the method, the message is a multicast message and forwarding the message comprises forwarding a replica of the multicast message.
Multicast
Multicast transmission delivers multicast packets (packets that traditionally include information identifying a multicast group, such as a multicast group address) from a source to multiple receivers without unduly burdening the source. Although some of the discussion in this disclosure is in terms of packets, it should be understood that the disclosures made herein may also be applicable to other types of network messages, such as datagrams or data frames. As used herein, the term “receiver” signifies a host (such as a computing device or application) that has subscribed to a multicast group. Instead of the source replicating a multicast packet and sending a copy of the multicast packet to each receiver, the source sends a single copy of a multicast packet and multicast-enabled routers (referred to herein simply as nodes) replicate the packet at the point(s) where paths to various receivers diverge. Multicast routing protocols enable multicast transmission (i.e., one-to-many connections and many-to-many connections) by replicating a multicast packet close to the destination of that multicast packet, obviating the use of multiple unicast connections for the same purpose. This saves network bandwidth and improves throughput.
Typical multicast routing protocols require that each node's multicast forwarding table include, for example, information mapping source and group identifiers for each multicast flow to the interfaces over which the node must forward a packet replica for that group, and the interface over which a packet for that group should properly arrive. The multicast forwarding tables maintained by each multicast-enabled node can become quite large in networks with many multicast sources, many multicast groups, or both. Maintaining such multicast forwarding tables imposes limitations on network scalability.
Bit Indexed Explicit Replication (BIER)
In a “stateless multicast” technique known as Bit Indexed Explicit Replication (BIER), the amount of state information within a multicast network is reduced. In BIER forwarding, receiver information is encoded in the packet rather than looked up in tables at each node based on multicast source and group information. Specifically, the receiver information is encoded in a bit array carried by the packet. BIER forwarding is described in more detail in, for example, co-pending U.S. application Ser. No. 14/604,092, but generally speaking each node associated with a multicast receiver is assigned a bit position in the bit array. A node connected to a receiver may also be referred to as a “receiver node” or a “destination node” herein. The value of the bit at a given bit position indicates whether the receiver node corresponding to that bit position is an intended receiver, or destination, for the multicast packet carrying the bit array.
In forwarding a BIER multicast packet containing a packet bit array (or, more generally, a BIER multicast message containing a message bit array), a BIER-enabled node determines whether any intended destination nodes for the packet are also reachable nodes from the BIER-enabled node. This is done using a bit-indexed forwarding table stored at the BIER-enabled node, the forwarding table having an entry for each of the BIER-enabled node's neighbor (directly connected next-hop) nodes. In an embodiment, the entry for each neighbor node includes a neighbor bit array with the same mapping of bit positions to destination nodes as that of the packet bit array. In a neighbor bit array, however, the value of the bit at a given bit position indicates whether the corresponding receiver node is reachable from the neighboring node associated with the forwarding table entry containing the neighbor bit array. Whether a node is “reachable,” for purposes of BIER forwarding, from a neighboring node depends on whether the neighboring node is included in the shortest path to the destination node, as determined through an interior gateway protocol (IGP) used in the network. A message bit array may also be called a “bit string” herein, and a neighbor bit array may be called a “bit mask.”
If comparison of the packet bit array of an incoming BIER packet with a neighbor bit array in a forwarding table entry shows that at least one intended destination node for the multicast packet is reachable via a neighbor node, a replica of the multicast packet is forwarded to the neighbor node, using routing information from the forwarding node's unicast routing table. This process is repeated for forwarding table entries associated with any other neighbor nodes, and each forwarded replica packet is in turn handled in a similar manner when received by the respective BIER-enabled neighbor node. In this manner the multicast packet is replicated and forwarded as needed to reach the intended destinations. In some embodiments, modifications are made to a packet bit array during the forwarding process, either as a packet bit array is compared to neighbor bit arrays in successive forwarding table entries at the node, or before a replica packet carrying a packet bit array is forwarded to a neighbor node, or in both situations. Such modifications can prevent looping and replication of packets.
Traffic Engineering
The BIER forwarding mechanism referenced above depends on the use of a forwarding node's unicast routing information. The BIER packet bit array tells a BIER-enabled node which destinations the packet must reach, but not the path to use to get them there. The path used for forwarding a given replica packet is the path determined by the forwarding node's unicast routing table, which is typically built using a shortest-path-first algorithm. There is no mechanism for routing a packet along an explicit path (also called “traffic engineering”) using BIER as typically implemented.
There are situations in which explicit routing of multicast packets is desirable. For example, explicit paths are often used in Operations, Administration and Maintenance (OAM) activities designed to monitor or measure network path variables such as packet loss or transmission delay. Another application in which explicit routing can be useful is that of professional media networks using Internet Protocol (IP) for video broadcasting. Video broadcasting networks typically involve capture of content in multiple locations, processing of the content, and transmission of content (known as contribution) to one or more other locations. Content from various sources can be merged into a continuous stream and provided to potentially numerous receivers, based on control signals generated by a controller. Switching between content sources and modifying the selection of receivers that receive the stream is extremely time-critical. If these transitions do not occur on very specific boundaries or time intervals, video and audio distortions or discontinuities can result. Video transmission is also very sensitive to errors caused by the packet loss that may occur in IP networks. As such, some error correction schemes involve sending matching packet streams over alternate paths so that a receiver can switch between the streams to reconstruct an error-free signal. The stringent timing requirements involved in video broadcasting generally, along with the requirement for multiple independent paths in certain situations, makes an ability to define explicit paths desirable.
Certain existing technologies allow for traffic engineering. In a network employing Multiprotocol Label Switching (MPLS), for example, an explicit path can be established using a protocol called Resource Reservation Protocol with Traffic Engineering (RSVP-TE). An explicit path, or “tunnel” is specified using RSVP-TE when the initial node sends a request message from node to node along the length of the requested path, and the final node of the path confirms by sending back along the path the MPLS labels to be used for the path. These labels must then be added to the forwarding tables of the nodes along the path. The reservation process must be done again if the explicit path is altered in response to a change in network topology or conditions. The RSVP-TE process can be extended to multicast trees using point-to-multipoint (P2MP) RSVP-TE. Each multicast group will have its own tree reservation process and its own set of labels, requiring significant state at each node for forwarding tables relating labels to group and source information, in addition to the time and bandwidth required for the reservation process.
Another forwarding mechanism allowing creation of explicit paths is segment routing. Segment routing is described in detail in, for example, co-pending U.S. patent application Ser. No. 14/292,264. In segment routing, path information is carried with the packet in the form of a set of segment identifiers, where the path is constructed from topological sub-paths with each sub-path associated with a segment identifier. The set of segment identifiers carried by the packet can be implemented in various data plane technologies, such as through a stack of MPLS labels, or through a string of identifiers embedded in an Internet Protocol version 6 (IPv6) extension header. Segment identifiers can be advertised and exchanged using the existing IGP used for exchanging unicast routing information in the IP network, so that a control plane protocol such as the Label Distribution Protocol (LDP) or RSVP-TE protocols used in MPLS networks is not needed. A set of segment identifiers defining the path for a packet is determined by, for example, an ingress node or a network controller and added to the encapsulation of the packet. The encapsulation arranges the segment identifiers in sequential order along the defined path. Forwarding then proceeds by lookup, in a segment routing forwarding table of the forwarding node, of the first segment identifier (e.g., the uppermost identifier, in an MPLS implementation using a label stack). When the sub-path corresponding to a segment identifier has been traversed, that identifier is removed from the active set of segment identifiers carried by the packet. The path for the packet is accordingly defined by accessing the segment identifiers carried by the packet in sequential order. Although segment routing allows an explicit path to be defined with relatively minimal “state” (storage of identifiers, labels, etc.) at each forwarding node, segment routing as currently defined does not allow for multicast path definition or forwarding.
Bit Indexed Explicit Replication with Traffic Engineering (BIER-TE)
A new forwarding method called Bit Indexed Explicit Replication with Traffic Engineering (BIER-TE) allows multicast explicit paths to be defined while exhibiting a similar reduction of multicast state information to that provided by the existing BIER forwarding mechanism described above. The existing BIER mechanism may be referred to as “BIER”, BIER-shortest path first (“BIER-SPF”) or “non-TE BIER” herein. Both BIER and BIER-TE encode path-related information in a bit array carried by the packet. However, the type of information encoded is different for the two techniques. As described above, bit positions in the bit array used in BIER correspond to receivers of a multicast packet (such as egress nodes connected to respective receivers, or egress interfaces of such egress nodes). In BIER-TE, by contrast, bit positions correspond to links within a path, where “link” is used in a general sense herein as a data connection between a network node and another node or another protocol level of the network. Links as described herein function as path segments, or sub-paths, such that the path for a message is formed from a series of connected links. Links represented by bit positions may also be referred to as “hops” or “adjacencies” herein.
A link represented by a bit position in a BIER-TE bit array can be of multiple different types. For example, a link can connect one network node and a directly-connected adjacent node. This type of direct link can be defined as either a one-way or two-way link. A bit position may also represent an indirect connection between one node and a non-adjacent node, such that the link includes one or more intervening nodes. In addition to these direct and indirect connections between network nodes, a bit position may represent a connection between the BIER-TE protocol layer and a higher protocol layer of the network.
Preparation for forwarding of a packet by BIER-TE includes four basic processes: the path (or set of paths forming a multicast tree) for the packet (and other packets in the same multicast group) is determined; bit positions are assigned to the links that join together to create the path or tree; the packet is encapsulated to include a packet bit array having set bits in the bit positions corresponding to the links along the path; and for each node along the path, bit positions representing links connected to that node are added to a BIER-TE forwarding table at the node, along with appropriate forwarding instructions. These processes are discussed in more detail below.
BIER-TE Forwarding Examples
In the embodiment of
Network 100 also includes a central controller 130. In an embodiment, controller 130 is a controller host external to the data path of the BIER-TE network. In an alternative embodiment, ingress node 118 is configured to perform some or all of the functions of controller 130. In yet another embodiment, some or all of the functions of controller 130 may be performed through manual configuration procedures. In an embodiment, controller 130 of
The functions of controller 130 in the embodiment of
An exemplary assignment of bit positions to links is illustrated in
In the convention used herein, assignment of a bit position number to a link means that a bit array encoding a path containing that link will have a set bit (a bit value of “1” rather than “0”) in the bit position corresponding to the link's bit position number, counting from the right. For example, a 12-bit bit array encoding only the path between nodes B and C in
Returning to
Bit position assignment 140 in
The bit position assignments shown in
The bit position assignment notation of
In the “Link” column of the BTFTs of
Portion 202 of the BTFT for node A assigns bit position 1 to the direct link from node A to node B, and bit position 10 to the indirect link from node A to node E. These forwarding table entries reflect the two bit position assignments involving node A shown using a different notation in
Portion 204 of the BTFT for node B is also illustrated in
Comparison to the bit position assignments illustrated in
Bit positions assigned to links connecting node C to other BIER-TE-enabled nodes are shown in portion 206 of a BTFT for node C. Table portion 206 includes links both incoming to and outgoing from node C, and the considerations discussed above in connection with node B apply to node C as well. Because the link between nodes C and E is a two-way link with a single assigned bit position, as discussed above in connection with
Portion 208 of the BTFT for node D is also shown in
The largest BTFT portion shown in
As noted above, the BTFTs illustrated in
In addition to populating the BIER-TE forwarding tables for each BIER-TE-enabled node, preparation for forwarding by BIER-TE includes storing of a BIER-TE message bit array for each multicast group to be forwarded using BIER-TE. An exemplary portion of a BIER-TE group path table (GPT) 214 is shown in
The length of the bit arrays used in a particular BIER-TE network—i.e., the number of bits in the array—can be statically configured or dynamically assigned and distributed through the BIER-TE network. The bit array can have any suitable length. In an embodiment, the length is determined in view of the size and capabilities of the network. In one embodiment, the length of the bit array is between 8 and 4096 bits. In a further embodiment, the length of the bit array is between 256 and 1024 bits. The maximum bit array length value is determined, in one embodiment, by hardware or software limitations of the BIER-TE-enabled nodes in the BIER-TE network. In one embodiment, different BIER-TE-enabled nodes in the BIER-TE network have different maximum bit array lengths. For example, one BIER-TE-enabled node may have a maximum bit array length of 128 bits while another BIER-TE-enabled node may have a maximum bit array length of 256 bits. The number of links, or path segments, that can be represented by a bit position in a message bit array depends on the length of the array. Methods for reducing the number of bit positions used in defining paths or trees in a network are discussed further below.
Along with the BIER-TE forwarding tables, the GPT is in some embodiments populated with information received from controller 130. As noted above, controller 130 uses topology information and multicast group information in assigning bit positions and determining explicit paths and trees for multicast groups. In an embodiment, controller 130 and nodes in network 100 run an IGP, and controller 130 obtains topology information through IGP advertisements. In an alternative embodiment, BIER-TE-enabled nodes provide topology information (such as neighbor information) to controller 130 through a query or reporting process using a control protocol. In embodiments in which some or all of the BIER-TE-enabled nodes are not running an IGP, the nodes can still obtain neighbor information through, for example, Layer 2 handshaking or announcement protocols. In an embodiment, BIER-TE-enabled nodes obtain neighbor information using Address Resolution Protocol (ARP) or Neighbor Discovery Protocol (NDP).
As also noted above, multicast group information is in some embodiments provided to controller 130 by provider edge nodes such as nodes A, D, E and F in network 100. In another embodiment, controller 130 is in communication with customer edge nodes such as nodes 110, 112, 114 and 116 of network 100 and receives multicast group information from those nodes. In addition to topology information and multicast group information, rules or requirements related to a particular network or application may be used by controller 130 in determining explicit paths and trees for multicast groups. For example, error correction schemes in video transmission networks can require a video stream to be sent over two separate non-overlapping paths. Various traffic engineering rules and requirements are accounted for by controller 130 in some embodiments. As an example, shared risk group (SRG) information can be considered in some embodiments. In some embodiments, some or all of the above information used by controller 130 is provided to controller 130 through a manual configuration process. In another embodiment, explicit path or tree information is provided to controller 130 or to ingress node A through a manual configuration process.
Portion 214 of the GPT in
Group G2 in GPT portion 214 is assigned an MBA of {0011 1011 0100}, with set bits at BPs 3, 5, 6, 8, 9, and 10. According to the BP assignments in the BIER-TE forwarding tables, the tree for group G2 includes links CD (BP 3), EF (BP 5), CE or EC (BP 6), F (local—BP 8), D (local—BP 9) and AE (BP 10). Considering this set of links in view of the topology of network 100, and assuming a G2 message enters the BIER-TE domain at node A, the message is forwarded first to node E where it is replicated, with one copy forwarded to node F and one to node C. Bit position 6 therefore corresponds to link EC in the tree for group G2. The message sent to node C is then forwarded to node D, where it is decapsulated in accordance with the “local” link for node D. The message copy sent to node F is also decapsulated, according to the “local” link for node F. Forwarding of the G2 packet is described in more detail below in connection with
In embodiments for which ingress node A is capable of multicast forwarding by other methods than BIER-TE, node A will need to determine that message 302 is to be encapsulated as BIER-TE. In one embodiment, node A checks each table it has stored for encapsulation of multicast messages (such as a GPT for BIER-TE or a group membership table (GMT) for non-TE BIER). If the multicast group or source information for the incoming multicast message is included in one of the available tables, the corresponding encapsulation is used. In a further embodiment, the tables are checked in a specified order, and the encapsulation corresponding to the first table including group or source information for the incoming message is used. In an alternative embodiment, the encapsulation of the incoming multicast message is extended to include an indication that BIER-TE forwarding should be used where available. In such an embodiment, node A knows to check the BIER-TE GPT for a message bit array to be applied to the incoming message.
Encapsulation of a message bit array onto message 302 to form BIER-TE message 304 can be accomplished in multiple ways. In an embodiment, an existing encapsulation is adapted or extended to carry BIER-TE information. For example, a message bit array is written to the destination address field of an Internet Protocol version 6 (IPv6) header in one embodiment for which the multicast message is an IP packet. In another embodiment, a message bit array is written to one or more IPv6 extension headers. As another example, an IP packet with an MPLS encapsulation is forwarded using one or more 32-bit labels inserted between the IP header and data link layer header of the packet. In one embodiment, BIER-TE-related information including the message bit array is included in a stack of MPLS labels. In an alternative embodiment the message bit array is encoded outside of the MPLS label structure, between the MPLS label stack and the payload of the packet. In a still further embodiment, the bit array may be included in a BIER-TE header appearing between the label stack and the payload, where the BIER-TE header may also include additional information. As an alternative to adapting an existing encapsulation in ways such as those described above, a dedicated BIER-TE encapsulation, such as a dedicated BIER-TE header, may be used in some embodiments. In a further embodiment, controller 130 communicates a BIER-TE encapsulation format to BIER-TE-enabled nodes in network 100.
When an incoming message has been encapsulated to form a BIER-TE message, node A proceeds with BIER-TE forwarding of the message. The basic BIER-TE forwarding mechanism is to determine whether any of the bit positions representing outgoing links in the forwarding node's BIER-TE forwarding table include set bits in the message bit array. If a set bit in the MBA shares the bit position of an outgoing link in the forwarding table, a replica of the packet is forwarded over the link. In one embodiment, determining whether any set bits in the MBA have the same bit position as links in the forwarding table includes representing the link in the forwarding table as a link bit array, where every bit in the LBA is set to zero except for the bit in the bit position assigned to the link. In a further embodiment, a logical AND operation is then performed between the message bit array and the link bit array. If the result of the AND operation is TRUE, the message bit array does have a set bit in the bit position assigned to the link. In another embodiment, the bit value for a bit position in the MBA corresponding to a link in the forwarding table is checked using a different operation. In yet another embodiment, bit positions for set bits in the message bit array are identified, and the BIER-TE forwarding table is then checked to determine whether there are links in the table corresponding to any of the identified bit positions.
Applying this mechanism to message 304 at node A of
In an embodiment, BIER-TE forwarding over a directly-connected link such as that between nodes A and B is done by layer 2 (L2) forwarding rather than routing. In a further embodiment in which only directly-connected links are used, the BIER-TE-enabled nodes do not need to have routing tables or to run an IGP.
In the embodiment of
Returning to the forwarding example of
When node B recognizes message 308 as a BIER-TE packet, forwarding proceeds in a similar manner to that described above for node A. The message bit array in message 308 is compared to the forwarding table entries associated with outgoing links in the BTFT for node B. BTFT portion 204 for node B includes two bit positions assigned to outgoing links: BP 2 for link BC and BP 4 for link BE. The message bit array in message 308 has a set bit at BP 2 but not at BP 4. The message is therefore forwarded, in the manner discussed above for node A, to node C over link BC. In the embodiment of
At node D, where message replica 312 is received, the only outgoing link in the BTFT table is the local link for node D, at BP 9. The message bit array for message 312 has a set bit at BP 9, so node D removes the BIER-TE encapsulation from the message, restoring the format of the original multicast message 302. The decapsulated message becomes message 316, which is handed off to the next higher protocol layer at node D (such as, for example, IP multicast or m-LDP) and then forwarded to receiver 104 via customer edge node 112.
At node E, where message replica 314 is received, there are three outgoing links in the BTFT: EC (with BP 6), EF (with BP 5) and the local link for node E, with BP 7. The message bit array for message 314 has set bits at bit positions 5 and 7, but not at BP 6. The two-way link between nodes E and C illustrates the importance of the bit reset procedure in certain situations. Because bit position 6 is assigned to both directions of the link between nodes C and E, a message would be sent back to node C from node E if BP 6 had not been reset at node C before forwarding of message 314. The message would continue to be sent back and forth between these nodes if the bit at BP 6 in the message bit array were not reset by either node. Instead, message 314 is replicated, with one copy forwarded to node F as message 320, and the other copy decapsulated to form message 318 in the original message format used outside of the BIER-TE domain. Message 320 is subsequently decapsulated at node F pursuant to the set bit at BP 8 in the message bit array of message 320, to form message 322. Messages 318 and 322 are forwarded to their respective receivers with the protocol used outside of the BIER-TE domain.
As shown by
An additional BIER-TE message forwarding example is illustrated in
In the embodiment of
As shown by
Because each BIER-TE node can access the message bit array containing bits representing all links in the remainder of the message's path or tree, and can replicate and send a message over any of the links that are connected to the node, multicast transmission is available using BIER-TE. This is in contrast to segment routing as currently defined, which is limited to unicast paths since only one path segment at a time is accessible to a node. The capability of BIER-TE to perform explicit-path forwarding in multicast does not mean that BIER-TE is limited to multicast, however. The forwarding examples discussed above make clear that a BIER-TE bit array can also be used to define an explicit unicast path for a message. In some embodiments, a BIER-TE message bit array may provide a more compact encoding of a given explicit path than the set of segment identifiers needed to encode the same path in a segment routing implementation.
Forwarding by BIER-TE is similar in some ways to forwarding by non-TE BIER, primarily in that both methods encode path information in a bit array carried by the message being forwarded, and the message bit array is compared to bit position information in a forwarding table at each node. As a result, both methods allow the forwarding nodes to be free of multicast state, such as stored tree information for multicast groups. There are important differences between the two methods, however. As one example, BIER-TE provides for explicit paths and trees because the BIER-TE message bit array includes bits corresponding to each link in the tree. In non-TE BIER, on the other hand, bits in the message bit array correspond to receiving nodes and the MBA does not carry explicit path information. The BIER and BIER-TE methods also differ in the operations performed at forwarding nodes. In BIER forwarding, each node maintains a routing table for making SPF-based determinations of which receiver nodes are reachable from each of the node's neighboring nodes. The reachable receiver nodes from each neighbor are reflected in a bit-indexed forwarding table created at each node. In a BIER-TE node, on the other hand, the forwarding table is populated by information provided by an external controller or by manual configuration. At least in the case of paths formed using only directly-connected links, a BIER-TE-enabled node does not require a routing table or any topology information beyond knowing its immediate neighbors. In some embodiments, a BIER-TE-enabled node does not run an IGP.
Bit Position Assignment in BIER-TE
The assignment of bit positions to network links in BIER-TE, as opposed to receiver nodes as in non-TE BIER, allows explicit paths and trees to be defined but also requires a relatively high number of bit positions. The number of bits used to define an explicit multicast tree in BIER-TE can be much higher than the number needed to create a non-explicit tree to the same receiver nodes using non-TE BIER. Bit position assignments in BIER-TE should therefore be done so that the number of bit positions used is minimized. As an initial matter, bit positions are needed only for those links included in an explicit path or tree, and not necessarily for every link in a network. In some embodiments, explicit paths are needed only in one or more portions of the total path taken by a message. If there is a portion of a network where no multicast replication or traffic engineering is required, that portion can be “bypassed” (from the standpoint of the BIER-TE implementation) by defining an indirect link, similar to link AE described in
Another situation in which assignment of a bit position can be avoided in some embodiments is a node configured to forward over only one link or otherwise take only one action. As an example, each of egress nodes D and E in network 100 of
Another approach to conserving bit positions in BIER-TE networks is to share bit positions among links—i.e., to assign a single bit position to more than one link within a BIER-TE domain. One example of this is illustrated by nodes C and E of network 100 discussed above: bit position 6 is assigned to both directions of a two-way point-to-point link between the nodes. In many cases, a single bit position can be used for both directions of this type of two-way point-to-point link. Use of a single bit position for both directions typically requires use of a bit reset procedure, as discussed above in connection with bit position 6 in
Another example of links that can share a bit position is that of links that will not be connected in series within a path or tree. One example of this situation is a dual-plane network, illustrated in
Another example of assigning one bit position to multiple links is shown in
A difficulty can arise when using a single bit position for multiple links in a network structure if the structure has a node in common with another network structure that also has a single bit position assigned to multiple links. An example is shown in
If LANs 522 and 532 were not connected via node D, the setting of bit 6 in the message bit area of a message reaching node A and LAN 522 would have no effect, nor would the setting of bit 5 in the MBA of a message reaching node E and LAN 532 have any effect. With node D bridging the two LANs, however, not only does node D get two copies of the message (one through each of nodes A and E), but node D will forward messages received through LAN 532 over to the nodes of LAN 522, and vice versa. Presence of node D bridging the two LANs therefore can result in significant duplication of messages. An alternative bit assignment that avoids this duplication is shown in
An additional approach to avoiding the duplication resulting from the bit position assignment of
In the above examples of sharing of one bit position by multiple links, the links sharing a bit position have been alternative links that are not connected in series along a path. In some embodiments, however, a bit position can be shared by links connected in series along the same path. For example, if there is a portion of a network in which all routers should receive a message (or at least can receive the message) if any of them receive it, a single bit position can be assigned to each link in the network portion (or effectively to the entire network portion). This assignment of a bit position to a network portion may be referred to as a “topology adjacency.” If the network portion includes links connected in series, it is important that the bit position assigned to the network portion is not reset when forwarding (else the message will be dropped after a single hop). As noted in connection with some of the examples above, however, failure to reset a bit position when forwarding can lead to looping and/or duplication of messages in some embodiments. In an embodiment, use of a single bit position for multiple links along multi-hop paths is limited to loop-free networks employing one-way links.
An example of a loop-free network with one-way links is shown in
Another example of a network portion using a single bit position for multiple links in series is the ring arrangement of
An example of a method for assigning bit positions to links in a network is illustrated by the flowchart of
Method 700 continues with determining paths for messages in the flow (step 704). As discussed in connection with the forwarding examples above, network topology information is used along with message flow information to determine paths. Message flow information considered may include information regarding additional message flows in the network in addition to the particular message flow that a path is being determined for. In an embodiment, additional rules or requirements related to a particular network or application are also used in determining paths. For example, various traffic engineering considerations understood by one of ordinary skill in view of this disclosure are used in determining paths in certain embodiments. Determining a path in some embodiments involves receiving entry of a path through a manual configuration process. In an embodiment, the path determination of step 704 provides an initial path definition that may be altered and/or refined as method 700 proceeds and bit positions are assigned.
In step 706, local decapsulation bit positions are assigned to one or more egress nodes on the path or tree for the message flow. These are bit position assignments similar to assignments 138 of
In step 710 of method 700 it is determined whether a pair of nodes along the path of the message flow is connected by a bundle of ECMP links. In an embodiment, this determination is made using topography information for the network. An example of this type of bundle is shown in
Method 700 continues at step 716, where it is determined whether there are network portions traversed by the path or tree for which all nodes can receive a copy of the message being forwarded. In an embodiment, the network portion identified is one in which all nodes need to receive the message. In other embodiments, the network portion is one in which enough of the nodes need to receive the message that some duplication to other nodes is tolerable, in view of the opportunity to save bit positions by assigning one bit position to multiple links. If a network portion is identified, it is determined in step 718 whether the identified network portion includes links on alternative paths (i.e., links not connected in series along a path). Examples of this type of network portion include the dual-plane network shown in
Returning to step 718 of method 700, if the network portion for which all nodes can receive a copy of the message does have links connected in series (“N” branch of decision 718), a bit position is assigned to one-way links only along non-looping paths (step 722). One example of this type of bit position assignment is shown in
Method 700 continues with decision step 730, where it is determined whether there are one or more portions of the network that may be bypassed by a message traversing a path or tree. A “bypassed” network portion in this context is a portion that is traversed using conventional unicast routing so that the explicit path taken through that portion is not determined using BIER-TE. In general, network portions that can be bypassed from the standpoint of BIER-TE are areas in which replication of messages is not occurring, and which do not otherwise require that specific links or nodes be traversed. Stated another way, a network portion can be bypassed if the specific path by which the network portion is traversed by a message flow is unimportant. If such a network portion exists, it is bypassed in the embodiment of method 700 by assigning a bit position to an indirect link across the network portion (step 732). An example of such an indirect link is link AE in network 100 of
If there are links in the path or tree for the message flow that have not yet been assigned bit positions after the assignments described above, those links are each assigned an additional bit position (step 736). These bit position assignments are for directly-connected links and are similar to bit position assignments 134 and 136 in
When bit positions have been assigned to links that combine to form the entire path or tree for the message flow, a message bit array for the message flow is generated and stored (step 740). According to the bit convention used herein, the message bit array includes a set bit in each bit position corresponding to a link in the path or tree. In an embodiment, a mapping between the message bit array and an address or identifier for the message flow is stored in a group path table, or flow path table, at the BIER-TE ingress node for the message flow. A bit position assignment and message bit array generation process like that of method 700 is performed for each message flow to be forwarded by a BIER-TE network or domain.
Method 700 of
Although shown as separate steps within method 700, it is noted that determination of a path or tree for a message flow and assignment of bit positions to links within the path may be interrelated processes in some embodiments. For example, an inquiry such as that of decision step 730—whether a network portion can be bypassed—may form part of the process of determining the path itself. Some or all of a bit position assignment method such as method 700 may be iterated in some embodiments as part of an optimization process for arriving at a path or tree definition and a corresponding set of bit position assignments.
Some or all of a bit position assignment method such as method 700 of
An embodiment of a method for updating bit positions and message bit arrays is illustrated by the flowchart of
Returning to method 800, the new bit position assignments are added to the BIER-TE forwarding tables of the affected nodes, while the previous bit position assignments are retained in the tables as well (step 804). An example of a BIER-TE forwarding table reflecting a new bit position assignment is shown in
In the embodiment of method 800, any messages being sent when step 804 is carried out carry message bit arrays reflecting the pre-existing bit assignments. Because the previous bit assignments remain in the forwarding tables after step 804, the messages can still be forwarded over any still-functioning original links. Subsequently, the message bit arrays for any message flows affected by the new bit position assignment are changed to reflect the new assignment. Messages then begin to be forwarded using the new message bit arrays (step 806). The superseded bit position assignments, such as assignments 902 of bit position 5 in
In an embodiment, method 800 includes careful checking to ensure that new bit position assignments do not result in looping or unacceptable amounts of duplication. The sequential process of method 800 and temporary assignment of two bit positions to certain links allows the transition between bit position assignments to proceed gradually and carefully. In an embodiment, message bit arrays of forwarded messages can be changed back to the original form to reflect the previous bit position assignments, if a problem is discovered with the new assignments quickly enough after message traffic reflecting the new assignments begins to flow.
Reset and Acceptance Procedures
As illustrated by the forwarding examples of
Method 1000 of
Method 1000 as shown in
In yet another embodiment, only incoming links are represented in a reset mask created using a method such as method 1000. A reset mask having bits reset only at bit positions corresponding to incoming links is suitable for a reset procedure performed after a message is received at a node and before the message bit array of the received message is compared to entries in the node's BTFT to determine where the message goes next. This type of reset procedure is referred to herein as a “reset-on-receive” procedure. An advantage of the reset-on-receive procedure is that a message arriving at a node still has an MBA bit set in the bit position corresponding to the link that the message arrives over. This allows the receiving node to perform an acceptance check of the message by verifying that the message bit array has a bit set in a bit position corresponding to a proper incoming link to the node. Reference to
Embodiments of a reset mask for use with an example forwarding table are shown in
Because BTFT portion 1020 is the BIER-TE forwarding table for node E in network 100 of
The flowchart of
As noted above, an acceptance check based on set bits in the message bit array at bit positions corresponding to incoming links will not work if a reset-on-send procedure has been performed at the previous node traversed by the incoming message. In the embodiment of
The reset-on-receive process of step 1040 resets bits in the MBA of the received message that are in bit positions corresponding to incoming links in the BTFT at the node. It is important that bits in bit positions corresponding to outgoing links are not reset at this point before the BIER-TE forwarding process has been carried out at the node. The reset-on-receive procedure may be implemented using a reset mask reflecting the bit positions of the incoming links only, similar to the reset mask in entry 1022 of
An alternative method of creating a reset mask is illustrated by the flowchart of
Method 1050 continues with determining whether the BTFT entry being accessed includes instructions not to reset a bit in the bit position associated with the entry (decision step 1054). If the entry includes an instruction not to reset a bit in that bit position, that entry is not used to make the reset mask. The method would in that case move on to an entry for another bit position mapped to a link represented in the BTFT (“Y” branches of decision steps 1054 and 1062; step 1064). If the entry does not include an instruction not to reset, the method continues with determining whether a working bit mask for purposes of the reset mask creation has been established (“N” branch of decision 1054; decision step 1056). If a working bit mask has not been established, the LBA of the current entry is designated as the working bit mask (“N” branch of decision 1056; step 1058). The method then continues to see whether there are more bit positions mapped to links of the desired type represented in the forwarding table (step 1062), and if so, moves to the entry for the next link (step 1064), at which point the method is restarted for the next entry.
If a working bit mask has been established, a bitwise logical OR is performed between the working bit mask and the link bit array of the current BTFT entry, and the result is stored as the new working bit mask (“Y” branch of decision 1056; step 1060). The method then continues to see whether there are more bit positions mapped to links of the desired type represented in the forwarding table (step 1062), and if so, moves to the entry for the next link (step 1064), at which point the method is restarted for the next entry. When all bit positions mapped to links of the desired type have been processed, each bit of the working bit mask is inverted, and the result is stored as the reset mask (“N” branch of decision 1062; step 1066). This method has the effect of “OR”ing together the link bit arrays for each bit position mapped to a link of the desired type (incoming, outgoing, or both) in the BTFT, and then inverting the result. This results in a bit mask having all bits set except for those in bit positions corresponding to the desired type of link, which are reset.
The methods in
An additional application of a bit reset procedure is as an alternative way to “break” a loop in a network portion in which a single bit position is assigned to multiple links connected in series. Considering, for example, the ring structure discussed above in connection with
BIER-TE Forwarding Methods
Flowcharts illustrating examples of BIER-TE forwarding processes described throughout this disclosure are shown in
For the purposes of method 1100, it is assumed that the incoming message is part of a message flow and/or multicast group that is represented in a path table at the ingress node. A message bit array (MBA) is therefore obtained and the message is encapsulated as a BIER-TE message carrying the MBA (step 1106). As discussed further above in connection with, for example, message 304 of
When there is at least one set bit in the MBA of the received message (as should typically be the case), the BTFT at the forwarding node (in the case of method 1100, the BIER-TE ingress node) is checked for an entry mapping the bit position (BP) of the set bit in the MBA to an outgoing link (“Y” branch of decision 1108; step 1110; decision step 1112). In some BTFT embodiments there is an entry for every bit position, but not every entry includes a link mapped to that bit position. In other embodiments, a BTFT has entries only for those bit positions mapped to a link at that node. In either case, the BTFT is checked for an entry mapping the bit position of the currently-considered set bit in the MBA to an outgoing link. For purposes of method 1100, a “local” or “decapsulation” link is considered an outgoing link. If there is no outgoing link mapped in the BTFT to the bit position of the set bit, the method continues to the next set bit in the MBA, if there is one, to repeat the inquiry (“N” branch of decision 1112; “Y” branch of decision step 1140).
If there is an outgoing link in the BTFT mapped to the bit position of the set bit, method 1100 continues with reading of the receiving node for the link from the BTFT entry (“Y” branch of decision 1112; step 1114). This and other steps of method 1100 may be better understood with reference to
Method 1100 continues by determining whether there are multiple ECMP links to the receiving node read in step 1114 (decision step 1116). This is a determination of whether the path for a message includes an ECMP bundle such as that discussed above in connection with
Method 1100 continues with replication of the message for the receiving node of the link (step 1120). If the link is a decapsulation link, the BIER encapsulation is removed and the message is passed to the next protocol layer (“Y” branch of decision step 1122; step 1124). This takes care of forwarding for that link, and the method moves to seeing whether there are more links (receiving nodes) mapped to the same bit position (decision step 1138). If the link is not a decapsulation link, on the other hand, it is determined whether a reset-on-send procedure is to be used (“Y” branch of decision 1122; decision step 1126). In an embodiment, whether a reset procedure is to be used and what type of procedure is used is determined by a BIER-TE controller and communicated to the BIER-TE nodes. This information may be stored in the BTFT at each node or elsewhere at the node in such an embodiment. A reset-on-receive procedure is not considered in method 1100 because the method takes place at a BIER-TE ingress node such that received messages are not yet BIER-TE messages. In the embodiment of
Method 1100 continues by determining whether the receiving node is directly connected to the forwarding node (decision step 1130). In an embodiment, each BIER-TE node is aware of its directly-connected neighboring nodes, whether through operation of an IGP or through another protocol such as a Layer 2 handshaking or announcement protocol. In the embodiment of method 1100, if the receiving node of the link is directly connected, the message is forwarded through the node interface identified in the BTFT entry for the link (“Y” branch of decision 1130; step 1136). Forwarding is then completed for that link, and the method moves to seeing whether there are more links (receiving nodes) mapped to the same bit position (decision step 1138). If the receiving node is not direct-connected, the link is an indirect link such as link AE of network 100 shown in
After forwarding of the message replica, whether by decapsulation and passing to an upper layer protocol, forwarding to a direct-connected BIER-TE node, or encapsulating for routing to an indirectly-connected node, method 1100 continues by determining whether additional receiving nodes are mapped to the bit position (decision step 1138). An example of this situation is a network portion such as the hub-and-spoke configuration of
An additional example of a process carried out at a BIER-TE node is illustrated by the flowchart of
Whether or not a reset-on-receive procedure is performed, the forwarding portion of method 1150 begins with checking a bit value in the message bit array of the received BIER-TE message, where the bit value is at a bit position mapped to an outgoing link in the BTFT of the node (step 1162). Method 1150 employs a different mechanism for comparing the MBA of the BIER-TE message to the BTFT entries than the mechanism of method 1100 of
If the result of the bit value check of step 1162 is that the bit is set, the method continues with reading the receiving node for a link corresponding to the bit position of the set bit from the appropriate BTFT entry (“Y” branch of decision step 1164; step 1166). If the result of the bit value check is that the bit is not set, the message will not be forwarded over a link mapped to the current bit position, and the method checks for any other bit positions mapped to outgoing links in the BTFT at the node (“N” branch of decision 1164; decision step 1192). It is noted that steps 1166 through 1190 of method 1150 of
BIER-TE Network Devices
Forwarding engine 1204 is configured to forward messages using stored forwarding information 1206. For example, forwarding engine 1204 may perform a forwarding process similar to that illustrated in
Certain components of another embodiment of a network device are illustrated by the block diagram of
Still another embodiment of a network device is illustrated by the block diagram of
Bit position assignment module 1242 is configured to assign bit positions to links within a BIER-TE network that are used to form explicit paths or trees for BIER-TE messages. For example, BP assignment module 1242 may perform an assignment process similar to that in method 700 of
Path generation module 1244 of network device 1240 is configured to determine the explicit path or tree for each message flow forwarded through the BIER-TE network or domain, and to represent the path or tree in a message bit array to be carried by messages in the flow. In addition to topology information 1246, path generation module 1244 is configured to use stored message flow information 1248. In the embodiment of
In the embodiment of
In the embodiment of
The processors 1350 and 1360 of each line card 1302 may be mounted on a single printed circuit board. When a packet or packet and header are received, the packet or packet and header may be identified and analyzed by router 1300 in the following manner. Upon receipt, a packet (or some or all of its control information) or packet and header is sent from the one of port processors 1350(1, 1)-(N, N) at which the packet or packet and header was received to one or more of those devices coupled to data bus 1330 (e.g., others of port processors 1350(1, 1)-(N, N), forwarding engine 1310 and/or processor 1320). Handling of the packet or packet and header can be determined, for example, by forwarding engine 1310. For example, forwarding engine 1310 may determine that the packet or packet and header should be forwarded to one or more of port processors 1350(1, 1)-(N, N). This can be accomplished by indicating to corresponding one(s) of port processor controllers 1360(1)-(N) that the copy of the packet or packet and header held in the given one(s) of port processors 1350(1,1)-(N,N) should be forwarded to the appropriate one of port processors 1350(1,1)-(N,N). In addition, or alternatively, once a packet or packet and header has been identified for processing, forwarding engine 1310, processor 1320 or the like can be used to process the packet or packet and header in some manner or add packet security information, in order to secure the packet. On a node sourcing such a packet or packet and header, this processing can include, for example, encryption of some or all of the packet's or packet and header's information, the addition of a digital signature or some other information or processing capable of securing the packet or packet and header. On a node receiving such a processed packet or packet and header, the corresponding process is performed to recover or validate the packet's or packet and header's information that has been thusly protected.
Processor 1414 generally represents any type or form of processing unit capable of processing data or interpreting and executing instructions. In certain embodiments, processor 1414 may receive instructions from a software application or module. These instructions may cause processor 1414 to perform the functions of one or more of the embodiments described and/or illustrated herein. For example, processor 1414 may perform and/or be a means for performing the operations described herein. Processor 1414 may also perform and/or be a means for performing any other operations, methods, or processes described and/or illustrated herein.
System memory 1416 generally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and/or other computer-readable instructions. Examples of system memory 1416 include, without limitation, random access memory (RAM), read only memory (ROM), flash memory, or any other suitable memory device. Although not required, in certain embodiments computing system 1410 may include both a volatile memory unit (such as, for example, system memory 1416) and a non-volatile storage device (such as, for example, primary storage device 1432, as described in detail below). In one example, program instructions executable to implement a forwarding module configured to forward multicast data packets may be loaded into system memory 1416.
In certain embodiments, computing system 1410 may also include one or more components or elements in addition to processor 1414 and system memory 1416. For example, as illustrated in
Memory controller 1418 generally represents any type or form of device capable of handling memory or data or controlling communication between one or more components of computing system 1410. For example, in certain embodiments memory controller 1418 may control communication between processor 1414, system memory 1416, and I/O controller 1420 via communication infrastructure 1412. In certain embodiments, memory controller 1418 may perform and/or be a means for performing, either alone or in combination with other elements, one or more of the operations or features described and/or illustrated herein.
I/O controller 1420 generally represents any type or form of module capable of coordinating and/or controlling the input and output functions of a computing device. For example, in certain embodiments I/O controller 1420 may control or facilitate transfer of data between one or more elements of computing system 1410, such as processor 1414, system memory 1416, communication interface 1422, display adapter 1426, input interface 1430, and storage interface 1434.
Communication interface 1422 broadly represents any type or form of communication device or adapter capable of facilitating communication between computing system 1410 and one or more additional devices. For example, in certain embodiments communication interface 1422 may facilitate communication between computing system 1410 and a private or public network including additional computing systems. Examples of communication interface 1422 include, without limitation, a wired network interface (such as a network interface card), a wireless network interface (such as a wireless network interface card), a modem, and any other suitable interface. In at least one embodiment, communication interface 1422 may provide a direct connection to a remote server via a direct link to a network, such as the Internet. Communication interface 1422 may also indirectly provide such a connection through, for example, a local area network (such as an Ethernet network), a personal area network, a telephone or cable network, a cellular telephone connection, a satellite data connection, or any other suitable connection.
In certain embodiments, communication interface 1422 may also represent a host adapter configured to facilitate communication between computing system 1410 and one or more additional network or storage devices via an external bus or communications channel. Examples of host adapters include, without limitation, Small Computer System Interface (SCSI) host adapters, Universal Serial Bus (USB) host adapters, Institute of Electrical and Electronics Engineers (IEEE) 11054 host adapters, Serial Advanced Technology Attachment (SATA) and external SATA (eSATA) host adapters, Advanced Technology Attachment (ATA) and Parallel ATA (PATA) host adapters, Fibre Channel interface adapters, Ethernet adapters, or the like.
Communication interface 1422 may also allow computing system 1410 to engage in distributed or remote computing. For example, communication interface 1422 may receive instructions from a remote device or send instructions to a remote device for execution.
As illustrated in
As illustrated in
As illustrated in
In certain embodiments, storage devices 1432 and 1433 may be configured to read from and/or write to a removable storage unit configured to store computer software, data, or other computer-readable information. Examples of suitable removable storage units include, without limitation, a floppy disk, a magnetic tape, an optical disk, a flash memory device, or the like. Storage devices 1432 and 1433 may also include other similar structures or devices for allowing computer software, data, or other computer-readable instructions to be loaded into computing system 1410. For example, storage devices 1432 and 1433 may be configured to read and write software, data, or other computer-readable information. Storage devices 1432 and 1433 may also be a part of computing system 1410 or may be a separate device accessed through other interface systems.
Many other devices or subsystems may be connected to computing system 1410. Conversely, all of the components and devices illustrated in
Computing system 1410 may also employ any number of software, firmware, and/or hardware configurations. For example, one or more of the embodiments disclosed herein may be encoded as a computer program (also referred to as computer software, software applications, computer-readable instructions, or computer control logic) on a computer-readable storage medium. Examples of computer-readable storage media include magnetic-storage media (e.g., hard disk drives and floppy disks), optical-storage media (e.g., CD- or DVD-ROMs), electronic-storage media (e.g., solid-state drives and flash media), and the like. Such computer programs can also be transferred to computing system 1410 for storage in memory via a network such as the Internet or upon a carrier medium.
The computer-readable medium containing the computer program may be loaded into computing system 1410. All or a portion of the computer program stored on the computer-readable medium may then be stored in system memory 1416 and/or various portions of storage devices 1432 and 1433. When executed by processor 1414, a computer program loaded into computing system 1410 may cause processor 1414 to perform and/or be a means for performing the functions of one or more of the embodiments described and/or illustrated herein. Additionally or alternatively, one or more of the embodiments described and/or illustrated herein may be implemented in firmware and/or hardware. For example, computing system 1410 may be configured as an application specific integrated circuit (ASIC) adapted to implement one or more of the embodiments disclosed herein.
Although the present disclosure includes several embodiments, the disclosure is not intended to be limited to the specific forms set forth herein. On the contrary, it is intended to cover such alternatives, modifications, and equivalents as can be reasonably included within the scope defined by the appended claims.
This application claims the domestic benefit under Title 35, Section 119(e) of the United States Code of U.S. Provisional Patent Application No. 62/121,291, entitled “Traffic Engineering for Bit Indexed Explicit Replication,” filed Feb. 26, 2015, which application is hereby incorporated by reference in its entirety and for all purposes as if completely and fully set forth herein.
Number | Name | Date | Kind |
---|---|---|---|
5088091 | Schroeder | Feb 1992 | A |
5138615 | Lamport | Aug 1992 | A |
5764624 | Endo | Jun 1998 | A |
5999531 | Ferolito | Dec 1999 | A |
6032197 | Birtwell | Feb 2000 | A |
6130881 | Stiller | Oct 2000 | A |
6147976 | Shand | Nov 2000 | A |
6148000 | Feldman | Nov 2000 | A |
6240188 | Dondeti | May 2001 | B1 |
6374303 | Armitage et al. | Apr 2002 | B1 |
6577600 | Bare | Apr 2003 | B1 |
6615336 | Chen | Sep 2003 | B1 |
6647428 | Bannai et al. | Nov 2003 | B1 |
6771673 | Baum | Aug 2004 | B1 |
6778532 | Akahane | Aug 2004 | B1 |
6873627 | Miller | Mar 2005 | B1 |
6963570 | Agarwal | Nov 2005 | B1 |
7023846 | Andersson et al. | Apr 2006 | B1 |
7031253 | Katukam et al. | Apr 2006 | B1 |
7031607 | Aswood Smith | Apr 2006 | B1 |
7061921 | Sheth | Jun 2006 | B1 |
7068654 | Joseph et al. | Jun 2006 | B1 |
7072346 | Hama | Jul 2006 | B2 |
7088721 | Droz et al. | Aug 2006 | B1 |
7111101 | Bourke | Sep 2006 | B1 |
7154416 | Savage | Dec 2006 | B1 |
7174387 | Shand et al. | Feb 2007 | B1 |
7180887 | Schwaderer | Feb 2007 | B1 |
7260097 | Casey | Aug 2007 | B2 |
7281085 | Garg | Oct 2007 | B1 |
7286479 | Bragg | Oct 2007 | B2 |
7330440 | Bryant | Feb 2008 | B1 |
7359377 | Kompella et al. | Apr 2008 | B1 |
7373401 | Azad | May 2008 | B1 |
7420992 | Fang | Sep 2008 | B1 |
7430210 | Havala et al. | Sep 2008 | B2 |
7462639 | Rekhter | Dec 2008 | B2 |
7463639 | Rekhter | Dec 2008 | B1 |
7466661 | Previdi et al. | Dec 2008 | B1 |
7471669 | Sabesan | Dec 2008 | B1 |
7519733 | Thubert | Apr 2009 | B1 |
7551599 | Levit | Jun 2009 | B2 |
7564803 | Minei et al. | Jul 2009 | B1 |
7577143 | Kompella | Aug 2009 | B1 |
7602778 | Guichard et al. | Oct 2009 | B2 |
7610330 | Quinn | Oct 2009 | B1 |
7773630 | Huang et al. | Aug 2010 | B2 |
7817667 | Frederiksen et al. | Oct 2010 | B2 |
7885259 | Filsfils | Feb 2011 | B2 |
7885294 | Patel | Feb 2011 | B2 |
7894352 | Kompella et al. | Feb 2011 | B2 |
7894458 | Jiang | Feb 2011 | B2 |
7925778 | Wijnands | Apr 2011 | B1 |
7940695 | Bahadur | May 2011 | B1 |
7983174 | Monaghan | Jul 2011 | B1 |
8064441 | Wijnands et al. | Nov 2011 | B2 |
8320374 | de Heer | Nov 2012 | B2 |
8325726 | Baban et al. | Dec 2012 | B2 |
8339973 | Pichumani | Dec 2012 | B1 |
8422514 | Kothari et al. | Apr 2013 | B1 |
8542706 | Wang et al. | Sep 2013 | B2 |
8611335 | Wu | Dec 2013 | B1 |
8619817 | Everson | Dec 2013 | B1 |
8630167 | Ashwood Smith | Jan 2014 | B2 |
8670146 | Van Couvering | Mar 2014 | B1 |
8711883 | Kang | Apr 2014 | B2 |
8774179 | Gaggara | Jul 2014 | B1 |
8787400 | Barth | Jul 2014 | B1 |
8792384 | Banerjee et al. | Jul 2014 | B2 |
8830826 | Chen | Sep 2014 | B2 |
8848728 | Revah | Sep 2014 | B1 |
8880869 | Shah | Nov 2014 | B1 |
8890903 | Russell | Nov 2014 | B2 |
8923292 | Friskney | Dec 2014 | B2 |
8942256 | Barth | Jan 2015 | B1 |
8953590 | Aggarwal | Feb 2015 | B1 |
9036474 | Dibirdi et al. | May 2015 | B2 |
9049233 | Frost et al. | Jun 2015 | B2 |
9065766 | Matsuoka | Jun 2015 | B2 |
9094337 | Bragg | Jul 2015 | B2 |
9112734 | Edwards et al. | Aug 2015 | B2 |
9118572 | Sajassi | Aug 2015 | B2 |
9455918 | Revah | Sep 2016 | B1 |
9571349 | Previdi et al. | Feb 2017 | B2 |
9660897 | Gredler | May 2017 | B1 |
9749227 | Frost et al. | Aug 2017 | B2 |
20010037401 | Soumlya | Nov 2001 | A1 |
20010055311 | Trachewsky | Dec 2001 | A1 |
20020103732 | Bundy et al. | Aug 2002 | A1 |
20020126661 | Ngai | Sep 2002 | A1 |
20020191628 | Liu | Dec 2002 | A1 |
20030016678 | Maeno | Jan 2003 | A1 |
20030026271 | Erb et al. | Feb 2003 | A1 |
20030043802 | Yazaki | Mar 2003 | A1 |
20030048779 | Doherty | Mar 2003 | A1 |
20030088696 | McCanne | May 2003 | A1 |
20030126272 | Corl et al. | Jul 2003 | A1 |
20030133412 | Iyer | Jul 2003 | A1 |
20030142674 | Casey | Jul 2003 | A1 |
20030142685 | Bare | Jul 2003 | A1 |
20030210695 | Henrion | Nov 2003 | A1 |
20030231634 | Henderson | Dec 2003 | A1 |
20040160958 | Oh | Aug 2004 | A1 |
20040174879 | Basso et al. | Sep 2004 | A1 |
20040190527 | Okura | Sep 2004 | A1 |
20040196840 | Amrutur et al. | Oct 2004 | A1 |
20040202158 | Takeno | Oct 2004 | A1 |
20040240442 | Grimminger | Dec 2004 | A1 |
20040264374 | Yu | Dec 2004 | A1 |
20050073958 | Atlas | Apr 2005 | A1 |
20050105515 | Reed | May 2005 | A1 |
20050157724 | Montuno | Jul 2005 | A1 |
20050169270 | Mutou | Aug 2005 | A1 |
20050181807 | Dowling | Aug 2005 | A1 |
20050213513 | Ngo | Sep 2005 | A1 |
20050232272 | Deng | Oct 2005 | A1 |
20050259655 | Cuervo et al. | Nov 2005 | A1 |
20060002304 | Ashwood-Smith | Jan 2006 | A1 |
20060013209 | Somasundaram | Jan 2006 | A1 |
20060056397 | Aizu | Mar 2006 | A1 |
20060075134 | Aalto | Apr 2006 | A1 |
20060080421 | Hu | Apr 2006 | A1 |
20060092940 | Ansari | May 2006 | A1 |
20060126272 | Horio et al. | Jun 2006 | A1 |
20060133298 | Ng | Jun 2006 | A1 |
20060146696 | Li | Jul 2006 | A1 |
20060182035 | Vasseur | Aug 2006 | A1 |
20060187817 | Charzinski | Aug 2006 | A1 |
20060262735 | Guichard | Nov 2006 | A1 |
20060274716 | Oswal et al. | Dec 2006 | A1 |
20060280192 | Desanti | Dec 2006 | A1 |
20060291444 | Alvarez | Dec 2006 | A1 |
20070019647 | Roy et al. | Jan 2007 | A1 |
20070053342 | Sierecki | Mar 2007 | A1 |
20070058638 | Guichard et al. | Mar 2007 | A1 |
20070127474 | Mirtorabi et al. | Jun 2007 | A1 |
20070189291 | Tian | Aug 2007 | A1 |
20070245034 | Retana | Oct 2007 | A1 |
20080002699 | Rajsic | Jan 2008 | A1 |
20080037117 | Seki et al. | Feb 2008 | A1 |
20080049610 | Linwong | Feb 2008 | A1 |
20080069125 | Reed | Mar 2008 | A1 |
20080075016 | Ashwood-Smith | Mar 2008 | A1 |
20080084881 | Dharwadkar et al. | Apr 2008 | A1 |
20080101239 | Good | May 2008 | A1 |
20081010227 | Fujita et al. | May 2008 | |
20080159285 | De Heer | Jul 2008 | A1 |
20080165783 | Desanti | Jul 2008 | A1 |
20080172497 | Mohan et al. | Jul 2008 | A1 |
20080189393 | Wagner | Aug 2008 | A1 |
20080192762 | Kompella et al. | Aug 2008 | A1 |
20080194240 | Dowling | Aug 2008 | A1 |
20080212465 | Yan | Sep 2008 | A1 |
20080225864 | Aissaoui et al. | Sep 2008 | A1 |
20080240105 | Abdallah | Oct 2008 | A1 |
20080253367 | Ould-Brahim | Oct 2008 | A1 |
20080255986 | Scarborough | Oct 2008 | A1 |
20080259820 | White et al. | Oct 2008 | A1 |
20080316916 | Tazzari | Dec 2008 | A1 |
20090041038 | Martini et al. | Feb 2009 | A1 |
20090049194 | Csaszar | Feb 2009 | A1 |
20090067348 | Vasseur | Mar 2009 | A1 |
20090067445 | Diguet | Mar 2009 | A1 |
20090080431 | Rekhter | Mar 2009 | A1 |
20090135815 | Pacella | May 2009 | A1 |
20090185549 | Shon | Jul 2009 | A1 |
20090196289 | Shankar | Aug 2009 | A1 |
20090213735 | Check | Aug 2009 | A1 |
20090219817 | Carley | Sep 2009 | A1 |
20090225650 | Vasseur | Sep 2009 | A1 |
20090247157 | Yoon | Oct 2009 | A1 |
20090296710 | Agrawal | Dec 2009 | A1 |
20090310610 | Sandstrom | Dec 2009 | A1 |
20100046400 | Wu | Feb 2010 | A1 |
20100046515 | Wong | Feb 2010 | A1 |
20100063983 | Groarke et al. | Mar 2010 | A1 |
20100088717 | Candelore et al. | Apr 2010 | A1 |
20100124231 | Kompella | May 2010 | A1 |
20100142548 | Sheth | Jun 2010 | A1 |
20100191911 | Heddes | Jul 2010 | A1 |
20100220739 | Ishiguro | Sep 2010 | A1 |
20100232435 | Jabr et al. | Sep 2010 | A1 |
20100272110 | Allan et al. | Oct 2010 | A1 |
20100284309 | Allan et al. | Nov 2010 | A1 |
20110060844 | Allan et al. | Mar 2011 | A1 |
20110063986 | Denechaeu | Mar 2011 | A1 |
20110090913 | Kim | Apr 2011 | A1 |
20110149973 | Esteve Rothenberg | Jun 2011 | A1 |
20110202761 | Sarela et al. | Aug 2011 | A1 |
20110228770 | Dholakia | Sep 2011 | A1 |
20110228780 | Ashwood-Smith | Sep 2011 | A1 |
20110261722 | Awano | Oct 2011 | A1 |
20110268114 | Wijnands et al. | Nov 2011 | A1 |
20110274112 | Czaszar | Nov 2011 | A1 |
20110280123 | Wijnands et al. | Nov 2011 | A1 |
20110286452 | Balus | Nov 2011 | A1 |
20110299531 | Yu | Dec 2011 | A1 |
20120044944 | Kotha et al. | Feb 2012 | A1 |
20120063526 | Xiao | Mar 2012 | A1 |
20120069740 | Lu et al. | Mar 2012 | A1 |
20120069845 | Carney et al. | Mar 2012 | A1 |
20120075988 | Lu | Mar 2012 | A1 |
20120082034 | Vasseur | Apr 2012 | A1 |
20120099591 | Kotha | Apr 2012 | A1 |
20120099861 | Zheng | Apr 2012 | A1 |
20120106560 | Gumaste | May 2012 | A1 |
20120120808 | Nandagopal et al. | May 2012 | A1 |
20120170461 | Long | Jul 2012 | A1 |
20120179796 | Nagaraj | Jul 2012 | A1 |
20120213225 | Subramanian et al. | Aug 2012 | A1 |
20120218884 | Kini | Aug 2012 | A1 |
20120236857 | Manzella | Sep 2012 | A1 |
20120236860 | Kompella et al. | Sep 2012 | A1 |
20120243539 | Keesara | Sep 2012 | A1 |
20120287818 | Corti et al. | Nov 2012 | A1 |
20120307629 | Vasseur | Dec 2012 | A1 |
20130003728 | Kwong et al. | Jan 2013 | A1 |
20130034097 | Dharmapurikar | Feb 2013 | A1 |
20130051237 | Ong | Feb 2013 | A1 |
20130051376 | Hatashita | Feb 2013 | A1 |
20130077476 | Enyedi | Mar 2013 | A1 |
20130077624 | Keesara et al. | Mar 2013 | A1 |
20130077625 | Khera | Mar 2013 | A1 |
20130077626 | Keesara et al. | Mar 2013 | A1 |
20130114402 | Ould-Brahim | May 2013 | A1 |
20130114595 | Mack-Crane | May 2013 | A1 |
20130114619 | Wakumoto | May 2013 | A1 |
20130136117 | Schrum, Jr. | May 2013 | A1 |
20130136123 | Ge | May 2013 | A1 |
20130142052 | Burbidge | Jun 2013 | A1 |
20130170450 | Anchan | Jul 2013 | A1 |
20130188634 | Magee | Jul 2013 | A1 |
20130195001 | Liu | Aug 2013 | A1 |
20130201988 | Zhou | Aug 2013 | A1 |
20130219034 | Wang | Aug 2013 | A1 |
20130258842 | Mizutani | Oct 2013 | A1 |
20130266012 | Dutta et al. | Oct 2013 | A1 |
20130266013 | Dutta et al. | Oct 2013 | A1 |
20130308948 | Swinkels | Nov 2013 | A1 |
20130329728 | Ramesh | Dec 2013 | A1 |
20130336315 | Guichard | Dec 2013 | A1 |
20130343204 | Geib et al. | Dec 2013 | A1 |
20130343384 | Shepherd | Dec 2013 | A1 |
20140010223 | Wang | Jan 2014 | A1 |
20140043964 | Gabriel | Feb 2014 | A1 |
20140098813 | Mishra | Apr 2014 | A1 |
20140119191 | Onoue | May 2014 | A1 |
20140126575 | Janneteau | May 2014 | A1 |
20140160925 | Xu | Jun 2014 | A1 |
20140169370 | Filsfils et al. | Jun 2014 | A1 |
20140177638 | Bragg et al. | Jun 2014 | A1 |
20140189156 | Morris | Jul 2014 | A1 |
20140189174 | Ajanovic | Jul 2014 | A1 |
20140192677 | Chew | Jul 2014 | A1 |
20140254596 | Filsfils et al. | Sep 2014 | A1 |
20140269266 | Filsfils et al. | Sep 2014 | A1 |
20140269421 | Previdi et al. | Sep 2014 | A1 |
20140269422 | Filsfils et al. | Sep 2014 | A1 |
20140269698 | Filsfils et al. | Sep 2014 | A1 |
20140269699 | Filsfils et al. | Sep 2014 | A1 |
20140269721 | Bashandy et al. | Sep 2014 | A1 |
20140269725 | Filsfils et al. | Sep 2014 | A1 |
20140269727 | Filsfils et al. | Sep 2014 | A1 |
20140286195 | Fedyk | Sep 2014 | A1 |
20140317259 | Previdi et al. | Oct 2014 | A1 |
20140341222 | Filsfils et al. | Nov 2014 | A1 |
20140362846 | Li | Dec 2014 | A1 |
20140369356 | Bryant | Dec 2014 | A1 |
20150003458 | Li | Jan 2015 | A1 |
20150006823 | Ganga | Jan 2015 | A1 |
20150016469 | Ganichev | Jan 2015 | A1 |
20150023328 | Thubert et al. | Jan 2015 | A1 |
20150030020 | Kini | Jan 2015 | A1 |
20150049760 | Xu | Feb 2015 | A1 |
20150078377 | Wijnands et al. | Mar 2015 | A1 |
20150078378 | Wijnands et al. | Mar 2015 | A1 |
20150078379 | Wijnands et al. | Mar 2015 | A1 |
20150078380 | Wijnands et al. | Mar 2015 | A1 |
20150081941 | Brown | Mar 2015 | A1 |
20150085635 | Wijnands et al. | Mar 2015 | A1 |
20150092546 | Baratam | Apr 2015 | A1 |
20150109902 | Kumar | Apr 2015 | A1 |
20150131658 | Wijnands et al. | May 2015 | A1 |
20150131659 | Wijnands et al. | May 2015 | A1 |
20150131660 | Shepherd et al. | May 2015 | A1 |
20150138961 | Wijnands et al. | May 2015 | A1 |
20150139228 | Wijnands et al. | May 2015 | A1 |
20150181309 | Wijnands et al. | Jun 2015 | A1 |
20150249587 | Kozat | Sep 2015 | A1 |
20150263940 | Kini | Sep 2015 | A1 |
20150326675 | Kini | Nov 2015 | A1 |
20150334006 | Shao | Nov 2015 | A1 |
20160006614 | Zhao | Jan 2016 | A1 |
20160034209 | Nanduri | Feb 2016 | A1 |
20160034370 | Nanduri | Feb 2016 | A1 |
20160119159 | Zhao | Apr 2016 | A1 |
20160127142 | Tian | May 2016 | A1 |
20160142248 | Thubert et al. | May 2016 | A1 |
20160173366 | Saad | Jun 2016 | A1 |
20160182353 | Garcia-Luna-Aceves | Jun 2016 | A1 |
20160191372 | Zhang | Jun 2016 | A1 |
20160205588 | Liu | Jul 2016 | A1 |
20160218961 | Lindem | Jul 2016 | A1 |
20160226725 | Iizuka | Aug 2016 | A1 |
20160352654 | Filsfils et al. | Aug 2016 | A1 |
20160344616 | Roch | Nov 2016 | A1 |
20170019330 | Filsfils et al. | Jan 2017 | A1 |
20170099232 | Shepherd | Apr 2017 | A1 |
20170104673 | Bashandy et al. | Apr 2017 | A1 |
20170111277 | Previdi et al. | Apr 2017 | A1 |
20170126416 | McCormick | May 2017 | A1 |
20170142006 | Wijnands et al. | May 2017 | A1 |
20170346718 | Psenak et al. | Nov 2017 | A1 |
20170346737 | Previdi et al. | Nov 2017 | A1 |
20170366453 | Previdi et al. | Dec 2017 | A1 |
20180083871 | Filsfils | Mar 2018 | A1 |
20180102965 | Hari | Apr 2018 | A1 |
20180205636 | Hu | Jul 2018 | A1 |
20180278470 | Wijnands et al. | Sep 2018 | A1 |
20180309664 | Balasubramanian | Oct 2018 | A1 |
Number | Date | Country |
---|---|---|
1725 679 | Jan 2006 | CN |
1754 353 | Mar 2006 | CN |
1792 065 | Jun 2006 | CN |
101247 253 | Aug 2008 | CN |
101242413 | Aug 2008 | CN |
101385 275 | Mar 2009 | CN |
101399 688 | Apr 2009 | CN |
101496 357 | Jul 2009 | CN |
101572667 | Nov 2009 | CN |
101616 466 | Dec 2009 | CN |
101689 172 | Mar 2010 | CN |
101803 293 | Aug 2010 | CN |
101841 442 | Sep 2010 | CN |
101931 548 | Dec 2010 | CN |
102025538 | Apr 2011 | CN |
102098 222 | Jun 2011 | CN |
102132533 | Jul 2011 | CN |
102299852 | Dec 2011 | CN |
10249869 | Jun 2012 | CN |
102577 238 | Jul 2012 | CN |
102714625 | Oct 2012 | CN |
WO 2007095331 | Aug 2007 | WO |
Entry |
---|
Aggarwal, R., et al., “BGP Encodings and Procedures for Multicast in MPLS/BGP IP VPNs,” Internet Engineering Task Force (IETF), Request for Comments 6514, Feb. 2012, pp. 1-59. |
Aguilar, L., “Datagram Routing for Internet Multicasting,” SRI International, Menlo Park, California, ACM SIGCOMM Computer Communication Review Newsletter, vol. 14, Issue 2, Jun. 1984, pp. 58-63. |
Artel Video Systems, White Paper; “The Broadcaster's Guide to SMPTE 2022: Applications in Video Contribution and Distribution,” Oct. 2014, pp. 1-7. |
Bates, T. et al.;“Multiprotocol Extensions for BGP-4,” Network Working Group, Request for Comments 4760, Jan. 2007, pp. 1-12. |
Boivie, Rick, and N. Feldman, IBM Watson Research Center; “Small Group Multicast,” draft-boivie-sgm-02.txt, Internet-Draft, Feb. 2001, pp. 1-17. |
Boivie, Rick, et al., “Explicit Multicast (Xcast) Concepts and Options, draft-ooms-xcast-basic-spec-13.txt,” Internet-Draft, Jul. 2007, pp. 1-34. |
Cisco Systems, Inc., “Multi-Topology Routing,” Feb. 2007, pp. 1-72. |
Cisco Systems, Inc., White Paper, “Diffserv—The Scalable End-to-End Quality of Service Model,” Aug. 2005, pp. 1-18. |
Deering, S., Cisco Systems, Inc. and R. Hinden, Nokia;“Internet Protocol, Version 6 (IPv6),” Network Working Group, Request for Comments 2460, Dec. 1998, pp. 1-39. |
Eckert, T., “Traffic Engineering for Bit Index Explicit Replication BIER-TE, draft-eckert-bier-te-arch-00,” Network Working Group, Internet—Draft, Mar. 5, 2015, pp. 1-21. |
Eckert, T., et al., “Traffic Engineering for Bit Index Explicit Replication BIER-TE, draft-eckert-bier-te-arch-01,” Network Working Group, Internet—Draft, Jul. 5, 2015, pp. 1-23. |
Gharai, L. et al., “RTP Payload Format for Society of Motion Picture and Television Engineers (SMPTE) 292M Video,” Network Working Group, Request for Comments 3497, Mar. 2003, pp. 1-12. |
Hinden, R., Nokia and S. Deering, Cisco Systems, Inc., “IP Version 6 Addressing Architecture,” Network Working Group, Request for Comments 4291, Feb. 2006, pp. 1-25. |
Kompella, K. et al., “The Use of Entropy Labels in MPLS Forwarding,” Internet Engineering Task Force (IETF), Request for Comments 6790, Nov. 2012, pp. 1-25. |
Kumar, N. et al., Cisco Systems, Inc., “OSPF Extension for Bit Index Explicit Replication, draft-kumar-ospf-bier-extension-00,” Internet-Draft, May 19, 2014, pp. 1-7. |
Kumar, N., et al., “BIER Use Cases, draft-kumar-bier-use-cases-00,” Network Working Group, Internet—Draft, Oct. 25, 2014, pp. 1-7. |
Laabs, Matthias, “SDI over IP—Seamless Signal Switching in SMPTE 2022-6 and a Novel Multicast Routing Concept,” EBU Technical Review, 2012 Q4, pp. 1-7. |
Przygienda, T. et al., “M-ISIS: Topology (MT) Routing in Intermediate System to Intermediate Systems (IS-ISs),” Network Working Group, Request for Comments 5120, Feb. 2008, pp. 1-14. |
Psenak, P. et al., “Multi-Topology (MT) Routing in OSPF,” Network Working Group, Request for Comments 4915, Jun. 2007, pp. 1-20. |
Psenak, P. et al., Cisco Systems; “OSPF Extensions for BIER, draft-psenak-ospf-bier-extensions-00,” OSPF, Internet-Draft, Sep. 27, 2014, pp. 1-6. |
Psenak, P. et al., Cisco Systems; “OSPF Extensions for BIER, draft-psenak-ospf-bier-extensions-01,” OSPF, Internet-Draft, Oct. 24, 2014, pp. 1-8. |
Rekhter, Ed. Y. et al., “A Border Gateway Protocol 4 (BGP-4),” Network Working Group, Request for Comments 4271, Jan. 2006, pp. 1-104. |
Rosen, Ed. E. et al., “Multicast VPN Using BIER, draft-rosen-I3vpn-mvpn-bier-01,” Internet Engineering Task Force, Internet—Draft, Oct. 16, 2014, pp. 1-9. |
Schulzrinne, H. et al., “RTP: A Transport Protocol for Real-Time Applications,” Network Working Group, Request for Comments 3550, Jul. 2003, pp. 1-89. |
SMPTE, “Beyond the Digital Conversion, the Integration of Information Technology and Professional Media, The Convergence of 2 Industries—The Adoption of Information Technology by the Professional Media Industry; Report of the SMPTE Study Group on Media Production System Network Architecture,” Mar. 31, 2014, © 2014 by the Society of Motion Picture and Television Engineers, Inc. (SMPTE), pp. 1-65. |
SMPTE, “Transport of High Bit Rate Media Signals Over IP Networks (HBRMT),” ST 2022-6:2012, © 2015 by the Society of Motion Picture and Television Engineers, Inc. (SMPTE), p. 1. |
SMPTE, “Definition of Vertical Interval Switching Point for Synchronous Video Switching,” RP 168:2009, © 2015 by the Society of Motion Picture and Television Engineers, Inc. (SMPTE), p. 1. |
Whitcomb, Leigh, “Real-Time Professional Broadcast Signals Over IP Networks,” Harris Corporation, Technology Conference, Apr. 2011, pp. 1-60. |
Wijnands, Ijsbrand, et al., Cisco Systems, Inc.; “Multipoint Label Distribution Protocol in-Band Signaling in a VPN Context, draft-wijnands-mpls-mldp-vpn-in-band-signaling-00,” Internet-Draft, Oct. 7, 2011, pp. 1-13. |
Wijnands, Ijsbrand, Cisco Systems, Inc., “Bit Index Explicit Replication using MPLS Encapsulation, draft-wijnands-mpls-bmf-encapsulation-00,” Internet-Draft, Feb. 2014, pp. 1-9. |
Wijnands, Ijsbrand, et al., “Multicast Using Bit Index Explicit Replication, draft-wijnands-bier-architecture-01,” Internet Engineering Task Force, Internet—Draft, Oct. 16, 2014, pp. 1-24. |
Wijnands, Ijsbrand, et al., “Multicast Using Bit Index Explicit Replication, draft-wijnands-bier-architecture-02,” Internet Engineering Task Force, Internet—Draft, Dec. 4, 2014, pp. 1-27. |
Xu, X. et al., “BIER Encapsulation, draft-xu-bier-encapsulation-00,” Network Working Group, Internet-Draft, Sep. 30, 2014, pp. 1-6. |
Xu, X. et al., “BIER Encapsulation, draft-xu-bier-encapsulation-01,” Network Working Group, Internet-Draft, Oct. 20, 2014, pp. 1-6. |
Yongliang Li, et al., Abstract Translation of CN-201010573400-A and CN 102025538, Database EPODOC [Online], European Patent Office, dated Apr. 20, 2011, pp. 1-2 [XP 002740355 on Extended EP SR]. |
Eckert, Toerless et al., “Traffic Engineering for Bit Indexed Explicit Replication”, U.S. Appl. No. 14/862,915, filed Sep. 23, 2015; consisting of Specification, Claims, and Abstract (75 pages); and Drawings (18 sheets). |
Francois, Pierre Jean Rene; “Loop Avoidance During Network Convergence in Switched Networks”; U.S. Appl. No. 14/319,353, filed Jun. 30, 2014; consisting of Specification, Claims and Abstract (29 pages); and Drawings (6 sheets). |
Previdi, Stefano B.; “Segment Routing Using a Remote Forwarding Adjacency Identifier”; U.S. Appl. No. 14/334,300, filed Jul. 17, 2014; consisting of Specification, Claims and Abstract (23 pages); and Drawings (8 sheets). |
Previdi, Stefano B; “Segment Routing Extension Headers”; U.S. Appl. No. 14/212,084, filed Mar. 14, 2014; consisting of Specification, Claims and Abstract (43 pages); and Drawings (17 sheets). |
Aggarwal, R., et al., Juniper Networks; E. Rosen, Cisco Systems, Inc.; “MPLS Upstream Label Assignment and Context Specific Label Space;” Network Working Group; Internet Draft; Jan. 2005; pp. 1-8. |
Awduche, Daniel O., et al., “RSVP-TE: Extensions to RSVP for LSP Tunnels,” Network Working Group, Internet-Draft, Aug. 2000, pp. 1-12. |
Awduche, Daniel O., et al., “RSVP-TE: Extensions to RSVP for LSP Tunnels,” Network Working Group, Request for Comments 3209, Dec. 2001, pp. 1-61. |
Backes, P. and Rudiger Geib, “Deutsche Telekom AG's Statement About IPR Related to Draft-Geig-Spring-OAM-Usecase-01,” Feb. 5, 2014, pp. 1-2. |
Bryant, S. et al., Cisco Systems, “IP Fast Reroute Using Tunnels-draft-bryant-ipfrr-tunnels-03”, Network Working Group, Internet-Draft, Nov. 16, 2007, pp. 1-30. |
Bryant, S., et al., Cisco Systems, “Remote LFA FRR,” draft-ietf-rtgwg-remote-lfa-04, Network Working Group, Internet-Draft, Nov. 22, 2013, pp. 1-24. |
CISCO Systems, Inc., “Introduction to Intermediate System-to-Intermediate System Protocol,” published 1992-2002; pp. 1-25. |
Crabbe, E., et al., “PCEP Extensions for MPLS-TE LSP Protection With Stateful PCE Draft-Crabbe-PCE-Stateful-PCT-Protection-00,” Network Working Group, Internet—Draft, Apr. 2013, pp. 1-12. |
Crabbe, E., et al., Stateful PCE Extensions for MPLS-TE LSPs, draft-crabbe-pce-statement-pce-mpls-te-00; Network Working Group, Internet—Draft, Apr. 15, 2013, pp. 1-15. |
Deering, S., et al., Cisco, Internet Protocol, Version 6 (IPv6) Specification, Network Working Group, Request for Comments 2460, Dec. 1998, pp. 1-39. |
Farrel, A., et al., Old Dog Consulting, A Path Computation Element (PCE)—Based Architecture, Network Working Group, Request for Comments 4655, Aug. 2006, pp. 1-80. |
Farrel, A., et al., Old Dog Consulting, Inter-Domain MPLS and GMPLS Traffic Engineering—Resource Reservation Protocol—Traffic Enginerring (RSVP-TE) Extensions, Network Working Group, Request for Comments 5151, Feb. 2008, pp. 1-25. |
Fedyk, D., et al., Alcatel-Lucent, Generalized Multiprotocol Label Switching (GMPLS) Control Ethernet Provider Backbone Traffic Engineering (PBB-TE), Internet Engineering Task Force (IETF), Request for Comments 6060, Mar. 2011, pp. 1-20. |
Filsfils, C., et al., Cisco Systems, Inc., “Segment Routing Architecture,” draft-filsfils-rtgwg-segment-routing-00, Jun. 28, 2013, pp. 1-28. |
Filsfils, C., et al., Cisco Sytems, Inc., “Segment Routing Architecture,” draft-filsfils-rtgwg-segment-routing-01, Network Working Group, Internet-Draft, Oct. 21, 2013, pp. 1-28. |
Filsfils, C. et al., Cisco Systems, Inc., “Segment Routing Interoperability with LDP”, draft-filsfils-spring-segment-routing-ldp-interop-01.txt; Apr. 18, 2014, pp. 1-16. |
Frost, D., et al., Cisco Systems, Inc., “MPLS Generic Associated Channel (G-Ach) Advertisement Protocol,” draft-ietf-mpls-gach-adv-00, Internet-Draft, Jan. 27, 2012, pp. 1-17. |
Frost, D., et al., Cisco Systems, Inc., “MPLS Generic Associated Channel (G-Ach) Advertisement Protocol,” draft-ietf-mpls-gach-adv-08, Internet-Draft, Jun. 7, 2013, pp. 1-22. |
Frost, D., et al., Cisco Systems, Inc., “MPLS Generic Associated Channel (G-Ach) Advertisement Protocol,” Request for Comments 7212, Jun. 2014, pp. 1-23. |
Geib, R., “Segment Routing Based OAM Use Case,”IETF 87, Berlin, Jul./Aug. 2013, pp. 1-3. |
Geib, R., Deutsch Telekom, “Use Case for a Scalable and Topology Aware MPLS data plan moniotoring System,” draft-geib-spring-oam-usecase-00; Internet-Draft, Oct. 17, 2013, pp. 1-11. |
Geib, R., Deutsch Telekom, “Use Case for a Scalable and Topology Aware MPLS Data Plan Monitoring System,” draft-geib-spring-oam-usecase-01; Internet-Draft, Feb. 5, 2014, pp. 1-10. |
Gredler, H., et al., Juniper Networks, Inc., “Advertising MPLS Labels in IS-IS draft-gredler-isis-label-advertisement-00,” Internet-Draft; Apr. 5, 2013; pp. 1-13. |
Gredler, H. et al., hannes@juniper.net, IETF87, Berlin, “Advertising MPLS LSPs in the IGP,” draft-gredler-ospf-label-advertisement, May 21, 2013; pp. 1-14. |
Guilbaud, Nicolas and Ross Cartlidge, “Google˜Localizing Packet Loss in a Large Complex Network,” Feb. 5, 2013, pp. 1-43. |
Imaizumi, H., et al.; Networks, 2005; “FMEHR: An Alternative Approach to Multi-Path Forwarding on Packed Switched Networks,” pp. 198-201. |
Kompella, K. et al, Juniper Networks, “Label Switched Paths (LSP) Hierarchy with Generalized Multi-Protocol Label Switching (GMPLS) Traffic Enginerring (TE),” Network Working Group, Request for Comments 4206, Oct. 2005, pp. 1-14. |
Kompella, K., et al., Juniper Networks, Inc., “Detecting Multi-Protocol Label Switched (MPLS) Data Plane Failures,” Network Working Group, Request for Comments 4379, Feb. 2006, pp. 1-50. |
Kompella, K. et al., Juniper Networks,“Virtual Private LAN Service (VPLS) Using BGP for Auto-Discovery and Signaling,” Network Working Group, Request for Comments 4761, Jan. 2007, pp. 1-28. |
Kumar, N. et al., Cisco Systems, Inc., “Label Switched Path (LSP) Ping/Trace for Segment Routing Networks Using MPLS Dataplane,” draft-kumar-mpls-spring-lsp-ping-00, Oct. 21, 2013, pp. 1-12. |
Kumar, N. et al, “Label Switched Path (LSP) Ping/Trace for Segment Routing Networks Using MPLS Dataplane,” draft-kumarkini-mpls-spring-lsp-ping-00, Network Work Group, Internet-Draft, Jan. 2, 2014, pp. 1-15. |
Previdi, S. et al., Cisco Systems, Inc., “Segment Routing with IS-IS Routing Protocol, draft-previdi-filsfils-isis-segment-routing-00,” IS-IS for IP Internets, Internet-Draft, Mar. 12, 2013, pp. 1-27. |
Previdi, S. et al., Cisco Systems, Inc., “Segment Routing with IS-IS Routing Protocol, draft-previdi-filsfils-isis-segment-routing-02,” Internet-Draft, Mar. 20, 2013, A55 pp. 1-27. |
Raszuk, R., NTT I3, “MPLS Domain Wide Labels,” draft-raszuk-mpls-domain-wide-labels-00, MPLS Working Group, Internet-Draft, Jul. 14, 2013, pp. 1-6. |
Rosen, E. et al., Cisco Systems, Inc., “BGP/MPLS VPNs”, Network Working Group, Request for Comments: 2547; Mar. 1999, pp. 1-26. |
Sivabalan, S., et al.; “PCE-Initiated Traffic Engineering Path Setup in Segment Routed Networks; draft-sivabalan-pce-segmentrouting-00.txt,” Internet Engineering Task Force, IETF; Standard Working Draft, Internet Society (ISOC) 4, Rue Des Falaises CH-1205, Geneva, Switzerland, Jun. 2013, pp. 1-16. |
Tian, Albert J. et al., Redback Networks, “Source Routed MPLS LSP Using Domain Wide Label, draft-tian-mpls-lsp-source-route-01.txt”, Network Working Group, Internet Draft, Jul. 2004, pp. 1-12. |
Vasseur, JP, et al.; Cisco Systems, Path Computation Element (PCE) Communication Protocol (PCEP): Request for Comments: 5440, Internet Engineering Task Force, IETF; Standard, Internet Society (ISOC) 4, Rue Des Falaises CH-1205, Geneva, Switzerland, chapters 4-8, Mar. 2009; pp. 1-87. |
Wijnands, Ijsbrand and Bob Thomas, Cisco Systems, Inc,; Yuji Kamite and Hitoshi Fukuda, NTT Communications; “Multicast Extensions for LDP;” Network Working Group; Internet Draft; Mar. 2005; pp. 1-12. |
Li, T., et al., Redback Networks, Inc., “IS-IS Extensions for Traffic Engineering,” Network Working Group, Request for Comments 5305, Oct. 2008, 17 pages. |
Vasseur, JP, et al.; Cisco Systems, Inc. “A Link-Type Sub-TLV to Convey the Number of Traffic Engineering Label Switched Paths Signaled with Zero Reserved Bandwidth Across a Link,” Network Working Group, Request for Comments 5330; Oct. 2008, 16 pages. |
Eckert, Toerless et al., “Failure Protection for Traffic-Engineered Bit Indexed Explicit Replication”, U.S. Appl. No. 15/054,480, filed Feb. 26, 2016; consisting of Specification, Claims, Abstract, and Drawings (76 pages). |
Alcatel-Lucent, “Segment Routing and Path Computation Element—Using Traffic Engineering to Optimize Path Placement and Efficienc in IP/MPLS Networks”; Technology White Paper; 2015; 28 pages. |
Awduche, D. et al., “Requirements for Traffic Engineering Over MPLS”; Network Working Group; Request for Comments: 2702; Sep. 1999; pp. 1-29. |
Awduche, D. et al., “Overview and Principles of Internet Traffic Engineering”; Network Working Group; Request for Comments: 3272; Max 2002; pp. 1-71. |
Filsfils, C. et al., “Segment Routing Architecture”; draft-ietf-spring-segment-routing-07; Network Working Group, Internet-Draft; Dec. 15, 2015; pp. 1-24. |
Filsfils, C. et al., “Segment Routing Use Cases”, draft-filsfils-rtgwg-segment-routing-use-cases-02; Network Working Group; Internet-Draft; Oct. 21, 2013; pp. 1-36. |
Previdi, S. et al., “IS-IS Extensions for Segment Routing”; draft-ietf-isis-segment-routing-extensions-06; IS-IS for IP Internets, Internet-Draft; Dec. 14, 2015; pp. 1-39. |
Psenak, P., et al. “OSPF Extensions for Segment Routing”, draft-ietf-ospf-segment-routing-extensions-05; Open Shortest Path First IGP; Internet-Draft; Jun. 26, 2015; pp. 1-29. |
Psenak, Peter et al., “Enforcing Strict Shortest Path Forwarding Using Strict Segment Identifiers” U.S. Appl. No. 15/165,794, filed May 26, 2016; consisting of Specification, Claims, Abstract, and Drawings (52 pages). |
Das, Kaushik, “IPv6 Header Deconstructed”; http://www.ipv6.com/articles/general/IPv6-Header.htm; Apr. 18, 2008; 2 pages. |
Previdi, S. et al., “IS-IS Extensions for Segment Routing”; draft-ietf-isis-segment-routing-extensions-05; IS-IS for IP Internets, Internet-Draft; Jun. 30, 2015; pp. 1-37. |
Wang, Xiaorong et al., “Multicast Traffic Steering Using Tree Identity in Bit Indexed Explicit Replication (BIER),” U.S. Appl. No. 15/474,583, filed Mar. 30, 2017; consisting of Specification, Claims, Abstract, and Drawings (97 pages). |
Frost, Daniel C. et al., “MPLS Segment Routing”; U.S. Appl. No. 15/637,744, filed Jun. 29, 2017; consisting of Specification, Claims, Abstract, and Drawings (26 pages). |
Filsfils, Clarence et al., “Seamless Segment Routing”; U.S. Appl. No. 15/639,398, filed Jun. 30, 2017; consisting of Specification, Claims, Abstract, and Drawings (31 pages). |
Wang, Xiaorong et al.,et al., “Internet Protocol Based Encapsulation for Bit Indexed Explicit Replication (BIER)”; U.S. Appl. No. 15/487,626, filed Apr. 14, 2017; consisting of Specification, Claims, Abstract, and Drawings (94 pages). |
Wijnands, Ijsbrand et al., “Unicast Media Replication Fabric Using Bit Indexed Explicit Replication,” U.S. Appl. No. 15/581,806, filed Apr. 28, 2017; consisting of Specification, Claims, Abstract, and Drawings (64 pages). |
Wijnands, Ijsbrand et al., “Bridging of Non-Capable Subnetworks in Bit Indexed Explicit Replication,” U.S. Appl. No. 15/582,090, filed Apr. 28, 2017; consisting of Specification, Claims, Abstract, and Drawings (68 pages). |
Akiya, N. et al., “Seamless Bidirectional Forwarding Detection (BFD) for Segment Routing (SR)”; draft-akiya-bfd-seamless-sr-00; Internet Engineering Task Force; Internet-Draft; Jun. 7, 2013; 7 pages. |
Akiya, N. et al., “Seamless Bidirectional Forwarding Detection (BFD) for Segment Routing (SR)”; draft-aliya-bfd-seamless-sr-01; Internet Engineering Task Force; Internet-Draft; Dec. 5, 2013; 7 pages. |
Akiya, N. et al., “Seamless Bidirectional Forwarding Detection (BFD) for Segment Routing (SR)”; draft-akiya-bfd-seamless-sr-02; Internet Engineering Task Force; Internet-Draft; Jun. 7, 2014; 7 pages. |
Akiya, N. et al., “Seamless Bidirectional Forwarding Detection (BFD) for Segment Routing (SR)”; draft-akiya-bfd-seamless-sr-03; Internet Engineering Task Force; Internet-DraftAug. 23, 2014; 7 pages. |
Akiya, N. et al., “Seamless Bidirectional Forwarding Detection (BFD) for Segment Routing (SR)”; draft-akiya-bfd-seamless-sr-04; Internet Engineering Task Force; Internet-Draft; Feb. 23, 2015; 7 pages. |
Akiya, N., “Segment Routing Implications on BFD”; Sep. 9, 2013; 3 pages. |
Aldrin, S., et al., “Seamless Bidirectional Forwarding Detection (S-BFD) Use Cases”; draft-ietf-bfd-seamless-use-case-08; Network Working Group; Internet-Draft; May 6, 2016; 15 pages. |
Filsfils, C. et al.; “Segment Routing Use Cases”; draft-filsfils-rtgwg-segment-routing-use-cases-01; Network Working Group; Internet-Draft; Jul. 14, 2013; pp. 1-46. |
Filsfils, C. et al., “Segment Routing with MPLS Data Plane”, draft-ietf-spring-segment-routing-mpls-05; Network Working Group; Internet-Draft; Jul. 6, 2016; 15 pages. |
Kumar, N. et al, “OAM Requirements for Segment Routing Network”; draft-kumar-spring-sr-oam-requirement-00; Spring; Internet-Draft; Feb. 14, 2014; 6 pages. |
Kumar, N. et al, “OAM Requirements for Segment Routing Network”; draft-kumar-spring-sr-oam-requirement-01;Spring; Internet-Draft; Jul. 1, 2014; 6 pages. |
Kumar, N. et al, “OAM Requirements for Segment Routing Network”; draft-kumar-spring-sr-oam-requirement-02; Spring; Internet-Draft; Dec. 31, 2014; 6 pages. |
Kumar, N. et al, “OAM Requirements for Segment Routing Network”; draft-kumar-spring-sr-oam-requirement-03; Spring; Internet-Draft; Mar. 9, 2015; 6 pages. |
Kumar, N. et al., “Label Switched Path (LSP) Ping/Trace for Segment Routing Networks Using MPLS Dataplane”, draft-ietf-mpls-spring-lsp-ping-00; Network Work Group; Internet Draft; May 10, 2016; 17 pages. |
Pignataro, C. et al., “Seamless Bidirectional Forwarding Detection (S-BFD) for IPv4, IPv6 and MPLS”, draft-ietf-bfd-seamless-ip-06; Internet Engineering Task Force; Internet-Draft; May 6, 2016; 8 pages. |
Pignataro, C. et al., “Seamless Bidirectional Forwarding Detection (S-BFD)”; draft-ietf-bfd-seamless-base-11; Internet Engineering Task Force; Internet-Draft; May 6, 2016; 21 pages. |
Nainar, Nagendra Kumar et al., “Reroute Detection in Segment Routing Data Plane”; U.S. Appl. No. 15/266,498, filed Sep. 15, 2016; consisting of Specification, Claims, Abstract, and Drawings (61 pages). |
Wijnands, Ijsbrand et al., “Area Specific Broadcasting Using Bit Indexed Explicit Replication”; U.S. Appl. No. 15/347,443, filed Nov. 9, 2016; consisting of Specification, Claims, Abstract, and Drawings (65 pages). |
Wijnands, Ijsbrand, et al., “Multicast Using Bit Index Explicit Replication, draft-wijnands-bier-architecture-03,” Internet Engineering Task Force, Internet-Draft, Jan. 27, 2015; pp. 1-29. |
Previdi, Stefano B. et al., “Segment Routing Extension Headers”, U.S. Appl. No. 15/677,210, filed Aug. 15, 2017; consisting of Specification, Claims, Abstract, and Drawings (58 pages). |
Microsoft,“IPv6 Addressing (TechRef)”; Apr. 3, 2011; http://technet.microsoft.com/enus/library/dd392266(v=ws.10).aspx; pp. 1-30. |
Li, Tony et al., “IGP Requirements for Traffic Engineering With MPLS, draft-li-mpls-igp-te-00.txt,” Network Working Group, Internet-Draft, Feb. 1999, pp. 1-6. |
Moy, J., Ascend Communications, Inc., “OSPF Version 2,” Network Working Group, Request for Comments 2328, Apr. 1998, pp. 1-244. |
Psenak, P. et al., “OSPF Extensions for Segment Routing, draft-psenak-ospf-segment-routing-extension-05,” Open Shortest Path First IGP, Internet-Draft, Jun. 2014, pp. 1-33. |
Shen, Naiming et al., “Calculating IGP Routes Over Traffic Engineering Tunnels, draft-ietf-rtgwg-igp-shortcut-01.txt,” Network Working Group, Internet-Draft, May 2004, pp. 1-7. |
Shen, N. et al., “Calculating Interior Gateway Protocol (IGP) Routes Over Traffic Engineering Tunnels,” Network Working Group, Request for Comments 3906, Oct. 2004, pp. 1-8. |
Wijnands, Ijsbrand et al., “Bit Indexed Explicit Replication Using Internet Proptocol Version 6”; U.S. Appl. No. 15/919,552, filed Mar. 13, 2018 consisting of Specification, Claims, Abstract, and Drawings (49 pages). |
Number | Date | Country | |
---|---|---|---|
20160254987 A1 | Sep 2016 | US |
Number | Date | Country | |
---|---|---|---|
62121291 | Feb 2015 | US |