CN114938322B - 一种可编程网元编译系统和编译方法 - Google Patents
一种可编程网元编译系统和编译方法 Download PDFInfo
- Publication number
- CN114938322B CN114938322B CN202210869507.5A CN202210869507A CN114938322B CN 114938322 B CN114938322 B CN 114938322B CN 202210869507 A CN202210869507 A CN 202210869507A CN 114938322 B CN114938322 B CN 114938322B
- Authority
- CN
- China
- Prior art keywords
- hardware resources
- resources
- heterogeneous
- heterogeneous hardware
- modal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 36
- 238000004364 calculation method Methods 0.000 claims abstract description 9
- 230000004069 differentiation Effects 0.000 claims abstract description 9
- 238000004806 packaging method and process Methods 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 74
- 238000013507 mapping Methods 0.000 claims description 24
- 238000004458 analytical method Methods 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 3
- 238000000265 homogenisation Methods 0.000 claims description 3
- 230000006835 compression Effects 0.000 claims description 2
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000007246 mechanism Effects 0.000 abstract description 2
- 230000004927 fusion Effects 0.000 abstract 1
- 230000009471 action Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012857 repacking Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/20—Network management software packages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种可编程网元编译系统和编译方法,系统针对网络模态对底层硬件资源的多样化需求,实现计算/存储/转发/安全一体化融合机制,将包括异质硬件资源和异构硬件资源的网元设备对外抽象为与底层硬件无关的逻辑网元;对异质硬件资源和异构硬件资源高级抽象封装,支持底层软硬件资源的灵活调用,使用对异质硬件资源和异构硬件资源间的功能等效置换技术,实现网络模态在硬件资源之间可根据实际需求相互切换、协同处理,并根据模态特征分配异构硬件资源,调用多种编译器,自动生成和优化模态数据包处理流水线。本发明提出的系统和方法为网络模态开发人员屏蔽了底层硬件差异化细节,降低了网络模态的编程复杂度,有利于网络模态的快速部署。
Description
技术领域
本发明涉及计算机网络领域,具体涉及一种可编程网元编译系统和编译方法。
背景技术
SDN(Software Defined Network)技术将网元设备解耦为控制平面和数据平面,数据平面上硬件资源按芯片架构可划分为异构可编程资源包括ASIC交换芯片、FPGA芯片、x86多核芯片、ARM多核芯片等,按功能类型可划分为异质资源包括转发、计算、存储、安全等类型外设硬件。
在这种情况下,由于不同厂商提供给用户的编程模型与芯片架构紧耦合且不一致,导致开发人员在实现包含异构交换芯片的可编程网元的功能时需阅读所有芯片手册,开发网络模态的难度高,程序移植性较差。同时对异质外设硬件资源的封装和调用也需要开发人员在编程时考虑,使得开发和部署多种网络模态共生共存的周期较长。
发明内容
针对现有技术的不足,本发明提供一种可编程网元编译系统和编译方法,面向多种异质硬件资源和异构硬件资源,支持对外统一提供抽象接口,可编程调度器对异质硬件资源进行等效功能置换,对异构硬件资源的能力进行分析,实现对多样化网络模态分配合适的硬件资源;流水线生成器调用与底层硬件资源相关的编译器,编译网络模态文件,自动生成和优化数据包处理流水线。本发明为网络开发人员屏蔽了底层异质硬件资源和异构硬件资源差异化的细节,降低了网络模态的开发和调试难度,有利于多样化网络模态的快速部署。
一种可编程网元编译系统,包括:
功能映射表,布置在管理节点上,对管理节点之外的异质硬件资源和异构硬件资源进行识别,将异质硬件资源和异构硬件资源与功能间的映射关系持久化到格式化表格中;
高级抽象封装器,布置在管理节点,对多种异质硬件资源和异构硬件资源进行细粒度同质化处理,将差异化接口封装成为统一的抽象接口,并构建满足异质硬件资源和异构硬件资源弹性可扩展的共享通用抽象封装接口,将异质硬件资源和异构硬件资源的扩展接口从硬件层的结构中抽象出来,以支持新的编程器件的扩展和现有功能器件的演进;
可编程调度器,布置在管理节点,实现多样化网络模态在硬件资源之间根据实际需求相互切换、协同处理,并根据模态特征分配异构硬件资源,调用其他类型的异质资源,进行功能等效置换;
流水线生成器,布置在管理节点,调用异构硬件资源相关的编译器,自动生成和优化模态处理流水线。
进一步地,所述的功能映射表实现的资源与功能映射关系如下:
计算节点通过运行软件交换机功能映射为转发节点;
计算节点通过运行防火墙或入侵检测系统或加密软件功能等效为安全节点;
计算节点通过运行数据包压缩软件,降低数据包占用的缓冲资源,功能等效为存储节点;
转发节点通过带内计算功能等效为计算节点。
进一步地,所述的高级抽象封装器对外提供的统一抽象接口,将异质硬件资源和异构硬件资源的调用接口注册到所述高级抽象封装器,实现将数据包计算、存储、安全、转发处理功能从硬件层的功能中抽象出来;
进一步地,所述的可编程调度器包括硬件约束分析器、模态需求分析器和模态资源映射器;所述硬件约束分析器分析转发节点硬件资源的能力,并将分析结果持久化保存到本地文件中;所述模态需求分析器获取不同网络模态的特征,对模态文件中的关键字进行提取和解读,并将对模态文件的分析结果持久化保存到本地文件中;所述模态资源映射器读取模态文件和硬件资源能力的分析,使用整数线性规划算法匹配模态文件和转发节点。
进一步地,所述流水线生成器从内存中读取中端编译器生成的高级中间表示,处理后生成一个或多个与硬件相关的配置文件,将配置文件中与流水线运行无关的冗余信息进行裁剪,生成包括与运行相关的信息的配置文件。
一种可编程网元编译方法,该方法基于可编程网元编译系统来实现,该方法包括:
对异质硬件资源和异构硬件资源进行一体化表征和功能映射;
将多种异质硬件资源和异构硬件资源的差异化接口封装为统一的抽象接口,实现数据面设备对外抽象为与底层硬件无关的逻辑网元;
基于异质硬件资源和异构硬件资源之间的柔性化的可编程调度,实现网络设备中计算资源、转发资源、存储资源、安全资源之间的功能等效置换;基于逻辑网元中异质硬件资源和异构硬件资源的差异化能力,为多样化网络模态分配合适的硬件资源;
启动多种异构硬件资源相关的编译器分布式编译流程,自动生成和优化模态处理流水线。
进一步地,系统上电后对可编程网元上的异质硬件资源和异构硬件资源进行识别和检测,并初始化功能映射表。
本发明的有益效果如下:
本发明的可编程网元编译系统和方法支持用户对多样化网络模态业务进行编程,而无需考虑可编程网元上多种异质硬件资源和异构硬件资源的差异性,屏蔽了底层硬件细节,提高了开发效率,降低了多种网络模态的开发难度和部署周期;
本发明的可编程网元编译系统和方法支持可编程网元上计算节点资源功能等效转换为转发节点,如用户通过编程实现在计算节点上运行软件交换机对数据包转发,弥补了转发资源的不足,提高了资源利用率,节约了成本;
本发明的可编程网元编译系统和方法支持可编程网元上计算节点资源功能等效转换为安全节点,如用户通过编程在计算节点上调用防火墙、IDS等安全功能,弥补了安全资源的不足,提高了资源利用率,节约了成本;
本发明的可编程网元编译系统和方法支持可编程网元上计算节点资源功能等效转换为安全节点,如用户通过编程在计算节点上实现对数据包的压缩,降低了对存储资源的开销,提高了资源利用率,节约了成本;
本发明的可编程网元编译系统和方法支持可编程网元上转发节点资源功能等效转换为计算节点,如用户通过编程在转发节点上实现带内计算,提高了资源利用率,节约了成本;
本发明的可编程网元编译系统和方法支持可编程网元上转发节点资源功能等效转换为安全节点,如用户通过编程在转发节点上实现转发规则上配置近似安全功能的表项,提高了数据包的安全转发效率,降低了时延;
本发明的可编程网元编译系统和方法支持分析异构硬件资源的能力,结合网络模态的需求进行分配,实现多样化网络模态编程与硬件资源解耦,降低了网络开发难度,缩短了网络运营与部署周期;
本发明的系统不仅支持异构可编程资源,如ASIC交换芯片、FPGA芯片、x86多核芯片、ARM多核芯片等,而且还具备共享通用可扩展的接口,以支持新的编程器件的扩展和现有功能器件的演进。
附图说明
图1为本发明的可编程网元编译系统的架构图。
图2为融合异质硬件资源和异构硬件资源的可编程网元框图。
图3为功能映射表示意图。
图4为可编程调度器功能图。
图5为模态处理流水线。
图6为可编程网元编译方法的流程图。
具体实施方式
下面根据附图详细说明本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面首先对本发明的技术术语进行解释:
异质硬件资源,是按照功能类型划分,包括计算、存储、安全、转发等功能类型的资源。
异构硬件资源,是按照转发芯片架构的类型进行划分,包括FPGA、ASIC、CPU等。
图1是本发明的可编程网元编译系统的架构图,该系统运行在管理节点上,管理异构硬件资源和计算、存储、安全等节点的异质硬件资源。
融合异质硬件资源和异构硬件资源的可编程网元如图2所示,至少包含管理节点和转发节点,其他节点如计算、存储、安全节点根据业务要求可扩展。流量经端口进入设备后,除按照调度直接转发外,还可以通过FPGA预处理(加速)后上送CPU,或者通过网卡直接上送CPU处理。
管理节点由Intel高性能CPU和内存、硬盘组成在主板上,运行SONiC系统和编译系统。整个软件系统是以交换机的SONiC系统为基础,支持切换为服务器标准的CentOS;计算节点由x86或ARM芯片架构的板卡通过底部的网络线路与主板通信,运行Ubuntu1804LTS版本的操作系统及虚拟交换机(如BMv2)、防火墙、入侵检测系统等软件;存储节点由多个SSD固态硬盘通过SATA总线通过底板扫描到主板系统中或通过网口接入存储服务器与主板通信;安全节点通过PCIe总线接口接入加密卡,实现对ipv4模态的数据包进行IPsec加解密;转发节点上的高性能转发芯片采用商业的ASIC芯片如Intel/Barefoot公司的Tofino芯片或国产的盛科ASIC芯片对数据包转发处理等。可编程网元设备上电后,计算节点上agent程序通过网络连接向管理节点运行的master程序报告计算节点上软件交换机、安全软件、编解码软件等运行状态信息。
存储节点如果是采用存储服务器的方式与网元设备连接,也运行agent程序向管理节点报告存储节点的可用信息;如果是采用SSD固态硬盘,管理节点则运行专用的写盘程序测试SSD固态硬盘是否可用。
管理节点通过SAI接口访问转发ASIC芯片的可用状态。
本发明的可编程网元编译系统,具体包括如下模块:
(一)功能映射表
在系统初始化时,功能映射表用于对功能等效的异质资源进行一体化表征;对管理节点之外的异质硬件资源和异构硬件资源进行识别,将硬件资源与功能间的映射关系持久化到本地文件中。异质硬件资源和异构硬件资源功能映射如图3所示,功能映射表在系统启动后,根据上述节点的可用状态对本地异质异构资源进行一体化表征,即生成本地资源映射描述文件res.xml格式如下:
<Resource>
<cpu number="1001">
<ipaddr>192.168.100.102</ipaddr>
<software> bmv2</ software >
<function> forwarding</ function >
</cpu >
<cpu number="1002">
<ipaddr>192.168.101.102</ipaddr>
<software> firewall</ software >
<function> filter</ function >
</cpu >
<cpu number="1003">
<ipaddr>192.168.102.102</ipaddr>
<software> encoder</ software >
<function> encode</ function >
</cpu>
<switch number="2001">
<ipaddr>192.168.102.102</ipaddr>
<software> IPsec </ software >
<function> encrypt</ function >
</ switch >
</ Resource >
(二)高级抽象封装器
高级抽象封装器将多种异质异构资源的差异化接口封装成为统一的抽象接口,对外屏蔽可编程网元上硬件差异化细节,呈现为与目标架构无关的逻辑网元,主要包括如下接口:
(1)编译接口为编译层与系统层的接口,支持编译结果的配置与下发,实现异构资源的可定义重构;
(2)北向接口为共性网络平台与控制器之间的配置管理接口,用于接收控制平面的控制器生成的各种流表信息,引导和决定共性网络平台的数据处理行为,并采用协议无关的协议交互机制,支持用户自定义结构和流表信息的传递;
(3)系统管理是形成共性网络平台能力的功能集,采用内生安全构造核心节点功能,以动态、随机改变核心功能的静态性、确定性,进而提供内生安全的防护能力。系统管理由运维管理和异构多维资源管理两部分功能组成,通过容器化构建、模块间联动解耦的方式,实现了对硬件层异构多维资源的管理,以及控制器配置信息的维护;
(4)南向接口为硬件层和系统层的接口,是对交换芯片、FPGA、多核等异构芯片接口的统一抽象,对上提供一系列标准化的应用程序编程接口(API),使系统层功能不再关心硬件层中异构芯片的硬件细节,并采用统一的方式接口进行管理和配置。
高级抽象封装器实现如下功能:
高级抽象封装器将硬件资源的扩展接口从硬件层的结构中抽象出来,以支持新的编程器件的扩展和现有功能器件的演进,实现对前端编译器输入屏蔽底层硬件差异化细节的功能;
高级抽象封装器将数据包处理逻辑从硬件层的结构中抽象出来,构建能定义多样化网络模态数据包首部类型的抽象包头封装结构、能定义解析器及解析器状态机的结点模型、包含多个数据包处理算法和用户自定义功能函数的多级流水线结构模型;
高级抽象封装器将编译处理从异构的后端编译层抽象出来,构建细粒度抽象的编译接口,实现分布式软硬件协同编译功能;
高级抽象封装器构建计算资源特征自定义可提取的抽象模型、存储资源特征自定义可提取的抽象模型、安全资源特征自定义可提取的抽象模型、转发资源特征自定义可提取的抽象模型,将数据包计算、存储、安全、转发处理功能从硬件层的功能中抽象出来。
(三)可编程调度器
可编程调度器,用于实现网络设备中计算资源、转发资源、存储资源、安全资源之间的功能等效置换;当某种类型的资源不足时,根据功能映射表统计的软硬件资源和软硬件能够实现的功能,调用其他类型的异质硬件资源,进行功能等效置换。
可编程调度器读取本地资源映射描述文件res.xml,根据一定的转发规则实现网络设备中计算资源、转发资源、存储资源、安全资源之间的功能等效置换;
规则1:当输入的网络模态种类较多时,将运行软件交换机的计算节点功能等效为转发节点,承担一些网络模态包的转发处理;
规则2:网络模态文件中包含加密业务时,将运行安全软件的计算节点功能等效为安全节点,承担一些网络模态包的加解密处理;
规则3:网络模态文件中包含存储业务时,将运行编解码软件的计算节点功能等效为存储节点,承担一些网络模态包的编解码处理;
规则4:网络模态文件中包含计算业务时,将具有带内计算硬件能力的转发节点功能等效为计算节点,承担一些网络模态包的计算处理;
规则5:网络模态文件中包含安全业务时如数据包过滤,将具有硬件能力的转发节点(如我国自主研制的内生安全防护互换集成电路 “玄武芯”ESW5610)功能等效为安全节点,承担一些网络模态包的安全处理。
基于逻辑网元中异质异构资源的差异化能力,为多样化网络模态文件的抽象资源需求分配多种异质异构资源。如图4所示,powerlink模态和mf模态的文件分配给Tofino芯片,ipv6模态的文件分配给FPGA芯片,geo模态和ndn模态的文件分配给CPU上的软件交换机。如果资源分配器给一个交换芯片分配了多个网络模态文件,还需合成一个提交给中后端编译器,如geo模态和ndn模态的文件合并为geo_ndn.json,提交给运行在CPU上的BMv2继续编译和运行,处理转发过来的geo和ndn协议的数据包。
可编程调度器包括硬件约束分析器、模态需求分析器和模态资源映射器。
硬件约束分析器分析转发节点硬件资源的能力,包括包头解析器(parser)和流水线管道(pipeline)。包头解析器的硬件能力是指解析网络模态协议数据包首部的最大层数和单次传输数据的字长即总线宽度,流水线管道的硬件能力是指流水线的stage个数和每个stage包含缓存类型(SRAM和TCAM等)、缓存容量(kB),硬件约束分析器将分析结果持久化保存到本地文件中hal.xml。
一个模态程序是由编程模型、包头解析器(parser)、包含多个串行或并行处理的匹配动作(match+action)逻辑表、控制流描述组成。模态需求分析器获取不同网络模态的特征,对模态文件中的关键字进行提取和解读,网络模态的资源需求包括如下:
(1)Match-action表项的大小和个数;
(2)包头协议层数、包头宽度;
(3)逻辑表缓存类型和大小及依赖关系;
依赖关系最长的匹配动作个数为网络模态长度。模态需求分析器将对模态文件的分析结果持久化到本地文件中,如ipv4_request.json。
模态资源映射器,读取模态文件和硬件资源能力的分析,使用整数线性规划算法进行匹配,具体如下:
根据缓存资源能力分配逻辑表,例如一个逻辑表tl包括数量为e tl 表项,所有能分配给该逻辑表的类型m的缓存资源包含的表项相加必须大于e tl ,见下公式:
模态资源映射器根据转发节点异构芯片的处理性能从高到底枚举所有的模态,若某个模态没有分配到合适的转发节点,无法生成数据包处理流水线,则报错并提示报错原因;否则,优选性能高的芯片分配模态文件,通过传输模块将模态文件传输到指定位置。
(四)流水线生成器
流水线生成器调用与异构硬件资源相关的编译器。针对融合存储、转发、计算等异质硬件资源于数据面设备一体化的异构特点,编译器提取数据平面的关键要素,并抽象出一套操作指令集(包括控制原语、存储原语、计算原语、转发原语),灵活地描述数据平面,实现数据平面与控制平面的解耦和接口的标准化。
前端编译器首先将源文件按照语法分割为独立的标记和单词,替换并删除制表符、空格等编码无效字符,并根据注释中的相关辅助类语法将语法标记或词组分类。前端编译器从语法角度判断不同分组间代码结构的正确性,针对整个源文件的含义进行分析,排查逻辑漏洞,展开嵌套循环,生成中间表达形式。中间表示包括详细的报文处理的描述和调试信息,及与硬件相关的描述信息等;
多种异构硬件资源相关的后端编译器从内存中读取中间表示,处理后生成一个或多个与硬件相关的配置文件,将配置文件中与流水线运行无关的冗余信息进行裁剪,生成包括与运行相关的信息的配置文件。配置文件为对交换芯片对数据包处理流水线的描述,这些描述中包括大量与流水线运行无关的冗余信息。
将配置文件描述的流水线信息写入多种异构硬件资源,高效协同利用多种异构硬件资源进行串行/并行处理,自动生成和优化模态处理流水线,如图5所示:
(1)输入流量包含多样化网络模态数据包,依次进入解析器(Parser),Parser依次识别Ethernet header、IPv4 header。如果缺少这些headers中的任何一个,则Parser将因错误而终止。Parser将这些headers中的信息提取到一个Parsed_packet结构体;
然后进入入口流水线(Ingress)进行匹配动作(Match-Action)处理,从数据包字段或处理后的元数据参数metadata构建lookup keys;使用key执行表查找, 选择一个action (包含相关数据) 执行;
(2)数据包传递给调度器处理,首先进行根据模态类型分类进入不同缓存区,然后传递给交换调度逻辑,根据调度算法判断发送给出口流水线,最后通过交换结构传递给出口流水线(Egress);
数据包传递给出口流水线(Egress),如果存在计算、存储、安全等操作,则进入相应的异质硬件资源进行加速处理,然后传递给Deparser重新组包;
数据包进入逆解析器,组合数据包并发送到输出端口;如果流水线定义了丢包操作,则将数据包发送到丢弃端口会导致数据包消失;如果定义了转发操作,则将数据包发送到输出以太网端口,并在相应的物理接口上发出;如果输出接口已经忙于发送另一个数据包,则可以将数据包放入队列中。当数据包发出时,物理接口计算一个正确的以太网校验和尾部并将其附加到数据包中;如果定义了通过输出CPU端口传输到控制平面的数据包是原始输入包,而不是从Deparser收到的数据包—后一个数据包被丢弃;如果定义了将数据包通过输出回环端口发送到输入回环端口,当无法一次流程无法完成数据包处理时,可以使用回环处理;
数据包到达出口流水线发出。
多样化网络模态数据包进入网元端口后会根据流水线的描述,依次通过转发节点、存储节点、计算节点、安全节点进行加速处理。
如图6所示,本发明的可编程网元编译方法包括:
(1)系统上电后,对可编程网元上的异质硬件资源和异构硬件资源进行识别和检测,细粒度同质化描述异质硬件资源和异构硬件资源,即对异质硬件资源和异构硬件资源进行一体化表征和功能映射;
(2)初始化功能映射表;
(3)将多种异质硬件资源和异构硬件资源的差异化接口封装为统一的抽象接口,实现数据面设备对外抽象为与底层硬件无关的逻辑网元;
(4)从输入的文件上下文感知计算/存储/安全/转发相关的硬件调用信息,基于异质硬件资源和异构硬件资源之间的柔性化的可编程调度,实现网络设备中计算资源、转发资源、存储资源、安全资源之间的功能等效置换;基于逻辑网元中异质硬件资源和异构硬件资源的差异化能力,为多样化网络模态分配合适的硬件资源;
(5)调用与底层硬件资源相关的编译器,开启分布式编译流程,自动生成和优化模态处理流水线。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。
Claims (7)
1.一种可编程网元编译系统,其特征在于,包括:
功能映射表,布置在管理节点上,对管理节点之外的异质硬件资源和异构硬件资源进行识别,将异质硬件资源和异构硬件资源与功能间的映射关系持久化到格式化表格中;所述异质硬件资源是按照功能类型划分,包括计算、存储、安全、转发功能类型的资源;所述异构硬件资源是按照转发芯片架构的类型进行划分,包括FPGA、ASIC、CPU;
高级抽象封装器,布置在管理节点,对多种异质硬件资源和异构硬件资源进行细粒度同质化处理,将差异化接口封装成为统一的抽象接口,并构建满足异质硬件资源和异构硬件资源弹性可扩展的共享通用抽象封装接口,将异质硬件资源和异构硬件资源的扩展接口从硬件层的结构中抽象出来,以支持新的编程器件的扩展和现有功能器件的演进;
可编程调度器,用于实现网络设备中计算资源、转发资源、存储资源、安全资源之间的功能等效置换;当某种类型的资源不足时,根据功能映射表统计的软硬件资源和软硬件能够实现的功能,调用其他类型的异质硬件资源,进行功能等效置换;
流水线生成器,布置在管理节点,调用异构硬件资源相关的编译器,自动生成和优化处理网络模态数据包流水线。
2.根据权利要求1所述的可编程网元编译系统,其特征在于,所述的功能映射表实现的资源与功能映射关系如下:
计算节点通过运行软件交换机功能映射为转发节点;
计算节点通过运行防火墙或入侵检测系统或加密软件功能等效为安全节点;
计算节点通过运行数据包压缩软件,降低数据包占用的缓冲资源,功能等效为存储节点;
转发节点通过带内计算功能等效为计算节点。
3.根据权利要求1所述的可编程网元编译系统,其特征在于,所述的高级抽象封装器对外提供的统一抽象接口,将异质硬件资源和异构硬件资源的调用接口注册到所述高级抽象封装器,实现将数据包计算、存储、安全、转发处理功能从硬件层的功能中抽象出来。
4.根据权利要求1所述的可编程网元编译系统,其特征在于,所述的可编程调度器包括硬件约束分析器、模态需求分析器和模态资源映射器;所述硬件约束分析器分析转发节点硬件资源的能力,并将分析结果持久化保存到本地文件中;所述模态需求分析器获取不同网络模态的特征,对模态文件中的关键字进行提取和解读,并将对模态文件的分析结果持久化保存到本地文件中;所述模态资源映射器读取模态文件和硬件资源能力的分析,使用整数线性规划算法匹配模态文件和转发节点。
5.根据权利要求1所述的可编程网元编译系统,其特征在于,所述流水线生成器从内存中读取中端编译器生成的高级中间表示,处理后生成一个或多个与硬件相关的配置文件,将配置文件中与流水线运行无关的冗余信息进行裁剪,生成包括与运行相关的信息的配置文件。
6.一种可编程网元编译方法,其特征在于,该方法基于权利要求1~5中任意一项的可编程网元编译系统来实现,该方法包括:
对异质硬件资源和异构硬件资源进行一体化表征和功能映射;
将多种异质硬件资源和异构硬件资源的差异化接口封装为统一的抽象接口,实现数据面设备对外抽象为与底层硬件无关的逻辑网元;
基于异质硬件资源和异构硬件资源之间的柔性化的可编程调度,实现网络设备中计算资源、转发资源、存储资源、安全资源之间的功能等效置换;基于逻辑网元中异质硬件资源和异构硬件资源的差异化能力,为多样化网络模态分配合适的硬件资源;
启动多种异构硬件资源相关的编译器分布式编译流程,自动生成和优化模态处理流水线。
7.根据权利要求6所述的可编程网元编译方法,其特征在于,系统上电后对可编程网元上的异质硬件资源和异构硬件资源进行识别和检测,并初始化功能映射表。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210869507.5A CN114938322B (zh) | 2022-07-22 | 2022-07-22 | 一种可编程网元编译系统和编译方法 |
PCT/CN2023/101230 WO2024016927A1 (zh) | 2022-07-22 | 2023-06-20 | 一种可编程网元编译系统和编译方法 |
US18/495,707 US12032933B2 (en) | 2022-07-22 | 2023-10-26 | Compiling system and compiling method for programmable network element |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210869507.5A CN114938322B (zh) | 2022-07-22 | 2022-07-22 | 一种可编程网元编译系统和编译方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114938322A CN114938322A (zh) | 2022-08-23 |
CN114938322B true CN114938322B (zh) | 2022-11-08 |
Family
ID=82867922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210869507.5A Active CN114938322B (zh) | 2022-07-22 | 2022-07-22 | 一种可编程网元编译系统和编译方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12032933B2 (zh) |
CN (1) | CN114938322B (zh) |
WO (1) | WO2024016927A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114938322B (zh) | 2022-07-22 | 2022-11-08 | 之江实验室 | 一种可编程网元编译系统和编译方法 |
CN115426265B (zh) * | 2022-11-02 | 2023-04-18 | 之江实验室 | 一种多模态网络下交换资源分配优化方法及装置、介质 |
US12056533B2 (en) | 2022-11-02 | 2024-08-06 | Zhejiang Lab | Method, apparatus and medium for optimizing allocation of switching resources in polymorphic network |
CN116208673B (zh) * | 2023-02-13 | 2024-05-07 | 中国人民解放军战略支援部队信息工程大学 | 多样化网络模态共存的转发装置及方法 |
CN116074208B (zh) * | 2023-03-24 | 2023-07-07 | 之江实验室 | 一种多模态网络的模态部署方法及模态部署系统 |
CN116208497B (zh) * | 2023-05-05 | 2023-07-21 | 广东省新一代通信与网络创新研究院 | 一种可编程网络系统、方法、交换机及装置 |
CN116610455B (zh) * | 2023-07-18 | 2023-12-05 | 之江实验室 | 一种可编程网元设备的资源约束描述系统及方法 |
CN117149666A (zh) * | 2023-10-31 | 2023-12-01 | 中国铁塔股份有限公司 | Ai芯片平台及ai芯片平台的测试方法、装置及系统 |
CN118118444B (zh) * | 2024-04-28 | 2024-07-12 | 之江实验室 | 一种基于可编程交换机的计算功能抽象方法及装置 |
CN118550519B (zh) * | 2024-07-29 | 2024-11-05 | 之江实验室 | 一种多模态网络后端编译方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181382A (zh) * | 2020-11-27 | 2021-01-05 | 北京和利时系统工程有限公司 | 一种基于软件定义的工业智能控制系统 |
CN113051053A (zh) * | 2021-03-24 | 2021-06-29 | 依瞳科技(深圳)有限公司 | 异构资源调度方法、装置、设备和计算机可读存储介质 |
WO2022087442A1 (en) * | 2020-10-22 | 2022-04-28 | Arizona Board Of Regents On Behalf Of Arizona State University | User-space emulation framework for heterogeneous soc design |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030033519A1 (en) * | 2001-08-13 | 2003-02-13 | Tippingpoint Technologies,Inc. | System and method for programming network nodes |
JP2016519487A (ja) * | 2013-03-20 | 2016-06-30 | ヴォルティング ホールディング ベー.フェー. | コンパイラとソフトウェア定義されたネットワークのための方法 |
US12026546B2 (en) * | 2020-04-16 | 2024-07-02 | Tom Herbert | Parallelism in serial pipeline processing |
CN114115834B (zh) * | 2022-01-25 | 2022-04-26 | 之江实验室 | 一种软硬件协同编译处理方法及系统 |
CN114938322B (zh) * | 2022-07-22 | 2022-11-08 | 之江实验室 | 一种可编程网元编译系统和编译方法 |
-
2022
- 2022-07-22 CN CN202210869507.5A patent/CN114938322B/zh active Active
-
2023
- 2023-06-20 WO PCT/CN2023/101230 patent/WO2024016927A1/zh unknown
- 2023-10-26 US US18/495,707 patent/US12032933B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022087442A1 (en) * | 2020-10-22 | 2022-04-28 | Arizona Board Of Regents On Behalf Of Arizona State University | User-space emulation framework for heterogeneous soc design |
CN112181382A (zh) * | 2020-11-27 | 2021-01-05 | 北京和利时系统工程有限公司 | 一种基于软件定义的工业智能控制系统 |
CN113051053A (zh) * | 2021-03-24 | 2021-06-29 | 依瞳科技(深圳)有限公司 | 异构资源调度方法、装置、设备和计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
面向对象的元计算系统的单一映象空间模型研究;桂小林等;《小型微型计算机系统》;20010521(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20240061663A1 (en) | 2024-02-22 |
US12032933B2 (en) | 2024-07-09 |
WO2024016927A1 (zh) | 2024-01-25 |
CN114938322A (zh) | 2022-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114938322B (zh) | 一种可编程网元编译系统和编译方法 | |
Gao et al. | Lyra: A cross-platform language and compiler for data plane programming on heterogeneous asics | |
US8495603B2 (en) | Generating an executable version of an application using a distributed compiler operating on a plurality of compute nodes | |
US9043770B2 (en) | Program module applicability analyzer for software development and testing for multi-processor environments | |
Kukkala et al. | UML 2.0 profile for embedded system design | |
US7849441B2 (en) | Method for specifying stateful, transaction-oriented systems for flexible mapping to structurally configurable, in-memory processing semiconductor device | |
US10977018B1 (en) | Development environment for heterogeneous devices | |
US20140006751A1 (en) | Source Code Level Multistage Scheduling Approach for Software Development and Testing for Multi-Processor Environments | |
US20140007044A1 (en) | Source Code Generator for Software Development and Testing for Multi-Processor Environments | |
US8001266B1 (en) | Configuring a multi-processor system | |
US7688737B2 (en) | Latency hiding message passing protocol | |
US20210365253A1 (en) | Heterogeneity-agnostic and topology-agnostic data plane programming | |
CN108604209A (zh) | 扁平化端口桥 | |
Cesário et al. | Colif: A design representation for application-specific multiprocessor SOCs | |
Basu | A language-based approach to protocol construction | |
Ritter et al. | Hardware accelerated application integration processing: Industry paper | |
Marenzoni et al. | Analysis of large GSPN models: a distributed solution tool | |
CN110187967B (zh) | 一种适用于依赖分析工具的内存预测方法及装置 | |
Giorgi et al. | Modeling multi-board communication in the axiom cyber-physical system | |
Zaki et al. | Partial expansion graphs: Exposing parallelism and dynamic scheduling opportunities for DSP applications | |
CN115174711A (zh) | 基于全栈可编程网络的数据处理方法、设备及介质 | |
CN115086392A (zh) | 一种基于异构芯片的数据平面和交换机 | |
US20240184552A1 (en) | Compilers and compiling methods field | |
Turjan et al. | An integer linear programming approach to classify the communication in process networks | |
US20240069511A1 (en) | Instruction generation and programming model for a data processing array and microcontroller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |