)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"a053d35f436c6000ce08c82c2f73135ae76abd44","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     LIU Yulong \u003cliuyulong@le.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-09-02 17:30:32 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DVR: Ignore DHCP port during DVR host query"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Scenario 1, one neutron network has two subnets, and connected all"},{"line_number":10,"context_line":"these subnets to one DVR router."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_ad3f5fb2","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":43},"updated":"2016-09-08 08:06:21.000000000","message":"Please check how the issue described here: https://bugs.launchpad.net/neutron/+bug/1358718 will be tackled with this patch - this is when DHCP was added to the dvr serviceable ports set. If this can be solved then I see no issues with this change.","commit_id":"d5275da79f1c9f893261184c0d6f2a684e72d9c4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"a77aa670c35f32e13890183c24bbe640c8854ca7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     LIU Yulong \u003cliuyulong@le.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-09-02 17:30:32 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DVR: Ignore DHCP port during DVR host query"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Scenario 1, one neutron network has two subnets, and connected all"},{"line_number":10,"context_line":"these subnets to one DVR router."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_2d698ff9","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":43},"in_reply_to":"9a89bdaa_ad3f5fb2","updated":"2016-09-08 08:24:54.000000000","message":"Thanks, I\u0027ll do this check.","commit_id":"d5275da79f1c9f893261184c0d6f2a684e72d9c4"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"bd5c0f26df2171038e93ea346c0115c9ee6401b2","unresolved":false,"context_lines":[{"line_number":12,"context_line":"directly connected in both subnets. So qrouter-namspace is not needed."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Scenario 2, two neutron networks each have a separate subnet, and"},{"line_number":15,"context_line":"also connect these subnets to one DVR router."},{"line_number":16,"context_line":"Because this scenario has two different networks, then the DHCP will be"},{"line_number":17,"context_line":"naturally isolated. No need to let all subnets get reachable in such"},{"line_number":18,"context_line":"scenario, aka East/West routing is no needed for DHCP. Let the DHCP"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_73a98824","line":15,"updated":"2016-09-08 21:49:35.000000000","message":"In the case of the centralized routers, we can ping the second subnet from the first subnets dhcp namespace when both the subnets are connected through a router.\nIt was to maintain the same behavior we had it here.","commit_id":"d5275da79f1c9f893261184c0d6f2a684e72d9c4"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"110c93b52f5506b4469d5aa23f8b74798e5de138","unresolved":false,"context_lines":[{"line_number":12,"context_line":"directly connected in both subnets. So qrouter-namspace is not needed."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Scenario 2, two neutron networks each have a separate subnet, and"},{"line_number":15,"context_line":"also connect these subnets to one DVR router."},{"line_number":16,"context_line":"Because this scenario has two different networks, then the DHCP will be"},{"line_number":17,"context_line":"naturally isolated. No need to let all subnets get reachable in such"},{"line_number":18,"context_line":"scenario, aka East/West routing is no needed for DHCP. Let the DHCP"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_ec24a4c7","line":15,"in_reply_to":"9a89bdaa_32ec518f","updated":"2016-09-09 17:35:39.000000000","message":"So we will be different with respect to scenario 2.","commit_id":"d5275da79f1c9f893261184c0d6f2a684e72d9c4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"6b3c000a6035344c82ab82c59c70501ec02238b0","unresolved":false,"context_lines":[{"line_number":12,"context_line":"directly connected in both subnets. So qrouter-namspace is not needed."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Scenario 2, two neutron networks each have a separate subnet, and"},{"line_number":15,"context_line":"also connect these subnets to one DVR router."},{"line_number":16,"context_line":"Because this scenario has two different networks, then the DHCP will be"},{"line_number":17,"context_line":"naturally isolated. No need to let all subnets get reachable in such"},{"line_number":18,"context_line":"scenario, aka East/West routing is no needed for DHCP. Let the DHCP"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_32ec518f","line":15,"in_reply_to":"9a89bdaa_73a98824","updated":"2016-09-09 03:40:54.000000000","message":"For centralized routers, DHCP ports are traffic reachable to their subnet gateway port in the q-router namespace (basically located in a different physical host). Then traffic will be routed cross subnets due to the routes in those namespaces. And the traffic back from those gateway ports will not be sent back to the DHCP port. But DVR will drop such send-back traffic, because there are multiple router namespace in compute/scheduled-l3 hosts. This means, if DHCP agent host has no qrouter namespace, the gateway ports ACK from other router namespace in other host will never back to the original DHCP port.\n\nBut, efforts for such traffic reachable in DVR Scenario seems not necessary, because:\n1. VM could get an IP without that redundant router namespace.\n2. Let the DHCP traffic only process in its own isolated broadcast domain.\n3. Limited the traffic from/to DHCP port to its own domain.\n4. Save cloud admins\u0027 energy to locate the problems of networking. Why DVR router namespace are everywhere, even in a DHCP host?\n5. Consider the Scenario 1, Scenario 3, Scenario 5 here.\n\nSo, I\u0027d like DVR should not consider such maintenance.","commit_id":"d5275da79f1c9f893261184c0d6f2a684e72d9c4"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"110c93b52f5506b4469d5aa23f8b74798e5de138","unresolved":false,"context_lines":[{"line_number":19,"context_line":"request only process in its own isolated broadcast domain."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Scenario 3, What will happen if a host only run DHCP agent?"},{"line_number":22,"context_line":"qrouter-dvr-namspace will never get hosted, but everything goes fine."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"This patch removed the DHCP port device_owner qeury filter during DVR"},{"line_number":25,"context_line":"host query."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_6c17b454","line":22,"updated":"2016-09-09 17:35:39.000000000","message":"Yes in the case where you don\u0027t run L3-agent, then only the DHCP agent will be running and no issues there , that is an expected behavior.","commit_id":"d5275da79f1c9f893261184c0d6f2a684e72d9c4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d5955d837816a1e5ad7d2dcad18f1e73aef6a69a","unresolved":false,"context_lines":[{"line_number":19,"context_line":"request only process in its own isolated broadcast domain."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Scenario 3, What will happen if a host only run DHCP agent?"},{"line_number":22,"context_line":"qrouter-dvr-namspace will never get hosted, but everything goes fine."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"This patch removed the DHCP port device_owner qeury filter during DVR"},{"line_number":25,"context_line":"host query."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_c6717446","line":22,"in_reply_to":"9a89bdaa_6c17b454","updated":"2016-09-09 22:54:17.000000000","message":"This implicitly explained why that redundant router namespace is not needed, aka VM could get an IP.","commit_id":"d5275da79f1c9f893261184c0d6f2a684e72d9c4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"8124b6f4838bad26e349c23278837da28cbb59c9","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Scenario 3, What will happen if a host only run DHCP agent?"},{"line_number":22,"context_line":"qrouter-dvr-namspace will never get hosted, but everything goes fine."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"This patch removed the DHCP port device_owner qeury filter during DVR"},{"line_number":25,"context_line":"host query."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_3c462d4f","line":23,"updated":"2016-09-07 23:45:18.000000000","message":"Scenario 4, any new design/implementation once related to DHCP should not let DHCP broadcast traffic can go across the domain. Routed network/subnet may face such concern.\n\n\nStill thinking more cases.","commit_id":"d5275da79f1c9f893261184c0d6f2a684e72d9c4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"6a12b46fe3b44d76f53a68cc8a3270ad1d70c25b","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Scenario 3, What will happen if a host only run DHCP agent?"},{"line_number":22,"context_line":"qrouter-dvr-namspace will never get hosted, but everything goes fine."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"This patch removed the DHCP port device_owner qeury filter during DVR"},{"line_number":25,"context_line":"host query."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_a6af8b7b","line":23,"in_reply_to":"9a89bdaa_3c462d4f","updated":"2016-09-08 02:38:14.000000000","message":"Scenario 5, in order to make DHCP high available, then cloud admins may aslo run DHCP agent in all/most compute hosts. Then DVR qrouter namespace may be hosted to those scheduled DHCP agent hosts. Not needed either.","commit_id":"d5275da79f1c9f893261184c0d6f2a684e72d9c4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c7612156a964bca5128d09f52eb27ff97f4127e6","unresolved":false,"context_lines":[{"line_number":22,"context_line":"qrouter-dvr-namspace will never get hosted, but everything goes fine."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"This patch removed the DHCP port device_owner qeury filter during DVR"},{"line_number":25,"context_line":"host query."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: I53e20be9b306bf9d3b34ec6a31e3afabd5a0fd6f"},{"line_number":28,"context_line":"Closes-Bug: #1609217"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_38f1c66b","line":25,"updated":"2016-09-08 10:02:01.000000000","message":"A good discussion was started here:\nhttp://eavesdrop.openstack.org/irclogs/%23openstack-neutron/%23openstack-neutron.2016-09-08.log.html#t2016-09-08T08:51:10\n\nTODO: add DocImpact\n\nThis may be a design issue between DVR and DHCP port.\n\nAfter this change, we limited the traffic from/to DHCP port to its own domain. Traffic across DHCP domains will not be routed anymore.","commit_id":"d5275da79f1c9f893261184c0d6f2a684e72d9c4"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"a053d35f436c6000ce08c82c2f73135ae76abd44","unresolved":false,"context_lines":[{"line_number":25,"context_line":"host query."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: I53e20be9b306bf9d3b34ec6a31e3afabd5a0fd6f"},{"line_number":28,"context_line":"Closes-Bug: #1609217"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_6df557eb","line":28,"range":{"start_line":28,"start_character":13,"end_line":28,"end_character":20},"updated":"2016-09-08 08:06:21.000000000","message":"Can\u0027t see from the bug description what are the downsides of having dvr router on nodes hosting dhcp ports. Can you please describe?\n\nAlso the bug says: \"But in the DB routerl3agentbindings, there is only one record for DVR router to one l3 agent\" - this is by design, the binding in DB is created only for dvr snat role of the router.","commit_id":"d5275da79f1c9f893261184c0d6f2a684e72d9c4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"a77aa670c35f32e13890183c24bbe640c8854ca7","unresolved":false,"context_lines":[{"line_number":25,"context_line":"host query."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: I53e20be9b306bf9d3b34ec6a31e3afabd5a0fd6f"},{"line_number":28,"context_line":"Closes-Bug: #1609217"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_88e0c92a","line":28,"range":{"start_line":28,"start_character":13,"end_line":28,"end_character":20},"in_reply_to":"9a89bdaa_6df557eb","updated":"2016-09-08 08:24:54.000000000","message":"The reason why I check routerl3agentbindings is because I want to see if that DVR router was binded to that DHCP (also run L3 agent) host. The result is not. It\u0027s only scheduled to one L3 agent, not the extra DHCP host.\n\nSo then I dug into the code, found this essential code issue, DHCP port should not be considered in DVR host query.","commit_id":"d5275da79f1c9f893261184c0d6f2a684e72d9c4"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"10b454bfe244ceedc603a8d24cf1f75caa5c86ad","unresolved":false,"context_lines":[{"line_number":25,"context_line":"host query."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: I53e20be9b306bf9d3b34ec6a31e3afabd5a0fd6f"},{"line_number":28,"context_line":"Closes-Bug: #1609217"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a89bdaa_2866dd50","line":28,"range":{"start_line":28,"start_character":13,"end_line":28,"end_character":20},"in_reply_to":"9a89bdaa_88e0c92a","updated":"2016-09-08 08:34:16.000000000","message":"Again, you will not see bindings for all nodes where dvr router is hosted (all nodes with DVR serviceable ports) - this is by design, a router (snat portion) is only scheduled to one dvr_snat L3 agent. See https://github.com/openstack/neutron-specs/blob/master/specs/mitaka/improve-dvr-l3-agent-binding.rst. Please describe the downsides of hosting a router on nodes with dhcp ports","commit_id":"d5275da79f1c9f893261184c0d6f2a684e72d9c4"},{"author":{"_account_id":4187,"name":"Ryan Tidwell","email":"rtidwell@suse.com","username":"ryan-tidwell"},"change_message_id":"be9aa240f1cd484d65b23f91c050085a076c9d00","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     LIU Yulong \u003ci@liuyulong.me\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-05-24 23:39:23 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DVR: Ignore DHCP port during DVR host query"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Scenario 1, one neutron network has two subnets, and connected all"},{"line_number":10,"context_line":"these subnets to one DVR router."},{"line_number":11,"context_line":"In the qdhcp-ns the tap-device has all subnets\u0027 IP address, and its"},{"line_number":12,"context_line":"directly connected in both subnets. So qrouter-namspace is not needed."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Scenario 2, two neutron networks each have a separate subnet, and"},{"line_number":15,"context_line":"also connect these subnets to one DVR router."},{"line_number":16,"context_line":"Because this scenario has two different networks, then the DHCP will be"},{"line_number":17,"context_line":"naturally isolated. No need to let all subnets get reachable in such"},{"line_number":18,"context_line":"scenario in a DHCP namespace, aka East/West routing is no needed."},{"line_number":19,"context_line":"Let the DHCP request only process in its own isolated broadcast domain."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Scenario 3, What will happen if a host only run DHCP agent?"},{"line_number":22,"context_line":"qrouter-dvr-namspace will never get hosted, but everything goes fine."},{"line_number":23,"context_line":"VM could get an IP without that redundant router namespace."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Scenario 4, any new design/implementation once related to DHCP should"},{"line_number":26,"context_line":"not let DHCP broadcast traffic can go across the domain. Routed"},{"line_number":27,"context_line":"network/subnet may face such concern."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Scenario 5, in order to make DHCP high available, then cloud admins"},{"line_number":30,"context_line":"may aslo run DHCP agent in all/most compute hosts. Then DVR qrouter"},{"line_number":31,"context_line":"namespace may be hosted to those scheduled DHCP agent hosts. Not"},{"line_number":32,"context_line":"needed either."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"This patch adds a config ``host_dvr_for_dhcp`` for the DHCP port"},{"line_number":35,"context_line":"device_owner filter during DVR host query. Then if we set"},{"line_number":36,"context_line":"``host_dvr_for_dhcp \u003d False``, L3-agent will not host the DVR router"},{"line_number":37,"context_line":"namespace in its connected networks\u0027 DHCP agent hosts. And traffic"},{"line_number":38,"context_line":"from VMs will still be routed due to the routes in dvr local router"},{"line_number":39,"context_line":"(compute node) namespace."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"In the DHCP namespace, if that host is not a scheduled DVR router"},{"line_number":42,"context_line":"snat/compute host, we limited the traffic from/to DHCP port to its"},{"line_number":43,"context_line":"own domain, for instace: a dvr router is connected to net1(subnet1)"},{"line_number":44,"context_line":"and net2(subnet2), the DVR snat router is scheduled to network node1,"},{"line_number":45,"context_line":"net1 and net2 DHCP agents are scheduled to network node2, then in"},{"line_number":46,"context_line":"network node2:"},{"line_number":47,"context_line":"1. ip netns exec qdhcp-net1-namesapce `ping net2 IPs is not reachable`;"},{"line_number":48,"context_line":"2. ip netns exec qdhcp-net2-namesapce `ping net1 IPs is not reachable`;"},{"line_number":49,"context_line":"the traffic across DHCP domains will not be routed anymore."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Closes-Bug: #1609217"},{"line_number":52,"context_line":"Change-Id: I53e20be9b306bf9d3b34ec6a31e3afabd5a0fd6f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bfb3d3c7_ed18cc1e","line":49,"range":{"start_line":7,"start_character":0,"end_line":49,"end_character":59},"updated":"2019-05-28 22:23:37.000000000","message":"Can we streamline this a little? This is a pretty verbose commit message. I\u0027m also struggling with the use case for this change, being a little more concise here would help me understand it a little better.","commit_id":"ad7d456a8dc7480f679da2797ed8ef92dac33315"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c7993ea8c3ca17488576c54e14cc6e36b3b88038","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     LIU Yulong \u003ci@liuyulong.me\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-05-24 23:39:23 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DVR: Ignore DHCP port during DVR host query"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Scenario 1, one neutron network has two subnets, and connected all"},{"line_number":10,"context_line":"these subnets to one DVR router."},{"line_number":11,"context_line":"In the qdhcp-ns the tap-device has all subnets\u0027 IP address, and its"},{"line_number":12,"context_line":"directly connected in both subnets. So qrouter-namspace is not needed."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Scenario 2, two neutron networks each have a separate subnet, and"},{"line_number":15,"context_line":"also connect these subnets to one DVR router."},{"line_number":16,"context_line":"Because this scenario has two different networks, then the DHCP will be"},{"line_number":17,"context_line":"naturally isolated. No need to let all subnets get reachable in such"},{"line_number":18,"context_line":"scenario in a DHCP namespace, aka East/West routing is no needed."},{"line_number":19,"context_line":"Let the DHCP request only process in its own isolated broadcast domain."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Scenario 3, What will happen if a host only run DHCP agent?"},{"line_number":22,"context_line":"qrouter-dvr-namspace will never get hosted, but everything goes fine."},{"line_number":23,"context_line":"VM could get an IP without that redundant router namespace."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Scenario 4, any new design/implementation once related to DHCP should"},{"line_number":26,"context_line":"not let DHCP broadcast traffic can go across the domain. Routed"},{"line_number":27,"context_line":"network/subnet may face such concern."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Scenario 5, in order to make DHCP high available, then cloud admins"},{"line_number":30,"context_line":"may aslo run DHCP agent in all/most compute hosts. Then DVR qrouter"},{"line_number":31,"context_line":"namespace may be hosted to those scheduled DHCP agent hosts. Not"},{"line_number":32,"context_line":"needed either."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"This patch adds a config ``host_dvr_for_dhcp`` for the DHCP port"},{"line_number":35,"context_line":"device_owner filter during DVR host query. Then if we set"},{"line_number":36,"context_line":"``host_dvr_for_dhcp \u003d False``, L3-agent will not host the DVR router"},{"line_number":37,"context_line":"namespace in its connected networks\u0027 DHCP agent hosts. And traffic"},{"line_number":38,"context_line":"from VMs will still be routed due to the routes in dvr local router"},{"line_number":39,"context_line":"(compute node) namespace."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"In the DHCP namespace, if that host is not a scheduled DVR router"},{"line_number":42,"context_line":"snat/compute host, we limited the traffic from/to DHCP port to its"},{"line_number":43,"context_line":"own domain, for instace: a dvr router is connected to net1(subnet1)"},{"line_number":44,"context_line":"and net2(subnet2), the DVR snat router is scheduled to network node1,"},{"line_number":45,"context_line":"net1 and net2 DHCP agents are scheduled to network node2, then in"},{"line_number":46,"context_line":"network node2:"},{"line_number":47,"context_line":"1. ip netns exec qdhcp-net1-namesapce `ping net2 IPs is not reachable`;"},{"line_number":48,"context_line":"2. ip netns exec qdhcp-net2-namesapce `ping net1 IPs is not reachable`;"},{"line_number":49,"context_line":"the traffic across DHCP domains will not be routed anymore."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Closes-Bug: #1609217"},{"line_number":52,"context_line":"Change-Id: I53e20be9b306bf9d3b34ec6a31e3afabd5a0fd6f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bfb3d3c7_afb4fd80","line":49,"range":{"start_line":7,"start_character":0,"end_line":49,"end_character":59},"in_reply_to":"bfb3d3c7_ed18cc1e","updated":"2019-05-29 14:29:47.000000000","message":"Done","commit_id":"ad7d456a8dc7480f679da2797ed8ef92dac33315"},{"author":{"_account_id":4187,"name":"Ryan Tidwell","email":"rtidwell@suse.com","username":"ryan-tidwell"},"change_message_id":"2e5eb6da5e2dfb66e36bd79daa464ea5cc1c5226","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DVR: Ignore DHCP port during DVR host query"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"For large scale deployment, the dvr router will be installed to"},{"line_number":10,"context_line":"the scheduled DHCP host. This will definitely increase the l3"},{"line_number":11,"context_line":"agent service pressure, especially in large number of concurrent"},{"line_number":12,"context_line":"updates, creation, or agent restart."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch adds a config ``host_dvr_for_dhcp`` for the DHCP port"},{"line_number":15,"context_line":"device_owner filter during DVR host query. Then if we set"},{"line_number":16,"context_line":"``host_dvr_for_dhcp \u003d False``, L3-agent will not host the DVR router"},{"line_number":17,"context_line":"namespace in its connected networks\u0027 DHCP agent hosts."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Closes-Bug: #1609217"},{"line_number":20,"context_line":"Change-Id: I53e20be9b306bf9d3b34ec6a31e3afabd5a0fd6f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_676949f7","line":17,"range":{"start_line":9,"start_character":0,"end_line":17,"end_character":54},"updated":"2019-05-29 16:05:11.000000000","message":"Thanks for making this more concise. Just to clarify, the idea is to make it so that on any given node you have the option of having it opt out of instantiating local DVR routers?","commit_id":"7555cfae37dc097a3159024ba40e2d5a709d3b41"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"59987154f2d5fe00a7d7563cd88b4bf5fb468f45","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DVR: Ignore DHCP port during DVR host query"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"For large scale deployment, the dvr router will be installed to"},{"line_number":10,"context_line":"the scheduled DHCP host. This will definitely increase the l3"},{"line_number":11,"context_line":"agent service pressure, especially in large number of concurrent"},{"line_number":12,"context_line":"updates, creation, or agent restart."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch adds a config ``host_dvr_for_dhcp`` for the DHCP port"},{"line_number":15,"context_line":"device_owner filter during DVR host query. Then if we set"},{"line_number":16,"context_line":"``host_dvr_for_dhcp \u003d False``, L3-agent will not host the DVR router"},{"line_number":17,"context_line":"namespace in its connected networks\u0027 DHCP agent hosts."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Closes-Bug: #1609217"},{"line_number":20,"context_line":"Change-Id: I53e20be9b306bf9d3b34ec6a31e3afabd5a0fd6f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_58c3bb57","line":17,"range":{"start_line":9,"start_character":0,"end_line":17,"end_character":54},"in_reply_to":"bfb3d3c7_676949f7","updated":"2019-05-30 01:49:41.000000000","message":"@Ryan, it is a server side config, if it is set to true, all DHCP nodes running with L3-agent will not host the dvr local router for dhcp port anymore.","commit_id":"7555cfae37dc097a3159024ba40e2d5a709d3b41"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"505650e1fd11b59f8c3304e8bf2f5c77ba0fda17","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DVR: Ignore DHCP port during DVR host query"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"For large scale deployment, the dvr router will be installed to"},{"line_number":10,"context_line":"the scheduled DHCP host. This will definitely increase the l3"},{"line_number":11,"context_line":"agent service pressure, especially in large number of concurrent"},{"line_number":12,"context_line":"updates, creation, or agent restart."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch adds a config ``host_dvr_for_dhcp`` for the DHCP port"},{"line_number":15,"context_line":"device_owner filter during DVR host query. Then if we set"},{"line_number":16,"context_line":"``host_dvr_for_dhcp \u003d False``, L3-agent will not host the DVR router"},{"line_number":17,"context_line":"namespace in its connected networks\u0027 DHCP agent hosts."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Closes-Bug: #1609217"},{"line_number":20,"context_line":"Change-Id: I53e20be9b306bf9d3b34ec6a31e3afabd5a0fd6f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_e0c99f58","line":17,"range":{"start_line":9,"start_character":0,"end_line":17,"end_character":54},"in_reply_to":"bfb3d3c7_676949f7","updated":"2019-05-29 18:04:54.000000000","message":"Will this change still ensure that we can reach the routed subnets from the DHCP namespace for testing purpose or is it out of the scope.","commit_id":"7555cfae37dc097a3159024ba40e2d5a709d3b41"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"59987154f2d5fe00a7d7563cd88b4bf5fb468f45","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DVR: Ignore DHCP port during DVR host query"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"For large scale deployment, the dvr router will be installed to"},{"line_number":10,"context_line":"the scheduled DHCP host. This will definitely increase the l3"},{"line_number":11,"context_line":"agent service pressure, especially in large number of concurrent"},{"line_number":12,"context_line":"updates, creation, or agent restart."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch adds a config ``host_dvr_for_dhcp`` for the DHCP port"},{"line_number":15,"context_line":"device_owner filter during DVR host query. Then if we set"},{"line_number":16,"context_line":"``host_dvr_for_dhcp \u003d False``, L3-agent will not host the DVR router"},{"line_number":17,"context_line":"namespace in its connected networks\u0027 DHCP agent hosts."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Closes-Bug: #1609217"},{"line_number":20,"context_line":"Change-Id: I53e20be9b306bf9d3b34ec6a31e3afabd5a0fd6f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfb3d3c7_98929356","line":17,"range":{"start_line":9,"start_character":0,"end_line":17,"end_character":54},"in_reply_to":"bfb3d3c7_e0c99f58","updated":"2019-05-30 01:49:41.000000000","message":"@Swami, maybe the original commit message have some clue about this:\nScenario 1, one neutron network has two subnets, and connected all\nthese subnets to one DVR router.\nIn the qdhcp-ns the tap-device has all subnets\u0027 IP address, and its\ndirectly connected in both subnets. So qrouter-namspace is not needed.\n\nScenario 2, two neutron networks each have a separate subnet, and\nalso connect these subnets to one DVR router.\nBecause this scenario has two different networks, then the DHCP will be\nnaturally isolated. No need to let all subnets get reachable in such\nscenario in a DHCP namespace, aka East/West routing is no needed.\nLet the DHCP request only process in its own isolated broadcast domain.\n\nScenario 3, What will happen if a host only run DHCP agent?\nqrouter-dvr-namspace will never get hosted, but everything goes fine.\nVM could get an IP without that redundant router namespace.\n\nScenario 4, any new design/implementation once related to DHCP should\nnot let DHCP broadcast traffic can go across the domain. Routed\nnetwork/subnet may face such concern.\n\nSo, for your concern here, if the dhcp namespace can reach the gateway, the routed subnets is reachable, am i missing something?","commit_id":"7555cfae37dc097a3159024ba40e2d5a709d3b41"}],"doc/source/admin/deploy-ovs-ha-dvr.rst":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"149400e4dce755ab485bc5ad75745693a40c83f2","unresolved":false,"context_lines":[{"line_number":78,"context_line":".. note::"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"   For large scale cloud, if your deployment is running DVR with DHCP,"},{"line_number":81,"context_line":"   we recommand you set ``host_dvr_for_dhcp\u003dFalse`` to achieve a higher"},{"line_number":82,"context_line":"   L3 agent router processing performance. But with this config DNS"},{"line_number":83,"context_line":"   functionality will not be available."},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_a147be4b","line":81,"range":{"start_line":81,"start_character":6,"end_line":81,"end_character":15},"updated":"2019-07-08 08:34:33.000000000","message":"recommend","commit_id":"d031e4d5b840e0ba7f677ca7251459ec68fe4b52"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d258f7d6b1decd0c33b1f589b4ddc98620ca5116","unresolved":false,"context_lines":[{"line_number":78,"context_line":".. note::"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"   For large scale cloud, if your deployment is running DVR with DHCP,"},{"line_number":81,"context_line":"   we recommand you set ``host_dvr_for_dhcp\u003dFalse`` to achieve a higher"},{"line_number":82,"context_line":"   L3 agent router processing performance. But with this config DNS"},{"line_number":83,"context_line":"   functionality will not be available."},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_bdd6f326","line":81,"range":{"start_line":81,"start_character":6,"end_line":81,"end_character":15},"in_reply_to":"7faddb67_a147be4b","updated":"2019-07-09 05:55:34.000000000","message":"Done","commit_id":"d031e4d5b840e0ba7f677ca7251459ec68fe4b52"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"149400e4dce755ab485bc5ad75745693a40c83f2","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"   For large scale cloud, if your deployment is running DVR with DHCP,"},{"line_number":81,"context_line":"   we recommand you set ``host_dvr_for_dhcp\u003dFalse`` to achieve a higher"},{"line_number":82,"context_line":"   L3 agent router processing performance. But with this config DNS"},{"line_number":83,"context_line":"   functionality will not be available."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"#. Restart the following services:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_01a57204","line":82,"range":{"start_line":82,"start_character":43,"end_line":82,"end_character":64},"updated":"2019-07-08 08:34:33.000000000","message":"I would say something like: \"When this is set to False, DNS ....\"","commit_id":"d031e4d5b840e0ba7f677ca7251459ec68fe4b52"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d258f7d6b1decd0c33b1f589b4ddc98620ca5116","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"   For large scale cloud, if your deployment is running DVR with DHCP,"},{"line_number":81,"context_line":"   we recommand you set ``host_dvr_for_dhcp\u003dFalse`` to achieve a higher"},{"line_number":82,"context_line":"   L3 agent router processing performance. But with this config DNS"},{"line_number":83,"context_line":"   functionality will not be available."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"#. Restart the following services:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_7de07bfb","line":82,"range":{"start_line":82,"start_character":43,"end_line":82,"end_character":64},"in_reply_to":"7faddb67_01a57204","updated":"2019-07-09 05:55:34.000000000","message":"Done","commit_id":"d031e4d5b840e0ba7f677ca7251459ec68fe4b52"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6b34ffcaf3787c5b44d4f36558b333b40101f03b","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":".. note::"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"   For large scale cloud, if your deployment is running DVR with DHCP,"},{"line_number":81,"context_line":"   we recommend you set ``host_dvr_for_dhcp\u003dFalse`` to achieve a higher"},{"line_number":82,"context_line":"   L3 agent router processing performance. When this is set to False,"},{"line_number":83,"context_line":"   DNS functionality will not be available."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_c741783b","line":80,"range":{"start_line":80,"start_character":7,"end_line":80,"end_character":12},"updated":"2019-07-10 18:08:41.000000000","message":"s/a large","commit_id":"cb1ace1fc7b6797d03ad8bd40a65ea683cb24277"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6b34ffcaf3787c5b44d4f36558b333b40101f03b","unresolved":false,"context_lines":[{"line_number":78,"context_line":".. note::"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"   For large scale cloud, if your deployment is running DVR with DHCP,"},{"line_number":81,"context_line":"   we recommend you set ``host_dvr_for_dhcp\u003dFalse`` to achieve a higher"},{"line_number":82,"context_line":"   L3 agent router processing performance. When this is set to False,"},{"line_number":83,"context_line":"   DNS functionality will not be available."},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_6751a40e","line":81,"range":{"start_line":81,"start_character":63,"end_line":81,"end_character":64},"updated":"2019-07-10 18:08:41.000000000","message":"d/","commit_id":"cb1ace1fc7b6797d03ad8bd40a65ea683cb24277"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"cfe31da4ff1d0a67c56d3908145b72c3f26dc9d9","unresolved":false,"context_lines":[{"line_number":80,"context_line":"   For a large scale cloud, if your deployment is running DVR with DHCP,"},{"line_number":81,"context_line":"   we recommend you set ``host_dvr_for_dhcp\u003dFalse`` to achieve higher"},{"line_number":82,"context_line":"   L3 agent router processing performance. When this is set to False,"},{"line_number":83,"context_line":"   DNS functionality will not be available however."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"#. Restart the following services:"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"7faddb67_6ca892d8","line":83,"updated":"2019-08-14 14:37:00.000000000","message":"I just wanted to make sure this comment was clear (and correct).\n\nIt\u0027s not that DNS will not be available, just not via the DHCP namespace (dnsmasq).  If you\u0027re using an external (to neutron) DNS, either in your datacenter, or 8.8.8.8, DNS will work.  I just don\u0027t want someone to get confused.","commit_id":"80c2ce98607beb981a8cc467fd97882d591f6483"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"55952ac120e9492b6f937977a9fb77e15eb1269d","unresolved":false,"context_lines":[{"line_number":80,"context_line":"   For a large scale cloud, if your deployment is running DVR with DHCP,"},{"line_number":81,"context_line":"   we recommend you set ``host_dvr_for_dhcp\u003dFalse`` to achieve higher"},{"line_number":82,"context_line":"   L3 agent router processing performance. When this is set to False,"},{"line_number":83,"context_line":"   DNS functionality will not be available however."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"#. Restart the following services:"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"7faddb67_6162b118","line":83,"in_reply_to":"7faddb67_6ca892d8","updated":"2019-08-16 15:17:53.000000000","message":"Done","commit_id":"80c2ce98607beb981a8cc467fd97882d591f6483"}],"neutron/common/utils.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b1e502ee6c7e9182372de7eb3836e256ba9a52ee","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"TIME_FORMAT \u003d \"%Y-%m-%dT%H:%M:%SZ\""},{"line_number":53,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":54,"context_line":"l3_dvr_db.register_db_l3_dvr_opts()"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"DEFAULT_THROTTLER_VALUE \u003d 2"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_0ae9747e","line":54,"updated":"2019-05-29 17:46:37.000000000","message":"This is not the right place to do this, as it\u0027s tainting this module with DVR db code now.  The modules calling this, like dvr_mac_db.py which does something similar for dvr_mac_opts, is a better place.","commit_id":"7555cfae37dc097a3159024ba40e2d5a709d3b41"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"fa1aa33846b1931cbc7fabf9182b09af31175d63","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"TIME_FORMAT \u003d \"%Y-%m-%dT%H:%M:%SZ\""},{"line_number":53,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":54,"context_line":"l3_dvr_db.register_db_l3_dvr_opts()"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"DEFAULT_THROTTLER_VALUE \u003d 2"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_85b187e4","line":54,"in_reply_to":"9fb8cfa7_82341d4c","updated":"2019-06-03 15:32:17.000000000","message":"This is now exposing a layering issue.\n\nis_dvr_serviced() is called from both the OVS agent (L2) and DVR scheduler (L3) code, but this is an L3 option meant for just the scheduler.  That\u0027s one more reason to have this take an argument that defaults to True, then have just the L3 DVR scheduler callers pass the config value.","commit_id":"7555cfae37dc097a3159024ba40e2d5a709d3b41"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"2a3727d1860e028b04c22c2e0c5d67a624ebf3b4","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"TIME_FORMAT \u003d \"%Y-%m-%dT%H:%M:%SZ\""},{"line_number":53,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":54,"context_line":"l3_dvr_db.register_db_l3_dvr_opts()"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"DEFAULT_THROTTLER_VALUE \u003d 2"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_507362b5","line":54,"in_reply_to":"9fb8cfa7_85b187e4","updated":"2019-07-02 16:09:31.000000000","message":"Done","commit_id":"7555cfae37dc097a3159024ba40e2d5a709d3b41"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"59987154f2d5fe00a7d7563cd88b4bf5fb468f45","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"TIME_FORMAT \u003d \"%Y-%m-%dT%H:%M:%SZ\""},{"line_number":53,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":54,"context_line":"l3_dvr_db.register_db_l3_dvr_opts()"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"DEFAULT_THROTTLER_VALUE \u003d 2"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_181a23cb","line":54,"in_reply_to":"bfb3d3c7_0ae9747e","updated":"2019-05-30 01:49:41.000000000","message":"This is only DB config, why db code is involved, maybe I\u0027m missing something?\nSo did you mean move the new option to the DVR_MAC_ADDRESS_OPTS list? IMO, this is a gernal config for both neutron-server side and ovs-dvr-neutron-agent which will finally call this function to retrieve the device owners list. So, no matter where the option added, the register_xxx_opts will be called here. Otherwise, we will get unknown option error.","commit_id":"7555cfae37dc097a3159024ba40e2d5a709d3b41"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"5ed5881f73cd0157fac5690a301b0c664e928951","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"TIME_FORMAT \u003d \"%Y-%m-%dT%H:%M:%SZ\""},{"line_number":53,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":54,"context_line":"l3_dvr_db.register_db_l3_dvr_opts()"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"DEFAULT_THROTTLER_VALUE \u003d 2"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_af74e8cf","line":54,"in_reply_to":"bfb3d3c7_181a23cb","updated":"2019-05-30 13:18:37.000000000","message":"No, what I meant is the caller should be passing the flag below.  This is a generic utils file and should stay that way.","commit_id":"7555cfae37dc097a3159024ba40e2d5a709d3b41"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3e4389d5b83390cae0ce27b9e8ccf7267e8a5eec","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"TIME_FORMAT \u003d \"%Y-%m-%dT%H:%M:%SZ\""},{"line_number":53,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":54,"context_line":"l3_dvr_db.register_db_l3_dvr_opts()"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"DEFAULT_THROTTLER_VALUE \u003d 2"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_82341d4c","line":54,"in_reply_to":"bfb3d3c7_af74e8cf","updated":"2019-06-03 14:58:05.000000000","message":"get_other_dvr_serviced_device_owners and is_dvr_serviced are called widely by many functions. This is now the simplest change, otherwise we will influence many places.","commit_id":"7555cfae37dc097a3159024ba40e2d5a709d3b41"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6b34ffcaf3787c5b44d4f36558b333b40101f03b","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"TIME_FORMAT \u003d \"%Y-%m-%dT%H:%M:%SZ\""},{"line_number":54,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":55,"context_line":"l3_dvr_db.register_db_l3_dvr_opts()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"DEFAULT_THROTTLER_VALUE \u003d 2"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_39e194d1","line":55,"updated":"2019-07-10 18:08:41.000000000","message":"I still don\u0027t think this is right to put this here, let me push an update to move it to the callers instead.","commit_id":"cb1ace1fc7b6797d03ad8bd40a65ea683cb24277"}],"neutron/conf/db/l3_dvr_db.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"fa1aa33846b1931cbc7fabf9182b09af31175d63","unresolved":false,"context_lines":[{"line_number":27,"context_line":"                       \"DVR API extension will be disabled.\")),"},{"line_number":28,"context_line":"    cfg.BoolOpt(\u0027host_dvr_for_dhcp\u0027,"},{"line_number":29,"context_line":"                default\u003dTrue,"},{"line_number":30,"context_line":"                help\u003d_(\"Determine if hosting the dvr local router to the \""},{"line_number":31,"context_line":"                       \"scheduled DHCP node. If False, any L3 function \""},{"line_number":32,"context_line":"                       \"supported by DHCP agent instance will not be \""},{"line_number":33,"context_line":"                       \"possible, for instance: DNS.\")),"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_2551bbd9","line":30,"range":{"start_line":30,"start_character":49,"end_line":30,"end_character":52},"updated":"2019-06-03 15:32:17.000000000","message":"s/DVR\n\nAnd re-reading this message and the release note, it seems to me we are describing an implementation detail of DVR that is not going to be apparent to an operator.  A simple change like:\n\n\u0027Flag to determine if hosting a DVR router local to the DHCP agent is desired.  If False... \u0027","commit_id":"7555cfae37dc097a3159024ba40e2d5a709d3b41"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"2a3727d1860e028b04c22c2e0c5d67a624ebf3b4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"                       \"DVR API extension will be disabled.\")),"},{"line_number":28,"context_line":"    cfg.BoolOpt(\u0027host_dvr_for_dhcp\u0027,"},{"line_number":29,"context_line":"                default\u003dTrue,"},{"line_number":30,"context_line":"                help\u003d_(\"Determine if hosting the dvr local router to the \""},{"line_number":31,"context_line":"                       \"scheduled DHCP node. If False, any L3 function \""},{"line_number":32,"context_line":"                       \"supported by DHCP agent instance will not be \""},{"line_number":33,"context_line":"                       \"possible, for instance: DNS.\")),"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_7078e68e","line":30,"range":{"start_line":30,"start_character":49,"end_line":30,"end_character":52},"in_reply_to":"9fb8cfa7_2551bbd9","updated":"2019-07-02 16:09:31.000000000","message":"Done","commit_id":"7555cfae37dc097a3159024ba40e2d5a709d3b41"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"fa1aa33846b1931cbc7fabf9182b09af31175d63","unresolved":false,"context_lines":[{"line_number":29,"context_line":"                default\u003dTrue,"},{"line_number":30,"context_line":"                help\u003d_(\"Determine if hosting the dvr local router to the \""},{"line_number":31,"context_line":"                       \"scheduled DHCP node. If False, any L3 function \""},{"line_number":32,"context_line":"                       \"supported by DHCP agent instance will not be \""},{"line_number":33,"context_line":"                       \"possible, for instance: DNS.\")),"},{"line_number":34,"context_line":"]"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_e5ede325","line":32,"range":{"start_line":32,"start_character":34,"end_line":32,"end_character":36},"updated":"2019-06-03 15:32:17.000000000","message":"s/by the","commit_id":"7555cfae37dc097a3159024ba40e2d5a709d3b41"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"2a3727d1860e028b04c22c2e0c5d67a624ebf3b4","unresolved":false,"context_lines":[{"line_number":29,"context_line":"                default\u003dTrue,"},{"line_number":30,"context_line":"                help\u003d_(\"Determine if hosting the dvr local router to the \""},{"line_number":31,"context_line":"                       \"scheduled DHCP node. If False, any L3 function \""},{"line_number":32,"context_line":"                       \"supported by DHCP agent instance will not be \""},{"line_number":33,"context_line":"                       \"possible, for instance: DNS.\")),"},{"line_number":34,"context_line":"]"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_106deacb","line":32,"range":{"start_line":32,"start_character":34,"end_line":32,"end_character":36},"in_reply_to":"9fb8cfa7_e5ede325","updated":"2019-07-02 16:09:31.000000000","message":"Done","commit_id":"7555cfae37dc097a3159024ba40e2d5a709d3b41"}],"neutron/db/l3_dvr_db.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6b34ffcaf3787c5b44d4f36558b333b40101f03b","unresolved":false,"context_lines":[{"line_number":381,"context_line":"                    # dvr service ports except for the compute port and"},{"line_number":382,"context_line":"                    # dhcp port."},{"line_number":383,"context_line":"                    # If host_dvr_for_dhcp is set to False, the DHCP port"},{"line_number":384,"context_line":"                    # will not be included."},{"line_number":385,"context_line":"                    if (port[\u0027device_owner\u0027] \u003d\u003d \"\" or"},{"line_number":386,"context_line":"                            port[\u0027device_owner\u0027] in allowed_device_owners):"},{"line_number":387,"context_line":"                        addr_pair_active_service_port_list \u003d ("}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_27264cb9","line":384,"updated":"2019-07-10 18:08:41.000000000","message":"I don\u0027t see how this comment is relevant as we are not calling the method that was changed, we just called get_dvr_allowed_address_pair_device_owners()","commit_id":"cb1ace1fc7b6797d03ad8bd40a65ea683cb24277"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"89730d4460359e4ea17ffc6f2a1c03a55910bbdf","unresolved":false,"context_lines":[{"line_number":381,"context_line":"                    # dvr service ports except for the compute port and"},{"line_number":382,"context_line":"                    # dhcp port."},{"line_number":383,"context_line":"                    # If host_dvr_for_dhcp is set to False, the DHCP port"},{"line_number":384,"context_line":"                    # will not be included."},{"line_number":385,"context_line":"                    if (port[\u0027device_owner\u0027] \u003d\u003d \"\" or"},{"line_number":386,"context_line":"                            port[\u0027device_owner\u0027] in allowed_device_owners):"},{"line_number":387,"context_line":"                        addr_pair_active_service_port_list \u003d ("}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_609ae46e","line":384,"in_reply_to":"7faddb67_27264cb9","updated":"2019-07-11 02:54:58.000000000","message":"Done","commit_id":"cb1ace1fc7b6797d03ad8bd40a65ea683cb24277"}],"neutron/db/l3_dvrscheduler_db.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c9757262b914a0aae740fc3b96f4b5ca612fe3a9","unresolved":false,"context_lines":[{"line_number":354,"context_line":"        owner_filter \u003d or_("},{"line_number":355,"context_line":"            Port.device_owner.startswith(n_const.DEVICE_OWNER_COMPUTE_PREFIX),"},{"line_number":356,"context_line":"            Port.device_owner.in_("},{"line_number":357,"context_line":"                n_utils.get_other_dvr_serviced_device_owners(host_dvr_dhcp)))"},{"line_number":358,"context_line":"        query \u003d query.filter(owner_filter)"},{"line_number":359,"context_line":"        hosts \u003d [item[0] for item in query if item[0] !\u003d \u0027\u0027]"},{"line_number":360,"context_line":"        return hosts"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_a0cbfc6f","line":357,"range":{"start_line":357,"start_character":61,"end_line":357,"end_character":74},"updated":"2019-07-11 02:52:24.000000000","message":"Looks a bit ugly for current style. : )\nEverytime the get_other_dvr_serviced_device_owners change the behavior, all these places should be involved to make a change.","commit_id":"eef0803c86e43e4aca7ae6b842be55fb9b705eb4"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ab78dc310996d5e87262d6e3e934416abadf9772","unresolved":false,"context_lines":[{"line_number":354,"context_line":"        owner_filter \u003d or_("},{"line_number":355,"context_line":"            Port.device_owner.startswith(n_const.DEVICE_OWNER_COMPUTE_PREFIX),"},{"line_number":356,"context_line":"            Port.device_owner.in_("},{"line_number":357,"context_line":"                n_utils.get_other_dvr_serviced_device_owners(host_dvr_dhcp)))"},{"line_number":358,"context_line":"        query \u003d query.filter(owner_filter)"},{"line_number":359,"context_line":"        hosts \u003d [item[0] for item in query if item[0] !\u003d \u0027\u0027]"},{"line_number":360,"context_line":"        return hosts"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_7a0e0f3c","line":357,"range":{"start_line":357,"start_character":61,"end_line":357,"end_character":74},"in_reply_to":"7faddb67_a0cbfc6f","updated":"2019-07-11 12:36:39.000000000","message":"Miguel - what\u0027s your thought on this?  I didn\u0027t think the common.utils module should be including the config options to make this decision, that the callers should be, but I\u0027m sometimes just stubborn in my thinking.  After looking it\u0027s not as clean as I thought...","commit_id":"eef0803c86e43e4aca7ae6b842be55fb9b705eb4"}],"releasenotes/notes/config-host_dvr_for_dhcp-f949aca5bd666e24.yaml":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"149400e4dce755ab485bc5ad75745693a40c83f2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new config ``host_dvr_for_dhcp`` was added for DVR to determine"},{"line_number":5,"context_line":"    whether host the dvr local router to the scheduled DHCP node(s)."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7faddb67_a18ede75","line":4,"range":{"start_line":4,"start_character":10,"end_line":4,"end_character":16},"updated":"2019-07-08 08:34:33.000000000","message":"config option","commit_id":"d031e4d5b840e0ba7f677ca7251459ec68fe4b52"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d258f7d6b1decd0c33b1f589b4ddc98620ca5116","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new config ``host_dvr_for_dhcp`` was added for DVR to determine"},{"line_number":5,"context_line":"    whether host the dvr local router to the scheduled DHCP node(s)."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7faddb67_3de20303","line":4,"range":{"start_line":4,"start_character":10,"end_line":4,"end_character":16},"in_reply_to":"7faddb67_a18ede75","updated":"2019-07-09 05:55:34.000000000","message":"Done","commit_id":"d031e4d5b840e0ba7f677ca7251459ec68fe4b52"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6b34ffcaf3787c5b44d4f36558b333b40101f03b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new config option ``host_dvr_for_dhcp`` was added for DVR to determine"},{"line_number":5,"context_line":"    whether host the dvr local router to the scheduled DHCP node(s)."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"7faddb67_e7d83480","line":4,"range":{"start_line":4,"start_character":50,"end_line":4,"end_character":55},"updated":"2019-07-10 18:08:41.000000000","message":"s/added to neutron.conf","commit_id":"cb1ace1fc7b6797d03ad8bd40a65ea683cb24277"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6b34ffcaf3787c5b44d4f36558b333b40101f03b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new config option ``host_dvr_for_dhcp`` was added for DVR to determine"},{"line_number":5,"context_line":"    whether host the dvr local router to the scheduled DHCP node(s)."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"7faddb67_c7ddf870","line":4,"range":{"start_line":4,"start_character":17,"end_line":4,"end_character":45},"updated":"2019-07-10 18:08:41.000000000","message":"s/option, ``host_dvr_for_dhcp``,","commit_id":"cb1ace1fc7b6797d03ad8bd40a65ea683cb24277"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6b34ffcaf3787c5b44d4f36558b333b40101f03b","unresolved":false,"context_lines":[{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new config option ``host_dvr_for_dhcp`` was added for DVR to determine"},{"line_number":5,"context_line":"    whether host the dvr local router to the scheduled DHCP node(s)."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"7faddb67_474ee86f","line":5,"range":{"start_line":5,"start_character":21,"end_line":5,"end_character":24},"updated":"2019-07-10 18:08:41.000000000","message":"s/DVR","commit_id":"cb1ace1fc7b6797d03ad8bd40a65ea683cb24277"}]}
