Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1486344

Summary: [RFE] [ODL] Neutron MTU support with OpenDaylight deployments
Product: Red Hat OpenStack Reporter: Ricardo Noriega <rnoriega>
Component: opendaylightAssignee: Victor Pickard <vpickard>
Status: CLOSED WONTFIX QA Contact: Itzik Brown <itbrown>
Severity: medium Docs Contact:
Priority: medium    
Version: 10.0 (Newton)CC: ealcaniz, larizmen, lpeer, mkolesni, rnoriega, shague, trozet, tvvcox
Target Milestone: Upstream M2Keywords: FutureFeature
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-03-06 16:16:34 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1553839    
Bug Blocks: 1626128    

Description Ricardo Noriega 2017-08-29 14:00:40 UTC
Description of problem:

Neutron parameter "global_physnet_mtu" is not applied to br-int when ODL integration is in place.

It seems that after the OVS configuration wipe done in order to integrate ODL, OVS parameters such mtu size is not configured again so, br-int will always have default values (mtu=1500).


How reproducible:
100% reproducible

Steps to Reproduce:
1.Deploy with ODL integration including environment files with custom NeutronGlobalPhysnetMtu value (more than 1500, ie 8996)
2.Start two instances in same compute node and check connectivity problems between them when big frames are used, for example running "ping -M do -s 8900 xxx.xxx.xxx.xxx" (not possible in cirros images)


Actual results:
Neutron networks get right mtu values but br-int does not (it's still configured with mtu=1500)


Expected results:
Connectivity issues between instances within same compute node using big packets. 
br-int mtu configurable by NeutronGlobalPhysnetMtu parameter

Comment 1 Tim Rozet 2017-08-29 16:06:11 UTC
My guess is global_physnet_mtu in neutron.conf isn't being used.  There is also path_mtu in the ML2.conf.  See:
https://docs.openstack.org/ocata/networking-guide/config-mtu.html

Looks like there is no support to configure that in OOO.  However there is support in puppet-neutron.  Can you try adding it as extraconfig and deploying again?
neutron::plugins::ml2::path_mtu

Comment 3 Luis Arizmendi 2017-08-30 14:33:48 UTC
(In reply to Tim Rozet from comment #1)
> My guess is global_physnet_mtu in neutron.conf isn't being used.  There is
> also path_mtu in the ML2.conf.  See:
> https://docs.openstack.org/ocata/networking-guide/config-mtu.html
> 
> Looks like there is no support to configure that in OOO.  However there is
> support in puppet-neutron.  Can you try adding it as extraconfig and
> deploying again?
> neutron::plugins::ml2::path_mtu


I've reproduced the issue in my lab. 

I deployed a fresh install including extra config "neutron::plugins::ml2::path_mtu: 8996" in both controller and computes, "NeutronGlobalPhysnetMtu: 8996" and "mtu: 9000" in all interfaces (compute.yaml and controller.yaml) but I've found the same behavior.


There is a workaround while this BUG is fixed, you can use "ovs-vsctl set int br-int mtu_request=9000" command to set the br-int mtu (persistent across reboots), so it could be included using a post-script.

Comment 4 Tim Rozet 2017-08-30 16:32:36 UTC
Thanks Luis.  Looks like this is not supported in ODL currently.

Comment 5 Sam Hague 2017-08-30 17:05:28 UTC
Yes, ODL will not configure br-int as mentioned with Luis's workaround.

Looks like the dhcp agent is responsible for setting the MTU in the VM instances for IPv4. ODL will need similar information to then configure the bridges.

Some options so far:
1. Enhancing networking-odl to pass that information.

2. Using hostconfig to pass it.

3. Use the other_config in Open_vSwitch table similar to how local_ip or provider_mappings is set. This looks closest to what the ml2 config is doing.

Comment 7 Mike Kolesnik 2018-04-01 13:06:56 UTC
Seems the MTU is being passed by networking-odl as is to ODL itself, which does nothing with it.
This RFE is therefore for ODL.

2018-04-01 13:21:54.824 25 INFO networking_odl.journal.journal [req-56781fe2-4d22-42dc-9d5c-78c0be432124 - - - - -] Processing (Entry ID: 32) - create network d77b68d8-8e90-40e3-bcd6-8c9c65d60f83 (Time stamp: 63658185714.8)
2018-04-01 13:21:54.825 25 DEBUG networking_odl.common.client [req-56781fe2-4d22-42dc-9d5c-78c0be432124 - - - - -] Sending METHOD (post) URL (http://172.17.1.19:8081/controller/nb/v2/neutron/networks) JSON ({
  "network": {
    "provider:physical_network": "datacentre", 
    "ipv6_address_scope": null, 
    "revision_number": 5, 
    "port_security_enabled": true, 
    "provider:network_type": "flat", 
    "id": "d77b68d8-8e90-40e3-bcd6-8c9c65d60f83", 
    "router:external": true, 
    "availability_zone_hints": [], 
    "availability_zones": [], 
    "ipv4_address_scope": null, 
    "shared": false, 
    "project_id": "ba47b71f15f9457abc5ebccb62d29444", 
    "description": "", 
    "tags": [], 
    "updated_at": "2018-04-01T12:21:54Z", 
    "is_default": false, 
    "provider:segmentation_id": null, 
    "name": "public", 
    "admin_state_up": true, 
    "tenant_id": "ba47b71f15f9457abc5ebccb62d29444", 
    "created_at": "2018-04-01T12:21:54Z", 
    "mtu": 1500, 
    "vlan_transparent": null
  }

Comment 8 Tim Rozet 2018-04-03 18:50:43 UTC
Mike that is the per-network MTU.  I think the 'global_physnet_mtu' is what we need passed to ODL.  It doesn't have to be passed by networking-odl, since it is a global value we can configure it via OOO and could come from an ODL config file.  The setting itself is already done in neutron.conf, so it would seem less redundant to just pass the configured value in Neutron to ODL:

https://github.com/openstack/neutron/blob/e81f4f68d0eb8def599f2addeac56656bd7f12b8/neutron/plugins/common/utils.py#L43

Comment 14 Tim Rozet 2018-08-06 13:42:39 UTC
This should be fixed by https://bugzilla.redhat.com/show_bug.cgi?id=1553839 but it needs to be tested.

Comment 15 Franck Baudin 2019-03-06 16:16:34 UTC
As per depreciation notice [1], closing this bug. Please reopen if relevant for RHOSP13, as this is the only version shipping ODL.

[1] https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/14/html-single/release_notes/index#deprecated_functionality

Comment 16 Franck Baudin 2019-03-06 16:17:45 UTC
As per depreciation notice [1], closing this bug. Please reopen if relevant for RHOSP13, as this is the only version shipping ODL.

[1] https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/14/html-single/release_notes/index#deprecated_functionality