draft-ietf-pim-bidir-02.txt   draft-ietf-pim-bidir-03.txt 
Internet Engineering Task Force PIM WG Internet Engineering Task Force PIM WG
INTERNET-DRAFT Mark Handley/ACIRI INTERNET-DRAFT Mark Handley/ACIRI
draft-ietf-pim-bidir-02.txt Isidor Kouvelas/Cisco draft-ietf-pim-bidir-03.txt Isidor Kouvelas/Cisco
Tony Speakman/Cisco Tony Speakman/Cisco
Lorenzo Vicisano/Cisco Lorenzo Vicisano/Cisco
2 March 2001 19 June 2001
Expires: September 2001 Expires: December 2001
Bi-directional Protocol Independent Multicast (BIDIR-PIM) Bi-directional Protocol Independent Multicast (BIDIR-PIM)
Status of this Document Status of this Document
This document is an Internet-Draft and is in full conformance with all This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC2026. provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering Task Internet-Drafts are working documents of the Internet Engineering Task
Force (IETF), its areas, and its working groups. Note that other groups Force (IETF), its areas, and its working groups. Note that other groups
skipping to change at page 3, line 34 skipping to change at page 3, line 34
3.5.1. DF Requirements . . . . . . . . . . . . . . . . . . . . . . 19 3.5.1. DF Requirements . . . . . . . . . . . . . . . . . . . . . . 19
3.5.2. DF Election description . . . . . . . . . . . . . . . . . . 20 3.5.2. DF Election description . . . . . . . . . . . . . . . . . . 20
3.5.2.1. Bootstrap Election . . . . . . . . . . . . . . . . . . . 20 3.5.2.1. Bootstrap Election . . . . . . . . . . . . . . . . . . . 20
3.5.2.2. Loser Metric Changes . . . . . . . . . . . . . . . . . . 21 3.5.2.2. Loser Metric Changes . . . . . . . . . . . . . . . . . . 21
3.5.2.3. Winner Metric Changes. . . . . . . . . . . . . . . . . . 22 3.5.2.3. Winner Metric Changes. . . . . . . . . . . . . . . . . . 22
3.5.2.4. Winner Loses Path. . . . . . . . . . . . . . . . . . . . 22 3.5.2.4. Winner Loses Path. . . . . . . . . . . . . . . . . . . . 22
3.5.2.5. Late Router Starting Up. . . . . . . . . . . . . . . . . 22 3.5.2.5. Late Router Starting Up. . . . . . . . . . . . . . . . . 22
3.5.2.6. Winner Dies. . . . . . . . . . . . . . . . . . . . . . . 22 3.5.2.6. Winner Dies. . . . . . . . . . . . . . . . . . . . . . . 22
3.5.3. Election Protocol Specification . . . . . . . . . . . . . . 23 3.5.3. Election Protocol Specification . . . . . . . . . . . . . . 23
3.5.3.1. Election State . . . . . . . . . . . . . . . . . . . . . 23 3.5.3.1. Election State . . . . . . . . . . . . . . . . . . . . . 23
3.5.3.2. Election Messages. . . . . . . . . . . . . . . . . . . . 23 3.5.3.2. Election Messages. . . . . . . . . . . . . . . . . . . . 24
3.5.3.3. Election Events. . . . . . . . . . . . . . . . . . . . . 24 3.5.3.3. Election Events. . . . . . . . . . . . . . . . . . . . . 24
3.5.3.4. Election State Transitions . . . . . . . . . . . . . . . 24 3.5.3.4. Election Notation. . . . . . . . . . . . . . . . . . . . 25
3.5.3.5. Election State Transitions . . . . . . . . . . . . . . . 25
3.6. Timers and Constants . . . . . . . . . . . . . . . . . . . . . 28 3.6. Timers and Constants . . . . . . . . . . . . . . . . . . . . . 28
3.7. PIM DF Election Packet Formats . . . . . . . . . . . . . . . . 31 3.7. BIDIR PIM Packet Formats . . . . . . . . . . . . . . . . . . . 32
3.7.1. Backoff Message . . . . . . . . . . . . . . . . . . . . . . 32 3.7.1. DF Election Packet Formats. . . . . . . . . . . . . . . . . 32
3.7.2. Pass Message. . . . . . . . . . . . . . . . . . . . . . . . 33 3.7.2. Backoff Message . . . . . . . . . . . . . . . . . . . . . . 33
4. RP Discovery. . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.7.3. Pass Message. . . . . . . . . . . . . . . . . . . . . . . . 34
5. Security Considerations . . . . . . . . . . . . . . . . . . . . . 34 3.7.4. Bidir Capable PIM-Hello Option. . . . . . . . . . . . . . . 34
4. RP Discovery. . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5. Security Considerations . . . . . . . . . . . . . . . . . . . . . 35
5.1. Appendix A: Election Reliability 5.1. Appendix A: Election Reliability
Enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.1.1. A.1 Missing Pass. . . . . . . . . . . . . . . . . . . . . . 34 5.1.1. A.1 Missing Pass. . . . . . . . . . . . . . . . . . . . . . 36
5.1.2. A.2 Periodic Winner Announcement. . . . . . . . . . . . . . 35 5.1.2. A.2 Periodic Winner Announcement. . . . . . . . . . . . . . 36
5.2. Appendix B: Interoperability with legacy 5.2. Appendix B: Interoperability with legacy
code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.3. Appendix C: Comparison with PIM-SM . . . . . . . . . . . . . . 35 5.3. Appendix C: Comparison with PIM-SM . . . . . . . . . . . . . . 37
6. Todo list.... . . . . . . . . . . . . . . . . . . . . . . . . . . 36 6. Todo list.... . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7. Authors' Addresses. . . . . . . . . . . . . . . . . . . . . . . . 36 7. Authors' Addresses. . . . . . . . . . . . . . . . . . . . . . . . 38
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 38
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 37 9. References. . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
9. References. . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 10. Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
10. Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1. Introduction 1. Introduction
This document specifies Bi-directional PIM, a variant of PIM Sparse-Mode This document specifies Bi-directional PIM, a variant of PIM Sparse-Mode
(PIM-SM) [9] that builds bi-directional shared trees connecting (PIM-SM) [9] that builds bi-directional shared trees connecting
multicast sources and receivers. multicast sources and receivers.
PIM-SM constructs uni-directional shared trees that are used to forward PIM-SM constructs uni-directional shared trees that are used to forward
data from senders to receivers of a multicast group. PIM-SM also allows data from senders to receivers of a multicast group. PIM-SM also allows
the construction of source specific trees, but this capability is not the construction of source specific trees, but this capability is not
skipping to change at page 6, line 43 skipping to change at page 6, line 43
Designated Forwarder (DF): Designated Forwarder (DF):
The protocol presented in this document is largely based on the The protocol presented in this document is largely based on the
concept of a Designated Forwarder (DF). A single DF exists for concept of a Designated Forwarder (DF). A single DF exists for
each RP on every link within a BIDIR-PIM domain (this includes each RP on every link within a BIDIR-PIM domain (this includes
both multi-access and point-to-point links). The DF is the router both multi-access and point-to-point links). The DF is the router
on the link with the best unicast route to the RP. A DF for a on the link with the best unicast route to the RP. A DF for a
given RP is in charge of forwarding downstream traffic onto the given RP is in charge of forwarding downstream traffic onto the
link, and forwarding upstream traffic from the link towards the link, and forwarding upstream traffic from the link towards the
RP. It does this for all the bi-directional groups served by the RP. It does this for all the bi-directional groups served by the
RP. The DF on a link is also responsible for interpreting IGMP RP. The DF on a link is also responsible for interpreting IGMP
information from local receivers and originating Join messages information from local receivers and processing Join messages from
towards the RP. other routers on the link.
RPF Interface RPF Interface
RPF stands for "Reverse Path Forwarding". The RPF Interface of a RPF stands for "Reverse Path Forwarding". The RPF Interface of a
router with respect to an address is the interface that the MRIB router with respect to an address is the interface that the MRIB
indicates should be used to forward packets to that address. In indicates should be used to forward packets to that address. In
the case of a BIDIR-PIM multicast group, the RPF interface is the the case of a BIDIR-PIM multicast group, the RPF interface is the
interface that would be used to send packets to the RP for the interface that would be used to send packets to the RP for the
group. group.
RPF Neighbor RPF Neighbor
skipping to change at page 9, line 47 skipping to change at page 9, line 47
For each router interface: For each router interface:
Acting DF information: Acting DF information:
o DF IP Address o DF IP Address
o DF metric o DF metric
Election information: Election information:
o DF Election-Timer (DFT) o Election State
o DF Election-Timer (DFT)
o Offer-Count (OC) o Offer-Count (OC)
Current best offer: Current best offer:
o IP address of best offering router o IP address of best offering router
o Best offering router metric o Best offering router metric
Designated Forwarder state is described in section 3.5. Designated Forwarder state is described in section 3.5.
3.1.3. Group State 3.1.3. Group State
skipping to change at page 11, line 33 skipping to change at page 11, line 33
packets to group G must be forwarded. packets to group G must be forwarded.
The macro pim_include(G) indicates the interfaces to which traffic might The macro pim_include(G) indicates the interfaces to which traffic might
be forwarded because of hosts that are local members on that interface. be forwarded because of hosts that are local members on that interface.
pim_include(G) = pim_include(G) =
{ all interfaces I such that: { all interfaces I such that:
I_am_DF(RP(G),I) AND local_receiver_include(G,I) } I_am_DF(RP(G),I) AND local_receiver_include(G,I) }
The clause "I_am_DF(RP,I)" is TRUE if the router is in the Win or The clause "I_am_DF(RP,I)" is TRUE if the router is in the Win or
Backoff states in the DF election state machine in section 3.5. Backoff states in the DF election state machine for interface I
Otherwise it is FALSE. (described in section 3.5 ). Otherwise it is FALSE.
The clause "local_receiver_include(G,I)" is true if the IGMP module or The clause "local_receiver_include(G,I)" is true if the IGMP module or
other local membership mechanism has determined that there are local other local membership mechanism has determined that there are local
members on interface I that desire to receive traffic sent to group G. members on interface I that desire to receive traffic sent to group G.
The set "joins(G)" is the set of all interfaces on which the router has The set "joins(G)" is the set of all interfaces on which the router has
received (*,G) Joins: received (*,G) Joins:
joins(G) = joins(G) =
{ all interfaces I such that { all interfaces I such that
skipping to change at page 12, line 14 skipping to change at page 12, line 14
DownstreamJPState(G,I) is the state of the finite state machine in DownstreamJPState(G,I) is the state of the finite state machine in
section 3.4.1. section 3.4.1.
RPF_DF(RP) is the neighbor that Join messages must be sent to in order RPF_DF(RP) is the neighbor that Join messages must be sent to in order
to reach the RP. This is the Designated-Forwarder on the to reach the RP. This is the Designated-Forwarder on the
RPF_interface(RP). RPF_interface(RP).
3.2. PIM Neighbor Discovery 3.2. PIM Neighbor Discovery
PIM routers exchange PIM Hello messages with their neighboring PIM PIM routers exchange PIM-Hello messages with their neighboring PIM
routers. These messages are used to update the Neighbor State described routers. These messages are used to update the Neighbor State described
in section 3.1. The procedures for generating and processing received in section 3.1. The procedures for generating and processing received
Hello messages as well as maintaining Neighbor State are specified in Hello messages as well as maintaining Neighbor State are specified in
the PIM-SM [9] documentation. the PIM-SM [9] documentation.
Bidir PIM introduces the Bidir_Capable PIM-Hello option that MUST be
included in all Hello messages from a Bidir-PIM capable router. The
Bidir_Capable option advertises the router's ability to participate in
the Bidir-PIM protocol. The format of the Bidir_Capable option is
described in section 3.7.
3.3. Data Packet Forwarding Rules 3.3. Data Packet Forwarding Rules
For groups mapping to a given RP, the following responsibilities are For groups mapping to a given RP, the following responsibilities are
uniquely assigned to the DF for that RP on each link: uniquely assigned to the DF for that RP on each link:
o The DF is the only router that forwards packets traveling downstream o The DF is the only router that forwards packets traveling downstream
onto the link. onto the link.
o The DF is the only router that picks-up upstream traveling packets off o The DF is the only router that picks-up upstream traveling packets off
the link to forward towards the RP. the link to forward towards the RP.
skipping to change at page 22, line 8 skipping to change at page 22, line 8
having made the best offer as the new DF using a Pass message. This having made the best offer as the new DF using a Pass message. This
message includes the IDs and metrics of both the old and new DFs. The message includes the IDs and metrics of both the old and new DFs. The
old DF stops performing its tasks as soon as the transmission is made. old DF stops performing its tasks as soon as the transmission is made.
The new DF assumes the role of the DF as soon as it receives the Pass The new DF assumes the role of the DF as soon as it receives the Pass
message. All other routers on the link take note of the new DF and its message. All other routers on the link take note of the new DF and its
metric. metric.
3.5.2.3. Winner Metric Changes 3.5.2.3. Winner Metric Changes
If the DF's routing metric to reach the RP changes to a worse value, it If the DF's routing metric to reach the RP changes to a worse value, it
sends a set of Election_Robustness randomly spaced Offer messages on the sends a set of Election_Robustness randomly spaced Winner messages on
link, advertising the new metric. Routers who receive this announcement the link, advertising the new metric. Routers who receive this
but have a better metric may respond with an Offer message which results announcement but have a better metric may respond with an Offer message
in the same handoff procedure described above. All routers assume the which results in the same handoff procedure described above. All
DF has not changed until they see a Pass or Winner message indicating routers assume the DF has not changed until they see a Pass or Winner
the change. message indicating the change.
There is no pressure to make this handoff quickly if the acting DF still There is no pressure to make this handoff quickly if the acting DF still
has a path to the RP. The old path may now be suboptimal but it will has a path to the RP. The old path may now be suboptimal but it will
still work while the re-election is in progress. still work while the re-election is in progress.
If the routing metric at the DF changes to a better value, a single If the routing metric at the DF changes to a better value, a single
Winner message is sent advertising the new metric. Winner message is sent advertising the new metric.
3.5.2.4. Winner Loses Path 3.5.2.4. Winner Loses Path
skipping to change at page 23, line 25 skipping to change at page 23, line 25
information, which will take significantly longer. information, which will take significantly longer.
3.5.3. Election Protocol Specification 3.5.3. Election Protocol Specification
This section provides the definitive specification for the DF election This section provides the definitive specification for the DF election
process. If any discrepancy exists between section 3.5.2 and this process. If any discrepancy exists between section 3.5.2 and this
section, the specification in this section is to be assumed correct. section, the specification in this section is to be assumed correct.
3.5.3.1. Election State 3.5.3.1. Election State
The DF election state is maintained per RP for each multicast enabled
interface on the router as introduced in section 3.1:
The state machine has the following four states:
Offer
Initial election state. When in the Offer state a router
thinks it can eventually become the winner and periodically
generates Offer messages.
Lose In this state the router knows that there either is a
different election winner or that no router on the link has a
path to the RP.
Winner
The router is the acting DF without any contest.
Backoff
The router is the acting DF but another router has made a bid
to take over.
In the state machine a router is considered to be an acting DF if it is
in the Win or Backoff states.
The operation of the election protocol makes use of the variables and The operation of the election protocol makes use of the variables and
timers described below. These are maintained per RP for each multicast timers described below:
enabled interface on the router as introduced in section 3.1:
Acting DF information Acting DF information
Used to store the election winner who is the currently acting Used to store the election winner who is the currently acting
DF. DF.
Election-Timer (DFT) Election-Timer (DFT)
Used to schedule transmission of Offer, Winner and Pass Used to schedule transmission of Offer, Winner and Pass
messages. messages.
Offer-Count (OC) Offer-Count (OC)
skipping to change at page 24, line 38 skipping to change at page 25, line 13
following events can take place: following events can take place:
o Discovery of new RP o Discovery of new RP
o Metric reported by the MRIB to reach the RP changes o Metric reported by the MRIB to reach the RP changes
o DF loses path to RP o DF loses path to RP
o Detection of DF failure o Detection of DF failure
3.5.3.4. Election State Transitions 3.5.3.4. Election Notation
In the state machine presented below a router is considered to be an The DF election state machine description uses the following notation in
acting DF if it is in the Win or Backoff states. addition to the pseudocode notation described earlier in this spec.
When an action of "set DF to Sender or Dest" is encountered during ?= denotes the operation of lowering a timer to a new value. If
the timer is not running then it is started using the new
value. If the timer is running with an expiration lower than
the new value, then the timer is not altered.
When a control message is received and actions are specified on a
condition that metrics are Better or Worse the comparison must be
performed as follows:
o On receipt of an Offer or Winner message compare our current
metrics for the DF with the metrics advertised for the sender of
the message.
o On receipt of a Backoff or Pass message compare our current
metrics for the DF with the metrics advertised for the target of
the message.
When an action of "set DF to Sender or Target" is encountered during
receipt of a Winner, Pass or Backoff message it means the following: receipt of a Winner, Pass or Backoff message it means the following:
o On receipt of a Winner message set the DF to be the originator of o On receipt of a Winner message set the DF to be the originator of
the message and record its metrics. the message and record its metrics.
o On receipt of a Pass message set the DF to be the target of the o On receipt of a Pass message set the DF to be the target of the
message and record its metrics. message and record its metrics.
o On receipt of a Backoff message set the DF to be the originator o On receipt of a Backoff message set the DF to be the originator
of the message and record its metrics. of the message and record its metrics.
3.5.3.5. Election State Transitions
+-----------------------------------+ +-----------------------------------+
| Figures omitted from text version | | Figures omitted from text version |
+-----------------------------------+ +-----------------------------------+
Figure 3: Designated Forwarder election state-machine Figure 3: Designated Forwarder election state-machine
In tabular form, the state machine is: In tabular form, the state machine is:
+-------------++--------------------------------------------------------+ +-------------++--------------------------------------------------------+
| || Event | | || Event |
| Prev State ++------------------+------------------+------------------+ | Prev State ++------------------+------------------+------------------+
| || Recv better | Recv better | Recv better | | || Recv better | Recv better | Recv better |
| || Pass / Win | Backoff | Offer | | || Pass / Win | Backoff | Offer |
+-------------++------------------+------------------+------------------+ +-------------++------------------+------------------+------------------+
| || -> Lose | - | - | | || -> Lose | - | - |
| || DF = Sender | Set Timer to | Set Timer to | | Offer || DF = Sender or | DFT = BOperiod | DFT = OPhigh; |
| Offer || | Robustness * | Robustness * | | || Target; Stop | + OPlow; OC = | OC = 0 |
| || | offer_int; Set | offer_int; Set | | || DFT | 0 | |
| || | Count to 0 | Count to 0 |
+-------------++------------------+------------------+------------------+ +-------------++------------------+------------------+------------------+
| || - | - | -> Offer | | || - | - | -> Offer |
| || DF = Sender or | DF = Sender or | Set Timer to | | Lose || DF = Sender or | DF = Sender | DFT = OPhigh; |
| Lose || Dest | Dest | Robustness * | | || Target | | OC = 0 |
| || | | offer_int; Set |
| || | | Count to 0 |
+-------------++------------------+------------------+------------------+ +-------------++------------------+------------------+------------------+
| || -> Lose | -> Lose | -> Backoff | | || -> Lose | -> Lose | -> Backoff |
| || DF = Sender or | DF = Sender or | Set Best to | | || DF = Sender or | DF = Sender; | Set Best to |
| Win || Dest; Stop | Dest; Stop | Sender; Send | | Win || Target; Stop | Stop DFT | Sender; Send |
| || Timer | Timer | Backoff; Set | | || DFT | | Backoff; DFT = |
| || | | Timer to | | || | | BOperiod |
| || | | backoff_int |
+-------------++------------------+------------------+------------------+ +-------------++------------------+------------------+------------------+
| || -> Lose | -> Lose | - | | || -> Lose | -> Lose | - |
| || DF = Sender or | DF = Sender or | Set Best to | | || DF = Sender or | DF = Sender; | Set Best to |
| Backoff || Dest | Dest | Sender; Send | | Backoff || Target; Stop | Stop DFT | Sender; Send |
| || | | Backoff; Set | | || DFT | | Backoff; DFT = |
| || | | Timer to | | || | | BOperiod |
| || | | backoff_int |
+-------------++------------------+------------------+------------------+ +-------------++------------------+------------------+------------------+
+-----------++----------------------------------------------------------+ +-----------++----------------------------------------------------------+
| || Event | | || Event |
| ++-------------+--------------+--------------+--------------+ | ++-------------+--------------+--------------+--------------+
|Prev State ||Recv Backoff | Recv Pass | Recv Worse | Recv worse | |Prev State ||Recv Backoff | Recv Pass | Recv Worse | Recv worse |
| ||for us | for us | Pass / Win / | Offer | | ||for us | for us | Pass / Win / | Offer |
| || | | Backoff | | | || | | Backoff | |
+-----------++-------------+--------------+--------------+--------------+ +-----------++-------------+--------------+--------------+--------------+
| ||- | -> Win | - | - | | ||- | -> Win | - | - |
| ||Set Timer to | Stop Timer | Set DF to | Set/Lower | | ||DFT = | Stop DFT | Set DF to | DFT ?= |
| ||Hi; Set | | Sender or | Timer to | |Offer ||BOperiod + | | Sender or | OPlow; OC = |
|Offer ||Count to 0 | | Dest; | Low; Set | | ||OPlow; OC = | | Target; DFT | 0 |
| || | | Set/Lower | Count to 0 | | ||0 | | ?= OPlow; OC | |
| || | | Timer to | | | || | | = 0 | |
| || | | Low; Set | |
| || | | Count to 0 | |
+-----------++-------------+--------------+--------------+--------------+ +-----------++-------------+--------------+--------------+--------------+
| ||-> Offer | -> Offer | -> Offer | -> Offer | | ||-> Offer | -> Offer | -> Offer | -> Offer |
| ||DF = Sender | DF = Sender | DF = Sender | Set Timer to | | ||DF = Sender; | DF = Sender; | DF = Sender | DFT = OPlow; |
| ||or Dest; Set | or Dest; Set | or Dest; Set | offer_int; | |Lose ||DFT = OPlow; | DFT = OPlow; | or Target; | OC = 0 |
|Lose ||Timer to | Timer to | Timer to | Set Count to | | ||OC = 0 | OC = 0 | DFT = OPlow; | |
| ||offer_int; | offer_int; | offer_int; | 0 | | || | | OC = 0 | |
| ||Set Count to | Set Count to | Set Count to | |
| ||0 | 0 | 0 | |
+-----------++-------------+--------------+--------------+--------------+ +-----------++-------------+--------------+--------------+--------------+
| ||-> Offer | -> Offer | -> Offer | - | | ||-> Offer | -> Offer | -> Offer | - |
| ||DF = Sender | DF = Sender | DF = Sender | Send Winner | | ||DF = Sender; | DF = Sender; | DF = Sender | Send Winner |
| ||or Dest; Set | or Dest; Set | or Dest; Set | | |Win ||DFT = OPlow; | DFT = OPlow; | or Target; | |
|Win ||Timer to | Timer to | Timer to | | | ||OC = 0 | OC = 0 | DFT = OPlow; | |
| ||offer_int; | offer_int; | offer_int; | | | || | | OC = 0 | |
| ||Set Count to | Set Count to | Set Count to | |
| ||0 | 0 | 0 | |
+-----------++-------------+--------------+--------------+--------------+ +-----------++-------------+--------------+--------------+--------------+
| ||-> Offer | -> Offer | -> Offer | -> Win | | ||-> Offer | -> Offer | -> Offer | -> Win |
| ||DF = Sender | DF = Sender | DF = Sender | Send Winner; | | ||DF = Sender; | DF = Sender; | DF = Sender | Send Winner; |
| ||or Dest; Set | or Dest; Set | or Dest; Set | Stop Timer | |Backoff ||DFT = OPlow; | DFT = OPlow; | or Target; | Stop DFT |
|Backoff ||Timer to | Timer to | Timer to | | | ||OC = 0 | OC = 0 | DFT = OPlow; | |
| ||offer_int; | offer_int; | offer_int; | | | || | | OC = 0 | |
| ||Set Count to | Set Count to | Set Count to | |
| ||0 | 0 | 0 | |
+-----------++-------------+--------------+--------------+--------------+ +-----------++-------------+--------------+--------------+--------------+
+-----------------------------------------------------------------------+ +-----------------------------------------------------------------------+
| In Offer State | | In Offer State |
+-----------------------+------------------------+----------------------+ +-----------------------+-----------------------+-----------------------+
| Timer Expires and | Timer Expires and | Timer Expires and | | DFT Expires and OC | DFT Expires and OC | DFT Expires and OC |
| Count is less than | Count is equal to | Count is equal to | | is less than | is equal to | is equal to |
| Robustness | Robustness and we | Robustness and | | Robustness | Robustness and we | Robustness and |
| | have path to RP | there is no path | | | have path to RP | there is no path |
| | | to RP | | | | to RP |
+-----------------------+------------------------+----------------------+ +-----------------------+-----------------------+-----------------------+
| - | -> Win | -> Lose | | - | -> Win | -> Lose |
| Send Offer; Set | Send Winner | Set DF to None | | Send Offer; DFT = | Send Winner | Set DF to None |
| Timer to | | | | OPlow; OC = OC + 1 | | |
| offer_int; | | | +-----------------------+-----------------------+-----------------------+
| Increase Count by | | |
| 1 | | |
+-----------------------+------------------------+----------------------+
+-----------------------------------------------------------------------+ +-----------------------------------------------------------------------+
| In Lose State | | In Lose State |
+-----------------------------------+-----------------------------------+ +--------------------------------+--------------------------------------+
| Detect DF Failure | Metric changes and now | | Detect DF Failure | Metric changes and now |
| | is better than DF | | | is better than DF |
+-----------------------------------+-----------------------------------+ +--------------------------------+--------------------------------------+
| -> Offer | -> Offer | | -> Offer | -> Offer |
| DF = None; Set timer to | Set timer to offer_int; | | DF = None; DFT = | DFT = OPlow_int; OC = 0 |
| offer_int; Set Count to | Set Count to 0 | | OPlow_int; OC = 0 | |
| 0 | | +--------------------------------+--------------------------------------+
+-----------------------------------+-----------------------------------+
+-----------------------------------------------------------------------+ +-----------------------------------------------------------------------+
| In Win State | | In Win State |
+------------------------+------------------------+---------------------+ +-----------------------+------------------------+----------------------+
| Metric changes and | Timer Expires and | No path to RP | | Metric changes and | Timer Expires and | No path to RP |
| is now worse | Count is less than | | | is now worse | Count is less than | |
| | Robustness | | | | Robustness | |
+------------------------+------------------------+---------------------+ +-----------------------+------------------------+----------------------+
| - | - | -> Offer | | - | - | -> Offer |
| Set Timer to | Send Winner; Set | Set DF to None; | | DFT = OPlow; OC = | Send Winner; DFT = | Set DF to None; |
| offer_int; Set | Timer to | Set Timer to | | 0 | OPlow; OC = OC + 1 | DFT = OPlow; OC = |
| Count to 0 | offer_int; | offer_int; Set | | | | 0 |
| | Increment Count by | Count to 0 | +-----------------------+------------------------+----------------------+
| | 1 | |
+------------------------+------------------------+---------------------+
+-----------------------------------------------------------------------+ +-----------------------------------------------------------------------+
| In Backoff State | | In Backoff State |
+-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+
| Metric changes and is | Timer Expires | | Metric changes and is | Timer Expires |
| now better than Best | | | now better than Best | |
+-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+
| -> Win | -> Lose | | -> Win | -> Lose |
| Stop Timer | Send Pass; Set DF to | | Stop Timer | Send Pass; Set DF to |
| | stored Best | | | stored Best |
skipping to change at page 31, line 5 skipping to change at page 32, line 5
+--------------------------+-------------------+------------------------+ +--------------------------+-------------------+------------------------+
| Constant Name | Value | Explanation | | Constant Name | Value | Explanation |
+--------------------------+-------------------+------------------------+ +--------------------------+-------------------+------------------------+
| Election_Robustness | Default: 3 | Minimum number of | | Election_Robustness | Default: 3 | Minimum number of |
| | | election messages | | | | election messages |
| | | that must be lost | | | | that must be lost |
| | | in order for | | | | in order for |
| | | election to fail. | | | | election to fail. |
+--------------------------+-------------------+------------------------+ +--------------------------+-------------------+------------------------+
3.7. PIM DF Election Packet Formats 3.7. BIDIR PIM Packet Formats
This section describes the details of the packet formats for BIDIR-PIM This section describes the details of the packet formats for BIDIR-PIM
control messages. BIDIR-PIM shares a number of control messages in control messages. BIDIR-PIM shares a number of control messages in
common with PIM-SM [9] well as the format for the Encoded-Unicast common with PIM-SM [9] well as the format for the Encoded-Unicast
address. For details on the format of these packets please refer to the address. For details on the format of these packets please refer to the
PIM-SM documentation. Here we will only define the additional packets PIM-SM documentation. Here we will only define the additional packets
that are introduced by BIDIR-PIM. These are the packets used in the DF that are introduced by BIDIR-PIM. These are the packets used in the DF
election process. election process as well as the Bidir_Capable PIM-Hello option.
3.7.1. DF Election Packet Formats
All PIM control messages have IP protocol number 103. All PIM control messages have IP protocol number 103.
BIDIR-PIM messages are multicast with TTL 1 to the `ALL-PIM-ROUTERS' BIDIR-PIM messages are multicast with TTL 1 to the `ALL-PIM-ROUTERS'
group `224.0.0.13'. group `224.0.0.13'.
All DF election BIDIR-PIM control messages share the common header All DF election BIDIR-PIM control messages share the common header
below: below:
0 1 2 3 0 1 2 3
skipping to change at page 32, line 26 skipping to change at page 33, line 28
message sender used to obtain the route to the RP-address. message sender used to obtain the route to the RP-address.
Sender Metric Sender Metric
The unicast routing table metric used by the message sender to The unicast routing table metric used by the message sender to
reach the RP. The metric is in units applicable to the unicast reach the RP. The metric is in units applicable to the unicast
routing protocol used. routing protocol used.
In addition to the fields defined above the Backoff and Pass messages In addition to the fields defined above the Backoff and Pass messages
have the extra fields described below. have the extra fields described below.
3.7.1. Backoff Message 3.7.2. Backoff Message
The Backoff message uses the following fields in addition to the common The Backoff message uses the following fields in addition to the common
election message format described above. election message format described above.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Encoded-Unicast-Offering-Address | | Encoded-Unicast-Offering-Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Offering Metric Preference | | Offering Metric Preference |
skipping to change at page 33, line 14 skipping to change at page 34, line 15
Offering Metric Offering Metric
The unicast routing table metric used by the offering router to The unicast routing table metric used by the offering router to
reach the RP. The metric is in units applicable to the unicast reach the RP. The metric is in units applicable to the unicast
routing protocol used. routing protocol used.
Interval Interval
The backoff interval in milliseconds to be used by routers with The backoff interval in milliseconds to be used by routers with
worse metrics than the offering router. worse metrics than the offering router.
3.7.2. Pass Message 3.7.3. Pass Message
The Pass message uses the following fields in addition to the common The Pass message uses the following fields in addition to the common
election fields described above. election fields described above.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Encoded-Unicast-New-Winner-Address | | Encoded-Unicast-New-Winner-Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| New Winner Metric Preference | | New Winner Metric Preference |
skipping to change at page 33, line 42 skipping to change at page 34, line 43
New Winner Metric Preference New Winner Metric Preference
Preference value assigned to the unicast routing protocol that the Preference value assigned to the unicast routing protocol that the
offering router used to obtain the route to RP-address. offering router used to obtain the route to RP-address.
New Winner Metric New Winner Metric
The unicast routing table metric used by the offering router to The unicast routing table metric used by the offering router to
reach the RP. The metric is in units applicable to the unicast reach the RP. The metric is in units applicable to the unicast
routing protocol used. routing protocol used.
3.7.4. Bidir Capable PIM-Hello Option
BIDIR-PIM introduces one new PIM-Hello option.
o OptionType 22: Bidir Capable
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 22 | Length = 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
4. RP Discovery 4. RP Discovery
Routers discover that a range of multicast group addresses operates in Routers discover that a range of multicast group addresses operates in
bi-directional mode and the address of the Rendezvous-Point serving the bi-directional mode and the address of the Rendezvous-Point serving the
group range either through static configuration or using an automatic RP group range either through static configuration or using an automatic RP
discovery mechanism like the PIM Bootsrtap mechanism (BSR). [12]. discovery mechanism like the PIM Bootsrtap mechanism (BSR). [12].
By default the BSR protocol advertises RPs that operate the PIM-SM By default the BSR protocol advertises RPs that operate the PIM-SM
protocol. In order to identify a RP as operating in BIDIR mode, the protocol. In order to identify a RP as operating in BIDIR mode, the
Encoded-Group Address field in Bootstrap and Candidate-RP Advertisement Encoded-Group Address field in Bootstrap and Candidate-RP Advertisement
messages has been extended by adding the BIDIR bit (B-bit) as specified messages has been extended by adding the BIDIR bit (B-bit) as specified
below: below:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Addr Family | Encoding Type |B| Reserved | Mask Len | | Addr Family | Encoding Type |B| Reserved | Mask Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Group Multicast Address | | Group Multicast Address |
skipping to change at page 37, line 32 skipping to change at page 38, line 42
Cisco Systems Cisco Systems
lorenzo@cisco.com lorenzo@cisco.com
8. Acknowledgments 8. Acknowledgments
The bidir proposal in this draft is heavily based on the ideas and text The bidir proposal in this draft is heavily based on the ideas and text
presented by Estrin and Farinacci in [10]. The main difference between presented by Estrin and Farinacci in [10]. The main difference between
the two proposals is in the method chosen for upstream forwarding. the two proposals is in the method chosen for upstream forwarding.
We would also like to thank Deborah Estrin at ISI/USC as well as Nidhi We would also like to thank Deborah Estrin at ISI/USC as well as Nidhi
Bhaskar, Yiqun Cai, Rajitha Sumanasakera and Beau Williamson at cisco Bhaskar, Yiqun Cai, Apoorva Karan, Rajitha Sumanasekera and Beau
for their contributions and comments to this draft. Williamson at cisco for their contributions and comments to this draft.
9. References 9. References
[1] T. Bates , R. Chandra , D. Katz , Y. Rekhter, "Multiprotocol [1] T. Bates , R. Chandra , D. Katz , Y. Rekhter, "Multiprotocol
Extensions for BGP-4", RFC 2283 Extensions for BGP-4", RFC 2283
[2] S.E. Deering, "Host extensions for IP multicasting", RFC 1112, Aug [2] S.E. Deering, "Host extensions for IP multicasting", RFC 1112, Aug
1989. 1989.
[3] W. Fenner, "Internet Group Management Protocol, Version 2", RFC [3] W. Fenner, "Internet Group Management Protocol, Version 2", RFC
skipping to change at page 38, line 28 skipping to change at page 39, line 42
Independent Multicast - Sparse Mode (PIM-SM): Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol
Specification (Revised)", Work In Progress, <draft-ietf-pim-sm- Specification (Revised)", Work In Progress, <draft-ietf-pim-sm-
v2-new-01.txt>, 2000. v2-new-01.txt>, 2000.
[10] D. Estrin, D. Farinacci, "Bi-directional Shared Trees in PIM-SM", [10] D. Estrin, D. Farinacci, "Bi-directional Shared Trees in PIM-SM",
Work In Progress, <draft-farinacci-bidir-pim-01.txt>, May 1999. Work In Progress, <draft-farinacci-bidir-pim-01.txt>, May 1999.
[11] D. Estrin et al, "Protocol Independent Multicast-Sparse Mode (PIM- [11] D. Estrin et al, "Protocol Independent Multicast-Sparse Mode (PIM-
SM): Protocol Specification", RFC 2362, Nov 1999. SM): Protocol Specification", RFC 2362, Nov 1999.
[12] W. Fenner, M. Handley, H. Holbrook, I. Kouvelas, "Bootstrap Router [12] W. Fenner, M. Handley, R. Kermode and D. Thaler, "Bootstrap Router
(BSR) Mechanism for PIM Sparse Mode", draft-ietf-pim-sm-bsr-00.txt, (BSR) Mechanism for PIM Sparse Mode", draft-ietf-pim-sm-bsr-00.txt,
work in progress. work in progress.
10. Index 10. Index
DownstreamJPState(G,I) . . . . . . . . . . . . . . . . . . . . . . . 11 DownstreamJPState(G,I) . . . . . . . . . . . . . . . . . . . . . . . 11
ET(G,I). . . . . . . . . . . . . . . . . . . . . . . . . . . . .10,14,29 ET(G,I). . . . . . . . . . . . . . . . . . . . . . . . . . . . .10,14,30
ET(RP,I) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 ET(RP,I) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
I_am_DF(RP,I). . . . . . . . . . . . . . . . . . . . . . . . . .11,13,15 I_am_DF(RP,I). . . . . . . . . . . . . . . . . . . . . . . . . .11,13,16
J/P_HoldTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 J/P_HoldTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
J/P_Override_Interval. . . . . . . . . . . . . . . . . . . . . . . 16,30 J/P_Override_Interval. . . . . . . . . . . . . . . . . . . . . . . 16,31
JoinDesired(G) . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 JoinDesired(G) . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
joins(G) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 joins(G) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
JT(*,G). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 JT(*,G). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
JT(G). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10,30 JT(G). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10,31
local_receiver_include(G,I). . . . . . . . . . . . . . . . . . . . . 11 local_receiver_include(G,I). . . . . . . . . . . . . . . . . . . . . 11
NLT(N,I) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 NLT(N,I) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Offer_Period . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Offer_Period . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
olist(G) . . . . . . . . . . . . . . . . . . . . . . . . . . . .11,13,18 olist(G) . . . . . . . . . . . . . . . . . . . . . . . . . . . .11,13,18
OT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 OT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
pim_include(G) . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 pim_include(G) . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
PPT(G,I) . . . . . . . . . . . . . . . . . . . . . . . . . . . .10,14,30 PPT(G,I) . . . . . . . . . . . . . . . . . . . . . . . . . . . .10,14,31
RPF_interface(RP). . . . . . . . . . . . . . . . . . . . . . . . . 11,13 RPF_interface(RP). . . . . . . . . . . . . . . . . . . . . . . . . 11,13
t_override . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18,30 t_override . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18,31
t_periodic . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18,30 t_periodic . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18,31
t_suppressed . . . . . . . . . . . . . . . . . . . . . . . . . . . 18,30 t_suppressed . . . . . . . . . . . . . . . . . . . . . . . . . . . 18,31
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/