P4

在docker中运行bmv2,连接控制器


docker中使用bmv2跑P4程序,如果想与控制器连接交互是否能够实现呢
已邀请:

Wasdns

赞同来自: yifan


BMv2与控制器交互,一个方法是在P4程序中描述OpenFlow协议,并通过OpenFlow agent与控制器(如ryu)连接,可以参考这里面的内容:https://github.com/p4lang/p4ofagent;另一种方法是在控制面集成BMv2 target的CLI,通过RPC框架从控制面下发流表规则,相关的有P4Runtime:https://github.com/p4lang/PI

我没有通过p4factory中的docker跑过BMv2,或许目前能够运行,不过p4factory目前已被官方标记为deprecated,建议您可以直接通过Tutorials:https://github.com/p4lang/tutorials 里封装的环境运行和测试BMv2,或者通过p4app:https://github.com/p4lang/p4app 在docker中运行和测试BMv2。

上述内容是我自己的理解,如果有不恰当的地方欢迎各位斧正!

yifan - 春风十里不如你

赞同来自:


多谢解答了,还有个问题再咨询下,在OpenFlow agent的使用时,需要写映射文件,实现Openflow <-> P4 Mapping ,这个映射规则怎么写您知道吗

Wasdns

赞同来自:


mapping file有一个例子是:https://github.com/p4lang/p4fa ... pping 不过我没有做过相关实验,官方也没有继续提供repo方面的支持,不清楚它还能不能运行。我记得在官方的邮件列表里有人跑成功过,您可以通过Google搜索一下。

yifan - 春风十里不如你

赞同来自:


好的,多谢Wasdns大神的帮助,我试试看

Wasdns

赞同来自:


客气啦,我还远远谈不上大神,大家互相交流共同学习!

要回复问题请先登录注册