)]}'
{"neutron/api/rpc/handlers/dhcp_rpc.py":[{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"f59e8b16c3031d25097ef18044a479fae1219783","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            subnets \u003d [subnet for subnet in subnets"},{"line_number":180,"context_line":"                       if subnet[\u0027network_id\u0027] not in routed_net_ids or"},{"line_number":181,"context_line":"                       subnet[\u0027id\u0027] in seg_subnet_ids]"},{"line_number":182,"context_line":"            ports \u003d [port for port in ports"},{"line_number":183,"context_line":"                     if port[\u0027network_id\u0027] not in routed_net_ids or"},{"line_number":184,"context_line":"                     port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027] in seg_subnet_ids]"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_3b794f81","line":182,"range":{"start_line":182,"start_character":12,"end_line":182,"end_character":17},"updated":"2019-10-28 23:12:45.000000000","message":"Could we furter filter this list on device_owner \u003d\u003d network:dhcp to reduce iterations in case there are a lot of ports?","commit_id":"1c771d7e8577975e63507deb747d071b73c0a322"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f29063b0e76a49033ebdf46e06d3376c51038c7b","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            subnets \u003d [subnet for subnet in subnets"},{"line_number":180,"context_line":"                       if subnet[\u0027network_id\u0027] not in routed_net_ids or"},{"line_number":181,"context_line":"                       subnet[\u0027id\u0027] in seg_subnet_ids]"},{"line_number":182,"context_line":"            ports \u003d [port for port in ports"},{"line_number":183,"context_line":"                     if port[\u0027network_id\u0027] not in routed_net_ids or"},{"line_number":184,"context_line":"                     port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027] in seg_subnet_ids]"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_50d096f7","line":182,"range":{"start_line":182,"start_character":12,"end_line":182,"end_character":17},"in_reply_to":"3fa7e38b_3b794f81","updated":"2019-10-29 21:46:57.000000000","message":"Ack, should be able to add that to the filters on L146","commit_id":"1c771d7e8577975e63507deb747d071b73c0a322"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"cacc556e9b75b755692349cc223fe0ba00dee1b3","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            subnets \u003d [subnet for subnet in subnets"},{"line_number":180,"context_line":"                       if subnet[\u0027network_id\u0027] not in routed_net_ids or"},{"line_number":181,"context_line":"                       subnet[\u0027id\u0027] in seg_subnet_ids]"},{"line_number":182,"context_line":"            ports \u003d [port for port in ports"},{"line_number":183,"context_line":"                     if port[\u0027network_id\u0027] not in routed_net_ids or"},{"line_number":184,"context_line":"                     port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027] in seg_subnet_ids]"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_97f58485","line":182,"range":{"start_line":182,"start_character":12,"end_line":182,"end_character":17},"in_reply_to":"3fa7e38b_50d096f7","updated":"2019-10-31 20:15:50.000000000","message":"Oh, looking at this again, I don\u0027t think we want to filter by device_owner since the agent wants all the ports on the network, not just those of dhcp servers.  Or am I mis-understanding?","commit_id":"1c771d7e8577975e63507deb747d071b73c0a322"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"e467673a207c1d42ffee22f2bcd4ee2058c1247d","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            subnets \u003d [subnet for subnet in subnets"},{"line_number":180,"context_line":"                       if subnet[\u0027network_id\u0027] not in routed_net_ids or"},{"line_number":181,"context_line":"                       subnet[\u0027id\u0027] in seg_subnet_ids]"},{"line_number":182,"context_line":"            ports \u003d [port for port in ports"},{"line_number":183,"context_line":"                     if port[\u0027network_id\u0027] not in routed_net_ids or"},{"line_number":184,"context_line":"                     port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027] in seg_subnet_ids]"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_58ec9b91","line":182,"range":{"start_line":182,"start_character":12,"end_line":182,"end_character":17},"in_reply_to":"3fa7e38b_97f58485","updated":"2019-12-03 10:12:44.000000000","message":"I also think the agent wants to know about all port therefore we should not be filtering for device_owner.","commit_id":"1c771d7e8577975e63507deb747d071b73c0a322"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"f59e8b16c3031d25097ef18044a479fae1219783","unresolved":false,"context_lines":[{"line_number":181,"context_line":"                       subnet[\u0027id\u0027] in seg_subnet_ids]"},{"line_number":182,"context_line":"            ports \u003d [port for port in ports"},{"line_number":183,"context_line":"                     if port[\u0027network_id\u0027] not in routed_net_ids or"},{"line_number":184,"context_line":"                     port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027] in seg_subnet_ids]"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        grouped_subnets \u003d self._group_by_network_id(subnets)"},{"line_number":187,"context_line":"        grouped_nonlocal_subnets \u003d self._group_by_network_id(nonlocal_subnets)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_9b888371","line":184,"range":{"start_line":184,"start_character":38,"end_line":184,"end_character":41},"updated":"2019-10-28 23:12:45.000000000","message":"Do we need to think about IPv4/IPv6 dual stack networks here? I belive dhcp ports in such a network will have two fixed ip\u0027s. Maby we don\u0027t have to care since both IPv4 and IPv6 subnet would be on the same segment. Or do we end up with one fixed IP for each IPv6 subnet on the network, despite the IPv6 subnets are on different segments?","commit_id":"1c771d7e8577975e63507deb747d071b73c0a322"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7e594cb6dfa5e016d85e3218f4005adf39c23e6d","unresolved":false,"context_lines":[{"line_number":181,"context_line":"                       subnet[\u0027id\u0027] in seg_subnet_ids]"},{"line_number":182,"context_line":"            ports \u003d [port for port in ports"},{"line_number":183,"context_line":"                     if port[\u0027network_id\u0027] not in routed_net_ids or"},{"line_number":184,"context_line":"                     port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027] in seg_subnet_ids]"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        grouped_subnets \u003d self._group_by_network_id(subnets)"},{"line_number":187,"context_line":"        grouped_nonlocal_subnets \u003d self._group_by_network_id(nonlocal_subnets)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_ed145943","line":184,"range":{"start_line":184,"start_character":38,"end_line":184,"end_character":41},"in_reply_to":"3fa7e38b_9b888371","updated":"2019-10-29 11:15:10.000000000","message":"Harald is right. In general, several IPs (multiple IPv4 or IPv6), depending on the subnets.","commit_id":"1c771d7e8577975e63507deb747d071b73c0a322"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f29063b0e76a49033ebdf46e06d3376c51038c7b","unresolved":false,"context_lines":[{"line_number":181,"context_line":"                       subnet[\u0027id\u0027] in seg_subnet_ids]"},{"line_number":182,"context_line":"            ports \u003d [port for port in ports"},{"line_number":183,"context_line":"                     if port[\u0027network_id\u0027] not in routed_net_ids or"},{"line_number":184,"context_line":"                     port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027] in seg_subnet_ids]"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        grouped_subnets \u003d self._group_by_network_id(subnets)"},{"line_number":187,"context_line":"        grouped_nonlocal_subnets \u003d self._group_by_network_id(nonlocal_subnets)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_f00ae287","line":184,"range":{"start_line":184,"start_character":38,"end_line":184,"end_character":41},"in_reply_to":"3fa7e38b_ed145943","updated":"2019-10-29 21:46:57.000000000","message":"All right, so we have to check the subnets of all the fixed_ips, the loop gets more complicated :-/","commit_id":"1c771d7e8577975e63507deb747d071b73c0a322"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"e467673a207c1d42ffee22f2bcd4ee2058c1247d","unresolved":false,"context_lines":[{"line_number":232,"context_line":"                           if subnet[\u0027segment_id\u0027] in segment_ids]"},{"line_number":233,"context_line":"                subnet_seg_ids \u003d {subnet[\u0027id\u0027] for subnet in subnets}"},{"line_number":234,"context_line":"                ports \u003d [port for port in ports"},{"line_number":235,"context_line":"                         if port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027] in"},{"line_number":236,"context_line":"                         subnet_seg_ids]"},{"line_number":237,"context_line":"        # NOTE(kevinbenton): we sort these because the agent builds tags"},{"line_number":238,"context_line":"        # based on position in the list and has to restart the process if"},{"line_number":239,"context_line":"        # the order changes."}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_93b43438","line":236,"range":{"start_line":235,"start_character":62,"end_line":236,"end_character":39},"updated":"2019-12-03 10:12:44.000000000","message":"If above (in line 229) we send information about non-local subnets (in order to support dhcp relays) then I think we should also send information about ports on non-local subnets. Otherwise I think we may break this feature:\n\nhttps://bugs.launchpad.net/neutron/+bug/1692486\nhttps://review.opendev.org/468744\n\nLikely Harald can confirm or deny since he implemented this feature.","commit_id":"1c771d7e8577975e63507deb747d071b73c0a322"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"1658e268729de205da7f4ae3fd0ebddde05f5edb","unresolved":false,"context_lines":[{"line_number":232,"context_line":"                           if subnet[\u0027segment_id\u0027] in segment_ids]"},{"line_number":233,"context_line":"                subnet_seg_ids \u003d {subnet[\u0027id\u0027] for subnet in subnets}"},{"line_number":234,"context_line":"                ports \u003d [port for port in ports"},{"line_number":235,"context_line":"                         if port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027] in"},{"line_number":236,"context_line":"                         subnet_seg_ids]"},{"line_number":237,"context_line":"        # NOTE(kevinbenton): we sort these because the agent builds tags"},{"line_number":238,"context_line":"        # based on position in the list and has to restart the process if"},{"line_number":239,"context_line":"        # the order changes."}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_0f19f421","line":236,"range":{"start_line":235,"start_character":62,"end_line":236,"end_character":39},"in_reply_to":"3fa7e38b_93b43438","updated":"2019-12-03 15:51:00.000000000","message":"Right, we cannot filter ports of non-local subnets if this means there will be no dhcp-hosts entries added for these ports in the agents configuration. This will break dhcp-relay.\n\nIn the bug report \u0027HostNotCompatibleWithFixedIps\u0027 is raised, this happens when the port is updated with binding information and the host is\u0027nt connected to the segment. This must have been a device_owner \u003d\u003d network:dhcp port? Based on bug description:\n\n\"\"\" In our understanding, this situation arises when DHCP agents are stopped and its network namespace is removed, but it corresponding port not deleted. In our case we installed too many DHCP agents in each segment, so we decided to stop and uninstall several of them, cleaning the Linux network namespaces but not deleting the orphaned dhcp ports.\n\"\"\"\n\nWhy is there orphaned ports in the first place?","commit_id":"1c771d7e8577975e63507deb747d071b73c0a322"}]}
