一种实现多主控远程过程调用的方法及系统的制作方法

文档序号:7856231阅读:307来源:国知局
专利名称:一种实现多主控远程过程调用的方法及系统的制作方法
技术领域
本发明涉及网络通信领域中的路由交换控制技术,特别涉及一种实现多主控远程过程调用(Remote Procedure Call,简称RPC)的方法及系统。
背景技术
目前主流路由交换设备的系统架构一般分为数据平面、控制平面和监控平面三个子系统。其中,控制平面包括主控卡MPU控制平面和业务线卡LPU控制平面,MPU控制平面负责协议计算和整个设备的管理,LPU控制平面负责硬件芯片的设置和管理,MPU通过RPC下发指令到LPU来实现对硬件芯片的操作,如图I所示,MPU通过RPC下发指令到各LPU ;图2中示意了 MPU到LPU的RPC实现过程MPU作为RPC客户端(client)将函数参数及key、值封装为一个报文,发送至相应LPU,LPU接收报文后,作为RPC服务器端(Server)从报文中将函数参数及key值解析出来,通过key值匹配相应实体函数并执行。在堆叠系统中,多个机架设备作为堆叠成员设备构成一个整体,虚拟为一台交换设备,存在多个主控卡对同一张线卡进行操作的情况,因LPU无法区分具体调用函数来自哪个MPU,容易出现混乱,例如在图3中,堆叠成员设备I和堆叠成员设备2的MPU都有RPC指令下发到堆叠成员设备2的LPU2 ;LPU2无法区分收到的RPC指令到底是来自哪一个MPU ;现有技术中有一种实现方法是通过key值区分控制指令的来源,即不同的MPU到同一个LPU执行不同的操作函数,靠不同的函数名来区分MPU,因此,即使是同样的操作,也必须写多个函数,而MPU到LPU的操作很多,RPC函数有几百个,这就需要进行大量的复制;随着系统的构成日益复杂,MPU数目的不断增加,重复的函数数量很大,传统技术的处理方式会导致开发效率低下和系统不稳定。

发明内容
本发明所要解决的技术问题是提出一种能够支持堆叠系统且处理简单的实现多主控远程过程调用的方法及系统,解决传统技术中为了区分控制指令的来源而需要作大量的工作,导致开发效率低下和系统不稳定的问题。本发明解决上述技术问题所采用的方案是一种实现多主控远程过程调用的系统,所述系统包括至少两个堆叠成员设备,其中每个堆叠成员设备包括调用管理模块,用于为所在堆叠成员设备的MPU设置MPU编号,并为MPU分配RPC序列号计数器;MPU编号封装模块,用于在MPU每次下发RPC控制指令时,将MPU编号封装到RPC序列号中;报文封装发送模块,用于将包含MPU编号的RPC序列号、函数key值、函数参数封装为一个以太报文,并发送至目标LPU ;MPU编号解析模块,用于目标LPU接收到MPU下发的以太报文后,从RPC序列号中提取MPU编号和真实的序列号,并提取出函数key值,进而找到对应的实体函数执行,将函数执行结果与所述真实的序列号封装为一个以太报文,返回给所述MPU编号对应的MPU。进一步,所述RPC序列号计数器用于为其所在MPU每次下发RPC控制指令时,自动分配RPC序列号。进一步,所述RPC序列号具有32位。进一步,所述将MPU编号封装到RPC序列号中的方法是将32位RPC序列号中的高4位分配给MPU编号使用,将剩余的28位分配给真实的序列号使用。一种实现多主控远程过程调用的方法,包括以下步骤
a.为每个堆叠成员设备的MPU设置MPU编号并分配RPC序列号计数器;b.在任一 MPU每次下发RPC控制指令时,根据RPC序列号计数器计算真实的序列号,并将自身的MPU编号和真实的序列号封装到RPC序列号中;c.所述任一 MPU将已封装了 MPU编号的RPC序列号、函数key值、函数参数封装为一个以太报文,发送至目标LPU ;d.所述目标LPU对所述以太报文进行解析,从RPC序列号中提取MPU编号和真实的序列号,通过key值查找匹配的实体函数;e.所述目标LPU执行该实体函数进行相应配置,将函数执行结果和所述真实的序列号封装为一个以太报文,返回给所述MPU编号对应的MPU。 进一步,所述RPC序列号具有32位。进一步,步骤b中,所述将该MPU编号和真实的序列号封装到RPC序列号的方法是将32位RPC序列号中的高4位分配给MPU编号使用,将剩余的28位分配给真实的序列号使用。本发明的有益效果是为每个MPU进行编号,并通过对RPC序列号进行扩展,将MPU编号封装至RPC序列号中,目标LPU根据RPC序列号中的MPU编号来确定本次控制指令来自哪个MPU,无需复制大量的RPC函数,从而降低了系统工作量,大大提升了开发效率和系统稳定性,特别适用于堆叠系统。


图I为MPU通过RPC下发指令到各LPU的示意图;图2为MPU到LPU的RPC实现过程示意图;图3为多主控下发控制指令的示意图;图4为实施例中的RPC序列号构成图;图5为实施例中的实现多主控远程过程调用的系统结构框图;图6为实施例中的实现多主控远程过程调用的方法流程图。
具体实施例方式针对传统技术中为了区分控制指令的来源而需要作大量的工作,导致开发效率低下和系统不稳定的问题,本发明提供了一种实现多主控远程过程调用的系统和方法,其基本思想为给每个堆叠成员设备的MPU进行编号,将MPU编号封装在RPC序列号中,LPU根据序列号中的MPU编号确定指令来自那个MPU,很容易扩展RPC支持堆叠系统,提升开发效率,提闻系统稳定性。参见图5,本例中的实现多主控远程过程调用的系统,包括调用管理模块,用于为所在堆叠成员设备的主控卡设置MPU编号,并为MPU分配RPC序列号计数器;MPU编号封装模块,用于在MPU每次下发RPC控制指令时,将MPU编号封装到RPC序列号中;报文封装发送模块,用于将包含MPU编号的RPC序列号、函数key值、函数参数封装为一个以太报文,并发送至目标业务线卡LPU ; MPU编号解析模块,用于目标LPU接收到MPU下发的以太报文后,从RPC序列号中提取MPU编号和真实的序列号,并提取出函数key值,进而找到对应的实体函数执行,将函数执行结果与所述真实的序列号封装为一个以太报文,返回给所述MPU编号对应的MPU。所述RPC序列号计数器用于为其所在MPU每次下发RPC控制指令时,自动分配RPC序列号。序列计数器原用于跟踪每一次RPC操作,即MPU下发指令到LPU,LPU执行实际函数动作后,将结果值返回给MPU,这个过程是异步的,MPU就是依靠这个序列号计数器确定返回值对应那一次RPC ;现扩展序列计数器的作用,包含MPU编号,LPU可得知RPC来自哪个MPU。所述RPC序列号具有32位,参见图4,其高4位(28-31)分配给MPU编号使用,其剩余28位(0-27)作为递增的实际的序列号使用,从0开始递增,到最大值再翻转为O。下面以一个实施例说明实现多主控远过程调用的方法,如图6所示,其包括以下步骤步骤S601,为每个堆叠成员设备的MPU设置MPU编号并分配RPC序列号计数器。在本步骤中,定义32位的整数型RPC序列号,且为递增的MPU每执行一次RPC,序列号值每次加一,加到最大值,翻转为零。将MPU编号封装到RPC序列号中,即将MPU编号定义在RPC序列号的高4位部分,真实的序列号填写在低28位部分。步骤S602,在任一 MPU每次下发RPC控制指令时,根据RPC序列号计数器计算真实的序列号,并将自身的MPU编号和真实的序列号封装到RPC序列号中。本步骤中,每个堆叠成员设备的MPU每次下发RPC控制指令到某一 LPU时,需要设置RPC序列号的高4位为自身的MPU编号,低28位为RPC计数器分配的真实的序列号。步骤S603,所述任一 MPU将已封装了 MPU编号的RPC序列号、函数key值、函数参数封装为一个以太报文,发送至目标LPU。本步骤中,需要发送RPC控制指令的MPUJf RPC序列号、函数key值、函数参数封装为一个以太格式的报文,即将RPC序列号、函数key值、函数参数,按照网络字节序方式,以字节流的方式填写到缓冲区,然后将缓冲内容通过以太网络接口发到目标LPU。步骤S604,所述目标LPU对所述以太报文进行解析,从RPC序列号中提取MPU编号和真实的序列号,通过key值查找匹配的实体函数。本步骤中,目标LPU将接收到的以太报文存在缓冲区,按照网络字节序方式,从缓冲区中将RPC序列号、函数key值、函数参数提取出来;并将RPC序列号的高4位分解出来,得到MPU编号;通过函数key值查找匹配的实体函数LPU上大量函数指针以数组方式存储,遍历数组,对比key值,找到相应的函数指针。步骤S605,所述目标LPU执行该实体函数进行相应配置,将函数执行结果和所述真实的序列号封装为一个以太报文,返回给所述MPU编号对应的MPU。本步骤中,目标LPU执行实体函数进行相应配置即跳转到函数指针指向的函数实体执行,完成执行后,将函数执行结果和所述真实的序列号封装为一个以太报文,返回给所述MPU编号对应的MPU。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求
1.一种实现多主控远程过程调用的系统,包括至少两个堆叠成员设备,其特征在于,每个堆叠成员设备包括 调用管理模块,用于为所在堆叠成员设备的主控卡设置MPU编号,并为MPU分配RPC序列号计数器; MPU编号封装模块,用于在MPU每次下发RPC控制指令时,将MPU编号封装到RPC序列号中; 报文封装发送模块,用于将包含MPU编号的RPC序列号、函数key值、函数参数封装为一个以太报文,并发送至目标业务线卡LPU ; MPU编号解析模块,用于目标LPU接收到MPU下发的以太报文后,从RPC序列号中提取 MPU编号和真实的序列号,并提取出函数key值,进而找到对应的实体函数执行,将函数执行结果与所述真实的序列号封装为一个以太报文,返回给所述MPU编号对应的MPU。
2.如权利要求I所述的一种实现多主控远程过程调用的系统,其特征在于,所述RPC序列号计数器用于为其所在MPU每次下发RPC控制指令时,自动分配RPC序列号。
3.如权利要求I或2所述的一种实现多主控远程过程调用的系统,其特征在于,所述RPC序列号具有32位。
4.如权利要求3所述的一种实现多主控远程过程调用的系统,其特征在于,所述将MPU编 号封装到RPC序列号中的方法是 将32位RPC序列号中的高4位分配给MPU编号使用,将剩余的28位作为真实的序列号使用。
5.一种实现多主控远程过程调用的方法,其特征在于,包括以下步骤 a.为每个堆叠成员设备的MPU设置MPU编号并分配RPC序列号计数器; b.在任一MPU每次下发RPC控制指令时,根据RPC序列号计数器计算真实的序列号,将自身的MPU编号和真实的序列号封装到RPC序列号中; c.所述任一MPU将已封装了 MPU编号的RPC序列号、函数key值、函数参数封装为一个以太报文,发送至目标LPU; d.所述目标LPU对所述以太报文进行解析,从RPC序列号中提取MPU编号和真实的序列号,通过key值查找匹配的实体函数; e.所述目标LPU执行该实体函数进行相应配置,将函数执行结果和所述真实的序列号封装为一个以太报文,返回给所述MPU编号对应的MPU。
6.如权利要求5所述的一种实现多主控远程过程调用的方法,其特征在于,所述RPC序列号具有32位。
7.如权利要求6所述的一种实现多主控远程过程调用的方法,其特征在于,步骤b中,所述将MPU编号和真实的序列号封装到RPC序列号中的方法是 将32位RPC序列号的高4位分配给MPU编号使用,将剩余的28位分配给真实的序列号使用。
全文摘要
本发明涉及网络通信领域中的路由交换控制技术,其公开了一种实现多主控远程过程调用的方法,解决传统技术中为了区分控制指令的来源而需要作大量的工作,导致开发效率低下和系统不稳定的问题。该方法通过给每个堆叠成员设备的MPU进行编号,将MPU编号封装在RPC序列号中,LPU根据序列号中的MPU编号确定指令来自那个MPU,很容易扩展RPC支持堆叠系统,提升开发效率,提高系统稳定性。此外,本发明还公开了一种实现多主控远程过程调用的系统,适用于堆叠系统。
文档编号H04L12/56GK102739552SQ20121025054
公开日2012年10月17日 申请日期2012年7月19日 优先权日2012年7月19日
发明者王焕章 申请人:迈普通信技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1