我使用Mininet的自定义拓扑和RYU-REST控制器“ofctl-rest.py”。在交换机中安装一些流条目后,通过网络发送一些数据包并捕获流量,我发现交换机不会减少ip-layer中的ttl-field。我发现我必须告诉交换机减少ttl字段(这可能是因为OpenFlow - 版本1.1)。为此,我尝试“type”行:“DEC_NW_TTL”,但它不起作用。我的完成命令如下所示:
curl -X POST -d '{
"dpid": 1,
"cookie": 1,
"cookie_mask": 1,
"table_id": 0,
"idle_timeout": 3600,
"hard_timeout": 3600,
"priority": 0,
"flags": 1,
"match":{
"in_port": 1
},
"actions":[
{
"type":"OUTPUT",
"port": 4,
"type":"DEC_NW_TTL"
}
]
}' http://localhost:8080/stats/flowentry/add
我错了什么?我如何修改命令让交换机减少ttl?请帮我。 先感谢您。
答案 0 :(得分:0)
我认为你必须指定多个动作。你也应该改变行动'订购。首先,您需要递减TTL,然后将数据包发送出去。先发送数据包然后递减数据包不起作用。
我会这样试试:
curl -X POST -d '{
"dpid": 1,
"cookie": 1,
"cookie_mask": 1,
"table_id": 0,
"idle_timeout": 3600,
"hard_timeout": 3600,
"priority": 0,
"flags": 1,
"match":{
"in_port": 1
},
"actions":[
{
"type":"DEC_NW_TTL"
},
{
"type":"OUTPUT",
"port": 4
}
]
}' http://localhost:8080/stats/flowentry/add
答案 1 :(得分:0)
阿巴顿的答案应该起作用。您应该将每个动作放在方括号中。但是,发布请求中不同操作的顺序无关紧要。 OpenFlow对于不同类型的操作具有其默认顺序。