)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"f2cae75285c0be16e8cfd6405badcde704629321","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a01d4728_b55a1f26","updated":"2024-12-18 22:18:14.000000000","message":"Also maybe add a release note mentioning that the driver now supports it?","commit_id":"e737a9f92bd26b94ebff48eeb613d430c71eab8c"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dc4d0c568e77f1c9f79c6b76ec4fce7a85963180","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9b5bf255_ec360c5b","updated":"2024-12-19 14:00:42.000000000","message":"You could add a release note that this driver supports QinQ now.","commit_id":"0b88c9cc1bc9a1115b010a87e9c578d82d99f713"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"51a3f470ce6c46c0cd9fd5f3fc1ff0927fc6e740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"35c27a39_1678defe","updated":"2024-12-23 18:47:04.000000000","message":"a release note maybe?","commit_id":"de10cc0074e97314e6339848a19c673e4d844ea5"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e222ebf4cce9256be101e5ca7be0a831878a2d6a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"50beef19_47cb96d8","updated":"2025-01-21 14:29:13.000000000","message":"nits","commit_id":"61d2fc22279937402160fb0265bc41c1c0ed31bb"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"4457c2e6951c243ceaa0e0a7a579118a2cf70518","unresolved":true,"context_lines":[{"line_number":2087,"context_line":"        if utils.is_external_network(network):"},{"line_number":2088,"context_line":"            params[\u0027other_config\u0027]["},{"line_number":2089,"context_line":"                ovn_const.LS_OPTIONS_BROADCAST_ARPS_ROUTERS] \u003d ("},{"line_number":2090,"context_line":"                    \u0027true\u0027"},{"line_number":2091,"context_line":"                    if ovn_conf.is_broadcast_arps_to_all_routers_enabled() else"},{"line_number":2092,"context_line":"                    \u0027false\u0027)"},{"line_number":2093,"context_line":"        return params"},{"line_number":2094,"context_line":""},{"line_number":2095,"context_line":"    def create_network(self, context, network):"}],"source_content_type":"text/x-python","patch_set":5,"id":"36e76eea_fc04178b","side":"PARENT","line":2092,"range":{"start_line":2090,"start_character":19,"end_line":2092,"end_character":28},"updated":"2024-12-18 22:00:12.000000000","message":"(Thought) I\u0027d rather have a `bool_to_str` helper for such cases","commit_id":"823657223426b003bfe6797a52e03807c6e4efea"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"4457c2e6951c243ceaa0e0a7a579118a2cf70518","unresolved":true,"context_lines":[{"line_number":2047,"context_line":"        network \u003d network or self._plugin.get_network("},{"line_number":2048,"context_line":"            n_context.get_admin_context(), network_id)"},{"line_number":2049,"context_line":"        if self._get_vlan_passthru(network) \u003d\u003d \u0027true\u0027:"},{"line_number":2050,"context_line":"            options[ovn_const.VLAN_ETHTYPE] \u003d self._get_vlan_ethtype(network)"},{"line_number":2051,"context_line":""},{"line_number":2052,"context_line":"        cmd \u003d self._nb_idl.create_lswitch_port("},{"line_number":2053,"context_line":"            lport_name\u003dutils.ovn_provnet_port_name(segment[\u0027id\u0027]),"}],"source_content_type":"text/x-python","patch_set":5,"id":"1300b09b_9fcc7e0e","line":2050,"updated":"2024-12-18 22:00:12.000000000","message":"nit: I think it\u0027s better to set it only when the non-default value is used. OVS folks always tell neutron puts too much stuff into the db...","commit_id":"e737a9f92bd26b94ebff48eeb613d430c71eab8c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"7cfb512c80df73c761f26e6ae2634b50cc0583fd","unresolved":false,"context_lines":[{"line_number":2047,"context_line":"        network \u003d network or self._plugin.get_network("},{"line_number":2048,"context_line":"            n_context.get_admin_context(), network_id)"},{"line_number":2049,"context_line":"        if self._get_vlan_passthru(network) \u003d\u003d \u0027true\u0027:"},{"line_number":2050,"context_line":"            options[ovn_const.VLAN_ETHTYPE] \u003d self._get_vlan_ethtype(network)"},{"line_number":2051,"context_line":""},{"line_number":2052,"context_line":"        cmd \u003d self._nb_idl.create_lswitch_port("},{"line_number":2053,"context_line":"            lport_name\u003dutils.ovn_provnet_port_name(segment[\u0027id\u0027]),"}],"source_content_type":"text/x-python","patch_set":5,"id":"a4fa081c_b7d6349a","line":2050,"in_reply_to":"1300b09b_9fcc7e0e","updated":"2024-12-19 09:58:03.000000000","message":"Done","commit_id":"e737a9f92bd26b94ebff48eeb613d430c71eab8c"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"4457c2e6951c243ceaa0e0a7a579118a2cf70518","unresolved":true,"context_lines":[{"line_number":2067,"context_line":"        self._transaction([cmd])"},{"line_number":2068,"context_line":""},{"line_number":2069,"context_line":"    def _get_vlan_passthru(self, network):"},{"line_number":2070,"context_line":"        vlan_passthru \u003d \u0027false\u0027"},{"line_number":2071,"context_line":"        if (network.get(\u0027vlan_transparent\u0027) or"},{"line_number":2072,"context_line":"                network.get(qinq_apidef.QINQ_FIELD)):"},{"line_number":2073,"context_line":"            vlan_passthru \u003d \u0027true\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"86d7ec8c_bebd75f5","line":2070,"updated":"2024-12-18 22:00:12.000000000","message":"ehm... why not using booleans?","commit_id":"e737a9f92bd26b94ebff48eeb613d430c71eab8c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"7cfb512c80df73c761f26e6ae2634b50cc0583fd","unresolved":false,"context_lines":[{"line_number":2067,"context_line":"        self._transaction([cmd])"},{"line_number":2068,"context_line":""},{"line_number":2069,"context_line":"    def _get_vlan_passthru(self, network):"},{"line_number":2070,"context_line":"        vlan_passthru \u003d \u0027false\u0027"},{"line_number":2071,"context_line":"        if (network.get(\u0027vlan_transparent\u0027) or"},{"line_number":2072,"context_line":"                network.get(qinq_apidef.QINQ_FIELD)):"},{"line_number":2073,"context_line":"            vlan_passthru \u003d \u0027true\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"11f3257f_7dfb146d","line":2070,"in_reply_to":"86d7ec8c_bebd75f5","updated":"2024-12-19 09:58:03.000000000","message":"Done","commit_id":"e737a9f92bd26b94ebff48eeb613d430c71eab8c"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"4457c2e6951c243ceaa0e0a7a579118a2cf70518","unresolved":true,"context_lines":[{"line_number":2068,"context_line":""},{"line_number":2069,"context_line":"    def _get_vlan_passthru(self, network):"},{"line_number":2070,"context_line":"        vlan_passthru \u003d \u0027false\u0027"},{"line_number":2071,"context_line":"        if (network.get(\u0027vlan_transparent\u0027) or"},{"line_number":2072,"context_line":"                network.get(qinq_apidef.QINQ_FIELD)):"},{"line_number":2073,"context_line":"            vlan_passthru \u003d \u0027true\u0027"},{"line_number":2074,"context_line":"        return vlan_passthru"}],"source_content_type":"text/x-python","patch_set":5,"id":"b2985fd7_dc71b535","line":2071,"updated":"2024-12-18 22:00:12.000000000","message":"nit: you can just `return bool(network.get(...) or ...)` I think; I\u0027d rather convert `bool` -\u003e `str` as needed in line 2101 than carry around bool-y strings.","commit_id":"e737a9f92bd26b94ebff48eeb613d430c71eab8c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"7cfb512c80df73c761f26e6ae2634b50cc0583fd","unresolved":false,"context_lines":[{"line_number":2068,"context_line":""},{"line_number":2069,"context_line":"    def _get_vlan_passthru(self, network):"},{"line_number":2070,"context_line":"        vlan_passthru \u003d \u0027false\u0027"},{"line_number":2071,"context_line":"        if (network.get(\u0027vlan_transparent\u0027) or"},{"line_number":2072,"context_line":"                network.get(qinq_apidef.QINQ_FIELD)):"},{"line_number":2073,"context_line":"            vlan_passthru \u003d \u0027true\u0027"},{"line_number":2074,"context_line":"        return vlan_passthru"}],"source_content_type":"text/x-python","patch_set":5,"id":"ddbf22ec_b3396d3b","line":2071,"in_reply_to":"b2985fd7_dc71b535","updated":"2024-12-19 09:58:03.000000000","message":"yes, done, thx 😊","commit_id":"e737a9f92bd26b94ebff48eeb613d430c71eab8c"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"4457c2e6951c243ceaa0e0a7a579118a2cf70518","unresolved":true,"context_lines":[{"line_number":2077,"context_line":"        ethtype \u003d ovn_const.ETHTYPE_8021q"},{"line_number":2078,"context_line":"        if network.get(qinq_apidef.QINQ_FIELD):"},{"line_number":2079,"context_line":"            ethtype \u003d ovn_const.ETHTYPE_8021ad"},{"line_number":2080,"context_line":"        return ethtype"},{"line_number":2081,"context_line":""},{"line_number":2082,"context_line":"    def _gen_network_parameters(self, network):"},{"line_number":2083,"context_line":"        params \u003d {\u0027external_ids\u0027: {"}],"source_content_type":"text/x-python","patch_set":5,"id":"1e928c8b_12df60cb","line":2080,"updated":"2024-12-18 22:00:12.000000000","message":"nit: no need for a variable\n\n```\nif network.get(...):\n    return ...\nreturn ...\n```","commit_id":"e737a9f92bd26b94ebff48eeb613d430c71eab8c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"7cfb512c80df73c761f26e6ae2634b50cc0583fd","unresolved":false,"context_lines":[{"line_number":2077,"context_line":"        ethtype \u003d ovn_const.ETHTYPE_8021q"},{"line_number":2078,"context_line":"        if network.get(qinq_apidef.QINQ_FIELD):"},{"line_number":2079,"context_line":"            ethtype \u003d ovn_const.ETHTYPE_8021ad"},{"line_number":2080,"context_line":"        return ethtype"},{"line_number":2081,"context_line":""},{"line_number":2082,"context_line":"    def _gen_network_parameters(self, network):"},{"line_number":2083,"context_line":"        params \u003d {\u0027external_ids\u0027: {"}],"source_content_type":"text/x-python","patch_set":5,"id":"7bfc1b02_ae201501","line":2080,"in_reply_to":"1e928c8b_12df60cb","updated":"2024-12-19 09:58:03.000000000","message":"Done","commit_id":"e737a9f92bd26b94ebff48eeb613d430c71eab8c"}],"neutron/tests/functional/plugins/ml2/drivers/ovn/mech_driver/test_mech_driver.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"4457c2e6951c243ceaa0e0a7a579118a2cf70518","unresolved":true,"context_lines":[{"line_number":1071,"context_line":"        if expected_ethtype:"},{"line_number":1072,"context_line":"            self.assertEqual(expected_ethtype,"},{"line_number":1073,"context_line":"                             ovn_localnetport.options[ovn_const.VLAN_ETHTYPE])"},{"line_number":1074,"context_line":"            # This means that \"vlan-passthrou\" should be set to \"true\" for"},{"line_number":1075,"context_line":"            # the LS"},{"line_number":1076,"context_line":"            self.assertEqual(\u0027true\u0027,"},{"line_number":1077,"context_line":"                             ovn_network.other_config[ovn_const.VLAN_PASSTHRU])"}],"source_content_type":"text/x-python","patch_set":5,"id":"e55bac29_097d413f","line":1074,"updated":"2024-12-18 22:00:12.000000000","message":"nit: `vlan-passthru`? also below.","commit_id":"e737a9f92bd26b94ebff48eeb613d430c71eab8c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"7cfb512c80df73c761f26e6ae2634b50cc0583fd","unresolved":false,"context_lines":[{"line_number":1071,"context_line":"        if expected_ethtype:"},{"line_number":1072,"context_line":"            self.assertEqual(expected_ethtype,"},{"line_number":1073,"context_line":"                             ovn_localnetport.options[ovn_const.VLAN_ETHTYPE])"},{"line_number":1074,"context_line":"            # This means that \"vlan-passthrou\" should be set to \"true\" for"},{"line_number":1075,"context_line":"            # the LS"},{"line_number":1076,"context_line":"            self.assertEqual(\u0027true\u0027,"},{"line_number":1077,"context_line":"                             ovn_network.other_config[ovn_const.VLAN_PASSTHRU])"}],"source_content_type":"text/x-python","patch_set":5,"id":"8eef9eea_57deaf3d","line":1074,"in_reply_to":"e55bac29_097d413f","updated":"2024-12-19 09:58:03.000000000","message":"Done","commit_id":"e737a9f92bd26b94ebff48eeb613d430c71eab8c"}],"releasenotes/notes/add-qinq-attribute-to-the-network-resource-4a1ab8497dfd16b8.yaml":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e222ebf4cce9256be101e5ca7be0a831878a2d6a","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    There is a new attribute ``qinq`` added to the ``network`` resource. This"},{"line_number":5,"context_line":"    new attribute can be used to enable for the network VLAN transparency using"},{"line_number":6,"context_line":"    ``802.1ad`` standard where outer tag (``S-Tag``) frame have ``0x8a88`` as"},{"line_number":7,"context_line":"    ethertype and the inner tag (``C-Tag``) have ``0x8100`` ethertype."},{"line_number":8,"context_line":"    The behavior of this is very similar to the existing ``vlan_transparent``"},{"line_number":9,"context_line":"    extension, with the difference in the standard and ethtypes used for the"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"0da22e78_6704ef41","line":6,"updated":"2025-01-21 14:29:13.000000000","message":"have -\u003e has","commit_id":"61d2fc22279937402160fb0265bc41c1c0ed31bb"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"72823dd3ae51780766eaecad7a087fee5665cc12","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    There is a new attribute ``qinq`` added to the ``network`` resource. This"},{"line_number":5,"context_line":"    new attribute can be used to enable for the network VLAN transparency using"},{"line_number":6,"context_line":"    ``802.1ad`` standard where outer tag (``S-Tag``) frame have ``0x8a88`` as"},{"line_number":7,"context_line":"    ethertype and the inner tag (``C-Tag``) have ``0x8100`` ethertype."},{"line_number":8,"context_line":"    The behavior of this is very similar to the existing ``vlan_transparent``"},{"line_number":9,"context_line":"    extension, with the difference in the standard and ethtypes used for the"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"9d8484c6_0821fce5","line":6,"in_reply_to":"0da22e78_6704ef41","updated":"2025-01-21 14:57:39.000000000","message":"Done","commit_id":"61d2fc22279937402160fb0265bc41c1c0ed31bb"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e222ebf4cce9256be101e5ca7be0a831878a2d6a","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    There is a new attribute ``qinq`` added to the ``network`` resource. This"},{"line_number":5,"context_line":"    new attribute can be used to enable for the network VLAN transparency using"},{"line_number":6,"context_line":"    ``802.1ad`` standard where outer tag (``S-Tag``) frame have ``0x8a88`` as"},{"line_number":7,"context_line":"    ethertype and the inner tag (``C-Tag``) have ``0x8100`` ethertype."},{"line_number":8,"context_line":"    The behavior of this is very similar to the existing ``vlan_transparent``"},{"line_number":9,"context_line":"    extension, with the difference in the standard and ethtypes used for the"},{"line_number":10,"context_line":"    outer tag."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"007ff9b3_165ba733","line":7,"updated":"2025-01-21 14:29:13.000000000","message":"ditto","commit_id":"61d2fc22279937402160fb0265bc41c1c0ed31bb"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"72823dd3ae51780766eaecad7a087fee5665cc12","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    There is a new attribute ``qinq`` added to the ``network`` resource. This"},{"line_number":5,"context_line":"    new attribute can be used to enable for the network VLAN transparency using"},{"line_number":6,"context_line":"    ``802.1ad`` standard where outer tag (``S-Tag``) frame have ``0x8a88`` as"},{"line_number":7,"context_line":"    ethertype and the inner tag (``C-Tag``) have ``0x8100`` ethertype."},{"line_number":8,"context_line":"    The behavior of this is very similar to the existing ``vlan_transparent``"},{"line_number":9,"context_line":"    extension, with the difference in the standard and ethtypes used for the"},{"line_number":10,"context_line":"    outer tag."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"c267051a_a5356071","line":7,"in_reply_to":"007ff9b3_165ba733","updated":"2025-01-21 14:57:39.000000000","message":"Done","commit_id":"61d2fc22279937402160fb0265bc41c1c0ed31bb"}]}
