zoukankan      html  css  js  c++  java
  • P4 Runtime和p4 info

    p4runtime

    P4 Runtime是一套基于Protobuf以及gRPC框架上的协议,通过P4runtime,SDN控制器可以控制能够支援p4的设备。

    p4runtime当前由p4 API workgroup指定,主要来自于barefoot公司。

    barefoot公司,其还设计了第一款原生支持p4的芯片——tofino,以及基于tofino的交换机——wedge 100bf-65x。

    控制器也能通过p4runtime去修改装置上的pipeline。与openflow不同的除了具备高度弹性的信息格式意外,控制器与设备之间连接的顺序也不同,以往openflow是需要控制器开始特定的接口,然后设备才能连上控制器。

    p4runtime则是在设备上开始gRPC server,由控制器联系设备,因此设备上会有一个代理人Agent负责处理由控制器来的连接。

    关于p4runtime是通过一个protobuf档案定义出来的,最新的定义现在在github上。

    https://github.com/p4lang/p4runtime/blob/master/proto/p4/v1/p4runtime.proto

    gRPC除了提供单向的RPC(RPC就是远程过程调用)界面以外,还提供双向的stream channel,这个就是双向流式调用,举例来说有时候我们会希望switch做出packet-in/out的动作,这部分就需要stream channel,p4runtime也提供了下相关信息格式来使用。

    p4 info

    p4 info就是p4的infomation。

    原则上在编译阶段,前端的编译器除了将原始的p4档案编译成中间码(IR)以外,也会将名称与ID讯息转换成p4 info档案,p4 info档案会和编译好的p4 binary(bmv2->json,Tofino->bin)一起上传给设备上的Agent,p4 info也会导入给控制器供控制器去查询。

    p4源码转换成p4 info如下:

    控制器取得p4 info之后,可以通过p4 info来产生p4 runtime的信息。

  • 相关阅读:
    MYSQL中replace into的用法以及与inset into的区别
    怎么安装phpcms?PHPCMS V9安装图文教程
    Yii 框架生成缩略图
    怎么让普通用户使用root权限执行用户命令
    自学Linux命令的四种方法
    最完整PHP.INI中文版
    前端chrome浏览器调试
    phpstorm快捷键记录
    客户关系管理
    Subquery returns more than 1 row
  • 原文地址:https://www.cnblogs.com/pullself/p/10628230.html
Copyright © 2011-2022 走看看