首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

P4加入ONF和Linux基金会,推动P4的创新和采用

P4语言联盟(P4.org)是P4编程语言的创建者,上周五宣布将成为开放网络基金会(ONF)旗下的一个项目,并且成为Linux基金会投资组合的一部分,P4联盟自2013年以来一直致力于可编程语言P4的非盈利组织...Linux基金会执行总裁Jim Zemlin表示:“Linux基金会很高兴P4的加入,网络是Linux基金会的主要关注点,而P4社区的蓬勃发展以及Linux基础网络项目将推动网络创新技术向更高水平迈进。...斯坦福大学计算机科学教授兼P4董事会成员Nick McKeown表示:“P4.org是一个免费的会员组织。作为ONF和Linux基金会的一部分,P4将保持开放和免费原则。...P4目前已经发展成为一个如此庞大的社区,成熟度逐渐为业界认可,需要得到ONF和Linux基金会的帮助。” P4可以同时用于可编程和固定功能设备。...P4也可以用来编写程序来描述全新的数据包转发行为。例如,P4广泛用于数据中心、企业和服务提供商网络的遥测和测量。

77640
您找到你想要的搜索结果了吗?
是的
没有找到

P4入门教程(2):P4程序的编译、运行验证与分析

在前面《P4入门教程:搭建开发和实验环境》一文中,梳理了P4实验的大致流程。P4程序只需要经过一次编译过程,生成数据平面的JSON格式描述文件,最后在启动软件交换机时将JSON描述文件导入即可。...本文重点讲述编译P4程序、启动P4交换机的方法,并以这样一个小功能为例展示P4程序的运行: 交换机只处理IPv4包,把收到的包打上三层MPLS标签,再从入端口把包发回去。...P4交换机使用Thrift库来实现RPC服务。控制面通过RPC向服务器下发配置、更改转发表、修改寄存器中的值等。...简单的操作可以在RuntimeCmd敲入命令完成,我们也可以将多条命令写入一个文本文件,每条命令占一行,然后通过Linux输入重定向的方式,一次性将多条命令导入Runtime执行。...到此,P4程序的编译、运行和验证就顺利结束了,希望能给朋友们一点启发。下一篇“P4入门教程”系列连载文章中,我们将利用本次演示中的P4程序,进行P4程序结构的简析,敬请期待!

3.3K50

P4语言规范》parser详解

前言 为深入研究P4语言相关规范及运行操作使用,本系列文章根据P4.org网站给出的《The P4 Language Specification v1.0.2》[1]内容,并通过我们的运行使用的具体实例和分析汇总...,希望能为大家研究P4提供一点参考。...本系列文章分为三个部分,系列一翻译和阐述 P4.org网站给出的《The P4 Language Specification v1.0.2》的第二部分首部及字段;系列二是翻译和阐述《The P4 Language...一、解析器介绍 p4解析器是基于有限状态机的思想来设计的。...虽然P4支持这种图表的形式,但是没有规定必须这样做。 实际上,P4的解析状态节点可以分为两种: ☘ 一种是进行状态转移的选择节点,这个节点不要求进行对首部实例的识别操作。

1.8K90

P4语言编程详解

在文章《P4:开创数据平面可编程时代》中介绍了P4的架构特性、交换机结构以及P4程序的工作原理,本篇为大家介绍P4语言编码及规范,从编码角度去理解P4程序的工作流程。...(7)p4factory 内含整套用以运行和开发基于behavioral model的P4程序环境的代码,帮助用户快速开发P4程序。...(10)tutorials P4语言教程,内含8个教程,覆盖了P4语言中的解析器、动作、状态存储、匹配-动作表、等基础组件。...2.P4语言标准 当前P4语言标准的最新版本为《The P4 Language Specification Version1.1》(以下简称V1.1),目前版本的P4语言编译器已经基本实现了P4语言标准中的绝大部分特性...表8中展示了P4中定义的基本动作。 ? ? 这些动作高度抽象且与协议无关,以实现P4语言处理数据的协议无关性。

6.4K54

P4虚拟化数据平面

那么,是不是可以有一种使用纯P4语言实现的通用虚拟化框架呢?如何使用一个用户级别的程序来实现虚拟化?是否可以使用一个特殊设计的具有模拟其他P4程序的能力的P4程序?...HyPer4使用软件的方式拓展了P4语言,使得支持P4语言的设备可以具有如下功能: 可以在逻辑上存储多个P4程序并且同时运行它们(作为网络切片)或者热切换的快照 在每一个程序之间可以形成一个虚拟网络(...和P4-to-EBPF可以将其转换为Linux网络平面使用的EBPF程序。...上图左边部分描述了P4设备开始配置的过程。首先,用户会编译P4的代码,然后将二进制代码(或者其等价形式)装载进P4兼容的设备中。...为了模拟其他的P4程序,HyPer4需要根据被仿真的目的程序改变HyPer4的状态,进而将其被转换成对于表的操作。 通过将P4程序表示成状态,HyPer4可以支持P4程序的实时更新。

1.2K60

为何P4“落户”智能网卡?

DSC卡从物理规格看就是插入标准服务器的适配卡,鼎鼎大名的业内大拿们为何选择了PCIe卡作为突破口,并且选择P4语言作为主要的开发工具,本文基于公开资料介绍如何实现一款支持P4语言的接口卡以及P4语言发挥的关键作用...图1: 分布式服务卡DSC 网络边缘的价值 网络交换机曾经是P4编程的最初重点,但把P4理念应用到网络外围的终端节点时,它可以呈现出更大的潜力,此时终端节点可以在scale-out模型中实现网络、安全和存储服务...为了充分利用流水线中设计的专用处理器并与卡的其他组件紧密集成,系统编程依赖于对P4语言的扩展。 报文缓存作为片上的主数据包交换器,将数据报文从网络接口传送到P4可编程报文处理数据平面,反之亦然。...在P4报文处理数据平面提供快速路径处理功能的同时,一组ARM内核还能进行更复杂的数据平面处理。此外,运行于ARM处理器上的Linux环境为控制和管理平面功能提供计算能力。...为了实现这些目标,Pensando于今年2月份加入P4社区,致力于围绕便携式网卡架构(PNA)的规范积极推动架构工作组的工作,并可能在语言设计工作组内提出P4语言的扩展,以实现网卡和主机之间通过PCI总线的交互

1.5K20

P4论文分享】基于P4的可编程数据平面研究及其应用

文献[43 – 44] 为P4程序实现了一个从P4语言到ODP的编译器MACSAD 设计并实现了从P4程序到ODP规范A P I的编译器,借助ODP项目的多平台支持性,使得P4程序可以无缝的迁移到大量支持...在满足网络流差异化需求的前提下实现对P4程序的优化. P5能够提升P4程序的并行度, 同时减少所需的匹配动作表的级数, 降低P4程序的部署要求....可以对大型P4程序生成有效的测试用例, 展现静态P4程序中存在的错误....(3) 使用P4基本实现了AFDX协议 P4在航空领域有一定的适用性,但是在安全性、 功能性上仍不完善, 在航空电子领域的P4商业应用仍需时日 4 . 5 . 4 云服务市场 P4带来的可编程性使得在交换机上完成流量的区分和不同服务的编排成为可能...P4技术在诸多本文未提及的应用场景下仍可有所作为. 4) P 4安全问题研究 a) 可编程数据平面可能会在三方面存在漏洞, 分别是P4表项、 P4程序以及P4交换机.

1.9K10

关于P4编程语言的几个误区

和OpenFlow刚刚面世一样,用于网络设备编程的P4编程语言也存在众多误解。本文的主要目的就是解惑P4编程语言的几个常见误区。...误区一:P4就是Openflow2.0 这一误区产生的主要原因是斯坦福大学的Nick Mckeown教授在OpenFlow之后马不停蹄地开始P4的设计与推广,因此很容易让人以为P4就是OpenFlow的新版本...目前支持P4编程的数据平面芯片既可以是传统的网络处理器(NPU),也可以是上文提到的FPGA芯片,更不用说在CPU上可以模拟P4的各种行为,还有大神在GPU上开展P4的研究工作。 ? ?...而P4作为一种语言本身就是对网络行为的描述,所以只要能够让传统非可编程网络芯片可以理解由P4定义的转发流水线就能让传统芯片也支持P4定义的行为。...误区四:P4语言是Python一样的高级语言 P4虽然是高级语言但是属于针对特定领域的DSL语言,它和Python等计算机高级语言相比有很大的差别,首先P4语言需要考虑物理资源的限制,P4最终管控的是资源有限的数据平面转发芯片

1.6K31

P4:真正的SDN还遥远吗?

P4作为新的网络编程语言很好的弥补这个缺陷。P4会改变网络吗?是否能带来具有完全可编程能力的SDN?还是仅仅是学术界的宠儿?...两位教授也是P4组织的主要推动者之一。目前,P4语言作为一种潜在的OpenFlow2.0的发展方向在努力发展。...P4的编译器会将通用的P4语言处理逻辑编译成设备相关的指令,从而写入转发设备,完成转发设备的配置和编程。 抽象的P4转发设备模型如图1所示。...而且作为一门编程语言,P4支持设备无关特性,使得P4可以应用在不同厂家生产的转发设备上,解除了服务提供商对网络设备厂家绑定的顾虑。 自P4诞生以来,得到了业界的关注和认可,目前发展良好。...此外,在P4发展的过程中,已经被多种转发设备支持,比如应用最广泛的软件交换机OpenVSwitch以及华为的POF交换机。转发设备的支持是P4继续发展的强大保障,是P4商业发展的前提。

1.5K90

P4编程理论与实践——理论篇

基于这种初衷,P4应运而生。 什么是P4 P4(Programming Protocol-Independent Packet Processors)是一种数据面的高级编程语言。...P4 与 OpenFlow 的关联与区别 P4虽然弥补了OpenFlow的不足,但是P4和OpenFlow的定位是截然不同的! OpenFlow提供了一种控制器和数据面的动态交互的协议。...P4的设计者们还提供了一个南向协议——P4 runtime。 P4 runtime与OpenFlow功能类似,但是P4 runtime可以充分利用P4协议无关的特性,”与P4更搭配!“。...P4中的那些事 P4是一种高级数据面编程语言,既然是高级语言,那么其设计本身就有着很高的抽象程度。我们先来看一种图: ? 这是P4中提供的最简单最易理解的编程结构,V1Model。...在开始搭建环境和写P4代码前 p4 的github仓库 是学习P4编程的重要基地,我们着重了解一下几个子仓库: behavioral-model简称BMv2. 是一款支持P4的软件交换机。

2.9K100

P4语言编程快速开始

经过前两篇的P4理论介绍,相信大家已经对P4有个基本的了解了,本片文章为大家带来P4语言编程实战。...1、系统环境安装 P4项目的官方文档上都是以Ubuntu为例,笔者惯用的linux系统也是Ubuntu,因此本篇文章中的实验都基于Ubuntu14.04完成的。...每个子项目的作用在上篇文章《P4语言编程详解》中已介绍,这里不再赘述。图1中展示了P4项目主要模块的依赖关系,在进行编译安装时可以参考该依赖关系选择安装顺序。...这里需要注意模块依赖图与P4架构图的区别。...在看具体实例之前先回顾一下P4程序定义数据平面的流程: 图3 P4程序定义数据平面流程 这里介绍一下笔者在看P4程序时候的方法,仅供大家参考:首先,从流控制程序(control)开始,查看流水线

2.2K61

P4和POF的对比

P4是一种对底层设备数据处理行为进行编程的高级语言,用户可以直接使用P4语言编写网络应用,之后经编译对底层设备进行配置进而使其完成用户的功能需求。...POF最终实现的功能与P4类似,也是提高底层设备的可编程性。...P4与众不同的地方在于有一套自己的抽象转发模型,如图1。 ? 图1 P4抽象转发模型 在此基础上,P4 的编程模型可分为两个阶段:第一个是配置阶段,通过有向图的方式定义具体转发逻辑的协议解析过程。...六、与控制器通信 由于P4的定位是高级编程语言,所以P4可以定义任意自己想要的配置。它可以让设备与SDN控制器通过OpenFlow通信,也可以通过本地的交换机操作系统控制,一切皆因P4程序设计而定。...POF的软件交换机是在LINUX上用一个类似的POF驱动和软件转发代码实现的,其可实现的转发功能与POF硬件设备几乎是一样的。

2.2K30

P4:开创数据平面可编程时代

下面,我们主要从以下几个方面谈谈我对P4这门转发平面的编程语言的理解:P4的架构及特性、交换机结构、P4程序工作流程。...这一特性通过P4前后端编译器实现,前端编译器将P4高级语言程序转换成中间表示IR,后端编译器将IR编译成设备配置,自动配置目标设备。...图3 P4交换机流水线结构 P4交换机中将流水线处理数据的过程进行抽象和重定义,数据处理单元对数据的处理抽象成匹配和执行匹配-动作表的过程,包头的解析抽象成P4中的解析器,数据处理流程抽象成流控制。...P4交换机的专用物理芯片Tofino,最高支持12个数据处理单元,可以覆盖传统交换机的所有功能。 有了以上的知识储备,就可以很轻松的刻画出P4交换机的结构。...P4程序工作流程 至此,我们可以梳理出P4的完整工作流程。

2K70

P4语言规范》Header & Instances详解

一、前言 为深入研究P4语言相关规范及运行操作使用,本系列文章根据P4.org网站给出的《The P4 Language Specification v1.0.2》[1]内容,并通过我们的运行使用的具体实例和分析汇总...,希望能为大家研究P4提供一点参考。...本系列文章分为三个部分,系列一 翻译和阐述 P4.org网站给出的《The P4 Language Specification v1.0.2》的第二部分首部及字段;系列二是翻译和阐述《The P4 Language...但是,如果仅从语言语义的角度来琢磨代码,不能很好的理解P4程序定义底层数据报处理过程的作用;因此作者认为,理解P4程序,不仅仅要从代码语义的角度出发,更要与底层的真实处理流程联系起来,结合去理解。...这条P4语句,在P4程序中的作用是声明一个 vlan_t 首部类型的实例 inner_vlan_tag ;在底层实际处理这条语句的过程中,指明了要给从数据报中解析出来的,首部类型 vlan_t 的实例

1.3K80

P4语言,踢馆OpenFlow的SDN新秀

上周五,由两位SDN大师----来自普林斯顿的Jennifer Rexford和斯坦福的Nick McKeown----共同发起的P4联盟正式对外公布全新的项目主页,详细阐述了P4的目标定位、如何使用P4...最重要的是两位教授在P4项目上达成了高度的共识。 P4到底是什么呢?...P4的目标是什么? P4试图在从根本上改变我们设计网络系统的方式。首先,你要确定系统的设计要求,然后写一个P4程序来描述你的系统需要如何处理数据包,最后编译程序通知转发设备该做什么。...从本质上讲,P4无论是在软件设计(编程、调试、代码覆盖、模块检查等)方面,还是在网络系统的设计上,都给我们带来了很多好处。 P4目前还处于起步阶段,希望借助社区的力量帮忙完善和改进。...目前P4的代码处于开源状态,后续进一步的开发也将对外开放,所有的开源都遵循Apache许可。同样,P4联盟目前采取的也是免费会员制,用户可以通过P4主页(http://p4.org/)加入。

1.4K60

P4编程理论与实践(2)—快速上手

本文的主要特色是让对P4感兴趣的大家不费吹灰之力的在工作,学习之余,快速搭建完善的P4实验环境并开始第一个P4实验。...如果工作环境没有Linux系统,建议使用VM。 真机搭建: ? 优点:运行速率快,环境较新。 缺点:可能会遇到错误,需要一个ubuntu系统。...它通过linux内核的一些特性(net命名空间),在一个主机上划分出多个虚拟网络空间,各个网络空间之间相互隔离,有自己的端口, ip等等。...搭建环境 搭建环境有两条路可以走: 使用环境健全的虚拟机,如果朋友们手边没有linux环境,或者希望快速上手开发,建议采取这种方式。 在真机中(我这里时Ubuntu16.04)搭建。...P4实验环境的脚本。

2.4K51

P4:编写协议无关的包处理器

在本篇论文中,我们概述了一种编写协议无关的包处理器(P4)的高级语言的设计。图1-1展示了P4和已有的协议接口之间的关系。P4用来配置交换机。告诉它们应该如何处理数据包。...我们通过这个例子来探索P4程序是如何指定首部、包解析器、多个“匹配 - 动作”表和多个表之间的控制流程的。最后,我们讨论P4编译器如何将P4程序映射到目标交换机上。 其他相关研究。...P4的设计可以让P4程序翻译到TDG的过程更加容易。总的来说,P4可以被认为是Click的普适性和OpenFlow 1.0的不灵活性一个折衷点。...图 3-1 二层/三层交换的TDG表依赖图 第四章 P4语言示例 我们通过深入地测试一个简单的例子来探索P4。...这个简单的mTag例子将我们的注意力集中到P4语言上。实践中实现整个交换功能的P4程序将比这复杂很多倍。

1.6K111
领券