OpenDaylight Boron-SR2版本简单应用及流表操作指南

sdn 专栏收录该内容
10 篇文章 0 订阅

OpenDaylight Boron-SR2版本简单应用及流表操作指南
1.1 ODL 控制器与mininet的连接:
ruby # sudo mn --controller=remote,ip=127.0.0.1 --topo linear,2 --switch ovs,protocol=OpenFlow13
2 OpenDaylight 流表操作
http://192.168.1.157:8181/restconf/operational/opendaylight-inventory:nodes

2.1 获取节点信息:
http://127.0.0.1:8181/restconf/operational/opendaylight-inventory:nodes/node/openflow:1
2.2 获取flow table 信息
2.2.1获取table统计信息
http://127.0.0.1:8181/restconf/operational/opendaylight-inventory:nodes/node/openflow:1/flow-node-inventory:table/0/opendaylight-flow-table-statistics:flow-table-statistics
2.2.2获取所有flow entry统计信息
http://127.0.0.1:8181/restconf/operational/opendaylight-inventory:nodes/node/openflow:1/flow-node-inventory:table/0/opendaylight-flow-statistics:aggregate-flow-statistics
2.2.3获取单条flow entry信息

2.5.1添加一条流表
在Postman中通过config方式下发flow entry的方法:
With XML:
首先输入Headers:
Content-Type: application/xml
Accept: application/xml
Authorization: Basic
在URL地址栏中输入以下命令:
http://127.0.0.1:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:3/table/0/flow/1
(注意:如果是下发多条flow entry每次下发需要更改flow id的值,相应的URL地址中的table/0/flow/1中的1就是所对应的flow id,也需要修改。)

Use Body:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<flow xmlns="urn:opendaylight:flow:inventory">
 <match>
        <ethernet-match>
            <ethernet-type>
                <type>2048</type>
            </ethernet-type>
        </ethernet-match>
        <ipv4-destination>10.0.0.1/24</ipv4-destination>
    </match>
    <instructions>
        <instruction>
            <order>0</order>
            <apply-actions>
                <action>
                    <order>0</order>
                    <dec-nw-ttl/>
                </action>
            </apply-actions>
        </instruction>
    </instructions>
    <table_id>0</table_id>
    <id>1</id>
    <hard-timeout>12</hard-timeout>
    <cookie>1</cookie>
    <idle-timeout>34</idle-timeout>
    <flow-name>lihao</flow-name>
    <priority>1</priority>
</flow>

提交方式:PUT

在OVS中查看添加的流表项:
sudo ovs-ofctl dump-flows s3

未看到添加的流表项。
With JSON:
首先输入Headers:
Content-Type: application/json
Accept: application/json
Authorization: [方法如上]
在URL地址栏中输入以下命令:
http://127.0.0.1:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:4/table/0/flow/1 (注意:如果是下发多条flow entry每次下发需要更改flow id的值,相应的URL地址中的table/0/flow/1中的1就是所对应的flow id,也需要修改。)
提交方式:PUT

ovs-ofctl dump-flows s1 -O OpenFlow13
在ovs中也看不到添加的流表项。
在Postman中通过RPC方式下发flow entry的方法:
与通过config操作流表不同的是,通过rpc方式操作流表,只需要交换机的id即可,即openflow:1。flow name和flow id都不需要。
With XML:
在URL地址栏中输入以下命令:
http://127.0.0.1:8181/restconf/operations/sal-flow:add-flow
提交方式: POST

Content:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<input xmlns="urn:opendaylight:flow:service">
   <node xmlns:inv="urn:opendaylight:inventory">/inv:nodes/inv:node[inv:id="openflow:1"]</node>
   <cookie>1</cookie>
   <flags>SEND_FLOW_REM</flags>
   <hard-timeout>0</hard-timeout>
   <idle-timeout>0</idle-timeout>
   <installHw>false</installHw>
   <match>
    <ethernet-match>
     <ethernet-type>
       <type>2048</type>
     </ethernet-type>
    </ethernet-match>
    <ipv4-destination>10.0.0.1/24</ipv4-destination>
   </match>
   <instructions>
    <instruction>
     <order>0</order>
     <apply-actions>
       <action>
         <output-action>
           <output-node-connector>openflow:1:2</output-node-connector>
         </output-action>
         <order>0</order>
       </action>
     </apply-actions>
    </instruction>
   </instructions>
   <priority>1</priority>
   <strict>false</strict>
   <table_id>0</table_id>
</input>

以上下发的流表都为cookie为1,tableid为0,优先级为1,match字段为匹配目的IP地址10.0.0.1,action为output-action,即2口输出。

添加失败!
2.5.2修改一条流表

参考:
http://www.sdnlab.com/15173.html

  • 1
    点赞
  • 4
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值