System, device, and method for transitioning from DVMRP to BGMP for interdomain multicast routing over the internet multicast backbone
First Claim
1. A method for transitioning from Distance Vector Multicast Routing Protocol (DVMRP) to Border Gateway Multicast Protocol (BGMP) for interdomain multicast routing by a device in a multicast communication network having a plurality of interconnected devices, the method comprising running an extended BGMP (DBGMP) protocol and optionally running the DVMRP protocol, wherein the DVMRP protocol defines at least a DVMRP (S,G) State, a DVMRP Graft message, and a DVMRP Prune message, and wherein the DBGMP protocol defines at least a BGMP (*,G) State, a BGMP (S,G) State, a BGMP Join message, a BGMP Prune message, a pending DBGMP (*,G) State for a multicast group G, a confirmed DBGMP (*,G) State for the multicast group G, a DBGMP (S,G) State for a multicast source S and the multicast group G, a DBGMP Join message, and a DBGMP Root message including a metric field.
9 Assignments
0 Petitions
Accused Products
Abstract
A system, device, and method for transitioning from DVMRP to BGMP for interdomain multicast routing over the Internet multicast backbone (Mbone) switches the Mbone DVMRP distribution tree, piece by piece, into BGMP distribution trees. Each piece is a contiguous BGMP regional tree. The routers in the regional BGMP tree run an extended BGMP protocol. The root of the regional BGMP tree also runs DVMRP, and joins the Mbone DVMRP distribution tree in order to receive multicast packets and forward the multicast packets over the regional BGMP tree. The extended BGMP protocol ensures that no fowarding loops are created between the Mbone DVMRP distribution tree and the regional BGMP tree.
-
Citations
58 Claims
-
1. A method for transitioning from Distance Vector Multicast Routing Protocol (DVMRP) to Border Gateway Multicast Protocol (BGMP) for interdomain multicast routing by a device in a multicast communication network having a plurality of interconnected devices, the method comprising running an extended BGMP (DBGMP) protocol and optionally running the DVMRP protocol, wherein the DVMRP protocol defines at least a DVMRP (S,G) State, a DVMRP Graft message, and a DVMRP Prune message, and wherein the DBGMP protocol defines at least a BGMP (*,G) State, a BGMP (S,G) State, a BGMP Join message, a BGMP Prune message, a pending DBGMP (*,G) State for a multicast group G, a confirmed DBGMP (*,G) State for the multicast group G, a DBGMP (S,G) State for a multicast source S and the multicast group G, a DBGMP Join message, and a DBGMP Root message including a metric field.
- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
2. The method of claim 1, wherein running the DBGMP protocol comprises:
-
learning a multicast route for the multicast group G using a BGMP mechanism;
creating a pending DBGMP (*,G) State and sending a DBGMP Join message to a next hop device towards the multicast group G, if the device does not have a BGMP (*,G) State, there does not exist a complete BGMP path to the root domain, and the device does not have a DBGMP (*,G) State; and
creating the BGMP (*,G) State, sending a BGMP Join message to a next hop device towards the multicast group G, sending a BGMP Prune message and setting the BGMP (S,G) incoming interface to “
pruned”
for each BGMP (S,G) State that has an unpruned incoming interface and also has a different parent target that the BGMP (*,G) parent target, and sending a DVMRP Prune message to a DVMRP upstream neighboring device and setting the DVMRP (S,G) incoming interface to “
pruned”
for each DVMRP (S,G) that has an unpruned incoming interface and also has an upstream neighboring device that differs from the BGMP (*,G) parent target, if the device does not have the BGMP (*,G) State and there exists a complete BGMP path to the root domain.
-
-
3. The method of claim 1, wherein running the DBGMP protocol comprises:
-
detecting an active DVMRP (S,G) State; and
creating a DBGMP (S,G) State and sending a DBGMP Join message to a next hop device towards the multicast source S, if the next hop device towards the multicast source S supports the DBGMP protocol and the device does not have a BGMP (*,G) State, a B-(S,G) State, or a DBGMP (S,G) State.
-
-
4. The method of claim 1, wherein the device is a border device, and wherein running the DBGMP protocol comprises:
creating a BGMP (S,G) State, setting the BGMP (S,G) incoming interface to “
preferred,” and
sending a BGMP Join message to the next hop device toward the multicast source S, if the device is a border device for a domain associated with an (S,G) state, the multicast source S is in a remote domain, there exists a complete BGMP path to the source domain, and the device does not have a BGMP (*,G) State or a BGMP (S,G) State.
-
5. The method of claim 1, wherein running the DBGMP protocol comprises:
-
receiving a BGMP Join message;
processing the BGMP Join message in accordance with the BGMP protocol;
deleting all DBGMP (*,G) and DBGMP (S,G) States;
setting the BGMP (S,G) incoming interface to “
pruned,”
if a BGMP (S,G) State was created as a result of processing the BGMP Join message and the device has the BGMP (*,G) State;
setting the BGMP (S,G) incoming interface to “
preferred,”
if a BGMP (S,G) State was created as a result of processing the BGMP Join message and the device does not have the BGMP (*,G) State;
setting each BGMP (S,G) incoming interface to “
pruned,”
if a BGMP (*,G) State was created as a result of processing the BGMP Join message and the BGMP (*,G) parent target differs from the BGMP (S,G) parent target;
setting each DVMRP (S,G) incoming interface to “
pruned,”
if a BGMP (*,G) State was created as a result of processing the BGMP Join message and the BGMP (*,G) parent target differs from the DVMRP (S,G) upstream neighboring device.
-
-
6. The method of claim 1, wherein running the DBGMP protocol comprises:
-
receiving a DBGMP Join message for (*,G) from a child peer;
returning a DBGMP Root message to the child peer with the metric value set to zero (0) and adding the child peer to a child target list, if the device has a BGMP (*,G) State;
adding the child as a pending peer to the child target list, if the device does not have the BGMP (*,G) State and the device has a pending DBGMP (*,G) state;
returning a DBGMP Root message to the child peer with the metric value set to infinity, if the device does not have the BGMP (*,G) State or a pending DBGMP (*,G) state and either the device has a confirmed DBGMP (*,G) state or the next hop device towards the multicast group G does not support the DBGMP protocol;
creating a BGMP (*,G) State, adding the child to the child target list, and returning a DBGMP Root message to the child peer with the metric value set to zero (0), if the device does not have the BGMP (*,G) State, the pending DBGMP (*,G) state, or the confirmed DBGMP (*,G) state, the next hop device towards the multicast group G supports the DBGMP protocol, and the device is a border device for the root domain; and
creating a DBGMP (*,G) State, forwarding a DBGMP Join message to the next hop device towards the multicast group G, and adding the child peer as a pending peer to the child target list, if the device does not have the BGMP (*,G) State, the pending DBGMP (*,G) state, or the confirmed DBGMP (*,G) state, the next hop device towards the multicast group G supports the DBGMP protocol, and the device is not a border device for the root domain.
-
-
7. The method of claim 1, wherein running the DBGMP protocol comprises:
-
receiving a DBGMP Join message for (S,G) from a child peer;
returning a DBGMP Root message to the child peer with the metric value equal to a BGMP Regional MD-Metric for (S,G) and adding the child peer to the child target list, if the device has a BGMP (S,G) State;
adding the child peer as a pending peer to the child target list, if the device does not have the BGMP (S,G) State and the device has a DBGMP (S,G) State;
creating a BGMP (S,G) State, setting the BGMP (S,G) incoming interface to “
pruned,”
returning a DBGMP Root message to the child peer with the metric value equal to zero, and adding the child peer to the child target list, if the device does not have the BGMP (S,G) State or the DBGMP (S,G) State and the device has the BGMP (*,G) State;
creating a BGMP (S,G) State, setting the BGMP (S,G) incoming interface to “
pruned,”
returning a DBGMP Root message to the child peer with the metric value equal to the device'"'"'s metric value, and adding the child peer to the child target list, if the device does not have the BGMP (S,G) State, the DBGMP (S,G) State, or the BGMP (*,G) State and the next hop device towards the multicast source S does not support the DBGMP protocol;
creating a BGMP (S,G) State, setting the BGMP (S,G) incoming interface to “
pruned,”
returning a DBGMP Root message to the child peer with the metric value equal to zero, and adding the child peer to the child target list, if the device does not have the BGMP (S,G) State, the DBGMP (S,G) State, or the BGMP (*,G) State, the next hop device towards the multicast source S supports the DBGMP protocol, and the device is a border device for the source domain; and
creating a DBGMP (S,G) State, sending a DBGMP Join message to the next hop device towards the multicast source S, and adding the child peer as a pending peer to the child target list, if the device does not have the BGMP (S,G) State, the DBGMP (S,G) State, or the BGMP (*,G) State, the next hop device towards the multicast source S supports the DBGMP protocol, and the device is not a border device for the source domain.
-
-
8. The method of claim 1, wherein running the DBGMP protocol comprises:
-
receiving a DBGMP Root message for (*,G) from a parent peer;
determining whether the metric value in the DBGMP Root message is equal to infinity or zero;
if the metric value in the DBGMP Root message is equal to infinity;
changing a pending DBGMP (*,G) State into a confirmed DBGMP (*,G) State, if the device has the pending DBGMP (*,G) State;
creating a confirmed DBGMP (*,G) State, if the device does not have the pending DBGMP (*,G) State;
sending a DBGMP Join message to the parent target of each BGMP (S,G) State and deleting the BGMP (*,G) State, if the device has a BGMP (*,G) State;
sending a BGMP Prune message to the parent peer; and
forwarding the DBGMP Root message to all child peers on the BGMP (*,G) child target list;
if the metric value in the DBGMP Root message is equal to zero;
deleting the DBGMP (*,G) State, if the device has the DBGMP (*,G) State;
creating a BGMP (*,G) State, if the device does not have the BGMP (*,G) State;
forwarding the DBGMP Root message to all pending peers in the child target list;
sending a BGMP Prune message to the BGMP (S,G) patent target and setting the BGMP (S,G) incoming interface to “
pruned,”
if the device has a BGMP (S,G) State and the next hop peers toward the multicast source S and the multicast group G differ; and
sending a DVMRP Prune message to the DVMRP (S,G) upstream neighboring device and setting the DVMRP (S,G) incoming interface to “
pruned,”
if the device has a DVMRP (S,G) State and the BGMP (*,G) parent target is different than the DVMRP (S,G) upstream neighboring device; and
clearing the pending status for all pending peers in the child target list, if the child target list includes any pending peers.
-
-
9. The method of claim 1, wherein running the DBGMP protocol comprises:
-
receiving a DBGMP Root message for (S,G) from a parent peer;
if the metric value in the DBGMP Root message is greater than the device'"'"'s metric to the multicast source S or if they are the same but the device'"'"'s metric to the multicast source S is infinity;
forwarding the DBGMP Root message to each child peer in the child target list;
deleting any existing DBGMP (S,G) State;
deleting any existing BGMP (S,G) State;
sending a BGMP Prune message to the parent peer;
sending a DVMRP Graft message to the DVMRP (S,G) upstream neighboring device, if the DVMRP (S,G) incoming interface is considered to be “
pruned” and
the device does not have a BGMP (*,G) State; and
setting the DVMRP (S,G) incoming interface to “
preferred,”
if the device does not have a BGMP (*,G) State;
if the metric value in the DBGMP Root message is less than the device'"'"'s metric to the multicast source S or if they are the same but the device'"'"'s metric to the multicast source S is not infinity;
forwarding the DBGMP Root message to all pending peers in the child target list;
changing the DBGMP (S,G) State into a BGMP (S,G) State, if the device has the DBGMP (S,G) State;
creating a BGMP (S,G) State, if the device does not have the DBGMP (S,G) State;
sending a BGMP Prune message to the BGMP (S,G) parent target and setting the BGMP (S,G) incoming interface to “
pruned,”
if the device has a BGMP (*,G) State and the next hop peers toward the multicast source S and the multicast group G differ; and
setting the DVMRP (S,G) incoming interface to “
deprecated,”
if the device has a DVMRP (S,G) State and the BGMP (S,G) parent target differs from DVMRP (S,G) upstream neighboring device; and
clearing the pending status for all pending peers in the child target list, if the child target list includes any pending peers.
-
-
10. The method of claim 1, wherein running the DBGMP protocol comprises:
-
receiving a first BGMP Prune message;
processing the first BGMP Prune message in accordance with the BGMP protocol; and
if a BGMP (*,G) State is deleted as a result of processing the first BGMP Prune message;
sending a second BGMP Prune message to the BGMP (*,G) parent target;
sending a DBGMP Join message to the parent target of each of a number of BGMP (S,G) states;
sending a third BGMP Prune message to the BGMP (S,G) parent target, if there is no DVMRP downstream neighbor device and no BGMP child target for (S,G) and the BGMP (S,G) incoming interface is not considered to be “
pruned;
” and
deleting the BGMP (S,G) State, if there is no DVMRP downstream neighbor device and no BGMP child target for (S,G).
-
-
11. The method of claim 1, wherein running the DBGMP protocol comprises:
-
receiving a DVMRP Prune message;
processing the DVMRP Prune message in accordance with the DVMRP protocol;
sending a DVMRP Prune message to the DVMRP (S,G) upstream neighboring device, if the DVMRP (S,G) outgoing interface list became empty as a result of processing the DVMRP Prune message, there is no child target for (S,G), and the DVMRP (S,G) incoming interface is not considered to be “
pruned;
” and
deleting the DVMRP (S,G) State, if the DVMRP (S,G) outgoing interface list became empty as a result of processing the DVMRP Prune message and there is no child target for (S,G).
-
-
12. The method of claim 1, wherein running the DBGMP protocol comprises:
-
receiving a DVMRP Graft message;
adding outgoing interface(s) in accordance with the DVMRP protocol; and
sending a DVMRP Graft message to the DVMRP (S,G) upstream neighboring device, if the DVMRP (S,G) outgoing interface list became empty as a result of processing the DVMRP Graft message.
-
-
13. The method of claim 1, wherein running the DBGMP protocol comprises:
pruning from the BGMP Regional Tree and forming a new BGMP Regional Tree, if the metric value associated with the device is less than the metric value associated with the Regional BGMP Root.
-
14. The method of claim 13, wherein pruning from the BGMP Regional Tree and forming a new BGMP Regional Tree comprises:
-
sending a DBGMP Root message with the metric value equal to the device'"'"'s metric value to each of the child peers associated with each of the BGMP (S,G) States;
sending a BGMP Prune message to the BGMP (S,G) parent target and setting the BGMP (S,G) incoming interface to “
pruned,”
if the BGMP (S,G) incoming interface is not considered to be “
pruned;
” and
sending a DVMRP Graft message to the DVMRP (S,G) upstream neighboring device and setting the DVMRP (S,G) incoming interface to “
preferred,”
if the DVMRP (S,G) incoming interface is considered to be “
pruned.”
-
-
15. The method of claim 1, comprising:
-
detecting a BGMP routing change;
changing from a Regional BGMP Root to a BGMP child; and
sending a DBGMP Root message to the child peers associated with each BGMP (S,G) State, wherein the DBGMP Root message includes a metric value equal to a new BGMP Regional MD-Metric for (S,G).
-
-
16. The method of claim 1, wherein running the DBGMP protocol comprises:
-
detecting a BGMP routing change;
changing from a BGMP child to a Regional BGMP Root; and
sending a DBGMP Root message to the child peers associated with each BGMP (S,G) State, wherein the DBGMP Root message includes a metric value equal to the device'"'"'s metric value.
-
-
17. The method of claim 1, wherein the device is not an Mbone DVMRP node, and wherein running the DBGMP protocol further comprises:
-
receiving a multicast packet for the (S,G) pair; and
processing the multicast packet in accordance with the BGMP protocol.
-
-
18. The method of claim 1, wherein the device is an Mbone DVMRP node, and wherein running the DBGMP protocol further comprises:
-
receiving a multicast packet for the (S,G) pair;
if the device does not have a DVMRP (S,G) State and the multicast packet was received from a DVMRP upstream neighboring device;
creating a DVMRP (S,G) State;
dropping the multicast packet, sending a DVMRP Prune message to the DVMRP (S,G) upstream neighboring device, and setting the DVMRP (S,G) incoming interface to “
pruned,”
if the device has a BGMP (*,G) State;
dropping the multicast packet, sending a DVMRP Prune message to the DVMRP (S,G) upstream neighboring device, and setting the DVMRP (S,G) incoming interface to “
pruned,”
if the device does not have the BGMP (*,G) State and the BGMP (S,G) incoming interface is considered to be “
preferred;
” and
processing the multicast packet in accordance with the DVMRP protocol, setting the DVMRP (S,G) incoming interface to “
preferred,” and
starting a downstream assert timer, if the device does not have the BGMP (*,G) State and the BGMP (S,G) incoming interface is not considered to be “
preferred;
”if the device has the DVMRP (S,G) State and the DVMRP (S,G) incoming interface is considered to be “
pruned”
;
processing the multicast packet in accordance with the BGMP protocol; and
forwarding a copy of the multicast packet to each DVMRP (S,G) downstream neighboring device, if the device accepts the multicast packet as a result of processing the multicast packet in accordance with the BGMP protocol;
if the device has a BGMP (*,G) State and either the device does not have the DVMRP (S,G) State and the multicast packet was not received from the DVMRP upstream neighboring device or the device has the DVMRP (S,G) State and the DVMRP (S,G) incoming interface is not considered to be “
pruned”
;
processing the multicast packet in accordance with the BGMP protocol;
setting all BGMP (S,G) incoming interfaces to “
pruned;
”setting all DVMRP (S,G) incoming interfaces to “
pruned;
” and
forwarding a copy of the multicast packet to each DVMRP (S,G) downstream neighboring device, if the device accepts the multicast packet as a result of processing the multicast packet in accordance with the BGMP protocol;
if the device does not have a BGMP (S,G) State, the device does not have the BGMP (*,G) State, and either the device does not have the DVMRP (S,G) State and the multicast packet was not received from the DVMRP upstream neighboring device or the device has the DVMRP (S,G) State and the DVMRP (S,G) incoming interface is not considered to be “
pruned”
;
processing the multicast packet in accordance with the DVMRP protocol; and
forwarding the multicast packet to a next hop device, if the device accepts the multicast packet as a result of processing the multicast packet in accordance with the DVMRP protocol, there exists a multicast route for the multicast group G, and the BGMP next hop device towards the multicast group G differs from the DVMRP (S,G) upstream neighboring device;
if the device has the BGMP (S,G) State, the BGMP (S,G) incoming interface is considered to be “
pruned,”
the device does not have the BGMP (*,G) State, and either the device does not have the DVMRP (S,G) State and the multicast packet was not received from the DVMRP upstream neighboring device or the device has the DVMRP (S,G) State and the DVMRP (S,G) incoming interface is not considered to be “
pruned”
;
processing the multicast packet in accordance with the DVMRP protocol; and
forwarding the multicast packet to each BGMP (S,G) child peer, if the device accepts the multicast packet as a result of processing the multicast packet in accordance with the DVMRP protocol; and
if the device has the BGMP (S,G) State, the BGMP (S,G) incoming interface is not considered to be “
pruned,”
the device does not have the BGMP (*,G) State, and either the device does not have the DVMRP (S,G) State and the multicast packet was not received from the DVMRP upstream neighboring device or the device has the DVMRP (S,G) State and the DVMRP (S,G) incoming interface is not considered to be “
pruned”
;
accepting the multicast packet;
forwarding the multicast packet to each DVMRP (S,G) downstream neighboring device;
forwarding the multicast packet to each BGMP (S,G) child peer;
sending a DVMRP Prune message to the DVMRP (S,G) upstream neighboring device and setting the DVMRP (S,G) incoming interface to “
pruned,”
if the DVMRP (S,G) upstream neighboring device differs from the BGMP (S,G) parent target, the multicast packet was received from the BGMP (S,G) parent target, the BGMP (S,G) incoming interface is considered to be “
preferred,” and
the DVMRP (S,G) incoming interface is considered to be “
deprecated;
” and
sending a BGMP Prune message to the BGMP (S,G) parent target and setting the BGMP (S,G) incoming interface to “
pruned,”
if the DVMRP (S,G) upstream neighboring device differs from the BGMP (S,G) parent target, the multicast packet was received from the DVMRP (S,G) upstream neighboring device, the DVMRP (S,G) incoming interface is considered to be “
preferred,” and
the BGMP (S,G) incoming interface is considered to be “
deprecated.”
-
-
19. The method of claim 18, further comprising:
-
determining that the downstream assert timer expired; and
sending a DBGMP Join message upstream in the BGMP Regional Tree if and only if the list of outgoing interfaces associated with the DVMRP (S,G) State is not empty.
-
-
2. The method of claim 1, wherein running the DBGMP protocol comprises:
-
20. A device for transitioning a multicast communication network from Distance Vector Multicast Routing Protocol (DVMRP) to Border Gateway Multicast Protocol (BGMP), the device comprising protocol logic including extended BGMP (DBGMP) protocol logic and optionally including DVMRP protocol logic, wherein the DVMRP protocol logic defines at least a DVMRP (S,G) State, a DVMRP Graft message, and a DVMRP Prune message, and wherein the DBGMP logic defines at least a BGMP (*,G) State, a BGMP (S,G) State, a BGMP Join message, a BGMP Prune message, a pending DBGMP (*,G) State for a multicast group G, a confirmed DBGMP (*,G) State for the multicast group G, a DBGMP (S,G) State for a multicast source S and the multicast group G, a DBGMP Join message, and a DBGMP Root message including a metric field.
- View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
21. The device of claim 20, wherein the DBGMP protocol logic comprises:
-
means for learning a multicast route for the multicast group G using a BGMP mechanism;
means for creating a pending DBGMP (*,G) State and sending a DBGMP Join message to a next hop device towards the multicast group G, if the device does not have a BGMP (*,G) State, there does not exist a complete BGMP path to the root domain, and the device does not have a DBGMP (*,G) State; and
means for creating the BGMP (*,G) State, sending a BGMP Join message to a next hop device towards the multicast group G, sending a BGMP Prune message and setting the BGMP (S,G) incoming interface to “
pruned”
for each BGMP (S,G) State that has an unpruned incoming interface and also has a different parent target that the BGMP (*,G) parent target, and sending a DVMRP Prune message to a DVMRP upstream neighboring device and setting the DVMRP (S,G) incoming interface to “
pruned”
for each DVMRP (S,G) that has an unpruned incoming interface and also has an upstream neighboring device that differs from the BGMP (*,G) parent target, if the device does not have the BGMP (*,G) State and there exists a complete BGMP path to the root domain.
-
-
22. The device of claim 20, wherein the DBGMP protocol logic comprises:
-
means for detecting an active DVMRP (S,G) State; and
means for creating a DBGMP (S,G) State and sending a DBGMP Join message to a next hop device towards the multicast source S, if the next hop device towards the multicast source S supports the extended BGMP protocol and the device does not have a BGMP (*,G) State, a B-(S,G) State, or a DBGMP (S,G) State.
-
-
23. The device of claim 20, wherein the device is a border device, and wherein the DBGMP protocol logic comprises:
means for creating a BGMP (S,G) State, setting the BGMP (S,G) incoming interface to “
preferred,” and
sending a BGMP Join message to the next hop device toward the multicast source S, if the device is a border device for a domain associated with an (S,G) state, the multicast source S is in a remote domain, there exists a complete BGMP path to the source domain, and the device does not have a BGMP (*,G) State or a BGMP (S,G) State.
-
24. The device of claim 20, wherein the DBGMP protocol logic comprises:
-
means for receiving a BGMP Join message;
means for processing the BGMP Join message in accordance with the BGMP protocol;
means for deleting all DBGMP (*,G) and DBGMP (S,G) States;
means for setting the BGMP (S,G) incoming interface to “
pruned,”
if a BGMP (S,G) State was created as a result of processing the BGMP Join message and the device has the BGMP (*,G) State;
means for setting the BGMP (S,G) incoming interface to “
preferred,”
if a BGMP (S,G) State was created as a result of processing the BGMP Join message and the device does not have the BGMP (*,G) State;
means for setting each BGMP (S,G) incoming interface to “
pruned,”
if a BGMP (*,G) State was created as a result of processing the BGMP Join message and the BGMP (*,G) parent target differs from the BGMP (S,G) parent target;
means for setting each DVMRP (S,G) incoming interface to “
pruned,”
if a BGMP (*,G) State was created as a result of processing the BGMP Join message and the BGMP (*,G) parent target differs from the DVMRP (S,G) upstream neighboring device.
-
-
25. The device of claim 20, wherein the DBGMP protocol logic comprises:
-
means for receiving a DBGMP Join message for (*,G) from a child peer;
means for returning a DBGMP Root message to the child peer with the metric value set to zero (0) and adding the child peer to a child target list, if the device has a BGMP (*,G) State;
means for adding the child as a pending peer to the child target list, if the device does not have the BGMP (*,G) State and the device has a pending DBGMP (*,G) state;
means for returning a DBGMP Root message to the child peer with the metric value set to infinity, if the device does not have the BGMP (*,G) State or a pending DBGMP (*,G) state and either the device has a confirmed DBGMP (*,G) state or the next hop device towards the multicast group G does not support the extended BGMP protocol;
means for creating a BGMP (*,G) State, adding the child to the child target list, and returning a DBGMP Root message to the child peer with the metric value set to zero (0), if the device does not have the BGMP (*,G) State, the pending DBGMP (*,G) state, or the confirmed DBGMP (*,G) state, the next hop device towards the multicast group G supports the extended BGMP protocol, and the device is a border device for the root domain; and
means for creating a DBGMP (*,G) State, forwarding a DBGMP Join message to the next hop device towards the multicast group G, and adding the child peer as a pending peer to the child target list, if the device does not have the BGMP (*,G) State, the pending DBGMP (*,G) state, or the confirmed DBGMP (*,G) state, the next hop device towards the multicast group G supports the extended BGMP protocol, and the device is not a border device for the root domain.
-
-
26. The device of claim 20, wherein the DBGMP protocol logic comprises:
-
means for receiving a DBGMP Join message for (S,G) from a child peer;
means for returning a DBGMP Root message to the child peer with the metric value equal to a BGMP Regional MD-Metric for (S,G) and adding the child peer to the child target list, if the device has a BGMP (S,G) State;
means for adding the child peer as a pending peer to the child target list, if the device does not have the BGMP (S,G) State and the device has a DBGMP (S,G) State;
means for creating a BGMP (S,G) State, setting the BGMP (S,G) incoming interface to “
pruned,”
returning a DBGMP Root message to the child peer with the metric value equal to zero, and adding the child peer to the child target list, if the device does not have the BGMP (S,G) State or the DBGMP (S,G) State and the device has the BGMP (*,G) State;
means for creating a BGMP (S,G) State, setting the BGMP (S,G) incoming interface to “
pruned,”
returning a DBGMP Root message to the child peer with the metric value equal to the device'"'"'s metric value, and adding the child peer to the child target list, if the device does not have the BGMP (S,G) State, the DBGMP (S,G) State, or the BGMP (*,G) State and the next hop device towards the multicast source S does not support the extended BGMP protocol;
means for creating a BGMP (S,G) State, setting the BGMP (S,G) incoming interface to “
pruned,”
returning a DBGMP Root message to the child peer with the metric value equal to zero, and adding the child peer to the child target list, if the device does not have the BGMP (S,G) State, the DBGMP (S,G) State, or the BGMP (*,G) State, the next hop device towards the multicast source S supports the extended BGMP protocol, and the device is a border device for the source domain; and
means for creating a DBGMP (S,G) State, sending a DBGMP Join message to the next hop device towards the multicast source S, and adding the child peer as a pending peer to the child target list, if the device does not have the BGMP (S,G) State, the DBGMP (S,G) State, or the BGMP (*,G) State, the next hop device towards the multicast source S supports the extended BGMP protocol, and the device is not a border device for the source domain.
-
-
27. The device of claim 20, wherein the DBGMP protocol logic comprises:
-
means for receiving a DBGMP Root message for (*,G) from a parent peer;
means for determining whether the metric value in the DBGMP Root message is equal to infinity or zero;
if the metric value in the DBGMP Root message is equal to infinity;
means for changing a pending DBGMP (*,G) State into a confirmed DBGMP (*,G) State, if the device has the pending DBGMP (*,G) State;
means for creating a confirmed DBGMP (*,G) State, if the device does not have the pending DBGMP (*,G) State;
means for sending a DBGMP Join message to the parent target of each BGMP (S,G) State and deleting the BGMP (*,G) State, if the device has a BGMP (*,G) State;
means for sending a BGMP Prune message to the parent peer; and
means for forwarding the DBGMP Root message to all child peers on the BGMP (*,G) child target list;
if the metric value in the DBGMP Root message is equal to zero;
means for deleting the DBGMP (*,G) State, if the device has the DBGMP (*,G) State;
means for creating a BGMP (*,G) State, if the device does not have the BGMP (*,G) State;
means for forwarding the DBGMP Root message to all pending peers in the child target list;
means for sending a BGMP Prune message to the BGMP (S,G) patent target and setting the BGMP (S,G) incoming interface to “
pruned,”
if the device has a BGMP (S,G) State and the next hop peers toward the multicast source S and the multicast group G differ; and
means for sending a DVMRP Prune message to the DVMRP (S,G) upstream neighboring device and setting the DVMRP (S,G) incoming interface to “
pruned,”
if the device has a DVMRP (S,G) State and the BGMP (*,G) parent target is different than the DVMRP (S,G) upstream neighboring device; and
means for clearing the pending status for all pending peers in the child target list, if the child target list includes any pending peers.
-
-
28. The device of claim 20, wherein the DBGMP protocol logic comprises:
-
means for receiving a DBGMP Root message for (S,G) from a parent peer;
if the metric value in the DBGMP Root message is greater than the device'"'"'s metric to the multicast source S or if they are the same but the device'"'"'s metric to the multicast source S is infinity;
means for forwarding the DBGMP Root message to each child peer in the child target list;
means for deleting any existing DBGMP (S,G) State;
means for deleting any existing BGMP (S,G) State;
means for sending a BGMP Prune message to the parent peer;
means for sending a DVMRP Graft message to the DVMRP (S,G) upstream neighboring device, if the DVMRP (S,G) incoming interface is considered to be “
pruned” and
the device does not have a BGMP (*,G) State; and
means for setting the DVMRP (S,G) incoming interface to “
preferred,”
if the device does not have a BGMP (*,G) State;
if the metric value in the DBGMP Root message is less than the device'"'"'s metric to the multicast source S or if they are the same but the device'"'"'s metric to the multicast source S is not infinity;
means for forwarding the DBGMP Root message to all pending peers in the child target list;
means for changing the DBGMP (S,G) State into a BGMP (S,G) State, if the device has the DBGMP (S,G) State;
means for creating a BGMP (S,G) State, if the device does not have the DBGMP (S,G) State;
means for sending a BGMP Prune message to the BGMP (S,G) parent target and setting the BGMP (S,G) incoming interface to “
pruned,”
if the device has a BGMP (*,G) State and the next hop peers toward the multicast source S and the multicast group G differ; and
means for setting the DVMRP (S,G) incoming interface to “
deprecated,”
if the device has a DVMRP (S,G) State and the BGMP (S,G) parent target differs from DVMRP (S,G) upstream neighboring device; and
means for clearing the pending status for all pending peers in the child target list, if the child target list includes any pending peers.
-
-
29. The device of claim 20, wherein the DBGMP protocol logic comprises:
-
means for receiving a first BGMP Prune message;
means for processing the first BGMP Prune message in accordance with the BGMP protocol; and
if a BGMP (*,G) State is deleted as a result of processing the first BGMP Prune message;
means for sending a second BGMP Prune message to the BGMP (*,G) parent target;
means for sending a DBGMP Join message to the parent target of each of a number of BGMP (S,G) states;
means for sending a third BGMP Prune message to the BGMP (S,G) parent target, if there is no DVMRP downstream neighbor device and no BGMP child target for (S,G) and the BGMP (S,G) incoming interface is not considered to be “
pruned;
” and
means for deleting the BGMP (S,G) State, if there is no DVMRP downstream neighbor device and no BGMP child target for (S,G).
-
-
30. The device of claim 20, wherein the DBGMP protocol logic comprises:
-
means for receiving a DVMRP Prune message;
means for processing the DVMRP Prune message in accordance with the DVMRP protocol;
means for sending a DVMRP Prune message to the DVMRP (S,G) upstream neighboring device, if the DVMRP (S,G) outgoing interface list became empty as a result of processing the DVMRP Prune message, there is no child target for (S,G), and the DVMRP (S,G) incoming interface is not considered to be “
pruned;
” and
means for deleting the DVMRP (S,G) State, if the DVMRP (S,G) outgoing interface list became empty as a result of processing the DVMRP Prune message and there is no child target for (S,G).
-
-
31. The device of claim 20, wherein the DBGMP protocol logic comprises:
-
means for receiving a DVMRP Graft message;
means for adding outgoing interface(s) in accordance with the DVMRP protocol; and
means for sending a DVMRP Graft message to the DVMRP (S,G) upstream neighboring device, if the DVMRP (S,G) outgoing interface list became empty as a result of processing the DVMRP Graft message.
-
-
32. The device of claim 20, wherein the DBGMP protocol logic comprises:
means for pruning from the BGMP Regional Tree and forming a new BGMP Regional Tree, if the metric value associated with the device is less than the metric value associated with the Regional BGMP Root.
-
33. The device of claim 32, wherein pruning from the BGMP Regional Tree and forming a new BGMP Regional Tree comprises:
-
means for sending a DBGMP Root message with the metric value equal to the device'"'"'s metric value to each of the child peers associated with each of the BGMP (S,G) States;
means for sending a BGMP Prune message to the BGMP (S,G) parent target and setting the BGMP (S,G) incoming interface to “
pruned,”
if the BGMP (S,G) incoming interface is not considered to be “
pruned;
” and
means for sending a DVMRP Graft message to the DVMRP (S,G) upstream neighboring device and setting the DVMRP (S,G) incoming interface to “
preferred,”
if the DVMRP (S,G) incoming interface is considered to be “
pruned.”
-
-
34. The device of claim 20, wherein the DBGMP protocol logic comprises:
-
means for detecting a BGMP routing change;
means for changing from a Regional BGMP Root to a BGMP child; and
means for sending a DBGMP Root message to the child peers associated with each BGMP (S,G) State, wherein the DBGMP Root message includes a metric value equal to a new BGMP Regional MD-Metric for (S,G).
-
-
35. The device of claim 20, wherein the DBGMP protocol logic comprises:
-
means for detecting a BGMP routing change;
means for changing from a BGMP child to a Regional BGMP Root; and
means for sending a DBGMP Root message to the child peers associated with each BGMP (S,G) State, wherein the DBGMP Root message includes a metric value equal to the device'"'"'s metric value.
-
-
36. The device of claim 20, wherein the device is not an Mbone DVMRP node, and wherein the DBGMP protocol logic further comprises:
-
means for receiving a multicast packet for the (S,G) pair; and
means for processing the multicast packet in accordance with the BGMP protocol.
-
-
37. The device of claim,21, wherein the device is an Mbone DVMRP node, and wherein the DBGMP protocol logic further comprises:
-
means for receiving a multicast packet for the (S,G) pair;
if the device does not have a DVMRP (S,G) State and the multicast packet was received from a DVMRP upstream neighboring device;
means for creating a DVMRP (S,G) State;
means for dropping the multicast packet, sending a DVMRP Prune message to the DVMRP (S,G) upstream neighboring device, and setting the DVMRP (S,G) incoming interface to “
pruned,”
if the device has a BGMP (*,G) State;
means for dropping the multicast packet, sending a DVMRP Prune message to the DVMRP (S,G) upstream neighboring device, and setting the DVMRP (S,G) incoming interface to “
pruned,”
if the device does not have the BGMP (*,G) State and the BGMP (S,G) incoming interface is considered to be “
preferred;
” and
means for processing the multicast packet in accordance with the DVMRP protocol, setting the DVMRP (S,G) incoming interface to “
preferred,” and
starting a downstream assert timer, if the device does not have the BGMP (*,G) State and the BGMP (S,G) incoming interface is not considered to be “
preferred;
”if the device has the DVMRP (S,G) State and the DVMRP (S,G) incoming interface is considered to be “
pruned”
;
means for processing the multicast packet in accordance with the BGMP protocol; and
means for forwarding a copy of the multicast packet to each DVMRP (S,G) downstream neighboring device, if the device accepts the multicast packet as a result of processing the multicast packet in accordance with the BGMP protocol;
if the device has a BGMP (*,G) State and either the device does not have the DVMRP (S,G) State and the multicast packet was not received from the DVMRP upstream neighboring device or the device has the DVMRP (S,G) State and the DVMRP (S,G) incoming interface is not considered to be “
pruned”
;
means for processing the multicast packet in accordance with the BGMP protocol;
means for setting all BGMP (S,G) incoming interfaces to “
pruned;
”means for setting all DVMRP (S,G) incoming interfaces to “
pruned;
” and
means for forwarding a copy of the multicast packet to each DVMRP (S,G) downstream neighboring device, if the device accepts the multicast packet as a result of processing the multicast packet in accordance with the BGMP protocol;
if the device does not have a BGMP (S,G) State, the device does not have the BGMP (*,G) State, and either the device does not have the DVMRP (S,G) State and the multicast packet was not received from the DVMRP upstream neighboring device or the device has the DVMRP (S,G) State and the DVMRP (S,G) incoming interface is not considered to be “
pruned”
;
means for processing the multicast packet in accordance with the DVMRP protocol; and
means for forwarding the multicast packet to a next hop device, if the device accepts the multicast packet as a result of processing the multicast packet in accordance with the DVMRP protocol, there exists a multicast route for the multicast group G, and the BGMP next hop device towards the multicast group G differs from the DVMRP (S,G) upstream neighboring device;
if the device has the BGMP (S,G) State, the BGMP (S,G) incoming interface is considered to be “
pruned,”
the device does not have the BGMP (*,G) State, and either the device does not have the DVMRP (S,G) State and the multicast packet was not received from the DVMRP upstream neighboring device or the device has the DVMRP (S,G) State and the DVMRP (S,G) incoming interface is not considered to be “
pruned”
;
means for processing the multicast packet in accordance with the DVMRP protocol; and
means for forwarding the multicast packet to each BGMP (S,G) child peer, if the device accepts the multicast packet as a result of processing the multicast packet in accordance with the DVMRP protocol; and
if the device has the BGMP (S,G) State, the BGMP (S,G) incoming interface is not considered to be “
pruned,”
the device does not have the BGMP (*,G) State, and either the device does not have the DVMRP (S,G) State and the multicast packet was not received from the DVMRP upstream neighboring device or the device has the DVMRP (S,G) State and the DVMRP (S,G) incoming interface is not considered to be “
pruned”
;
means for accepting the multicast packet;
means for forwarding the multicast packet to each DVMRP (S,G) downstream neighboring device;
means for forwarding the multicast packet to each BGMP (S,G) child peer;
means for sending a DVMRP Prune message to the DVMRP (S,G) upstream neighboring device and setting the DVMRP (S,G) incoming interface to “
pruned,”
if the DVMRP (S,G) upstream neighboring device differs from the BGMP (S,G) parent target, the multicast packet was received from the BGMP (S,G) parent target, the BGMP (S,G) incoming interface is considered to be “
preferred,” and
the DVMRP (S,G) incoming interface is considered to be “
deprecated;
” and
means for sending a BGMP Prune message to the BGMP (S,G) parent target and setting the BGMP (S,G) incoming interface to “
pruned,”
if the DVMRP (S,G) upstream neighboring device differs from the BGMP (S,G) parent target, the multicast packet was received from the DVMRP (S,G) upstream neighboring device, the DVMRP (S,G) incoming interface is considered to be “
preferred,” and
the BGMP (S,G) incoming interface is considered to be “
deprecated.”
-
-
38. The device of claim 37, further comprising:
-
means for determining that the downstream assert timer expired; and
means for sending a DBGMP Join message upstream in the BGMP Regional Tree if and only if the list of outgoing interfaces associated with the DVMRP (S,G) State is not empty.
-
-
21. The device of claim 20, wherein the DBGMP protocol logic comprises:
-
39. A program product comprising a computer readable medium having embodied therein a computer program for transitioning a multicast communication network from Distance Vector Multicast Routing Protocol (DVMRP) to Border Gateway Multicast Protocol (BGMP), the computer program comprising protocol logic including extended BGMP (DBGMP) protocol logic and optionally including DVMRP protocol logic, wherein the DVMRP protocol logic defines at least a DVMRP (S,G) State, a DVMRP Graft message, and a DVMRP Prune message, and wherein the DBGMP logic defines at least a BGMP (*,G) State, a BGMP (S,G) State, a BGMP Join message, a BGMP Prune message, a pending DBGMP (*,G) State for a multicast group G, a confirmed DBGMP (*,G) State for the multicast group G, a DBGMP (S,G) State for a multicast source S and the multicast group G, a DBGMP Join message, and a DBGMP Root message including a metric field.
- View Dependent Claims (40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57)
-
40. The program product of claim 39, wherein the DBGMP protocol logic comprises:
-
computer readable program code means for learning a multicast route for the multicast group G using a BGMP mechanism;
computer readable program code means for creating a pending DBGMP (*,G) State and sending a DBGMP Join message to a next hop device towards the multicast group G, if the device does not have a BGMP (*,G) State, there does not exist a complete BGMP path to the root domain, and the device does not have a DBGMP (*,G) State; and
computer readable program code means for creating the BGMP (*,G) State, sending a BGMP Join message to a next hop device towards the multicast group G, sending a BGMP Prune message and setting the BGMP (S,G) incoming interface to “
pruned”
for each BGMP (S,G) State that has an unpruned incoming interface and also has a different parent target that the BGMP (*,G) parent target, and sending a DVMRP Prune message to a DVMRP upstream neighboring device and setting the DVMRP (S,G) incoming interface to “
pruned”
for each DVMRP (S,G) that has an unpruned incoming interface and also has an upstream neighboring device that differs from the BGMP (*,G) parent target, if the device does not have the BGMP (*,G) State and there exists a complete BGMP path to the root domain.
-
-
41. The program product of claim 39, wherein the DBGMP protocol logic comprises:
-
computer readable program code means for detecting an active DVMRP (S,G) State; and
computer readable program code means for creating a DBGMP (S,G) State and sending a DBGMP Join message to a next hop device towards the multicast source S, if the next hop device towards the multicast source S supports the extended BGMP protocol and the device does not have a BGMP (*,G) State, a B-(S,G) State, or a DBGMP (S,G) State.
-
-
42. The program product of claim 39, wherein the device is a border device, and wherein the DBGMP protocol logic comprises:
computer readable program code means for creating a BGMP (S,G) State, setting the BGMP (S,G) incoming interface to “
preferred,” and
sending a BGMP Join message to the next hop device toward the multicast source S, if the device is a border device for a domain associated with an (S,G) state, the multicast source S is in a remote domain, there exists a complete BGMP path to the source domain, and the device does not have a BGMP (*,G) State or a BGMP (S,G) State.
-
43. The program product of claim 39, wherein the DBGMP protocol logic comprises:
-
computer readable program code means for receiving a BGMP Join message;
computer readable program code means for processing the BGMP Join message in accordance with the BGMP protocol;
computer readable program code means for deleting all DBGMP (*,G) and DBGMP (S,G) States;
computer readable program code means for setting the BGMP (S,G) incoming interface to “
pruned,”
if a BGMP (S,G) State was created as a result of processing the BGMP Join message and the device has the BGMP (*,G) State;
computer readable program code means for setting the BGMP (S,G) incoming interface to “
preferred,”
if a BGMP (S,G) State was created as a result of processing the BGMP Join message and the device does not have the BGMP (*,G) State;
computer readable program code means for setting each BGMP (S,G) incoming interface to “
pruned,”
if a BGMP (*,G) State was created as a result of processing the BGMP Join message and the BGMP (*,G) parent target differs from the BGMP (S,G) parent target;
computer readable program code means for setting each DVMRP (S,G) incoming interface to “
pruned,”
if a BGMP (*,G) State was created as a result of processing the BGMP Join message and the BGMP (*,G) parent target differs from the DVMRP (S,G) upstream neighboring device.
-
-
44. The program product of claim 39, wherein the DBGMP protocol logic comprises:
-
computer readable program code means for receiving a DBGMP Join message for (*,G) from a child peer;
computer readable program code means for returning a DBGMP Root message to the child peer with the metric value set to zero (0) and adding the child peer to a child target list, if the device has a BGMP (*,G) State;
computer readable program code means for adding the child as a pending peer to the child target list, if the device does not have the BGMP (*,G) State and the device has a pending DBGMP (*,G) state;
computer readable program code means for returning a DBGMP Root message to the child peer with the metric value set to infinity, if the device does not have the BGMP (*,G) State or a pending DBGMP (*,G) state and either the device has a confirmed DBGMP (*,G) state or the next hop device towards the multicast group G does not support the extended BGMP protocol;
computer readable program code means for creating a BGMP (*,G) State, adding the child to the child target list, and returning a DBGMP Root message to the child peer with the metric value set to zero (0), if the device does not have the BGMP (*,G) State, the pending DBGMP (*,G) state, or the confirmed DBGMP (*,G) state, the next hop device towards the multicast group G supports the extended BGMP protocol, and the device is a border device for the root domain; and
computer readable program code means for creating a DBGMP (*,G) State, forwarding a DBGMP Join message to the next hop device towards the multicast group G, and adding the child peer as a pending peer to the child target list, if the device does not have the BGMP (*,G) State, the pending DBGMP (*,G) state, or the confirmed DBGMP (*,G) state, the next hop device towards the multicast group G supports the extended BGMP protocol, and the device is not a border device for the root domain.
-
-
45. The program product of claim 39, wherein the DBGMP protocol logic comprises:
-
computer readable program code means for receiving a DBGMP Join message for (S,G) from a child peer;
computer readable program code means for returning a DBGMP Root message to the child peer with the metric value equal to a BGMP Regional MD-Metric for (S,G) and adding the child peer to the child target list, if the device has a BGMP (S,G) State;
computer readable program code means for adding the child peer as a pending peer to the child target list, if the device does not have the BGMP (S,G) State and the device has a DBGMP (S,G) State;
computer readable program code means for creating a BGMP (S,G) State, setting the BGMP (S,G) incoming interface to “
pruned,”
returning a DBGMP Root message to the child peer with the metric value equal to zero, and adding the child peer to the child target list, if the device does not have the BGMP (S,G) State or the DBGMP (S,G) State and the device has the BGMP (*,G) State;
computer readable program code means for creating a BGMP (S,G) State, setting the BGMP (S,G) incoming interface to “
pruned,”
returning a DBGMP Root message to the child peer with the metric value equal to the device'"'"'s metric value, and adding the child peer to the child target list, if the device does not have the BGMP (S,G) State, the DBGMP (S,G) State, or the BGMP (*,G) State and the next hop device towards the multicast source S does not support the extended BGMP protocol;
computer readable program code means for creating a BGMP (S,G) State, setting the BGMP (S,G) incoming interface to “
pruned,”
returning a DBGMP Root message to the child peer with the metric value equal to zero, and adding the child peer to the child target list, if the device does not have the BGMP (S,G) State, the DBGMP (S,G) State, or the BGMP (*,G) State, the next hop device towards the multicast source S supports the extended BGMP protocol, and the device is a border device for the source domain; and
computer readable program code means for creating a DBGMP (S,G) State, sending a DBGMP Join message to the next hop device towards the multicast source S, and adding the child peer as a pending peer to the child target list, if the device does not have the BGMP (S,G) State, the DBGMP (S,G) State, or the BGMP (*,G) State, the next hop device towards the multicast source S supports the extended BGMP protocol, and the device is not a border device for the source domain.
-
-
46. The program product of claim 39, wherein the DBGMP protocol logic comprises:
-
computer readable program code means for receiving a DBGMP Root message for (*,G) from a parent peer;
computer readable program code means for determining whether the metric value in the DBGMP Root message is equal to infinity or zero;
if the metric value in the DBGMP Root message is equal to infinity;
computer readable program code means for changing a pending DBGMP (*,G) State into a confirmed DBGMP (*,G) State, if the device has the pending DBGMP (*,G) State;
computer readable program code means for creating a confirmed DBGMP (*,G) State, if the device does not have the pending DBGMP (*,G) State;
computer readable program code means for sending a DBGMP Join message to the parent target of each BGMP (S,G) State and deleting the BGMP (*,G) State, if the device has a BGMP (*,G) State;
computer readable program code means for sending a BGMP Prune message to the parent peer; and
computer readable program code means for forwarding the DBGMP Root message to all child peers on the BGMP (*,G) child target list;
if the metric value in the DBGMP Root message is equal to zero;
computer readable program code means for deleting the DBGMP (*,G) State, if the device has the DBGMP (*,G) State;
computer readable program code means for creating a BGMP (*,G) State, if the device does not have the BGMP (*,G) State;
computer readable program code means for forwarding the DBGMP Root message to all pending peers in the child target list;
computer readable program code means for sending a BGMP Prune message to the BGMP (S,G) patent target and setting the BGMP (S,G) incoming interface to “
pruned,”
if the device has a BGMP (S,G) State and the next hop peers toward the multicast source S and the multicast group G differ; and
computer readable program code means for sending a DVMRP Prune message to the DVMRP (S,G) upstream neighboring device and setting the DVMRP (S,G) incoming interface to “
pruned,”
if the device has a DVMRP (S,G) State and the BGMP (*,G) parent target is different than the DVMRP (S,G) upstream neighboring device; and
computer readable program code means for clearing the pending status for all pending peers in the child target list, if the child target list includes any pending peers.
-
-
47. The program product of claim 39, wherein the DBGMP protocol logic comprises:
-
computer readable program code means for receiving a DBGMP Root message for (S,G) from a parent peer;
if the metric value in the DBGMP Root message is greater than the device'"'"'s metric to the multicast source S or if they are the same but the device'"'"'s metric to the multicast source S is infinity;
computer readable program code means for forwarding the DBGMP Root message to each child peer in the child target list;
computer readable program code means for deleting any existing DBGMP (S,G) State;
computer readable program code means for deleting any existing BGMP (S,G) State;
computer readable program code means for sending a BGMP Prune message to the parent peer;
computer readable program code means for sending a DVMRP Graft message to the DVMRP (S,G) upstream neighboring device, if the DVMRP (S,G) incoming interface is considered to be “
pruned” and
the device does not have a BGMP (*,G) State; and
computer readable program code means for setting the DVMRP (S,G) incoming interface to “
preferred,”
if the device does not have a BGMP (*,G) State;
if the metric value in the DBGMP Root message is less than the device'"'"'s metric to the multicast source S or if they are the same but the device'"'"'s metric to the multicast source S is not infinity;
computer readable program code means for forwarding the DBGMP Root message to all pending peers in the child target list;
computer readable program code means for changing the DBGMP (S,G) State into a BGMP (S,G) State, if the device has the DBGMP (S,G) State;
computer readable program code means for creating a BGMP (S,G) State, if the device does not have the DBGMP (S,G) State;
computer readable program code means for sending a BGMP Prune message to the BGMP (S,G) parent target and setting the BGMP (S,G) incoming interface to “
pruned,”
if the device has a BGMP (*,G) State and the next hop peers toward the multicast source S and the multicast group G differ; and
computer readable program code means for setting the DVMRP (S,G) incoming interface to “
deprecated,”
if the device has a DVMRP (S,G) State and the BGMP (S,G) parent target differs from DVMRP (S,G) upstream neighboring device; and
computer readable program code means for clearing the pending status for all pending peers in the child target list, if the child target list includes any pending peers.
-
-
48. The program product of claim 39, wherein the DBGMP protocol logic comprises:
-
computer readable program code means for receiving a first BGMP Prune message;
computer readable program code means for processing the first BGMP Prune message in accordance with the BGMP protocol; and
if a BGMP (*,G) State is deleted as a result of processing the first BGMP Prune message;
computer readable program code means for sending a second BGMP Prune message to the BGMP (*,G) parent target;
computer readable program code means for sending a DBGMP Join message to the parent target of each of a number of BGMP (S,G) states;
computer readable program code means for sending a third BGMP Prune message to the BGMP (S,G) parent target, if there is no DVMRP downstream neighbor device and no BGMP child target for (S,G) and the BGMP (S,G) incoming interface is not considered to be “
pruned;
” and
computer readable program code means for deleting the BGMP (S,G) State, if there is no DVMRP downstream neighbor device and no BGMP child target for (S,G).
-
-
49. The program product of claim 39, wherein the DBGMP protocol logic comprises:
-
computer readable program code means for receiving a DVMRP Prune message;
computer readable program code means for processing the DVMRP Prune message in accordance with the DVMRP protocol;
computer readable program code means for sending a DVMRP Prune message to the DVMRP (S,G) upstream neighboring device, if the DVMRP (S,G) outgoing interface list became empty as a result of processing the DVMRP Prune message, there is no child target for (S,G), and the DVMRP (S,G) incoming interface is not considered to be “
pruned;
” and
computer readable program code means for deleting the DVMRP (S,G) State, if the DVMRP (S,G) outgoing interface list became empty as a result of processing the DVMRP Prune message and there is no child target for (S,G).
-
-
50. The program product of claim 39, wherein the DBGMP protocol logic comprises:
-
computer readable program code means for receiving a DVMRP Graft message;
computer readable program code means for adding outgoing interface(s) in accordance with the DVMRP protocol; and
computer readable program code means for sending a DVMRP Graft message to the DVMRP (S,G) upstream neighboring device, if the DVMRP (S,G) outgoing interface list became empty as a result of processing the DVMRP Graft message.
-
-
51. The program product of claim 39, wherein the DBGMP protocol logic comprises:
computer readable program code means for pruning from the BGMP Regional Tree and forming a new BGMP Regional Tree, if the metric value associated with the device is less than the metric value associated with the Regional BGMP Root.
-
52. The program product of claim 51, wherein pruning from the BGMP Regional Tree and forming a new BGMP Regional Tree comprises:
-
computer readable program code means for sending a DBGMP Root message with the metric value equal to the device'"'"'s metric value to each of the child peers associated with each of the BGMP (S,G) States;
computer readable program code means for sending a BGMP Prune message to the BGMP (S,G) parent target and setting the BGMP (S,G) incoming interface to “
pruned,”
if the BGMP (S,G) incoming interface is not considered to be “
pruned;
” and
computer readable program code means for sending a DVMRP Graft message to the DVMRP (S,G) upstream neighboring device and setting the DVMRP (S,G) incoming interface to “
preferred,”
if the DVMRP (S,G) incoming interface is considered to be “
pruned.”
-
-
53. The program product of claim 39, wherein the DBGMP protocol logic comprises:
-
computer readable program code means for detecting a BGMP routing change;
computer readable program code means for changing from a Regional BGMP Root to a BGMP child; and
computer readable program code means for sending a DBGMP Root message to the child peers associated with each BGMP (S,G) State, wherein the DBGMP Root message includes a metric value equal to a new BGMP Regional MD-Metric for (S,G).
-
-
54. The program product of claim 39, wherein the DBGMP protocol logic comprises:
-
computer readable program code means for detecting a BGMP routing change;
computer readable program code means for changing from a BGMP child to a Regional BGMP Root; and
computer readable program code means for sending a DBGMP Root message to the child peers associated with each BGMP (S,G) State, wherein the DBGMP Root message includes a metric value equal to the device'"'"'s metric value.
-
-
55. The program product of claim 39, wherein the device is not an Mbone DVMRP node, and wherein the DBGMP protocol logic further comprises:
-
computer readable program code means for receiving a multicast packet for the (S,G) pair; and
computer readable program code means for processing the multicast packet in accordance with the BGMP protocol.
-
-
56. The program product of claim 39, wherein the device is an Mbone DVMRP node, and wherein the DBGMP protocol logic further comprises:
-
computer readable program code means for receiving a multicast packet for the (S,G) pair;
if the device does not have a DVMRP (S,G) State and the multicast packet was received from a DVMRP upstream neighboring device;
computer readable program code means for creating a DVMRP (S,G) State;
computer readable program code means for dropping the multicast packet, sending a DVMRP Prune message to the DVMRP (S,G) upstream neighboring device, and setting the DVMRP (S,G) incoming interface to “
pruned,”
if the device has a BGMP (*,G) State;
computer readable program code means for dropping the multicast packet, sending a DVMRP Prune message to the DVMRP (S,G) upstream neighboring device, and setting the DVMRP (S,G) incoming interface to “
pruned,”
if the device does not have the BGMP (*,G) State and the BGMP (S,G) incoming interface is considered to be “
preferred;
” and
computer readable program code means for processing the multicast packet in accordance with the DVMRP protocol, setting the DVMRP (S,G) incoming interface to “
preferred,” and
starting a downstream assert timer, if the device does not have the BGMP (*,G) State and the BGMP (S,G) incoming interface is not considered to be “
preferred;
”if the device has the DVMRP (S,G) State and the DVMRP (S,G) incoming interface is considered to be “
pruned”
;
computer readable program code means for processing the multicast packet in accordance with the BGMP protocol; and
computer readable program code means for forwarding a copy of the multicast packet to each DVMRP (S,G) downstream neighboring device, if the device accepts the multicast packet as a result of processing the multicast packet in accordance with the BGMP protocol;
if the device has a BGMP (*,G) State and either the device does not have the DVMRP (S,G) State and the multicast packet was not received from the DVMRP upstream neighboring device or the device has the DVMRP (S,G) State and the DVMRP (S,G) incoming interface is not considered to be “
pruned”
;
computer readable program code means for processing the multicast packet in accordance with the BGMP protocol;
computer readable program code means for setting all BGMP (S,G) incoming interfaces to “
pruned;
”computer readable program code means for setting all DVMRP (S,G) incoming interfaces to “
pruned;
” and
computer readable program code means for forwarding a copy of the multicast packet to each DVMRP (S,G) downstream neighboring device, if the device accepts the multicast packet as a result of processing the multicast packet in accordance with the BGMP protocol;
if the device does not have a BGMP (S,G) State, the device does not have the BGMP (*,G) State, and either the device does not have the DVMRP (S,G) State and the multicast packet was not received from the DVMRP upstream neighboring device or the device has the DVMRP (S,G) State and the DVMRP (S,G) incoming interface is not considered to be “
pruned”
;
computer readable program code means for processing the multicast packet in accordance with the DVMRP protocol; and
computer readable program code means for forwarding the multicast packet to a next hop device, if the device accepts the multicast packet as a result of processing the multicast packet in accordance with the DVMRP protocol, there exists a multicast route for the multicast group G, and the BGMP next hop device towards the multicast group G differs from the DVMRP (S,G) upstream neighboring device;
if the device has the BGMP (S,G) State, the BGMP (S,G) incoming interface is considered to be “
pruned,”
the device does not have the BGMP (*,G) State, and either the device does not have the DVMRP (S,G) State and the multicast packet was not received from the DVMRP upstream neighboring device or the device has the DVMRP (S,G) State and the DVMRP (S,G) incoming interface is not considered to be “
pruned”
;
computer readable program code means for processing the multicast packet in accordance with the DVMRP protocol; and
computer readable program code means for forwarding the multicast packet to each BGMP (S,G) child peer, if the device accepts the multicast packet as a result of processing the multicast packet in accordance with the DVMRP protocol; and
if the device has the BGMP (S,G) State, the BGMP (S,G) incoming interface is not considered to be “
pruned,”
the device does not have the BGMP (*,G) State, and either the device does not have the DVMRP (S,G) State and the multicast packet was not received from the DVMRP upstream neighboring device or the device has the DVMRP (S,G) State and the DVMRP (S,G) incoming interface is not considered to be “
pruned”
;
computer readable program code means for accepting the multicast packet;
computer readable program code means for forwarding the multicast packet to each DVMRP (S,G) downstream neighboring device;
computer readable program code means for forwarding the multicast packet to each BGMP (S,G) child peer;
computer readable program code means for sending a DVMRP Prune message to the DVMRP (S,G) upstream neighboring device and setting the DVMRP (S,G) incoming interface to “
pruned,”
if the DVMRP (S,G) upstream neighboring device differs from the BGMP (S,G) parent target, the multicast packet was received from the BGMP (S,G) parent target, the BGMP (S,G) incoming interface is considered to be “
preferred,” and
the DVMRP (S,G) incoming interface is considered to be “
deprecated;
” and
computer readable program code means for sending a BGMP Prune message to the BGMP (S,G) parent target and setting the BGMP (S,G) incoming interface to “
pruned,”
if the DVMRP (S,G) upstream neighboring device differs from the BGMP (S,G) parent target, the multicast packet was received from the DVMRP (S,G) upstream neighboring device, the DVMRP (S,G) incoming interface is considered to be “
preferred,” and
the BGMP (S,G) incoming interface is considered to be “
deprecated.”
-
-
57. The program product of claim 56, further comprising:
-
computer readable program code means for determining that the downstream assert timer expired; and
computer readable program code means for sending a DBGMP Join message upstream in the BGMP Regional Tree if and only if the list of outgoing interfaces associated with the DVMRP (S,G) State is not empty.
-
-
40. The program product of claim 39, wherein the DBGMP protocol logic comprises:
-
58. A multicast communication system comprising a plurality of interconnected routers, each router running at least a routing protocol, wherein at least one of said routers runs an extended BGMP (DBGMP) protocol that defines at least a BGMP (*,G) State, a BGMP (S,G) State, a BGMP Join message, a BGMP Prune message, a pending DBGMP (*,G) State for a multicast group G, a confirmed DBGMP (*,G) State for the multicast group G, a DBGMP (S,G) State for a multicast source S and the multicast group G, a DBGMP Join message, and a DBGMP Root message including a metric field.
Specification
- Resources
-
Current AssigneeAvaya Management L.P. (Avaya Incorporated)
-
Original AssigneeNortel Networks Limited (Nortel Networks Corporation)
-
InventorsLi, Yunzhou, Ng, Billy C., Shieh, Shuching
-
Primary Examiner(s)Kizou, Hassan
-
Assistant Examiner(s)LEVITAN, DMITRY
-
Application NumberUS09/344,931Time in Patent Office1,338 DaysField of Search370/390, 709/228, 709/235, 709/249US Class Current370/390CPC Class CodesH04L 12/185 with management of multicas...H04L 12/4633 Interconnection of networks...H04L 45/04 Interdomain routing, e.g. h...H04L 45/16 Multipoint routingH04L 45/18 Loop-free operationsH04L 45/48 Routing tree calculationH04L 45/52 Multiprotocol routers