gpt4 book ai didi

python - POX l3_学习示例

转载 作者:行者123 更新时间:2023-11-28 18:37:34 25 4
gpt4 key购买 nike

我正在尝试从 POX Controller 中的 forwarding.l3_learning 示例中学习。
在过期处理程序中,如果缓冲区中的数据包时间过期,则从 Controller 中移除。
稍后 Controller 指示交换机丢弃这些行中的数据包:

po = of.ofp_packet_out(buffer_id = buffer_id, in_port = in_port)
core.openflow.sendToDPID(dpid, po)

我在创建的消息中没有看到这样的特定指令来切换。我不明白交换机如何知道它应该丢弃数据包。

最佳答案

这是一个没有任何 Action 的 PACKET_OUT 消息。由于没有任何操作,交换机只是丢弃数据包。如果您希望交换机再次应用匹配(例如当数据包从网络传入时),您需要将操作显式设置为 output:OFPP_TABLE

这在 OpenFlow 规范中并没有明确说明,但所有开关实现都是这样工作的(例如,参见 here)。

发送 PACKET_OUT 而根本没有执行任何操作的原因是交换机将数据包存储在其缓冲区中(在 buffer_id 指定的插槽中)直到 Controller 告诉开关如何处理它。随着时间的推移,如果 Controller 从不对数据包做任何事情,这些缓冲区将填满,因此通过显式发送它们而不执行任何操作,缓冲区将被释放。

如果交换机中的所有缓冲区都已满,数据包(而不仅仅是 buffer_id)将在 PACKET_IN 消息中发送到 Controller ,这会降低性能。

关于python - POX l3_学习示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31067661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com