`
steeven
  • 浏览: 313817 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

p4-hlir和p4c-bm 编译工具

    博客分类:
  • p4
阅读更多
本文时间10/15/2016,如果时间久远请参考网站 以免被旧信息误导

p4-hlir项目解析p4,可以看成p4语言的python解析器,生成对应的python对象。
基于这个解析结果可以再加上模板输出json或者c, 或者RTL,或者DPDK,或者NP的微码。。

BMv2可以看成是一个设备或者模拟器,p4c-bm就是调用p4-hlir解析p4,生成BMv2配置所需的json文件和远程调用接口。所以一个p4模型被mininet模拟的picture是这样的:

p4 -> p4-hlir -> p4c-bm -> BMv2 -> mininet

p4c-bm安装会把p4-hlir一并安装:
git clone https://github.com/p4lang/p4c-bm.git
cd p4c-bm
sudo pip install -r requirements_v1_1.txt
sudo python setup.py install
至此/usr/local/bin下面就有了p4开头的编译、校验、图片生成命令。

p4-validate用来检查p4语法

p4-shell simple_router.p4
这是python界面,h对象包含了HLIR已经解析出的对象,用法参见https://github.com/p4lang/p4-hlir

p4-graph,这个项目不见了,原来跑到这里。这个命令会在当前目录下生成几个图片来描述Table/parser关系。

p4c-bmv2
--json 生成P4的Json格式
--pd 生成 PD C++ code
--p4-v1.1 if your input program is a P4 v1.1 program

进入p4-factory的targets/simple_router/p4src,编译一下p4模型:
p4c-bmv2 --json JSON simple_router.p4
这时候JSON文件就生成了,打开看看是不是很眼熟?
1. metadata跟header_type放在一起
2. headers成员里面有个metadata:true/false来标记
3. headers里面还有standard_metadata
4. 还有parsers/actions组。。。

至于怎么用BMv2或者mininet跑起来请看下一篇

如果你有自己的设备,CPU/FPGA/NP或者其它想支持P4的设备,可以用p4-hlir用python解析生成代码,或者基于p4c-bmv2输出的JSON生成代码或者执行文件。

BMv2j记得不是生成代码,而是加载JSON作为配置,如果代码效率要求不高应该可以这么用。

BTW,P4这个名字本来是Perforce的缩写,一个版本管理工具,P4全名是Programming Protocol independent Packet Processing, PPiPP更唯一

0
1
分享到:
评论

相关推荐

    p4-perforce repo.pdf

    P4-Perforce 版本工具使用指南 P4-Perforce 是一款版本控制系统,提供了强大的版本管理功能。该工具提供了多种命令供用户使用,涵盖了客户端工作空间、文件管理、变更列表、作业管理、分支和合并、管理等多个方面。...

    p4-14-v1.0.5_P4语言标准_

    9. **验证和测试**:文档还会涵盖如何使用P4验证工具确保程序的正确性,并提供测试用例和调试建议。 通过深入学习P4语言标准v1.0.5,开发者能够掌握如何编写P4程序,从而定制网络设备的功能,创建创新的网络服务和...

    hlir16:P4-16的Python表示形式

    假设环境变量P4C包含通向p4c和/或T4P4S的路径(基于P4-14的版本,或基于实验性的基于P4-16的版本,使用该库),则可以运行以下示例道路。 它需要Python 3。 python test_hlir.py " $P4C /testdata/p4_16_samples/...

    P4-OvS:将P4的力量带到OvS!

    p4c-ubpf作为编译器,可将P4程序转换为与BPF兼容的C代码 请检查以获取有关到目前为止已实施的详细信息。 笔记! 当前的P4-OVS版本仍然是一个研究项目,几乎可以肯定它包含严重的错误或代码怪癖。 入门 要自己玩P4-...

    matlab超声成像代码-P4-1-FAPI:P4-1多角度平面波超声对比成像方法代码

    matlab超声成像代码P4-1-FAPI P4-1 换能器 (P4-1FAPI) 的闪光角脉冲反演成像 描述:这是一个多角度平面波超声对比成像序列,专为在 Verasonics Vantage Research 超声系统上运行的 P4-1 相控阵换能器而专门编写和...

    IPB70P04P4-09 INFINEON 英飞凌 电子元器件芯片.pdf

    9. **封装与标识**:IPB70P04P4-09有三种封装形式,包括PG-TO263-3-24、PG-TO262-3-14和PG-TO220-3-14,每种封装都有相应的标记代码,如IPI70P04P4-09和IPP70P04P4-09。 10. **应用领域**:由于其出色的性能和耐温...

    一个PPT讲清楚P4-P4runtime-Yang-ONOS.rar

    给学习SDN,网络编程,P4交换机使用者的福利。本材料系统地讲解了P4编程,P4runtime接口,Yang,ONOS内部实现以支持P4编程。从数据面,讲到接口,讲到控制模型,讲到控制器实现。从下到上,条理清晰。上传者倾力推荐...

    vnc-P4_6_3-x86_x64_win32

    vnc-P4_6_3-x86_x64_win32

    北航计组代码(三)p4--Verilog单周期

    【标题】"北航计组代码(三)p4--Verilog单周期"涉及的是一个计算机组织实验项目,其中的“计组”是计算机组成原理的简称,而“p4”可能代表实验的第四部分。这个项目的核心是设计一个用Verilog语言编写的单周期...

    P4-16-v1.0.0-spec.pdf

    8. P4数据类型:详细介绍了P4的基本类型和派生类型,以及它们的定义和用途。 9. 名称解析和可见性:解释了P4程序中名称如何解析以及不同代码元素的可见性规则。 10. 文法和语义:提供了P4语言的语法规则和语义,...

    NDN-tools以及NDN.p4总结.docx

    NDN-tools和NDN.p4是与NDN相关的两个重要工具集,分别用于数据分析和网络层协议的编程。 1. NDN-tools: dissect-wireshark dissect-wireshark是NDN-tools的一部分,它是一个用于Wireshark的数据包分析器,专门针对...

    北航计组实验代码(三)p4--Verilog单周期

    【描述】"北航计组实验p4代码--Verilog单周期 支持36种指令 附设计文档"表明实验提供了详细的代码实现以及设计文档,帮助学习者理解每个模块的功能和整个系统的集成。设计文档通常会包含系统架构图、指令集架构(ISA...

    IPD90P04P4-05-VB一款P沟道TO252封装MOSFET应用分析

    总之,IPD90P04P4-05-VB是一款高性能的P沟道MOSFET,适合需要高效能、低热阻和高可靠性的电源管理应用,如DC-DC转换器、电机驱动和负载开关等。其优秀的电气和热特性使其成为高电流、低损耗应用的理想选择。在实际...

    onos-p4-dev:各种P4工具,程序和脚本,使开发人员可以尝试ONOS中的P4实验功能

    有关更多信息,请访问: : 快速开始重要提示:以下脚本已在的上进行了测试首先,您需要为onos-bmv2(BMv2的ONOS分支)和p4c-bmv2(BMv2的P4编译器)提取git子模块: git submodule update --init --recursive按照各...

    p4vasp-0.3.29-win.zip

    **P4vasp工具详解** P4vasp是一款专为材料科学领域的科研人员设计的可视化和原子结构建模软件,其主要功能是辅助用户在Windows操作系统下进行VASP(Vienna Ab initio Simulation Package)计算的前处理、后处理及...

    IPD90P03P4-04 INFINEON 英飞凌 电子元器件芯片.pdf

    IPD90P03P4-04 英飞凌 电子元器件芯片 本文档介绍了英飞凌 (INFINEON) 公司生产的 IPD90P03P4-04 Power-Transistor 芯片,属于 OptiMOS®-P2 家族。该芯片是 P-通道增强型 MOSFET,具有高性能和可靠性。 主要特点 ...

    P4-3.py

    P4-3.py

    P4-1.py

    P4-1.py

    IPD50P04P4-13-VB一款P沟道TO252封装MOSFET应用分析

    IPD50P04P4-13-VB是一款由VBsemi公司生产的P沟道金属氧化物半导体场效应晶体管(MOSFET),它采用TO252封装,适用于电源管理、开关和驱动应用。以下是这款MOSFET的关键特性和技术参数的详细分析: 1. **TrenchFET...

Global site tag (gtag.js) - Google Analytics