)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"4ca20347021f5cbd6cbe145cf9279c637018afb7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f759dfc2_d3e28db9","updated":"2022-09-02 14:07:23.000000000","message":"This is another case of \"In Neutron the MTU is mutable, is Nova it isn\u0027t\", in the same vein as https://review.opendev.org/c/openstack/nova/+/852367/1\n\nInstead whacking a bunch of moles, maybe we should just figure out how to properly support mutable MTUs in Nova?","commit_id":"b8f82f03e25d09dd8b25f67cb4643c3530f59560"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"99b6a6366ac7c9a59ef85b41301d2362a35ba3a9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1e293ecc_35d1f366","in_reply_to":"555318be_2b74393d","updated":"2022-10-21 09:26:48.000000000","message":"It was discussed during the nova-neutron session and we agreed that in general there is no way to make MTU mutable in nova thus we should update Neutron docs to warn users that updating MTU for network is not as easy for vms (see https://review.opendev.org/c/openstack/neutron-lib/+/862284 for that). But we also agreed to continue with this patch as it can address some valid use case mentioned in the related bug.","commit_id":"b8f82f03e25d09dd8b25f67cb4643c3530f59560"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"96b4ed3786558ce44931dc323ba6c55e8341b151","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"555318be_2b74393d","in_reply_to":"75e8f93b_f6457c2d","updated":"2022-09-07 13:53:13.000000000","message":"Right, Nova *could* update the network\u0027s MTU in our cache. What I\u0027m saying is that currently, Nova considers the MTU immutable, and makes no provisions for updating it, ever. Not in the metadata, not in the instance XML. I\u0027m proposing that we take a more holistic approach to solving this by giving Nova proper mutable MTU support (though it could get ugly when it comes to updating the instance XML). If we *just* address the metadata part, it\u0027s incomplete, and doesn\u0027t solve the other related problems.\n\nI\u0027ve added an item to the Antelope PTG etherpad to discuss this.","commit_id":"b8f82f03e25d09dd8b25f67cb4643c3530f59560"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f6bd4bf849856ab7fad37d01433199af6a16be9d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"75e8f93b_f6457c2d","in_reply_to":"f759dfc2_d3e28db9","updated":"2022-09-07 08:41:56.000000000","message":"But IIUC nova can update network\u0027s mtu in own cache and provide new value in the metadata. The problem in the related bug is that when mtu is provided with metadata, it is stored in the netplan\u0027s config file and then mtu provided by dhcp is ignored.\nAs cloud-init works only during the OS boot the initial mtu value is never updated in the netplan\u0027s config.","commit_id":"b8f82f03e25d09dd8b25f67cb4643c3530f59560"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a13b5e6ae7050093b4e625451dc0552fc709d771","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b96b947c_50a3052e","updated":"2022-11-29 14:47:27.000000000","message":"+1 pending answer to mtu question","commit_id":"db933a78051bc23f8e57ba5a7c21eb2c74e3bcc1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ad338ac124faece1851e854394240057746d4864","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b015617d_141cdf86","updated":"2022-11-29 15:02:28.000000000","message":"I have a question","commit_id":"db933a78051bc23f8e57ba5a7c21eb2c74e3bcc1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"91bd1115bbfb9eb5297533598f3360b9bc651025","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8017ccf3_68241e66","updated":"2022-11-29 15:12:12.000000000","message":"OK, gibi had a concern, let\u0027s stop to merge.","commit_id":"db933a78051bc23f8e57ba5a7c21eb2c74e3bcc1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c626ce63107ba075721c26023e0d651c20a6b32a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8feb3cf3_f6a199b5","updated":"2022-11-29 15:35:14.000000000","message":"readding +2 but can someone else double check what i have found ","commit_id":"6bdc79af30151f683c0f462bc6c69da30ebcbcf9"}],"nova/virt/netutils.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a13b5e6ae7050093b4e625451dc0552fc709d771","unresolved":true,"context_lines":[{"line_number":263,"context_line":"        \u0027id\u0027: link_id,"},{"line_number":264,"context_line":"        \u0027vif_id\u0027: vif[\u0027id\u0027],"},{"line_number":265,"context_line":"        \u0027type\u0027: nic_type,"},{"line_number":266,"context_line":"        \u0027mtu\u0027: vif[\u0027network\u0027][\u0027meta\u0027].get(\u0027mtu\u0027),"},{"line_number":267,"context_line":"        \u0027ethernet_mac_address\u0027: vif.get(\u0027address\u0027),"},{"line_number":268,"context_line":"    }"},{"line_number":269,"context_line":"    return link"}],"source_content_type":"text/x-python","patch_set":3,"id":"2b8a27dc_7fbe57f6","side":"PARENT","line":266,"range":{"start_line":266,"start_character":15,"end_line":266,"end_character":49},"updated":"2022-11-29 14:47:27.000000000","message":"i have one design querstion otherwise i am ok with this\n\ni know neutron supprot l3 routed networks and we can bind subnets to segments\n\nis the MTU a \"gloabl\" parmater for all segments/subnets on a given network or can it vary per segment/subnet.\n\nif its the latter then we need to get the mtu form the segment/subnet teh port is bound too if the former this code is correct.\n\nnova was previously only looking at the network so im basicaly just asking if this is a latent bug or if this is correct as is.","commit_id":"0bab2e5a882235bfd41d2bce86db9885fd0b81b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c0ae73c677c8aa009359f7b5e46a3555dded8a56","unresolved":false,"context_lines":[{"line_number":263,"context_line":"        \u0027id\u0027: link_id,"},{"line_number":264,"context_line":"        \u0027vif_id\u0027: vif[\u0027id\u0027],"},{"line_number":265,"context_line":"        \u0027type\u0027: nic_type,"},{"line_number":266,"context_line":"        \u0027mtu\u0027: vif[\u0027network\u0027][\u0027meta\u0027].get(\u0027mtu\u0027),"},{"line_number":267,"context_line":"        \u0027ethernet_mac_address\u0027: vif.get(\u0027address\u0027),"},{"line_number":268,"context_line":"    }"},{"line_number":269,"context_line":"    return link"}],"source_content_type":"text/x-python","patch_set":3,"id":"c19830e6_428c4b78","side":"PARENT","line":266,"range":{"start_line":266,"start_character":15,"end_line":266,"end_character":49},"in_reply_to":"2b8a27dc_7fbe57f6","updated":"2022-11-29 14:52:32.000000000","message":"ok i looked at the neutorn api ref and the mtu is not a parmater on teh subnet or segment so the expecation is the network mtu will be set to a value that is functional for all network segments so we are good.","commit_id":"0bab2e5a882235bfd41d2bce86db9885fd0b81b2"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3eab56658e0d286d5cc32056eb9f9efc89f935c3","unresolved":false,"context_lines":[{"line_number":263,"context_line":"        \u0027id\u0027: link_id,"},{"line_number":264,"context_line":"        \u0027vif_id\u0027: vif[\u0027id\u0027],"},{"line_number":265,"context_line":"        \u0027type\u0027: nic_type,"},{"line_number":266,"context_line":"        \u0027mtu\u0027: vif[\u0027network\u0027][\u0027meta\u0027].get(\u0027mtu\u0027),"},{"line_number":267,"context_line":"        \u0027ethernet_mac_address\u0027: vif.get(\u0027address\u0027),"},{"line_number":268,"context_line":"    }"},{"line_number":269,"context_line":"    return link"}],"source_content_type":"text/x-python","patch_set":3,"id":"88dc4c26_2c2ef201","side":"PARENT","line":266,"range":{"start_line":266,"start_character":15,"end_line":266,"end_character":49},"in_reply_to":"c19830e6_428c4b78","updated":"2022-11-29 15:01:55.000000000","message":"\u003e ok i looked at the neutorn api ref and the mtu is not a parmater on teh subnet or segment\n\nCorrect, I don\u0027t remember the mtu being one field of the subnet or segment.","commit_id":"0bab2e5a882235bfd41d2bce86db9885fd0b81b2"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ad338ac124faece1851e854394240057746d4864","unresolved":true,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"def _get_link_mtu(vif):"},{"line_number":273,"context_line":"    for subnet in vif[\u0027network\u0027][\u0027subnets\u0027]:"},{"line_number":274,"context_line":"        if subnet[\u0027meta\u0027].get(\u0027dhcp_server\u0027):"},{"line_number":275,"context_line":"            return None"},{"line_number":276,"context_line":"    return vif[\u0027network\u0027][\u0027meta\u0027].get(\u0027mtu\u0027)"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"a9ca9e98_c749b78d","line":274,"updated":"2022-11-29 15:02:28.000000000","message":"Do I understand correctly that this means that if there are two subnets in the network one with dhcp and one without dhcp then regardless of which subnet the port is connected to nova will not set MTU.\nIs this the expected behavior?","commit_id":"db933a78051bc23f8e57ba5a7c21eb2c74e3bcc1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a13b5e6ae7050093b4e625451dc0552fc709d771","unresolved":true,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"def _get_link_mtu(vif):"},{"line_number":273,"context_line":"    for subnet in vif[\u0027network\u0027][\u0027subnets\u0027]:"},{"line_number":274,"context_line":"        if subnet[\u0027meta\u0027].get(\u0027dhcp_server\u0027):"},{"line_number":275,"context_line":"            return None"},{"line_number":276,"context_line":"    return vif[\u0027network\u0027][\u0027meta\u0027].get(\u0027mtu\u0027)"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"60176c38_b84f4588","line":274,"updated":"2022-11-29 14:47:27.000000000","message":"ok took a sec\nwe return none if the dhcp server is present becuase that means the mtu\ncan be provided as aprt of the dhcp lease","commit_id":"db933a78051bc23f8e57ba5a7c21eb2c74e3bcc1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f64efc1468c5fba6e9d6aedfff88d6ff6e3b15d8","unresolved":true,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"def _get_link_mtu(vif):"},{"line_number":273,"context_line":"    for subnet in vif[\u0027network\u0027][\u0027subnets\u0027]:"},{"line_number":274,"context_line":"        if subnet[\u0027meta\u0027].get(\u0027dhcp_server\u0027):"},{"line_number":275,"context_line":"            return None"},{"line_number":276,"context_line":"    return vif[\u0027network\u0027][\u0027meta\u0027].get(\u0027mtu\u0027)"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"d0d50794_9fdbc1c7","line":274,"in_reply_to":"006031f2_0b0aabb6","updated":"2022-11-29 16:23:50.000000000","message":"OK, then I\u0027m cool with this. Thanks for answering my questions.","commit_id":"db933a78051bc23f8e57ba5a7c21eb2c74e3bcc1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9f0c1aa6c6d6f8bc8163f30aa776e72e9f2aa14e","unresolved":true,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"def _get_link_mtu(vif):"},{"line_number":273,"context_line":"    for subnet in vif[\u0027network\u0027][\u0027subnets\u0027]:"},{"line_number":274,"context_line":"        if subnet[\u0027meta\u0027].get(\u0027dhcp_server\u0027):"},{"line_number":275,"context_line":"            return None"},{"line_number":276,"context_line":"    return vif[\u0027network\u0027][\u0027meta\u0027].get(\u0027mtu\u0027)"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"b0573ab6_ed1ec69a","line":274,"in_reply_to":"00a4e15c_906f6b9d","updated":"2022-11-29 16:08:39.000000000","message":"Thank you Sean for looking. It seems to me you are right, the subnet list is already prefiltered for the port. \n\nOne follow up question: Can those prefiltered subnets have conflicting configuration? I.e. one with and one without dhcp_server? If this can happen, is it OK if nova not set MTU in this case?","commit_id":"db933a78051bc23f8e57ba5a7c21eb2c74e3bcc1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3eab56658e0d286d5cc32056eb9f9efc89f935c3","unresolved":false,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"def _get_link_mtu(vif):"},{"line_number":273,"context_line":"    for subnet in vif[\u0027network\u0027][\u0027subnets\u0027]:"},{"line_number":274,"context_line":"        if subnet[\u0027meta\u0027].get(\u0027dhcp_server\u0027):"},{"line_number":275,"context_line":"            return None"},{"line_number":276,"context_line":"    return vif[\u0027network\u0027][\u0027meta\u0027].get(\u0027mtu\u0027)"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"28731cfe_3e657959","line":274,"in_reply_to":"60176c38_b84f4588","updated":"2022-11-29 15:01:55.000000000","message":"Correct, that\u0027s the reasoning behind this fix. We shouldn\u0027t let the guest change the MTU if it\u0027s already done by the dhcp lease.","commit_id":"db933a78051bc23f8e57ba5a7c21eb2c74e3bcc1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bc1756657404b7da97b714088e19dfe71423f71b","unresolved":true,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"def _get_link_mtu(vif):"},{"line_number":273,"context_line":"    for subnet in vif[\u0027network\u0027][\u0027subnets\u0027]:"},{"line_number":274,"context_line":"        if subnet[\u0027meta\u0027].get(\u0027dhcp_server\u0027):"},{"line_number":275,"context_line":"            return None"},{"line_number":276,"context_line":"    return vif[\u0027network\u0027][\u0027meta\u0027].get(\u0027mtu\u0027)"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"b6eea04a_aba075ce","line":274,"in_reply_to":"a9ca9e98_c749b78d","updated":"2022-11-29 15:18:32.000000000","message":"ya so as you said on irc this is not correct.\n\nwe need to first do the intersection of the subnets connected to the fixed ips on the Vif and then check only that subset of subnets to see if they have a dhcp server enabled.","commit_id":"db933a78051bc23f8e57ba5a7c21eb2c74e3bcc1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f9850882cebaccb2f7b19d9873cc1d21a7f6e22f","unresolved":true,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"def _get_link_mtu(vif):"},{"line_number":273,"context_line":"    for subnet in vif[\u0027network\u0027][\u0027subnets\u0027]:"},{"line_number":274,"context_line":"        if subnet[\u0027meta\u0027].get(\u0027dhcp_server\u0027):"},{"line_number":275,"context_line":"            return None"},{"line_number":276,"context_line":"    return vif[\u0027network\u0027][\u0027meta\u0027].get(\u0027mtu\u0027)"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"006031f2_0b0aabb6","line":274,"in_reply_to":"b0573ab6_ed1ec69a","updated":"2022-11-29 16:21:37.000000000","message":"they can but that is fine.\n\nif any of the have dhcp enable then we can safely skip setting the mtu\n\nthe mtu is set per netowrk not per subnet so we dont need all the subnets to have dhcp just one of the one that is connected to the vm.","commit_id":"db933a78051bc23f8e57ba5a7c21eb2c74e3bcc1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"eb1ed06357801dc091ad47d8bbb917422dbcc43e","unresolved":true,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"def _get_link_mtu(vif):"},{"line_number":273,"context_line":"    for subnet in vif[\u0027network\u0027][\u0027subnets\u0027]:"},{"line_number":274,"context_line":"        if subnet[\u0027meta\u0027].get(\u0027dhcp_server\u0027):"},{"line_number":275,"context_line":"            return None"},{"line_number":276,"context_line":"    return vif[\u0027network\u0027][\u0027meta\u0027].get(\u0027mtu\u0027)"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ae38fbf1_3882414f","line":274,"in_reply_to":"b6eea04a_aba075ce","updated":"2022-11-29 15:25:51.000000000","message":"We don\u0027t need an intersection, we just need to get the subnets that match the IP address and check whether they run a DHCP server.","commit_id":"db933a78051bc23f8e57ba5a7c21eb2c74e3bcc1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c626ce63107ba075721c26023e0d651c20a6b32a","unresolved":true,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"def _get_link_mtu(vif):"},{"line_number":273,"context_line":"    for subnet in vif[\u0027network\u0027][\u0027subnets\u0027]:"},{"line_number":274,"context_line":"        if subnet[\u0027meta\u0027].get(\u0027dhcp_server\u0027):"},{"line_number":275,"context_line":"            return None"},{"line_number":276,"context_line":"    return vif[\u0027network\u0027][\u0027meta\u0027].get(\u0027mtu\u0027)"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"00a4e15c_906f6b9d","line":274,"in_reply_to":"b6eea04a_aba075ce","updated":"2022-11-29 15:35:14.000000000","message":"looking at the way we build the vif object\nhttps://github.com/openstack/nova/blob/master/nova/network/neutron.py#L3330-L3332\n\nthis is populated by calling  _nw_info_get_subnets which calls _get_subnets_from_port\n\nhttps://github.com/openstack/nova/blob/master/nova/network/neutron.py#L3568-L3637\n\nwhich only include the subnets that the port is conencted too.\n\nso this actully shoudl be correct as is.","commit_id":"db933a78051bc23f8e57ba5a7c21eb2c74e3bcc1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a13b5e6ae7050093b4e625451dc0552fc709d771","unresolved":true,"context_lines":[{"line_number":273,"context_line":"    for subnet in vif[\u0027network\u0027][\u0027subnets\u0027]:"},{"line_number":274,"context_line":"        if subnet[\u0027meta\u0027].get(\u0027dhcp_server\u0027):"},{"line_number":275,"context_line":"            return None"},{"line_number":276,"context_line":"    return vif[\u0027network\u0027][\u0027meta\u0027].get(\u0027mtu\u0027)"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"def _get_nets(vif, subnet, version, net_num, link_id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"23e78421_1ec87126","line":276,"updated":"2022-11-29 14:47:27.000000000","message":"otherwise we return the mtu","commit_id":"db933a78051bc23f8e57ba5a7c21eb2c74e3bcc1"}],"releasenotes/notes/Do-not-send-mtu-value-in-metadata-for-networks-with-enabled-dhcp-641506f2a13b540f.yaml":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3eab56658e0d286d5cc32056eb9f9efc89f935c3","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f7a14268_425c32f4","updated":"2022-11-29 15:01:55.000000000","message":"nit : in general, we prefer to have a relnote file name to be something like notes/bug-\u003cnumber\u003e or notes/bp-\u003csomething\u003e","commit_id":"db933a78051bc23f8e57ba5a7c21eb2c74e3bcc1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ad338ac124faece1851e854394240057746d4864","unresolved":true,"context_lines":[{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    For networks which have any subnets with enabled DHCP, MTU value is not send"},{"line_number":5,"context_line":"    in the metadata. In such case MTU is configured through the DHCP server."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"6470b621_534706d3","line":5,"range":{"start_line":5,"start_character":21,"end_line":5,"end_character":76},"updated":"2022-11-29 15:02:28.000000000","message":"Even if the subnet the port connected to configured without DHCP?","commit_id":"db933a78051bc23f8e57ba5a7c21eb2c74e3bcc1"}]}
