From 4fbc8962fca7b9bf1e8432cad8e9b83c86f313e6 Mon Sep 17 00:00:00 2001 From: waleed mousa Date: Thu, 9 Nov 2017 07:12:26 -0500 Subject: [PATCH] Adds environment file for ODL OVS Hardware Offload Change-Id: I0bf2bbe486d3897fe18f2bbbd493d745499a51f9 --- .../neutron-opendaylight-hw-offload.yaml | 31 +++++++++++++++++++ puppet/services/opendaylight-ovs.yaml | 8 +++++ .../odl-ovs-hw-offload-54b662c633e9eda8.yaml | 5 +++ 3 files changed, 44 insertions(+) create mode 100644 environments/neutron-opendaylight-hw-offload.yaml create mode 100644 releasenotes/notes/odl-ovs-hw-offload-54b662c633e9eda8.yaml diff --git a/environments/neutron-opendaylight-hw-offload.yaml b/environments/neutron-opendaylight-hw-offload.yaml new file mode 100644 index 0000000000..8ac27ea754 --- /dev/null +++ b/environments/neutron-opendaylight-hw-offload.yaml @@ -0,0 +1,31 @@ +# A Heat environment that can be used to deploy OpenDaylight with SRIOV +resource_registry: + OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None + OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None + OS::TripleO::Services::ComputeNeutronCorePlugin: OS::Heat::None + OS::TripleO::Services::NeutronCorePlugin: ../puppet/services/neutron-plugin-ml2-odl.yaml + OS::TripleO::Services::OpenDaylightApi: ../puppet/services/opendaylight-api.yaml + OS::TripleO::Services::OpenDaylightOvs: ../puppet/services/opendaylight-ovs.yaml + OS::TripleO::Services::NeutronSriovHostConfig: ../puppet/services/neutron-sriov-host-config.yaml + OS::TripleO::Services::NeutronL3Agent: OS::Heat::None + +parameter_defaults: + NeutronEnableForceMetadata: true + NeutronPluginExtensions: 'port_security' + NeutronMechanismDrivers: ['opendaylight_v2'] + NeutronServicePlugins: 'odl-router_v2,trunk' + NovaSchedulerDefaultFilters: ['RetryFilter','AvailabilityZoneFilter','RamFilter','ComputeFilter','ComputeCapabilitiesFilter','ImagePropertiesFilter','ServerGroupAntiAffinityFilter','ServerGroupAffinityFilter','PciPassthroughFilter'] + NovaSchedulerAvailableFilters: ["nova.scheduler.filters.all_filters","nova.scheduler.filters.pci_passthrough_filter.PciPassthroughFilter"] + + # Kernel arguments for ComputeSriov node + ComputeSriovParameters: + KernelArgs: "intel_iommu=on iommu=pt" + OvsHwOffload: True + # Number of VFs that needs to be configured for a physical interface + #NeutronSriovNumVFs: ["ens3f0:4:switchdev"] + # Mapping of SR-IOV PF interface to neutron physical_network. + # In case of Vxlan/GRE physical_network should be null. + # In case of flat/vlan the physical_network should as configured in neutron. + #NovaPCIPassthrough: + # - devname: "ens3f0" + # physical_network: null diff --git a/puppet/services/opendaylight-ovs.yaml b/puppet/services/opendaylight-ovs.yaml index f6ca4b0200..08e30a9f85 100644 --- a/puppet/services/opendaylight-ovs.yaml +++ b/puppet/services/opendaylight-ovs.yaml @@ -91,6 +91,11 @@ parameters: default: {} description: Parameters specific to the role type: json + OvsHwOffload: + default: false + description: | + Enable OVS Hardware Offload. This feature supported from OVS 2.8.0 + type: boolean resources: Ovs: @@ -117,6 +122,8 @@ resources: neutron::plugins::ovs::opendaylight::vhostuser_socket_dir: VhostuserSocketDir neutron::plugins::ovs::opendaylight::vhostuser_mode: OvsVhostuserMode neutron::plugins::ovs::opendaylight::provider_mappings: OpenDaylightProviderMappings + neutron::plugins::ovs::opendaylight::enable_hw_offload: OvsHwOffload + vswitch::ovs::enable_hw_offload: OvsHwOffload - values: {get_param: [RoleParameters]} - values: HostAllowedNetworkTypes: {get_param: HostAllowedNetworkTypes} @@ -124,6 +131,7 @@ resources: VhostuserSocketDir: {get_param: VhostuserSocketDir} OvsVhostuserMode: {get_param: OvsVhostuserMode} OpenDaylightProviderMappings: {get_param: OpenDaylightProviderMappings} + OvsHwOffload: {get_param: OvsHwOffload} outputs: role_data: diff --git a/releasenotes/notes/odl-ovs-hw-offload-54b662c633e9eda8.yaml b/releasenotes/notes/odl-ovs-hw-offload-54b662c633e9eda8.yaml new file mode 100644 index 0000000000..8dd3e17e16 --- /dev/null +++ b/releasenotes/notes/odl-ovs-hw-offload-54b662c633e9eda8.yaml @@ -0,0 +1,5 @@ +--- +features: +- Add support for ODL OVS Hardware Offload. + This feature requires Linux Kernel >= 4.13 + Open vSwitch >= 2.8 iproute >= 4.12.