← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1517146] [NEW] RFE: Linux Bridge vhost-user support via fast path detection

 

Public bug reported:

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:

- a forked ML2 linux bridge mechanism driver: https://github.com/openstack/networking-6wind/blob/master/networking_6wind/ml2_drivers/linuxbridge/mech_driver/mech_lb_fp.py
- a forked linux agent: https://github.com/openstack/networking-6wind/blob/master/networking_6wind/ml2_drivers/linuxbridge/agent/lb_fp_neutron_agent.py.

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
- 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

Note: The vhost_user_fp_plug is a modification under review in Nova.
See: https://review.openstack.org/#/c/245369/

** Affects: networking-6wind
     Importance: Undecided
         Status: New

** Affects: neutron
     Importance: Undecided
         Status: New

** Description changed:

  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:
+ 
  - a forked ML2 linux bridge mechanism driver: https://github.com/openstack/networking-6wind/blob/master/networking_6wind/ml2_drivers/linuxbridge/mech_driver/mech_lb_fp.py
  - a forked linux agent: https://github.com/openstack/networking-6wind/blob/master/networking_6wind/ml2_drivers/linuxbridge/agent/lb_fp_neutron_agent.py.
  
- 
  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.
+ -----------------
+ 
+ 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
  
  Note: The vhost_user_fp_plug is a modification under review in Nova.
  See: https://review.openstack.org/#/c/245369/

** Also affects: networking-6wind
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1517146

Title:
  RFE: Linux Bridge vhost-user support via fast path detection

Status in networking-6wind:
  New
Status in neutron:
  New

Bug description:
  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:

  - a forked ML2 linux bridge mechanism driver: https://github.com/openstack/networking-6wind/blob/master/networking_6wind/ml2_drivers/linuxbridge/mech_driver/mech_lb_fp.py
  - a forked linux agent: https://github.com/openstack/networking-6wind/blob/master/networking_6wind/ml2_drivers/linuxbridge/agent/lb_fp_neutron_agent.py.

  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
  - 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

  Note: The vhost_user_fp_plug is a modification under review in Nova.
  See: https://review.openstack.org/#/c/245369/

To manage notifications about this bug go to:
https://bugs.launchpad.net/networking-6wind/+bug/1517146/+subscriptions


Follow ups