一种软硬件协同的可编程转发系统、方法及装置与流程

    专利2022-07-07  140


    本发明涉及网络可编程转发技术领域,尤其涉及一种软硬件协同的可编程转发系统、方法及装置。



    背景技术:

    5g、云计算、物联网、机器学习、大数据等通信与计算技术发展带动网络技术革新,新型网络协议与功能层出不穷,在设备中按需定制数据包的控制逻辑,通过设备对数据包执行对应的控制逻辑后进行转发。

    但是现有设备中控制逻辑与底层转发硬件紧密耦合,难以通过统一规范的方式快速实现新的业务逻辑,灵活性差,导致数据包的转发效率低。



    技术实现要素:

    有鉴于此,本发明提供了一种软硬件协同的可编程转发系统、方法及装置,用以解决现有的现有设备中控制逻辑与底层转发硬件紧密耦合,难以通过统一规范的方式快速实现新的业务逻辑,报文处理逻辑不可更改,灵活性差,导致数据包的转发效率低的问题。具体方案如下:

    一种软硬件协同的可编程转发系统,包括:可编程转发配置模组、硬件转发功能模组和软件转发功能模组,其中,

    所述可编程转发配置模组,用于基于控制与配置指令调度计算资源,将对应的流处理逻辑分配个给所述软件转发功能模组和所述硬件转发功能模组;

    所述硬件转发功能模组与所述可编程转发配置模组相连接,包括:固定功能转发工作模式和软件定义转发工作模式,用于数据流中的对固定功能数据包进行处理并转发处理结果;

    所述软件转发功能模组与所述可编程转发配置模组相连接,由软件交换进程实例组成,用于基于所述软件交换进程实例对数据流中基于场景变化的数据包进行处理,并将处理结果反馈给所述硬件转发功能模组,基于所述硬件转发功能模组对所述处理结果进行转发。

    上述的系统,可选的,所述硬件转发功能模组构建在功能固定的asic或fpga交换芯片上。

    上述的系统,可选的,所述软件功能转发配置模组包括:流量监测单元和流量处理单元,其中,

    所述流量监测单元,用于检测各个端口数据流的流速是否超过对应的流速阈值,将超过对应的流速阈值的待处理流量作为大象流;

    所述流量处理单元,用于将属于大象流的数据流通过快速通道转发。

    上述的系统,可选的,所述软件功能转发配置模组包括:本地配置串口和远程配置端口,依据所述本地配置串口通过本地连接的方式接收控制与配置指令,或,依据所述远程配置端口通过远程连接的方式接收控制与配置指令。

    一种软硬件协同的可编程转发方法,应用于可编程转发系统,包括:

    接收控制与配置指令,依据所述控制与配置指令对硬件转发功能模组和软件转发功能模组进行配置;

    在接收到数据流的情况下,获取所述数据流的业务流表,其中,所述业务流表中包含所述数据流的网络协议;

    依据所述网络协议确定处理所述数据流的目标功能模组,其中,所述目标功能模组为硬件功能模组和/或软件功能模组;

    依据所述目标功能模组对所述数据流进行处理;

    依据所述硬件转发功能模组将处理结果转发。

    上述的方法,可选的,依据所述网络协议确定处理所述数据流的目标功能模组,包括:

    判断所述硬件转发功能模组中是否存在与所述网络协议对应的处理逻辑;

    若是,将所述硬件功能模组作为所述目标功能模块,或;

    若否,将所述数据流发送给所述软件转发功能模组进行处理,将所述软件转发功能模组作为所述目标功能模组。

    上述的方法,可选的,还包括:

    若所述数据流超出所述软件转发功能模组的匹配范围,上报packet_in消息。

    一种软硬件协同的可编程转发装置,应用于可编程转发系统,包括:

    配置模块,用于接收控制与配置指令,依据所述控制与配置指令对硬件转发功能模组和软件转发功能模组进行配置;

    获取模块,用于在接收到数据流的情况下,获取所述数据流的业务流表,其中,所述业务流表中包含所述数据流的网络协议;

    确定模块,用于依据所述网络协议确定处理所述数据流的目标功能模组,其中,所述目标功能模组为硬件功能模组和/或软件功能模组;

    处理模块,用于依据所述目标功能模组对所述数据流进行处理;

    转发模块,用于依据所述硬件转发功能模组将处理结果转发。

    上述的装置,可选的,所述确定模块包括:

    判断单元,用于判断所述硬件转发功能模组中是否存在与所述网络协议对应的处理逻辑;

    确定单元,用于若是,将所述硬件功能模组作为所述目标功能模块,或;

    若否,将所述数据流发送给所述软件转发功能模组进行处理,将所述软件转发功能模组作为所述目标功能模组。

    上述的装置,可选的,还包括:

    上报单元,用于若所述数据流超出所述软件转发功能模组的匹配范围,上报packet_in消息。

    与现有技术相比,本发明包括以下优点:

    本发明公开了一种软硬件协同的可编程转发系统、方法及装置,所述系统中可编程转发配置模组,用于基于控制与配置指令调度计算资源,将对应的流处理逻辑分配给软件转发功能模组和硬件转发功能模组;硬件转发功能模组包括:固定功能转发工作模式和软件定义转发工作模式,用于数据流中的对固定功能数据包进行处理并转发处理结果;软件转发功能模组由软件交换进程实例组成,用于基于软件交换进程实例对数据流中基于场景变化的数据包进行处理,并将处理结果反馈给硬件转发功能模组,基于硬件转发功能模组对处理结果进行转发。上述系统,基于可编程转发配置模组可以实现对硬件转发功能模组和软件转发功能模组的配置并且可以基于软件转发功能模组实现对新的网络协议的处理,提高了转发效率。

    附图说明

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

    图1为本申请实施例公开的一种软硬件协同的可编程转发系统结构框图;

    图2为本申请实施例公开的一种软硬件协同的可编程转发方法流程图;

    图3为本申请实施例公开的一种软硬件协同的可编程转发方法执行示意图;

    图4为本申请实施例公开的一种软硬件协同的可编程转发装置结构框图。

    具体实施方式

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

    对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

    本发明公开了一种软硬件协同的可编程转发系统、方法及装置,应用于对数据流进行转发的过程中,如今,5g、云计算、物联网、机器学习、大数据等通信与计算技术发展带动网络技术革新,新型网络协议与功能层出不穷,按需定制网络设备的数据包处理行为成为迫切的发展需求。面对灵活性、动态性、高性能的要求,传统网络设备表现出以下局限性:

    (1)逐设备单独控制且品牌众多,不同品牌交换机的管理接口封闭独立,网络管理员无法敏捷完成高级网络策略的全局部署,运营成本随着网络规模的扩大急剧上升;

    (2)控制逻辑与底层转发硬件紧密耦合,难以通过统一规范的方式快速实现新的业务逻辑;

    (3)设备本身不具备可编程性,报文处理逻辑不可更改,想要支持新的网络协议和功能只能进行产品的持续迭代。

    同时,网络数据报文的可编程处理过程中,既会有大量的已知数据报文的解析与处理,又会有一些未知、私有数据报文的解析与处理,即数据报文的处理也存在“二八”现象。因此,需要一种软硬协同处理的深度可编程转发系统及配套方法,将已知的、常规的、固定协议的数据报文放在专用硬件转发功能模块上处理,把一些不常规的、匹配逻辑较复杂的、私有协议的数据报文由软件转发功能模块来处理。使得网络功能在软硬件之间可根据实际需求相互切换、协同处理,实现网元设备深度可编程的同时保证高水平的数据包转发效率。

    因此,本发明提供了一种软硬件协同的可编程转发系统,所述转发系统的结构框图如图1所示,包括:可编程转发配置模组101、硬件转发功能模组102和软件转发功能模组103,其中,

    所述可编程转发配置模组101,用于基于控制与配置指令调度计算资源,将对应的流处理逻辑分配给所述软件转发功能模组和所述硬件转发功能模组;

    本发明实施例中,所述可编程转发配置模组负责统一调度所述硬件转发功能模组102和所述软件转发功能模组103处理的计算资源,通过本地连接或远程连接的方式接收网络管理员的控制与配置指令,并将相关配置按照完整的流处理逻辑合理地配置到所述硬件转发功能模组102和所述软件转发模组103中,监视各转发实体的运行状态,优选的,所述可编程转发配置模组需要预先依据经验或者具体情况对所述硬件转发功能模组和所述软件转发功能模组进行配置,配置对应的数据流处理逻辑。

    所述可编程转发配置模组内嵌本地配置端口和远程连接端口,分别对应本地连接和远程连接的网络管理方式,支持多种网络配置协议;

    所述可编程转发配置模组的执行流程如下:接收来自网络管理员的控制与配置指令,动态为所述软件转发功能模组103中的软件交换实例分配cpu核心及配套计算资源,在线重构软件交换实例的流水线逻辑,同时为所述硬件转发功能模组102配置计算资源和硬件转发流水线逻辑。

    所述可编程转发配置模组内部配置有协同调度算法,所述协同调度算法可以依据经验或者具体情况进行制定,本发明实施例中,对所述协同调度算法的具体执行过程不进行限定,所述协同调度算法基于所述硬件转发模组102和所述软件转发功能模组103各自的数据处理逻辑和相应的网络交换能力,智能拆分业务流表,将数据流中固定功能的数据包处理逻辑中的全部配置在硬件转发功能模组102中完成,将硬件无法满足的数据流中基于场景变化的数据包(自定义协议处理功能的数据包)设置在软件转发功能模组中完成。

    所述硬件转发功能模组102与所述可编程转发配置模组101相连接,包括:固定功能转发工作模式和软件定义转发工作模式,用于数据流中的对固定功能数据包进行处理并转发处理结果;

    本发明实施例中,所述硬件转发功能模组构建在功能固定的asic或fpga交换芯片之上,片内sram/tcam容量充足,对外呈现可用的网络端口,拥有固定功能转发工作模式和软件定义转发工作模式,支持在固定功能转发工作模式和软件定义转发工作模式之间切换。

    硬件转发功能模组102内置标准的二层交换控制协议栈,当硬件转发功能模组102切换至所述固定功能转发工作模式时,内置协议栈被激活使能,整个硬件设备可以作为普通交换设备在传统局域网中配置运转,所述固定转发工作模式拥有完备的网络协议栈,支持广泛使用的以太网交换协议,使得整个转发系统可以稳定工作在传统局域网中

    硬件转发功能模组102支持openflow、netconf等常见的南向接口协议,当硬件转发功能模组102处于所述软件定义转发工作模式时,所述可编程转发配置模组依据标准的南向协议下发表项以修改硬件流水线的报文处理逻辑,保留高性能数据平面特征的同时带来集中逻辑控制的灵活性。

    所述软件转发功能模组103与所述可编程转发配置模组101相连接,由软件交换进程实例组成,用于基于所述软件交换进程实例对数据流中基于场景变化的数据包进行处理,并将处理结果反馈给所述硬件转发功能模组,基于所述硬件转发功能模组对所述处理结果进行转发。

    本发明实施例中,所述软件转发功能模组103与所述可编程转发配置模组101相连接,所述软件转发功能模,103,由一系列直接运行在多核心cpu之上的软件交换实例组成,具备完全的可编程性和可重构性,通过设备内部物理链路与所述硬件转发功能模组102相连,各软件交换实例按需定制数据包处理逻辑,带来多种不同的新型网络转发功能和协议支持;

    进一步地,所述软件交换实例均基于dpdk运行在用户态,通过大页、轮询、cpu亲和性等技术,达到减少内存拷贝、减少缓存未命中、减少中断调用、减少进程和线程切换等优化目标,进而实现cpu软转发的性能优化,提供数十gbps的包处理速率;

    所述软件功能转发配置模组103包括:流量监测单元和流量处理单元,其中,所述流量监测单元,用于检测各个端口数据流的流速是否超过对应的流速阈值,将超过对应的流速阈值的待处理流量作为大象流;所述流量处理单元,用于将属于大象流的数据流通过快速通道转发。

    所述软件转发功能模组103支持快慢通道分离,其各端口均具备流速率监测功能,根据具体的生产场景选择合适的流分类阈值,将待处理流量区分为大象流和长尾流。由于长尾流的表项多、流量小而大象流的流量大、表项少,优先将大象流的表项下发至tcam资源中,使得大象流优先使用快通道进行转发,以适应云数据中心网络流量“两极分化”的特征,提高软件转发功能模组的数据包吞吐量。

    本发明公开了一种软硬件协同的可编程转发系统,所述系统中可编程转发配置模组,用于基于控制与配置指令调度计算资源,将对应的流处理逻辑分配给软件转发功能模组和硬件转发功能模组;硬件转发功能模组包括:固定功能转发和软件定义转发工作模式,用于数据流中的对固定功能数据包进行处理并转发处理结果;软件转发功能模组由软件交换进程实例组成,用于基于软件交换进程实例对数据流中基于场景变化的数据包进行处理,并将处理结果反馈给硬件转发功能模组,基于硬件转发功能模组对处理结果进行转发。上述系统,基于可编程转发配置模组可以实现对硬件转发功能模组和软件转发功能模组的配置并且可以基于软件转发功能模组实现对新的网络协议的处理,提高了转发效率。

    基于上述的软硬件协同的可编程转发系统,本发明还提供了一种软硬件协同的可编程转发方法,应用于可编程转发系统,所述转发方法的执行流程如图2所示,包括步骤:

    s201、可编程转发配置模组101实时接收来自网络管理员的控制与配置指令,动态为软件转发功能模组中101的软件交换实例分配cpu核心及配套计算资源,在线重构软件交换实例的流水线逻辑;

    s202、可编程转发配置模组101内部的协同调度算法充分了解软硬件交换模组各自的数据处理逻辑和相应的网络交换能力,智能拆分业务流表,将数据包处理逻辑中的固定功能全部配置在硬件转发功能模组103中完成,将硬件无法满足的自定义协议处理功能设置在软件转发功能模组103中完成;

    s203、硬件转发功能模组102第一时间接收网络数据流,初步解析数据包协议头部,借助业务流表并对匹配上的数据包执行相应的处理动作;

    本发明实施例中,所述业务流表中包括网络协议和该网络协议对应的数据包处理逻辑,所述处理逻辑可以基于经验或者具体情况进行设定,本发明实施例中,对所述处理逻辑的具体存在形式不进行限定,数据包协议头部中包含有待处理数据包中的当前网络协议,在所述业务流表中查找与所述当前网络协议匹配的处理逻辑。

    s204、当硬件转发功能模组102匹配到超出处理范围的数据包时,硬件转发功能模组102按照既定配置将待处理数据包移交软件转发功能模组处理,待处理数据包通过装置内部的物理链路传递至软件交换实例的端口;

    本发明实施例中,硬件转发功能模组102匹配到超出处理范围指所述业务流表中不包含与所述当前网络协议匹配的处理协议,硬件转发功能模组102按照既定配置将待处理数据包移交软件转发功能模组处理,数据包通过装置内部的物理链路传递至软件交换实例的端口,本发明实施例中,所述既定配置可以基于经验或者具体情况进行设定,本发明实施例中,对所述既定配置的具体存在形式不进行限定。

    s205、软件转发功能模组103接收来自硬件转发功能模组102的待处理数据包,按照自定义的流水线逻辑对待处理数据包进行匹配处理;

    本发明实施例中,选定的软件转发功能模组接收待处理数据,依据自定义的流水线逻辑对所述待处理数据包进行匹配处理,其中,由于所述软件转发功能模组中的软件转发功能至少为一个,所述自定义的流水线逻辑指将待处理数据包具体已交给哪一个软件转发功能,具体的移交形式可以以及标识或者预设关联关系进行移交,本发明实施例中,对具体的移交形式不进行限定。

    进一步的,软件转发功能模组103动态监控各流量的处理速率,根据确定的流判决阈值将待处理流区分为大象流和长尾流,通过统计表项的命中频率对其流表进行分级;更进一步地,软件转发功能模组103将流表的优先级属性映射于数据包匹配的快慢通道,对大象流的热点表项优先下发、保存至快通道,从而实现大象流转发的加速;

    s206、当软件转发功能模组103匹配到超出处理能力的待处理数据包时,软件转发功能模组103及时通过可编程转发配置模组上报packet_in消息到远程控制器,等待控制器返回解决方案;

    s207、软件转发功能模组103处理后的数据包通过逆向物理链路返回硬件转发功能模组102,同时软件转发功能模组将该待处理数据包的元数据(如转发端口)下发至硬件转发功能模组;

    s208、硬件转发功能模组102对数据包进行校验封装后依查询端口转发,数据包处理结束。

    基于所述转发方法的执行流程示意如图3所示,预先基于可编程转发配置模组101对硬件转发功能模组102和软件转发功能模组103进行配置,后续接收来自网络管理员的控制与配置指令时,以基于控制与配置指令对硬件转发功能模组102和软件转发功能模组103进行调整,云数据中心、城域网或者互联网中的数据流首先经由硬件转发功能模组102中报文解析器进行解析,确定数据流中的数据包的网络协议,判断是否为硬件支持的协议报文,若是,基于硬件转发流水线进行处理,将处理结果通过报文封装器封装后转发给云数据中心、城域网或者互联网,其中,所述硬件转发流水线主要针对大部分固定协议流量进行处理,若否,将数据流中的数据包配置中软件转发功能模组103中对应的软件转发功能进行处理,其中,所述软件转发功能模组103主要用于处理少量私有协议流量,处理完成后,将处理结果传递给硬件转发功能模组中的报文封装器,封装完成后转发给云数据中心、城域网或者互联网。

    本发明公开了一种软硬件协同的可编程转发方法,其中,可编程转发配置模组,用于基于控制与配置指令调度计算资源,将对应的流处理逻辑分配给软件转发功能模组和硬件转发功能模组;硬件转发功能模组包括:固定功能转发和软件定义转发工作模式,用于数据流中的对固定功能数据包进行处理并转发处理结果;软件转发功能模组由软件交换进程实例组成,用于基于软件交换进程实例对数据流中基于场景变化的数据包进行处理,并将处理结果反馈给硬件转发功能模组,基于硬件转发功能模组对处理结果进行转发。上述方法,基于可编程转发配置模组可以实现对硬件转发功能模组和软件转发功能模组的配置并且可以基于软件转发功能模组实现对新的网络协议的处理。

    本发明提供的一种软硬件协同处理的深可编程转发方法,面向网络设备开发者提供软硬件协同的深度可编程能力,将整个转发系统分为可编程转发配置模组101、硬件转发功能模组102和软件转发功能模组103三个模块。所述方法建立了以可编程转发配置模组为核心的协同处理架构,在软件定义网络的工作模式下,通过高性能处理效率的硬件转发功能模组和灵活可定义的软件转发功能模组协同工作达到深度可编程的目的,全面满足数据中心网络对网元设备的可迭代性和高速转发的需求。整个转发装置提供本地和远程控制端口,对接通用的网络控制器,为全网统一管理和下发高级网络策略提供便利,加速云网一体化建设步伐。

    基于上述的一种软硬件协同的可编程转发方法,本发明实施例中还提供了一种软硬件协同的可编程转发装置,应用于可编程转发系统,所述转发装置的结构框图如图4所示,包括:

    配置模块301、获取模块302、确定模块303、处理模块304和转发模块305。

    所述配置模块301,用于接收控制与配置指令,依据所述控制与配置指令对硬件转发功能模组和软件转发功能模组进行配置;

    所述获取模块302,用于在接收到数据流的情况下,获取所述数据流的业务流表,其中,所述业务流表中包含所述数据流的网络协议;

    所述确定模块303,用于依据所述网络协议确定处理所述数据流的目标功能模组,其中,所述目标功能模组为硬件功能模组和/或软件功能模组;

    所述处理模块304,用于依据所述目标功能模组对所述数据流进行处理;

    所述转发模块305,用于依据所述硬件转发功能模组将处理结果转发。

    本发明公开了一种软硬件协同的可编程转发装置,其中,可编程转发配置模组,用于基于控制与配置指令调度计算资源,将对应的流处理逻辑分配给软件转发功能模组和硬件转发功能模组;硬件转发功能模组包括:固定功能转发和软件定义转发工作模式,用于数据流中的对固定功能数据包进行处理并转发处理结果;软件转发功能模组由软件交换进程实例组成,用于基于软件交换进程实例对数据流中基于场景变化的数据包进行处理,并将处理结果反馈给硬件转发功能模组,基于硬件转发功能模组对处理结果进行转发。上述装置,基于可编程转发配置模组可以实现对硬件转发功能模组和软件转发功能模组的配置并且可以基于软件转发功能模组实现对新的网络协议的处理,提高了转发效率。

    本发明实施例中,所述确定模块303包括:

    判断单元306和确定单元307。

    其中,

    所述判断单元306,用于判断所述硬件转发功能模组中是否存在与所述网络协议对应的处理逻辑;

    所述确定单元307,用于若是,将所述硬件功能模组作为所述目标功能模块,或;

    若否,将所述数据流发送给所述软件转发功能模组进行处理,将所述软件转发功能模组作为所述目标功能模组。

    本发明实施例中,所述确定模块303还包括:上报单元308。

    其中,

    所述上报单元308,用于若所述数据流超出所述软件转发功能模组的匹配范围,上报packet_in消息。

    需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

    最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

    为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

    通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

    以上对本发明所提供的一种软硬件协同的可编程转发系统、方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。


    技术特征:

    1.一种软硬件协同的可编程转发系统,其特征在于,包括:可编程转发配置模组、硬件转发功能模组和软件转发功能模组,其中,

    所述可编程转发配置模组,用于基于控制与配置指令调度计算资源,将对应的流处理逻辑分配给所述软件转发功能模组和所述硬件转发功能模组;

    所述硬件转发功能模组与所述可编程转发配置模组相连接,包括:固定功能转发工作模式和软件定义转发工作模式,用于数据流中的对固定功能数据包进行处理并转发处理结果;

    所述软件转发功能模组与所述可编程转发配置模组相连接,由软件交换进程实例组成,用于基于所述软件交换进程实例对数据流中基于场景变化的数据包进行处理,并将处理结果反馈给所述硬件转发功能模组,基于所述硬件转发功能模组对所述处理结果进行转发。

    2.根据权利要求1所述的系统,其特征在于,所述硬件转发功能模组构建在功能固定的asic或fpga交换芯片上。

    3.根据权利要求1所述的系统,其特征在于,所述软件功能转发配置模组包括:流量监测单元和流量处理单元,其中,

    所述流量监测单元,用于检测各个端口数据流的流速是否超过对应的流速阈值,将超过对应的流速阈值的待处理流量作为大象流;

    所述流量处理单元,用于将属于大象流的数据流通过快速通道转发。

    4.根据权利要求1所述的系统,其特征在于,所述软件功能转发配置模组包括:本地配置串口和远程配置端口,依据所述本地配置串口通过本地连接的方式接收控制与配置指令,或,依据所述远程配置端口通过远程连接的方式接收控制与配置指令。

    5.一种软硬件协同的可编程转发方法,其特征在于,应用于可编程转发系统,包括:

    接收控制与配置指令,依据所述控制与配置指令对硬件转发功能模组和软件转发功能模组进行配置;

    在接收到数据流的情况下,获取所述数据流的业务流表,其中,所述业务流表中包含所述数据流的网络协议;

    依据所述网络协议确定处理所述数据流的目标功能模组,其中,所述目标功能模组为硬件功能模组和/或软件功能模组;

    依据所述目标功能模组对所述数据流进行处理;

    依据所述硬件转发功能模组将处理结果转发。

    6.根据权利要求5所述的方法,其特征在于,依据所述网络协议确定处理所述数据流的目标功能模组,包括:

    判断所述硬件转发功能模组中是否存在与所述网络协议对应的处理逻辑;

    若是,将所述硬件功能模组作为所述目标功能模块,或;

    若否,将所述数据流发送给所述软件转发功能模组进行处理,将所述软件转发功能模组作为所述目标功能模组。

    7.根据权利要求6所述的方法,其特征在于,还包括:

    若所述数据流超出所述软件转发功能模组的匹配范围,上报packet_in消息。

    8.一种软硬件协同的可编程转发装置,其特征在于,应用于可编程转发系统,包括:

    配置模块,用于接收控制与配置指令,依据所述控制与配置指令对硬件转发功能模组和软件转发功能模组进行配置;

    获取模块,用于在接收到数据流的情况下,获取所述数据流的业务流表,其中,所述业务流表中包含所述数据流的网络协议;

    确定模块,用于依据所述网络协议确定处理所述数据流的目标功能模组,其中,所述目标功能模组为硬件功能模组和/或软件功能模组;

    处理模块,用于依据所述目标功能模组对所述数据流进行处理;

    转发模块,用于依据所述硬件转发功能模组将处理结果转发。

    9.根据权利要求8所述的装置,其特征在于,所述确定模块包括:

    判断单元,用于判断所述硬件转发功能模组中是否存在与所述网络协议对应的处理逻辑;

    确定单元,用于若是,将所述硬件功能模组作为所述目标功能模块,或;

    若否,将所述数据流发送给所述软件转发功能模组进行处理,将所述软件转发功能模组作为所述目标功能模组。

    10.根据权利要求9所述的装置,其特征在于,还包括:

    上报单元,用于若所述数据流超出所述软件转发功能模组的匹配范围,上报packet_in消息。

    技术总结
    本发明公开了一种软硬件协同的可编程转发系统、方法及装置,所述系统中可编程转发配置模组基于控制与配置指令调度计算资源,将对应的流处理逻辑分配给软件转发功能模组和硬件转发功能模组;硬件转发功能模组包括:固定功能转发和软件定义转发工作模式,数据流中的对固定功能数据包进行处理并转发处理结果;软件转发功能模组由软件交换进程实例组成,基于软件交换进程实例对数据流中基于场景变化的数据包进行处理,并将处理结果反馈给硬件转发功能模组进行转发。上述系统,基于可编程转发配置模组可以实现对硬件转发功能模组和软件转发功能模组的配置并且可以基于软件转发功能模组实现对新的网络协议的处理,提高了转发效率。

    技术研发人员:胡宇翔;崔鹏帅;崔子熙;董永吉;邬江兴;伊鹏;丁瑞浩
    受保护的技术使用者:中国人民解放军战略支援部队信息工程大学
    技术研发日:2020.11.27
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-7815.html

    最新回复(0)