您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > MRP Introduction
MRPInCPMMRPProtocol,DesignandVerification2011.08Agenda•IntroductionofMRP–MediaRedundancyManger(MRM)–MediaRedundancyClient(MRC)•DesignofMRP•VerificationAspects•ProtocolEnhancement•Q&AMediaRedundancyProtocol(MRP)•MRP协议是西门子公司开发的;从RSTP协议发展过来的协议•MRP协议基于环形结构•MRP协议用于对环形网络中单个交换机或者单个交换机链接发生错误而设计的,这也是环形拓扑的特点•MRP协议基于802.3和8020.1D协议(包括FilteringDataBase),所以从协议层面上来讲,二层是标准的以太网交换机,然后在此之上定义了保护协议Redundancydomain•Theredundancydomainrepresentsaring.•AnMRMoranMRCcanbememberofmultiplerings.•Anodeshallassignexactlytwouniqueringportsperredundancydomain.•MRPportsshouldbehaveasifRSTPisdisabled.Ringdiagnosis•MANAGER_ROLE_FAIL–被配置成MRM,但节点本身不具备MRM的能力;–此时,除了上报MANAGER_ROLE_FAIL,停止上报其它MRM才有的消息•MULTIPLE_MANAGERS–处于MRM的节点发现有其它的MRM存在(通过检测MRPTest帧)–可以和RING_OPEN消息同时存在•RING_OPEN–MRM检测到开环时上报RING_OPEN事件MRP-Roles•在MRP环上的多个节点中,其中一个被称为MRM(MediaRedundantManager)。MRM用于观察和控制整个环路,以及对环路错误做出反应•在MRP环上除了MRM的节点外的其他节点被称之为MRC(MediaRedundantClient)。MRC的功能是:接收MRM发过来的各种控制帧;以及检测本节点的链接状况并通知MRM。•每个MRP节点都会有且仅有两个端口连接到环路上•每个MRP节点要么具有MRM功能,要么具有MRC功能,也可以同时具有MRM和MRC功能(当然两种功能不能同时激活)•一个MRP环上的节点不要超过50个MRP–RingPorts•环路端口(Ringport)不能将MRP帧转发给非环路端口。一个环路端口一定属于以下三种状态之一:–失效(disabled)在此状态下,所有帧都被丢弃。–阻塞(blocked)在此状态下,除了MRP帧和802.1D的一些MAC控制帧(比如流控帧等),其余帧都被丢弃。这个状态和生成树里端口阻塞概念类似。–转发(forwarding)此状态下,所有帧都被转发。MRPAPDUMRPFrameFormat•TheVLANfieldcanbeomittedincaseofoptimizedtransportation.ThefieldVLANmaybesetbytheencoderbutitmaybediscardedbyintermediatebridges.ThedecodershallacceptDLPDUswithorwithoutVLANfields.MRM•向两个环路端口周期性发送MRP_test帧•如果两个环都OK(就是两个port都收到自己发出的MRP_test),那么将其中一个先收到MRP_test帧的端口设置为主端口(primaryport),另一个端口为次端口(secondaryport);主端口的状态设为forwarding,次端口的状态设为blocked•如果MRM接收到MRC发出的MRP_LinkUp和MRP_LinkDown帧,通过同时向两个ringport发送MRP_TopologyChange帧通知所有MRC链路发生变化(每个节点会复位本地的MAC地址表,重新建立路径,这里有一个MRM和MRC同步的问题)•MRM不会将MRP控制帧(MRP_Test,MRP_TopologyChange,MRP_LinkChange)在两个ringport之间进行转发(就是MRP帧不能成环)•如果一个节点被配置成MRM,但是没有承担MRM的角色,会发出MANAGER_ROLE_FAIL•一个环上可能有多个节点具有MRM的能力,但同时只能有一个节点作为MRM。这个协议没有规定如何选取某个MRM作为主MRMMRMProtocolMachine•Power_on(上电初始化状态)–MRM的两个ringport都初始化为blocked状态–静态库(FDB)的建立。静态库中包含地址为MC_test和MC_control的MRP_test和各种MRP_control报文;•AC_STAT1(准备建立连接状态)–MRM在两个端口上均发送MRP_test帧•PRM_UP–只有一个环路端口link上–第一个收到MRP_test帧的端口被设置为主环路端口(primaryringport),第二个收到的设置为次环路端口;第一次收到MRP_test帧,跳到PRM_UP状态•CHK_RC(闭环状态)–如果两个端口都ok(PRM_UP状态已经是一个端口ok,这里其实是检测到另外一个端口也ok),跳到CHK_RC状态–或者系统处于CHK_RO状态时,异常的节点或者link恢复了,重新进入CHK_RC状态•CHK_RO(开环状态)–MRM的两个环口都有linkup,但环路不通(比如中间某个MRC坏了)–闭环状态下如果发现一个环口断开,那么跳到PRM_UP状态NO_TC•NO_TC=TRUE–SuppressMRP_TopologyChangewhileinlinetopology•MRMPRM_UP(one_linkup)CHK_RC(two_linkup)时使用;–一开始两个端口Linkup,虽然状态跳至CHK_RC,但不代表环真正闭合–承上,如果CHK_RC状态,•MRM连续收不到Test帧,则转为CHK_RO状态,但此时不发TopoChange帧;(说明此时环路开环,要等大家都到齐了再清FDB)•如果期间收到Test帧,表明环路真的闭合了,此时NO_TC设为False,环路再有变化就要清FDB了。REACT_MODE•REACT_MODE的取值:–==MRP_REACT_ON_LINKCHANGE–!=MRP_REACT_ON_LINKCHANGE(目前实现中的做法)•Indicatethat–ifTRUE–theMRMreactsonMRP_LinkDownframesfromanMRCwithTopologyChange.–ifFALSE,theMRMdoesnotreactonMRP_LinkDownframes•关于条件48,49的疑问–为何会对Linkup有反应(与REACT_MODE的定义不符)–应该是处于LineTopology时且状态为CHK_RC时(即MRM两个环口linkup之后直接进入CHK_RC状态),收到MRCLinkup后的行为MRP_BLOCKED_SUPPORTED•MRMassumesalltheMRCssupportBlockedState•MRMrequiresadditionalsupportsifBLOCK_NOT_SUPPORTED–MRP_Blocked:=indicatesiftheMRCisableorisnotabletoreceiveandforwardMRP_Testframes,MRP_LinkChangeframesandMRP_TopologyChangeframesonaringportwhoseportstateisBLOCKED.ADD_TEST•发送一个MRPShortTTestFrame(当检测到MRC有Linkup/down帧发送过来)•作用:–当检测到MRCLink状态发生变化时,期望通过加速发送Test帧的方式来更快地进入下一个稳定状态;–如,CHK_RO状态下收到Linkup帧,加发一个ShortTTestFrameClearLocalFDB(t)•ClearLocalFDB(t)Function–tocleartheFDBwithintheMRPnode.–Thelearningofsourceaddressesfromingressframes,whichweresentoutbeforethetopologychangewasindicated,shallbepreventedMRMparametersMRM状态机转换--1•目前的设计采用的配置情况–==BLOCK_SUPPORT–!=REACT_ON_LINKCHANGEMRM状态机转换--2•配置情况–==BLOCK_SUPPORT–==REACT_ON_LINKCHANGEMRM状态机转换--3•配置情况–!=BLOCK_SUPPORTMRC•MRC在正常情况下无条件地在两个ringport之间转发MRP_test帧•如果某个MRC发现链路发生变化,会通过两个ringport发送MRP_LinkUp或者MRP_LinkDown帧给MRM;每个MRC都会转发MRP_LinkUp或者MRP_LinkDown帧•每个MRC在收到MRP_TopoChange帧后,将其从另一个port转发出去,并会在规定时间内清空MAC地址表•每个MRC在收到(其它MRC发出的)MRP_LinkChange帧后,将其从另一个port转发出去MRCProtocolMachine•Power_on(上电初始化状态),需要做以下几个动作:–MRC的两个ringport都初始化为blocked状态–静态库(FDB)的建立。静态库中包含MRP_test和各种MRP_control报文;所有的MRP报文都有最高优先级•AC_STAT1(准备建立连接状态)–可以理解为是一个中间态。此状态时,两个ringport都准备接收MRP_test帧•DE_IDLE(DataExchangeIdlestate)–有且仅有一个端口接收到MRP_test帧,就进入DE_IDLE;•PT(PassThrough)–当两个port都收到MRP_test帧后,就进入PT状态。进入PT状态后,会启动一个计数器,如果达到门限两个port还是Link状态,就进入PTIDLE状态,并将此端口的状态设置计数器为”Forwarding”。•DE(DataExchange)–DE状态貌似和DE_IDLE状态差不多,只是DE状态是从正常状态(PT或者PT_IDLE)转化过来的–处于DE状态时,也只有一个端口是好的•PTIDLE–两个端口均处于link状态。此时是正常的工作模式。MRC状态机转换•发4个Linkup/Downframe,4*linkchgT,1ms3*topochgT,0.5ms)–中间如果收到TopoChange(t),说明MRM已成功响应,直接进行下一个状态(如PT-PT_IDLE,DE-DE_IDLE)–若没收到MRM响应,则在发完4个Link帧后,进入下一个状态MRCParameter•Forthe10msand30msrecoverytime,theMRCshallguarantee:–fastflushofitsFDB,see9.5fordetails.(assumeTFDB=500μs)–portstatetransition(e.g.fromBLOCKEDtoNONBLOCKED):0,5ms–designforashortreactiontimeofaswitchtoaneventtosupportquickreconfiguration.–NOTEThemeasuringofsomeoftheseparameterscanbedone
本文标题:MRP Introduction
链接地址:https://www.777doc.com/doc-5060545 .html