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 <[email protected]> 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 -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

