Scalable IP-services enabled multicast forwarding with efficient resource utilization
First Claim
1. A network switch module comprising:
- a memory partitioned among a plurality of virtual routers (VRs);
a plurality of processors partitioned among the plurality of VRs; and
wherein each VR of the plurality of VRs maintains a data structure in the memory, the data structure including information relating to a set of multicast sessions being handled by the VR and including;
a plurality of pairs of a source field and a group field ({S, G} pairs) stored in the memory, in which each pair of the plurality of {S, G} pairs defines a multicast session of the set of multicast sessions and wherein the source field defines a source of a multicast transmission and the group field defines a group corresponding to the multicast session;
a first pointer associated with each of the plurality of {S, G} pairs that points to a dynamically allocated set of OIF blocks, wherein a number of outbound interface (OIF) blocks in the set of OIF blocks is dependent upon how many of a plurality of OIFs of the VR are currently participating in the multicast session and the number of OIF blocks in the set of OIF blocks defines how many times packets associated with the multicast session are to be replicated;
a set of slots associated with each OIF block of the set of OIF blocks, each slot of the set of slots configured to store a second pointer to a transmit control block (TCB) which services one or more users participating in the multicast session and which represents a data structure configured to store control information relevant to processing or routing packets, including information regarding an OIF of the plurality of OIFs through which the packets are to be transmitted;
a third pointer associated with each OIF block of the set of OIF blocks to chain together the set of OIF blocks, wherein only one OIF block of the set of OIF blocks is updated responsive to users joining or leaving the multicast session.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods, apparatus and data structures are provided for managing multicast IP flows. According to one embodiment, a network switch module includes a memory and multiple processors partitioned among multiple virtual routers (VRs). Each VR maintains a data structure containing therein information regarding the multicast sessions, including a first value for each of the multicast sessions, at least one chain of one or more blocks of second values and one or more transmit control blocks (TCBs). Each first value is indicative of a chain of one or more blocks of second values. Each second value corresponds to an outbound interface (OIF) participating in the multicast session and identifies a number of times packets associated with the multicast session are to be replicated. The TCBs have stored therein control information to process or route packets. Each second value is indicative of a TCB that identifies an OIF of the network device through which packets are to be transmitted.
182 Citations
15 Claims
-
1. A network switch module comprising:
-
a memory partitioned among a plurality of virtual routers (VRs); a plurality of processors partitioned among the plurality of VRs; and wherein each VR of the plurality of VRs maintains a data structure in the memory, the data structure including information relating to a set of multicast sessions being handled by the VR and including; a plurality of pairs of a source field and a group field ({S, G} pairs) stored in the memory, in which each pair of the plurality of {S, G} pairs defines a multicast session of the set of multicast sessions and wherein the source field defines a source of a multicast transmission and the group field defines a group corresponding to the multicast session; a first pointer associated with each of the plurality of {S, G} pairs that points to a dynamically allocated set of OIF blocks, wherein a number of outbound interface (OIF) blocks in the set of OIF blocks is dependent upon how many of a plurality of OIFs of the VR are currently participating in the multicast session and the number of OIF blocks in the set of OIF blocks defines how many times packets associated with the multicast session are to be replicated; a set of slots associated with each OIF block of the set of OIF blocks, each slot of the set of slots configured to store a second pointer to a transmit control block (TCB) which services one or more users participating in the multicast session and which represents a data structure configured to store control information relevant to processing or routing packets, including information regarding an OIF of the plurality of OIFs through which the packets are to be transmitted; a third pointer associated with each OIF block of the set of OIF blocks to chain together the set of OIF blocks, wherein only one OIF block of the set of OIF blocks is updated responsive to users joining or leaving the multicast session. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of managing multicast Internet Protocol (IP) sessions, the method comprising:
-
identifying, by a router, active multicast IP sessions; and maintaining, by the router, a data structure within a memory of the router containing therein information regarding the active multicast IP sessions; wherein the data structure includes; a plurality of pairs of a source field and a group field ({S, G} pairs), in which each pair of the plurality of {S, G} pairs defines a multicast IP session of the active multicast IP sessions, wherein the source field defines a source of a multicast transmission of the multicast IP session and the group field defines a group corresponding to the multicast IP session; a first pointer associated with each of the plurality of {S, G} pairs that points to a dynamically allocated set of outbound interface (OIF) blocks, wherein a number OIF blocks in the dynamically allocated set of OIF blocks is dependent upon a number of OIFs of the router that are participating in the IP multicast session and the number of OIF blocks in the dynamically allocated set of OIF blocks defines a number of times packets of the IP multicast session are to be replicated; a set of slots for each OIF block of the set of dynamically allocated OIF blocks, each slot of the set of slots having stored therein a second pointer to a transmit control block (TCB) data structure which services one or more users participating in the IP multicast session and which has stored therein control information to process or route packets of the IP multicast session, including information regarding an OIF of the router through which the packets are to be transmitted; a third pointer associated with each OIF block of the set of dynamically allocated OIF blocks that links together the set of dynamically allocated OIF blocks and updates only one of OIF block of the OIF blocks responsive to users joining or leaving the IP multicast session. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method of managing multicast Internet Protocol (IP) sessions, the method comprising:
-
identifying, by a network device, active multicast IP sessions; and maintaining, by the network device, a data structure within a memory of the network device containing therein information regarding the active multicast IP sessions; wherein the data structure includes; a plurality of pairs of a source field and a group field ({S, G} pairs), in which each pair of the plurality of {S, G} pairs defines a multicast IP session of the active multicast IP sessions, wherein the source field defines a source of a multicast transmission of the multicast IP session and the group field defines a group corresponding to the multicast IP session; a first value associated with each of the plurality of {S, G} pairs that is indicative of a dynamically allocated set of outbound interface (OIF) blocks, wherein a number OIF blocks in the dynamically allocated set of OIF blocks is dependent upon a number of OIFs of the network device that are participating in the IP multicast session and the number of OIF blocks in the dynamically allocated set of OIF blocks defines a number of times packets of the IP multicast session are to be replicated; a set of slots for each OIF block of the set of dynamically allocated OIF blocks, each slot of the set of slots having stored therein a second value indicative of a transmit control block (TCB) data structure which services one or more users participating in the IP multicast session and which has stored therein control information to process or route packets of the IP multicast session, including information regarding an OIF of the network device through which the packets are to be transmitted; a third value associated with each OIF block of the set of dynamically allocated OIF blocks that links together the set of dynamically allocated OIF blocks and update only one OIF block of the OIF blocks responsive to users joining or leaving the IP multicast session. - View Dependent Claims (12, 13, 14, 15)
-
Specification