summaryrefslogtreecommitdiffstats
path: root/networking-odl/doc/source/devref
diff options
context:
space:
mode:
Diffstat (limited to 'networking-odl/doc/source/devref')
-rw-r--r--networking-odl/doc/source/devref/hostconfig.rst119
-rw-r--r--networking-odl/doc/source/devref/index.rst36
2 files changed, 155 insertions, 0 deletions
diff --git a/networking-odl/doc/source/devref/hostconfig.rst b/networking-odl/doc/source/devref/hostconfig.rst
new file mode 100644
index 0000000..70c8607
--- /dev/null
+++ b/networking-odl/doc/source/devref/hostconfig.rst
@@ -0,0 +1,119 @@
+Host Configuration
+==================
+
+Overview
+--------
+
+ODL is agentless configuration. In this scenario Host Configuration is used
+to specify the physical host type and other configurations for the host
+system. This information is populated by the Cloud Operator is in OVSDB in
+Open_vSwitch configuration data in the external_ids field as a key value pair.
+This information is then read by ODL and made available to networking-odl
+through REST API. Networking-odl populates this information in agent_db in
+Neutron and is then used by Neutron scheduler. This information is required
+for features like Port binding and Router scheduling.
+
+Refer to this link for detailed design for this feature.
+
+https://docs.google.com/presentation/d/1kq0elysCDEmIWs3omTi5RoXTSBbrewn11Je2d26cI4M/edit?pref=2&pli=1#slide=id.g108988d1e3_0_6
+
+Related ODL changes:
+
+https://git.opendaylight.org/gerrit/#/c/36767/
+
+https://git.opendaylight.org/gerrit/#/c/40143/
+
+Host Configuration fields
+-------------------------
+
+- host-id
+
+This represents host identification string. This string will be stored in
+external_ids field with the key as odl_os_hostconfig_hostid.
+Refer to Neutron config definition for host field for details on this field.
+
+http://docs.openstack.org/kilo/config-reference/content/section_neutron.conf.html
+
+- host-type
+
+The field is for type of the node. This value corresponds to agent_type in
+agent_db. Example value are “ODL L2” and “ODL L3” for Compute and Network node
+respectively. Same host can be configured to have multiple configurations and
+can therefore can have both L2, L3 and other configurations at the same time.
+This string will be populated by ODL based on the configurations available
+on the host. See example in section below.
+
+- config
+
+This is the configuration data for the host type. Since same node can be
+configured to store multiple configurations different external_ids key value
+pair are used to store these configuration. The external_ids with keys as
+odl_os_hostconfig_config_odl_XXXXXXXX store different configurations.
+8 characters after the suffix odl_os_hostconfig_config_odl are host type.
+ODL extracts these characters and store that as the host-type fields. For
+example odl_os_hostconfig_config_odl_l2, odl_os_hostconfig_config_odl_l3 keys
+are used to provide L2 and L3 configurations respectively. ODL will extract
+"ODL L2" and "ODL L3" as host-type field from these keys and populate
+host-type field.
+
+Config is a Json string. Some examples of config:
+
+::
+
+ {“supported_vnic_types”: [{
+ “vnic_type”: “normal”,
+ “vif_type”: “ovs”,
+ “vif_details”: “{}”
+ }]
+ “allowed_network_types”: ["local", "gre", "vlan", "vxlan"]”,
+ “bridge_mappings”: {“physnet1":"br-ex”}
+ }"
+
+ {“supported_vnic_types”: [{
+ “vnic_type”: “normal”,
+ “vif_type”: “vhostuser”,
+ “vif_details”: “{“port_filter”: “False”, “vhostuser_socket”: “/var/run/openvswitch”}”
+ }]
+ “allowed_network_types”: ["local", "gre", "vlan", "vxlan"]”,
+ “bridge_mappings”: {“physnet1":"br-ex”}
+ }"
+
+**Host Config URL**
+
+Url : http://ip:odlport/restconf/operational/neutron:neutron/hostconfigs/
+
+**Commands to setup host config in OVSDB**
+::
+
+ export OVSUUID=$(ovs-vsctl get Open_vSwitch . _uuid)
+ ovs-vsctl set Open_vSwitch $OVSUUID external_ids:odl_os_hostconfig_hostid=test_host
+ ovs-vsctl set Open_vSwitch $OVSUUID external_ids:odl_os_hostconfig_config_odl_l2 =
+ "{“supported_vnic_types”: [{“vnic_type”: “normal”, “vif_type”: “ovs”, "vif_details": {} }], “allowed_network_types”: [“local”], “bridge_mappings”: {“physnet1":"br-ex”}}"
+
+Example for host configuration
+-------------------------------
+
+::
+
+ {
+ "hostconfigs": {
+ "hostconfig": [
+ {
+ "host-id": "test_host1",
+ "host-type": "ODL L2",
+ "config":
+ "{“supported_vnic_types”: [{
+ “vnic_type”: “normal”,
+ “vif_type”: “ovs”,
+ “vif_details”: {}
+ }]
+ “allowed_network_types”: ["local", "gre", "vlan", "vxlan"],
+ “bridge_mappings”: {“physnet1":"br-ex”}}"
+ },
+ {
+ "host-id": "test_host2",
+ "host-type": "ODL L3",
+ "config": {}
+ }]
+ }
+ }
diff --git a/networking-odl/doc/source/devref/index.rst b/networking-odl/doc/source/devref/index.rst
new file mode 100644
index 0000000..1bf7790
--- /dev/null
+++ b/networking-odl/doc/source/devref/index.rst
@@ -0,0 +1,36 @@
+..
+ Licensed under the Apache License, Version 2.0 (the "License"); you may
+ not use this file except in compliance with the License. You may obtain
+ a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ License for the specific language governing permissions and limitations
+ under the License.
+
+
+Developer Guide
+===============
+
+In the Developer Guide, you will find information on networking-odl's lower
+level design and implementation details.
+
+
+Contents:
+--------------------------------
+.. toctree::
+ :maxdepth: 2
+
+ hostconfig
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+