5.2 KiB
VXLAN support for OVS-DPDK
https://blueprints.launchpad.net/fuel/+spec/vxlan-support-for-ovs-dpdk
We want to utilize a VXLAN-based networking with OVS/DPDK for a high-performance scalable tenant networking.
Problem description
Currently, OVS-DPDK supports only VLAN segmentation. With VXLAN-based network segmentation being adopted more widely, supporting VXLAN with OVS-DPDK is very important for all NFV use cases.
Proposed changes
Currently, when using the VLAN-based networking with OVS-DPDK, we use the br-prv bridge but we do not assign an IP to it.
To implement a VXLAN-based segmentation with DPDK, we should use a br-mesh bridge whose configuration corresponds to the one of the br-prv bridge in case of VLAN with DPDK.
Web UI
None
Nailgun
The following changes are required in Nailgun:
- Remove restrictions for using DPDK in VXLAN-based segmentation case.
- Fix the Nailgun network serializer to generate transformations as
described in the
Data model <data-model>
section.
Data model
When operator enables DPDK for a particular interface with
VXLAN-based segmentation to use it for the Private network,
astute.yaml
will be extended as follows:
The network
transformations
field should include a vendor-specific attributedatapath_type: netdev
for the br-mesh bridge:network_scheme: transformations: - action: add-br name: br-mesh provider: ovs vendor_specific: vlan_id: netgroup['vlan'] datapath_type: netdev
An interface should be added directly into the OVS br-mesh bridge using the
add-port
action withprovider: dpdkovs
:network_scheme: transformations: - action: add-port name: enp1s0f0 bridge: br-mesh provider: dpdkovs
No VLAN tag can be used here.
A bond should be added directly into the OVS br-mesh bridge using the
add-bond
action withprovider: dpdkovs
:network_scheme: transformations: - action: add-bond bridge: br-mesh provider: dpdkovs bond_properties: mode: balance-rr interfaces: - enp1s0f0 - enp1s0f1 name: bond0
No VLAN tag can be used here.
REST API
None
Orchestration
None
RPC Protocol
None
Fuel Client
None
Plugins
None
Fuel Library
To achieve VLAN-tagged VXLAN, the vendor specific attribute
vlan_id
for add-br
should be converted to
ovs-vsctl set port br-mesh tag=<vlan_id>
.
Alternatives
Continue using the VLAN-based network segmentation.
Upgrade impact
None
Security impact
None
Notifications impact
None
End user impact
None
Performance impact
Performance impact is not expected.
Deployment impact
This feature requires using the VXLAN segmentation and a dedicated DPDK-capable network interface for the Private network.
Developer impact
None
Infrastructure impact
- The feature will be tested on a virtual environment.
- The performance testing will be conducted on a hardware environment
Documentation impact
The user guide should be updated according to the described feature.
Implementation
Assignee(s)
- Primary assignee:
-
Anastasia Balobashina <atolochkova@mirantis.com>
- Mandatory design review:
-
Aleksey Kasatkin <akasatkin@mirantis.com> Sergey Matov <smatov@mirantis.com>
Work Items
- Remove restrictions for using DPDK in VXLAN-based segmentation case.
- Fix the network serializer so that the transformations are
configured as described in the
Data model <data-model>
section. - Convert the vendor specific attribute
vlan_id
foradd-br
toovs-vsctl set port br-mesh tag=<vlan_id>
. - Test manually.
- Create a system test for DPDK.
- Verify the
acceptance criteria <acceptance-criteria>
.
Dependencies
None
Testing, QA
- API/CLI test cases for configuring the DPDK with VXLAN segmentation.
- Web UI test cases for configuring the DPDK with VXLAN segmentation.
- Test case for DPDK with VXLAN segmentation being discovered and configured properly.
- Test case for using the multiple-node network groups.
- Functional testing.
- Performance testing.
Acceptance criteria
- Ability to run a DPDK application on top of OVS/DPDK + VXLAN-enabled host
- A 3 Mpps packet rate on the 64-bytes UDP traffic on a single PMD thread multiplied by a number of DPDK cores.
- Ability to work on the 40 Gb and 2x10 cards from Intel's Forteville family.
References
None