Add intersphinx for SXP and remove them from docs 30/75930/3
authorThanh Ha <thanh.ha@linuxfoundation.org>
Mon, 10 Sep 2018 15:01:37 +0000 (11:01 -0400)
committerThanh Ha <thanh.ha@linuxfoundation.org>
Mon, 10 Sep 2018 15:18:39 +0000 (11:18 -0400)
SXP is now available at https://docs.opendaylight.org/projects/sxp
so remove them from local docs, we can link to them instead.

Issue: DOCS-69
Change-Id: I3e6f4120aad19fd2d5e8ac1dba333467f930243c
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
docs/conf.py
docs/developer-guide/index.rst
docs/developer-guide/sxp-developer-guide.rst [deleted file]
docs/index.rst
docs/project-indexes/sxp-index.rst [deleted file]
docs/user-guide/index.rst
docs/user-guide/sxp-user-guide.rst [deleted file]

index 142816539dfaec524ec998a5025edebf7df46ae6..d6d2bb21920645a67929b2ab34a208a56a90421e 100755 (executable)
@@ -26,6 +26,7 @@ intersphinx_mapping['infrautils'] = ('https://docs.opendaylight.org/projects/inf
 intersphinx_mapping['netvirt'] = ('https://docs.opendaylight.org/projects/netvirt/en/latest/', None)
 intersphinx_mapping['openflowplugin'] = ('https://docs.opendaylight.org/projects/openflowplugin/en/latest/', None)
 intersphinx_mapping['ovsdb'] = ('https://docs.opendaylight.org/projects/ovsdb/en/latest/', None)
+intersphinx_mapping['sxp'] = ('https://docs.opendaylight.org/projects/sxp/en/latest/', None)
 
 # OpenDaylight Documentation Releases
 intersphinx_mapping['odl-oxygen'] = ('https://docs.opendaylight.org/en/stable-oxygen/', None)
index 84cdc4ddb38ba8aa37d9032ba237771d970b01d0..fdc12533cf071a0579e5945687e795a5b8ade9d4 100644 (file)
@@ -65,7 +65,6 @@ Project-specific Developer Guides
    p4plugin-developer-guide
    service-function-chaining
    snmp4sdn-developer-guide
-   sxp-developer-guide
    topology-processing-framework-developer-guide
    ttp-model-developer-guide
    ttp-cli-tools-developer-guide
diff --git a/docs/developer-guide/sxp-developer-guide.rst b/docs/developer-guide/sxp-developer-guide.rst
deleted file mode 100644 (file)
index f87e814..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-.. _sxp-dev-guide:
-
-SXP Developer Guide
-===================
-
-Overview
---------
-
-SXP (Scalable-Group Tag eXchange Protocol) project is an effort to enhance
-OpenDaylight platform with IP-SGT (IP Address to Source Group Tag)
-bindings that can be learned from connected SXP-aware network nodes. The
-current implementation supports SXP protocol version 4 according to the
-Smith, Kandula - SXP `IETF
-draft <https://tools.ietf.org/html/draft-smith-kandula-sxp-06>`__ and
-grouping of peers and creating filters based on ACL/Prefix-list syntax
-for filtering outbound and inbound IP-SGT bindings. All protocol legacy
-versions 1-3 are supported as well. Additionally, version 4 adds
-bidirectional connection type as an extension of a unidirectional one.
-
-SXP Architecture
-----------------
-
-The SXP Server manages all connected clients in separate threads and a
-common SXP protocol agreement is used between connected peers. Each SXP
-network peer is modelled with its pertaining class, e.g., SXP Server
-represents the SXP Speaker, SXP Listener the Client. The server program
-creates the ServerSocket object on a specified port and waits until a
-client starts up and requests connect on the IP address and port of the
-server. The client program opens a Socket that is connected to the
-server running on the specified host IP address and port.
-
-The SXP Listener maintains connection with its speaker peer. From an
-opened channel pipeline, all incoming SXP messages are processed by
-various handlers. Message must be decoded, parsed and validated.
-
-The SXP Speaker is a counterpart to the SXP Listener. It maintains a
-connection with its listener peer and sends composed messages.
-
-The SXP Binding Handler extracts the IP-SGT binding from a message and
-pulls it into the SXP-Database. If an error is detected during the
-IP-SGT extraction, an appropriate error code and sub-code is selected
-and an error message is sent back to the connected peer. All transitive
-messages are routed directly to the output queue of SXP Binding
-Dispatcher.
-
-The SXP Binding Dispatcher represents a selector that will decides how
-many data from the SXP-database will be sent and when. It is responsible
-for message content composition based on maximum message length.
-
-The SXP Binding Filters handles filtering of outgoing and incoming
-IP-SGT bindings according to BGP filtering using ACL and Prefix List
-syntax for specifying filter or based on Peer-sequence length.
-
-The SXP Domains feature provides isolation of SXP peers and bindings
-learned between them, also exchange of Bindings is possible across
-SXP-Domains by ACL, Prefix List or Peer-Sequence filters
-
-Key APIs and Interfaces
------------------------
-
-As this project is fairly small, it provides only few features that
-install and provide all APIs and implementations for this project.
-
--  sxp-api
-
--  spx-core
-
--  sxp-controller
-
--  sxp-cluster-route
-
--  sxp-karaf
-
--  sxp-robot
-
--  sxp-system-tests
-
-sxp-api
-~~~~~~~
-
-Contains data holders and entities
-
-spx-core
-~~~~~~~~
-
-Main logic and core features
-
-sxp-controller
-~~~~~~~~~~~~~~
-
-RPC request handling
-
-sxp-cluster-route
-~~~~~~~~~~~~~~~~~
-
-Performs managing of SXP devices in cluster environment
-
-sxp-karaf
-~~~~~~~~~
-
-Defines Karaf4 dependencies
-
-sxp-robot
-~~~~~~~~~
-
-Contains JRobot libraries used in `CSIT Robot tests <https://jenkins.opendaylight.org/releng/view/sxp/>`__
-
-sxp-system-tests
-~~~~~~~~~~~~~~~~
-
-Contains REST client used for testing purposes
-
-API Reference Documentation
----------------------------
-
-* `RESTCONF Interface and Dynamic Tree <https://wiki.opendaylight.org/images/9/91/SXP_Restconf_Interface_and_Dynamic_Tree.pdf>`__
-* `Specification and Architecture <https://wiki.opendaylight.org/images/4/44/SXP_Specification_and_Architecture_v05.pdf>`__
index 2222c80fe49f1edfcdc3170d9bdfec0e2684a102..6ad3bc8c9c9d5a426a86ce498a94a2ff47a87a07 100644 (file)
@@ -46,7 +46,7 @@ Managed Projects
 Self-Managed Projects
 ~~~~~~~~~~~~~~~~~~~~~
 
-* :doc:`SXP Documentation <project-indexes/sxp-index>`
+* :doc:`SXP Documentation <sxp:index>`
 
 
 OpenDaylight Contributor Guides
@@ -85,4 +85,3 @@ OpenDaylight Contributor Guides
    project-indexes/bgpcep-index
    project-indexes/daexim-index
    project-indexes/lispflowmapping-index
-   project-indexes/sxp-index
diff --git a/docs/project-indexes/sxp-index.rst b/docs/project-indexes/sxp-index.rst
deleted file mode 100644 (file)
index a1dc8da..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-SXP Project Documentation
-=========================
-This page provides pointers to the existing documentation for the SXP project.
-
-Developer Guides
-----------------
-
-.. toctree::
-   :maxdepth: 1
-
-   ../developer-guide/sxp-developer-guide
-
-User Guides
------------
-
-.. toctree::
-   :maxdepth: 1
-
-   ../user-guide/sxp-user-guide
index 753ec78bc82413df0d76cffc3a98a41cae9ef0cf..a2dae03ca03af9568a37f9047dc714a0fd625c38 100644 (file)
@@ -59,7 +59,6 @@ Project-specific User Guides
    service-function-chaining
    snmp-plugin-user-guide
    snmp4sdn-user-guide
-   sxp-user-guide
    tsdr-user-guide
    ttp-cli-tools-user-guide
    uni-manager-plug-in-project
diff --git a/docs/user-guide/sxp-user-guide.rst b/docs/user-guide/sxp-user-guide.rst
deleted file mode 100644 (file)
index 43ec342..0000000
+++ /dev/null
@@ -1,447 +0,0 @@
-.. _sxp-user-guide:
-
-SXP User Guide
-==============
-
-Overview
---------
-
-SXP (Scalable-Group Tag eXchange Protocol) project is an effort to enhance
-OpenDaylight platform with IP-SGT (IP Address to Source Group Tag)
-bindings that can be learned from connected SXP-aware network nodes. The
-current implementation supports SXP protocol version 4 according to the
-Smith, Kandula - SXP `IETF
-draft <https://tools.ietf.org/html/draft-smith-kandula-sxp-06>`__ and
-grouping of peers and creating filters based on ACL/Prefix-list syntax
-for filtering outbound and inbound IP-SGT bindings. All protocol legacy
-versions 1-3 are supported as well. Additionally, version 4 adds
-bidirectional connection type as an extension of a unidirectional one.
-
-SXP Architecture
-----------------
-
-The SXP Server manages all connected clients in separate threads and a
-common SXP protocol agreement is used between connected peers. Each SXP
-network peer is modelled with its pertaining class, e.g., SXP Server
-represents the SXP Speaker, SXP Listener the Client. The server program
-creates the ServerSocket object on a specified port and waits until a
-client starts up and requests connect on the IP address and port of the
-server. The client program opens a Socket that is connected to the
-server running on the specified host IP address and port.
-
-The SXP Listener maintains connection with its speaker peer. From an
-opened channel pipeline, all incoming SXP messages are processed by
-various handlers. Message must be decoded, parsed and validated.
-
-The SXP Speaker is a counterpart to the SXP Listener. It maintains a
-connection with its listener peer and sends composed messages.
-
-The SXP Binding Handler extracts the IP-SGT binding from a message and
-pulls it into the SXP-Database. If an error is detected during the
-IP-SGT extraction, an appropriate error code and sub-code is selected
-and an error message is sent back to the connected peer. All transitive
-messages are routed directly to the output queue of SXP Binding
-Dispatcher.
-
-The SXP Binding Dispatcher represents a selector that will decides how
-many data from the SXP-database will be sent and when. It is responsible
-for message content composition based on maximum message length.
-
-The SXP Binding Filters handles filtering of outgoing and incoming
-IP-SGT bindings according to BGP filtering using ACL and Prefix List
-syntax for specifying filter or based on Peer-sequence length.
-
-The SXP Domains feature provides isolation of SXP peers and bindings
-learned between them, also exchange of Bindings is possible across
-SXP-Domains by ACL, Prefix List or Peer-Sequence filters
-
-Configuring SXP
----------------
-
-SXP requires no manual configuration.
-
-Administering or Managing SXP
------------------------------
-
-By RPC (response is XML document containing requested data or operation
-status):
-
--  Get Connections POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:get-connections
-
-::
-
-    <input xmlns:xsi="urn:opendaylight:sxp:controller">
-     <domain-name>global</domain-name>
-     <requested-node>0.0.0.100</requested-node>
-    </input>
-
--  Add Connection POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:add-connection
-
-::
-
-    <input xmlns:xsi="urn:opendaylight:sxp:controller">
-     <requested-node>0.0.0.100</requested-node>
-     <domain-name>global</domain-name>
-     <connections>
-      <connection>
-       <peer-address>172.20.161.50</peer-address>
-       <tcp-port>64999</tcp-port>
-       <!-- Password setup: default | none leave empty -->
-       <password>default</password>
-       <!-- Mode: speaker/listener/both -->
-       <mode>speaker</mode>
-       <version>version4</version>
-       <description>Connection to ASR1K</description>
-       <!-- Timers setup: 0 to disable specific timer usability, the default value will be used -->
-       <connection-timers>
-        <!-- Speaker -->
-        <hold-time-min-acceptable>45</hold-time-min-acceptable>
-        <keep-alive-time>30</keep-alive-time>
-       </connection-timers>
-      </connection>
-      <connection>
-       <peer-address>172.20.161.178</peer-address>
-       <tcp-port>64999</tcp-port>
-       <!-- Password setup: default | none leave empty-->
-       <password>default</password>
-       <!-- Mode: speaker/listener/both -->
-       <mode>listener</mode>
-       <version>version4</version>
-       <description>Connection to ISR</description>
-       <!-- Timers setup: 0 to disable specific timer usability, the default value will be used -->
-       <connection-timers>
-        <!-- Listener -->
-        <reconciliation-time>120</reconciliation-time>
-        <hold-time>90</hold-time>
-        <hold-time-min>90</hold-time-min>
-        <hold-time-max>180</hold-time-max>
-       </connection-timers>
-      </connection>
-     </connections>
-    </input>
-
--  Delete Connection POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:delete-connection
-
-::
-
-    <input xmlns:xsi="urn:opendaylight:sxp:controller">
-     <requested-node>0.0.0.100</requested-node>
-     <domain-name>global</domain-name>
-     <peer-address>172.20.161.50</peer-address>
-    </input>
-
--  Add/Update Bindings POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:add-bindings
-
-::
-
-    <input xmlns="urn:opendaylight:sxp:controller">
-      <node-id>0.0.0.100</node-id>
-      <domain-name>global</domain-name>
-      <origin>LOCAL</origin>
-      <master-database>
-        <binding>
-          <sgt>50</sgt>
-          <ip-prefix>192.168.2.1/32</ip-prefix>
-          <ip-prefix>192.168.2.2/32</ip-prefix>
-        </binding>
-        <binding>
-          <sgt>100</sgt>
-          <ip-prefix>192.168.3.1/32</ip-prefix>
-          <ip-prefix>192.168.3.2/32</ip-prefix>
-        </binding>
-      </master-database>
-    </input>
-
--  Delete Bindings POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:delete-bindings
-
-::
-
-    <input xmlns="urn:opendaylight:sxp:controller">
-      <node-id>0.0.0.100</node-id>
-      <domain-name>global</domain-name>
-      <binding>
-        <sgt>50</sgt>
-        <ip-prefix>192.168.2.2/32</ip-prefix>
-      </binding>
-      <binding>
-        <sgt>100</sgt>
-        <ip-prefix>192.168.3.2/32</ip-prefix>
-      </binding>
-    </input>
-
--  Get Node Bindings
-
-   This RPC gets particular device bindings. An SXP-aware node is
-   identified with a unique Node-ID. If a user requests bindings for a
-   Speaker 20.0.0.2, the RPC will search for an appropriate path, which
-   contains 20.0.0.2 Node-ID, within locally learnt SXP data in the SXP
-   database and replies with associated bindings. POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:get-node-bindings
-
-::
-
-    <input xmlns:xsi="urn:opendaylight:sxp:controller">
-     <requested-node>20.0.0.2</requested-node>
-     <bindings-range>all</bindings-range>
-     <domain-name>global</domain-name>
-    </input>
-
--  Get Binding SGTs POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:get-binding-sgts
-
-::
-
-    <input xmlns:xsi="urn:opendaylight:sxp:controller">
-     <requested-node>0.0.0.100</requested-node>
-     <domain-name>global</domain-name>
-     <ip-prefix>192.168.12.2/32</ip-prefix>
-    </input>
-
--  Add PeerGroup with or without filters to node. POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:add-peer-group
-
-::
-
-    <input xmlns="urn:opendaylight:sxp:controller">
-     <requested-node>127.0.0.1</requested-node>
-     <sxp-peer-group>
-      <name>TEST</name>
-      <sxp-peers>
-      </sxp-peers>
-      <sxp-filter>
-       <filter-type>outbound</filter-type>
-       <acl-entry>
-        <entry-type>deny</entry-type>
-        <entry-seq>1</entry-seq>
-        <sgt-start>1</sgt-start>
-        <sgt-end>100</sgt-end>
-       </acl-entry>
-       <acl-entry>
-        <entry-type>permit</entry-type>
-        <entry-seq>45</entry-seq>
-        <matches>1</matches>
-        <matches>3</matches>
-        <matches>5</matches>
-       </acl-entry>
-      </sxp-filter>
-     </sxp-peer-group>
-    </input>
-
--  Delete PeerGroup with peer-group-name from node request-node. POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:delete-peer-group
-
-::
-
-    <input xmlns="urn:opendaylight:sxp:controller">
-     <requested-node>127.0.0.1</requested-node>
-     <peer-group-name>TEST</peer-group-name>
-    </input>
-
--  Get PeerGroup with peer-group-name from node request-node. POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:get-peer-group
-
-::
-
-    <input xmlns="urn:opendaylight:sxp:controller">
-     <requested-node>127.0.0.1</requested-node>
-     <peer-group-name>TEST</peer-group-name>
-    </input>
-
--  Add Filter to peer group on node request-node. POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:add-filter
-
-::
-
-    <input xmlns="urn:opendaylight:sxp:controller">
-     <requested-node>127.0.0.1</requested-node>
-     <peer-group-name>TEST</peer-group-name>
-     <sxp-filter>
-      <filter-type>outbound</filter-type>
-      <acl-entry>
-       <entry-type>deny</entry-type>
-       <entry-seq>1</entry-seq>
-       <sgt-start>1</sgt-start>
-       <sgt-end>100</sgt-end>
-      </acl-entry>
-      <acl-entry>
-       <entry-type>permit</entry-type>
-       <entry-seq>45</entry-seq>
-       <matches>1</matches>
-       <matches>3</matches>
-       <matches>5</matches>
-      </acl-entry>
-     </sxp-filter>
-    </input>
-
--  Delete Filter from peer group on node request-node. POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:delete-filter
-
-::
-
-    <input xmlns="urn:opendaylight:sxp:controller">
-     <requested-node>127.0.0.1</requested-node>
-     <peer-group-name>TEST</peer-group-name>
-     <filter-type>outbound</filter-type>
-    </input>
-
--  Update Filter of the same type in peer group on node request-node.
-   POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:update-filter
-
-::
-
-    <input xmlns="urn:opendaylight:sxp:controller">
-     <requested-node>127.0.0.1</requested-node>
-     <peer-group-name>TEST</peer-group-name>
-     <sxp-filter>
-      <filter-type>outbound</filter-type>
-      <acl-entry>
-       <entry-type>deny</entry-type>
-       <entry-seq>1</entry-seq>
-       <sgt-start>1</sgt-start>
-       <sgt-end>100</sgt-end>
-      </acl-entry>
-      <acl-entry>
-       <entry-type>permit</entry-type>
-       <entry-seq>45</entry-seq>
-       <matches>1</matches>
-       <matches>3</matches>
-       <matches>5</matches>
-      </acl-entry>
-     </sxp-filter>
-    </input>
-
--  Add new SXP aware Node POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:add-node
-
-::
-
-    <input xmlns="urn:opendaylight:sxp:controller">
-      <node-id>1.1.1.1</node-id>
-      <source-ip>0.0.0.0</source-ip>
-      <timers>
-        <retry-open-time>5</retry-open-time>
-        <hold-time-min-acceptable>120</hold-time-min-acceptable>
-        <delete-hold-down-time>120</delete-hold-down-time>
-        <hold-time-min>90</hold-time-min>
-        <reconciliation-time>120</reconciliation-time>
-        <hold-time>90</hold-time>
-        <hold-time-max>180</hold-time-max>
-        <keep-alive-time>30</keep-alive-time>
-      </timers>
-      <mapping-expanded>150</mapping-expanded>
-      <security>
-        <password>password</password>
-      </security>
-      <tcp-port>64999</tcp-port>
-      <version>version4</version>
-      <description>ODL SXP Controller</description>
-    </input>
-
--  Delete SXP aware node POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:delete-node
-
-::
-
-    <input xmlns="urn:opendaylight:sxp:controller">
-     <node-id>1.1.1.1</node-id>
-    </input>
-
--  Add SXP Domain on node request-node. POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:add-domain
-
-::
-
-    <input xmlns="urn:opendaylight:sxp:controller">
-      <node-id>1.1.1.1</node-id>
-      <domain-name>global</domain-name>
-    </input>
-
--  Delete SXP Domain on node request-node. POST
-   http://127.0.0.1:8181/restconf/operations/sxp-controller:delete-domain
-
-::
-
-    <input xmlns="urn:opendaylight:sxp:controller">
-     <node-id>1.1.1.1</node-id>
-     <domain-name>global</domain-name>
-    </input>
-
--  Add Route Adds route to leader Node. PUT
-   http://127.0.0.1:8181/restconf/config/sxp-cluster-route:sxp-cluster-route/
-
-::
-
-    <sxp-cluster-route xmlns="urn:opendaylight:sxp:cluster:route">
-      <routing-definition>
-        <ip-address>80.12.43.2</ip-address>
-        <interface>eth1:0</interface>
-        <netmask>255.255.255.0</netmask>
-      </routing-definition>
-    </sxp-cluster-route>
-
-Use cases for SXP
-~~~~~~~~~~~~~~~~~
-
-Cisco has a wide installed base of network devices supporting SXP. By
-including SXP in OpenDaylight, the binding of policy groups to IP
-addresses can be made available for possible further processing to a
-wide range of devices, and applications running on OpenDaylight. The
-range of applications that would be enabled is extensive. Here are just
-a few of them:
-
-OpenDaylight based applications can take advantage of the IP-SGT binding
-information. For example, access control can be defined by an operator
-in terms of policy groups, while OpenDaylight can configure access
-control lists on network elements using IP addresses, e.g., existing
-technology.
-
-Interoperability between different vendors. Vendors have different
-policy systems. Knowing the IP-SGT binding for Cisco makes it possible
-to maintain policy groups between Cisco and other vendors.
-
-OpenDaylight can aggregate the binding information from many devices and
-communicate it to a network element. For example, a firewall can use the
-IP-SGT binding information to know how to handle IPs based on the
-group-based ACLs it has set. But to do this with SXP alone, the firewall
-has to maintain a large number of network connections to get the binding
-information. This incurs heavy overhead costs to maintain all of the SXP
-peering and protocol information. OpenDaylight can aggregate the
-IP-group information so that the firewall need only connect to
-OpenDaylight. By moving the information flow outside of the network
-elements to a centralized position, we reduce the overhead of the CPU
-consumption on the enforcement element. This is a huge savings - it
-allows the enforcement point to only have to make one connection rather
-than thousands, so it can concentrate on its primary job of forwarding
-and enforcing.
-
-OpenDaylight can relay the binding information from one network element
-to others. Changes in group membership can be propagated more readily
-through a centralized model. For example, in a security application a
-particular host (e.g., user or IP Address) may be found to be acting
-suspiciously or violating established security policies. The defined
-response is to put the host into a different source group for
-remediation actions such as a lower quality of service, restricted
-access to critical servers, or special routing conditions to ensure
-deeper security enforcement (e.g., redirecting the host’s traffic
-through an IPS with very restrictive policies). Updated group membership
-for this host needs to be communicated to multiple network elements as
-soon as possible; a very efficient and effective method of propagation
-can be performed using OpenDaylight as a centralized point for relaying
-the information.
-
-OpenDaylight can create filters for exporting and receiving IP-SGT
-bindings used on specific peer groups, thus can provide more complex
-maintaining of policy groups.
-
-Although the IP-SGT binding is only one specific piece of information,
-and although SXP is implemented widely in a single vendor’s equipment,
-bringing the ability of OpenDaylight to process and distribute the
-bindings, is a very specific immediate useful implementation of policy
-groups. It would go a long way to develop both the usefulness of
-OpenDaylight and of policy groups.