📄 draft-ietf-pim-sm-v2-new-11.txt
字号:
rules.o Section 4.6 specifies the PIM Assert generation and processing rules.o Section 4.7 specifies the RP discovery mechanisms.o The subset of PIM required to support Source-Specific Multicast, PIM- SSM, is described in Section 4.8.o PIM packet formats are specified in Section 4.9.o A summary of PIM-SM timers and their default values is given in Section 4.10.o Appendix A in Section 11 specifies the PIM Multicast Border Router behavior.4.1. PIM Protocol StateThis section specifies all the protocol state that a PIM implementationshould maintain in order to function correctly. We term this state theTree Information Base or TIB, as it holds the state of all the multicastdistribution trees at this router. In this specification we define PIMmechanisms in terms of the TIB. However, only a very simpleimplementation would actually implement packet forwarding operations inFenner/Handley/Holbrook/Kouvelas Section 4.1. [Page 13]INTERNET-DRAFT Expires: April 2005 October 2004terms of this state. Most implementations will use this state to builda multicast forwarding table, which would then be updated when therelevant state in the TIB changes.Although we specify precisely the state to be kept, this does not meanthat an implementation of PIM-SM needs to hold the state in this form.This is actually an abstract state definition, which is needed in orderto specify the router's behavior. A PIM-SM implementation is free tohold whatever internal state it requires, and will still be conformantwith this specification so long as it results in the same externallyvisible protocol behavior as an abstract router that holds the followingstate.We divide TIB state into four sections:(*,*,RP) state State that maintains per-RP trees, for all groups served by a given RP.(*,G) state State that maintains the RP tree for G.(S,G) state State that maintains a source-specific tree for source S and group G.(S,G,rpt) state State that maintains source-specific information about source S on the RP tree for G. For example, if a source is being received on the source-specific tree, it will normally have been pruned off the RP tree. This prune state is (S,G,rpt) state.The state that should be kept is described below. Of course,implementations will only maintain state when it is relevant toforwarding operations - for example, the "NoInfo" state might be assumedfrom the lack of other state information, rather than being heldexplicitly.4.1.1. General Purpose StateA router holds the following non-group-specific state: For each interface: o Override Interval o Propagation DelayFenner/Handley/Holbrook/Kouvelas Section 4.1.1. [Page 14]INTERNET-DRAFT Expires: April 2005 October 2004 o Suppression state: One of {"Enable", "Disable"} Neighbor State: For each neighbor: o Information from neighbor's Hello o Neighbor's GenID. o Neighbor Liveness Timer (NLT) Designated Router (DR) State: o Designated Router's IP Address o DR's DR PriorityThe Override Interval, the Propagation Delay and the Interfacesuppression state are described in Section 4.3.3. Designated Routerstate is described in Section 4.3.4.1.2. (*,*,RP) StateFor every RP a router keeps the following state: (*,*,RP) state: For each interface: PIM (*,*,RP) Join/Prune State: o State: One of {"NoInfo" (NI), "Join" (J), "Prune- Pending" (PP)} o Prune-Pending Timer (PPT) o Join/Prune Expiry Timer (ET) Not interface specific: Upstream (*,*,RP) Join/Prune State: o State: One of {"NotJoined(*,*,RP)", "Joined(*,*,RP)"} o Upstream Join/Prune Timer (JT)Fenner/Handley/Holbrook/Kouvelas Section 4.1.2. [Page 15]INTERNET-DRAFT Expires: April 2005 October 2004 o Last RPF Neighbor towards RP that was usedPIM (*,*,RP) Join/Prune state is the result of receiving PIM (*,*,RP)Join/Prune messages on this interface, and is specified in Section4.5.1.The upstream (*,*,RP) Join/Prune State reflects the state of theupstream (*,*,RP) state machine described in Section 4.5.5.The upstream (*,*,RP) Join/Prune Timer is used to send out periodicJoin(*,*,RP) messages, and to override Prune(*,*,RP) messages from peerson an upstream LAN interface.The last RPF neighbor towards the RP is stored because if the MRIBchanges then the RPF neighbor towards the RP may change. If it does so,then we need to trigger a new Join(*,*,RP) to the new upstream neighborand a Prune(*,*,RP) to the old upstream neighbor. Similarly, if arouter detects through a changed GenID in a Hello message that theupstream neighbor towards the RP has rebooted, then it should re-instantiate state by sending a Join(*,*,RP). These mechanisms arespecified in Section 4.5.5.4.1.3. (*,G) StateFor every group G a router keeps the following state: (*,G) state: For each interface: Local Membership: State: One of {"NoInfo", "Include"} PIM (*,G) Join/Prune State: o State: One of {"NoInfo" (NI), "Join" (J), "Prune- Pending" (PP)} o Prune-Pending Timer (PPT) o Join/Prune Expiry Timer (ET) (*,G) Assert Winner State o State: One of {"NoInfo" (NI), "I lost Assert" (L), "I won Assert" (W)} o Assert Timer (AT)Fenner/Handley/Holbrook/Kouvelas Section 4.1.3. [Page 16]INTERNET-DRAFT Expires: April 2005 October 2004 o Assert winner's IP Address (AssertWinner) o Assert winner's Assert Metric (AssertWinnerMetric) Not interface specific: Upstream (*,G) Join/Prune State: o State: One of {"NotJoined(*,G)", "Joined(*,G)"} o Upstream Join/Prune Timer (JT) o Last RP Used o Last RPF Neighbor towards RP that was usedLocal membership is the result of the local membership mechanism (suchas IGMP or MLD) running on that interface. It need not be kept if thisrouter is not the DR on that interface unless this router won a (*,G)assert on this interface for this group, although implementations mayoptionally keep this state in case they become the DR or assert winner.We recommend storing this information if possible, as it reduces latencyconverging to stable operating conditions after a failure causing achange of DR. This information is used by the pim_include(*,G) macrodescribed in Section 4.1.6.PIM (*,G) Join/Prune state is the result of receiving PIM (*,G)Join/Prune messages on this interface, and is specified in Section4.5.2. The state is used by the macros that calculate the outgoinginterface list in Section 4.1.6, and in the JoinDesired(*,G) macro(defined in Section 4.5.6) that is used in deciding whether a Join(*,G)should be sent upstream.(*,G) Assert Winner state is the result of sending or receiving (*,G)Assert messages on this interface. It is specified in Section 4.6.2.The upstream (*,G) Join/Prune State reflects the state of the upstream(*,G) state machine described in Section 4.5.6.The upstream (*,G) Join/Prune Timer is used to send out periodicJoin(*,G) messages, and to override Prune(*,G) messages from peers on anupstream LAN interface.The last RP used must be stored because if the RP-Set changes (Section4.7) then state must be torn down and rebuilt for groups whose RPchanges.Fenner/Handley/Holbrook/Kouvelas Section 4.1.3. [Page 17]INTERNET-DRAFT Expires: April 2005 October 2004The last RPF neighbor towards the RP is stored because if the MRIBchanges then the RPF neighbor towards the RP may change. If it does so,then we need to trigger a new Join(*,G) to the new upstream neighbor anda Prune(*,G) to the old upstream neighbor. Similarly, if a routerdetects through a changed GenID in a Hello message that the upstreamneighbor towards the RP has rebooted, then it should re-instantiatestate by sending a Join(*,G). These mechanisms are specified in Section4.5.6.4.1.4. (S,G) StateFor every source/group pair (S,G) a router keeps the following state: (S,G) state: For each interface: Local Membership: State: One of {"NoInfo", "Include"} PIM (S,G) Join/Prune State: o State: One of {"NoInfo" (NI), "Join" (J), "Prune- Pending" (PP)} o Prune-Pending Timer (PPT) o Join/Prune Expiry Timer (ET) (S,G) Assert Winner State o State: One of {"NoInfo" (NI), "I lost Assert" (L), "I won Assert" (W)} o Assert Timer (AT) o Assert winner's IP Address (AssertWinner) o Assert winner's Assert Metric (AssertWinnerMetric) Not interface specific: Upstream (S,G) Join/Prune State: o State: One of {"NotJoined(S,G)", "Joined(S,G)"} o Upstream (S,G) Join/Prune Timer (JT)Fenner/Handley/Holbrook/Kouvelas Section 4.1.4. [Page 18]INTERNET-DRAFT Expires: April 2005 October 2004 o Last RPF Neighbor towards S that was used o SPTbit (indicates (S,G) state is active) o (S,G) Keepalive Timer (KAT) Additional (S,G) state at the DR: o Register state: One of {"Join" (J), "Prune" (P), "Join-Pending" (JP), "NoInfo" (NI)} o Register-Stop timer Additional (S,G) state at the RP: o PMBR: the first PMBR to send a Register for this source with the Border bit set.Local membership is the result of the local source-specific membershipmechanism (such as IGMP version 3) running on that interface andspecifying that this particular source should be included. As storedhere, this state is the resulting state after any IGMPv3 inconsistencieshave been resolved. It need not be kept if this router is not the DR onthat interface unless this router won a (S,G) assert on this interfacefor this group. However, we recommend storing this information ifpossible, as it reduces latency converging to stable operatingconditions after a failure causing a change of DR. This information isused by the pim_include(S,G) macro described in Section 4.1.6.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -