⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 draft-ietf-pim-sm-v2-new-05.txt

📁 xorp源码hg
💻 TXT
📖 第 1 页 / 共 5 页
字号:
terms 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.Fenner/Handley/Holbrook/Kouvelas                 Section 4.1.  [Page 13]INTERNET-DRAFT           Expires: September 2002              March 2002This 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 Delay          o Suppression state: One of {"Enable", "Disable"}          Neighbor State:            For each neighbor:Fenner/Handley/Holbrook/Kouvelas               Section 4.1.1.  [Page 14]INTERNET-DRAFT           Expires: September 2002              March 2002                 o Information from neighbor's Hello                 o Neighbor's Gen ID.                 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),                      "PrunePending" (PP)}                    o Prune Pending Timer (PPT)                    o Join/Prune Expiry Timer (ET)          Not interface specific:               o Upstream Join/Prune Timer (JT)               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 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,Fenner/Handley/Holbrook/Kouvelas               Section 4.1.2.  [Page 15]INTERNET-DRAFT           Expires: September 2002              March 2002then 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),                      "PrunePending" (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)                    o Assert winner's IP Address                    o Assert winner's Assert Metric          Not interface specific:               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)Fenner/Handley/Holbrook/Kouvelas               Section 4.1.3.  [Page 16]INTERNET-DRAFT           Expires: September 2002              March 2002assert 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 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.8) then state must be torn down and rebuilt for groups whose RPchanges.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(*,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:Fenner/Handley/Holbrook/Kouvelas               Section 4.1.4.  [Page 17]INTERNET-DRAFT           Expires: September 2002              March 2002                    o State: One of {"NoInfo" (NI), "Join" (J),                      "PrunePending" (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                    o Assert winner's Assert Metric          Not interface specific:               o Upstream (S,G) Join/Prune Timer (JT)               o Last RPF Neighbor towards S that was used               o SPT bit (indicates (S,G) state is active)               o (S,G) KeepAlive Timer (KAT)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.PIM (S,G) Join/Prune state is the result of receiving PIM (S,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(S,G) macro(defined in section 4.5.7) that is used in deciding whether a Join(S,G)should be sent upstream.(S,G) Assert Winner state is the result of sending or receiving (S,G)Assert messages on this interface.  It is specified in section 4.6.1.Fenner/Handley/Holbrook/Kouvelas               Section 4.1.4.  [Page 18]INTERNET-DRAFT           Expires: September 2002              March 2002The upstream (S,G) Join/Prune timer is used to send out periodicJoin(S,G) messages, and to override Prune(S,G) messages from peers on anupstream LAN interface.The last RPF neighbor towards S is stored because if the MRIB changesthen the RPF neighbor towards S may change.  If it does so, then we needto trigger a new Join(S,G) to the new upstream neighbor and a Prune(S,G)to the old upstream neighbor.  Similarly, if the router detects througha changed GenID in a Hello message that the upstream neighbor towards Shas rebooted, then it should re-instantiate state by sending aJoin(S,G).  These mechanisms are specified in Section 4.5.7.The SPTbit is used to indicate whether forwarding is taking place on the(S,G) Shortest Path Tree (SPT) or on the (*,G) tree.  A router can have(S,G) state and still be forwarding on (*,G) state during the intervalwhen the source-specific tree is being constructed.  When SPTbit isFALSE, only (*,G) forwarding state is used to forward packets from S toG.  When SPTbit is TRUE, both (*,G) and (S,G) forwarding state are used.The (S,G) Keepalive Timer is updated by data being forwarded using this(S,G) forwarding state.  It is used to keep (S,G) state alive in theabsence of explicit (S,G) Joins.  Amongst other things, this isnecessary for the so-called "turnaround rules" - when the RP uses (S,G)joins to stop encapsulation, and then (S,G) prunes to prevent trafficfrom unnecessarily reaching the RP.4.1.5.  (S,G,rpt) StateFor every source/group pair (S,G) for which a router also has (*,G)state, it also keeps the following state:     (S,G,rpt) state:          For each interface:               Local Membership:                    State: One of {"NoInfo", "Exclude"}               PIM (S,G,rpt) Join/Prune State:                    o State: One of {"NoInfo", "Pruned", "PrunePending"}                    o Prune Pending Timer (PPT)                    o Join/Prune Expiry Timer (ET)          Not interface specific:Fenner/Handley/Holbrook/Kouvelas               Section 4.1.5.  [Page 19]INTERNET-DRAFT           Expires: September 2002              March 2002               Upstream (S,G,rpt) Join/Prune State:                    o State: One of {"NotJoined(*,G)",                      "NotPruned(S,G,rpt)", "Pruned(S,G,rpt)"}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -