Adding support for host-routes and dns_nameservers options for Nuage Plugin

https://blueprints.launchpad.net/neutron/+spec/dhcp-host-routes-and-dns-support-for-nuage-plugin

Adding support for host-routes and dns_nameservers options via DHCP options for the Nuage Plugin

Problem description

The current the Nuage Plugin does not support adding host routes or DNS nameservers via DHCP options for a Neutron subnet.

Proposed change

Currently the Nuage Plugin does not support Neutron’s adding host routes or DNS nameservers via DHCP options on a subnet.

The Nuage’s VSP supports this feature and the support needs to be added in the plugin code.

The following DHCP options will be supported :
  • DNS nameserver
  • Host routes

The proposed change is to support the creation of DNS nameserver and/or Host routes using the Neutron DNS and Host routes

For example:
neutron subnet-create test 192.168.10.0/24
–dns_nameservers list=true 8.8.4.4 8.8.8.8

This action will create a subnet name test with a CIDR 192.168.10.0/24. The nameservers 8.8.4.4 8.8.8.8 will added to this subnet, this translate to a subnet in the Nuage’s VSP subnet with the same nameservers

The CRUD operations will be supported by the Nuage’s VSP plugin for both DNS nameserver and Host routes.

Alternatives

None

Data model impact

None

REST API impact

None

Security impact

None

Notifications impact

None

Other end user impact

None

Performance Impact

None

Other deployer impact

None

Developer impact

None

Implementation

The modification are required on the plugin.py

  • The new method __create_port_gateway will be created.
    This method will create a port of type network:dhcp for the current subnet and tenant
  • The __validate_create_subnet method will be modified to allow the host_routes key to be a valid options of the subnet dictionary
  • The update_subnet method will be added to the plugin
  • The _create_nuage_subnet method will be merged into the create_subnet method. This will newly updated method will also create a DHCP port using the method _create_port_gateway described above.

Assignee(s)

Franck Yelles

Primary assignee:
fyelles

Other contributors:

Work Items

  • Extension code in Nuage plugin
  • Nuage CI coverage addition
  • Nuage Unit tests additions, the following test units will be updated/added : * test_create_subnet_bad_hostroutes * test_update_subnet_adding_additional_host_routes_and_dns * test_create_subnet_with_one_host_route * test_create_subnet_with_two_host_routes * test_create_subnet_with_too_many_routes * test_update_subnet_route * test_update_subnet_route_to_None * test_update_subnet_route_with_too_many_entries * test_delete_subnet_with_route * test_delete_subnet_with_dns_and_route * test_validate_subnet_host_routes_exhausted * test_validate_subnet_dns_nameservers_exhausted

Dependencies

None

Testing

Unit Test coverage for the DHCP options within Nuage unit test Nuage CI will be modified to start supporting this extension tests

Documentation Impact

None

References

None