Detailed bug description:
DPDK application that rebinds NIC drivers and detaches interfaces from kernel space (such as Contrail vrouter in DPDK mode) will fail some tasks deployment if they are executed after the DPDK process starts.
- Prevents running netconfig task again, since interfaces "consumed" by a DPDK process are no longer present in kernel space, but are still mentioned in network_scheme.
- Prevents running configure_default_route, since it is using generate_network_config function.
- If node fails to deploy for any reason and it's state is set to "error", but by that time DPDK application has already started, nailgun-agent will report that interfaces are no longer present on the node (even though they are present in lspci), which breaks bonding configuration and network-to-interface mapping in nailgun by removing interfaces from node configuration. See attached screenshot.
Steps to reproduce:
1. Use Fuel 9.
2. Install Contrail plugin.
3. Deploy environment with DPDK computes.
4. Ensure that vrouter-dpdk process is running.
5. Re-deploy the whole graph on the DPDK compute node (or just run netconfig or configure_default_route tasks).
Expected results:
Re-deployment of the node is successful.
Actual result:
Any task that uses network_scheme to change networking configuration will fail to deploy.
Example error:
/Stage[main]/Osnailyfacter::Netconfig::Netconfig/L23network::L2::Bond[bond1]/L23network::L2::Bond_interface[enp134s0f1]/L23network::L2::Port[enp134s0f1]/L2_port[enp134s0f1]/ensure: change from absent to present failed: Command 'ip link add link name enp134s0f1 type vlan id absent' has been failed with exit_code=1:
Cannot find device "name"
Reproducibility:
Reproduces every time if dpdk process is running.
Workaround:
Stop the DPDK application and return NICs to kernel space, before running any puppet tasks that affect networking configuration. Alternatively - cleanup network_scheme from any mentions of "consumed" interfaces"
Description of the environment:
Operation system: Ubuntu 14.04
Versions of components: Fuel 9, Contrail 3.0
Network model: Contrail networking with DPDK vrouters (tunneling segmentation), LACP bonding on compute nodes.
Related projects installed: fuel-contrail-plugin
Additional information:
This issue does not affect DPDK-enabled openvswitch implemented by Fuel 9, just the custom DPDK applications.
Could you please show network transformation for this.