Add agent/explicitly_egress_direct support

This configuration parameter for the ML2/OVS agent was added in
I14fefe289a19b718b247bf0740ca9bc47f8903f4 and backported up to
stable/queens, preventing flooding on integration bridge in some cases.

It needs to be enabled on specific node types, so add option to
configure it.

Related-Bug: #1732067
Change-Id: Iff50d2d086c687ef9ec1ba878e24c06dfc8a7d99
This commit is contained in:
Bernard Cafarelli 2020-09-29 17:40:16 +02:00
parent 8a89732184
commit d0bc82d842
No known key found for this signature in database
GPG Key ID: 9531F08245465A52
3 changed files with 28 additions and 0 deletions

View File

@ -184,6 +184,12 @@
# (optional) List of <bridge>:<egress_bw>:<ingress_bw>
# Defaults to empty list
#
# [*explicitly_egress_direct*]
# (optional) When set to True, the accepted egress unicast traffic will not
# use action NORMAL. The accepted egress packets will be taken care of in the
# final egress tables direct output flows for unicast traffic. (boolean value)
# Defaults to $::os_service_default
#
# DEPRECATED
#
# [*ovsdb_interface*]
@ -226,6 +232,7 @@ class neutron::agents::ml2::ovs (
$tunnel_csum = $::os_service_default,
$igmp_snooping_enable = $::os_service_default,
$resource_provider_bandwidths = [],
$explicitly_egress_direct = $::os_service_default,
# DEPRECATED
$ovsdb_interface = undef,
) {
@ -335,6 +342,7 @@ class neutron::agents::ml2::ovs (
'agent/extensions': value => join(any2array($extensions), ',');
'agent/minimize_polling': value => $minimize_polling;
'agent/tunnel_csum': value => $tunnel_csum;
'agent/explicitly_egress_direct': value => $explicitly_egress_direct;
'ovs/ovsdb_timeout': value => $ovsdb_timeout;
'ovs/of_connect_timeout': value => $of_connect_timeout;
'ovs/of_request_timeout': value => $of_request_timeout;

View File

@ -0,0 +1,9 @@
---
features:
- |
Add new configuration parameter explicitly_egress_direct for ML2 OVS agent
When set to True, the accepted egress unicast traffic will not use action
NORMAL. The accepted egress packets will be taken care of in the final
egress tables direct output flows for unicast traffic so that operators can
set customized integration bridge name in l3 agent configuration.
This can be enabled on some nodes to prevent flooding on integration bridge.

View File

@ -66,6 +66,7 @@ describe 'neutron::agents::ml2::ovs' do
should contain_neutron_agent_ovs('agent/tunnel_types').with_ensure('absent')
should contain_neutron_agent_ovs('ovs/igmp_snooping_enable').with_value('<SERVICE DEFAULT>')
should_not contain_neutron_agent_ovs('ovs/resource_provider_bandwidths')
should contain_neutron_agent_ovs('agent/explicitly_egress_direct').with_value(['<SERVICE DEFAULT>'])
end
it 'installs neutron ovs agent package' do
@ -379,6 +380,16 @@ describe 'neutron::agents::ml2::ovs' do
end
end
context 'with direct output enabled for egress flows' do
before :each do
params.merge!(:explicitly_egress_direct => true)
end
it 'configure neutron/plugins/ml2/ml2_conf.ini' do
should contain_neutron_agent_ovs('agent/explicitly_egress_direct').with_value(true)
end
end
end
on_supported_os({