我是 P4 的新手,我正在尝试了解数据包计数器是如何实现的。
在文档中,非常清楚如何定义计数器然后递增。但我不明白如何使用控制平面查看计数器。
我正在使用 Mininet 和 BMV2 软件开关 - 我如何才能查看我的计数器值?
数据和控制平面之间的交互在 P4Runtime 规范中定义,可以在 https://p4.org/specs/ 找到。这是一个通用文档,并非特定于 BMv2 交换机。
管理 BMv2 软件交换机有两种方式。
当手动读取开关状态(例如计数器值)就足够时,您可以使用基于 Thrift 的
simple_switch_CLI
命令。它作为 BMv2 的一部分与 simple_switch
命令一起安装。在 CLI 中,您将能够使用 counter_read
命令。
要从 Python 脚本读取值,您可以使用例如nsg-ethz/p4-utils,其中包含 Thrift 和 P4Runtime API 的 Python 绑定。该存储库包含使用示例。
如果您想使用 P4Runtime API,请确保使用
simple_switch_grpc
命令启动交换机。