diff options
Diffstat (limited to 'networking-odl/doc/source/devref')
-rw-r--r-- | networking-odl/doc/source/devref/hostconfig.rst | 119 | ||||
-rw-r--r-- | networking-odl/doc/source/devref/index.rst | 36 |
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` + |