Fast path technology is a user-space stack for high performance packets offloading the Linux networking functions: IPv4/IPv6 routing, linux bridge, iptables, conntrack...
To benefit from the offloading, a VM needs to use vhost-user instead of vhost-net backend for virtio interfaces.
We need to maintain a fork version of the ML2 linux bridge mechanism driver and also one for the linux bridge agent , it is not a proper design.
From users point of view, having to install a specific mechanism driver and an agent to benefit of the fastpath offloading, it is an extra operation. We should avoid to add extra operation for easiness.
Proposed Change
==============
LinuxBridge Agent
--------------------------
The linux bridge agent shall detect whether a fast path offload is enabled, and it shall report it to the mechanism driver with the use of agent_state.
For this capability, a new field will be added in agent_state.configuration: fp_offload.
ML2 LinuxBridge
-----------------------
The mechanism driver LinuxBridge in the try_bind_segment_for_agent will:
- set the vif_type to LINUXBRIDGE if agent['configuration']['fp_offload'] is False
- set the vif_type to VHOSTUSER if agent['configuration']['fp_offload'] is True
Specific vif_details needs to be added for vhost-user:
- vhost_user_socket (i.e '/tmp/usv-XXXX')
- vhost_user_fp_plug should be set True to create a tap netdevice with a vhostuser socket
Fast path technology is a user-space stack for high performance packets offloading the Linux networking functions: IPv4/IPv6 routing, linux bridge, iptables, conntrack...
To benefit from the offloading, a VM needs to use vhost-user instead of vhost-net backend for virtio interfaces.
As a consequence, we have: /github. com/openstack/ networking- 6wind/blob/ master/ networking_ 6wind/ml2_ drivers/ linuxbridge/ mech_driver/ mech_lb_ fp.py /github. com/openstack/ networking- 6wind/blob/ master/ networking_ 6wind/ml2_ drivers/ linuxbridge/ agent/lb_ fp_neutron_ agent.py.
- a forked ML2 linux bridge mechanism driver: https:/
- a forked linux agent: https:/
Problem Description
================
We need to maintain a fork version of the ML2 linux bridge mechanism driver and also one for the linux bridge agent , it is not a proper design.
From users point of view, having to install a specific mechanism driver and an agent to benefit of the fastpath offloading, it is an extra operation. We should avoid to add extra operation for easiness.
Proposed Change
==============
LinuxBridge Agent ------- ------- -----
-------
The linux bridge agent shall detect whether a fast path offload is enabled, and it shall report it to the mechanism driver with the use of agent_state.
For this capability, a new field will be added in agent_state. configuration: fp_offload.
ML2 LinuxBridge ------- ------- --
-------
The mechanism driver LinuxBridge in the try_bind_ segment_ for_agent will:
- set the vif_type to LINUXBRIDGE if agent[' configuration' ]['fp_offload' ] is False configuration' ]['fp_offload' ] is True
- set the vif_type to VHOSTUSER if agent['
Specific vif_details needs to be added for vhost-user:
- vhost_user_socket (i.e '/tmp/usv-XXXX')
- vhost_user_fp_plug should be set True to create a tap netdevice with a vhostuser socket
Note: The vhost_user_fp_plug is a modification under review in Nova. See: https:/ /review. openstack. org/#/c/ 245369/