-.. _openflow-protocol-library:
+.. _openflow-protocol-library-dev-guide:
OpenFlow Protocol Library Developer Guide
=========================================
+.. _vtn-dev-guide:
+
Virtual Tenant Network (VTN)
============================
- `L2 Network using Single
Controller <https://wiki.OpenDaylight.org/view/OpenDaylight_Virtual_Tenant_Network_(VTN):VTN_Coordinator:RestApi:How_to_configure_L2_Network_with_Single_Controller>`__
-
* Typing ``[cmd] --help`` will show help for a specific command.
* Press ``ctrl-d`` or type ``system:shutdown`` or ``logout`` to shutdown OpenDaylight.
+.. note:: Please take a look at the :ref:`security_deployment_recommendations`
+ and following sections under :ref:`security_considerations` if you're
+ planning on running OpenDaylight outside of an isolated test lab
+ environment.
+
Install the Karaf features
==========================
To install a feature, use the following command, where feature1 is the feature
* **Developer Guide(s):**
- * `developer guide <https://git.opendaylight.org/gerrit/gitweb?p=docs.git;a=blob;f=docs/developer-guide/openflow-protocol-library-developer-guide.rst;h=37a8fcd85f0a2111ae59a7e2e74d60cd3ce5e110;hb=refs/heads/master>`_
+ * :ref:`developer guide <openflow-protocol-library-dev-guide>`
Security Considerations
=======================
--- /dev/null
+====
+TSDR
+====
+
+
+Major Features
+==============
+The Time Series Data Repository (TSDR) project in OpenDaylight (ODL)
+creates a framework for collecting, storing, querying, and maintaining
+time series data.
+
+
+odl-tsdr-syslog-collector
+-------------------------
+* **Feature URL:** https://github.com/opendaylight/tsdr/blob/stable/carbon/features/features-tsdr/src/main/features/features.xml
+* **Feature Description:** Collect syslog data from the network.
+* **Top Level:** Yes
+* **User Facing:** Yes
+* **Experimental:** No
+* **CSIT Test:** https://jenkins.opendaylight.org/releng/view/tsdr/job/tsdr-csit-1node-hsqldb-datastore-all-carbon/
+
+odl-tsdr-netflow-collector
+--------------------------
+* **Feature URL:** https://github.com/opendaylight/tsdr/blob/stable/carbon/features/features-tsdr/src/main/features/features.xml
+* **Feature Description:** Collect netflow data from the network.
+* **Top Level:** Yes
+* **User Facing:** Yes
+* **Experimental:** No
+* **CSIT Test:** https://jenkins.opendaylight.org/releng/view/tsdr/job/tsdr-csit-1node-hsqldb-datastore-all-carbon/
+
+odl-tsdr-restconf-collector
+---------------------------
+* **Feature URL:** https://github.com/opendaylight/tsdr/blob/stable/carbon/features/features-tsdr/src/main/features/features.xml
+* **Feature Description:** Collect restconf web activities from the network.
+* **Top Level:** Yes
+* **User Facing:** Yes
+* **Experimental:** No
+* **CSIT Test:** https://jenkins.opendaylight.org/releng/view/tsdr/job/tsdr-csit-1node-hsqldb-datastore-all-carbon/
+
+odl-tsdr-controller-metrics-collector
+-------------------------------------
+* **Feature URL:** https://github.com/opendaylight/tsdr/blob/stable/carbon/features/features-tsdr/src/main/features/features.xml
+* **Feature Description:** Collect ODL controller metrics.
+* **Top Level:** Yes
+* **User Facing:** Yes
+* **Experimental:** No
+* **CSIT Test:** https://jenkins.opendaylight.org/releng/view/tsdr/job/tsdr-csit-1node-hsqldb-datastore-all-carbon/
+
+odl-tsdr-hsqldb
+----------------
+* **Feature URL:** https://github.com/opendaylight/tsdr/blob/stable/carbon/features/features-tsdr/src/main/features/features.xml
+* **Feature Description:** Store the collected data into hsqldb that is embedded in ODL controller.
+* **Top Level:** Yes
+* **User Facing:** Yes
+* **Experimental:** No
+* **CSIT Test:** https://jenkins.opendaylight.org/releng/view/tsdr/job/tsdr-csit-1node-hsqldb-datastore-all-carbon/
+
+odl-tsdr-hbase
+--------------
+* **Feature URL:** https://github.com/opendaylight/tsdr/blob/stable/carbon/features/features-tsdr/src/main/features/features.xml
+* **Feature Description:** Store the collected data into hbase data store.
+* **Top Level:** Yes
+* **User Facing:** Yes
+* **Experimental:** No
+* **CSIT Test:** https://jenkins.opendaylight.org/releng/view/tsdr/job/tsdr-csit-1node-hbase-datastore-all-carbon/
+
+odl-tsdr-cassandra
+------------------
+* **Feature URL:** https://github.com/opendaylight/tsdr/blob/stable/carbon/features/features-tsdr/src/main/features/features.xml
+* **Feature Description:** Store the collected data into cassandra data store.
+* **Top Level:** Yes
+* **User Facing:** Yes
+* **Experimental:** No
+* **CSIT Test:** https://jenkins.opendaylight.org/releng/view/tsdr/job/tsdr-csit-1node-cassandra-datastore-only-carbon/
+
+odl-tsdr-elasticsearch
+----------------------
+* **Feature URL:** https://github.com/opendaylight/tsdr/blob/stable/carbon/features/features-tsdr/src/main/features/features.xml
+* **Feature Description:** Store the collected data into ElasticSearch data store.
+* **Top Level:** Yes
+* **User Facing:** Yes
+* **Experimental:** No
+* **CSIT Test:** https://jenkins.opendaylight.org/releng/view/tsdr/job/tsdr-csit-1node-elasticsearch-datastore-only-carbon/
+
+
+Documentation
+=============
+
+Please provide the URL to each document at docs.opendaylight.org. If the document is under review, provide a link to the change in Gerrit.
+
+* **Installation Guide(s):**
+
+ * :ref:`TSDR Installation Guide <tsdr-install-guide>`
+
+* **User Guide(s):**
+
+ * :ref:`TSDR User Guide <tsdr-user-guide>`
+
+* **Developer Guide(s):**
+ * N/A
+
+
+Security Considerations
+=======================
+
+* TSDR northbound query supports authentication and authorization using AAA features.
+* Since ODL OpenFlow Plugin supports TLS, the OpenFlow Stats data transported from OpenFlow enabled appliances to ODL will be encrypted when TLS is enabled.
+* Syslog, NetFlow, and RestConf collectors do not support encryption at this moment.
+
+Quality Assurance
+=================
+
+* `Link to Sonar Report <https://sonar.opendaylight.org/overview?id=31699>`_ 76.9%
+* `Link to CSIT Jobs <https://jenkins.opendaylight.org/releng/view/tsdr/job/tsdr-csit-1node-hbase-datastore-all-carbon/>`_
+* `Other manual testing and QA information <https://wiki.opendaylight.org/view/TSDR_Carbon_:TSDR_Integration_System_Test/>`_
+* Testing methodology. How extensive was it? What should be expected to work? What hasn't been tested as much?
+
+ * Relying on automation for regression on features carried over from previous releases. Manual testing on new features with test report.
+
+Migration
+---------
+
+* Is it possible migrate from the previous release? If so, how?
+
+ * Yes, since there's no change of features from the previous releases.
+
+Compatiblity
+------------
+
+* Is this release compatible with the previous release?
+ Yes.
+
+* Any API changes?
+ No.
+
+* Any configuration changes?
+ No.
+
+Bugs Fixed
+----------
+
+* List of bugs fixed since the previous release
+
+Known Issues
+------------
+
+* List key known issues with workarounds
+
+End-of-life
+===========
+
+* List of features/APIs which are EOLed, deprecated, and/or removed in this release
+
+ * SNMP data collector was removed.
+
+Standards
+=========
+
+* List of standards implemented and to what extent
+
+Release Mechanics
+=================
+
+* `Link to release plan <https://wiki.opendaylight.org/view/TSDR:TSDR_Carbon_Release_Plan>`_
+* Describe any major shifts in release schedule from the release plan
+ * N/A.
--- /dev/null
+===
+VTN
+===
+
+Major Features
+==============
+
+odl-vtn-manager-rest
+--------------------
+
+* **Feature URL:** https://git.opendaylight.org/gerrit/gitweb?p=vtn.git;a=blob;f=manager/features/features-vtn-manager/src/main/features/features.xml;h=e4fe7f62405d07653bffa291f984f2cd30db4a4c;hb=refs/heads/stable/carbon#l41
+* **Feature Description:** This is the feature that allows users to use the VTN virtualization, by creating the various components as needed for the network.
+* **Top Level:** Yes
+* **User Facing:** Yes
+* **Experimental:** No
+* **CSIT Test:** https://jenkins.opendaylight.org/releng/view/vtn/job/vtn-csit-1node-manager-only-carbon/,https://jenkins.opendaylight.org/releng/view/vtn/job/vtn-csit-1node-manager-all-carbon/
+
+
+odl-vtn-manager-neutron
+----------------------
+
+* **Feature URL:** https://git.opendaylight.org/gerrit/gitweb?p=vtn.git;a=blob;f=manager/features/features-vtn-manager/src/main/features/features.xml;h=e4fe7f62405d07653bffa291f984f2cd30db4a4c;hb=refs/heads/stable/carbon#l49
+* **Feature Description:** This feature provides support for integration with Openstack (L2 API)
+* **Top Level:** Yes
+* **User Facing:** Yes
+* **Experimental:** No
+* **CSIT Test:** https://jenkins.opendaylight.org/releng/view/vtn/job/vtn-csit-1node-openstack-newton-neutron-carbon/
+
+Documentation
+=============
+
+* **Installation Guide(s):**
+
+ * :ref:`vtn-install-guide`
+
+* **User Guide(s):**
+
+ * :ref:`VTN User Guide <vtn-user-guide>`
+
+* **Developer Guide(s):**
+
+ * :ref:`VTN Developer Guide <vtn-dev-guide>`
+ * :ref:`VTN Openstack Developer Guide <vtn-openstack-dev-guide>`
+
+Security Considerations
+=======================
+
+* No Issues.
+
+
+Quality Assurance
+=================
+
+* `Link to Sonar Report <https://sonar.opendaylight.org/dashboard?id=org.opendaylight.vtn%3Adistribution&did=1>`_ (56.2%)
+* `Link to CSIT Jobs <https://jenkins.opendaylight.org/releng/view/vtn/>`_
+* CSIT covers most of the options in RESTCONF
+* The 3 node deployment has not been tested well.
+
+Migration
+---------
+
+* Not Supported.
+
+Compatiblity
+------------
+
+* No Specific Compatibility issues.
+
+Bugs Fixed
+----------
+
+* 6632 - VTN Coordinator Build Issues with Fedora 24
+* 7360 - VTN Coordinator Build Issues in Fedora 25
+* 7402 - VTN Coordinator Tomcat Upgrade to 7.0.73
+* 6859 - Clean up package names across ODL for yangtools
+* 7969 - VTN Coordinator Issues with recent Postgres Versions
+* 7652 - VTN Manager Support for Karaf 4
+* 8191 - VTN Manager Addressed some Checkstyle/findbugs warnings
+* 8184 - VTN Manager Removed some log messages when handling send-barrier RPC
+* 8211 - VTN Manager Addressed Problems in mapping VTN Flow and MD-SAL Flow
+* 8212 - VTN Manager Fixed Failure in retrieving dataflow
+
+Known Issues
+------------
+
+* `Link to Open Bugs <https://bugs.opendaylight.org/buglist.cgi?component=VTN%20Manager&list_id=78860&product=vtn&resolution=--->`_
+
+End-of-life
+===========
+
+* None
+
+Standards
+=========
+
+* None
+
+Release Mechanics
+=================
+
+* `Link to release plan <https://wiki.opendaylight.org/view/VTN:Carbon_Release_Plan>`_
+* There was no deviation from the plan.
+.. _tsdr-install-guide:
+
TSDR Installation Guide
=======================
+.. _vtn-install-guide:
+
VTN Installation Guide
======================
+.. _security_considerations:
+
***********************
Security Considerations
***********************
* For the list of current OpenDaylight security issues that are either being
fixed or resolved, refer to
- https://wiki.opendaylight.org/view/Security_Advisories.
+ https://wiki.opendaylight.org/view/Security:Advisories.
* To learn more about the OpenDaylight security issues policies and procedure,
refer to https://wiki.opendaylight.org/view/Security:Main
+.. _security_deployment_recommendations:
+
Deployment Recommendations
==========================
+.. _vtn-openstack-dev-guide:
+
OpenStack with Virtual Tenant Network
=====================================
Releasing OpenDaylight
======================
-- Block submit permissions for registered users and elevate RE's committer rights on gerrit. **(Helpdesk)**
+- Block submit permissions for registered users and elevate RE's committer
+ rights on Gerrit.
+ **(Helpdesk)**
.. figure:: images/gerrit-update-committer-rights.png
.. note::
- Enable **Exclusive** checkbox for the submit button to override any existing persmissions.
+ Enable **Exclusive** checkbox for the submit button to override any
+ existing persmissions. Code-Review and Verify permissions are only needed
+ during version bumping. DO NOT enable it during code freeze.
-- Export ${RELEASE} and ${BUILDNUM} with current release name and build number.
+- Nexus: click release for staging repo
+ **(Helpdesk)**
- .. code-block:: bash
+- Nexus: click release for gpgsign repo (created above in Preparations)
+ **(Helpdesk)**
- export RELEASE=Beryllium-SR4
- export BRANCH=${RELEASE//-*}
- export BUILDNUM=55
+- Pull latest autorelease repository
+ **(Release Engineering Team)**
-- Nexus: click release for staging repo **(Helpdesk)**
-- Nexus: click release for gpgsign repo (created above in Preparations) **(Helpdesk)**
-- Send email to Helpdesk with binary URL to update website **(Helpdesk)**
-- Send email to TSC and Release mailing lists announcing release binaries location **(Release Engineering Team)**
-- Clone autorelease repository. **(Release Engineering Team)**
+ .. note:: If you already cloned autorelease the clone line can be skipped below.
.. code-block:: bash
git clone --recursive https://git.opendaylight.org/gerrit/releng/autorelease
-
-- Checkout autorelease and switch to release branch eg stable/carbon **(Release Engineering Team)**
-
- .. code-block:: bash
-
- git checkout -b stable/${BRANCH,,} origin/stable/${BRANCH,,}
+ cd autorelease
git submodule update --init
- git submodule foreach git checkout -b stable/${BRANCH,,} origin/stable/${BRANCH,,}
-
-- Make sure your git repo is setup to push (use git-review)
-
- .. code-block:: bash
-
git review -s
git submodule foreach 'git review -s'
-- Download patches (\*.bundle files and taglist.log.gz) from log server.
+- Make sure the latest lftools is installed
+ **(Release Engineering Team)**
+
+ .. note:: If you already created an lftools virtualenv you can skip the mkvirtualenv step below.
.. code-block:: bash
- mkdir /tmp/patches && cd /tmp/patches
- wget https://logs.opendaylight.org/releng/jenkins092/autorelease-release-${BRANCH,,}/${BUILDNUM}/archives/all-bundles.tar.gz
- gunzip all-bundles.tar.gz
- wget https://logs.opendaylight.org/releng/jenkins092/autorelease-release-${BRANCH,,}/${BUILDNUM}/archives/patches/taglist.log.gz
- gunzip taglist.log.gz
+ mkvirtualenv lftools
+ workon lftools
+ pip install --upgrade lftools
-- Run the following commands for every project in the release, to apply patches to each project directory.
+- Publish release tags
+ **(Release Engineering Team)**
.. code-block:: bash
- pip install lftools
- lftools version patch ${RELEASE}
- git review -y -t ${RELEASE}
- git push gerrit release/${RELEASE,,}
+ export RELEASE=Beryllium-SR4
+ export STREAM=${RELEASE//-*}
+ export BUILD_NUM=55
+ export PATCH_URL="https://logs.opendaylight.org/releng/jenkins092/autorelease-release-${STREAM,,}/${BUILD_NUM}/archives/patches.tar.gz"
+ ./scripts/release-tags.sh "${RELEASE}" /tmp/patches "$PATCH_URL"
-- Merge all patches on gerrit in the order generated by merge-order.log
+- Run autorelease-version-bump-${STREAM} job
+ **(Release Engineering Team)**
-- Tag autorelease too
+- Send email to Helpdesk with binary URL to update website
+ **(Helpdesk)**
- .. code-block:: bash
+- Send email to TSC and Release mailing lists announcing release binaries location
+ **(Release Engineering Team)**
- git checkout `cat /tmp/patches/taglist.log | grep autorelease | awk '{print $2}'`
- git submodule foreach git checkout release/${RELEASE,,}
- git commit -asSm "Release ${RELEASE}"
- git tag -asm "OpenDaylight ${RELEASE} release" release/${RELEASE,,}
- git push gerrit release/${RELEASE,,}
+- Merge all patches generated by the job
+ **(Release Engineering Team)**
-- Re-enable submit permissions for registered users and disable elevated RE committer rights on gerrit.
+- Re-enable submit permissions for registered users and disable elevated RE
+ committer rights on gerrit
+ **(Helpdesk)**
-- Release notes is auto generated by job autorelease-generate-release-notes-${BRANCH,,}
- triggered at the end of every autorelease build. The release notes file (release_notes.rst) is
- available under archives.
+- Send email to release/tsc/dev notifying tagging and version bump complete
+ **(Release Engineering Team)**
- Alternatively, release notes can also be manually generated with the script.
+- Run autorelease-generate-release-notes-${STREAM} job
**(Release Engineering Team)**
+ This job is run a the end of every autorelease build can be used only for
+ service releases (SR). The release notes file (release_notes.rst) is available
+ under archives. For major releases (Nitrogen, Carbon) the docs repository has
+ to branched and published which is only done after release reviews are
+ completed.
+
+ Release notes can also be manually generated with the script.
+
.. code-block:: bash
git checkout stable/${BRANCH,,}
cd scripts/release_notes_management/ && ./build.sh
- The output file (release_notes.rst) generated by the build script is available under autorelease/scripts/release_notes_management/projects/.
-
-- Send email to release/tsc/dev notifying tagging and version bump complete **(Release Engineering Team)**
+ The output file (release_notes.rst) generated by the build script is available
+ under autorelease/scripts/release_notes_management/projects/.
-Subproject commit b3f7f080bd5381d2e037281e2215cf31c5e68cfa
+Subproject commit def725fc269a3f8f8526810b050b34a25966a4c2
-Subproject commit 3b5773dbe9c201e2c6e736681603516c2431dfeb
+Subproject commit bc3bcb560ffd019226d5b1947b01399400cbd015
-Subproject commit 5042d24f1e5fa983df6997fc609dec5f6faa6c94
+Subproject commit 034aa1e0e39ab018a39b628a4b667c70823a71a4
-Subproject commit f9cea84e41d5c539fcd697ff52633081732977b4
+Subproject commit 43f8ed810b5c2cfcf65e45eddbe91bab4a702a80
-Subproject commit 88a8b611335f96e12a7c18fabcc6401fedd342ba
+Subproject commit 04f91da97651e7339d4fb2bb07cba452d265cd9c
-Subproject commit 93f5338fc291aa090b64bc6f33302a333b987afa
+Subproject commit f2c1ed2850621cad304d99a16ab4bbeb534a7b92
-Subproject commit ea3b5b7f786463fbf264673b34fc01a154e1698b
+Subproject commit a0bb7fc528753efe1d91a73d864ee9579f5697eb
-Subproject commit 89e28719ffc133f82b9744168fdff5b18a77e45f
+Subproject commit e05e4cc56fd325db3f1221068d6c6d5b9fbd2aea
-Subproject commit 5d18d75c587acb2a14fd566de0a1e640750b8645
+Subproject commit 96c5d1630019ccc8b4484a91bdb3119a02e77aba
-Subproject commit f5a577d77da10732d0a0e0aed24b9d6494944eac
+Subproject commit 25118f015bd29467db0f0aa7d3936aa8419aaffe
+.. _tsdr-user-guide:
+
TSDR User Guide
===============
+.. _vtn-user-guide:
+
Virtual Tenant Network (VTN)
============================
- OpenDaylight Congestion Control with SCVMM VTN:
https://youtu.be/34YMOTzbNJM
-
deps =
coala==0.11
coala-bears==0.11
+ # Requests 2.16 breaks coala dependency on chardet
+ requests<2.16
nodeenv
commands =
nodeenv -p
curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-07-21-17.00.log.html
curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-07-21-17.00.log.txt
curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-07-21-17.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-07-28-17.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-07-28-17.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-07-28-17.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-07-28-17.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-07-28-17.40.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-07-28-17.40.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-07-28-17.40.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-07-28-17.40.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-08-04-17.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-08-04-17.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-08-04-17.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-08-04-17.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-08-11-17.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-08-11-17.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-08-11-17.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-08-11-17.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-08-18-17.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-08-18-17.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-08-18-17.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-08-18-17.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-08-25-16.59.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-08-25-16.59.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-08-25-16.59.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-08-25-16.59.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-09-01-17.02.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-09-01-17.02.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-09-01-17.02.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-09-01-17.02.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-09-08-17.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-09-08-17.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-09-08-17.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-09-08-17.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-09-15-17.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-09-15-17.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-09-15-17.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-09-15-17.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-09-22-17.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-09-22-17.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-09-22-17.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-09-22-17.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-10-13-17.01.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-10-13-17.01.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-10-13-17.01.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-10-13-17.01.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-10-20-17.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-10-20-17.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-10-20-17.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-10-20-17.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-10-27-17.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-10-27-17.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-10-27-17.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-10-27-17.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-11-03-17.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-11-03-17.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-11-03-17.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-11-03-17.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-11-10-15.29.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-11-10-15.29.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-11-10-15.29.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-11-10-15.29.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-11-10-18.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-11-10-18.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-11-10-18.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-11-10-18.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-11-17-18.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-11-17-18.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-11-17-18.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-11-17-18.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-12-01-18.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-12-01-18.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-12-01-18.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-12-01-18.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-12-08-18.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-12-08-18.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-12-08-18.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-12-08-18.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-12-15-18.01.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-12-15-18.01.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-12-15-18.01.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-12-15-18.01.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-12-23-04.30.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-12-23-04.30.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-12-23-04.30.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2016/tsc/opendaylight-meeting-tsc.2016-12-23-04.30.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-01-05-18.04.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-01-05-18.04.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-01-05-18.04.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-01-05-18.04.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-01-12-18.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-01-12-18.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-01-12-18.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-01-12-18.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-01-19-18.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-01-19-18.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-01-19-18.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-01-19-18.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-01-26-18.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-01-26-18.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-01-26-18.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-01-26-18.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-02-02-18.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-02-02-18.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-02-02-18.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-02-02-18.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-02-09-18.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-02-09-18.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-02-09-18.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-02-09-18.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-02-24-04.34.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-02-24-04.34.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-02-24-04.34.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-02-24-04.34.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-02-18.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-02-18.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-02-18.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-02-18.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-09-17.59.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-09-17.59.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-09-17.59.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-09-17.59.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-16-17.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-16-17.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-16-17.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-16-17.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-24-03.30.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-24-03.30.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-24-03.30.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-24-03.30.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-27-17.17.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-27-17.17.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-27-17.17.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-27-17.17.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-30-17.03.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-30-17.03.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-30-17.03.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-03-30-17.03.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-04-13-17.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-04-13-17.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-04-13-17.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-04-13-17.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-04-20-17.01.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-04-20-17.01.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-04-20-17.01.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-04-20-17.01.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-04-28-03.30.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-04-28-03.30.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-04-28-03.30.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-04-28-03.30.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-05-04-17.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-05-04-17.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-05-04-17.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-05-04-17.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-05-11-17.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-05-11-17.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-05-11-17.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-05-11-17.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-05-18-17.00.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-05-18-17.00.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-05-18-17.00.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-05-18-17.00.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-05-26-03.30.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-05-26-03.30.log.html
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-05-26-03.30.log.txt
+curl -O https://meetings.opendaylight.org/opendaylight-meeting/2017/tsc/opendaylight-meeting-tsc.2017-05-26-03.30.txt
curl -O https://wiki.opendaylight.org/images/0/0f/TSC_2013-05-16_Minutes.pdf
curl -O https://wiki.opendaylight.org/images/1/16/TSC_2013-06-13_Minutes.pdf
curl -O https://wiki.opendaylight.org/images/2/22/TSC_2013-10-03_Minutes.pdf