)]}'
{"neutron_lib/constants.py":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"b6bd4404096bddacabafdf5caae64984934fd06b","unresolved":false,"context_lines":[{"line_number":606,"context_line":"PRIVATE_CIDR_RANGE \u003d \u0027169.254.0.0/16\u0027"},{"line_number":607,"context_line":"DVR_FIP_LL_CIDR \u003d \u0027169.254.64.0/18\u0027"},{"line_number":608,"context_line":"L3_HA_NET_CIDR \u003d \u0027169.254.192.0/18\u0027"},{"line_number":609,"context_line":"METADATA_CIDR \u003d \u0027169.254.169.254/32\u0027"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"# Well-known addresses of the metadata service."},{"line_number":612,"context_line":"METADATA_V4_IP \u003d \u0027169.254.169.254\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_0f109d56","line":609,"range":{"start_line":609,"start_character":0,"end_line":609,"end_character":36},"updated":"2020-06-26 13:35:49.000000000","message":"This is used here:\n\nhttps://opendev.org/openstack/neutron/src/branch/master/neutron/agent/linux/keepalived.py#L193\n\nAnd in the logic the /32 seems to matter. That\u0027s why I did not touch it, despite the near duplication.","commit_id":"2ab4f429ac357255af5788a39284d5c7d246ab9c"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"28c86732bb0e39d36a822b11d19a54bdb2627c6c","unresolved":false,"context_lines":[{"line_number":609,"context_line":"METADATA_CIDR \u003d \u0027169.254.169.254/32\u0027"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"# Well-known addresses of the metadata service."},{"line_number":612,"context_line":"METADATA_V4_IP \u003d \u0027169.254.169.254\u0027"},{"line_number":613,"context_line":"METADATA_V4_PREFIX \u003d 16"},{"line_number":614,"context_line":"METADATA_V4_CIDR \u003d \u0027%s/%d\u0027 % (METADATA_V4_IP, METADATA_V4_PREFIX)"},{"line_number":615,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_12b4407f","line":612,"updated":"2020-06-26 17:37:05.000000000","message":"This seems to be required for \"bind\" calls done by haproxy code, so I think is fine.  I think the /32 in METADATA_CIDR messes things up perhaps?","commit_id":"2ab4f429ac357255af5788a39284d5c7d246ab9c"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"cc2838acbbf49450b312316c971ed82abc6aef37","unresolved":false,"context_lines":[{"line_number":610,"context_line":""},{"line_number":611,"context_line":"# Well-known addresses of the metadata service."},{"line_number":612,"context_line":"METADATA_V4_IP \u003d \u0027169.254.169.254\u0027"},{"line_number":613,"context_line":"METADATA_V4_PREFIX \u003d 16"},{"line_number":614,"context_line":"METADATA_V4_CIDR \u003d \u0027%s/%d\u0027 % (METADATA_V4_IP, METADATA_V4_PREFIX)"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"METADATA_V6_IP \u003d \u0027fe80::a9fe:a9fe\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_bfe15f2d","line":613,"updated":"2020-07-07 08:48:36.000000000","message":"IMO this is wrong. Metadata uses only a single IP and accesses to that IP are being redirected on the router or on the DHCP agent. None of the other addresses in 169.254.0.0/16 are being used in the metadata service, instances don\u0027t need any IP in that net in order to access metadata.","commit_id":"2ab4f429ac357255af5788a39284d5c7d246ab9c"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"28c86732bb0e39d36a822b11d19a54bdb2627c6c","unresolved":false,"context_lines":[{"line_number":611,"context_line":"# Well-known addresses of the metadata service."},{"line_number":612,"context_line":"METADATA_V4_IP \u003d \u0027169.254.169.254\u0027"},{"line_number":613,"context_line":"METADATA_V4_PREFIX \u003d 16"},{"line_number":614,"context_line":"METADATA_V4_CIDR \u003d \u0027%s/%d\u0027 % (METADATA_V4_IP, METADATA_V4_PREFIX)"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"METADATA_V6_IP \u003d \u0027fe80::a9fe:a9fe\u0027"},{"line_number":617,"context_line":"METADATA_V6_PREFIX \u003d 64"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_7b68f7f3","line":614,"updated":"2020-06-26 17:37:05.000000000","message":"So this is being used for configuring a metadata subnet, it\u0027s actually not an address.  And looking again at it the value seems wrong:\n\n    \u0027169.254.169.254/16\u0027\n\nUsing netaddr that turns-into:\n\n\u003e\u003e\u003e netaddr.IPNetwork(\u0027169.254.169.254/16\u0027).network\nIPAddress(\u0027169.254.0.0\u0027)\n\nI think the ML2/OVS code in agent/linux/dhcp.py is using it correctly, I\u0027m just not so sure of the OVN metadata agent code in ovn/metadata/agent.py is, it seems to calling:\n\n$ ip addr add dev foo 169.254.169.254/16\n\nI think in reality it should be using METADATA_CIDR as defined above.\n\nLet me send out a \"cleanup\" patch for neutron and hopefully things will be clearer after that?","commit_id":"2ab4f429ac357255af5788a39284d5c7d246ab9c"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"cc2838acbbf49450b312316c971ed82abc6aef37","unresolved":false,"context_lines":[{"line_number":611,"context_line":"# Well-known addresses of the metadata service."},{"line_number":612,"context_line":"METADATA_V4_IP \u003d \u0027169.254.169.254\u0027"},{"line_number":613,"context_line":"METADATA_V4_PREFIX \u003d 16"},{"line_number":614,"context_line":"METADATA_V4_CIDR \u003d \u0027%s/%d\u0027 % (METADATA_V4_IP, METADATA_V4_PREFIX)"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"METADATA_V6_IP \u003d \u0027fe80::a9fe:a9fe\u0027"},{"line_number":617,"context_line":"METADATA_V6_PREFIX \u003d 64"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_1f604ba5","line":614,"in_reply_to":"bf51134e_7b68f7f3","updated":"2020-07-07 08:48:36.000000000","message":"I haven\u0027t seen the cleanup patch, but METADATA_V4_CIDR should be the same as METADATA_CIDR, see above.","commit_id":"2ab4f429ac357255af5788a39284d5c7d246ab9c"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"cc2838acbbf49450b312316c971ed82abc6aef37","unresolved":false,"context_lines":[{"line_number":614,"context_line":"METADATA_V4_CIDR \u003d \u0027%s/%d\u0027 % (METADATA_V4_IP, METADATA_V4_PREFIX)"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"METADATA_V6_IP \u003d \u0027fe80::a9fe:a9fe\u0027"},{"line_number":617,"context_line":"METADATA_V6_PREFIX \u003d 64"},{"line_number":618,"context_line":"METADATA_V6_CIDR \u003d \u0027%s/%d\u0027 % (METADATA_V6_IP, METADATA_V6_PREFIX)"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"METADATA_PORT \u003d 80"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_9fc57b91","line":617,"updated":"2020-07-07 08:48:36.000000000","message":"This is correct, though. For IPv6 access happens within the link-local network, which is fe80::/64, instances have their own link-local address and there is a \"normal\" connection setup happening within that directly connected link-local network.","commit_id":"2ab4f429ac357255af5788a39284d5c7d246ab9c"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8f11ca7ab2ffeb7edf2e90c63da9b74b039d1e7b","unresolved":false,"context_lines":[{"line_number":611,"context_line":"# When binding to an address, used with a port."},{"line_number":612,"context_line":"METADATA_V4_IP \u003d \u0027169.254.169.254\u0027"},{"line_number":613,"context_line":"# When configuring an address on an interface."},{"line_number":614,"context_line":"# When adding a route."},{"line_number":615,"context_line":"METADATA_V4_CIDR \u003d \u0027169.254.169.254/32\u0027"},{"line_number":616,"context_line":"# When checking if a metadata subnet is present."},{"line_number":617,"context_line":"METADATA_V4_SUBNET \u003d \u0027169.254.0.0/16\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_d916e8a7","line":614,"updated":"2020-07-07 16:20:30.000000000","message":"That also sounds redundant, adding a route to an IPv4 address should implicitly have the \"/32\" added.","commit_id":"47db0366a2fff0729c299d3c85abeda84d2437be"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"f48e6616f2d4340b38bef6c242426fd61d5321d6","unresolved":false,"context_lines":[{"line_number":611,"context_line":"# When binding to an address, used with a port."},{"line_number":612,"context_line":"METADATA_V4_IP \u003d \u0027169.254.169.254\u0027"},{"line_number":613,"context_line":"# When configuring an address on an interface."},{"line_number":614,"context_line":"# When adding a route."},{"line_number":615,"context_line":"METADATA_V4_CIDR \u003d \u0027169.254.169.254/32\u0027"},{"line_number":616,"context_line":"# When checking if a metadata subnet is present."},{"line_number":617,"context_line":"METADATA_V4_SUBNET \u003d \u0027169.254.0.0/16\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_a8cc6035","line":614,"in_reply_to":"bf51134e_d916e8a7","updated":"2020-07-09 08:12:27.000000000","message":"After seeing that Brian had to fix problems around this, I believe it\u0027s better to be explicit here. That\u0027s why I also took these comments from his patch.","commit_id":"47db0366a2fff0729c299d3c85abeda84d2437be"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8f11ca7ab2ffeb7edf2e90c63da9b74b039d1e7b","unresolved":false,"context_lines":[{"line_number":614,"context_line":"# When adding a route."},{"line_number":615,"context_line":"METADATA_V4_CIDR \u003d \u0027169.254.169.254/32\u0027"},{"line_number":616,"context_line":"# When checking if a metadata subnet is present."},{"line_number":617,"context_line":"METADATA_V4_SUBNET \u003d \u0027169.254.0.0/16\u0027"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"METADATA_V6_IP \u003d \u0027fe80::a9fe:a9fe\u0027"},{"line_number":620,"context_line":"METADATA_V6_CIDR \u003d \u0027fe80::a9fe:a9fe/64\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_19ea20ab","line":617,"updated":"2020-07-07 16:20:30.000000000","message":"I still don\u0027t see why the /16 should be used anywhere at all, but I see that it is being used in the DHCP agent code, I need to look into that in more detail in order to understand what is happening there.","commit_id":"47db0366a2fff0729c299d3c85abeda84d2437be"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8f11ca7ab2ffeb7edf2e90c63da9b74b039d1e7b","unresolved":false,"context_lines":[{"line_number":620,"context_line":"METADATA_V6_CIDR \u003d \u0027fe80::a9fe:a9fe/64\u0027"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"# For backwards compatibility, prefer METADATA_V4_CIDR instead."},{"line_number":623,"context_line":"METADATA_CIDR \u003d METADATA_V4_CIDR"},{"line_number":624,"context_line":"METADATA_PORT \u003d 80"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"# The only defined IpamAllocation status at this stage is \u0027ALLOCATED\u0027."}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_79f99c7e","line":623,"updated":"2020-07-07 16:20:30.000000000","message":"Move this behind METADATA_PORT in order to avoid the ambiguity of whether the latter is also affected by the comment?","commit_id":"47db0366a2fff0729c299d3c85abeda84d2437be"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"f48e6616f2d4340b38bef6c242426fd61d5321d6","unresolved":false,"context_lines":[{"line_number":620,"context_line":"METADATA_V6_CIDR \u003d \u0027fe80::a9fe:a9fe/64\u0027"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"# For backwards compatibility, prefer METADATA_V4_CIDR instead."},{"line_number":623,"context_line":"METADATA_CIDR \u003d METADATA_V4_CIDR"},{"line_number":624,"context_line":"METADATA_PORT \u003d 80"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"# The only defined IpamAllocation status at this stage is \u0027ALLOCATED\u0027."}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_08e74cae","line":623,"in_reply_to":"bf51134e_79f99c7e","updated":"2020-07-09 08:12:27.000000000","message":"Done","commit_id":"47db0366a2fff0729c299d3c85abeda84d2437be"}]}
