Bug 1673690
| Summary: | OSP14 Hackfest: OVN Neutron network MTU never get applied | ||
|---|---|---|---|
| Product: | Red Hat OpenStack | Reporter: | Joe Antkowiak <joea> |
| Component: | python-networking-ovn | Assignee: | Kamil Sambor <ksambor> |
| Status: | CLOSED ERRATA | QA Contact: | Eran Kuris <ekuris> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 14.0 (Rocky) | CC: | apevec, dalvarez, lhh, lmartins, majopela |
| Target Milestone: | --- | Keywords: | Triaged, ZStream |
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | python-networking-ovn-5.0.2-0.20190430191341.e673daf.el7ost | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2019-11-06 16:50:27 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: | |||
|
Description
Joe Antkowiak
2019-02-07 19:11:50 UTC
I confirm this is a bug :)
[centos@centos ~]$ openstack network set --mtu 1400 tenant1
[centos@centos ~]$ sudo ovn-nbctl list dhcp_options
_uuid : 42089f8b-b1f7-4585-829e-4e90c82a292e
cidr : "20.0.0.0/24"
external_ids : {"neutron:revision_number"="0", subnet_id="4dbceb38-fa80-4af5-8916-643e7c8a8d1c"}
options : {dns_server="{10.200.16.3, 10.200.16.2, 10.200.16.4}", lease_time="43200", mtu="1442", router="20.0.0.1", server_id="20.0.0.1", server_mac="fa:16:3e:c8:a5:64"}
It has nothing to do with This has nothing to do with the migration, hence, changing the title of the BZ.
Currently networking-ovn won't honor any MTU changes to the network.
The reason this is happening is that networking-ovn maps subnets to OVN DHCP_Options rows (where we store the MTU). As, from API perspective, the MTU is applied per network, updating the network won't get all it subnets updated, hence the MTU change is not applied to the DHCP_Options table.
I could confirm it by just updating the subnet by changing the name for example:
[centos@centos ~]$ openstack network set --mtu 1400 tenant1
[centos@centos ~]$ sudo ovn-nbctl list dhcp_options
_uuid : 42089f8b-b1f7-4585-829e-4e90c82a292e
cidr : "20.0.0.0/24"
external_ids : {"neutron:revision_number"="0", subnet_id="4dbceb38-fa80-4af5-8916-643e7c8a8d1c"}
options : {dns_server="{10.200.16.3, 10.200.16.2, 10.200.16.4}", lease_time="43200", mtu="1442", router="20.0.0.1", server_id="20.0.0.1", server_mac="fa:16:3e:c8:a5:64"}
[centos@centos networking-ovn]$ sudo ovn-nbctl list dhcp_options
_uuid : b29962c9-2a78-4ae7-b243-d5d516b02ec2
cidr : "172.24.4.0/24"
external_ids : {"neutron:revision_number"="0", subnet_id="5f7fa556-1d2b-4fca-b2fa-91202c3b3d74"}
options : {dns_server="{10.200.16.3, 10.200.16.2, 10.200.16.4}", lease_time="43200", mtu="1442", router="172.24.4.1", server_id="172.24.4.1", server_mac="fa:16:3e:92:f1:81"}
[centos@centos networking-ovn]$ openstack subnet set --name subnet11 subnet1
_uuid : 42089f8b-b1f7-4585-829e-4e90c82a292e
cidr : "20.0.0.0/24"
external_ids : {"neutron:revision_number"="1", subnet_id="4dbceb38-fa80-4af5-8916-643e7c8a8d1c"}
options : {dns_server="{10.200.16.3, 10.200.16.2, 10.200.16.4}", lease_time="43200", mtu="1400", router="20.0.0.1", server_id="20.0.0.1", server_mac="fa:16:3e:c8:a5:64"}
The fix should be easy: when updating a network [0], if the MTU changed, update all subnets within that network as well.
And add testing coverage.
[0] https://github.com/openstack/networking-ovn/blob/0cf3e6643af5e45ae62ed26d009e892a20dabd7a/networking_ovn/common/ovn_client.py#L1376
Thanks for looking at this. I did poke at this issue a bit more after opening the bug, and I further observed that after restarting all controllers, computes, and instances, L2 transport for the tenant network is using the new lower MTU (1400), but DHCP option is still sending the original higher MTU (1442), so I wound up with packet loss at packets larger than 1400 bytes. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2019:3750 |