美文网首页
controller of P4

controller of P4

作者: 彳亍cium | 来源:发表于2019-11-20 19:37 被阅读0次

1、P4 Runtime

P4Runtime是P4的一个控制面的协议,也叫南向协议,用于下发流表、规则等作用,但是P4一般提供了PCI这一个模块来修改流表等静态存储,这些模块对于需求往往不够,所以本文记录一下如何使用P4Runtime来从控制面读、写、改一些静态的流表、register、counter等。

  • 首先cd到/behavioral-model/tools文件下面,看到目录下有一个runtime_CLI.py,这个文件就是我们用来修改的文件。这个文件本来的功能就是CLI的命令循环,我们可以立足于它做一些自定义的动作,而不需要在CLI的命令行输入,只需要运行一个python脚本就可以了。

  • runtime_CLI.py里面把所有的API都写在了class RuntimeAPI里面了。而在主程序里面只写了一句

    RuntimeAPI(args.pre, standard_client, mc_client).cmdloop()

所以我们可以在class RuntimeAPI中自己定义一个函数,函数中调用不同的动作组合,然后在主程序里调用这个成员函数就可以实现运行自己规定的那些动作了,而这些动作怎么组合根据个人的需要即可。

2、P4 Runtime or CLI连接switches

  • 当网络结构中含有多个交换设备时,利用一个远程主机开启不同的进程运行CLI可以分别连接多个交换设备
    # 开启一个terminal
    simple_switch_CLI --thrift-port 9090
    # 默认监视端口是9090,连接的是第一个实例的switch
    # 再开启一个terminal
    simple_switch_CLI --thrift-port 9091
    # 默认监视端口是9090,递增一个端口号,连接的是第二个实例的switch
    # 再开启一个terminal
    simple_switch_CLI --thrift-port 9092
    # 默认监视端口是9090,递增2个端口号,连接的是第3个实例的switch
  • 当网络结构中含有多个交换设备时,利用一个远程主机开启不同的进程运行python脚本同样可以分别连接多个交换设备
    # 开启一个terminal
    cd /home/vagrant/behavioral-model/tools
    ./runtime_CLI.py --thrift-port 9090
    # 默认监视端口是9090,连接的是第一个实例的switch
    # 再开启一个terminal
    ./runtime_CLI.py --thrift-port 9091
    # 默认监视端口是9090,递增一个端口号,连接的是第二个实例的switch
    # 再开启一个terminal
    ./runtime_CLI.py --thrift-port 9092
    # 默认监视端口是9090,递增2个端口号,连接的是第3个实例的switch
  • 这里的runtime_CLI.py可以自定义修改给响应的交换机下发一些流表和修改register、counter等数据结构

相关文章

  • controller of P4

    1、P4 Runtime P4Runtime是P4的一个控制面的协议,也叫南向协议,用于下发流表、规则等作用,但是...

  • p4数据面编程语言

    p4语言简介 P4(Programming Protocol-Independent Packet Process...

  • P4-Tutorials-Firewall

    实施基本的Stateful Firewall 说明:翻译自P4官方教程P4 Tutorial的Implementi...

  • P4-Tutorials-Link Monitor

    实施链接监控 说明:翻译自P4官方教程P4 Tutorial的Implementing Link Monitori...

  • P4-Tutorials-Multicast

    实施组播 说明:翻译自P4官方教程P4 Tutorial的Implementing Multicast 介绍 本练...

  • P4_tutorials

    ?经过接连两周连续每天熟悉p4官方给出的教程,慢慢的对p4有了进一步的理解。?p4是一个数据面的编程语言,能够对数...

  • 读书札记四《A Short History of Chinese

    P4 录:Now, what the philosophers call the universe is not ...

  • SpringBoot 文件下载

    controller service 实例代码: controller@Controller@RequestMap...

  • redis分布式锁实现

    算法 进程P4执行 SETNX lock.foo 以尝试获取锁 由于进程P1已获得了锁,所以P4执行 SETNX ...

  • Asp.Net Core RESTful Controller

    Controller ControllerBase 与 Controller 的区别:Controller 派生自...

网友评论

      本文标题:controller of P4

      本文链接:https://www.haomeiwen.com/subject/hilaictx.html