linuxbridge: vxlan interfaces doesn't get MTU

Bug #1744101 reported by Ian Kumlien
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Medium
Hongbin Lu

Bug Description

When vxlans are created, f.ex. via ensure_vxlan in neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py - no mtu is assigned.

This explains why we get vxlan interfaces with 1500 byte mtu even-though neutron has been instructed to use 9000 bytes mtu.

The function called:
    def add_vxlan(self, name, vni, group=None, dev=None, ttl=None, tos=None,
                  local=None, srcport=None, dstport=None, proxy=False):
        cmd = ['add', name, 'type', 'vxlan', 'id', vni]
...

Creates the interface, and from what I understand mtu should be between 'add' and 'type'.

I have been unable to find any other place where the mtu would be propagated to the vxlan interface and our tests indicate that it never happens.

The problem is that this causes the bridge to set it self to the lower mtu and... noone is happy =)

This is on:
git describe
11.0.2-8-g7fd30cb
(stable/pike)

Revision history for this message
Brian Haley (brian-haley) wrote :

It looks like this could be fixed over in the agent, since when we add the tap device we have the mtu, it's just never used to create the bridge or vxlan device. For example, if ensure_physical_in_bridge() got the mtu it could pass along and callees could:

    int_vxlan.link.set_mtu(mtu)

If you manually set the mtu on the correct interfaces do things start working?

Changed in neutron:
status: New → Confirmed
Revision history for this message
bjolo (bjorn-lofdahl) wrote :

hi,

Yes, at least for me. If i set mtu on vxlan interface on both L3 and compute node i can ping 9K packets to the VM via the floating ip. Current workaround is a one-liner setting MTU on all vxlan interafaces running every 10s.

My setup is
kolla-ansible pike
mech driver linuxbridge
type vxlan

Revision history for this message
Ian Kumlien (pomac) wrote :

(Just FYI: me and Björn work on the same cloud, so it applies for me as well)

Akihiro Motoki (amotoki)
tags: added: linuxbridge
Changed in neutron:
importance: Undecided → Medium
Revision history for this message
bjolo (bjorn-lofdahl) wrote :

hi all,

One reflection here regarding the neutron documentation for MTU. Perhaps we are doing something wrong but we can not see neutron ML2 actually implement any mtu handling for neither linuxbridge or ovs. Exactly what plugin is the documentation referring to? What mechanizm drivers are using the global_physnet_mtu and path_mtu parameters?

https://docs.openstack.org/neutron/pike/admin/config-mtu.html

bjolo

Akihiro Motoki (amotoki)
tags: added: needs-attention
Hongbin Lu (hongbin.lu)
Changed in neutron:
assignee: nobody → Hongbin Lu (hongbin.lu)
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/540077

Changed in neutron:
status: Confirmed → In Progress
Akihiro Motoki (amotoki)
summary: - vxlan interfaces doesn't get MTU
+ linuxbridge: vxlan interfaces doesn't get MTU
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/540077
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=2a44b3fa3dd0e7f133c3503d08e1b5fecf6cbc6f
Submitter: Zuul
Branch: master

commit 2a44b3fa3dd0e7f133c3503d08e1b5fecf6cbc6f
Author: Hongbin Lu <email address hidden>
Date: Thu Feb 1 18:13:03 2018 +0000

    Set mtu for VXLAN interface in linuxbridge

    Change-Id: I169613ecf936b4484447d1ca0ed81e4cb5369ce2
    Closes-Bug: #1744101

Changed in neutron:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to neutron (master)

Related fix proposed to branch: master
Review: https://review.openstack.org/546291

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to neutron (master)

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

commit db5fb02b11f143f0ac8c07e16a2cccfaa27215c2
Author: Sławek Kapłoński <email address hidden>
Date: Tue Feb 20 20:51:02 2018 +0100

    [Linuxbridge] Check if vxlan network MTU can be set

    In case when MTU value configured for VXLAN network is
    higher than physical device's MTU - 50 (VXLAN overhead)
    then Linuxbridge agent will log proper error message.

    Change-Id: I2c1142877fee4ab2fa06e6e4d203c78a776d9591
    Related-Bug: #1744101

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 13.0.0.0b1

This issue was fixed in the openstack/neutron 13.0.0.0b1 development milestone.

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

Related fix proposed to branch: master
Review: https://review.openstack.org/563756

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to neutron (master)

Reviewed: https://review.openstack.org/563756
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=60d62d310373a65a362a4bdeb183dcb37511d360
Submitter: Zuul
Branch: master

commit 60d62d310373a65a362a4bdeb183dcb37511d360
Author: Sławek Kapłoński <email address hidden>
Date: Mon Apr 23 22:25:09 2018 +0200

    [Linuxbridge] Handle properly too big VXLAN MTU values

    In case when MTU value configured for VXLAN network is
    higher than physical device's MTU - VXLAN overhead
    then Linuxbridge agent will not be able to create properly
    vxlan interface with desired MTU value.
    In patch [1] there was introduced validation if MTU of
    physical device is big enough to create MTU with required
    MTU value but it was working only for IPv4 tunnels as
    for IPv6 overhead is bigger.

    This patch changes this validation a bit and now it will
    works properly for both IPv4 and IPv6 VXLAN tunnels.

    [1] https://review.openstack.org/#/c/546291/

    Change-Id: Ib707312adb45dae7295884aba4ece6538d330d56
    Related-Bug: #1744101

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

Other bug subscribers

Remote bug watches

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