OpenFlow 13、RYU SDN控制器,buffer_id到底是什么?
OpenFlow 13, RYU SDN controller, what exactly is a buffer_id?
我在 OpenFlow13 上工作的 RYU SDN 控制器已经有一段时间了。我不明白我们需要 buffer_id 的目的是什么。
我正在尝试编写代理应用程序,因此当我收到 192.168.2.2 作为 ipv4.dst 时,我将其修改为 172.10.2.2。
我使用命令
执行此操作
actions = [parser.OFPActionSetField(eth_dst=pkt_ethernet.dst),parser.OFPActionSetField(ipv4_dst=pkt_ipv4.dst),parser.OFPActionOutput(2)]
out = parser.OFPPacketOut(datapath=datapath, buffer_id=msg.buffer_id,
in_port=in_port, actions=actions, data=data)
datapath.send_msg(out)
pkt_ipv4.dst 有新 IP。
我收到一个错误的请求,OFPBRC_BUFFER_EMPTY(7)
我现在正在尝试发送数据包而不向控制器添加流。不过我打算以后加流量。
"In most cases, switches and routers are configured for "尽最大努力"数据包转发。"
https://fasterdata.es.net/network-tuning/router-switch-buffer-size-issues/
如果交换机不能立即转发数据包,则需要将其排队并存储在缓冲区中以防止被丢弃。
buffer_id
只是为了唯一标识和跟踪数据包是否在缓冲区中。如果它不在缓冲区中,则不指定缓冲区 ID,并设置为 OFP_NO_BUFFER
您正在尝试发送一个 OFPacketOut
,其中包含一个引用空缓冲区的 buffer_id
。您只需为任何传入的 OFPacketIn
指定一次缓冲区,否则将 buffer_id
设置为 OFPacketOut.BUFFER_ID_NONE
.
我在 OpenFlow13 上工作的 RYU SDN 控制器已经有一段时间了。我不明白我们需要 buffer_id 的目的是什么。
我正在尝试编写代理应用程序,因此当我收到 192.168.2.2 作为 ipv4.dst 时,我将其修改为 172.10.2.2。
我使用命令
执行此操作actions = [parser.OFPActionSetField(eth_dst=pkt_ethernet.dst),parser.OFPActionSetField(ipv4_dst=pkt_ipv4.dst),parser.OFPActionOutput(2)]
out = parser.OFPPacketOut(datapath=datapath, buffer_id=msg.buffer_id,
in_port=in_port, actions=actions, data=data)
datapath.send_msg(out)
pkt_ipv4.dst 有新 IP。
我收到一个错误的请求,OFPBRC_BUFFER_EMPTY(7)
我现在正在尝试发送数据包而不向控制器添加流。不过我打算以后加流量。
"In most cases, switches and routers are configured for "尽最大努力"数据包转发。"
https://fasterdata.es.net/network-tuning/router-switch-buffer-size-issues/
如果交换机不能立即转发数据包,则需要将其排队并存储在缓冲区中以防止被丢弃。
buffer_id
只是为了唯一标识和跟踪数据包是否在缓冲区中。如果它不在缓冲区中,则不指定缓冲区 ID,并设置为 OFP_NO_BUFFER
您正在尝试发送一个 OFPacketOut
,其中包含一个引用空缓冲区的 buffer_id
。您只需为任何传入的 OFPacketIn
指定一次缓冲区,否则将 buffer_id
设置为 OFPacketOut.BUFFER_ID_NONE
.