First complete pass over the developer guide 89/23489/1
authorColin Dixon <colin@colindixon.com>
Sun, 28 Jun 2015 02:36:27 +0000 (22:36 -0400)
committerColin Dixon <colin@colindixon.com>
Sun, 28 Jun 2015 03:02:14 +0000 (23:02 -0400)
* Alphabetized chapters
* Fixed minor formatting isssues
* Removed TODOs, TBDs, and TBAs
* Common errors around Openflow vs. OpenFlow, Openstack vs. OpenStack
  and the like.

Change-Id: I296f55549d4ec6c9756b30a49319e43a326cd4be
Signed-off-by: Colin Dixon <colin@colindixon.com>
22 files changed:
manuals/developer-guide/src/main/asciidoc/bk-developers-guide.adoc
manuals/developer-guide/src/main/asciidoc/controller/config-initial.adoc
manuals/developer-guide/src/main/asciidoc/controller/config-logback.adoc
manuals/developer-guide/src/main/asciidoc/controller/config-threadpool.adoc
manuals/developer-guide/src/main/asciidoc/controller/controller.adoc
manuals/developer-guide/src/main/asciidoc/controller/md-sal-faq.adoc
manuals/developer-guide/src/main/asciidoc/controller/restconf.adoc
manuals/developer-guide/src/main/asciidoc/core/odl-controller-controller-overview.adoc
manuals/developer-guide/src/main/asciidoc/core/using_mininet.adoc
manuals/developer-guide/src/main/asciidoc/didm/didm-dev.adoc
manuals/developer-guide/src/main/asciidoc/lacp/lacp-dev.adoc
manuals/developer-guide/src/main/asciidoc/neutron/neutron.adoc
manuals/developer-guide/src/main/asciidoc/odl-controller-controller-overview.adoc
manuals/developer-guide/src/main/asciidoc/openflowjava/odl-openflowjava-protocol-dev.adoc
manuals/developer-guide/src/main/asciidoc/ovsdb/ovsdb-developer.adoc
manuals/developer-guide/src/main/asciidoc/packetcable/packetcable-dev.adoc
manuals/developer-guide/src/main/asciidoc/sfc/sfc.adoc
manuals/developer-guide/src/main/asciidoc/sxp/odl-sxp-dev.adoc
manuals/developer-guide/src/main/asciidoc/topoprocessing/odl-topoprocessing-framework-dev.adoc
manuals/developer-guide/src/main/asciidoc/ttp/ttp-model-dev.adoc
manuals/developer-guide/src/main/asciidoc/vtn/OpenStack_Support-dev.adoc
manuals/developer-guide/src/main/asciidoc/vtn/vtn-overview.adoc

index 629888bf902247cc69b5300f6be794a494c12980..93cd74bfe2fd9ef035f758c7393bc71ec3f2eab4 100644 (file)
@@ -52,43 +52,48 @@ include::section_Hacking_from_CLI.adoc[]
 
 include::alto/alto-developer-guide.adoc[ALTO]
 
-include::controller/controller.adoc[Controller]
-
 include::bgpcep/odl-bgpcep-bgp-all-dev.adoc[BGP]
 
-include::bgpcep/odl-bgpcep-pcep-all-dev.adoc[PCEP]
-
 include::capwap/capwap-dev.adoc[CAPWAP]
 
+include::controller/controller.adoc[Controller]
+
+include::didm/didm-dev.adoc[]
+
 include::dlux/dlux-core-dev.adoc[]
 
 include::iotdm/iotdm-dev.adoc[]
 
-include::lacp/lacp-dev.adoc[]
-
 include::l2switch/l2switch-dev.adoc[]
 
+include::lacp/lacp-dev.adoc[]
+
 include::nic/nic-dev.adoc[]
 
 include::neutron/neutron.adoc[]
 
+include::sdninterfaceapp/odl-sdninterfaceapp-all-dev.adoc[]
+
 include::openflowjava/odl-openflowjava-protocol-dev.adoc[]
 
-include::opflex/libopflex-dev.adoc[]
+include::opflex/agent-ovs-dev.adoc[]
 
 include::opflex/genie-dev.adoc[]
 
-include::opflex/agent-ovs-dev.adoc[]
+include::opflex/libopflex-dev.adoc[]
 
 include::ovsdb/ovsdb-developer.adoc[]
 
+include::bgpcep/odl-bgpcep-pcep-all-dev.adoc[PCEP]
+
 include::packetcable/packetcable-dev.adoc[Packet Cable PCMM Southbound Plugin]
 
-include::reservation/reservation-dev.adoc[]
+// commenting this out as it contains no content
+//include::reservation/reservation-dev.adoc[]
 
 include::sfc/sfc.adoc[]
 
-include::sdninterfaceapp/odl-sdninterfaceapp-all-dev.adoc[]
+include::sxp/odl-sxp-dev.adoc[]
 
 include::tcpmd5/odl-tcpmd5-all-dev.adoc[TCP-MD5]
 
@@ -100,12 +105,8 @@ include::ttp/ttp-cli-tools-dev.adoc[]
 
 include::usc/odl-usc-channel-dev.adoc[]
 
-include::didm/didm-dev.adoc[]
-
 include::vtn/vtn-dev.adoc[]
 
-include::sxp/odl-sxp-dev.adoc[]
-
 :numbered!:
 
 ///////
index 1664316f8d8e5633f6bca66f99758211cfab1bd7..2f768ed5e2bddfa6920e07df8f3be55d09dc01a3 100644 (file)
@@ -27,7 +27,7 @@ Various parts of the system that are not under the configuration subsystem use t
 |===
 
 |Setting | Description
-| yangstore.blacklist=.\*controller.model.* | This regular expression (can be OR-ed using pipe character) tells netconf to exclude the yang files found in the matching bundle symbolic name from the hello message. This is helpful when dealing with a netconf client that has parsing problems.
+| yangstore.blacklist=.\*controller.model.* | This regular expression (can be OR-ed using pipe character) tells NETCONF to exclude the yang files found in the matching bundle symbolic name from the hello message. This is helpful when dealing with a NETCONF client that has parsing problems.
 | netconf.config.persister.* settings  | See '_opendaylight_controller_configuration_initial'.
 | netconf.tcp.address=0.0.0.0 netconf.tcp.port=8383 +
 
@@ -441,7 +441,7 @@ As a part of the configuration subsystem, the purpose of the persister is to sav
 
 ===== Persister implementation
 
-Configuration persister implementation is part of the Controller Netconf. PersisterAggregator class is the implementation of the Presister interface. The functionality is delegated to the storage adapters. Storage adapters are low level persisters that do the heavy lifting for this class. Instances of storage adapters can be injected directly by means of the constructor, or instantiated from a full name of its class provided in a properties file. There can be many persisters configured, and varying numbers of them can be used.
+Configuration persister implementation is part of the Controller NETCONF. PersisterAggregator class is the implementation of the Presister interface. The functionality is delegated to the storage adapters. Storage adapters are low level persisters that do the heavy lifting for this class. Instances of storage adapters can be injected directly by means of the constructor, or instantiated from a full name of its class provided in a properties file. There can be many persisters configured, and varying numbers of them can be used.
 
 *Example of presisters configuration:* +
 ----
index b37a1aed99045be1a094b4d67fd4bb79cd4ae973..b6a902ba135b92ed9f9af9c54e8dc9d977ce4c5a 100644 (file)
@@ -237,7 +237,7 @@ Now, the runtime bean status attribute will be empty:
     }
 }
 ----
-==== Logback configuration: Netconf
+==== Logback configuration: NETCONF
 
 In this case, NETCONF RPCs are used to configure logback. The Netconf server listens at port 8383. To communicate over TCP, telnet is used. More about NETCONF is available at: http://tools.ietf.org/html/rfc6241. Netconf implementation is a part of the Controller - netconf-subsystem. The RPCs of Netconf are XML, and the operations are mapped to JMX operations.
 * A server re-start is required. The procedure is the same as above.
index d31104c18a3386ec67df335a91e161c4882454ff..1606ff35d3aab3e23a031f75fa610a212ad8dd01 100644 (file)
@@ -135,7 +135,7 @@ The response containing the current configuration: +
        <commit/>
 </rpc>]]>]]>
 ----
-The Netconf endpoint should respond with ok to edit-config, as well as the commit message: +
+The NETCONF endpoint should respond with ok to edit-config, as well as the commit message: +
 
 ----
 <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="101">
index 8bcbd57c216f4b25f328d510d6eab35ca2dfc7b4..30155e94d41cd5e7ebc3e12034dfbf53573c3323 100644 (file)
@@ -1,4 +1,4 @@
-== OpenDaylight Controller
+== Controller
 
 === Overview ===
 
index 1b78133e9bbce85a09d82570812f91f159624fb1..8143dbf66c2a026f25c4cf0129bb2f09561a8c4a 100644 (file)
@@ -266,4 +266,4 @@ However, if you want to, you can create your own REST API (for example, to be
 *Q-10: How can one use RESTCONF to access the MD-SAL datastore?*
 
 *A-10:* For information on accessing the MD-SAL datastore, see
-https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:Restconf[MD-SAL Restconf].
+https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:Restconf[MD-SAL RESTCONF].
index 1136822680d3c9d07a2b6628b6f05f219ab1ceb6..ec07e1d5b8a192f12b45f6a5262c9eeb9633b9c8 100644 (file)
@@ -1,17 +1,17 @@
-=== OpenDaylight Controller MD-SAL: Restconf
+=== OpenDaylight Controller MD-SAL: RESTCONF
 
-==== Restconf operations overview
+==== RESCONF operations overview
 
-Restconf allows access to datastores in the controller. +
+RESTCONF allows access to datastores in the controller. +
 There are two datastores: +
 
 * Config: Contains data inserted via controller
 * Operational: Contains other data
 
 NOTE: Each request must start with the URI /restconf. +
-Restconf listens on port 8080 for HTTP requests.
+RESTCONF listens on port 8080 for HTTP requests.
 
-Restconf supports *OPTIONS*, *GET*, *PUT*, *POST*, and *DELETE* operations. Request and response data can either be in the XML or JSON format. XML structures according to yang are defined at: http://tools.ietf.org/html/rfc6020[XML-YANG]. JSON structures are defined at: http://tools.ietf.org/html/draft-lhotka-netmod-yang-json-02[JSON-YANG]. Data in the request must have a correctly set *Content-Type* field in the http header with the allowed value of the media type. The media type of the requested data has to be set in the *Accept* field. Get the media types for each resource by calling the OPTIONS operation.
+RESTCONF supports *OPTIONS*, *GET*, *PUT*, *POST*, and *DELETE* operations. Request and response data can either be in the XML or JSON format. XML structures according to yang are defined at: http://tools.ietf.org/html/rfc6020[XML-YANG]. JSON structures are defined at: http://tools.ietf.org/html/draft-lhotka-netmod-yang-json-02[JSON-YANG]. Data in the request must have a correctly set *Content-Type* field in the http header with the allowed value of the media type. The media type of the requested data has to be set in the *Accept* field. Get the media types for each resource by calling the OPTIONS operation.
 Most of the paths of the pathsRestconf endpoints use https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:Concepts#Instance_Identifier[Instance Identifier]. +<identifier>+ is used in the explanation of the operations.
 
 *<identifier>* +
@@ -20,11 +20,11 @@ Most of the paths of the pathsRestconf endpoints use https://wiki.opendaylight.o
 * <nodeName> can represent a data node which is a list or container yang built-in type. If the data node is a list, there must be defined keys of the list behind the data node name for example, <nodeName>/<valueOfKey1>/<valueOfKey2>.
 * The format <moduleName>:<nodeName> has to be used in this case as well: +
 Module A has node A1. Module B augments node A1 by adding node X. Module C augments node A1 by adding node X. For clarity, it has to be known which node is X (for example: C:X).
-For more details about encoding, see: http://tools.ietf.org/html/draft-bierman-netconf-restconf-02#section-5.3.1[Restconf 02 - Encoding YANG Instance Identifiers in the Request URI.]
+For more details about encoding, see: http://tools.ietf.org/html/draft-bierman-netconf-restconf-02#section-5.3.1[RESTCONF 02 - Encoding YANG Instance Identifiers in the Request URI.]
 
 ==== Mount point
 A Node can be behind a mount point. In this case, the URI has to be in format <identifier>/*yang-ext:mount*/<identifier>. The first <identifier> is the path to a mount point and the second <identifier> is the path to a node behind the mount point. A URI can end in a mount point itself by using <identifier>/*yang-ext:mount*. +
-More information on how to actually use mountpoints is available at: https://wiki.opendaylight.org/view/OpenDaylight_Controller:Config:Examples:Netconf[ OpenDaylight Controller:Config:Examples:Netconf].
+More information on how to actually use mountpoints is available at: https://wiki.opendaylight.org/view/OpenDaylight_Controller:Config:Examples:Netconf[OpenDaylight Controller:Config:Examples:Netconf].
 
 ==== HTTP methods
 
@@ -144,10 +144,10 @@ NOTE: Even though this is a default for the toasterToastType value in the yang,
 * Removes the data node in the Config datastore and returns the state about success.
 * <identifier> points to a data node which must be removed.
 
-More information is available in the http://tools.ietf.org/html/draft-bierman-netconf-restconf-02[Restconf RFC].
+More information is available in the http://tools.ietf.org/html/draft-bierman-netconf-restconf-02[RESTCONF RFC].
 
-==== How Restconf works
-Restconf uses these base classes: +
+==== How RESTCONF works
+RESTCONF uses these base classes: +
 
 InstanceIdentifier:: Represents the path in the data tree
 ConsumerSession:: Used for invoking RPCs
@@ -167,7 +167,7 @@ Figure 1 shows the GET operation with URI restconf/config/M:N where M is the mod
 image::Get.png[width=500]
 
 . The requested URI is translated into the InstanceIdentifier which points to the data node. During this translation, the DataSchemaNode that conforms to the data node is obtained. If the data node is behind the mount point, the MountInstance is obtained as well.
-. Restconf asks for the value of the data node from DataBrokerService based on InstanceIdentifier.
+. RESTCONF asks for the value of the data node from DataBrokerService based on InstanceIdentifier.
 . DataBrokerService returns CompositeNode as data.
 . StructuredDataToXmlProvider or StructuredDataToJsonProvider is called based on the *Accept* field from the http request. These two providers can transform CompositeNode regarding DataSchemaNode to an XML or JSON document.
 . XML or JSON is returned as the answer on the request from the client.
@@ -183,7 +183,7 @@ image::Put.png[width=500]
 . Input data is sent to JsonToCompositeNodeProvider or XmlToCompositeNodeProvider. The correct provider is selected based on the Content-Type field from the http request. These two providers can transform input data to CompositeNode. However, this CompositeNode does not contain enough information for transactions.
 . The requested URI is translated into InstanceIdentifier which points to the data node. DataSchemaNode conforming to the data node is obtained during this translation. If the data node is behind the mount point, the MountInstance is obtained as well.
 . CompositeNode can be normalized by adding additional information from DataSchemaNode.
-. Restconf begins the transaction, and puts CompositeNode with InstanceIdentifier into it. The response on the request from the client is the status code which depends on the result from the transaction.
+. RESTCONF begins the transaction, and puts CompositeNode with InstanceIdentifier into it. The response on the request from the client is the status code which depends on the result from the transaction.
 
 
 // FIXME: Replace with coretutorials tutorial or point to openflow location
index 0bd376a63d6a2f40d2a1115bc7e5f4f94eb2c9ac..1fed2b1184f2b08ef5e84739b36d164238652eb4 100644 (file)
@@ -1,6 +1,6 @@
 == OpenDaylight controller overview\r
 \r
-The Open Daylight controller is a JVM software and can be run from any operating system and hardware as long as it supports Java. It is a implementation of the concept of Software Defined Network (SDN).\r
+The OpenDaylight controller is a JVM software and can be run from any operating system and hardware as long as it supports Java. It is a implementation of the concept of Software Defined Network (SDN).\r
 \r
 === Background to the emergence of SDN\r
 \r
@@ -24,7 +24,7 @@ SDN consists of a network applications layer on the top written to open API. The
 \r
 Central to the SDN effort is the controller which provides the ability to deploy software to control the network gear and redeploy as needed. The vision is to have a modular controller with a well published Northbound API for network applications to write towards while utilizing southbound protocols such as OpenFlow to communicate with supported downstream network nodes. The industry and end users will benefit immensely by having an OpenSource controller with contributions from various industry players.\r
 \r
-The Open Daylight controller supports not only the OpenFlow protocol but also other open protocols to allow communication with devices which have OpenFlow and/or respective agents. It also includes Northbound APIs to allow customer applications (software) to work with the controller in controlling the network. The customer applications cover a wide spectrum of solutions for solving customer needs across different vertical market segments.\r
+The OpenDaylight controller supports not only the OpenFlow protocol but also other open protocols to allow communication with devices which have OpenFlow and/or respective agents. It also includes Northbound APIs to allow customer applications (software) to work with the controller in controlling the network. The customer applications cover a wide spectrum of solutions for solving customer needs across different vertical market segments.\r
 \r
 The controller architecture supports both the hybrid switch model as well as the classical OpenFlow model of having a fully centralized control plane.\r
 \r
@@ -63,7 +63,7 @@ image::SAL.jpg[title="Framework of SAL", alt="Framework of SAL"]
 \r
 The OSGi framework allows dynamically linking plugins for the evolving southbound protocols. The SAL provides basic services such as device discovery which is used by modules like Topology Manager to build the topology and device capabilities. Services are constructed using the features exposed by the plugins (based on the presence of a plugin and capabilities of a network device). Based on the service request, the SAL maps to the appropriate plugin and uses the most appropriate southbound protocol to interact with a given network device. Each plugin is independent of others and is loosely coupled with the SAL.\r
 \r
-NOTE: The OpenFlow 1.0 plugin is currently provided with OpenDaylight and other plugins shown in the images are examples of the extensibility of the SAL framework. The SAL framework is included in the Open Daylight controller contribution.\r
+NOTE: The OpenFlow 1.0 plugin is currently provided with OpenDaylight and other plugins shown in the images are examples of the extensibility of the SAL framework. The SAL framework is included in the OpenDaylight controller contribution.\r
 \r
 === SAL architecture\r
 \r
@@ -207,11 +207,11 @@ The following are the OpenDaylight modules. See the relevant sections for an ove
 \r
 ** Statistics Manager\r
 \r
-* MD-SAL Netconf Connector (Southbound Netconf Plugin)\r
+* MD-SAL NETCONF Connector (Southbound NETCONF Plugin)\r
 \r
-* MD-SAL Restconf Connector (Northbound Restconf Plugin) - an infrastructure component that renders REST APIs for device/service models loaded into the controller\r
+* MD-SAL RESTCONF Connector (Northbound RESTCONF Plugin) - an infrastructure component that renders REST APIs for device/service models loaded into the controller\r
 \r
-* Config Subsystem - Netconf/Yang based framework for configuration, performance and fault management of controller infrastructure and plugins deployed into the controller\r
+* Config Subsystem - NETCONF/YANG based framework for configuration, performance and fault management of controller infrastructure and plugins deployed into the controller\r
 \r
 * NSF Adapters - Network Service Function Adapter that allow the MD-SAL based OF1.0/1.3 Plugin to talk with AS-SAL based Network Service Functions\r
 \r
index 35181535e94850687520db051900fcdf84e5e711..a26757ef137a7f5a77ebd84662eee11a5183c4ef 100644 (file)
@@ -93,7 +93,7 @@ $ sudo mn -c
 \r
 === Using the Simple Forwarding Application\r
 \r
-The OpenDaylight Controller includes an application called Simple Forwarding that lets you use the basic services for making forwarding decisions and install flows across all devices on the Openflow network. This application discovers the presence of a host via ARP message and installs dest-only /32 entries across all switches in the network, with the corresponding output ports toward the host.\r
+The OpenDaylight Controller includes an application called Simple Forwarding that lets you use the basic services for making forwarding decisions and install flows across all devices on the OpenFlow network. This application discovers the presence of a host via ARP message and installs dest-only /32 entries across all switches in the network, with the corresponding output ports toward the host.\r
 \r
 . With OpenDaylight Controller and Mininet running as described in previous sections, log into the web interface.\r
 \r
index 74a0bcf3fb1c8adc26459ab13e0b94a6ed1238e2..21e463add5a6bedbd3729548a39fea2f4b1a965e 100644 (file)
@@ -33,10 +33,10 @@ The DIDM project creates the infrastructure to support the following functions:
    support the APIs defined by the RPCs. There may be different Driver
    implementations for different device types.
 
-TODO: Add more info and diagram. 
-
-=== Key APIs and Interfaces
-TODO
-
-=== API Reference Documentation
-TODO: Provide links to JavaDoc, REST API documentation, etc.
+//TODO: Add more info and diagram. 
+//
+//=== Key APIs and Interfaces
+//TODO
+//
+//=== API Reference Documentation
+//TODO: Provide links to JavaDoc, REST API documentation, etc.
index cd8abcf904c226231e9e8fa4e5514bcbb0fa092a..81a5c1de8a02b29af974289d9c3b195ef47d2885 100644 (file)
@@ -35,7 +35,7 @@ switches using OpenFlow 1.3+ group table functionality.
 
 The LAG representing the aggregated multiple physical ports
 are realized in the OpenDaylight controlled switches by creating a
-group table entry (Group table supported from Openflow 1.3 onwards).
+group table entry (Group table supported from OpenFlow 1.3 onwards).
 The group table entry has a group type *Select* and action referring to
 the aggregated physical ports.
 Any data traffic to be sent out through the LAG can be sent
index 9632cdfbd331701dda5563f00108a47a5493a40b..7b7976f4633537064d9209eab1ab620d1e5000a0 100644 (file)
@@ -17,7 +17,7 @@ I*Aware interface defines a pair of calls (The general template
 is shown in the following table, please see javadoc of the specific interface
 for specific details)
 
-.Table I*Aware Methods
+.I*Aware Methods
 |===
 |Create |Update |Delete
 
index 0bd376a63d6a2f40d2a1115bc7e5f4f94eb2c9ac..8123077e2b4e96e968fd88ed8dedf09a1bb9f1bc 100644 (file)
@@ -1,6 +1,6 @@
 == OpenDaylight controller overview\r
 \r
-The Open Daylight controller is a JVM software and can be run from any operating system and hardware as long as it supports Java. It is a implementation of the concept of Software Defined Network (SDN).\r
+The OpenDaylight controller is a JVM software and can be run from any operating system and hardware as long as it supports Java. It is a implementation of the concept of Software Defined Network (SDN).\r
 \r
 === Background to the emergence of SDN\r
 \r
@@ -24,7 +24,7 @@ SDN consists of a network applications layer on the top written to open API. The
 \r
 Central to the SDN effort is the controller which provides the ability to deploy software to control the network gear and redeploy as needed. The vision is to have a modular controller with a well published Northbound API for network applications to write towards while utilizing southbound protocols such as OpenFlow to communicate with supported downstream network nodes. The industry and end users will benefit immensely by having an OpenSource controller with contributions from various industry players.\r
 \r
-The Open Daylight controller supports not only the OpenFlow protocol but also other open protocols to allow communication with devices which have OpenFlow and/or respective agents. It also includes Northbound APIs to allow customer applications (software) to work with the controller in controlling the network. The customer applications cover a wide spectrum of solutions for solving customer needs across different vertical market segments.\r
+The OpenDaylight controller supports not only the OpenFlow protocol but also other open protocols to allow communication with devices which have OpenFlow and/or respective agents. It also includes Northbound APIs to allow customer applications (software) to work with the controller in controlling the network. The customer applications cover a wide spectrum of solutions for solving customer needs across different vertical market segments.\r
 \r
 The controller architecture supports both the hybrid switch model as well as the classical OpenFlow model of having a fully centralized control plane.\r
 \r
@@ -63,7 +63,7 @@ image::SAL.jpg[title="Framework of SAL", alt="Framework of SAL"]
 \r
 The OSGi framework allows dynamically linking plugins for the evolving southbound protocols. The SAL provides basic services such as device discovery which is used by modules like Topology Manager to build the topology and device capabilities. Services are constructed using the features exposed by the plugins (based on the presence of a plugin and capabilities of a network device). Based on the service request, the SAL maps to the appropriate plugin and uses the most appropriate southbound protocol to interact with a given network device. Each plugin is independent of others and is loosely coupled with the SAL.\r
 \r
-NOTE: The OpenFlow 1.0 plugin is currently provided with OpenDaylight and other plugins shown in the images are examples of the extensibility of the SAL framework. The SAL framework is included in the Open Daylight controller contribution.\r
+NOTE: The OpenFlow 1.0 plugin is currently provided with OpenDaylight and other plugins shown in the images are examples of the extensibility of the SAL framework. The SAL framework is included in the OpenDaylight controller contribution.\r
 \r
 === SAL architecture\r
 \r
@@ -207,11 +207,11 @@ The following are the OpenDaylight modules. See the relevant sections for an ove
 \r
 ** Statistics Manager\r
 \r
-* MD-SAL Netconf Connector (Southbound Netconf Plugin)\r
+* MD-SAL NETCONF Connector (Southbound RESTCONF Plugin)\r
 \r
-* MD-SAL Restconf Connector (Northbound Restconf Plugin) - an infrastructure component that renders REST APIs for device/service models loaded into the controller\r
+* MD-SAL RESTCONF Connector (Northbound NETCONF Plugin) - an infrastructure component that renders REST APIs for device/service models loaded into the controller\r
 \r
-* Config Subsystem - Netconf/Yang based framework for configuration, performance and fault management of controller infrastructure and plugins deployed into the controller\r
+* Config Subsystem - NETCONF/YANG based framework for configuration, performance and fault management of controller infrastructure and plugins deployed into the controller\r
 \r
 * NSF Adapters - Network Service Function Adapter that allow the MD-SAL based OF1.0/1.3 Plugin to talk with AS-SAL based Network Service Functions\r
 \r
index c4a025c9ace46ea6f9c52cdff4cb48cc83dce2c3..ff4ed2463629c75973e6a33bff142ffbb3bacf45 100644 (file)
@@ -40,8 +40,8 @@ configured in openflowjava-config/src/main/resources/45-openflowjava-stats.xml
 Basic API / SPI classes are ConnectionAdapter (Rpc/notifications) and
 SwitchConnectionProcider (configure, start, shutdown)
 
-=== API Reference Documentation
-Provide links to JavaDoc, REST API documentation, etc.  [TBD]
+//=== API Reference Documentation
+//Provide links to JavaDoc, REST API documentation, etc.  [TBD]
 
 === Installation ===
 Pull the code and import project into your IDE.
@@ -208,7 +208,7 @@ and documented (e.g using MacAddress instead of byte array...)
 Creates channel processing pipeline based on configuration and support.
 
 .TCP Channel pipeline
-image::openflowjava/500px-TCPChannelPipeline.png["TCP Channel pipeline"]
+imageopenflowjava/500px-TCPChannelPipeline.png[width=500]
 
 .Switch Connection Provider
 Implementation of connection point for other projects. Library exposes its
@@ -353,7 +353,7 @@ fulfill the same role as in case of TCP connection / channel pipeline (please
 see above).
 
 .UDP Channel pipeline
-image::openflowjava/500px-UdpChannelPipeline.png["UDP Channel pipeline"]
+image::openflowjava/500px-UdpChannelPipeline.png[width=500]
 
 .UDP Handler
 
@@ -442,7 +442,7 @@ communication
 * [11] Plugin shutdowns the Library when desired
 
 .Library lifecycle
-image::openflowjava/Library_lifecycle.png["Library lifecycle"]
+image::openflowjava/Library_lifecycle.png[width=500]
 
 
 === Statistics collection
@@ -671,7 +671,7 @@ deserializers. For example +IntructionsDeserializer+ needs access to
 OFPIT_WRITE_ACTIONS/OFPIT_APPLY_ACTIONS instructions.
 
 .Deserialization scenario walkthrough
-image::openflowjava/800px-Extensibility.png["Deserialization scenario walkthrough"]
+image::openflowjava/800px-Extensibility.png[width=500]
 
 ==== Detailed walkthrough: Serialization extensibility
 .External interface & class description
@@ -725,7 +725,7 @@ For example IntructionsSerializer needs access to ActionsSerializer in order to
 be able to process OFPIT_WRITE_ACTIONS/OFPIT_APPLY_ACTIONS instructions.
 
 .Serialization scenario walkthrough
-image::openflowjava/800px-Extensibility2.png["Serialization scenario walkthrough"]
+image::openflowjava/800px-Extensibility2.png[width=500]
 
 ==== Internal description
 
@@ -765,7 +765,7 @@ Openflow v1.3. These extensions are registered under registration keys,
 that are shown in table below: 
 
 .*Deserialization*
-[options="header,footer"]
+[options="header",cols="20%,10%,40%,30%"]
 |========================================================================================================================================================
 |Extension type            |OpenFlow|Registration key                                                                 |Utility class
 |Vendor message            |1.0     |ExperimenterIdDeserializerKey(1, experimenterId, ExperimenterMessage.class)      |ExperimenterDeserializerKeyFactory
@@ -793,7 +793,7 @@ table below:
 
 
 .*Serialization*
-[options="header,footer"]
+[options="header",cols="20%,10%,40%,30%"]
 |=============================================================================================================================================================
 |Extension type            |OpenFlow|Registration key                                                                        |Utility class
 |Vendor message            |1.0     |ExperimenterIdSerializerKey<>(1, experimenterId, ExperimenterInput.class)               |ExperimenterSerializerKeyFactory
index 19a5f29c8657eeef13a06e5806d7bda85c302735..bb8955b05164be1cf05acc63744bf4c4db2b33d8 100644 (file)
@@ -1,4 +1,4 @@
 
-include::ovsdb-openstack-developer.adoc[]
-
 include::ovsdb-southbound-developer.adoc[]
+
+include::ovsdb-openstack-developer.adoc[]
index 7bc69bbde18e8ce8c54cdac96844fc0e4797e44d..e2297c2c32db04c9dc2604cdc8ed28751cb6a626 100644 (file)
@@ -24,7 +24,7 @@ specification. PacketCable solution is an MDSAL compliant component.
 [[packetcable-components]]
 === Packetcable Components
 
-packetcable is comprised of three OpendayLight bundles
+packetcable is comprised of three OpenDaylight bundles
 
 [options=="header"]
 |========================================================================
@@ -80,7 +80,8 @@ what kind of flows are interesting for use cases. Multicast?
 ===== flow_config_perf_pcmm.py
 
 For load testing there is this nice tool that could be repurpose to load
-test a CMTS. TODO: Adapt this script for load testing PCMM on a CMTS.
+test a CMTS. 
+//TODO: Adapt this script for load testing PCMM on a CMTS.
 
 [[yang-ide]]
 ==== Yang-IDE
@@ -312,21 +313,21 @@ OPTIONS
                 (defaults to )
 
 opendaylight-user@root> wrapper:install
-Creating file: /home/user/odl/distribution-karaf-0.2.0-Helium-RC0/bin/karaf-wrapper
-Creating file: /home/user/odl/distribution-karaf-0.2.0-Helium-RC0/bin/karaf-service
-Creating file: /home/user/odl/distribution-karaf-0.2.0-Helium-RC0/etc/karaf-wrapper.conf
-Creating file: /home/user/odl/distribution-karaf-0.2.0-Helium-RC0/lib/libwrapper.so
-Creating file: /home/user/odl/distribution-karaf-0.2.0-Helium-RC0/lib/karaf-wrapper.jar
-Creating file: /home/user/odl/distribution-karaf-0.2.0-Helium-RC0/lib/karaf-wrapper-main.jar
+Creating file: /home/user/odl/distribution-karaf-0.3.0-Lithium/bin/karaf-wrapper
+Creating file: /home/user/odl/distribution-karaf-0.3.0-Lithium/bin/karaf-service
+Creating file: /home/user/odl/distribution-karaf-0.3.0-Lithium/etc/karaf-wrapper.conf
+Creating file: /home/user/odl/distribution-karaf-0.3.0-Lithium/lib/libwrapper.so
+Creating file: /home/user/odl/distribution-karaf-0.3.0-Lithium/lib/karaf-wrapper.jar
+Creating file: /home/user/odl/distribution-karaf-0.3.0-Lithium/lib/karaf-wrapper-main.jar
 
 Setup complete.  You may wish to tweak the JVM properties in the wrapper configuration file:
-/home/user/odl/distribution-karaf-0.2.0-Helium-RC0/etc/karaf-wrapper.conf
+/home/user/odl/distribution-karaf-0.3.0-Lithium/etc/karaf-wrapper.conf
 before installing and starting the service.
 
 
 Ubuntu/Debian Linux system detected:
   To install the service:
-    $ ln -s /home/user/odl/distribution-karaf-0.2.0-Helium-RC0/bin/karaf-service /etc/init.d/
+    $ ln -s /home/user/odl/distribution-karaf-0.3.0-Lithium/bin/karaf-service /etc/init.d/
 
   To start the service when the machine is rebooted:
     $ update-rc.d karaf-service defaults
index 97c532ab8f3fd5a3e89b2ae91ad34709c4adeb0d..d5d3b2aee635606fdfd84aaf601b194f68f0d55d 100644 (file)
@@ -12,5 +12,6 @@ include::odl-sfc-load-balance-dev.adoc[Service Function Grouping and Load Balanc
 
 include::odl-sfc-sf-scheduler-dev.adoc[Service Function selection scheduler]
 
-include::odl-sfc-sf-monitoring-dev.adoc[Service Function Monitoring]
+// Commented out because it has no content
+//include::odl-sfc-sf-monitoring-dev.adoc[Service Function Monitoring]
 
index d37ea5d80fce19c38964ce7bd1d0f6cc44bcd3d1..ad59f4d51866c6b673c005245a306e78b5c943f1 100644 (file)
@@ -36,5 +36,5 @@ Contains data holders and entiies
 Main logic and core features
 
 === API Reference Documentation
-https://wiki.opendaylight.org/images/9/91/SXP_Restconf_Interface_and_Dynamic_Tree.pdf[Restconf Interface and Dynamic Tree]
+https://wiki.opendaylight.org/images/9/91/SXP_Restconf_Interface_and_Dynamic_Tree.pdf[RESTCONF Interface and Dynamic Tree]
 
index 334c381e03094772b507e1be6f3c2e6b5507ab4d..27ca2e40fe378f11f231ae24e188201a0a6cdcf4 100644 (file)
@@ -33,5 +33,5 @@ Basic Provider class is TopoProcessingProvider which provides startup and shutdo
 methods. Otherwise the framework communicates via requests and outputs stored 
 in DataStores.
 
-=== API Reference Documentation
-Provide links to JavaDoc, REST API documentation, etc. [TBD]
+//=== API Reference Documentation
+//Provide links to JavaDoc, REST API documentation, etc. [TBD]
index b38ec343ff04074a45c1248150ca457466dff3c8..084215be1404dd66502ab15d226f4a7f46812080 100644 (file)
@@ -33,7 +33,7 @@ APIs.
 
 ==== Java Bindings
 
-TODO: Provide a link to JavaDoc.
+//TODO: Provide a link to JavaDoc.
 
 As stated above there are 3 locations where a Table Type Pattern can be
 placed into the MD-SAL Data Store. They correspond to 3 different REST
@@ -468,7 +468,7 @@ image::ttp-screen2-applied-basic-auth.png[width=500]
 
 After clicking Refresh headers, we can see that a new header
 (+Authorization+) has been created and this will allow us to
-authenticate to make the rest call.
+authenticate to make the REST call.
 
 .PUTting a TTP
 image::ttp-screen3-sent-put.png[width=500]
index 9fc316cb57f80db6f464d0c52c07f9ebc3db9243..c908fd06fcc84373ac8a1f7ee9349c884fdf2c22 100644 (file)
@@ -43,7 +43,7 @@ It subscribes to the events from OVS and also implements the neutron requests re
 * Network and Sub-Network Create:
   Whenever a new sub network is created, VTN Manager will handle the same and create a vbridge under the VTN.
 * VM Creation in openstack:
- The interface mentioned as integration bridge in the configuration file, will be added with more interfaces on creation of  a new VM in OpenStack and network is provisioned for it by VTN neutron bundle. The addition of new PORT is captured by VTN Manager and it creates a vbridge interface with port mapping for the particular port.Now, when the VM starts to communicate with other VM's created, VTN Manger will install flows in the OVS and other openflow switches to facilitate communication between VM(s).
+ The interface mentioned as integration bridge in the configuration file, will be added with more interfaces on creation of  a new VM in OpenStack and network is provisioned for it by VTN neutron bundle. The addition of new PORT is captured by VTN Manager and it creates a vbridge interface with port mapping for the particular port.Now, when the VM starts to communicate with other VM's created, VTN Manger will install flows in the OVS and other OpenFlow switches to facilitate communication between VM(s).
 
 NOTE:
   To use this feature, VTN feature should be installed
index 3d3cc16d5b5b08e80605f9255987021b441d6f2a..fb0152d79a4a257453b099df0a63b15d17b093a1 100644 (file)
@@ -82,7 +82,7 @@ VTN Coordinator doesn't have Karaf features.
 For VTN Coordinator REST API, please refer: https://wiki.opendaylight.org/view/OpenDaylight_Virtual_Tenant_Network_%28VTN%29:VTN_Coordinator:RestApi
 
 ==== VTN Manager
-An OpenDaylight Controller Plugin that interacts with other modules to implement the components of the VTN model. It also provides a REST interface to configure VTN components in ODL controller. VTN Manager is implemented as one plugin to the OpenDaylight controller. This provides a REST interface to create/update/delete VTN components. The user command in VTN Coordinator is translated as REST API to VTN Manager by the ODC Driver component. In addition to the above mentioned role, it also provides an implementation to the Openstack L2 Network Functions API.
+An OpenDaylight Controller Plugin that interacts with other modules to implement the components of the VTN model. It also provides a REST interface to configure VTN components in ODL controller. VTN Manager is implemented as one plugin to the OpenDaylight controller. This provides a REST interface to create/update/delete VTN components. The user command in VTN Coordinator is translated as REST API to VTN Manager by the ODC Driver component. In addition to the above mentioned role, it also provides an implementation to the OpenStack L2 Network Functions API.
 
 ===== Function Outline
 
@@ -94,7 +94,7 @@ The table identifies the functions and the interface used by VTN Components:
 | VTN Manager |RESTful API | Configure VTN Virtualization model components in OpenDaylight
 | VTN Manager | Neutron API implementation | Handle Networks API from OpenStack (Neutron Interface)
 | VTN Coordinator | RESTful API |
-(1) Uses the Restful interface of VTN Manager and configures VTN Virtualization model components in OpenDaylight. +
+(1) Uses the RESTful interface of VTN Manager and configures VTN Virtualization model components in OpenDaylight. +
 (2) Handles multiple controller orchestration. +
 (3) Provides API to read the physical network details. See https://wiki.OpenDaylight.org/view/OpenDaylight_Virtual_Tenant_Network_(VTN):VTN_Coordinator:RestApi:L2_Network_Example_Using_VTN_Virtualization[samples] for usage.