OpenFlow Plugin Project User Guide(1)
1.Overview
2.Architecture and Design
Functionality Design
3.Running the controller with the new OpenFlow Plugin
How to start
How enable topology
Enable RESTCONF and Controller GUI
Overview
OpenFlow plugin project is to develop a plugin to implement the OpenFlow specification. It is based on Model Driven Service Abstraction Layer (MD-SAL) architecture.
Architecture and Design
Functionality
- Connection Handling
- Session Management
- State Management.
- Error Handling.
- Mapping function(Infrastructure to OF structures).
- Connection establishment will be handled by OpenFlow library using opensource netty.io library.
- Message handling(Ex: Packet in).
- Event handling and propagation to upper layers.
- Plugin will support both MD-SAL and Hard SAL.
- Will be backward compatible with OF 1.0.
- 连接处理
- 会话管理
- 状态管理。
- 错误处理。
- 映射功能(基础结构到OF结构)。
- 连接建立将由OpenFlow库使用opensource netty.io库来处理。
- 消息处理(例如:Packet in)。
- 事件处理和传播到上层。
- 插件将支持MD-SAL和Hard SAL。
- 将向后兼容OF 1.0。
Design
Overall Architecture
在Controller里的OpenFlow Plugin:
拓扑服务
流服务
统计服务
包处理
错误处理
连接和会话处理
状态处理和
拓扑服务
流服务
统计服务
包处理
错误处理
连接和会话处理
状态处理和
OpenFlow Plugin与MD-SAL和OF protocol library相连。后者对OpenFlow switch负责。
Running the controller with the new OpenFlow Plugin
How to start
最常用的features:
- odl-openflowplugin-app-lldp-speaker-li
- odl-openflowplugin-flow-services-rest-li
- odl-openflowplugin-drop-test-li
The Li-southbound currently provides:
- flow management
- group management
- meter management
- statistics polling
In case topology is required then the first one should be installed.
feature:install odl-openflowplugin-app-lldp-speaker-li
In order to see really low level messages enter these in karaf console:
log:set TRACE org.opendaylight.openflowplugin.openflow.md.core
log:set TRACE org.opendaylight.openflowplugin.impl
How enable topology
为了使拓扑服务工作,需要有LLDP相应传输给Controller。拓扑服务是指把links输入到dataStore或operational里。此时需要有table-miss-entries, 它是一个在flow table里id为0, match为空,output action为send to controller的flow。每个安装了这个flow的node都会可以收集并输出nodes之间的links到dataStore/operational。for example l2 switch application.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<flow xmlns="urn:opendaylight:flow:inventory">
<barrier>false</barrier>
<cookie>54</cookie>
<flags>SEND_FLOW_REM</flags>
<flow-name>FooXf54</flow-name>
<hard-timeout>0</hard-timeout>
<id>4242</id>
<idle-timeout>0</idle-timeout>
<installHw>false</installHw>
<instructions>
<instruction>
<apply-actions>
<action>
<output-action>
<max-length>65535</max-length>
<output-node-connector>CONTROLLER</output-node-connector>
</output-action>
<order>0</order>
</action>
</apply-actions>
<order>0</order>
</instruction>
</instructions>
<match/>
<priority>0</priority>
<strict>false</strict>
<table_id>0</table_id>
</flow>
Enable RESTCONF and Controller GUI
If you want to use RESTCONF with openflowplugin project, you have to install odl-restconf feature to enable that. To install odl-restconf feature run the following command
karaf#>feature:install odl-restconf
If you want to access the Controller GUI, you have to install odl-dlux-core feature to enable that. Run following command to install it
karaf#>feature:install odl-dlux-core
Once you enable the feature, access the Controller GUI using following URL
http://<controller-ip>:8181/dlux/index.html
评论
发表评论