256464aea6
Adds VPNaaS support for OVN. Add a new stand-alone VPN agent to support OVN+VPN. Add OVN-specific service and device drivers that support this new VPN agent. This will have no impact on the existing VPN solution for ML2/OVS, the existing L3 agent and its VPN extension will still work. Add a new VPN agent scheduler that will schedule VPN services to VPN agents on a per-router basis. Add two new database tables: vpn_ext_gws (to store extra port IDs) and routervpnagentbindings (to store VPN agent ID per router). More details see spec (neutron-specs/specs/xena/vpnaas-ovn.rst). This work is based on work of MingShuan Xian (xianms@cn.ibm.com), see https://bugs.launchpad.net/networking-ovn/+bug/1586253 Depends-On: https://review.opendev.org/c/openstack/neutron/+/847005 Depends-On: https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/847007 Closes-Bug: #1905391 Change-Id: I632f86762d63edbfe225727db11ea21bbb1ffc25
59 lines
2.0 KiB
Python
59 lines
2.0 KiB
Python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
import neutron.conf.plugins.ml2.drivers.ovn.ovn_conf
|
|
import neutron.services.provider_configuration
|
|
|
|
import neutron_vpnaas.services.vpn.agent
|
|
import neutron_vpnaas.services.vpn.device_drivers.ipsec
|
|
import neutron_vpnaas.services.vpn.device_drivers.strongswan_ipsec
|
|
import neutron_vpnaas.services.vpn.ovn_agent
|
|
|
|
|
|
def list_agent_opts():
|
|
return [
|
|
('vpnagent',
|
|
neutron_vpnaas.services.vpn.agent.vpn_agent_opts),
|
|
('ipsec',
|
|
neutron_vpnaas.services.vpn.device_drivers.ipsec.ipsec_opts),
|
|
('strongswan',
|
|
neutron_vpnaas.services.vpn.device_drivers.strongswan_ipsec.
|
|
strongswan_opts),
|
|
('pluto',
|
|
neutron_vpnaas.services.vpn.device_drivers.ipsec.pluto_opts)
|
|
]
|
|
|
|
|
|
def list_ovn_agent_opts():
|
|
return [
|
|
('vpnagent',
|
|
neutron_vpnaas.services.vpn.ovn_agent.VPN_AGENT_OPTS),
|
|
('ovs',
|
|
neutron_vpnaas.services.vpn.ovn_agent.OVS_OPTS),
|
|
('ovn',
|
|
neutron.conf.plugins.ml2.drivers.ovn.ovn_conf.ovn_opts),
|
|
('ipsec',
|
|
neutron_vpnaas.services.vpn.device_drivers.ipsec.ipsec_opts),
|
|
('strongswan',
|
|
neutron_vpnaas.services.vpn.device_drivers.strongswan_ipsec.
|
|
strongswan_opts),
|
|
('pluto',
|
|
neutron_vpnaas.services.vpn.device_drivers.ipsec.pluto_opts)
|
|
]
|
|
|
|
|
|
def list_opts():
|
|
return [
|
|
('service_providers',
|
|
neutron.services.provider_configuration.serviceprovider_opts)
|
|
]
|