)]}'
{"doc/source/admin/config-mtu.rst":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"06bef86a33192a4f49995310b734cf9efb09c0c8","unresolved":false,"context_lines":[{"line_number":35,"context_line":"   plugins that implement the ``net-mtu-enh`` API extension.)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"   When using the Open vSwitch or Linux bridge drivers, new MTU calculations"},{"line_number":38,"context_line":"   will be propogated automatically after restarting the ``l3-agent`` service."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Case 1"},{"line_number":41,"context_line":"------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"bf3e73b7_762d6845","line":38,"updated":"2017-08-04 22:02:10.000000000","message":"this line should be dropped now","commit_id":"77fbad687c749a3d26badbd308274104ec140c0b"}],"neutron/agent/l3/agent.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"99826091cb6a099991a6641efc18112295442aad","unresolved":false,"context_lines":[{"line_number":436,"context_line":"        LOG.debug(\u0027Got router added to agent :%r\u0027, payload)"},{"line_number":437,"context_line":"        self.routers_updated(context, payload)"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"    def network_update(self, context, **kwargs):"},{"line_number":440,"context_line":"        network_id \u003d kwargs[\u0027network\u0027][\u0027id\u0027]"},{"line_number":441,"context_line":"        for ri in self.router_info.values():"},{"line_number":442,"context_line":"            ports \u003d itertools.chain(ri.internal_ports, [ri.ex_gw_port])"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf3e73b7_df0e6731","line":439,"updated":"2017-08-05 00:31:30.000000000","message":"Nice, this turned out to be succinct.","commit_id":"77fbad687c749a3d26badbd308274104ec140c0b"}],"neutron/agent/l3/router_info.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"99826091cb6a099991a6641efc18112295442aad","unresolved":false,"context_lines":[{"line_number":590,"context_line":""},{"line_number":591,"context_line":"        # Enable RA"},{"line_number":592,"context_line":"        if enable_ra:"},{"line_number":593,"context_line":"            self.enable_radvd(self.internal_ports)"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":"        existing_devices \u003d self._get_existing_devices()"},{"line_number":596,"context_line":"        current_internal_devs \u003d set(n for n in existing_devices"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf3e73b7_ff112b55","line":593,"updated":"2017-08-05 00:31:30.000000000","message":"Is this change related?","commit_id":"77fbad687c749a3d26badbd308274104ec140c0b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"704b1642b913bf29a7c2c5d19a12255e32bd7fd4","unresolved":false,"context_lines":[{"line_number":590,"context_line":""},{"line_number":591,"context_line":"        # Enable RA"},{"line_number":592,"context_line":"        if enable_ra:"},{"line_number":593,"context_line":"            self.enable_radvd(self.internal_ports)"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":"        existing_devices \u003d self._get_existing_devices()"},{"line_number":596,"context_line":"        current_internal_devs \u003d set(n for n in existing_devices"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf3e73b7_bf75e3fc","line":593,"in_reply_to":"bf3e73b7_ff112b55","updated":"2017-08-07 17:39:40.000000000","message":"Yes. \u0027internal_ports\u0027 contain old info, including mtu","commit_id":"77fbad687c749a3d26badbd308274104ec140c0b"}],"neutron/db/db_base_plugin_v2.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"7df4d9cfc968f696370ec100f957b9ef8cf8d6c9","unresolved":false,"context_lines":[{"line_number":473,"context_line":"        marker_obj \u003d ndb_utils.get_marker_obj(self, context, \u0027network\u0027,"},{"line_number":474,"context_line":"                                              limit, marker)"},{"line_number":475,"context_line":"        return model_query.get_collection(context, models_v2.Network,"},{"line_number":476,"context_line":"                                          None,  # no postprocessing"},{"line_number":477,"context_line":"                                          filters\u003dfilters, fields\u003dfields,"},{"line_number":478,"context_line":"                                          sorts\u003dsorts,"},{"line_number":479,"context_line":"                                          limit\u003dlimit,"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f436f4f_83a9807c","line":476,"range":{"start_line":476,"start_character":49,"end_line":476,"end_character":68},"updated":"2017-08-09 13:23:57.000000000","message":"Could you provide more detail context on why postprocessing needs to be avoided here? Is it to handle null MTU? I am not sure ....","commit_id":"45f1fadfd12541154e98424dcf079390ce0d095b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0324cb7923b3065f598fcb41a8e8eacc2e47ba76","unresolved":false,"context_lines":[{"line_number":473,"context_line":"        marker_obj \u003d ndb_utils.get_marker_obj(self, context, \u0027network\u0027,"},{"line_number":474,"context_line":"                                              limit, marker)"},{"line_number":475,"context_line":"        return model_query.get_collection(context, models_v2.Network,"},{"line_number":476,"context_line":"                                          None,  # no postprocessing"},{"line_number":477,"context_line":"                                          filters\u003dfilters, fields\u003dfields,"},{"line_number":478,"context_line":"                                          sorts\u003dsorts,"},{"line_number":479,"context_line":"                                          limit\u003dlimit,"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f436f4f_09280a32","line":476,"range":{"start_line":476,"start_character":49,"end_line":476,"end_character":68},"in_reply_to":"9f436f4f_83a9807c","updated":"2017-08-09 16:51:47.000000000","message":"Done","commit_id":"45f1fadfd12541154e98424dcf079390ce0d095b"}],"neutron/db/migration/alembic_migrations/versions/pike/expand/7d32f979895f_add_mtu_for_networks.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e1bed5c25b008ea07b135ef5e823770cf7303021","unresolved":false,"context_lines":[{"line_number":27,"context_line":"revision \u003d \u00277d32f979895f\u0027"},{"line_number":28,"context_line":"down_revision \u003d \u0027349b6fd605a6\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"# require the migration rule that dropped the mtu column in the past"},{"line_number":31,"context_line":"depends_on \u003d (\u0027b67e765a3524\u0027,)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"9f436f4f_362b0731","line":30,"updated":"2017-08-10 17:49:36.000000000","message":"lmao","commit_id":"b49085d8c11279c022a670dbde2fb40e8d7b4c75"}],"neutron/extensions/netmtu_enh.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"7df4d9cfc968f696370ec100f957b9ef8cf8d6c9","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @classmethod"},{"line_number":40,"context_line":"    def get_alias(cls):"},{"line_number":41,"context_line":"        return \u0027net-mtu-enh\u0027"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @classmethod"},{"line_number":44,"context_line":"    def get_description(cls):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f436f4f_80e1769d","line":41,"range":{"start_line":41,"start_character":24,"end_line":41,"end_character":27},"updated":"2017-08-09 13:23:57.000000000","message":"Does \u0027enh\u0027 means \u0027enhancement\u0027? IMHO \u0027net-mtu-updatable\u0027 or \u0027net-mtu-writable\u0027 looks better as it describes what it provides.","commit_id":"45f1fadfd12541154e98424dcf079390ce0d095b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0324cb7923b3065f598fcb41a8e8eacc2e47ba76","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @classmethod"},{"line_number":40,"context_line":"    def get_alias(cls):"},{"line_number":41,"context_line":"        return \u0027net-mtu-enh\u0027"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @classmethod"},{"line_number":44,"context_line":"    def get_description(cls):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f436f4f_492bb2ea","line":41,"range":{"start_line":41,"start_character":24,"end_line":41,"end_character":27},"in_reply_to":"9f436f4f_80e1769d","updated":"2017-08-09 16:51:47.000000000","message":"Done","commit_id":"45f1fadfd12541154e98424dcf079390ce0d095b"}],"neutron/plugins/ml2/plugin.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"99826091cb6a099991a6641efc18112295442aad","unresolved":false,"context_lines":[{"line_number":732,"context_line":"        except KeyError:"},{"line_number":733,"context_line":"            segments \u003d [network_db]"},{"line_number":734,"context_line":"        for s in segments:"},{"line_number":735,"context_line":"            segment_type \u003d s.get(\u0027network_type\u0027)"},{"line_number":736,"context_line":"            if segment_type is None:"},{"line_number":737,"context_line":"                continue"},{"line_number":738,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf3e73b7_3f08d326","line":735,"updated":"2017-08-05 00:31:30.000000000","message":"I assume this had to change to .get because it\u0027s a DB object now?","commit_id":"77fbad687c749a3d26badbd308274104ec140c0b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"704b1642b913bf29a7c2c5d19a12255e32bd7fd4","unresolved":false,"context_lines":[{"line_number":732,"context_line":"        except KeyError:"},{"line_number":733,"context_line":"            segments \u003d [network_db]"},{"line_number":734,"context_line":"        for s in segments:"},{"line_number":735,"context_line":"            segment_type \u003d s.get(\u0027network_type\u0027)"},{"line_number":736,"context_line":"            if segment_type is None:"},{"line_number":737,"context_line":"                continue"},{"line_number":738,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf3e73b7_5f66f753","line":735,"in_reply_to":"bf3e73b7_3f08d326","updated":"2017-08-07 17:39:40.000000000","message":"yeap","commit_id":"77fbad687c749a3d26badbd308274104ec140c0b"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"99826091cb6a099991a6641efc18112295442aad","unresolved":false,"context_lines":[{"line_number":803,"context_line":""},{"line_number":804,"context_line":"            self._process_l3_create(context, result, net_data)"},{"line_number":805,"context_line":"            self.type_manager.extend_network_dict_provider(context, result)"},{"line_number":806,"context_line":"            context.session.refresh(net_db)"},{"line_number":807,"context_line":""},{"line_number":808,"context_line":"            # Update the transparent vlan if configured"},{"line_number":809,"context_line":"            if utils.is_extension_supported(self, \u0027vlan-transparent\u0027):"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf3e73b7_1f0d0f37","line":806,"updated":"2017-08-05 00:31:30.000000000","message":"why the refresh?","commit_id":"77fbad687c749a3d26badbd308274104ec140c0b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"704b1642b913bf29a7c2c5d19a12255e32bd7fd4","unresolved":false,"context_lines":[{"line_number":803,"context_line":""},{"line_number":804,"context_line":"            self._process_l3_create(context, result, net_data)"},{"line_number":805,"context_line":"            self.type_manager.extend_network_dict_provider(context, result)"},{"line_number":806,"context_line":"            context.session.refresh(net_db)"},{"line_number":807,"context_line":""},{"line_number":808,"context_line":"            # Update the transparent vlan if configured"},{"line_number":809,"context_line":"            if utils.is_extension_supported(self, \u0027vlan-transparent\u0027):"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf3e73b7_3680d98b","line":806,"in_reply_to":"bf3e73b7_1f0d0f37","updated":"2017-08-07 17:39:40.000000000","message":"Yeah, I guess it\u0027s not needed anymore, it\u0027s a leftover from a previous revision of the patch where I was processing segments after process_l3_create call.","commit_id":"77fbad687c749a3d26badbd308274104ec140c0b"},{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"39cd1d7ce510b9bd8b2ce183dbdf93c2011e5431","unresolved":false,"context_lines":[{"line_number":881,"context_line":"                # removed in Queens when we populate all mtu attributes and"},{"line_number":882,"context_line":"                # enforce it\u0027s not nullable on database level"},{"line_number":883,"context_line":"                db_network.mtu is None):"},{"line_number":884,"context_line":"                db_network.mtu \u003d self._get_network_mtu(db_network)"},{"line_number":885,"context_line":""},{"line_number":886,"context_line":"            updated_network \u003d self._make_network_dict("},{"line_number":887,"context_line":"                db_network, context\u003dcontext)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9f436f4f_ea838655","line":884,"range":{"start_line":884,"start_character":55,"end_line":884,"end_character":65},"updated":"2017-08-09 07:46:04.000000000","message":"Why we need to validate here?","commit_id":"dd49d619956b749e1d35fcfc01edfacb29ba5ad2"},{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"39cd1d7ce510b9bd8b2ce183dbdf93c2011e5431","unresolved":false,"context_lines":[{"line_number":951,"context_line":"                if net.mtu is None:"},{"line_number":952,"context_line":"                    net.mtu \u003d self._get_network_mtu(net, validate\u003dFalse)"},{"line_number":953,"context_line":""},{"line_number":954,"context_line":"            net_data \u003d ["},{"line_number":955,"context_line":"                self._make_network_dict(net, context\u003dcontext)"},{"line_number":956,"context_line":"                for net in nets_db"},{"line_number":957,"context_line":"            ]"},{"line_number":958,"context_line":""},{"line_number":959,"context_line":"            self.type_manager.extend_networks_dict_provider(context, net_data)"},{"line_number":960,"context_line":"            nets \u003d self._filter_nets_provider(context, net_data, filters)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9f436f4f_3721f7fc","line":957,"range":{"start_line":954,"start_character":12,"end_line":957,"end_character":13},"updated":"2017-08-09 07:46:04.000000000","message":"How about remove these lines under the L950 to avoid loop again?","commit_id":"dd49d619956b749e1d35fcfc01edfacb29ba5ad2"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"7df4d9cfc968f696370ec100f957b9ef8cf8d6c9","unresolved":false,"context_lines":[{"line_number":771,"context_line":"        if validate:"},{"line_number":772,"context_line":"            # validate that requested mtu conforms to allocated segments"},{"line_number":773,"context_line":"            if net_mtu and max_mtu and max_mtu \u003c net_mtu:"},{"line_number":774,"context_line":"                msg \u003d _(\"Requested MTU is too high, maximum is %d\") % max_mtu"},{"line_number":775,"context_line":"                raise exc.InvalidInput(error_message\u003dmsg)"},{"line_number":776,"context_line":""},{"line_number":777,"context_line":"        # if mtu is not set in database, use the maximum possible"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f436f4f_e3216c4f","line":774,"range":{"start_line":774,"start_character":46,"end_line":774,"end_character":50},"updated":"2017-08-09 13:23:57.000000000","message":"I think we usually use big packets or small packets. How about \u0027big\u0027?","commit_id":"45f1fadfd12541154e98424dcf079390ce0d095b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0324cb7923b3065f598fcb41a8e8eacc2e47ba76","unresolved":false,"context_lines":[{"line_number":771,"context_line":"        if validate:"},{"line_number":772,"context_line":"            # validate that requested mtu conforms to allocated segments"},{"line_number":773,"context_line":"            if net_mtu and max_mtu and max_mtu \u003c net_mtu:"},{"line_number":774,"context_line":"                msg \u003d _(\"Requested MTU is too high, maximum is %d\") % max_mtu"},{"line_number":775,"context_line":"                raise exc.InvalidInput(error_message\u003dmsg)"},{"line_number":776,"context_line":""},{"line_number":777,"context_line":"        # if mtu is not set in database, use the maximum possible"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f436f4f_89487acc","line":774,"range":{"start_line":774,"start_character":46,"end_line":774,"end_character":50},"in_reply_to":"9f436f4f_e3216c4f","updated":"2017-08-09 16:51:47.000000000","message":"Done","commit_id":"45f1fadfd12541154e98424dcf079390ce0d095b"}],"neutron/tests/tempest/api/test_networks.py":[{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"39cd1d7ce510b9bd8b2ce183dbdf93c2011e5431","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    @testtools.skipUnless(config.CONF.network_feature_enabled.ipv6,"},{"line_number":150,"context_line":"                          \u0027IPv6 is not enabled\u0027)"},{"line_number":151,"context_line":"    def test_update_network_custom_mtu(self):"},{"line_number":152,"context_line":"        # should be supported by all implementations, as per api-ref"},{"line_number":153,"context_line":"        network \u003d self.create_network(mtu\u003d68)"},{"line_number":154,"context_line":"        body \u003d self.client.show_network(network[\u0027id\u0027])[\u0027network\u0027]"},{"line_number":155,"context_line":"        self.assertEqual(68, body[\u0027mtu\u0027])"}],"source_content_type":"text/x-python","patch_set":15,"id":"9f436f4f_97e1c301","line":152,"range":{"start_line":152,"start_character":9,"end_line":152,"end_character":10},"updated":"2017-08-09 07:46:04.000000000","message":"nit: 68","commit_id":"dd49d619956b749e1d35fcfc01edfacb29ba5ad2"},{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"39cd1d7ce510b9bd8b2ce183dbdf93c2011e5431","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        body \u003d self.client.show_network(network[\u0027id\u0027])[\u0027network\u0027]"},{"line_number":155,"context_line":"        self.assertEqual(68, body[\u0027mtu\u0027])"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # should be supported by all ipv6 compliant implementations"},{"line_number":158,"context_line":"        self.client.update_network(network[\u0027id\u0027], mtu\u003d1280)"},{"line_number":159,"context_line":"        body \u003d self.client.show_network(network[\u0027id\u0027])[\u0027network\u0027]"},{"line_number":160,"context_line":"        self.assertEqual(1280, body[\u0027mtu\u0027])"}],"source_content_type":"text/x-python","patch_set":15,"id":"9f436f4f_77e65f19","line":157,"range":{"start_line":157,"start_character":9,"end_line":157,"end_character":10},"updated":"2017-08-09 07:46:04.000000000","message":"nit: 1280","commit_id":"dd49d619956b749e1d35fcfc01edfacb29ba5ad2"}],"releasenotes/notes/add-net-mtu-enh-api-extension-f7038f85f3494a74.yaml":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"5f6263af61024dd1a1c96c35e8d35b73170cc236","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    The new ``net-mtu-enh`` extension API definition has been added. The new extension"},{"line_number":5,"context_line":"    indicates that the network ``mtu`` attribute is writeable. Plugins"},{"line_number":6,"context_line":"    supporting the new extension are expected to also support ``net-mtu``. The"},{"line_number":7,"context_line":"    first plugin that gets support for the new extension is ``ml2``."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"9f436f4f_fb47edbb","line":7,"updated":"2017-08-08 16:46:22.000000000","message":"I think it would be a good idea in the release note to indicate the behavior change for MTU config adjustments.","commit_id":"dd49d619956b749e1d35fcfc01edfacb29ba5ad2"}]}
