Documentation outline for of-config. 26/34726/5
authorhu.rui <hu.rui2@zte.com.cn>
Tue, 16 Feb 2016 01:03:34 +0000 (09:03 +0800)
committer肖锋钢10072566 <xiao.fenggang@zte.com.cn>
Fri, 22 Jul 2016 13:42:29 +0000 (21:42 +0800)
Update by freeinggo.

Change-Id: I2326bdbc9c3fa4e63eb78b0f4889e9d4920089bc
Signed-off-by: hu.rui <hu.rui2@zte.com.cn>
manuals/developer-guide/src/main/asciidoc/bk-developers-guide.adoc
manuals/developer-guide/src/main/asciidoc/of-config/of-config-dev.adoc [new file with mode: 0755]
manuals/user-guide/src/main/asciidoc/bk-user-guide.adoc
manuals/user-guide/src/main/asciidoc/of-config/ofconfig-user.adoc [new file with mode: 0755]

index 4714cc5d73e6b2fdf37af98a4e96b3d9eebefc3c..ec82235032c7d6a1e483c59068cc82483a9adb31 100644 (file)
@@ -86,6 +86,8 @@ include::neutron/neutron.adoc[]
 
 include::sdninterfaceapp/odl-sdninterfaceapp-all-dev.adoc[]
 
+include::of-config/of-config-dev.adoc[]
+
 include::openflowjava/odl-openflowjava-protocol-dev.adoc[]
 
 include::openflowplugin/odl-ofp-developer-guide.adoc[]
diff --git a/manuals/developer-guide/src/main/asciidoc/of-config/of-config-dev.adoc b/manuals/developer-guide/src/main/asciidoc/of-config/of-config-dev.adoc
new file mode 100755 (executable)
index 0000000..32ca692
--- /dev/null
@@ -0,0 +1,119 @@
+== OF-CONFIG Developer Guide ==
+
+=== Overview ===
+OF-CONFIG defines an OpenFlow switch as an abstraction called an
+OpenFlow Logical Switch. The OF-CONFIG protocol enables configuration of
+essential artifacts of an OpenFlow Logical Switch so that an OpenFlow
+controller can communicate and control the OpenFlow Logical switch via
+the OpenFlow protocol. OF-CONFIG introduces an operating context for one
+or more OpenFlow data paths called an OpenFlow Capable Switch for one or
+more switches. An OpenFlow Capable Switch is intended to be equivalent
+to an actual physical or virtual network element (e.g. an Ethernet
+switch) which is hosting one or more OpenFlow data paths by partitioning
+a set of OpenFlow related resources such as ports and queues among the
+hosted OpenFlow data paths. The OF-CONFIG protocol enables dynamic
+association of the OpenFlow related resources of an OpenFlow Capable
+Switch with specific OpenFlow Logical Switches which are being hosted on
+the OpenFlow Capable Switch. OF-CONFIG does not specify or report how
+the partitioning of resources on an OpenFlow Capable Switch is achieved.
+OF-CONFIG assumes that resources such as ports and queues are
+partitioned amongst multiple OpenFlow Logical Switches such that each
+OpenFlow Logical Switch can assume full control over the resources that
+is assigned to it.
+
+=== How to start ===
+
+- start OF-CONFIG feature as below:
++
+ feature:install odl-of-config-all
+
+=== Compatible with NETCONF ===
+
+- Config OpenFlow Capable Switch via OpenFlow Configuration Points
++
+Method: POST
++
+URI: http://localhost:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/controller-config/yang-ext:mount/config:modules
++
+Headers: Content-Type" and "Accept" header attributes set to application/xml
++
+Payload:
++
+[source, xml]
+----
+<module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+  <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">prefix:sal-netconf-connector</type>
+  <name>testtool</name>
+  <address xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">10.74.151.67</address>
+  <port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">830</port>
+  <username xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">mininet</username>
+  <password xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">mininet</password>
+  <tcp-only xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">false</tcp-only>
+  <event-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-event-executor</type>
+    <name>global-event-executor</name>
+  </event-executor>
+  <binding-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-broker-osgi-registry</type>
+    <name>binding-osgi-broker</name>
+  </binding-registry>
+  <dom-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry</type>
+    <name>dom-broker</name>
+  </dom-registry>
+  <client-dispatcher xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf">prefix:netconf-client-dispatcher</type>
+    <name>global-netconf-dispatcher</name>
+  </client-dispatcher>
+  <processing-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">
+    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:threadpool</type>
+    <name>global-netconf-processing-executor</name>
+  </processing-executor>
+</module>
+----
+
+- NETCONF establishes the connections with OpenFlow Capable Switches using
+the parameters in the previous step. NETCONF also gets the
+information of whether the OpenFlow Switch supports NETCONF during the signal handshaking.
+The information will be stored in the NETCONF topology as prosperity of a node.
+
+- OF-CONFIG can be aware of the switches accessing and leaving
+by monitoring the data changes in the NETCONF topology. For the detailed
+information it can be refered to the link:https://git.opendaylight.org/gerrit/gitweb?p=of-config.git;a=blob_plain;f=southbound/southbound-impl/src/main/java/org/opendaylight/ofconfig/southbound/impl/OdlOfconfigApiServiceImpl.java;hb=refs/heads/stable/boron[implementation].
+
+=== The establishment of OF-CONFIG topology ===
+
+Firstly, OF-CONFIG will check whether the newly accessed switch supports
+OF-CONFIG by querying the NETCONF interface.
+
+. During the NETCONF connection's establishment, the NETCONF and the
+switches will exchange the their capabilities via the "hello" message.
+
+. OF-CONFIG gets the connection information between the NETCONF and
+switches by monitoring the data changes via the interface of
+DataChangeListener.
+
+. After the NETCONF connection established, the OF-CONFIG module will
+check whether OF-CONFIG capability is in the switch's capabilities list
+which is got in step 1.
+
+. If the result of step 3 is yes, the OF-CONFIG will call the
+following processing steps to create the topology database.
+
+
+For the detailed information it can be referred to the link:https://git.opendaylight.org/gerrit/gitweb?p=of-config.git;a=blob_plain;f=southbound/southbound-impl/src/main/java/org/opendaylight/ofconfig/southbound/impl/listener/OfconfigListenerHelper.java;hb=refs/heads/stable/boron[implementation].
+
+Secondly, the capable switch node and logical switch node are added in
+the OF-CONFIG topology if the switch supports OF-CONFIG.
+
+OF-CONFIG's topology compromise: Capable Switch topology (underlay) and
+logical Switch topology (overlay). Both of them are enhanced (augment) on
+
+/topo:network-topology/topo:topology/topo:node
+
+The NETCONF will add the nodes in the Topology via the path
+of "/topo:network-topology/topo:topology/topo:node" if it gets the
+configuration information of the switches.
+
+For the detailed information it can be referred to the link:https://git.opendaylight.org/gerrit/gitweb?p=of-config.git;a=blob;f=southbound/southbound-api/src/main/yang/odl-ofconfig-topology.yang;h=dbdaec46ee59da3791386011f571d7434dd1e416;hb=refs/heads/stable/boron[implementation].
+
index 4d055c73d5a4b469eeb57a58cf42a55af1b9df1a..cd07c09cc4e588167acdd0c56589732cbacfc5f5 100644 (file)
@@ -65,6 +65,8 @@ include::ocpplugin/ocp-user-guide.adoc[OCP]
 
 include::sdninterfaceapp/odl-sdninterfaceapp-all-user.adoc[ODL-SDNi]
 
+include::of-config/ofconfig-user.adoc[OF-CONFIG]
+
 include::openflowplugin/odl-ofp-user-guide.adoc[OpenFlow Plugin]
 
 include::opflex/agent-ovs-user.adoc[]
diff --git a/manuals/user-guide/src/main/asciidoc/of-config/ofconfig-user.adoc b/manuals/user-guide/src/main/asciidoc/of-config/ofconfig-user.adoc
new file mode 100755 (executable)
index 0000000..c92e8e4
--- /dev/null
@@ -0,0 +1,69 @@
+== OF-CONFIG User Guide ==
+
+=== Overview ===
+OF-CONFIG defines an OpenFlow switch as an abstraction called an
+OpenFlow Logical Switch. The OF-CONFIG protocol enables configuration of
+essential artifacts of an OpenFlow Logical Switch so that an OpenFlow
+controller can communicate and control the OpenFlow Logical switch via
+the OpenFlow protocol. OF-CONFIG introduces an operating context for one
+or more OpenFlow data paths called an OpenFlow Capable Switch for one or
+more switches. An OpenFlow Capable Switch is intended to be equivalent
+to an actual physical or virtual network element (e.g. an Ethernet
+switch) which is hosting one or more OpenFlow data paths by partitioning
+a set of OpenFlow related resources such as ports and queues among the
+hosted OpenFlow data paths. The OF-CONFIG protocol enables dynamic
+association of the OpenFlow related resources of an OpenFlow Capable
+Switch with specific OpenFlow Logical Switches which are being hosted on
+the OpenFlow Capable Switch. OF-CONFIG does not specify or report how
+the partitioning of resources on an OpenFlow Capable Switch is achieved.
+OF-CONFIG assumes that resources such as ports and queues are
+partitioned amongst multiple OpenFlow Logical Switches such that each
+OpenFlow Logical Switch can assume full control over the resources that
+is assigned to it.
+
+=== How to start ===
+- start OF-CONFIG feature as below:
++
+ feature:install odl-of-config-all
+
+=== Configuration on the OVS supporting OF-CONFIG ===
+
+NOTE: OVS is not supported by OF-CONFIG temporarily because
+the OpenDaylight version of OF-CONFIG is 1.2 while the OVS version of OF-CONFIG is not standard.
+
+The introduction of configuring the OVS can be referred to:
+
+_https://github.com/openvswitch/of-config._
+
+=== Connection Establishment between the Capable/Logical Switch and OF-CONFIG ===
+
+The OF-CONFIG protocol is based on NETCONF. So the
+switches supporting OF-CONFIG can also access OpenDaylight
+using the functions provided by NETCONF. This is the
+preparation step before connecting to OF-CONFIG. How to access the
+switch to OpenDaylight using the NETCONF can be referred
+to the <<_southbound_netconf_connector,NETCONF Southbound User Guide>> or
+https://wiki.opendaylight.org/view/OpenDaylight_Controller:Config:Examples:Netconf[NETCONF Southbound examples on the wiki].
+
+Now the switches supporting OF-CONFIG and they have connected to the
+controller using NETCONF as described in preparation phase.
+OF-CONFIG can check whether the switch can support OF-CONFIG by
+reading the capability list in NETCONF.
+
+The OF-CONFIG will get the information of the capable switch and logical
+switch via the NETCONF connection, and creates separate topologies for
+the capable and logical switches in the OpenDaylight Topology module.
+
+The Connection between the capable/logical switches and OF-CONFIG is
+finished.
+
+=== Configuration On Capable Switch ===
+Here is an example showing how to make the configuration to
+modify-controller-connection on the capable switch using OF-CONFIG.
+Other configurations can follow the same way of the example.
+
+- Example: modify-controller-connection
+
+NOTE: this configuration can execute via the NETCONF, which can be
+referred to the <<_southbound_netconf_connector,NETCONF Southbound User Guide>> or
+https://wiki.opendaylight.org/view/OpenDaylight_Controller:Config:Examples:Netconf[NETCONF Southbound examples on the wiki].