Neutron Configuration¶
Neutron, the network service for OpenStack, supports a variety of configurations to optimize and tailor network performance. This includes integrating hardware acceleration technologies to enhance networking capabilities within your OpenStack environment.
Hardware Acceleration¶
Hardware acceleration can significantly improve network performance by offloading specific network functions to directly to the network interface card (NIC). This reduces the load on the host CPU and improves network throughput and latency.
ML2/OVS¶
Mellanox Accelerated Switching And Packet Processing (ASAP2)¶
Mellanox ASAP2 is a technology that enables the offloading of the Open vSwitch datapath to the NIC. This offloading is done by the NIC’s firmware, and is transparent to the host.
Atmosphere uses the netoffload project which takes care of validating and preparing the host for SR-IOV.
It is recommended to follow the netoffload
BIOS, Kernel & NIC configuration
steps documented before getting started.
Open vSwitch configuration¶
In order to enable hardware off-loading in Open vSwitch, you must make sure that you deploy with the following configuration:
openvswitch_helm_values:
conf:
ovs_hw_offload:
enabled: true
Neutron configuration¶
In order to enable hardware off-loading in Neutron, you can simply deploy it with the following configuration and it will use netoffload to automatically configure ASAP2.
About Init
errors
If you see an Init error when deploying Neutron, you may need to look at the
logs of the netoffload
container to see what went wrong.
neutron_helm_values:
conf:
netoffload:
asap2:
- dev: enp97s0f0
vfs: 16
ML2/OVN¶
DPDK for provider & tenant networks¶
DPDK is a set of libraries and drivers for fast packet processing. It is designed to run mostly in userspace, and can be used to accelerate network functions in OpenStack.
DPDK can be used with OVN to accelerate the processing of packets in the datapath. This can be done by enabling the DPDK support in the OVN configuration.
Open vSwitch configuration¶
In order to enable hardware off-loading in Open vSwitch, you must make sure that you deploy with the following configuration:
openvswitch_helm_values:
conf:
ovs_dpdk:
enabled: true
socket_memory: 2048
hugepages_mountpath: /dev/hugepages
vhostuser_socket_dir: vhostuser
lcore_mask: 0x1
driver: mlx5_core
vhost_iommu_support: true
For more details about configuring socket_memory, lcore_mask, and driver parameters, please refer to the OpenvSwitch documentation.
OVN configuration¶
In order to enable hardware off-loading in OVN, you must make sure that you deploy with the following configuration:
ovn_helm_values:
network:
interface:
tunnel: br-ex
tunnel_network_cidr: 192.168.0.0/19
conf:
ovn_bridge_mappings: external:br-ex
ovn_bridge_datapath_type: netdev
Neutron configuration¶
In order to enable hardware off-loading in Neutron, you can simply deploy it with the following configuration and it will take care of creating the DPDK interfaces for you.
neutron_helm_values:
conf:
neutron:
DEFAULT:
global_physnet_mtu: 9100
plugins:
ml2_conf:
ml2:
path_mtu: 9100
physical_network_mtus: external:9100
ml2_type_vxlan:
vni_ranges: 2000:1000000
ovs_dpdk:
enabled: true
update_dpdk_bond_config: true
driver: mlx5_core
bonds:
- name: dpdkbond
bridge: br-ex
migrate_ip: true
mtu: 9100
n_rxq: 2
n_txq: 2
n_rxq_size: 2048
n_txq_size: 2048
vhost_iommu_support: true
ovs_options: 'bond_mode=balance-tcp lacp=active bond_updelay=10 bond_downdelay=10 other_config:lacp-time=fast'
nics:
- name: dpdk_b0s0
pci_id: '0000:c1:00.0'
- name: dpdk_b0s1
pci_id: '0000:c1:00.1'
modules:
- name: dpdk
log_level: info
nics: null
Flavor configuration¶
In order to use DPDK with OVN, you must create a flavor that supports DPDKw which also includes making changes for the services that use the service virtual machine model such as Octavia and Manila.
nova_flavors:
- disk: 1
name: m1.tiny
ram: 512
vcpus: 1
extra_specs:
"hw:vif_multiqueue_enabled": 'true'
"hw:mem_page_size": 'large'
- disk: 20
name: m1.small
ram: 2048
vcpus: 1
extra_specs:
"hw:vif_multiqueue_enabled": 'true'
"hw:mem_page_size": 'large'
manila_flavor_extra_specs:
"hw:vif_multiqueue_enabled": 'true'
"hw:mem_page_size": large
octavia_amphora_flavor_extra_specs:
"hw:vif_multiqueue_enabled": 'true'
"hw:mem_page_size": large