确定表的存储位置的方法、转发设备及控制器与流程

文档序号:17454402发布日期:2019-04-20 03:06阅读:190来源:国知局
确定表的存储位置的方法、转发设备及控制器与流程

本发明实施例涉及通信领域,并且更具体地,涉及一种确定表的存储位置的方法、转发设备及控制器。



背景技术:

通信领域中,现有的转发设备可以同时运行多个转发业务。实现一个转发业务,所述转发设备需要查找至少一个表。所述转发设备可以路由器。所述至少一个表可以包括转发信息库(英文:forward information base,简称:FIB)。所述多个转发业务中每个转发业务对应一个预定的性能。所述预定的性能可以是线速的二分之一或者四分之一。所述预定的性能可以是所述转发设备允许对应的转发业务能够达到的实际性能的最大值。所述转发设备同时运行所述多个转发业务时,所述多个转发业务中每个转发业务对应一个实际性能。每个转发业务的实际性能小于或者等于对应的预定的性能。现有技术中,转发业务的实际性能与该转发业务的预定的性能的差距较大。



技术实现要素:

本发明实施例提供了一种确定表的存储位置的方法,有助于使得转发业务的实际性能尽可能达到预定的性能。

一方面,提供了一种确定表的存储位置的方法,包括:

转发设备接收控制器发送的M个描述信息,所述M个描述信息与M个转发业务一一对应,所述M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行所述对应的转发业务需要查找的表的标识,执行所述M个转发业务需要查找N个表,所述M个转发业务的预定的性能组成的集合包含Q个元素,所述Q个元素分别是第1个元素至第Q个元素,所述Q个元素中的每个元素表示一个预定的性能,其中,所述Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1;

所述转发设备根据所述M个描述信息,生成Q个同时访问信息,所述Q个同时访问信息中的第r个同时访问信息表示所述N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问;

所述转发设备根据所述Q个同时访问信息,确定所述N个表将被存储在所述转发设备中的至少一个存储器中;

所述转发设备将所述N个表存储在所述至少一个存储器中。

在第一方面的第一种可能的实现方式中,所述Q个同时访问信息为Q个N×N的矩阵,所述Q个N×N的矩阵中的每个N×N的矩阵的元素为1或者0,

如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为1,则表示所述N个表中的第i个表和所述N个表中的第j个表需要同时被所述M个转发业务中预定的性能为Cr×线速的至少一个转发业务访问,

如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为0,则表示所述N个表中的第i个表和所述N个表中的第j个表不需要同时被所述M个转发业务中预定的性能为Cr×线速的任意一个转发业务访问,

其中,i和j为正整数,且i和j均小于或者等于N。

根据第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述确定所述N个表将被存储在所述转发设备的至少一个存储器中,包括确定所述N个表中的每个表将被存储在所述转发设备的至少一个存储器中,

其中,所述转发设备确定所述N个表中的第m个表将被存储在所述转发设备的至少一个存储器中,具体包括:

所述转发设备确定所述N个表中的每个表是否已经存储在所述至少一个存储器的第一存储器中,1×N的矩阵用于表示所述N个表中的每个表是否已经存储在所述第一存储器中,具体地,所述1×N的矩阵的第1列元素至第N列元素分别用于表示所述N个表中的第1个表至所述N个表中的第N个表是否已经存储在所述第一存储器中,其中,所述1×N的矩阵的第i列元素用于表示所述N个表中的第i个表是否已经存储在所述第一存储器中,如果所述1×N的矩阵的第i列元素为1则表示所述第一存储器已经存储所述N个表中的第i个表,如果所述1×N的矩阵的第i列元素为0则表示所述第一存储器没有存储所述N个表中的第i个表;

所述转发设备将所述Q个N×N的矩阵中的每个N×N的矩阵的第m行的元素与所述1×N的矩阵的对应元素作与运算,确定结果为1的个数,其中,所述Q个N×N的矩阵中的第r个N×N的矩阵的第m行的元素与所述1×N的矩阵的对应元素作与运算的结果中1的个数为Pr;

所述转发设备基于max((P1+1)×C1×A,……,(PQ+1)×CQ×A)≤B,确定所述N个表中的第m个表将被存储在所述第一存储器中,

其中,m为小于或者等于N的正整数,Pr为非负整数,Pr<N,A和B为正数,A表示实际性能为线速的转发业务需要占用的带宽,B表示所述第一存储器能够提供的最大带宽。

根据第一方面、第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:

当所述转发设备根据所述Q个同时访问信息,确定不能将所述N个表中的第a个表存储在所述至少一个存储器中时,所述转发设备生成第一消息,所述第一消息用于通告所述转发设备确定不能将所述N个表中的第a个表存储在所述至少一个存储器中;

所述转发设备将所述第一消息发送至所述控制器,

其中,a为正整数,且a小于或者等于N。

根据第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述方法还包括:

所述转发设备接收所述控制器发送的第二消息,所述第二消息用于指示所述转发设备尽力存储所述N个表中的第a个表;

所述转发设备根据所述第二消息,工作于尽力而为模式并确定所述N个表中的第a个表将被存储在所述至少一个存储器的第二存储器中;

所述转发设备生成第三消息,所述第三消息用于通告所述转发设备确定所述N个表中的第a个表将被存储在所述第二存储器中时,所述N个表中的第a个表所支持的转发业务的实际性能;

所述转发设备将所述第三消息发送至所述控制器。

第二方面,提供了一种确定表的存储位置的方法,包括:

控制器生成M个描述信息,所述M个描述信息与M个转发业务一一对应,所述M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行所述对应的转发业务需要查找的表的标识,执行所述M个转发业务需要查找N个表,所述M个转发业务的预定的性能组成的集合包含Q个元素,所述Q个元素分别是第1个元素至第Q个元素,所述Q个元素中的每个元素表示一个预定的性能,其中,所述Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1;

所述控制器将所述M个描述信息发送至转发设备。

在第二方面的第一种可能的实现方式中,所述M个描述信息用于使得所述转发设备确定所述N个表将被存储在所述转发设备中的至少一个存储器中,所述方法还包括:

所述控制器接收所述转发设备发送的第一消息,所述第一消息用于通告所述转发设备确定不能将所述N个表中的第j个表存储在所述转发设备的至少一个存储器中,

其中,j为正整数,且j小于或者等于N。

根据第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述方法还包括:

所述控制器生成第二消息,所述第二消息用于指示所述转发设备尽力存储所述N个表中的第j个表;

所述控制器将所述第二消息发送至所述转发设备,以使所述转发设备工作于尽力而为模式并确定所述N个表中的第j个表将被存储在所述至少一个存储器的第二存储器中;

所述控制器接收所述转发设备发送的第三消息,所述第三消息用于通告所述转发设备确定所述N个表中的第j个表将被存储在所述第二存储器中时,所述N个表中的第j个表所支持的转发业务的实际性能。

第三方面,提供了一种确定表的存储位置的方法,包括:

转发设备接收控制器发送的Q个同时访问信息,其中,所述Q个同时访问信息中的第r个同时访问信息表示所述N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问,执行M个转发业务需要查找所述N个表;

所述转发设备根据所述Q个同时访问信息,确定所述N个表将被存储在所述转发设备的至少一个存储器中;

所述转发设备将所述N个表存储在所述至少一个存储器中。

在第三方面的第一种可能的实现方式中,所述Q个同时访问信息为Q个N×N的矩阵,所述Q个N×N的矩阵中的每个N×N的矩阵的元素为1或者0,

如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为1,则表示所述N个表中的第i个表和所述N个表中的第j个表需要同时被所述M个转发业务中预定的性能为Cr×线速的至少一个转发业务访问,

如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为0,则表示所述N个表中的第i个表和所述N个表中的第j个表不需要同时被所述M个转发业务中预定的性能为Cr×线速的任意一个转发业务访问,

其中,i和j为正整数,且i和j均小于或者等于N。

根据第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述确定所述N个表将被存储在所述转发设备的至少一个存储器中,包括确定所述N个表中的每个表将被存储在所述转发设备的至少一个存储器中,

其中,所述转发设备确定所述N个表中的第m个表将被存储在所述转发设备的至少一个存储器中,具体包括:

所述转发设备确定所述N个表中的每个表是否已经存储在所述至少一个存储器的第一存储器中,1×N的矩阵用于表示所述N个表中的每个表是否已经存储在所述第一存储器中,具体地,所述1×N的矩阵的第1列元素至第N列元素分别用于表示所述N个表中的第1个表至所述N个表中的第N个表是否已经存储在所述第一存储器中,其中,所述1×N的矩阵的第i列元素用于表示所述N个表中的第i个表是否已经存储在所述第一存储器中,如果所述1×N的矩阵的第i列元素为1则表示所述第一存储器已经存储所述N个表中的第i个表,如果所述1×N的矩阵的第i列元素为0则表示所述第一存储器没有存储所述N个表中的第i个表;

所述转发设备将所述Q个N×N的矩阵中的每个N×N的矩阵的第m行的元素与所述1×N的矩阵的对应元素作与运算,确定结果为1的个数,其中,所述Q个N×N的矩阵中的第r个N×N的矩阵的第m行的元素与所述1×N的矩阵的对应元素作与运算的结果中1的个数为Pr;

所述转发设备基于max((P1+1)×C1×A,……,(PQ+1)×CQ×A)≤B,确定所述N个表中的第m个表将被存储在所述第一存储器中;

其中,m为小于或者等于N的正整数,Pr为非负整数,Pr<N,A和B为正数,A表示实际性能为线速的转发业务需要占用的带宽,B表示所述第一存储器能够提供的最大带宽。

根据第三方面、第三方面的第一种可能的实现方式或者第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述方法还包括:

当所述转发设备根据所述Q个同时访问信息,确定不能将所述N个表中的第a个表存储在所述至少一个存储器中时,所述转发设备生成第一消息,所述第一消息用于通告所述转发设备确定不能将所述N个表中的第a个表存储在所述至少一个存储器中;

所述转发设备将所述第一消息发送至所述控制器,

其中,a为正整数,且a小于或者等于N。

根据第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述方法还包括:

所述转发设备接收所述控制器发送的第二消息,所述第二消息用于指示所述转发设备尽力存储所述N个表中的第a个表;

所述转发设备根据所述第二消息,工作于尽力而为模式并确定所述N个表中的第a个表将被存储在所述至少一个存储器的第二存储器中;

所述转发设备生成第三消息,所述第三消息用于通告所述转发设备确定所述N个表中的第a个表将被存储在所述第二存储器中时,所述N个表中的第a个表所支持的转发业务的实际性能;

所述转发设备将所述第三消息发送至所述控制器。

第四方面,提供了一种确定表的存储位置的方法,包括:

控制器生成M个描述信息,所述M个描述信息与M个转发业务一一对应,所述M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行所述对应的转发业务需要查找的表的标识,执行所述M个转发业务需要查找N个表,所述M个转发业务的预定的性能组成的集合包含Q个元素,所述Q个元素分别是第1个元素至第Q个元素,所述Q个元素中的每个元素表示一个预定的性能,其中,所述Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1;

所述控制器根据所述M个描述信息,生成Q个同时访问信息,其中,所述Q个同时访问信息中的第r个同时访问信息表示所述N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问;

所述控制器将所述Q个同时访问信息发送至转发设备。

在第四方面的第一种可能的实现方式中,所述Q个同时访问信息为Q个N×N的矩阵,所述Q个N×N的矩阵中的每个N×N的矩阵的元素为1或者0,

如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为1,则表示所述N个表中的第i个表和所述N个表中的第j个表需要同时被所述M个转发业务中预定的性能为Cr×线速的至少一个转发业务访问,

如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为0,则表示所述N个表中的第i个表和所述N个表中的第j个表不需要同时被所述M个转发业务中预定的性能为Cr×线速的任意一个转发业务访问,

其中,i和j为正整数,且i和j均小于或者等于N。

根据第四方面或者第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述M个描述信息用于使得所述转发设备确定所述N个表将被存储在所述转发设备中的至少一个存储器中,所述方法还包括:

所述控制器接收所述转发设备发送的第一消息,所述第一消息用于通告所述转发设备确定不能将所述N个表中的第a个表存储在所述转发设备的至少一个存储器中,

其中,a为正整数,且a小于或者等于N。

根据第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述方法还包括:

所述控制器生成第二消息,所述第二消息用于指示所述转发设备尽力存储所述N个表中的第a个表;

所述控制器将所述第二消息发送至所述转发设备,以使所述转发设备工作于尽力而为模式并确定所述N个表中的第a个表将被存储在所述至少一个存储器的第二存储器中;

所述控制器接收所述转发设备发送的第三消息,所述第三消息用于通告所述转发设备确定所述N个表中的第a个表将被存储在所述第二存储器中时,所述N个表中的第a个表所支持的转发业务的实际性能。

第五方面,提供了一种转发设备,包括:

接收单元,用于接收控制器发送的M个描述信息,所述M个描述信息与M个转发业务一一对应,所述M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行所述对应的转发业务需要查找的表的标识,执行所述M个转发业务需要查找N个表,所述M个转发业务的预定的性能组成的集合包含Q个元素,所述Q个元素分别是第1个元素至第Q个元素,所述Q个元素中的每个元素表示一个预定的性能,其中,所述Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1;

生成单元,用于根据所述接收单元接收到的所述M个描述信息,生成Q个同时访问信息,所述Q个同时访问信息中的第r个同时访问信息表示所述N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问;

确定单元,用于根据所述生成单元生成的所述Q个同时访问信息,确定所述N个表将被存储在所述转发设备的至少一个存储器中;

存储单元,用于将所述N个表存储在所述确定单元确定的所述至少一个存储器中。

在第五方面的第一种可能的实现方式中,所述Q个同时访问信息为Q个N×N的矩阵,所述Q个N×N的矩阵中的每个N×N的矩阵的元素为1或者0,

如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为1,则表示所述N个表中的第i个表和所述N个表中的第j个表需要同时被所述M个转发业务中预定的性能为Cr×线速的至少一个转发业务访问,

如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为0,则表示所述N个表中的第i个表和所述N个表中的第j个表不需要同时被所述M个转发业务中预定的性能为Cr×线速的任意一个转发业务访问,

其中,i和j为正整数,且i和j均小于或者等于N。

根据第五方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,所述确定单元,具体用于确定所述N个表中的每个表将被存储在所述转发设备的至少一个存储器中,

其中,所述确定单元具体包括用于确定所述N个表中的第m个表将被存储在所述转发设备的至少一个存储器中的确定子单元,所述确定子单元具体包括:

第一确定子单元,用于确定所述N个表中的每个表是否已经存储在所述至少一个存储器的第一存储器中,1×N的矩阵用于表示所述N个表中的每个表是否已经存储在所述第一存储器中,具体地,所述1×N的矩阵的第1列元素至第N列元素分别用于表示所述N个表中的第1个表至所述N个表中的第N个表是否已经存储在所述第一存储器中,其中,所述1×N的矩阵的第i列元素用于表示所述N个表中的第i个表是否已经存储在所述第一存储器中,如果所述1×N的矩阵的第i列元素为1则表示所述第一存储器已经存储所述N个表中的第i个表,如果所述1×N的矩阵的第i列元素为0则表示所述第一存储器没有存储所述N个表中的第i个表;

第二确定子单元,用于将所述生成单元生成的所述Q个N×N的矩阵中每个N×N的矩阵的第m行的元素与所述第一确定子单元确定的所述1×N的矩阵的对应元素作与运算,确定结果为1的个数,其中,所述Q个N×N的矩阵中的第r个N×N的矩阵的第m行的元素与所述1×N的矩阵的对应元素作与运算的结果中1的个数为Pr;

第三确定子单元,用于基于max((P1+1)×C1×A,……,(PQ+1)×CQ×A)≤B,确定所述N个表中的第m个表将被存储在所述第一存储器中;

其中,m为小于或者等于N的正整数,Pr为非负整数,Pr<N,A和B为正数,A表示实际性能为线速的转发业务需要占用的带宽,B表示所述第一存储器能够提供的最大带宽。

根据第五方面、第五方面的第一种可能的实现方式或者第五方面的第二种可能的实现方式,在第五方面的第三种可能的实现方式中,所述转发设备还包括发送单元;

所述生成单元,还用于当所述确定单元确定不能将所述N个表中的第a个表存储在所述至少一个存储器中时,生成第一消息,所述第一消息用于通告所述转发设备确定不能将所述N个表中的第a个表存储在所述至少一个存储器中;

所述发送单元,用于将所述生成单元生成的所述第一消息发送至所述控制器,

其中,a为正整数,且a小于或者等于N。

根据第五方面的第三种可能的实现方式,在第五方面的第四种可能的实现方式中,

所述接收单元,还用于接收所述控制器发送的第二消息,所述第二消息用于指示所述转发设备尽力存储所述N个表中的第a个表;

所述确定单元,还用于根据所述接收单元接收的所述第二消息,工作于尽力而为模式并确定所述N个表中的第a个表将被存储在所述至少一个存储器的第二存储器中;

所述生成单元,还用于生成第三消息,所述第三消息用于通告所述确定单元确定所述N个表中的第a个表将被存储在所述第二存储器中时,所述N个表中的第a个表所支持的转发业务的实际性能;

所述发送单元,还用于将所述生成单元生成的所述第三消息发送至所述控制器。

第六方面,提供了一种控制器,包括:

生成单元,用于生成M个描述信息,所述M个描述信息与M个转发业务一一对应,所述M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行所述对应的转发业务需要查找的表的标识,执行所述M个转发业务需要查找N个表,所述M个转发业务的预定的性能组成的集合包含Q个元素,所述Q个元素分别是第1个元素至第Q个元素,所述Q个元素中的每个元素表示一个预定的性能,其中,所述Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1;

发送单元,用于将所述生成单元生成的所述M个描述信息发送至转发设备。

在第六方面的第一种可能的实现方式中,所述M个描述信息用于使得所述转发设备确定所述N个表将被存储在所述转发设备中的至少一个存储器中,所述控制器还包括:

接收单元,用于接收所述转发设备发送的第一消息,所述第一消息用于通告所述转发设备确定不能将所述N个表中的第j个表存储在所述转发设备的至少一个存储器中,

其中,j为正整数,且j小于或者等于N。

根据第六方面的第一种可能的实现方式,在第六方面的第二种可能的实现方式中,

所述生成单元,还用于生成第二消息,所述第二消息用于指示所述转发设备尽力存储所述N个表中的第j个表;

所述发送单元,还用于将所述生成单元生成的所述第二消息发送至所述转发设备,以使所述转发设备工作于尽力而为模式并确定所述N个表中的第j个表将被存储在所述至少一个存储器的第二存储器中;

所述接收单元,还用于接收所述转发设备发送的第三消息,所述第三消息用于通告所述转发设备确定所述N个表中的第j个表将被存储在所述第二存储器中时,所述N个表中的第j个表所支持的转发业务的实际性能。

第七方面,提供了一种转发设备,包括:

接收单元,用于接收控制器发送的Q个同时访问信息,其中,所述Q个同时访问信息中的第r个同时访问信息表示所述N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问,执行M个转发业务时需要查找所述N个表;

确定单元,用于根据所述接收单元接收的所述Q个同时访问信息,确定所述N个表将被存储在所述转发设备的至少一个存储器中;

存储单元,用于将所述N个表存储在所述确定单元确定的所述至少一个存储器中。

在第七方面的第一种可能的实现方式中,所述Q个同时访问信息为Q个N×N的矩阵,所述Q个N×N的矩阵中的每个N×N的矩阵的元素为1或者0,

如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为1,则表示所述N个表中的第i个表和所述N个表中的第j个表需要同时被所述M个转发业务中预定的性能为Cr×线速的至少一个转发业务访问,

如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为0,则表示所述N个表中的第i个表和所述N个表中的第j个表不需要同时被所述M个转发业务中预定的性能为Cr×线速的任意一个转发业务访问,

其中,i和j为正整数,且i和j均小于或者等于N。

根据第七方面的第一种可能的实现方式,在第七方面的第二种可能的实现方式中,所述确定单元,具体用于确定所述N个表中的每个表将被存储在所述转发设备的至少一个存储器中,

其中,所述确定单元包括用于确定所述N个表中的第m个表将被存储在所述转发设备的至少一个存储器中的确定子单元,所述确定子单元具体包括:

第一确定子单元,用于确定所述N个表中的每个表是否已经存储在所述至少一个存储器的第一存储器中,1×N的矩阵用于表示所述N个表中的每个表是否已经存储在所述转发设备的第一存储器中,具体地,所述1×N的矩阵的第1列元素至第N列元素分别用于表示所述N个表中的第1个表至所述N个表中的第N个表是否已经存储在所述第一存储器中,其中,所述1×N的矩阵的第i列元素用于表示所述N个表中的第i个表是否已经存储在所述第一存储器中,如果所述1×N的矩阵的第i列元素为1则表示所述第一存储器已经存储所述N个表中的第i个表,如果所述1×N的矩阵的第i列元素为0则表示所述第一存储器没有存储所述N个表中的第i个表;

第二确定子单元,用于将所述Q个N×N的矩阵中的每个N×N的矩阵的第m行的元素与所述第一确定子单元确定的所述1×N的矩阵的对应元素作与运算,确定结果为1的个数,其中,所述Q个N×N的矩阵中的第r个N×N的矩阵的第m行的元素与所述1×N的矩阵的对应元素作与运算的结果中1的个数为Pr;

第三确定子单元,用于基于max((P1+1)×C1×A,……,(PQ+1)×CQ×A)≤B,确定所述N个表中的第m个表将被存储在所述第一存储器中;

其中,m为小于或者等于N的正整数,Pr为非负整数,Pr<N,A和B为正数,A表示的实际性能为线速的转发业务需要占用带宽,B表示所述第一存储器能够提供的最大带宽。

根据第七方面、第七方面的第一种可能的实现方式或者第七方面的第二种可能的实现方式,在第七方面的第三种可能的实现方式中,所述转发设备还包括生成单元和发送单元,

所述生成单元,还用于当所述确定单元确定不能将所述N个表中的第a个表存储在所述至少一个存储器中时,生成第一消息,所述第一消息用于通告所述转发设备确定不能将所述N个表中的第a个表存储在所述至少一个存储器中;

所述发送单元,用于将所述生成单元生成的所述第一消息发送至所述控制器,

其中,a为正整数,且a小于或者等于N。

根据第七方面的第三种可能的实现方式,在第七方面的第四种可能的实现方式中,

所述接收单元,还用于接收所述控制器发送的第二消息,所述第二消息用于指示所述转发设备尽力存储所述N个表中的第a个表;

所述确定单元,还用于根据所述接收单元接收的所述第二消息,工作于尽力而为模式并确定所述N个表中的第a个表将被存储在所述至少一个存储器的第二存储器中;

所述生成单元,还用于生成第三消息,所述第三消息用于通告所述转发设备确定所述N个表中的第a个表将被存储在所述第二存储器中时,所述N个表中的第a个表所支持的转发业务的实际性能;

所述发送单元,还用于将所述生成单元生成的所述第三消息发送至所述控制器。

第八方面,提供了一种控制器,包括:

生成单元,用于生成M个描述信息,所述M个描述信息与M个转发业务一一对应,所述M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行所述对应的转发业务需要查找的表的标识,执行所述M个转发业务需要查找N个表,所述M个转发业务的预定的性能组成的集合包含Q个元素,所述Q个元素分别是第1个元素至第Q个元素,所述Q个元素中的每个元素表示一个预定的性能,其中,所述Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1;

所述生成单元,还用于根据所述M个描述信息,生成Q个同时访问信息,所述Q个同时访问信息中的第r个同时访问信息表示所述N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问;

发送单元,用于将所述生成单元生成的所述Q个同时访问信息发送至转发设备。

在第八方面的第一种可能的实现方式中,所述Q个同时访问信息为Q个N×N的矩阵,所述Q个N×N的矩阵中的每个N×N的矩阵的元素为1或者0,

如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为1,则表示所述N个表中的第i个表和所述N个表中的第j个表需要同时被所述M个转发业务中预定的性能为Cr×线速的至少一个转发业务访问,

如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为0,则表示所述N个表中的第i个表和所述N个表中的第j个表不需要同时被所述M个转发业务中预定的性能为Cr×线速的任意一个转发业务访问,

其中,i和j为正整数,且i和j均小于或者等于N。

根据第八方面或者第八方面的第一种可能的实现方式,在第八方面的第二种可能的实现方式中,所述M个描述信息用于使得所述转发设备确定所述N个表将被存储在所述转发设备中的至少一个存储器中,所述控制器还包括接收单元,用于接收所述转发设备发送的第一消息,所述第一消息用于通告所述转发设备确定不能将所述N个表中的第a个表存储在所述转发设备的至少一个存储器中,

其中,a为正整数,且a小于或者等于N。

根据第八方面的第二种可能的实现方式,在第八方面的第三种可能的实现方式中,

所述生成单元,还用于生成第二消息,所述第二消息用于指示所述转发设备尽力存储所述N个表中的第a个表;

所述发送单元,还用于将所述生成单元生成的所述第二消息发送至所述转发设备,以使所述转发设备工作于尽力而为模式并确定所述N个表中的第a个表将被存储在所述至少一个存储器的第二存储器中;

所述接收单元,还用于接收所述转发设备发送的第三消息,所述第三消息用于通告所述转发设备确定所述N个表中的第a个表将被存储在所述第二存储器中时,所述N个表中的第a个表所支持的转发业务的实际性能。

本发明实施例通过转发业务的描述信息,生成执行转发业务需要查找的表的同时访问信息。根据表的同时访问信息,确定执行转发业务需要查找的表将被存储在转发设备中的存储位置。执行转发业务需要对表进行查找。对表执行查找操作则会占用转发设备的硬件资源。例如,占用转发设备的存储器的带宽。转发业务的实际性能受到转发设备的可用的硬件资源的约束。例如,受到了转发设备的存储器的可用带宽的约束。执行转发业务时,具有同时访问关系的两个表都会被查找。对两个表执行查找操作时,每个表都会占用转发设备的可用的硬件资源,从而对转发业务的实际性能造成影响。上述技术方案中,确定所述N个表在所述转发设备的存储位置时,考虑了所述N个表是否具有同时访问关系这一因素。因此,通过上述技术方案确定的表的存储位置有助于使得转发业务的实际性能尽可能达到预定的性能。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例的确定表的存储位置的方法的流程图。

图2是本发明另一个实施例的确定表的存储位置的方法的流程图。

图3是本发明另一个实施例的确定表的存储位置的方法的流程图。

图4是本发明另一个实施例的确定表的存储位置的方法的流程图。

图5是本发明另一个实施例的确定表的存储位置的方法的流程图。

图6是本发明另一个实施例的转发业务所形成的多分枝的有向图。

图7是图6所示的预定的性能为线速的3个转发业务。

图8是图6所示的预定的性能为半速的2个转发业务。

图9是图6中的16个表的线速同时访问信息的矩阵。

图10是图6中的16个表的半速同时访问信息的矩阵。

图11是本发明另一个实施例的转发设备的第一存储器的第一表存储位图的一例。

图12是本发明另一个实施例的转发设备的第一存储器更新之后的第二表存储位图的一例。

图13是本发明另一个实施例的确定表的存储位置的方法的流程图。

图14是本发明一个实施例的转发设备的框图。

图15是本发明一个实施例的控制器的框图。

图16是本发明另一个实施例的转发设备的框图。

图17是本发明另一个实施例的控制器的框图。

图18是本发明另一个实施例的转发设备的框图。

图19是本发明另一个实施例的控制器的框图。

图20是本发明另一个实施例的转发设备的框图。

图21是本发明另一个实施例的控制器的框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

下述实施例中涉及到转发设备以及控制器。其中,转发设备可以是路由器、网络交换机、防火墙、负载均衡器或者数据中心。举例来说,所述转发设备和控制器可以位于软件定义的网络(英文:software-defined networking,简称:SDN)。具体来说,所述转发设备可以是SDN交换机。所述控制器可以是SDN控制器。例如,所述SDN交换机可以是开放流交换机(英文:OpenFlow Switch)。所述SDN控制器可以是开放流控制器(英文:OpenFlow Conroller)。所述开放流交换机和开放流控制器可以通过控制通道进行通信。关于开放流交换机、开放流控制器以及控制通道,可以参考开放流交换机说明书第1.4.0版(英文:OpenFlow Switch Specification version1.4.0)。

下述实施例中涉及到的性能可以是带宽。所述性能是所述转发设备能够实现的最大带宽。本领域的技术人员可以理解,如果所述转发设备只运行一个转发业务,则所述转发业务的实际性能的最大值可以是线速。

下述实施例中涉及到的转发业务可以是二层转发业务、三层转发业务、四层转发业务、多协议标签交换(英文:Multiprotocol Label Switching,简称:MPLS)转发业务或者虚拟专用网(英文:virtual private network,简称:VPN)转发业务。所述二层转发业务可以是媒体接入控制(英文:Media Access Control,简称:MAC)协议转发业务。所述三层转发业务可以是网际协议(英文:internet protocol,简称:IP)转发业务。所述四层转发业务可以是传输控制协议(英文:Transmission Control Protocol,简称:TCP)转发业务或者用户数据报协议(User Datagram Protocol,UDP)转发业务。所述VPN转发业务可以是二层虚拟专用网(英文:Layer2virtual private network,简称:L2VPN)转发业务或者三层虚拟专用网(英文:Layer3virtual private network,简称:L3VPN)转发业务。所述转发业务可以对某种协议的报文进行处理。例如MAC协议转发业务可以对MAC协议报文进行处理。IP转发业务可以对IP报文进行处理。TCP转发业务可以对TCP报文进行处理。UDP转发业务可以对UDP报文进行处理。

下述实施例中涉及到的表可以路由表、MAC协议表或者入标签映射(英文:incoming label map,简称:ILM)表。下述实施例中涉及到的表也可以是对路由表、MAC协议表或者ILM表中包含的子表。例如,所述路由表可以包括目的IP地址与下一跳的映射关系。所述路由表可以包含第一子表和第二子表。所述第一子表可以包括目的IP地址与下一跳的索引的映射关系。所述第二子表可以是包括所述下一跳的索引与所述下一跳的映射关系。本发明实施例不对表的格式以及表的内容进行限定。

图1是本发明一个实施例的确定表的存储位置的方法的流程图。图1所示的方法包括:

101,转发设备接收控制器发送的M个描述信息,该M个描述信息与M个转发业务一一对应,该M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行该对应的转发业务需要查找的表的标识,执行M个转发业务需要查找N个表,M个转发业务的预定的性能组成的集合包含Q个元素,该Q个元素分别是第1个元素至第Q个元素,该Q个元素中的每个元素表示一个预定的性能,其中,该Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1。

102,该转发设备根据M个描述信息,生成Q个同时访问信息,Q个同时访问信息中的第r个同时访问信息表示N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问。

103,该转发设备根据Q个同时访问信息,确定N个表将被存储在该转发设备的至少一个存储器中。

104,该转发设备将该N个表存储在该至少一个存储器中。

本发明实施例通过转发业务的描述信息,其中描述信息包括转发业务的预定的性能,生成执行转发业务需要查找的表的同时访问信息。根据表的同时访问信息,确定执行转发业务需要查找的表将被存储在转发设备中的至少一个存储器中。有助于使得转发业务的实际性能尽可能达到预定的性能。

本发明实施例中,M个描述信息中的每个描述信息包括与该每个描述信息对应的转发业务的预定的性能以及执行该对应的转发业务需要查找的所有的表的标识。其中,对应的转发业务的预定的性能可以是线速,或者也可以是线速乘以一个系数。该系数为0到1之间的值。其中,表的标识可以是表的序号,或者也可以是表的其他标识,本发明实施例对此不作限定。

举例来说,所述M个转发业务可以包括二层转发业务、三层转发业务、四层转发业务、MPLS转发业务以及VPN转发业务中的一个或者多个转发业务。所述二层转发业务可以是MAC协议转发业务。所述三层转发业务可以是IP转发业务。所述四层转发业务可以是TCP转发业务。所述VPN转发业务可以是L2VPN转发业务或者L3VPN转发业务。

举例来说,所述M个转发业务可以分别对M个协议的报文进行处理。所述M个协议的报文可以是MAC协议报文、IP报文、TCP报文以及UDP报文中的至少一个协议报文。

举例来说,所述N个表可以包括路由表、MAC协议表以及ILM表中的至少两个表。

应注意,M个转发业务中的两个不同的转发业务可以查找同一个表。

可选地,作为一个实施例,101中,转发设备可通过控制通道接收控制器发送的M个描述信息。或者,转发设备也可通过其他的方式从控制器接收M个描述信息。本发明对此不作限定。

可选地,作为另一个实施例,101中,转发设备可接收控制器发送的控制消息,该控制消息包括M个描述信息。本发明对此不作限定。

本发明实施例对转发业务的预定的性能的种类,即Q的值不作限定。

具体来说,

Q=1,表示M个转发业务的预定的性能都相同,例如,该预定的性能为线速,即C1=1。

Q=3,表示M个转发业务可分为三组,每一组转发业务中的转发业务的预定的性能彼此相同。例如,这3种预定的性能可以为线速、半速和慢速,即C1=1,C2=0.5,C3=0。

可选地,作为一个实施例,102中,Q个同时访问信息可表示为Q个N×N的矩阵。该Q个N×N的矩阵中的每个N×N的矩阵的元素为1或者0。其中,如果Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为1,则表示N个表中的第i个表和N个表中的第j个表需要同时被M个转发业务中预定的性能为Cr×线速的至少一个转发业务访问。其中,如果Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为0,则表示N个表中的第i个表和N个表中的第j个表不需要同时被M个转发业务中预定的性能为Cr×线速的任意一个转发业务同时访问。其中,i和j为正整数,且i和j均小于或者等于N。

例如,Q=1,且C1=1时,即表示M个转发业务的预定的性能都为线速。此时,Q个同时访问信息包括1个N×N的矩阵。并且该1个N×N的矩阵的第i行第j列的元素表示N个表中的第i个表和N个表中的第j个表是否需要同时被至少一个业务访问。

再例如,Q=3,且C1=1,C2=0.5,C3=0时,即表示M个转发业务中的每一个转发业务的预定的性能为线速或半速或慢速。其中,0.5×线速也称为半速。此时,Q个同时访问信息包括3个N×N的矩阵。并且该3个N×N的矩阵的第1个N×N的矩阵的第i行第j列的元素表示N个表中的第i个表和N个表中的第j个表是否需要同时被预定的性能为线速的至少一个转发业务访问。该3个N×N的矩阵的第2个N×N的矩阵的第i行第j列的元素表示N个表中的第i个表和N个表中的第j个表是否需要同时被预定的性能为半速的至少一个转发业务访问。该3个N×N的矩阵的第3个N×N的矩阵的第i行第j列的元素表示N个表中的第i个表和N个表中的第j个表是否需要同时被预定的性能为慢速的至少一个转发业务访问。

应注意,本发明实施例中,也可用其他的形式表示Q个同时访问信息。例如,可以是数组的形式,或者也可以是位图的形式。本发明对此不作限定。

本发明实施例中,在103中,转发设备首先确定转发设备的存储器中已经存储的表的标识,根据Q个同时访问信息确定该存储器中已经存储的表与当前需要存储的表之间的同时访问关系,进一步确定是否可将当前需要存储的表存储在该存储器中。其中,同时访问关系是指两个表是否需要被同一个转发业务访问。

具体地,如果将待存储的表存储在该存储器中时,仍然能够满足与该存储器所存储的表对应的所有转发业务的预定的性能,此时可确定该待存储的表的存储位置即为该存储器。如果将待存储的表存储在该存储器中时,不能满足与该存储器所存储的表相关的任一个转发业务的预定的性能,此时确定不能将该待存储的表存储在该存储器中。这种情况下,可以假设将该待存储的表存储在转发设备的其他存储器中,进行与该存储器类似的判断。

具体地,103中,确定N个表将被存储在转发设备的至少一个存储器中,包括确定N个表中的每个表将被存储在转发设备的至少一个存储器中。

转发设备的至少一个存储器可以是一个存储器,也可以是多个存储器。假设该至少一个存储器中包括第一存储器。

其中,确定将被存储的表是否可存储在至少一个存储器的第一存储器中,包括:根据该将被存储的表与其他的表的同时访问关系,该第一存储器中已经存储的表以及该第一存储器能够提供的最大带宽来判断是否可将该被存储的表存储在该第一存储器中。

可选地,作为一个实施例,其中确定N个表中的第m个表将被存储在至少一个存储器的第一存储器中,具体包括:该转发设备确定所述N个表中的每个表是否已经存储在该第一存储器中。1×N的矩阵用于表示N个表中的每个表是否已经存储在该转发设备的第一存储器中。该1×N的矩阵的第1列元素至第N列元素分别用于表示该N个表中的第1个表至该N个表中的第N个表是否已经存储在第一存储器中。其中,1×N的矩阵的第i列元素用于表示N个表中的第i个表是否已经存储在第一存储器中。如果该1×N的矩阵的第i列元素为1则表示该转发设备的第一存储器已经存储了N个表中的第i个表,如果该1×N的矩阵的第i列为0则表示该转发设备的第一存储器没有存储N个表中的第i个表。具体地,当该转发设备的第一存储器中没有存储N个表中的任一表时,该1×N的矩阵的每一列的元素均为0。

转发设备将102中所确定的Q个N×N的矩阵中每个N×N的矩阵的第m行的元素与1×N的矩阵的对应元素作与运算,确定结果为1的个数。其中,Q个N×N的矩阵中的的第r个N×N的矩阵的第m行的元素与该1×N的矩阵的对应元素作与运算的结果为1的个数为Pr。其中,Q个N×N的矩阵中的的第r个N×N的矩阵的第m行的N个元素,与该1×N的矩阵中的N个元素一一对应。具体地,所述第m行的N个元素与所述1×N的矩阵中的N个元素中,所在的列相同的元素具有一一对应关系。应理解,作与运算的两个数分别位于Q个N×N的矩阵中的的第r个N×N的矩阵的第m行,和1×N的矩阵。并且这两个数所在的列数是一样的。

所述转发设备基于max((P1+1)×C1×A,……,(PQ+1)×CQ×A)≤B,转发设备确定N个表中的第m个表将被存储在该第一存储器中。也就是说,对于r取值分别为1至Q的Q个正整数,能够得到对应的Q个(Pr+1)×Cr×A的值。当这Q个(Pr+1)×Cr×A的值中的最大值小于或者等于B时,可确定N个表中的第m个表将被存储的位置为该第一存储器。也可理解,该N个表中的第m个表将被存储在转发设备中的位置为该第一存储器。

其中,m为小于或者等于N的正整数,Pr为非负整数,Pr<N,A和B为正数,A表示实际性能为线速的转发业务需要占用的带宽,B表示该第一存储器能够提供的最大带宽。

可理解,假设待存储的表为N个表中的第m个表,转发设备首先确定第一存储器中已经存储的表,并以1×N的矩阵来表示,其中该1×N的矩阵的第m列的元素为0。当该第一存储器中没有存储任何表时,该1×N的矩阵的N列元素均为0。当该第一存储器中已经存储有表时,该已经存储的表在该1×N的矩阵的对应位置的元素为1。

进一步地,转发设备将该N个表中的第m个表存储在该第一存储器之后,将该1×N的矩阵的第m列元素由0更新为1。

例如,Q=1,且C1=1时,即表示M个转发业务的预定的性能都为线速。此时,若待存储的表为N个表中的第m个表,当满足max((P1+1)×A)≤B时,转发设备确定N个表中的第m个表将被存储在该第一存储器。

再例如,Q=3,且C1=1,C2=0.5,C3=0时,即表示M个转发业务的预定的性能为线速或半速或慢速。此时,若待存储的表为N个表中的第m个表,当满足max((P1+1)×A,(P2+1)×0.5×A,(P3+1)×0×A)=max((P1+1)×A,(P2+1)×0.5×A)≤B时,转发设备确定N个表中的第m个表将被存储在该第一存储器。

这样,转发设备可逐一地确定N个表中的每个表将被存储的位置。

可选地,作为一个实施例,当转发设备根据Q个同时访问信息,确定不能将N个表中的第a个表的存储在该至少一个存储器中时,可生成第一消息。该第一消息用于通告该转发设备确定不能将N个表中的第a个表存储在该至少一个存储器中。进一步地该转发设备可将该第一消息发送至控制器。其中,a为正整数,且a小于或者等于N。

可理解,若待存储的表为N个表中的第a个表,当转发设备遍历该转发设备上的所有的存储器,采用前述的方法,均无法确定其将被存储的位置时,可确定该转发设备确定不能将N个表中的第a个表的存储在该转发设备的至少一个存储器中。

可选地,作为另一个实施例,转发设备可接收控制器发送的第二消息,该第二消息用于指示该转发设备尽力存储N个表中的第a个表。该转发设备可根据第二消息,工作于尽力而为模式并确定N个表中的第a个表将被存储在至少一个存储器的第二存储器中。进一步地,转发设备生成第三消息,该第三消息用于通告该转发设备确定N个表中的第a个表将被存储在该第二存储器中时,N个表中的第a个表所支持的转发业务的实际性能。随后,转发设备可将该第三消息发送至该控制器。

应注意,若N个表中的第a个表需要被多个转发业务查找,那么该第三消息应包括与该多个转发业务一一对应的多个实际性能。

应注意,这里的第二存储器可以是第一存储器,也可以是至少一个存储器中的与第一存储器不同的另一存储器。本发明对此不作限定。

具体地,该转发设备工作于尽力而为模式时,可以是随机确定该N个表中的第a个表将被存储的位置。也就是说,第二存储器可以是至少一个存储器中的任一存储器。

或者,具体地,该转发设备工作于尽力而为模式时,可优先确定预定的性能高的转发业务中的表将被存储的位置。可以理解为,转发设备优先保障Cr较大的转发业务的实际性能。

例如,Q=3,且C1=1,C2=0.5,C3=0时,即表示M个转发业务中的每一个转发业务的预定的性能为线速或半速或慢速。若该转发设备确定该第a个表将被存储的位置为第二存储器,该第二存储器的带宽为B’。假设将第一N×N矩阵中的第a行的元素与第二存储器的表存储位图中的对应元素作与运算,确定结果为1的个数为P1;将第二N×N矩阵中的第a行的元素与第二存储器的表存储位图中的对应元素作与运算,确定结果为1的个数为P2;将第三N×N矩阵中的第a行的元素与第二存储器的表存储位图中的对应元素作与运算,确定结果为1的个数为P3。其中,P1、P2和P3为小于N的非负整数。且max((P1+1)×A,(P2+1)×0.5×A,(P3+1)×0×A)>B’,那么上述第三消息可用于通告该第a个表将被存储在该第二存储器中所能支持的转发业务的实际性能为:需要查找该第a个表的预定的性能为线速的转发业务实际能达到1/(1+P1)倍的线速,需要查找该第a个表的预定的性能为半速的转发业务实际能达到2/(1+P2)倍的半速。具体地,转发设备工作于尽力而为模式时,优先选择能够保障预定的性能为线速的转发业务的实际性能的存储器进行存储。

本发明实施例通过转发业务的描述信息,其中描述信息包括转发业务的预定的性能,生成执行转发业务需要查找的表的同时访问信息,并根据表的同时访问信息,确定执行转发业务需要查找的表将被存储在转发设备中的至少一个存储器中。通过上述技术方案确定的表将被存储在转发设备中的位置有助于使得转发业务的实际性能尽可能达到预定的性能。

图2是本发明另一个实施例的确定表的存储位置的方法的流程图。图2对应的实施例是对图1对应的实施例的进一步说明。关于图2对应的实施例,具体可以参考图1对应的实施例。参见图2,图2所示的方法包括:

201,控制器生成M个描述信息,该M个描述信息与M个转发业务一一对应,该M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行该对应的转发业务需要查找的表的标识,执行M个转发业务需要查找N个表,M个转发业务的预定的性能组成的集合包含Q个元素,该Q个元素分别是第1个元素至第Q个元素,该Q个元素中的每个元素表示一个预定的性能,其中,该Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1。

202,控制器将M个描述信息发送至转发设备。

举例来是,202具体可以包括:控制器将M个描述信息发送至转发设备,以使得该转发设备确定M个转发业务需要查找的N个表将被存储在转发设备的至少一个存储器中。

本发明实施例通过转发业务的描述信息,其中描述信息包括转发业务的预定的性能,生成执行转发业务需要查找的表的同时访问信息。根据表的同时访问信息,确定执行转发业务需要查找的表将被存储在转发设备中的至少一个存储器中。执行转发业务需要对表进行查找。对表执行查找操作则会占用转发设备的硬件资源。例如,占用转发设备的存储器的带宽。转发业务的实际性能受到转发设备的可用的硬件资源的约束。例如,受到了转发设备的存储器的可用带宽的约束。执行转发业务时,具有同时访问关系的两个表都会被查找。对两个表执行查找操作时,每个表都会占用转发设备的可用的硬件资源,从而对转发业务的实际性能造成影响。上述技术方案中,控制器向转发设备发送的M个描述信息中包含了表的同时访问信息。因此,所述转发设备确定所述N个表在所述转发设备的存储位置时,可以考虑所述N个表是否具有同时访问关系这一因素。因此,通过上述技术方案有助于使得转发业务的实际性能尽可能达到预定的性能。

本发明实施例中,每个描述信息包括与该每个描述信息对应的转发业务的预定的性能以及执行该对应的转发业务需要查找的所有的表的标识。其中,对应的转发业务的预定的性能可以是线速,或者也可以是线速乘以一个系数,且该系数为0到1之间的任意值。其中,表的标识可以是表的序号,或者也可以是表的其他标识,本发明对此不作限定。

应注意,M个转发业务中的两个不同的转发业务可以查找同一个表。

本发明实施例对转发业务的预定的性能的种类,即Q的值不作限定。

具体地,

Q=1,表示M个转发业务的预定的性能都相同,例如,该预定的性能为线速,即C1=1。

Q=3,表示M个转发业务可分为三组,每一组中的转发业务的预定的性能相同。例如,这3种预定的性能可以为线速、半速和慢速,即C1=1,C2=0.5,C3=0。

本发明实施例中,M个描述信息可以是所述控制器的用户,例如运营商预先存储在该控制器中的,或者,M个描述信息也可以是控制器从其他的设备或装置所获取的,本发明对此不作限定。

可选地,作为一个实施例,202中,控制器可通过控制通道发送M个描述信息至转发设备。或者,控制器也可通过其他的方式发送M个描述信息至转发设备。本发明对此不作限定。

可选地,作为另一个实施例,202中,控制器可发送控制消息至转发设备,该控制消息包括M个描述信息。本发明对此不作限定。

可选地,作为一个实施例,控制器可接收转发设备发送的第一消息,该第一消息用于通告该转发设备确定不能将N个表中的第j个表存储在该转发设备的至少一个存储器中。其中,j为小于或者等于N的正整数。

可选地,作为一个实施例,若该控制器不允许需要查找第j个表的转发业务降速,那么该控制器接收到第一消息后可不作进一步处理。

可选地,作为另一个实施例,若该控制器允许需要查找第j个表的转发业务降速,那么该控制器可生成第二消息,该第二消息用于指示转发设备尽力存储该第j个表。进一步,该控制器可将该第二消息发送至转发设备,以使得该转发设备工作于尽力而为模式并确定将被存储在转发设备的至少一个存储器的第二存储器中。并且,该控制器可接收转发设备发送的第三消息,该第三消息用于通告在该转发设备确定第j个表将被存储在该第二存储器中时,该第j个表所支持的转发业务的实际性能。

应注意,本发明实施例中的转发业务的描述信息可以是由所述控制器的用户,例如运营商定义的。所述运营商将转发业务的描述信息存储在控制器中。当运营商增加转发业务或者修改转发业务的描述信息时,该控制器可以实时地将增加的转发业务或者修改的转发业务的描述信息发送至转发设备。进一步地,可由转发设备根据增加的转发业务或修改的转发业务的描述信息,重新确定转发业务需要查找的表将被存储的位置。

具体地,当运营商增加一个新的转发业务时,同时运营商定义了该新的转发业务的描述信息。则控制器将该新的转发业务的描述信息发送至转发设备。例如,运营商可增加第M+1个转发业务,该第M+1个转发业务的描述信息可包含前述N个表中的1个或多个表,也可包含N个表之外的至少一个新的表。同时运营商可定义该第M+1个转发业务的预定的性能为Q个元素中的一个,或者该第M+1个转发业务的预定的性能为CQ+1×线速。

具体地,当运营商修改了一个转发业务的描述信息时,可以是修改该转发业务需要查找的表,也可以是修改该转发业务的预定的性能。则控制器将修改的转发业务的描述信息发送至转发设备。例如,运营商可修改M个描述信息中与第i个转发业务对应的第i个描述信息,该第i个转发业务需要查找的表不变,但是该第i个转发业务的预定的性能发生变化。或者,运营商可修改M个描述信息中与第i个转发业务对应的第i个描述信息,该第i个转发业务的预定的性能不变,但是该第i个转发业务需要查找的表的个数增加或减少。或者,运营商可修改M个描述信息中与第i个转发业务对应的第i个描述信息,该第i个转发业务的预定的性能和该第i个转发业务需要查找的表均发生变化。本发明对此不作限定。

图3是本发明另一个实施例的确定表的存储位置的方法的流程图。关于图3对应的实施例中涉及的技术术语,可以参考图1对应的实施例。参见图3,图3所示的方法包括:

301,转发设备接收控制器发送的Q个同时访问信息,其中,该Q个同时访问信息中的第r个同时访问信息表示该N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问,执行M个转发业务需要查找该N个表。

302,转发设备根据Q个同时访问信息,确定N个表将被存储在该转发设备的至少一个存储器中。

303,转发设备将N个表存储在该至少一个存储器中。

本发明实施例中,转发设备根据表的同时访问信息确定表将被存储在转发设备的至少一个存储器中。其中,表的同时访问信息可以是控制器通过转发业务的描述信息所确定,并进一步将表的同时访问信息发送至转发设备的。因此,上述技术方案有助于使得转发业务的实际性能尽可能达到预定的性能。

可选地,作为一个实施例,301中,Q个同时访问信息可表示为Q个N×N的矩阵。Q个N×N的矩阵中的每个N×N的矩阵的元素为1或者0。其中,如果Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为1,则表示N个表中的第i个表和N个表中的第j个表需要同时被M个转发业务中预定的性能为Cr×线速的至少一个转发业务访问。其中,如果Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为0,则表示N个表中的第i个表和N个表中的第j个表不需要同时被M个转发业务中预定的性能为Cr×线速的任意一个转发业务同时访问。其中,i和j为正整数,且i和j均小于或者等于N。

例如,Q=1,且C1=1时,即表示M个转发业务的预定的性能都为线速。此时,Q个同时访问信息可包括1个N×N的矩阵。并且该1个N×N的矩阵的第i行第j列的元素表示N个表中的第i个表和N个表中的第j个表是否需要同时被至少一个业务访问。

再例如,Q=3,且C1=1,C2=0.5,C3=0时,即表示M个转发业务中的每一个转发业务的预定的性能为线速或半速或慢速。其中,0.5×线速也称为半速。此时,Q个同时访问信息可包括3个N×N的矩阵。并且该3个N×N的矩阵的第1个N×N的矩阵的第i行第j列的元素表示N个表中的第i个表和N个表中的第j个表是否需要同时被预定的性能为线速的至少一个转发业务访问。该3个N×N的矩阵的第2个N×N的矩阵的第i行第j列的元素表示N个表中的第i个表和N个表中的第j个表是否需要同时被预定的性能为半速的至少一个转发业务访问。该3个N×N的矩阵的第3个N×N的矩阵的第i行第j列的元素表示N个表中的第i个表和N个表中的第j个表是否需要同时被预定的性能为慢速的至少一个转发业务访问。

应注意,本发明实施例中,也可用其他的形式表示Q个同时访问信息。例如,可以是数组的形式,或者也可以是位图的形式,或者也可以是其他的形式,本发明对此不作限定。

本发明实施例中,302可参见图1中的103,为避免重复,这里不再赘述。

可选地,作为一个实施例,当转发设备根据Q个同时访问信息,确定不能将N个表中的第a个表的存储在该至少一个存储器中时,可生成第一消息。该第一消息用于通告该转发设备确定不能将N个表中的第a个表存储在该至少一个存储器中。进一步地该转发设备可将该第一消息发送至控制器。其中,a为正整数,且a小于或者等于N。

可理解,若待存储的表为N个表中的第a个表,当转发设备遍历该转发设备上的所有的存储器,采用前述的方法,均无法确定其将被存储的位置时,可确定该转发设备确定不能将N个表中的第a个表的存储在该转发设备的至少一个存储器中。

可选地,作为另一个实施例,转发设备可接收控制器发送的第二消息,该第二消息用于指示该转发设备尽力存储N个表中的第a个表。该转发设备可根据第二消息,工作于尽力而为模式并确定N个表中的第a个表将被存储在至少一个存储器的第二存储器中。进一步地,转发设备生成第三消息,该第三消息用于通告该转发设备确定N个表中的第a个表将被存储在该第二存储器中时,N个表中的第a个表所支持的转发业务的实际性能。随后,转发设备可将该第三消息发送至该控制器。

应注意,若N个表中的第a个表需要被多个转发业务查找,那么该第三消息应包括与该多个转发业务一一对应的多个实际性能。

应注意,这里的第二存储器可以是第一存储器,也可以是至少一个存储器中的与第一存储器不同的另一存储器。本发明对此不作限定。

具体地,该转发设备工作于尽力而为模式时,可以是随机确定该N个表中的第a个表将被存储的位置。也就是说,第二存储器可以是至少一个存储器中的任一存储器。

或者,具体地,该转发设备工作于尽力而为模式时,可优先确定预定的性能高的转发业务中的表将被存储的位置。可以理解为,转发设备优先保障Cr较大的转发业务的实际性能。

例如,Q=3,且C1=1,C2=0.5,C3=0时,即表示M个转发业务中的每一个转发业务的预定的性能为线速或半速或慢速。若该转发设备确定该第a个表将被存储的位置为第二存储器,该第二存储器的带宽为B’。假设将第一N×N矩阵中的第a行的元素与第二存储器的表存储位图中的对应元素作与运算,确定结果为1的个数为P1;将第二N×N矩阵中的第a行的元素与第二存储器的表存储位图中的对应元素作与运算,确定结果为1的个数为P2;将第三N×N矩阵中的第a行的元素与第二存储器的表存储位图中的对应元素作与运算,确定结果为1的个数为P3。其中,P1、P2和P3为小于N的非负整数。且max((P1+1)×A,(P2+1)×0.5×A,(P3+1)×0×A)>B’,那么上述第三消息可用于通告该第a个表将被存储在该第二存储器中所能支持的转发业务的实际性能为:需要查找该第a个表的预定的性能为线速的转发业务实际能达到1/(1+P1)倍的线速,需要查找该第a个表的预定的性能为半速的转发业务实际能达到2/(1+P2)倍的半速。具体地,转发设备工作于尽力而为模式时,优先选择能够保障预定的性能为线速的转发业务的实际性能的存储器进行存储。

本发明实施例通过转发业务的描述信息,其中描述信息包括转发业务的预定的性能,生成执行转发业务需要查找的表的同时访问信息,并根据表的同时访问信息以及转发设备的存储器已经存储的表,确定执行转发业务需要查找的表将被存储在转发设备中的存储位置。通过上述技术方案确定的表的存储位置有助于使得转发业务的实际性能尽可能达到预定的性能。

图4是本发明另一个实施例的确定表的存储位置的方法的流程图。图4对应的实施例是图3对应的实施例的进一步说明。另外,关于图4对应的实施例中涉及的技术术语,具体可以参考图1对应的实施例。参见图4,图4所示的方法包括:

401,控制器生成M个描述信息,该M个描述信息与M个转发业务一一对应,M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行该对应的转发业务需要查找的表的标识,执行M个转发业务需要查找N个表,M个转发业务的预定的性能组成的集合包含Q个元素,Q个元素分别是第1个元素至第Q个元素,该Q个元素中的每个元素表示一个预定的性能,其中,该Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1。

402,控制器根据M个描述信息,生成Q个同时访问信息,其中,该Q个同时访问信息中的第r个同时访问信息表示N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问。

403,控制器将Q个同时访问信息发送至转发设备。

本发明实施例中,控制器通过转发业务的描述信息确定转发业务需要查找的表的同时访问信息。进一步将表的同时访问信息发送至转发设备。可使得转发设备根据表的同时访问信息确定表将被存储在转发设备的至少一个存储器中。这样确定的表将被存储在转发设备中的位置有助于使得转发业务的实际性能尽可能达到预定的性能。

本发明实施例中,401可参见图2中的201,为避免重复,这里不再赘述。

可选地,作为一个实施例,402中,Q个同时访问信息可表示为Q个N×N的矩阵。Q个N×N的矩阵中的每个N×N的矩阵的元素为1或者0。其中,如果Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为1,则表示N个表中的第i个表和N个表中的第j个表需要同时被M个转发业务中预定的性能为Cr×线速的至少一个转发业务访问。其中,如果Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为0,则表示N个表中的第i个表和N个表中的第j个表不需要同时被M个转发业务中预定的性能为Cr×线速的任意一个转发业务同时访问。其中,i和j为正整数,且i和j均小于或者等于N。

例如,Q=1,且C1=1时,即表示M个转发业务的预定的性能都为线速。此时,Q个同时访问信息包括1个N×N的矩阵。并且该1个N×N的矩阵的第i行第j列的元素表示N个表中的第i个表和N个表中的第j个表是否需要同时被至少一个业务访问。

再例如,Q=3,且C1=1,C2=0.5,C3=0时,即表示M个转发业务中的每一个转发业务的预定的性能为线速或半速或慢速。其中,0.5×线速也称为半速。此时,Q个同时访问信息包括3个N×N的矩阵。并且该3个N×N的矩阵的第1个N×N的矩阵的第i行第j列的元素表示N个表中的第i个表和N个表中的第j个表是否需要同时被预定的性能为线速的至少一个转发业务访问。该3个N×N的矩阵的第2个N×N的矩阵的第i行第j列的元素表示N个表中的第i个表和N个表中的第j个表是否需要同时被预定的性能为半速的至少一个转发业务访问。该3个N×N的矩阵的第3个N×N的矩阵的第i行第j列的元素表示N个表中的第i个表和N个表中的第j个表是否需要同时被预定的性能为慢速的至少一个转发业务访问。

应注意,本发明实施例中,也可用其他的形式表示Q个同时访问信息。例如,可以是数组的形式,或者也可以是位图的形式,或者也可以是其他的形式,本发明对此不作限定。

可选地,作为一个实施例,403中,控制器可通过控制通道发送Q个同时访问信息至转发设备。或者,控制器也可通过其他的方式发送Q个同时访问信息至转发设备。本发明对此不作限定。

可选地,作为另一个实施例,403中,控制器可发送控制消息至转发设备,该控制消息包括Q个同时访问信息。本发明对此不作限定。

可选地,作为一个实施例,控制器可接收转发设备发送的第一消息,该第一消息用于通告该转发设备确定不能将N个表中的第a个表存储在该转发设备的至少一个存储器中。其中,a为小于或者等于N的正整数。

可选地,作为一个实施例,若该控制器不允许需要查找第a个表的转发业务降速,那么该控制器接收到第一消息后可不作进一步处理。

可选地,作为另一个实施例,若该控制器允许需要查找第a个表的转发业务降速,那么该控制器可生成第二消息,该第二消息用于指示转发设备尽力存储该第a个表。进一步,该控制器可将该第二消息发送至转发设备,以使得该转发设备工作于尽力而为模式并确定将被存储在转发设备的至少一个存储器的第二存储器中。并且,该控制器可接收转发设备发送的第三消息,该第三消息用于通告在该转发设备确定第a个表将被存储在该第二存储器中时,该第a个表所支持的转发业务的实际性能。

应注意,本发明实施例中的转发业务的描述信息可以是由运营商定义并存储在控制器中的。当运营商增加转发业务或者修改转发业务的描述信息时,该控制器会实时地将增加的转发业务或者修改的转发业务的描述信息发送至转发设备。进一步地,可由转发设备根据增加的转发业务或修改的转发业务的描述信息,重新确定转发业务需要查找的表将被存储的位置。

具体地,当运营商增加一个新的转发业务时,同时运营商定义了该新的转发业务的描述信息。若该新的转发业务需要查找的表属于前述的N个表,则控制器根据该新的转发业务的描述信息,重新确定并实时更新该新的转发业务需要查找的表的同时访问信息。进一步将更新以后的该新的转发业务需要查找的表的同时访问信息发送至转发设备。若该新的转发业务需要查找的表中有前述的N个表之外的表,此时控制器要根据该新的转发业务以及该新的转发业务的预定的性能,重新确定并实时更新该新的转发业务需要查找的所有表的同时访问信息。进一步将更新以后的该新的转发业务需要查找的所有表的同时访问信息发送至转发设备。例如,运营商可增加第M+1个转发业务,该第M+1个转发业务可包含前述N个表中的多个表,也可包含N个表之外的至少一个新的表。同时运营商可定义该第M+1个转发业务的预定的性能为Q个元素中的一个,或者该第M+1个转发业务的预定的性能为CQ+1×线速。进一步地,控制器可根据该第M+1个转发业务的描述信息重新确定并更新与该第M+1个转发业务相关的表的同时访问信息,并将与该第M+1个转发业务相关的表的同时访问信息发送至转发设备。

具体地,当运营商修改一个转发业务的描述信息时,可以是修改该转发业务需要查找的表,也可以是修改该转发业务的预定的性能。则控制器根据该修改的转发业务的描述信息重新确定并实时更新该修改的转发业务需要查找的表的同时访问信息。并进一步将更新以后的该修改的转发业务需要查找的表的同时访问关系发送至转发设备。例如,运营商可修改M个描述信息中与第i个转发业务对应的第i个描述信息,该第i个转发业务需要查找的表的不变,但是该第i个转发业务的预定的性能发生变化。或者,运营商可修改M个描述信息中与第i个转发业务对应的第i个描述信息,该第i个转发业务的预定的性能不变,但是该第i个转发业务需要查找的表发生变化。或者,运营商可修改M个描述信息中与第i个转发业务对应的第i个描述信息,该第i个转发业务的预定的性能和该第i个转发业务需要查找的表均发生变化。本发明对此不作限定。进一步地,控制器可根据该修改的第i个描述信息重新确定并更新与该修改的第i个转发业务需要查找的表的同时访问信息,并将与该修改的第i个转发业务需要查找的表的同时访问信息发送至转发设备。

这样,本发明实施例中,控制器根据转发业务的描述信息确定转发业务需要查找的表的同时访问信息,可实现全网控制,节省转发设备的计算消耗。进一步由转发设备根据表的同时访问信息确定表在转发设备中的存储位置,实现了对转发业务的可控可编程,避免由于表的存储位置不当导致的转发性能不能满足业务要求的问题。

本发明实施例中,运营商可根据实际应用的需要和设备的能力,对转发业务的性能进行合理的配置或编程并存储在控制器中,能够使运营商用较少的资源保证业务的性能。

图5是本发明另一个实施例的确定表的存储位置的方法的流程图。图5对应的实施例可以用于执行图1所示的方法。图5对应的实施例也可以用于执行图2所示的方法。图5对应的实施例中涉及的技术术语,可以参考图1对应的实施例。具体地,图5所示的方法包括:

501,控制器510生成M个描述信息,该M个描述信息与M个转发业务一一对应,该M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行该对应的转发业务需要查找的表的标识,执行M个转发业务需要查找N个表,M个转发业务的预定的性能组成的集合包含Q个元素,该Q个元素分别是第1个元素至第Q个元素,该Q个元素中的每个元素表示一个预定的性能,其中,该Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1。

本发明实施例中,501可参见图2中的201,为避免重复,这里不再赘述。

例如,本发明实施例以M=38,N=16为例进行描述。其中,每一个转发业务需要查找的表如图6所示为该M=38个转发业务需要查找的表所形成的多分枝的有向图。其中包含16个表,分别用表1至表16来表示。

另外,假设该M=38个转发业务的预定的性能组成的集合包含Q=3个元素,且C1=1,C2=0.5,C3=0。其中,1×线速即为线速,0.5×线速也称为半速,0×线速也称为慢速。也就是说,M=38个转发业务中的每一个转发业务的预定的性能为线速或半速或慢速。如图7所示为38个转发业务中的预定的性能为线速的3个转发业务。图8所示为38个转发业务中的预定的性能为半速的2个转发业务。相应地,在图6所示的38个转发业务中,除去图7所示的3种转发业务和图8所示的2个转发业务,剩余的33个转发业务的预定的性能均为慢速,这里不再罗列。

应注意,本发明实施例中转发业务的描述信息可以是由运营商定义并存储在控制器510中的。

502,控制器510将M个描述信息发送至转发设备520。

本发明实施例中,502可参见图2中的202,为避免重复,这里不再赘述。

具体地,控制器510可通过控制通道向转发设备发送控制消息,该控制消息包括M个描述信息。

503,转发设备520接收控制器510发送的发送的M个描述信息,该M个描述信息与M个转发业务一一对应,该M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行该对应的转发业务需要查找的表的标识,执行M个转发业务需要查找N个表,M个转发业务的预定的性能组成的集合包含Q个元素,该Q个元素分别是第1个元素至第Q个元素,该Q个元素中的每个元素表示一个预定的性能,其中,该Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1。

本发明实施例中,503可参见图1中的101,为避免重复,这里不再赘述。

504,转发设备520根据M个描述信息,生成Q个同时访问信息,Q个同时访问信息中的第r个同时访问信息表示N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问。

本发明实施例中,504可参见图1中的102,为避免重复,这里不再赘述。

例如,对于图6所示的转发业务,可根据图7中的预定的性能为线速的3个转发业务、图8中的预定的性能为半速的2个转发业务、以及预定的性能为慢速的33个转发业务,生成Q个同时访问信息。且Q个同时访问信息包括3个16×16的矩阵。

其中,第1个16×16的矩阵用于表示16个表的线速同时访问信息,如图9所示,其中第1个16×16的矩阵的第i行第j列的元素表示16个表中的第i个表和第j个表是否需要同时被图7所示的预定的性能为线速的一个转发业务同时访问。

例如,图9所示的矩阵中的第4行表示表4与其他表的线速同时访问信息。其中第4行第5列为1,表示表4和表5需要被预定的性能为线速的同一个转发业务访问,如图7中所示的第一个转发业务。其中第4行第8列为0,表示表4和表8不需要被预定的性能为线速的任意一个转发业务同时访问,具体体现在:图7所示的任一个转发业务中均不同时包含表4和表8。

其中,第2个16×16的矩阵用于表示16个表的半速同时访问信息,如图10所示,其中第2个16×16的矩阵的第i行第j列的元素表示16个表中的第i个表和第j个表是否需要同时被图8所示的预定的性能为半速的一个转发业务同时访问。

例如,图10所示的矩阵中的第4行表示表4与其他表的半速同时访问信息。其中第4行第5列为1,表示表4和表5需要被预定的性能为半速的同一个转发业务访问,如图8中所示的第一个转发业务。其中第4行第8列为0,表示表4和表8不需要被预定的性能为半速的任意一个转发业务同时访问,具体体现在:图8所示的任一个转发业务中均不同时包含表4和表8。

其中,第3个16×16的矩阵用于表示16个表的慢速同时访问信息,其中第3个16×16的矩阵的第i行第j列的元素表示16个表中的第i个表和第j个表是否需要同时被预定的性能为慢速的一个转发业务同时访问。这里不再罗列慢速同时访问信息的矩阵形式。

505,转发设备520根据Q个同时访问信息,确定N个表将被存储在该转发设备520的至少一个存储器中。

本发明实施例中,505可参见图1中的103,为避免重复,这里不再赘述。

具体地,转发设备520确定N个表中的每个表将被存储在转发设备的至少一个存储器中。

可选地,假设转发设备520的至少一个存储器包括第一存储器。其中,确定N个表中的第m个表将被存储在至少一个存储器的第一存储器中,具体包括:转发设备520首先确定N个表中的每个表是否已经存储在该第一存储器中,并表示为1×N的矩阵,也可称为第一存储器的第一表存储位图。如果该1×N的矩阵的第i列元素为1则表示该第一存储器已经存储了N个表中的第i个表,如果该1×N的矩阵的第i列元素为0则表示该转发设备的第一存储器没有存储N个表中的第i个表。

对于图6所示的转发业务,如图11所示为该转发设备的第一存储器已经存储的表的信息,表示为1×16的矩阵。其中,该1×16的矩阵的第1列和第5列为1,表示该第一存储器中已经存储有表1和表5。

例如,假设当前待存储的表为表4。即在确定表4的存储位置时,将图9中的第4行与图11中的1×16的矩阵对应元素作与运算,结果为1的个数是P1=2个。将图10的第4行与图11中的1×16的矩阵对应作与运算,结果为1的个数是P2=2个。由于C3=0,这里不再确定与预定的性能为慢速对应的P3的值。假设预定的性能为线速的转发业务所占用的带宽为A=1/4B,其中B为第一存储器能够提供的最大带宽。由于max((P1+1)×A,(P2+1)×0.5×A)=1/2B,满足max((P1+1)×A,(P2+1)×0.5×A,(P3+1)×0×A)≤B,那么该表4可存储在该第一存储器上。即确定了表4将被存储的存储位置为该第一存储器。进一步地,转发设备520将该表4存储在该第一存储器中并将第一存储器的表已经存储的表的信息中的第4列更新为1。即,该第一存储器的第一表存储位图更新为如图12所示的第一存储器的第二表存储位图。

之后,转发设备520可在图12所示的第二表存储位图的基础上,确定表4之外的其他的表的存储位置。具体的确定的方法与确定表4的存储位置的方法类似,为避免重复,这里不再赘述。

应注意,当转发设备520在尝试了至少一个存储器中的所有的存储器之后,仍然无法确定第a个表将被存储的位置时,转发设备520生成第一消息,并将该第一消息发送至控制器510。其中,该第一消息用于通告转发设备520确定不能将第a个表存储在至少一个存储器中。其中,a为小于或者等于N的自然数。

可选地,作为一个实施例,若控制器510不允许与第a个表相关的转发业务降速,那么控制器510接收到第一消息后不作进一步处理。

可选地,作为另一个实施例,若控制器510允许与该第a个表相关的转发业务降速,控制器510可生成第二消息,该第二消息用于指示转发设备520尽力存储该第a个表。进一步,控制器510可将该第二消息发送至转发设备520,以使得转发设备520工作于尽力而为模式并确定该第a个表将被存储在至少一个存储器的第二存储器中。并且,控制器510可接收转发设备520发送的第三消息,该第三消息用于通告在转发设备520确定第a个表将被存储在第二存储器中时,该第a个表所支持的转发业务的实际性能。

506,该转发设备520将N个表存储在该转发设备520的至少一个存储器中。

本发明实施例通过转发业务的描述信息,其中描述信息包括转发业务的预定的性能,生成执行转发业务需要查找的表的同时访问信息,并根据表的同时访问信息,确定执行转发业务需要查找的表将被存储在转发设备中的至少一个存储器中。通过上述技术方案确定的表将被存储在转发设备中的位置有助于使得转发业务的实际性能尽可能达到预定的性能。

图13是本发明另一个实施例的确定表的存储位置的方法的流程图。图13对应的实施例可以用于执行图3所示的方法。图5对应的实施例也可以用于执行图4所示的方法。图13对应的实施例中涉及的技术术语,可以参考图1对应的实施例。参见图13,图13所示的方法包括:

1301,控制器510生成M个描述信息,该M个描述信息与M个转发业务一一对应,M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行该对应的转发业务需要查找的表的标识,执行M个转发业务需要查找N个表,M个转发业务的预定的性能组成的集合包含Q个元素,Q个元素分别是第1个元素至第Q个元素,该Q个元素中的每个元素表示一个预定的性能,其中,该Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1。

本发明实施例中,1301可参见图2中的201,或者图4中的401,或者图5中的501,为避免重复,这里不再赘述。

1302,控制器510根据M个描述信息,生成Q个同时访问信息,其中,该Q个同时访问信息中的第r个同时访问信息表示N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问。

本发明实施例中,1302可参见图4中的402,为避免重复,这里不再赘述。

1303,控制器510将Q个同时访问信息发送至转发设备520。

本发明实施例中,1303可参见图4中的403,为避免重复,这里不再赘述。

1304,转发设备520接收控制器510发送的Q个同时访问信息,其中,该Q个同时访问信息中的第r个同时访问信息表示该N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问,执行M个转发业务需要查找该N个表。

本发明实施例中,步骤1304可参见图3中的步骤301,为避免重复,这里不再赘述。

1305,转发设备520根据Q个同时访问信息,确定N个表将被存储在该转发设备520的至少一个存储器中。

本发明实施例中,1305可参见图1中的103,或者图3中的302,或者图5中的505,为避免重复,这里不再赘述。

1306,转发设备520将N个表存储在该至少一个存储器中。

这样,本发明实施例中,控制器可以通过转发业务的描述信息确定转发业务需要查找的表的同时访问信息。进一步控制器可以将表的同时访问信息发送至转发设备。转发设备根据表的同时访问信息确定表将被存储在转发设备的至少一个存储器中。这样确定的表将被存储在转发设备中的位置有助于使得转发业务的实际性能尽可能达到预定的性能。

图14是本发明一个实施例的转发设备的框图。所述转发设备可以用于执行图1所示的方法。图14所示的转发设备1400包括接收单元1401、生成单元1402、确定单元1403和存储单元1404。

接收单元1401,用于接收控制器发送的M个描述信息,所述M个描述信息与所述M个转发业务一一对应,所述M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行所述对应的转发业务需要查找的表的标识,执行所述M个转发业务需要查找N个表,所述M个转发业务的预定的性能组成的集合包含Q个元素,所述Q个元素分别是第1个元素至第Q个元素,所述Q个元素中的每个元素表示一个预定的性能,其中,所述Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1。

生成单元1402,用于根据接收单元1401接收到的所述M个描述信息,生成Q个同时访问信息,所述Q个同时访问信息中的第r个同时访问信息表示所述N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问。

确定单元1403,用于根据生成单元1402生成的所述Q个同时访问信息,确定所述N个表将被存储在所述转发设备的至少一个存储器中。

存储单元1404,用于将所述N个表存储在确定单元1403确定的所述至少一个存储器中。

本发明实施例通过转发业务的描述信息,其中描述信息包括转发业务的预定的性能,生成执行转发业务需要查找的表的同时访问信息,并根据表的同时访问信息,确定执行转发业务需要查找的表将被存储在转发设备中的至少一个存储器中。通过上述技术方案确定的表将被存储在转发设备中的位置有助于使得转发业务的实际性能尽可能达到预定的性能。

可选地,作为一个实施例,所述Q个同时访问信息为Q个N×N的矩阵,该Q个N×N的矩阵中的每个N×N的矩阵的元素为1或者0。如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为1,则表示所述N个表中的第i个表和所述N个表中的第j个表需要同时被所述M个转发业务中预定的性能为Cr×线速的至少一个转发业务访问,如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为0,则表示所述N个表中的第i个表和所述N个表中的第j个表不需要同时被所述M个转发业务中预定的性能为Cr×线速的任意一个转发业务访问,其中,i和j为正整数,且i和j均小于或者等于N。

可选地,作为一个实施例,确定单元1403,具体用于确定所述N个表中的每个表将被存储在所述转发设备的至少一个存储器中。其中,确定单元1403具体包括用于确定所述N个表中的第m个表将被存储在所述转发设备的至少一个存储器中的确定子单元,所述确定子单元具体包括第一确定子单元、第二确定子单元和第三确定子单元。

第一确定子单元,用于确定所述N个表中的每个表是否已经存储在所述至少一个存储器的第一存储器中,1×N的矩阵用于表示所述N个表中的每个表是否已经存储在所述转发设备的第一存储器中,具体地,所述1×N的矩阵的第1列元素至第N列元素分别用于表示所述N个表中的第1个表至所述N个表中的第N个表是否已经存储在所述第一存储器中,其中,所述1×N的矩阵的第i列元素用于表示所述N个表中的第i个表是否已经存储在所述第一存储器中,如果所述1×N的矩阵的第i列元素为1则表示所述第一存储器已经存储所述N个表中的第i个表,如果所述1×N的矩阵的第i列元素为0则表示所述第一存储器没有存储所述N个表中的第i个表。

第二确定子单元,用于将生成单元1402生成的所述Q个N×N的矩阵中每个N×N的矩阵的第m行的元素与所述第一确定子单元确定的所述1×N的矩阵的对应元素作与运算,确定结果为1的个数,其中,所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行的元素与所述第一确定子单元确定的所述1×N的矩阵的对应元素作与运算的结果中1的个数为Pr。

第三确定子单元,用于基于max((P1+1)×C1×A,……,(PQ+1)×CQ×A)≤B,确定所述N个表中的第m个表将被存储在所述第一存储器中。

其中,m为小于或者等于N的正整数,Pr为非负整数,Pr<N,A和B为正数,A表示实际性能为线速的转发业务需要占用的带宽,B表示所述第一存储器能够提供的最大带宽。

可选地,作为另一个实施例,还包括发送单元1405。生成单元1402,还用于当确定单元1403确定不能将所述N个表中的第a个表存储在所述至少一个存储器中时,生成第一消息,所述第一消息用于通告确定单元1403确定不能讲所述N个表中的第a个表存储在所述至少一个存储器中。发送单元1405,用于将生成单元1402生成的所述第一消息发送至所述控制器,其中,a为正整数,且a小于或者等于N。

可选地,作为另一个实施例,接收单元1401,还用于接收所述控制器发送的第二消息,所述第二消息用于指示所述转发设备尽力存储所述N个表中的第a个表。确定单元1403,用于根据接收单元1401接收的所述第二消息,工作于尽力而为模式并确定所述N个表中的第a个表将被存储在所述至少一个存储器的第二存储器中。生成单元1402,还用于生成第三消息,所述第三消息用于通告确定单元1403确定所述N个表中的第a个表将被存储在所述第二存储器中时,所述N个表中的第a个表所支持的转发业务的实际性能。发送单元1405,还用于将生成单元1402生成的所述第三消息发送至所述控制器。

转发设备1400能够实现图1和图5的实施例中由转发设备实现的各个过程,为避免重复,这里不再赘述。

图15是本发明一个实施例的控制器的框图。所述控制器可以用于执行图2所示的方法。图15所示的控制器1500包括生成单元1501和发送单元1502。

生成单元1501,用于生成M个描述信息,所述M个描述信息与M个转发业务一一对应,所述M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行所述对应的转发业务需要查找的表的标识,执行所述M个转发业务需要查找N个表,所述M个转发业务的预定的性能组成的集合包含Q个元素,所述Q个元素分别是第1个元素至第Q个元素,所述Q个元素中的每个元素表示一个预定的性能,其中,所述Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1。

发送单元1502,用于将生成单元1501生成的所述M个描述信息发送至转发设备。

本发明实施例通过转发业务的描述信息,其中描述信息包括转发业务的预定的性能,生成执行转发业务需要查找的表的同时访问信息,并根据表的同时访问信息,确定执行转发业务需要查找的表将被存储在转发设备中的至少一个存储器中。通过上述技术方案确定的表将被存储在转发设备中的位置有助于使得转发业务的实际性能尽可能达到预定的性能。

可选地,作为一个实施例,所述M个描述信息用于使得所述转发设备确定所述N个表将被存储在所述转发设备中的至少一个存储器中,所述控制器1500还包括接收单元1503。接收单元1503,用于接收所述转发设备发送的第一消息,所述第一消息用于通告所述转发设备确定不能将所述N个表中的第j个表存储在所述转发设备的至少一个存储器中,其中,j为正整数,且j小于或者等于N。

可选地,作为另一个实施例,生成单元1501,还用于生成第二消息,所述第二消息用于指示所述转发设备尽力存储所述N个表中的第j个表。发送单元1502,还用于将生成单元1501生成的所述第二消息发送至所述转发设备,以使所述转发设备工作于尽力而为模式并确定所述N个表中的第j个表将被存储在所述至少一个存储器的第二存储器中。接收单元1503,还用于接收所述转发设备发送的第三消息,所述第三消息用于通告所述转发设备确定所述N个表中的第j个表将被存储在所述第二存储器中时,所述N个表中的第j个表所支持的转发业务的实际性能。

控制器1500能够实现图2和图5的实施例中由控制器实现的各个过程,为避免重复,这里不再赘述。

图16是本发明另一个实施例的转发设备的框图。所述转发设备可以用于执行图3所示的方法。图16所示的转发设备1600包括接收单元1601、确定单元1602和存储单元1603。

接收单元1601,用于接收控制器发送的Q个同时访问信息,其中,所述Q个同时访问信息中的第r个同时访问信息表示所述N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问,执行M个转发业务需要查找所述N个表。

确定单元1602,用于根据接收单元1601接收的所述Q个同时访问信息,确定所述N个表将被存储在所述转发设备的至少一个存储器中。

存储单元1603,用于将所述N个表存储在确定单元1602确定的所述至少一个存储器中。

本发明实施例中,转发设备根据表的同时访问信息确定表将被存储在转发设备的至少一个存储器中。其中,表的同时访问信息是控制器通过转发业务的描述信息所确定,并进一步将表的同时访问信息发送至转发设备的。这样确定的表将被存储在转发设备中的位置有助于使得转发业务的实际性能尽可能达到预定的性能。

可选地,作为一个实施例,所述Q个同时访问信息为Q个N×N的矩阵,所述Q个N×N的矩阵中的每个N×N的矩阵的元素为1或者0,如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为1,则表示所述N个表中的第i个表和所述N个表中的第j个表需要同时被所述M个转发业务中预定的性能为Cr×线速的至少一个转发业务访问,如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为0,则表示所述N个表中的第i个表和所述N个表中的第j个表不需要同时被所述M个转发业务中预定的性能为Cr×线速的任意一个转发业务访问,其中,i和j为正整数,且i和j均小于或者等于N。

可选地,作为一个实施例,确定单元1602具体用于确定所述N个表中的每个表将被存储在所述转发设备的至少一个存储器中。其中,确定单元1602包括用于确定所述N个表中的第m个表将被存储在所述转发设备的至少一个存储器中的确定子单元,所述确定子单元具体包括第一确定子单元、第二确定子单元和第三确定子单元。

第一确定子单元,用于确定所述N个表中的每个表是否已经存储在所述至少一个存储器的第一存储器中,1×N的矩阵用于表示所述N个表中的每个表是否已经存储在所述转发设备的第一存储器中,具体地,所述1×N的矩阵中的第1列元素至第N列元素分别用于表示所述N个表中的第1个表至所述N个表中的第N个表是否已经存储在所述第一存储器中,其中,所述1×N的矩阵的第i列元素用于表示所述N个表中的第i个表是否已经存储在所述第一存储器中,如果所述1×N的矩阵的第i列元素为1则表示所述第一存储器已经存储所述N个表中的第i个表,如果所述1×N的矩阵的第i列元素为0则表示所述第一存储器没有存储所述N个表中的第i个表。

第二确定子单元,用于将所述Q个N×N的矩阵中的每个N×N的矩阵的第m行的元素与所述第一确定子单元确定的所述1×N的矩阵的对应元素作与运算,确定结果为1的个数,其中,所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行的元素与第一确定子单元确定的所述1×N的矩阵的对应元素作与运算的结果中1的个数为Pr。

第三确定子单元,用于基于max((P1+1)×C1×A,……,(PQ+1)×CQ×A)≤B,确定所述N个表中的第m个表将被存储在所述第一存储器中。

其中,m为小于或者等于N的正整数,Pr为非负整数,Pr<N,A和B为正数,A表示实际性能为线速的转发业务需要占用的带宽,B表示所述第一存储器能够提供的最大带宽。

可选地,作为另一个实施例,还包括生成单元1604和发送单元1605。

生成单元1604,还用于当确定单元1602确定不能将所述N个表中的第a个表存储在所述至少一个存储器中时,生成第一消息,所述第一消息用于通告所述转发设备确定不能将所述N个表中的第a个表存储在所述至少一个存储器中。

发送单元1605,用于将生成单元1604生成的所述第一消息发送至所述控制器,其中,a为正整数,且a小于或者等于N。

可选地,作为另一个实施例,接收单元1601,还用于接收所述控制器发送的第二消息,所述第二消息用于指示所述转发设备尽力存储所述N个表中的第a个表。确定单元1602,还用于根据接收单元1601接收的所述第二消息,工作于尽力而为模式并确定所述N个表中的第a个表将被存储在所述至少一个存储器的第二存储器中。生成单元1604,还用于生成第三消息,所述第三消息用于通告所述转发设备确定所述N个表中的第a个表将被存储在所述第二存储器中时,所述N个表中的第a个表所支持的转发业务的实际性能。发送单元1605,还用于将所述生成单元1604生成的所述第三消息发送至所述控制器。

转发设备1600能够实现图3和图13的实施例中由转发设备实现的各个过程,为避免重复,这里不再赘述。

图17是本发明另一个实施例的控制器的框图。所述控制器可以用于执行图4所示的方法。图17所示的控制器1700包括生成单元1701和发送单元1702。

生成单元1701,用于生成M个描述信息,所述M个描述信息与M个转发业务一一对应,所述M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行所述对应的转发业务需要查找的表的标识,执行所述M个转发业务需要查找N个表,所述M个转发业务的预定的性能组成的集合包含Q个元素,所述Q个元素分别是第1个元素至第Q个元素,所述Q个元素中的每个元素表示一个预定的性能,其中,所述Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1。

生成单元1701,还用于根据所述M个描述信息,生成Q个同时访问信息,所述Q个同时访问信息中的第r个同时访问信息表示所述N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问。

发送单元1702,用于将所述生成单元生成的所述Q个同时访问信息发送至转发设备。

本发明实施例中,控制器通过转发业务的描述信息确定转发业务需要查找的表的同时访问信息。进一步将表的同时访问信息发送至转发设备。可使得转发设备根据表的同时访问信息确定表将被存储在转发设备的至少一个存储器中。这样确定的表将被存储在转发设备中的位置有助于使得转发业务的实际性能尽可能达到预定的性能。

可选地,作为一个实施例,所述Q个同时访问信息为Q个N×N的矩阵,所述Q个N×N的矩阵中的每个N×N的矩阵的元素为1或者0,如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为1,则表示所述N个表中的第i个表和所述N个表中的第j个表需要同时被所述M个转发业务中预定的性能为Cr×线速的至少一个转发业务访问,如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为0,则表示所述N个表中的第i个表和所述N个表中的第j个表不需要同时被所述M个转发业务中预定的性能为Cr×线速的任意一个转发业务访问,其中,i和j为正整数,且i和j均小于或者等于N。

可选地,作为一个实施例,所述M个描述信息用于使得所述转发设备确定所述N个表将被存储在所述转发设备中的至少一个存储器中,所述控制器1700还包括接收单元1703,用于接收所述转发设备发送的第一消息,所述第一消息用于通告所述转发设备确定不能将所述N个表中的第a个表存储在所述转发设备的至少一个存储器中,其中,a为正整数,且a小于或者等于N。

可选地,作为另一个实施例,生成单元1701,还用于生成第二消息,所述第二消息用于指示所述转发设备尽力存储所述N个表中的第a个表。

发送单元1702,还用于将生成单元1701生成的所述第二消息发送至所述转发设备,以使所述转发设备工作于尽力而为模式并确定所述N个表中的第a个表将被存储在所述至少一个存储器的第二存储器中。

接收单元1703,还用于接收所述转发设备发送的第三消息,所述第三消息用于通告所述转发设备确定所述N个表中的第a个表将被存储在所述第二存储器中时,所述N个表中的第a个表所支持的转发业务的实际性能。

控制器1700能够实现图4和图13的实施例中由控制器实现的各个过程,为避免重复,这里不再赘述。

图18是本发明另一个实施例的转发设备的框图。所述转发设备可以用于执行图1所示的方法。另外,图18所示的转发设备可以用于实现图14所示的转发设备。图18所示的转发设备1800包括处理器1801、接收电路1802、发送电路1803和至少一个存储器1804。

接收电路1802,用于接收控制器发送的M个描述信息,所述M个描述信息与M个转发业务一一对应,所述M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行所述对应的转发业务需要查找的表的标识,执行所述M个转发业务需要查找N个表,所述M个转发业务的预定的性能组成的集合包含Q个元素,所述Q个元素分别是第1个元素至第Q个元素,所述Q个元素中的每个元素表示一个预定的性能,其中,所述Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1。

处理器1801,用于根据接收电路1802接收到的所述M个描述信息,生成Q个同时访问信息,所述Q个同时访问信息中的第r个同时访问信息表示所述N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问。处理器1801,还用于根据所述Q个同时访问信息,确定所述N个表将被存储在所述转发设备1800的至少一个存储器1804中。并进一步将所述N个表存储在所述至少一个存储器1804中。

本发明实施例通过转发业务的描述信息,其中描述信息包括转发业务的预定的性能,生成执行转发业务需要查找的表的同时访问信息,并根据表的同时访问信息,确定执行转发业务需要查找的表将被存储在转发设备中的至少一个存储器中。通过上述技术方案确定的表将被存储在转发设备中的位置有助于使得转发业务的实际性能尽可能达到预定的性能。

转发设备1800中的各个组件通过总线系统1805耦合在一起,其中总线系统1805除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图18中将各种总线都标为总线系统1805。

可选地,作为一个实施例,所述Q个同时访问信息为Q个N×N的矩阵,该Q个N×N的矩阵中的每个N×N的矩阵的元素为1或者0。如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为1,则表示所述N个表中的第i个表和所述N个表中的第j个表需要同时被所述M个转发业务中预定的性能为Cr×线速的至少一个转发业务访问,如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为0,则表示所述N个表中的第i个表和所述N个表中的第j个表不需要同时被所述M个转发业务中预定的性能为Cr×线速的任意一个转发业务访问,其中,i和j为正整数,且i和j均小于或者等于N。

可选地,作为一个实施例,处理器1801具体用于确定所述N个表中的每个表将被存储在所述转发设备的至少一个存储器1804中。其中,确定所述N个表中的第m个表将被存储在所述转发设备的至少一个存储器1804中,具体用于确定所述N个表中的每个表是否已经存储在所述至少一个存储器1804的第一存储器中,1×N的矩阵用于表示所述N个表中的每个表是否已经存储在所述转发设备的第一存储器中,具体地,所述1×N的矩阵中的第1列元素至第N列元素分别用于表示所述N个表中的第1个表至所述N个表中的第N个表是否已经存储在所述第一存储器中,其中,所述1×N的矩阵的第i列元素用于表示所述N个表中的第i个表是否已经存储在所述第一存储器中,如果所述1×N的矩阵的第i列元素为1则表示所述第一存储器已经存储所述N个表中的第i个表,如果所述1×N的矩阵的第i列元素为0则表示所述第一存储器没有存储所述N个表中的第i个表。将所生成的所述Q个N×N的矩阵中每个N×N的矩阵的第m行的元素与所确定的所述1×N的矩阵的对应元素作与运算,确定结果为1的个数,其中,所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行的元素与所确定的所述1×N的矩阵的对应元素作与运算的结果中1的个数为Pr。基于max((P1+1)×C1×A,……,(PQ+1)×CQ×A)≤B,确定所述N个表中的第m个表将被存储在所述第一存储器中。其中,m为小于或者等于N的正整数,Pr为非负整数,Pr<N,A和B为正数,A表示实际性能为线速的转发业务需要占用的带宽,B表示所述第一存储器能够提供的最大带宽。

可选地,作为另一个实施例,处理器1801还用于当根据所述Q个同时访问信息,确定不能将所述N个表中的第a个表存储在所述至少一个存储器1804中时,生成第一消息,所述第一消息用于通告确定不能将所述N个表中的第a个表存储在所述至少一个存储器1804中。发送电路1803,用于将所述生成的所述第一消息发送至所述控制器,其中,a为正整数,且a小于或者等于N。

可选地,作为另一个实施例,接收电路1802,还用于接收所述控制器发送的第二消息,所述第二消息用于指示所述转发设备1800尽力存储所述N个表中的第a个表。处理器1801还用于根据所述接收电路1802接收的所述第二消息,工作于尽力而为模式并确定所述N个表中的第a个表将被存储在所述至少一个存储器1804的第二存储器中。并生成第三消息,所述第三消息通告指示所述转发设备1800确定所述N个表中的第a个表将被存储在所述第二存储器中时,所述N个表中的第a个表所支持的转发业务的实际性能。发送电路1803,还用于将所生成的所述第三消息发送至所述控制器。

上述本发明实施例揭示的方法可以应用于处理器1801中,或者由处理器1801实现。处理器1801可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1801中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1801可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器(Random Access Memory,RAM)、闪存、只读存储器(Read-Only Memory,ROM)、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于至少一个存储器1804,处理器1801读取至少一个存储器1804中的信息,结合其硬件完成上述方法的步骤。

转发设备1800能够实现图1和图5的实施例中由转发设备实现的各个过程,为避免重复,这里不再赘述。

图19是本发明另一个实施例的控制器的框图。所述控制器可以用于执行图2所示的方法。另外,图19所示的控制器可以用于实现图15所示的控制器。图19所示的控制器1900包括处理器1901、接收电路1902、发送电路1903和存储器1904。

处理器1901用于生成M个描述信息,所述M个描述信息与M个转发业务一一对应,所述M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行所述对应的转发业务需要查找的表的标识,执行所述M个转发业务需要查找N个表,所述M个转发业务的预定的性能组成的集合包含Q个元素,所述Q个元素分别是第1个元素至第Q个元素,所述Q个元素中的每个元素表示一个预定的性能,其中,所述Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1。

发送电路1903用于将处理器1901生成的所述M个描述信息发送至转发设备。

本发明实施例通过转发业务的描述信息,其中描述信息包括转发业务的预定的性能,生成执行转发业务需要查找的表的同时访问信息,并根据表的同时访问信息,确定执行转发业务需要查找的表将被存储在转发设备中的至少一个存储器中。通过上述技术方案确定的表将被存储在转发设备中的位置有助于使得转发业务的实际性能尽可能达到预定的性能。

控制器1900中的各个组件通过总线系统1905耦合在一起,其中总线系统1905除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图19中将各种总线都标为总线系统1905。

可选地,作为一个实施例,所述M个描述信息用于使得所述转发设备确定所述N个表将被存储在所述转发设备中的至少一个存储器中,接收电路1902用于接收所述转发设备发送的第一消息,所述第一消息用于通告所述转发设备确定不能将所述N个表中的第j个表存储在所述转发设备的至少一个存储器中,其中,j为正整数,且j小于或者等于N。

可选地,作为另一个实施例,处理器1901还用于生成第二消息,所述第二消息用于指示所述转发设备尽力存储所述N个表中的第j个表。发送电路1903还用于将所述第二消息发送至所述转发设备,以使所述转发设备工作于尽力而为模式并确定所述N个表中的第j个表将被存储在所述至少一个存储器的第二存储器中。接收电路1902还用于接收所述转发设备发送的第三消息,所述第三消息用于通告所述转发设备确定所述N个表中的第j个表将被存储在所述第二存储器中时,所述N个表中的第j个表所支持的转发业务的实际性能。

上述本发明实施例揭示的方法可以应用于处理器1901中,或者由处理器1901实现。处理器1901可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1901中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1901可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于RAM、闪存、ROM、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1904,处理器1901读取存储器1904中的信息,结合其硬件完成上述方法的步骤。

控制器1900能够实现图2和图5的实施例中由控制器实现的各个过程,为避免重复,这里不再赘述。

图20是本发明另一个实施例的转发设备的框图。所述转发设备可以用于执行图3所示的方法。另外,图20所示的转发设备可以用于实现图16所示的转发设备。图20所示的转发设备2000包括处理器2001、接收电路2002、发送电路2003和至少一个存储器2004。

接收电路2002用于接收控制器发送的Q个同时访问信息,其中,所述Q个同时访问信息中的第r个同时访问信息表示所述N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问,执行M个转发业务需要查找所述N个表。

处理器2001用于根据接收电路2002接收的所述Q个同时访问信息,确定所述N个表将被存储在所述转发设备的至少一个存储器2004中。并进一步将所述N个表存储所述至少一个存储器2004中。

本发明实施例中,转发设备根据表的同时访问信息确定表将被存储在转发设备的至少一个存储器中。其中,表的同时访问信息是控制器通过转发业务的描述信息所确定,并进一步将表的同时访问信息发送至转发设备的。这样确定的表将被存储在转发设备中的位置有助于使得转发业务的实际性能尽可能达到预定的性能。

转发设备2000中的各个组件通过总线系统2005耦合在一起,其中总线系统2005除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图20中将各种总线都标为总线系统2005。

可选地,作为一个实施例,所述Q个同时访问信息为Q个N×N的矩阵,所述Q个N×N的矩阵中的每个N×N的矩阵的元素为1或者0,如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为1,则表示所述N个表中的第i个表和所述N个表中的第j个表需要同时被所述M个转发业务中预定的性能为Cr×线速的至少一个转发业务访问,如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为0,则表示所述N个表中的第i个表和所述N个表中的第j个表不需要同时被所述M个转发业务中预定的性能为Cr×线速的任意一个转发业务访问,其中,i和j为正整数,且i和j均小于或者等于N。

可选地,作为一个实施例,处理器2001具体用于确定所述N个表中的每个表将被存储在所述转发设备的至少一个存储器2004中。其中,确定所述N个表中的第m个表将被存储在所述转发设备的至少一个存储器2004中,具体用于确定所述N个表中的每个表是否已经存储在所述至少一个存储器2004的第一存储器中,1×N的矩阵用于表示所述N个表中的每个表是否已经存储在所述转发设备的第一存储器中,具体地,所述1×N的矩阵中的第1列元素至第N列元素分别用于表示所述N个表中的第1个表至所述N个表中的第N个表是否已经存储在所述第一存储器中,其中,所述1×N的矩阵的第i列元素用于表示所述N个表中的第i个表是否已经存储在所述第一存储器中,如果所述1×N的矩阵的第i列元素为1则表示所述第一存储器已经存储所述N个表中的第i个表,如果所述1×N的矩阵的第i列元素为0则表示所述第一存储器没有存储所述N个表中的第i个表。将所述Q个N×N的矩阵中的每个N×N的矩阵的第m行的元素与所确定的所述1×N的矩阵的对应元素作与运算,确定结果为1的个数,其中,所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行的元素与所述1×N的矩阵的对应元素作与运算的结果中1的个数为Pr。基于max((P1+1)×C1×A,……,(PQ+1)×CQ×A)≤B,确定所述N个表中的第m个表将被存储在所述第一存储器中。其中,m为小于或者等于N的正整数,Pr为非负整数,Pr<N,A和B为正数,A表示实际性能为线速的转发业务需要占用的带宽,B表示所述第一存储器能够提供的最大带宽。

可选地,作为另一个实施例,处理器2001还用于当根据所述Q个同时访问信息,确定不能将所述N个表中的第a个表存储在所述至少一个存储器2004中时,生成第一消息,所述第一消息用于通告所述转发设备确定不能将所述N个表中的第a个表存储在所述至少一个存储器2004中。发送电路2003还用于将生成的所述第一消息发送至所述控制器,其中,a为正整数,且a小于或者等于N。

可选地,作为另一个实施例,接收电路2002还用于接收所述控制器发送的第二消息,所述第二消息用于指示所述转发设备尽力存储所述N个表中的第a个表。处理器2001还用于根据所述接收电路2002接收的所述第二消息,工作于尽力而为模式并确定所述N个表中的第a个表将被存储在所述至少一个存储器2004的第二存储器中。并生成第三消息,所述第三消息用于通告所述转发设备确定所述N个表中的第a个表将被存储在所述第二存储器中时,所述N个表中的第a个表所支持的转发业务的实际性能。发送电路2003还用于将所述第三消息发送至所述控制器。

上述本发明实施例揭示的方法可以应用于处理器2001中,或者由处理器2001实现。处理器2001可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2001中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2001可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于RAM、闪存、ROM、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于至少一个存储器2004,处理器2001读取至少一个存储器2004中的信息,结合其硬件完成上述方法的步骤。

转发设备2000能够实现图3和图13的实施例中由转发设备实现的各个过程,为避免重复,这里不再赘述。

图21是本发明另一个实施例的控制器的框图。所述控制器可以用于执行图4所示的方法。另外,图21所示的控制器可以用于实现图17所示的控制器。图21所示的控制器2100包括处理器2101、接收电路2102、发送电路2103和存储器2104。

处理器2101用于生成M个描述信息,所述M个描述信息与M个转发业务一一对应,所述M个描述信息中的每个描述信息包括对应的转发业务的预定的性能以及执行所述对应的转发业务需要查找的表的标识,执行所述M个转发业务需要查找N个表,所述M个转发业务的预定的性能组成的集合包含Q个元素,所述Q个元素分别是第1个元素至第Q个元素,所述Q个元素中的每个元素表示一个预定的性能,其中,所述Q个元素中的第r个元素表示预定的性能为Cr×线速,M、N、Q和r为正整数,2≤N,Q≤M,r≤Q,0≤Cr≤1。还用于根据所述M个描述信息,生成Q个同时访问信息,所述Q个同时访问信息中的第r个同时访问信息表示所述N个表中的每两个表是否需要被预定的性能为Cr×线速的同一个转发业务访问。

发送电路2103用于将所述生成的所述Q个同时访问信息发送至转发设备。

本发明实施例中,控制器通过转发业务的描述信息确定转发业务需要查找的表的同时访问信息。进一步将表的同时访问信息发送至转发设备。可使得转发设备根据表的同时访问信息确定表将被存储在转发设备的至少一个存储器中。这样确定的表将被存储在转发设备中的位置有助于使得转发业务的实际性能尽可能达到预定的性能。

控制器2100中的各个组件通过总线系统2105耦合在一起,其中总线系统2105除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图21中将各种总线都标为总线系统2105。

可选地,作为一个实施例,所述Q个同时访问信息为Q个N×N的矩阵,所述Q个N×N的矩阵中的每个N×N的矩阵的元素为1或者0,如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为1,则表示所述N个表中的第i个表和所述N个表中的第j个表需要同时被所述M个转发业务中预定的性能为Cr×线速的至少一个转发业务访问,如果所述Q个N×N的矩阵中的第r个N×N的矩阵的第i行第j列的元素为0,则表示所述N个表中的第i个表和所述N个表中的第j个表不需要同时被所述M个转发业务中预定的性能为Cr×线速的任意一个转发业务访问,其中,i和j为正整数,且i和j均小于或者等于N。

可选地,作为一个实施例,所述M个描述信息用于使得所述转发设备确定所述N个表将被存储在所述转发设备中的至少一个存储器中,接收电路2102用于接收所述转发设备发送的第一消息,所述第一消息用于通告所述转发设备确定不能将所述N个表中的第a个表存储在所述转发设备的至少一个存储器中,其中,a为正整数,且a小于或者等于N。

可选地,作为另一个实施例,处理器2101还用于生成第二消息,所述第二消息用于指示所述转发设备尽力存储所述N个表中的第a个表。发送电路2103还用于将所生成的所述第二消息发送至所述转发设备,以使所述转发设备工作于尽力而为模式并确定所述N个表中的第a个表将被存储在所述至少一个存储器的第二存储器中。接收电路2102还用于接收所述转发设备发送的第三消息,所述第三消息用于通告所述转发设备确定所述N个表中的第a个表将被存储在所述第二存储器中时,所述N个表中的第a个表所支持的转发业务的实际性能。

上述本发明实施例揭示的方法可以应用于处理器2101中,或者由处理器2101实现。处理器2101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2101可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于RAM、闪存、ROM、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器2104,处理器2101读取存储器2104中的信息,结合其硬件完成上述方法的步骤。

控制器2100能够实现图4和图13的实施例中由控制器实现的各个过程,为避免重复,这里不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1