买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明公布】基于Sonic和P4芯片的流表下发方法_广州大学_202311310414.X 

申请/专利权人:广州大学

申请日:2023-10-11

公开(公告)日:2023-12-26

公开(公告)号:CN117294636A

主分类号:H04L45/00

分类号:H04L45/00;H04L45/74;H04L69/22;H04L41/0803

优先权:

专利状态码:在审-实质审查的生效

法律状态:2024.01.12#实质审查的生效;2023.12.26#公开

摘要:本发明公开了一种基于Sonic和P4芯片的流表下发方法,目的是解决现有流表下发方法对用户专业知识要求高且不支持新流表下发的问题。技术方案是:先构建由流表下发逻辑、解析模块、控制模块、P4芯片硬件的接口组成的流表下发系统,确定P4芯片中P4程序中的流表是否已满足用户需要,若不满足,则对P4芯片中P4程序进行扩充;编写配置文件;解析模块解析配置文件,将从配置文件解析出来的信息发送给控制模块;控制摸块根据解析出来的信息通过P4芯片硬件的接口和P4芯片交互,P4芯片硬件的接口将流表条目添加或删除或修改到流表中。本发明不需要通过厂商提供的API进行交互,使流表下发的操作变得简单且支持新流表的下发。

主权项:1.一种基于Sonic和P4芯片的流表下发方法,其特征在于包括以下步骤:第一步,构建流表下发系统,流表下发系统由流表下发逻辑、解析模块、控制模块、P4芯片硬件的接口组成;流表下发逻辑与解析模块相连,接收用户输入的配置文件,将配置文件通过Sonic系统中的zmqChannel发送给解析模块;解析模块与流表下发逻辑、控制模块相连,从流表下发逻辑接收配置文件,对配置文件进行解析,得到解析结果,包含表名,表条目,对流表操作的命令信息,将解析结果存储到可被解析模块和控制模块共同访问的共享变量share中;控制模块与解析模块相连,从共享变量share中读取对流表操作的命令信息,将表名,表条目作为参数传输给P4芯片硬件的接口;P4芯片硬件的接口控制P4芯片中的表条目增加、修改、或删除等操作;第二步,确定P4芯片中P4程序中的流表是否已满足用户需要即不需要对流表进行扩充,若满足需求,直接转第四步;若不满足用户需要,转第三步,对P4芯片中P4程序进行扩充;第三步,对P4芯片中P4程序进行扩充,方法是:3.1在可编程交换机中寻找P4程序,修改任意一个P4程序tofino.p4,在tofino.p4代码中的MyIngress处通过定义流表的方式定义一个新的空流表,新的空流表的内容包含流表名,流表条目的个数N,流表条目的S个域的内容,得到修改后的P4程序tofino1.p4;N和S均为正整数;3.2编译tofino1.p4,生成编译后的P4程序,令为tofino.bin;3.3在Sonic系统的usrsharesonicdevicex86_64-accton_wedge100bf_65x-r0mavericks目录下找到switch-tna-sai.conf文件,在switch-tna-sai.conf文件中找到“config”字段,并在该字段后加入tofino.bin的路径;3.4重启sonic系统,sonic系统自动将tofino.bin下载到P4芯片,使得修改后新增的流表也在P4芯片中等待流表条目的下发;转第四步;第四步,编写配置文件,配置文件由表名,表条目,表操作命令三个域组成,表名是需要下发的流表的名称,用于定位要下发的流表位置;表条目是流表中的一行,是要下发到P4程序中空的流表的内容;表操作命令包含对P4程序中的流表条目要执行的增加、修改、或删除操作,用于确定下发流表的目的是增加、修改、或者删除流表条目;第五步,根据P4芯片厂家提供的说明书获取P4芯片存在的流表情况,即了解厂家为P4芯片提供哪些流表的API以及对应的流表,将当前P4芯片存在的流表列到现有流表情况表table中,同时将tofino1.p4中新增的流表加入table中;第六步,流表下发逻辑从用户接收配置文件,将配置文件通过Sonic系统中的ZmqChannel下发给解析模块;第七步,解析模块监听ZmqChannel是否有配置文件到达,若有配置文件到达,则转第八步;若没有配置文件到达,转第七步继续监听;第八步,解析模块从ZmqChannel中读取配置文件,从配置文件解析出流表中的表名、表条目以及要对流表操作的命令信息;第九步,解析模块将解析出来的表名、表条目以及要对流表操作的命令信息存储到共享变量share中;共享变量是指解析模块和控制模块都可以访问的存储空间,在代码中以变量形式存在,share是一个三元组,三元组为表名,对流表操作的命令信息,流表的条目,其中表名是string类型变量,对流表操作的命令信息也是string类型变量,流表的条目是一个vector数组类型变量,vector中元素的个数等于N,N为正整数;第十步,令变量n=1;第十一步,控制模块读取share,获得share中的表名、对流表操作的命令信息以及vector中第n个表条目,若share中的表名在table中,转第十二步;若share中的表名不在table中,转第十五步;第十二步,控制模块将share中的表名、对流表操作的命令信息和vector中第n个表条目发送给P4芯片硬件的接口;第十三步,P4芯片硬件的接口将vector数组中的第n个表条目根据对流表操作的命令信息添加或删除或修改到share的表名对应的表中;第十四步,令n=n+1,若n≤N,转第十一步,继续从share的vector数组读取表的下一个条目;若nN,说明share中的vector中的的N个流表条目都已处理完毕,转第七步继续监听ZmqChannel,等待下一次流表的下发;第十五步,输出“配置文件下发流表不存在于P4芯片中”错误提示,并回到第七步继续监听ZmqChannel,等待下一次流表的下发。

全文数据:

权利要求:

百度查询: 广州大学 基于Sonic和P4芯片的流表下发方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。