Browse Source

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)
changes/56/756256/5
Bernard Cafarelli 8 months ago
committed by Takashi Kajinami
parent
commit
9e4b885595
3 changed files with 29 additions and 0 deletions
  1. +9
    -0
      manifests/agents/ml2/ovs.pp
  2. +9
    -0
      releasenotes/notes/ovs_agent_explicitly_egress_direct-a5989bd33844c0f4.yaml
  3. +11
    -0
      spec/classes/neutron_agents_ml2_ovs_spec.rb

+ 9
- 0
manifests/agents/ml2/ovs.pp View File

@ -178,6 +178,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
#
# [*igmp_snooping_enable*]
# (Optional) Enable IGMP snooping for integration bridge. If this
# option is set to True, support for Internet Group Management
@ -189,6 +195,7 @@
# connected to multicast routers. This option is used by the ML2/OVS
# mechanism driver for Neutron.
# Defaults to $::os_service_default
#
# === Deprecated Parameters
#
# [*enable_tunneling*]
@ -230,6 +237,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,
$igmp_snooping_enable = $::os_service_default,
# DEPRECATED PARAMETERS
$enable_tunneling = false,
@ -336,6 +344,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;


+ 9
- 0
releasenotes/notes/ovs_agent_explicitly_egress_direct-a5989bd33844c0f4.yaml 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.

+ 11
- 0
spec/classes/neutron_agents_ml2_ovs_spec.rb View File

@ -66,6 +66,7 @@ describe 'neutron::agents::ml2::ovs' do
is_expected.to contain_neutron_agent_ovs('ovs/int_peer_patch_port').with_ensure('absent')
is_expected.to contain_neutron_agent_ovs('ovs/tun_peer_patch_port').with_ensure('absent')
is_expected.to contain_neutron_agent_ovs('agent/tunnel_types').with_ensure('absent')
is_expected.to contain_neutron_agent_ovs('agent/explicitly_egress_direct').with_value(['<SERVICE DEFAULT>'])
is_expected.to contain_neutron_agent_ovs('ovs/igmp_snooping_enable').with_value(['<SERVICE DEFAULT>'])
end
@ -396,6 +397,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
is_expected.to contain_neutron_agent_ovs('agent/explicitly_egress_direct').with_value(true)
end
end
context 'with IGMP snooping enabled' do
before :each do
params.merge!(:igmp_snooping_enable => true)


Loading…
Cancel
Save