MTU calculations only support IPv4 tunnel endpoints don't account for IPv6

Bug #1584940 reported by Brian Haley
24
This bug affects 2 people
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Undecided
Brian Haley

Bug Description

The MTU calculations are using using values from the ML2 constants file like:

# Network Type MTU overhead
GENEVE_ENCAP_MIN_OVERHEAD = 50
GRE_ENCAP_OVERHEAD = 42
VXLAN_ENCAP_OVERHEAD = 50

But those values are assuming IPv4 - for example, IPv4 header of 20 bytes, VXLAN header of 30 bytes.

We should be calculating the IP overhead independent of the tunnel type overhead in order to support an IPv6 data plane.

Since we know local_ip (tunnel endpoint) from ml2_conf.ini, we can dynamically calculate this at startup time.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/320121

Changed in neutron:
status: New → In Progress
Changed in neutron:
assignee: Brian Haley (brian-haley) → Matt Kassawara (ionosphere80)
Changed in neutron:
assignee: Matt Kassawara (ionosphere80) → Brian Haley (brian-haley)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/320121
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=51a697817da849c8f9dae9651f17cd863e170fdc
Submitter: Jenkins
Branch: master

commit 51a697817da849c8f9dae9651f17cd863e170fdc
Author: Brian Haley <email address hidden>
Date: Mon May 23 15:50:06 2016 -0400

    Change tunnel MTU calculation to support IPv6

    The IPv6 header is twice the size of the IPv4 header, 40 vs 20
    bytes, but the tunnel overhead constants are static, only
    accounting for an IPv4 header in all cases. In order to be
    correct it needs to treat the tunnel overhead different from
    the IP overhead at L3.

    This required removing the 20 byte IP overhead from the tunnel
    type overhead constants and creating a new option,
    ml2.overlay_ip_version, in order for the server to know which
    version will be used, since it calculates the MTU for the network.
    A version mis-match will now cause a tunnel sync to fail on
    the server.

    Moved all MTU tests to a common location to remove duplication.

    DocImpact

    Change-Id: Ia2546c4c71ff48b9fe2817fbad22b1fbf85f325b
    Closes-bug: #1584940

Changed in neutron:
status: In Progress → Fix Released
Revision history for this message
Doug Hellmann (doug-hellmann) wrote : Fix included in openstack/neutron 9.0.0.0b2

This issue was fixed in the openstack/neutron 9.0.0.0b2 development milestone.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.