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.

Conflicts:
	manifests/agents/ml2/ovs.pp
	spec/classes/neutron_agents_ml2_ovs_spec.rb

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

View File

@ -173,6 +173,12 @@
# outgoing IP packet carrying GRE/VXLAN tunnel.
# Defaults to $::os_service_default
#
# [*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
#
# [*of_interface*]
@ -212,6 +218,7 @@ class neutron::agents::ml2::ovs (
$permitted_ethertypes = $::os_service_default,
$minimize_polling = $::os_service_default,
$tunnel_csum = $::os_service_default,
$explicitly_egress_direct = $::os_service_default,
# DEPRECATED
$of_interface = undef,
) {
@ -313,6 +320,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

@ -65,6 +65,7 @@ describe 'neutron::agents::ml2::ovs' do
should contain_neutron_agent_ovs('ovs/int_peer_patch_port').with_ensure('absent')
should contain_neutron_agent_ovs('ovs/tun_peer_patch_port').with_ensure('absent')
should contain_neutron_agent_ovs('agent/tunnel_types').with_ensure('absent')
should contain_neutron_agent_ovs('agent/explicitly_egress_direct').with_value(['<SERVICE DEFAULT>'])
end
it 'installs neutron ovs agent package' do
@ -377,6 +378,15 @@ 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({