)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"de9ee0de58daeeac6f860229898f3ab351b37633","unresolved":true,"context_lines":[{"line_number":16,"context_line":"register and holds the IP address, needed by the \"tc\" library to set"},{"line_number":17,"context_line":"the QoS rules."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Closes-Bug: #1962465"},{"line_number":20,"context_line":"Change-Id: I3a09718c6e79fd1f37eb75264389c4e5043076a7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"18b9d073_699d0353","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":20},"updated":"2022-03-02 01:07:39.000000000","message":"According to the bug descirption, it says two public networks produce two same floating IP. I cannot imagine how could this happen in a real production environment. Floating IP always means public IP, it will be accessible from outside world, in such case, those can not be in service at same time. Cloud provider can not sell one IP to more than one user. For such purely experimental testing, IMO, it should be prohibited from the API layer.","commit_id":"e3f67cd21243138de141fb85877c50af7e6d017b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0c318856f142df9f552120699bfb1e5a8fabc2e3","unresolved":true,"context_lines":[{"line_number":16,"context_line":"register and holds the IP address, needed by the \"tc\" library to set"},{"line_number":17,"context_line":"the QoS rules."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Closes-Bug: #1962465"},{"line_number":20,"context_line":"Change-Id: I3a09718c6e79fd1f37eb75264389c4e5043076a7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"d7f5616d_6c64a602","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":20},"in_reply_to":"0b8ecf55_fe74ccb7","updated":"2022-03-02 11:45:42.000000000","message":"Those external networks for OpenStack doesn\u0027t need to have access to internet. We have this deployment in learning environments: several private networks connected to separate external networks, each one in an independent physical network. The CIDRs of the external networks are the same. Of course, we can\u0027t use QoS there now.\n\nExternal network doesn\u0027t mean that this network has connectivity to internet.\n\n[1] is checking the subnet CIDRs for a single router. In the case of this bug, the L3 agent and the QoS extension is handling all the routers hosted in this node in a single place. Duplicated FIP addresses (from different registers) can be stored in the same dictionaries.\n\nInstead of adding any artificial limitation, this bug should be fixed in this patch. It is valid to have this configuration and we should not limit that; same as with many other features, the user is responsible of the deployment administration and configuration.\n\n[1]https://github.com/openstack/neutron/blob/master/neutron/db/l3_db.py#L643-L683","commit_id":"e3f67cd21243138de141fb85877c50af7e6d017b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8570db048bceef1b7252eb863ae0bf0feee36ea1","unresolved":true,"context_lines":[{"line_number":16,"context_line":"register and holds the IP address, needed by the \"tc\" library to set"},{"line_number":17,"context_line":"the QoS rules."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Closes-Bug: #1962465"},{"line_number":20,"context_line":"Change-Id: I3a09718c6e79fd1f37eb75264389c4e5043076a7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"c108448a_f498a2b4","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":20},"in_reply_to":"18b9d073_699d0353","updated":"2022-03-02 10:01:03.000000000","message":"I was expecting this answer.\n\nThe problem is not if this is something usual but if it is possible. You can have two separate physical networks and external networks on them, with the same CIDR. Why not?\n\nPlease, provide a real reason to block this (and how) from the API layer.","commit_id":"e3f67cd21243138de141fb85877c50af7e6d017b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b777248fa568fd79c5d7c12a59fc332e0a4bdaf8","unresolved":false,"context_lines":[{"line_number":16,"context_line":"register and holds the IP address, needed by the \"tc\" library to set"},{"line_number":17,"context_line":"the QoS rules."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Closes-Bug: #1962465"},{"line_number":20,"context_line":"Change-Id: I3a09718c6e79fd1f37eb75264389c4e5043076a7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"97b63f2d_12ba8a22","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":20},"in_reply_to":"40e0daa9_48b9ff15","updated":"2022-03-08 17:35:51.000000000","message":"Done","commit_id":"e3f67cd21243138de141fb85877c50af7e6d017b"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"33531ce7f9dcb494786ea7e6c1296626fe30db86","unresolved":true,"context_lines":[{"line_number":16,"context_line":"register and holds the IP address, needed by the \"tc\" library to set"},{"line_number":17,"context_line":"the QoS rules."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Closes-Bug: #1962465"},{"line_number":20,"context_line":"Change-Id: I3a09718c6e79fd1f37eb75264389c4e5043076a7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"40e0daa9_48b9ff15","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":20},"in_reply_to":"4536475e_6dcc7711","updated":"2022-03-02 17:54:01.000000000","message":"Rodolfo - I agree that we should allow this config, but it\u0027s clear the external/public/floating network wording is causing confusion again (as it always has). I guess the way I think of it here is that each one of these subnets is behind an upstream NAT perhaps, so what CIDR we use doesn\u0027t matter. It\u0027s ugly from that perspective but does have its (limited) use case.","commit_id":"e3f67cd21243138de141fb85877c50af7e6d017b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c9369681e8e8da2ae42f5dd97c21c7f8519109eb","unresolved":true,"context_lines":[{"line_number":16,"context_line":"register and holds the IP address, needed by the \"tc\" library to set"},{"line_number":17,"context_line":"the QoS rules."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Closes-Bug: #1962465"},{"line_number":20,"context_line":"Change-Id: I3a09718c6e79fd1f37eb75264389c4e5043076a7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"4536475e_6dcc7711","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":20},"in_reply_to":"4819d25c_b9caf581","updated":"2022-03-02 14:03:34.000000000","message":"Please, find in the documentation where \"external\" network means internet connection. If so, we should change the scope of this bug. An external network [1] is:\n\n\"Any given Networking set up has at least one external network. Unlike the other networks, the external network is not merely a virtually defined network. Instead, it represents a view into a slice of the physical, external network accessible outside the OpenStack installation. IP addresses on the external network are accessible by anybody physically on the outside network.\"\n\nThat means, this network is a connection to an upper infrastructure, outside OpenStack. That does not imply internet connectivity and there is no limitation to have multiple overlapped CIDRs in independent and isolated external networks.\n\nThe goal of this patch is to be able to handle duplicated FIP.ip_address from different FIP resources. This patch won\u0027t affect at all (as it should be) to any existing deployment.\n\n[1]https://docs.openstack.org/newton/install-guide-rdo/neutron-concepts.html","commit_id":"e3f67cd21243138de141fb85877c50af7e6d017b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"49b78a1d0dbe70347c0072f055f892e063b693e1","unresolved":true,"context_lines":[{"line_number":16,"context_line":"register and holds the IP address, needed by the \"tc\" library to set"},{"line_number":17,"context_line":"the QoS rules."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Closes-Bug: #1962465"},{"line_number":20,"context_line":"Change-Id: I3a09718c6e79fd1f37eb75264389c4e5043076a7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"0b8ecf55_fe74ccb7","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":20},"in_reply_to":"c108448a_f498a2b4","updated":"2022-03-02 11:07:04.000000000","message":"\"\"\"\nI cannot imagine how could this happen in a real production environment. Floating IP always means public IP, it will be accessible from outside world, in such case, those can not be in service at same time. Cloud provider can not sell one IP to more than one user. \n\"\"\"\n\nI will repeat such opinions, no idea how could this be possible in real production environment. For most cases of cloud providers, floating IP (sometiems they called it public IP, Elastic IP, and so on) is an uniq address which only belongs to one user for one use (application).\n\nTwo same IPs can come from different physical networks and external networks, but how these IPs are announced on Internet? URL is mapping to one IP address, so outside world will access which IP finally? (I\u0027m almost lost here, it is ONE IP, why I use \"which\" here 😕) And one interesting thing is, cloud you use 8.8.8.8 to your cloud again? 😊 It is uniquely assigned by ICANN.\n\nRegarding to the API restriction, [1] can be an example for checking the overlapping of external network and router interface (network). New API restriction can aligin such check. And also I will ask a question, why not we remove such restriction [1]? If user can ensure the floating IP and port fixed IP are not same, then it is possible to work.\n\n[1] https://github.com/openstack/neutron/blob/master/neutron/db/l3_db.py#L643-L683","commit_id":"e3f67cd21243138de141fb85877c50af7e6d017b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"cb5126a3a5392fd6b94f1e42fcbe6bc4f999b152","unresolved":true,"context_lines":[{"line_number":16,"context_line":"register and holds the IP address, needed by the \"tc\" library to set"},{"line_number":17,"context_line":"the QoS rules."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Closes-Bug: #1962465"},{"line_number":20,"context_line":"Change-Id: I3a09718c6e79fd1f37eb75264389c4e5043076a7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"4819d25c_b9caf581","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":20},"in_reply_to":"d7f5616d_6c64a602","updated":"2022-03-02 12:10:47.000000000","message":"From my personal experiences, the most common use of floating IP and external network is for accessing Internet. If not, maybe Neutron should re-define what are \"external\" network and \"floating\" IP. And if openstack is mainly for learning environments, IMO, it will be dead shortly afterwards. 😊\n\nFor the issue you mentioned here, which is mainly becasue that in one cloud environment floating IPs are not treated as an UNIQUE resource. If it is unique, no issue as it is, right?","commit_id":"e3f67cd21243138de141fb85877c50af7e6d017b"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b0d04765d85d7276aed28f64a4711da28e0ed38e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0ab1b680_48b89aa1","updated":"2022-03-02 12:13:41.000000000","message":"-1 for still worthy to fix as an API leak.","commit_id":"997a6513209d275d8b5d389c7df7e32cb3f17c0f"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5ecdaa4ef28e8d29ef570d7bcfd89e0b270acf3a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"24f24e93_b8460568","updated":"2022-03-08 10:49:22.000000000","message":"Based on last weeks discussion during the drivers meeting (see: https://meetings.opendev.org/meetings/neutron_drivers/2022/neutron_drivers.2022-03-04-14.03.log.html#l-76 ) we agreed to continue with this.\n\nAs we agreed please continue with the reviews and add reno/doc for it to be clear for users","commit_id":"997a6513209d275d8b5d389c7df7e32cb3f17c0f"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c9369681e8e8da2ae42f5dd97c21c7f8519109eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"56f3b15a_7066cccc","in_reply_to":"0ab1b680_48b89aa1","updated":"2022-03-02 14:03:34.000000000","message":"This is not an API leak, it is working perfectly fine. What you are proposing is to artificially limit the L3 functionality while this should be a user responsibility.","commit_id":"997a6513209d275d8b5d389c7df7e32cb3f17c0f"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"40dafe57ddc3f4670789b80beb6bd5c66a82d23b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ae964b15_75ded1ab","updated":"2022-03-24 09:29:27.000000000","message":"ping fellow reviewers","commit_id":"a6450aa30e4db9312378ef52480bf49031717667"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4c289869272298e70c13311d1d6cf4fa2f0c2901","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"19644096_98b09217","updated":"2022-03-28 13:21:36.000000000","message":"ping fellow reviewers","commit_id":"132905d81f8799f249936ecb9d56641749df8724"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f064a251c7caf93f83598508d2b861a4182be455","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"163886dc_683e3811","updated":"2022-03-25 20:09:08.000000000","message":"recheck","commit_id":"132905d81f8799f249936ecb9d56641749df8724"}],"neutron/agent/l3/extensions/qos/fip.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"26945331f44524c5b5148489ea915ad17a3daaea","unresolved":true,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        @lockutils.synchronized(self.lock_name)"},{"line_number":76,"context_line":"        def _get_fips_by_router_id():"},{"line_number":77,"context_line":"            return self._router_2_fips.get(router_id, set([]))"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        return _get_fips_by_router_id()"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"f62bea59_f6588833","line":77,"range":{"start_line":77,"start_character":54,"end_line":77,"end_character":61},"updated":"2022-03-09 08:41:07.000000000","message":"nit: not needed since _router_2_fips is a collections.defaultdict(set)","commit_id":"18bd4af019d4990e86dc4d073d2389f6ba15d639"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"265c2999d3057e258b82d634d18ad2e972745183","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        @lockutils.synchronized(self.lock_name)"},{"line_number":76,"context_line":"        def _get_fips_by_router_id():"},{"line_number":77,"context_line":"            return self._router_2_fips.get(router_id, set([]))"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        return _get_fips_by_router_id()"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"72e4453b_705fb7ec","line":77,"range":{"start_line":77,"start_character":54,"end_line":77,"end_character":61},"in_reply_to":"2fb3e4c6_c62f8836","updated":"2022-03-25 17:31:22.000000000","message":"I\u0027ve changed the implementation and testing","commit_id":"18bd4af019d4990e86dc4d073d2389f6ba15d639"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"28875cb0f034a90dde9b6d68ac36990d7eb03021","unresolved":true,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        @lockutils.synchronized(self.lock_name)"},{"line_number":76,"context_line":"        def _get_fips_by_router_id():"},{"line_number":77,"context_line":"            return self._router_2_fips.get(router_id, set([]))"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        return _get_fips_by_router_id()"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"2fb3e4c6_c62f8836","line":77,"range":{"start_line":77,"start_character":54,"end_line":77,"end_character":61},"in_reply_to":"f62bea59_f6588833","updated":"2022-03-09 09:21:25.000000000","message":"Right!","commit_id":"18bd4af019d4990e86dc4d073d2389f6ba15d639"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"26945331f44524c5b5148489ea915ad17a3daaea","unresolved":true,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        @lockutils.synchronized(self.lock_name)"},{"line_number":84,"context_line":"        def _set_fips_by_router_id():"},{"line_number":85,"context_line":"            self._router_2_fips[router_id] \u003d fips"},{"line_number":86,"context_line":"            for fip_res in fips:"},{"line_number":87,"context_line":"                self._fips_2_router[fip_res] \u003d router_id"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"d46a8c04_7ea1e18d","line":85,"range":{"start_line":85,"start_character":12,"end_line":85,"end_character":49},"updated":"2022-03-09 08:41:07.000000000","message":"so this will override other fips that might be there before, is it expected? (just double checking)","commit_id":"18bd4af019d4990e86dc4d073d2389f6ba15d639"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"265c2999d3057e258b82d634d18ad2e972745183","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        @lockutils.synchronized(self.lock_name)"},{"line_number":84,"context_line":"        def _set_fips_by_router_id():"},{"line_number":85,"context_line":"            self._router_2_fips[router_id] \u003d fips"},{"line_number":86,"context_line":"            for fip_res in fips:"},{"line_number":87,"context_line":"                self._fips_2_router[fip_res] \u003d router_id"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"94c56515_5e499aa1","line":85,"range":{"start_line":85,"start_character":12,"end_line":85,"end_character":49},"in_reply_to":"cffdacf0_dd0f32a4","updated":"2022-03-25 17:31:22.000000000","message":"ditto","commit_id":"18bd4af019d4990e86dc4d073d2389f6ba15d639"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"28875cb0f034a90dde9b6d68ac36990d7eb03021","unresolved":true,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        @lockutils.synchronized(self.lock_name)"},{"line_number":84,"context_line":"        def _set_fips_by_router_id():"},{"line_number":85,"context_line":"            self._router_2_fips[router_id] \u003d fips"},{"line_number":86,"context_line":"            for fip_res in fips:"},{"line_number":87,"context_line":"                self._fips_2_router[fip_res] \u003d router_id"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"cffdacf0_dd0f32a4","line":85,"range":{"start_line":85,"start_character":12,"end_line":85,"end_character":49},"in_reply_to":"d46a8c04_7ea1e18d","updated":"2022-03-09 09:21:25.000000000","message":"Not at all, this is terribly implemented and tested.\n\nThanks!!","commit_id":"18bd4af019d4990e86dc4d073d2389f6ba15d639"}]}
