From 8380f40589c5489a35c4bc6c3f90ed727fd9e413 Mon Sep 17 00:00:00 2001 From: Ritu Sood Date: Thu, 21 Apr 2016 22:15:49 -0700 Subject: [PATCH] Adding Host Config doc Host configurations is used to specify the physical host type and different configuration for host system. Used by features like Port binding and Router scheduling. Updated patch after review. Change-Id: Ib8d75c328001503dd2f77343e99a83ae26aead9c --- doc/source/devref/hostconfig.rst | 119 +++++++++++++++++++++++++++++++ doc/source/devref/index.rst | 36 ++++++++++ doc/source/index.rst | 9 +++ 3 files changed, 164 insertions(+) create mode 100644 doc/source/devref/hostconfig.rst create mode 100644 doc/source/devref/index.rst diff --git a/doc/source/devref/hostconfig.rst b/doc/source/devref/hostconfig.rst new file mode 100644 index 000000000..70c8607b2 --- /dev/null +++ b/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/doc/source/devref/index.rst b/doc/source/devref/index.rst new file mode 100644 index 000000000..1bf7790fe --- /dev/null +++ b/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` + diff --git a/doc/source/index.rst b/doc/source/index.rst index 9cad372a1..312dbe09c 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -17,6 +17,15 @@ Contents: contributing specs +Developer Docs +============== + +.. toctree:: + :maxdepth: 1 + + devref/index + + Indices and tables ==================