Table of Contents
https://git.opendaylight.org/gerrit/#/q/topic:weighted-napt-selection
Brief introduction of the feature.
NATService needs to select a Designated NAPT switch amongst different switches hosting VMs in a given VRF. Currently this selection uses a round robin algorithm which treats all switches as equals. A switch that is selected as Designated NAPT gets all external traffic from VMs in that VRF, thus putting extra load on that switch. Since selection of NAPT is runtime decision it is not possible to scale-up such switches.
To solve this problem we need a mechanism to make NAPT selection logic pick particular switches which can handle extra traffic, more over ones that can’t. Administrator should be able to mark such switches at deployment.
Main use case is to allow admin to specify configuration for specific computes so they are more likely to be selected as Designated NAPT Switches. Following use cases will be supported as part of initial feature.
Note
No changes will be made to triggers for NAPT Selection for initial release This means following use cases will not be supported yet.
We’ll introduce a new configuration parameter called odl_base_weight
which
will be configured in external_ids
parameter of Open_vSwitch
in specific
switches. This will be part of 0-day orchestration. Value for this will be a
number. If nothing is configured bas weight will be considered to be 0
.
Higher the odl_base_weight
, greater the number of VRFs designated on a
given switch.
NAPTSwitchSelector
will be modified to factor in this parameter when selecting
a designate NAPT switch. Currently weight of a given switch is only number of VRFs
hosted on it with base weight of 0. Weight of switch is incremented by 1 for each
VRF hosted on it. Switch with least weight at time of selection ends up being selected
as designated Switch. odl_base_weight
of X will translate to weight -X in
NAPTSwitchSelector
.
None.
None.
A new configuration parameter called odl_base_weight
which can be configured in
external_ids
parameter of Open_vSwitch
for specific switches.
Refer section [Proposed Change] for more details.
Requires new API in Genius.
Selecting switches that can handle extra traffic that SNAT brings in will help with dataplane performance
Oxygen
None.
How will end user use this feature? Primary focus here is how this feature will be used in an actual deployment.
e.g. For most netvirt features this will include OpenStack APIs.
This section will be primary input for Test and Documentation teams. Along with above this should also capture REST API and CLI.
odl-netvirt-openstack
Who is implementing this feature? In case of multiple authors, designate a primary assignee and other contributors.
Break up work into individual items. This should be a checklist on a Trello card for this feature. Provide the link to the trello card or duplicate it.
None.
TBD.
Any existing UTs will be enhanced accordingly.
Any existing UTs will be enhanced accordingly.
Refer section [Configuration Changes]
None.