一种交换机控制方法及装置的制造方法_2

文档序号:9234820阅读:来源:国知局
方应用软件、二次开发应用 软件、W及基于化enflow协议的应用软件等。所述二次开发应用软件可W为基于开源软件 例如如agga或Xorplus开发的传统交换机软件。上层控制指令可W设及任何指令,例如对 交换巧片控制策略进行变更的控制指令,对交换机巧片功能实现的控制指令,对交换机巧 片中表项资源的定义和访问的控制指令,对交换机外设进行初始化、读、写响应的控制指令 等。
[0044] 操作S102,通过硬件无关层获取所述上层控制指令,并基于设定抽象规则封装形 成规范化控制指令。
[0045] 其中,所述设定抽象规则用于将由应用层产生的用于控制交换机数据操作和外设 操作的上层控制指令封装成规范化控制指令,W使得应用软件层可W忽略下层交换巧片和 /或外设的差异。
[0046] 优选的,通过所述应用软件层与所述硬件无关层之间设置的应用程序编程接口 (Application Programming Inte;rface,API) 512,获取所述上层控制指令。所述 API 为上 层应用软件层提供一个与硬件无关的统一控制接口。
[0047] 操作S103,通过硬件相关层的外设定义接口中的转换规则,将所述规范化控制指 令转换为适用于硬件执行的硬件控制指令。
[0048] 其中,所述外设定义接口将交换机的交换巧片定义为与交换巧片自身型号无关的 硬件设备,将外设定义为具有统一外设功能响应的硬件设备,通过外设定义接口中的转换 规则,将用于控制定义后统一硬件设备的规范化控制指令转换为适用于具体硬件执行的硬 件控制指令。
[0049] 操作S104,通过硬件相关层的至少一个驱动单元获取所述硬件控制指令,并进行 解析,W驱动对应的硬件。
[0化0] 其中,所述驱动单元包括板级支持包炬oard Support Package, BSP)、交换巧片软 件开发工具包(Software Development Kit, SDK)和外设驱动程序等,分别用于驱动对应的 外设硬件。
[0化1] 本实施例提供的交换机控制方法,通过硬件无关层的设定抽象规则将应用层对交 换巧片和外设的上层控制指令封装形成规范化控制指令,并通过硬件无关层的外设定义接 口中的转换规则将所述规范化控制指令转换为适用于具体硬件执行的硬件控制指令,最后 由硬件相关层的驱动单元根据所述硬件控制指令,驱动对应的具体硬件,解决了交换机软 件和硬件紧禪合,W及交换机适配工作量大的问题,提高了交换机的适用率。
[00巧实施例二
[0053] 图2给出了本实施例二提供的交换机控制方法的流程图,该方法可W由交换机控 制装置来执行,其中所述装置可由软件和/或硬件实现,可作为交换机的一部分被内置在 交换机内部。本实施例W实施例一为基础,对操作S102进行优化,未在本实施例中详尽描 述的细节可参见上述实施例一,如图2所示,本实施例提供的交换机控制方法包括如下操 作:
[0化4] 操作S201,通过应用软件层产生上层控制指令。
[0化5] 操作S202,通过硬件无关层获取所述上层控制指令,基于设定交换逻辑抽象规则 将控制交换巧片功能实现的所述上层控制指令封装形成交换逻辑规范化控制指令;
[0化6] 操作S203、通过硬件无关层获取所述上层控制指令,基于设定表项抽象规则将控 制交换巧片表项资源的所述上层控制指令封装形成表项规范化控制指令;
[0化7] 操作S204、通过硬件无关层获取所述上层控制指令,基于设定外设逻辑抽象规则 将控制外设操作的所述上层控制指令封装形成外设规范化控制指令。
[0化引上述操作202-204可W执行其中的任意一项或多项,且操作顺序不限。
[0化9] 具体是在硬件无关层520中设置有交换逻辑抽象库521、表项资源抽象库522 W及 外设逻辑抽象库523,参见图1B所示,可用于提供各种抽象规则。
[0060] 具体的,所述设定交换逻辑抽象规则可W将交换巧片的SDK中的数据操作抽象封 装为与交换巧片型号无关的统一操作,使得应用软件层可w忽略下层交换巧片的差异,解 决了交换机软件与硬件紧禪合的问题。
[0061] 示例性的,将交换机的交换巧片的功能抽象封装为一个函数库,函数库中的每一 个函数对应交换巧片的一种功能实现的封装,所述交换机可W采用不同型号的交换巧片, 所述交换巧片包括但不限于由化oadcom公司、Intel公司、Marvell公司、化vium公司、台 湾联发科技公司(Media Tek. Inc, MTK)提供的交换巧片。其中,实现不同交换巧片的同一 功能的封装函数如下:
[006引create_vlan (vlan_id),创建一个 ID 为 vlan_id 的虚拟局域网(Virtual Local Area Network, VLAN);
[0063]delete_vlan (vlan_id),删除 ID 为 vlan_id 的 VLAN ;
[0064]add_port_to_vlan(vlan_id, tagged port list, untagged port list),将tagged 端口列表和untagged端口列表中的端口加入对应的ID为vlan_id的VLAN中;
[00(55]delete_ports_f;rom_vlan (vlan_id, port list),将端 口列表 po;rt list 中的端 口,从ID为vlan_id的VLAN中删除;
[0066]create_lag(lag_id),创建一个 ID 为 lag_id 的链路汇聚组;
[0067]delete_lag(lag_id),删除一个 ID 为 lag_id 的链路汇聚组;
[0068]add_ports_to_lag(lag_id, port list),将端口列表 po;rt list 中的端口加入 ID 为lag_id的链路汇聚组中;
[0069]delete_ports_f;rom_lag (lag_id, port list),从 ID 为 lag_id 的链路汇聚组中删 除端口列表pcxrt list中的端口;
[0070]set_ports_nrtu (port list, nrtu),设定端 口列表 po;rt list 中端口 的最大传输单 元(maximum transmission unit,mtu)的值;
[0071]set_ports_speed (port list, speed),设定端 口列表 po;rt list 中端口的速率;
[0072] add_13_route_ip4 (port, subnet, mask, next_hop_mac, intf_id, next_hop_ ip, is_ecmp),增加一条互联网协议版本 4 (Internet Protocol version, ipv4)的路由。
[0073] 图3给出了本发明实施例二提供的基于交换逻辑抽象规则的创建链路汇聚组的 封装方法的示意图,如图3所示,本实施例封装定义了不同交换巧片SDK中创建链路汇聚组 功能的封装函数310,在封装函数310中定义了不同交换巧片SDK中创建链路汇聚组功能, 如化oadcom交换巧片的SDK中实现创建链路汇聚组功能的函数320和Marvell交换巧片 的SDK中实现创建链路汇聚组功能的函数330。其中,函数320包括化oadcom交换巧片SDK 中创建链路汇聚组功能的子函数340,函数330包括Marvell交换巧片的SDK中创建链路汇 聚组功能的子函数350。通过将函数320和函数310封装定义为与交换巧片型号无关的函 数310,可W使应用层对硬件无关层的链路汇聚组控制指令,封装形成与交换巧片型号无关 的链路汇聚组规范化控制指令。
[0074] 具体的,所述设定表项抽象规则可W将交换巧片中的表项资源统一抽象为通用的 表项,所述表项包括主机地址表,路由表,访问控制列表(Access Control List, ACL)。
[0075] 示例性的,将对交换巧片表项资源的访问抽象封装为一个函数库,函数库中的每 一个函数对应交换巧片表项资源访问的封装,所述交换机可W采用不同型号的交换巧片, 其中,实现不同交换巧片的同一表项资源访问的封装函数如下:
[0076]get_12_teble_size (size),读取介质访问控制表(Media Access Control, MAC) 的大小和已经使用的表项数;
[0077]get_13_teble_szie (size),读取主机路由表的大小和使用情况;
[007
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1