From 88dd06e5ecc3d6b6979c7cb4b1149ef55ddd5afd Mon Sep 17 00:00:00 2001 From: Karthik S Date: Thu, 15 Jun 2017 06:12:26 -0400 Subject: [PATCH] Provide DPDK nic configs and add multiqueue config Modified the config for compute with DPDKbond and added a configuration for multiqueue Change-Id: I1269b65160e07a6b59c64ccc98ac6df8306f9a8c Signed-off-by: Karthik S --- environments/net-dpdkbond-with-vlans.yaml | 15 +++ environments/neutron-ovs-dpdk.yaml | 1 + .../config/bond-with-vlans/compute-dpdk.yaml | 114 ++++++++++-------- 3 files changed, 78 insertions(+), 52 deletions(-) create mode 100644 environments/net-dpdkbond-with-vlans.yaml diff --git a/environments/net-dpdkbond-with-vlans.yaml b/environments/net-dpdkbond-with-vlans.yaml new file mode 100644 index 0000000000..2ddb8cdd3a --- /dev/null +++ b/environments/net-dpdkbond-with-vlans.yaml @@ -0,0 +1,15 @@ +# This template configures each role to use a pair of bonded nics (nic2 and +# nic3) and configures an IP address on each relevant isolated network +# for each role. The nic4 and nic5 are configured for dpdkbond and a provider +# network shall be associated with it. This template assumes use of +# network-isolation.yaml. +# +# FIXME: if/when we add functionality to heatclient to include heat +# environment files we should think about using it here to automatically +# include network-isolation.yaml. +resource_registry: + OS::TripleO::BlockStorage::Net::SoftwareConfig: ../network/config/bond-with-vlans/cinder-storage.yaml + OS::TripleO::Compute::Net::SoftwareConfig: ../network/config/bond-with-vlans/compute-dpdk.yaml + OS::TripleO::Controller::Net::SoftwareConfig: ../network/config/bond-with-vlans/controller.yaml + OS::TripleO::ObjectStorage::Net::SoftwareConfig: ../network/config/bond-with-vlans/swift-storage.yaml + OS::TripleO::CephStorage::Net::SoftwareConfig: ../network/config/bond-with-vlans/ceph-storage.yaml diff --git a/environments/neutron-ovs-dpdk.yaml b/environments/neutron-ovs-dpdk.yaml index 029a198ed8..5cb2dea559 100644 --- a/environments/neutron-ovs-dpdk.yaml +++ b/environments/neutron-ovs-dpdk.yaml @@ -36,3 +36,4 @@ parameter_defaults: # threads to be spawned, which may improve dataplane performance. #NovaVcpuPinSet: "" # Cores to pin Nova instances to. For maximum performance, select cores # on the same NUMA node(s) selected for previous settings. + #NumDpdkInterfaceRxQueues: 1 diff --git a/network/config/bond-with-vlans/compute-dpdk.yaml b/network/config/bond-with-vlans/compute-dpdk.yaml index 5def1ca9cf..0459ad55be 100644 --- a/network/config/bond-with-vlans/compute-dpdk.yaml +++ b/network/config/bond-with-vlans/compute-dpdk.yaml @@ -1,6 +1,6 @@ heat_template_version: pike description: > - Software Config to drive os-net-config with 2 bonded nics on a bridge with VLANs attached for the compute role. + Software Config to drive os-net-config with OVS-DPDK bond in addition to the 2 bonded NICs with VLANs attached for the compute role. parameters: ControlPlaneIp: default: '' @@ -32,9 +32,8 @@ parameters: type: string BondInterfaceOvsOptions: default: '' - description: 'The ovs_options or bonding_options string for the bond - interface. Set things like lacp=active and/or bond_mode=balance-slb - for OVS bonds or like mode=4 for Linux bonds using this option.' + description: The bonding_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using + this option. The default mode is active-backup. type: string ExternalNetworkVlanID: default: 10 @@ -82,6 +81,10 @@ parameters: EC2MetadataIp: # Override this via parameter_defaults description: The IP address of the EC2 metadata server. type: string + NumDpdkInterfaceRxQueues: + description: Number of Rx Queues required for DPDK bond or DPDK ports + default: 1 + type: number resources: OsNetConfigImpl: type: OS::Heat::SoftwareConfig @@ -112,59 +115,66 @@ resources: - default: true next_hop: get_param: ControlPlaneDefaultRoute - - type: ovs_bridge - name: bridge_name + - type: linux_bond + name: bond_api + bonding_options: + get_param: BondInterfaceOvsOptions + use_dhcp: false + dns_servers: + get_param: DnsServers members: - - type: ovs_bond - name: bond1 - ovs_options: - get_param: BondInterfaceOvsOptions - members: - - type: interface - name: nic2 - primary: true - - type: interface - name: nic3 - - type: vlan - device: bond1 - vlan_id: - get_param: InternalApiNetworkVlanID - addresses: - - ip_netmask: - get_param: InternalApiIpSubnet - - type: vlan - device: bond1 - vlan_id: - get_param: StorageNetworkVlanID - addresses: - - ip_netmask: - get_param: StorageIpSubnet - - type: vlan - device: bond1 - vlan_id: - get_param: TenantNetworkVlanID - addresses: - - ip_netmask: - get_param: TenantIpSubnet - # Uncomment when including environments/network-management.yaml - # If setting default route on the Management interface, comment - # out the default route on the Control Plane. - #- - # type: vlan - # device: bond1 - # vlan_id: {get_param: ManagementNetworkVlanID} - # addresses: - # - - # ip_netmask: {get_param: ManagementIpSubnet} - # routes: - # - - # default: true - # next_hop: {get_param: ManagementInterfaceDefaultRoute} + - type: interface + name: nic2 + primary: true + - type: interface + name: nic3 + - type: vlan + device: bond_api + vlan_id: + get_param: InternalApiNetworkVlanID + addresses: + - ip_netmask: + get_param: InternalApiIpSubnet + - type: vlan + device: bond_api + vlan_id: + get_param: StorageNetworkVlanID + addresses: + - ip_netmask: + get_param: StorageIpSubnet + - type: vlan + device: bond_api + vlan_id: + get_param: TenantNetworkVlanID + addresses: + - ip_netmask: + get_param: TenantIpSubnet + # Uncomment when including environments/network-management.yaml + # If setting default route on the Management interface, comment + # out the default route on the Control Plane. + #- + # type: vlan + # device: bond_api + # vlan_id: + # get_param: ManagementNetworkVlanID + # addresses: + # - + # ip_netmask: + # get_param: ManagementIpSubnet + # routes: + # - + # default: true + # next_hop: + # get_param: ManagementInterfaceDefaultRoute + + # Used as a provider network with external DHCP - type: ovs_user_bridge - name: br-link + name: br-dpdk0 members: - type: ovs_dpdk_bond name: dpdkbond0 + rx_queue: + get_param: NumDpdkInterfaceRxQueues members: - type: ovs_dpdk_port name: dpdk0