← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1692951] Re: [RFE] DSCP mark on the outer header

 

Reviewed:  https://review.openstack.org/501267
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=6bf0788da07854573048d494065375f64803dd46
Submitter: Zuul
Branch:    master

commit 6bf0788da07854573048d494065375f64803dd46
Author: Ali Sanhaji <ali.sanhaji@xxxxxxxxxx>
Date:   Wed Sep 6 15:37:12 2017 +0200

    Adding DSCP mark and inheritance in OVS and LB tunnels outer header
    
    Adding ability to set DSCP field in OVS tunnels outer header, or
    inherit it from the inner header's DSCP value for OVS and linuxbridge.
    
    Change-Id: Ia59753ded73cd23019605668e60cfbc8841e803d
    Closes-Bug: #1692951


** Changed in: neutron
       Status: In Progress => Fix Released

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

Title:
  [RFE] DSCP mark on the outer header

Status in neutron:
  Fix Released

Bug description:
  Problem Description
  ===================

  The QoS rule for setting the DSCP, in the neutron QoS extension, is only
  marking the IP header of VM packets, meaning that, when using overlay networks
  and encapsulation (e.g., VxLAN, GRE) the DSCP mark is only visible in the
  inner IP header and is not visible in the outer headers.

  The underlay network requires the DSCP mark to be visible on the external
  header in order to implement QoS and prioritize the traffic when needed.

  Reflecting this DSCP mark in the outer Ethernet header is covered by
  [1] and [2].

  API impact
  ==========

  A new rule outer_dscp_marking can be added to set a value for the
  outer DSCP mark. This value can either be "inherit", in order to
  copy the inner dscp mark, or it can be a specific value in order
  to dissociate the inner header value from outer header value and
  allow further possibilities in the use of DSCP marks.

  A mapping between the inner DSCP mark and outer DSCP mark could
  later be made using the classifier defined in [3]

  Proposal
  ========

  Unlike the ECN field, the DSCP field is not automatically copied to the
  outer header during encapsulation. If we want to copy the DSCP from
  the inner header to the outer header, we need to set the tunnel interfaces
  (e.g. VxLAN, GRE), in either OVS or LinuxBridge, with the option "tos inherit".

  In order to set a specific DSCP value to the outer header, we must be able
  to identify the encapsulated packet to put the right DSCP mark in the tunnel
  header. A possibility is to use the "mark" field of the skb structure [4], which
  stays unchanged after encapsulation. We could for instance set the "mark" field
  in OVS or Linuxbridge before encapsulation, according to the policy attached to
  the port or network, then match this field after encapsulation to identify
  the inner header and set the right DSCP mark in the outer header.

  
  References
  ==========

  [1] https://blueprints.launchpad.net/neutron/+spec/vlan-802.1p-qos
  [2] https://bugs.launchpad.net/neutron/+bug/1505631
  [3] https://review.openstack.org/#/c/333993/
  [4] http://elixir.free-electrons.com/linux/latest/source/include/linux/skbuff.h#L790

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1692951/+subscriptions


References