)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"39ec5c447d426364c8aae4e2a4be741fad310f4c","unresolved":true,"context_lines":[{"line_number":27,"context_line":"was done for EC2 and for IPv4 (/32) as well."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This helps fix the DAD failure bug in the following way."},{"line_number":30,"context_line":"Using a ULA allows us to configure it on the loopback"},{"line_number":31,"context_line":"device, and inject a route into the VM via the DHCP"},{"line_number":32,"context_line":"agent IP address. This is what we do today for IPv4"},{"line_number":33,"context_line":"metadata on an isolated network.  We cannot just move"},{"line_number":34,"context_line":"fe80::a9fe:a9fe to the loopback device and inject a"},{"line_number":35,"context_line":"route for it as it is a link-local address and traffic"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"09e75dca_d83a30ea","line":32,"range":{"start_line":30,"start_character":1,"end_line":32,"end_character":17},"updated":"2023-03-09 16:53:30.000000000","message":"How are you going to route the packet to the \"lo\" interface? Using the link local address of the external interface of the DHCP namespace? We can\u0027t use a link local address for that.\n\nE.g.:\nroot@dev20:~# ip netns exec $dhcp ip -6 r add fe80::a9fe:a9fe/128 dev tap6b8931bf-23 via fe80::f816:3eff:fe03:435\nError: Gateway can not be a local address.","commit_id":"7a628960dc6b0e7c9d8260669a9002d818c14c80"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"24723360b0c9bf2cd678cd4329c273cd64487a6e","unresolved":true,"context_lines":[{"line_number":27,"context_line":"was done for EC2 and for IPv4 (/32) as well."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This helps fix the DAD failure bug in the following way."},{"line_number":30,"context_line":"Using a ULA allows us to configure it on the loopback"},{"line_number":31,"context_line":"device, and inject a route into the VM via the DHCP"},{"line_number":32,"context_line":"agent IP address. This is what we do today for IPv4"},{"line_number":33,"context_line":"metadata on an isolated network.  We cannot just move"},{"line_number":34,"context_line":"fe80::a9fe:a9fe to the loopback device and inject a"},{"line_number":35,"context_line":"route for it as it is a link-local address and traffic"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"55e3f787_e61d84e9","line":32,"range":{"start_line":30,"start_character":1,"end_line":32,"end_character":17},"in_reply_to":"09e75dca_d83a30ea","updated":"2023-03-09 17:55:28.000000000","message":"Yes, we have to leave the existing link-local metadata address on the interface, the next sentence actually mentions this. That is why we would need to choose another address (eg ULA) for this, and hence the mention of the EC2 one.\n\nAs a side note, Bence mentioned we probably also have this problem with the IPv4 address too, just that noone does DAD for IPv4 so it\u0027s unnoticed, plus in the isolated case we also inject a route. But we could move that IP to loopback as well and things should just continue to work.\n\nPart of the work the BGP team did made me think we could do this, I believe they also configure a number of addresses on the loopback device.","commit_id":"7a628960dc6b0e7c9d8260669a9002d818c14c80"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b6733f1cbb18dabbc00b97737f677e9b2b10b8ce","unresolved":false,"context_lines":[{"line_number":27,"context_line":"was done for EC2 and for IPv4 (/32) as well."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This helps fix the DAD failure bug in the following way."},{"line_number":30,"context_line":"Using a ULA allows us to configure it on the loopback"},{"line_number":31,"context_line":"device, and inject a route into the VM via the DHCP"},{"line_number":32,"context_line":"agent IP address. This is what we do today for IPv4"},{"line_number":33,"context_line":"metadata on an isolated network.  We cannot just move"},{"line_number":34,"context_line":"fe80::a9fe:a9fe to the loopback device and inject a"},{"line_number":35,"context_line":"route for it as it is a link-local address and traffic"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"55ce0d3c_adc75961","line":32,"range":{"start_line":30,"start_character":1,"end_line":32,"end_character":17},"in_reply_to":"55e3f787_e61d84e9","updated":"2023-03-10 00:23:04.000000000","message":"I guess I didn\u0027t answer your question - I didn\u0027t need to route it in the dhcp namespace in my testing, it just worked in my testing at least, think due to the default setting of rp_filter?","commit_id":"7a628960dc6b0e7c9d8260669a9002d818c14c80"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ec813097442c534929184f2b083aef46ce5877e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b0f8b3b8_8674f7b9","updated":"2023-03-08 23:24:13.000000000","message":"Bence, Rodolfo - I have not tested this yet on a live system, but according to the unit tests I didn\u0027t break anything. I think. And I really tried to make it backwards compatible, we\u0027ll have to discuss the bug further at the drivers meeting, maybe after we\u0027ve vetted this helps.","commit_id":"7a628960dc6b0e7c9d8260669a9002d818c14c80"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"66f8613a3d600f7bbdff7e9671ae524eee4e92e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5dbe7aea_2ee15109","updated":"2023-03-13 13:21:41.000000000","message":"Just started to look, will come back and continue.","commit_id":"e1a48892b51e7546ab48b218e03fe3176c812705"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"a76340a448bbf7d1619a2d3d6b66eb1f4fbe0a73","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"41e682be_3b2b4bff","updated":"2023-03-14 01:21:16.000000000","message":"I need to test this some more, had problems with config options working correctly with last version.","commit_id":"ad5f722c06e96e6fb7a86954ffb45d9b3d1b2a22"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"32761e95507c20ce40efe9c1e4571bb7914aad74","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"46e6b6ef_a5ed074f","updated":"2023-03-14 13:43:07.000000000","message":"I deployed this in my environment, but I may be doing something wrong, because I\u0027m not getting a v4 dhcp offer.\n\nI have a three host devstack environment. On two hosts, where I keep dhcp-agent running, I deployed ps8.\n\nAdded this config:\nvim /etc/neutron/neutron.conf\n[DEFAULT]\nipv6_metadata_cidrs \u003d fe80::a9fe:a9fe/128,fd00:ec2::254/128\n\nAnd I already had dhcp_agents_per_network \u003d 2.\n\nRestarted q-dhcp, q-l3 and q-meta.\n\n# physnet1 is properly connected.\nopenstack net create net1 --provider-network-type vlan --provider-segment 100 --provider-physical-network physnet1\nopenstack subnet create subnet1-v4 --ip-version 4 --network net1 --subnet-range 10.0.4.0/24\n# Wanting to test with other subnet modes, just started with this.\nopenstack subnet create subnet1-v6 --ip-version 6 --network net1 --subnet-range 2001:db8::/64 --dhcp --ipv6-ra-mode slaac --ipv6-address-mode slaac\n\nopenstack server create --flavor cirros256 --image cirros-0.5.2-x86_64-disk --availability-zone :$( combine \u003c( openstack network agent list --agent-type dhcp -f value -c Host | sort ) not \u003c( openstack network agent list --network net1 -f value -c Host | sort ) | head -1 ) --nic net-id\u003dnet1 --wait vm0\n\nIn the freshly booted vm I get no dhcp offer.\n\nvm0 $ cirros-dhcpc up eth0\nudhcpc: started, v1.29.3\nudhcpc: sending discover\nudhcpc: sending discover\nudhcpc: sending discover\nUsage: /sbin/cirros-dhcpc \u003cup|down\u003e\nudhcpc: no lease, failing\n\nBut the dhcp request gets to the dhcp namespace.\n\nvm0 $ ip l show dev eth0\n2: eth0: \u003cBROADCAST,MULTICAST,UP,LOWER_UP\u003e mtu 1500 qdisc pfifo_fast qlen 1000\n    link/ether fa:16:3e:a2:34:9c brd ff:ff:ff:ff:ff:ff\n\n$ sudo ip netns exec qdhcp-$( openstack net show net1 -f value -c id ) tcpdump -leni tap$( openstack port list --device-owner network:dhcp --host $( hostname ) --network net1 -f value -c id | cut -b1-11 )\ntcpdump: verbose output suppressed, use -v[v]... for full protocol decode\nlistening on tapb5da4be8-4f, link-type EN10MB (Ethernet), snapshot length 262144 bytes\n13:14:33.520367 fa:16:3e:a2:34:9c \u003e 33:33:00:00:00:02, ethertype IPv6 (0x86dd), length 70: fe80::f816:3eff:fea2:349c \u003e ff02::2: ICMP6, router solicitation, length 16\n13:14:57.216007 fa:16:3e:a2:34:9c \u003e ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 0.0.0.0.68 \u003e 255.255.255.255.67: BOOTP/DHCP, Request from fa:16:3e:a2:34:9c, length 300\n\nSo let\u0027s see dnsmasq configuration:\n$ cp -r /opt/stack/data/neutron/dhcp/$( openstack net show net1 -f value -c id ) /tmp/dnsmasq-876903,8\n\nIn comparison with master (checkout master, restart services):\n$ cp -r /opt/stack/data/neutron/dhcp/$( openstack net show net1 -f value -c id ) /tmp/dnsmasq-master\n\n$ diff -ur /tmp/dnsmasq-*\ndiff -ur /tmp/dnsmasq-876903,8/addn_hosts /tmp/dnsmasq-master/addn_hosts\n--- /tmp/dnsmasq-876903,8/addn_hosts    2023-03-14 13:27:49.071116922 +0000\n+++ /tmp/dnsmasq-master/addn_hosts      2023-03-14 13:30:44.254858164 +0000\n@@ -0,0 +1,2 @@\n+10.0.4.6       host-10-0-4-6.openstacklocal host-10-0-4-6\n+2001:db8::f816:3eff:fea2:349c  host-2001-db8--f816-3eff-fea2-349c.openstacklocal host-2001-db8--f816-3eff-fea2-349c\ndiff -ur /tmp/dnsmasq-876903,8/host /tmp/dnsmasq-master/host\n--- /tmp/dnsmasq-876903,8/host  2023-03-14 13:27:49.071116922 +0000\n+++ /tmp/dnsmasq-master/host    2023-03-14 13:30:44.254858164 +0000\n@@ -0,0 +1 @@\n+fa:16:3e:a2:34:9c,host-10-0-4-6.openstacklocal,10.0.4.6\ndiff -ur /tmp/dnsmasq-876903,8/opts /tmp/dnsmasq-master/opts\n--- /tmp/dnsmasq-876903,8/opts  2023-03-14 13:27:49.071116922 +0000\n+++ /tmp/dnsmasq-master/opts    2023-03-14 13:30:44.254858164 +0000\n@@ -1,3 +1,4 @@\n tag:subnet-7d91a205-8ceb-4527-a0a3-2ba7f4a8cc5a,option:classless-static-route,169.254.169.254/32,10.0.4.2,0.0.0.0/0,10.0.4.1\n tag:subnet-7d91a205-8ceb-4527-a0a3-2ba7f4a8cc5a,249,169.254.169.254/32,10.0.4.2,0.0.0.0/0,10.0.4.1\n-tag:subnet-7d91a205-8ceb-4527-a0a3-2ba7f4a8cc5a,option:router,10.0.4.1\n\\ No newline at end of file\n+tag:subnet-7d91a205-8ceb-4527-a0a3-2ba7f4a8cc5a,option:router,10.0.4.1\n+tag:subnet-7d91a205-8ceb-4527-a0a3-2ba7f4a8cc5a,option:dns-server,10.0.4.3,10.0.4.2\n\\ No newline at end of file\ndiff -ur /tmp/dnsmasq-876903,8/pid /tmp/dnsmasq-master/pid\n--- /tmp/dnsmasq-876903,8/pid   2023-03-14 13:27:49.071116922 +0000\n+++ /tmp/dnsmasq-master/pid     2023-03-14 13:30:44.254858164 +0000\n@@ -1 +1 @@\n-410160\n+411493\n\nWhich shows that the dnsmasq host file was originally empty.","commit_id":"e81f1d9d2864f798a6eb2555f765128e3bec19fb"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b281bb21787ad4dcdf88352529c27c5750d357ba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"0808bcae_7e1042fb","in_reply_to":"46e6b6ef_a5ed074f","updated":"2023-03-14 16:24:42.000000000","message":"Thanks for trying it, I was having trouble with it last night but have a new stack up today and see a similar failure, and I only have one dhcp agent. Failure was:\n\nneutron.agent.linux.ip_lib.AddressNotReady: Failure waiting for address fe80::a9fe:a9fe to become ready: Address not present on interface\n\nWhich is really odd, I don\u0027t know if it\u0027s checking the wrong interface? I thought the code would just look at all of them.\n\nI\u0027ll do some more debugging.","commit_id":"e81f1d9d2864f798a6eb2555f765128e3bec19fb"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"0031b15358be536951c921d4fe009c77c5085cf5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"4818feee_a53b6834","updated":"2023-03-15 01:42:48.000000000","message":"I still need to install and test this latest change, should be better I hope. I\u0027ll update once I\u0027ve done that.","commit_id":"ed7c64afcee746394c87a68134da07569c9f8826"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"7bc1bc5c366f667c8783630db1a41793f87f9180","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"50aea812_932750b2","updated":"2023-03-15 14:51:31.000000000","message":"Only looked at isolated metadata yet. And a very limited set of subnet modes. In my environment the addresses are configured as expected. haproxy listens on addresses as expected. However I still don\u0027t see how we will push the v6 routes, please see what I found on agent/linux/dhcp.py. Is this part working for you? If yes, in which subnet modes?\n\nBy the way, this patch could be on top of the short term error suppression patch.","commit_id":"ed7c64afcee746394c87a68134da07569c9f8826"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ffa4d53886acf722e6f00f06e783cc88539d6b9a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"cca6745d_9dd72d89","updated":"2023-03-17 21:03:30.000000000","message":"I\u0027m going to re-install this version and re-test.\n\nBut I guess we\u0027re at the point to say, \"Is this the best way?\"\n\nI truly don\u0027t know at the moment.\n\nThe other alternative I suppose is to add something to the RPC message to tell one DHCP agent it should configure the metadata IPv6 address, and if it goes offline to tell a different one.\n\nIt\u0027s late and Friday so will ponder over the weekend.","commit_id":"dc836d010767526ecb699366be363896c989dd2a"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"7e16f901f6517983f6253bcc4c0363633aea6009","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"8f393375_fdd1b4b5","updated":"2023-03-23 15:01:47.000000000","message":"Sorry for the slow response.","commit_id":"dc836d010767526ecb699366be363896c989dd2a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d4f89afcff5789efaa0f183e74495fa03d11440a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"25493a47_1218f4e3","updated":"2023-03-16 22:33:09.000000000","message":"This is still a little messy, and needs more testing.","commit_id":"dc836d010767526ecb699366be363896c989dd2a"}],"neutron/agent/dhcp/agent.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":"7bc1bc5c366f667c8783630db1a41793f87f9180","unresolved":true,"context_lines":[{"line_number":808,"context_line":"                                      for ip in"},{"line_number":809,"context_line":"                                      self.conf.metadata_ipv6_cidrs]"},{"line_number":810,"context_line":"                    # We might have to specify different interface names"},{"line_number":811,"context_line":"                    # depending on the scope of the loopback address"},{"line_number":812,"context_line":"                    bind_dict \u003d {}"},{"line_number":813,"context_line":"                    for ip in bind_addresses:"},{"line_number":814,"context_line":"                        if utils.is_link_local(ip):"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf5f3c11_c1975e55","line":811,"range":{"start_line":811,"start_character":52,"end_line":811,"end_character":60},"updated":"2023-03-15 14:51:31.000000000","message":"s/loopback/metadata/","commit_id":"ed7c64afcee746394c87a68134da07569c9f8826"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6df900ed90f4c5e6b2cb5196ffef8c1838d51238","unresolved":false,"context_lines":[{"line_number":808,"context_line":"                                      for ip in"},{"line_number":809,"context_line":"                                      self.conf.metadata_ipv6_cidrs]"},{"line_number":810,"context_line":"                    # We might have to specify different interface names"},{"line_number":811,"context_line":"                    # depending on the scope of the loopback address"},{"line_number":812,"context_line":"                    bind_dict \u003d {}"},{"line_number":813,"context_line":"                    for ip in bind_addresses:"},{"line_number":814,"context_line":"                        if utils.is_link_local(ip):"}],"source_content_type":"text/x-python","patch_set":9,"id":"c13e8d4b_9aaf805f","line":811,"range":{"start_line":811,"start_character":52,"end_line":811,"end_character":60},"in_reply_to":"bf5f3c11_c1975e55","updated":"2023-03-16 22:32:36.000000000","message":"Done","commit_id":"ed7c64afcee746394c87a68134da07569c9f8826"}],"neutron/agent/linux/dhcp.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":"66f8613a3d600f7bbdff7e9671ae524eee4e92e4","unresolved":true,"context_lines":[{"line_number":1266,"context_line":"                        host_routes.append("},{"line_number":1267,"context_line":"                            \u0027%s,%s\u0027 % (constants.METADATA_CIDR, subnet_dhcp_ip)"},{"line_number":1268,"context_line":"                        )"},{"line_number":1269,"context_line":"                    else:"},{"line_number":1270,"context_line":"                        for ip in self.conf.ipv6_metadata_cidrs:"},{"line_number":1271,"context_line":"                            # If the metadata cidr is link-local, it will have"},{"line_number":1272,"context_line":"                            # been configured directly on the interface, else"}],"source_content_type":"text/x-python","patch_set":4,"id":"71e61d93_ecdd04d2","line":1269,"updated":"2023-03-13 13:21:41.000000000","message":"Last time I checked (that was quite long ago though), dnsmasq couldn\u0027t push v6 routes. We had to push all v6 routes via radvd. If this is still the case, then it may limit this change to the subnet modes in which we use radvd.","commit_id":"e1a48892b51e7546ab48b218e03fe3176c812705"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6df900ed90f4c5e6b2cb5196ffef8c1838d51238","unresolved":true,"context_lines":[{"line_number":1266,"context_line":"                        host_routes.append("},{"line_number":1267,"context_line":"                            \u0027%s,%s\u0027 % (constants.METADATA_CIDR, subnet_dhcp_ip)"},{"line_number":1268,"context_line":"                        )"},{"line_number":1269,"context_line":"                    else:"},{"line_number":1270,"context_line":"                        for ip in self.conf.ipv6_metadata_cidrs:"},{"line_number":1271,"context_line":"                            # If the metadata cidr is link-local, it will have"},{"line_number":1272,"context_line":"                            # been configured directly on the interface, else"}],"source_content_type":"text/x-python","patch_set":4,"id":"597dfdcb_850d1858","line":1269,"in_reply_to":"379f5490_b0e7fe1c","updated":"2023-03-16 22:32:36.000000000","message":"Right. Even after adding code around this section to actually send the IPv6 route it doesn\u0027t work. Sigh.\n\nThe one thing dnsmasq does have is an \"ra-only\" mode for a dhcp range. That seems to at least trigger SLAAC and a default route on the VM, just have to play a little to see if it can work for this issue.","commit_id":"e1a48892b51e7546ab48b218e03fe3176c812705"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ffa4d53886acf722e6f00f06e783cc88539d6b9a","unresolved":false,"context_lines":[{"line_number":1266,"context_line":"                        host_routes.append("},{"line_number":1267,"context_line":"                            \u0027%s,%s\u0027 % (constants.METADATA_CIDR, subnet_dhcp_ip)"},{"line_number":1268,"context_line":"                        )"},{"line_number":1269,"context_line":"                    else:"},{"line_number":1270,"context_line":"                        for ip in self.conf.ipv6_metadata_cidrs:"},{"line_number":1271,"context_line":"                            # If the metadata cidr is link-local, it will have"},{"line_number":1272,"context_line":"                            # been configured directly on the interface, else"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe1490a_74be77ea","line":1269,"in_reply_to":"597dfdcb_850d1858","updated":"2023-03-17 21:03:30.000000000","message":"I think I\u0027ve addresses this.","commit_id":"e1a48892b51e7546ab48b218e03fe3176c812705"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d6ec4941847218db6a3e9ed5ade5c6fb448b4124","unresolved":true,"context_lines":[{"line_number":1266,"context_line":"                        host_routes.append("},{"line_number":1267,"context_line":"                            \u0027%s,%s\u0027 % (constants.METADATA_CIDR, subnet_dhcp_ip)"},{"line_number":1268,"context_line":"                        )"},{"line_number":1269,"context_line":"                    else:"},{"line_number":1270,"context_line":"                        for ip in self.conf.ipv6_metadata_cidrs:"},{"line_number":1271,"context_line":"                            # If the metadata cidr is link-local, it will have"},{"line_number":1272,"context_line":"                            # been configured directly on the interface, else"}],"source_content_type":"text/x-python","patch_set":4,"id":"da241e29_273c4ef4","line":1269,"in_reply_to":"71e61d93_ecdd04d2","updated":"2023-03-13 14:42:23.000000000","message":"That is a good question and I hadn\u0027t thought of it. L1256 above seems to imply we can add an IPv6 route (it doesn\u0027t check version), but the code below does only add IPv4 ones.","commit_id":"e1a48892b51e7546ab48b218e03fe3176c812705"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"7bc1bc5c366f667c8783630db1a41793f87f9180","unresolved":true,"context_lines":[{"line_number":1266,"context_line":"                        host_routes.append("},{"line_number":1267,"context_line":"                            \u0027%s,%s\u0027 % (constants.METADATA_CIDR, subnet_dhcp_ip)"},{"line_number":1268,"context_line":"                        )"},{"line_number":1269,"context_line":"                    else:"},{"line_number":1270,"context_line":"                        for ip in self.conf.ipv6_metadata_cidrs:"},{"line_number":1271,"context_line":"                            # If the metadata cidr is link-local, it will have"},{"line_number":1272,"context_line":"                            # been configured directly on the interface, else"}],"source_content_type":"text/x-python","patch_set":4,"id":"379f5490_b0e7fe1c","line":1269,"in_reply_to":"da241e29_273c4ef4","updated":"2023-03-15 14:51:31.000000000","message":"I believe we won\u0027t start radvd on isolated networks. However dnsmasq gained some router advertisement functionality. Read a bit of dnsmasq documentation. Based on that I believe dnsmasq still cannot push v6 routes as dhcpv6 options:\n\n $ dnsmasq --version\n Dnsmasq version 2.89  Copyright (c) 2000-2022 Simon Kelley\n Compile time options: IPv6 GNU-getopt DBus no-UBus i18n IDN2 DHCP DHCPv6 no-Lua TFTP conntrack ipset nftset auth cryptohash DNSSEC loop-detect inotify dumpfile\n This software comes with ABSOLUTELY NO WARRANTY.\n Dnsmasq is free software, and you are welcome to redistribute it\n under the terms of the GNU General Public License, version 2 or 3.\n $ dnsmasq --help dhcp | egrep route\n   3 router\n  31 router-discovery\n  32 router-solicitation\n  33 static-route\n 121 classless-static-route\n\nAnd I could not find anything in the documentation whether we can make it to push routes in ra mode. I only found parameters --enable-ra and --ra-param. --dhcp-range also has some ra related pieces. But none of these control the routes pushed.","commit_id":"e1a48892b51e7546ab48b218e03fe3176c812705"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"1764caa9ed9d9630ef9f12ebc75a485824338ed6","unresolved":true,"context_lines":[{"line_number":407,"context_line":""},{"line_number":408,"context_line":"    def get_metadata_bind_interface(self, port):"},{"line_number":409,"context_line":"        # Metadata address is always configured on loopback"},{"line_number":410,"context_line":"        return ip_lib.LOOPBACK_DEVNAME"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"    @property"},{"line_number":413,"context_line":"    def active(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"6c95ff80_df5fc42a","line":410,"updated":"2023-03-14 20:53:30.000000000","message":"So this wound-up being the problem, don\u0027t know what I was thinking. But it\u0027s clear from debugging this that we have to be able to pass a tuple for address/interface binding if we want to support both ULA/loopback and LL/tap at the same time.","commit_id":"e81f1d9d2864f798a6eb2555f765128e3bec19fb"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"323c66bbf125301663ba25ea698359caee754076","unresolved":false,"context_lines":[{"line_number":407,"context_line":""},{"line_number":408,"context_line":"    def get_metadata_bind_interface(self, port):"},{"line_number":409,"context_line":"        # Metadata address is always configured on loopback"},{"line_number":410,"context_line":"        return ip_lib.LOOPBACK_DEVNAME"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"    @property"},{"line_number":413,"context_line":"    def active(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5d49bffd_8c8bd774","line":410,"in_reply_to":"6c95ff80_df5fc42a","updated":"2023-03-15 01:37:51.000000000","message":"Done","commit_id":"e81f1d9d2864f798a6eb2555f765128e3bec19fb"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ffa4d53886acf722e6f00f06e783cc88539d6b9a","unresolved":true,"context_lines":[{"line_number":510,"context_line":"                        if ra_mode \u003d\u003d constants.DHCPV6_STATELESS:"},{"line_number":511,"context_line":"                            mode \u003d \u0027ra-stateless\u0027"},{"line_number":512,"context_line":"                        elif ra_mode \u003d\u003d constants.IPV6_SLAAC:"},{"line_number":513,"context_line":"                            mode \u003d \u0027slaac\u0027"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"            cidr \u003d netaddr.IPNetwork(subnet.cidr)"},{"line_number":516,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"90ac0af1_3906771d","line":513,"updated":"2023-03-17 21:03:30.000000000","message":"So making this change block here seems to make things work, since it causes dnsmasq to send out an RA. There\u0027s just a couple of side-effects:\n\n1) the IPv6 link-local in the qdhcp namespace becomes the default route of any VMs on the isolated subnets. It actually winds-up being the v6 metadata IP because dnsmasq just picks one, so :( but if you don\u0027t configure the \"old\" a9fe IP things work :)\n\n2) Adding a router interface to the subnet has two issues: 1) is that any VM will now have 2 default routes; 2) dnsmasq doesn\u0027t get restarted so it will always have 2\n\n3) Sometimes dnsmasq \"goes out to lunch\" and stops sending RAs. That makes the default route go away and metadata stops working.\n\nSome notes:\n\n$ ip -6 r\nfd62:18b5:a8e4:1::/64 dev eth0  metric 256  expires 0sec\nfe80::/64 dev eth0  metric 256 \ndefault via fe80::a9fe:a9fe dev eth0  metric 1024  expires 0sec\nff00::/8 dev eth0  metric 256 \n\n$ ping fd00:ec2::254\nPING fd00:ec2::254 (fd00:ec2::254): 56 data bytes\n64 bytes from fd00:ec2::254: seq\u003d0 ttl\u003d64 time\u003d0.553 ms\n64 bytes from fd00:ec2::254: seq\u003d1 ttl\u003d64 time\u003d0.359 ms\n64 bytes from fd00:ec2::254: seq\u003d2 ttl\u003d64 time\u003d0.248 ms\n^C\n--- fd00:ec2::254 ping statistics ---\n3 packets transmitted, 3 packets received, 0% packet loss\nround-trip min/avg/max \u003d 0.248/0.386/0.553 ms\n\n$ wget fd00:ec2::254\nConnecting to fd00:ec2::254 ([fd00:ec2::254]:80)\nindex.html","commit_id":"dc836d010767526ecb699366be363896c989dd2a"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"7e16f901f6517983f6253bcc4c0363633aea6009","unresolved":true,"context_lines":[{"line_number":510,"context_line":"                        if ra_mode \u003d\u003d constants.DHCPV6_STATELESS:"},{"line_number":511,"context_line":"                            mode \u003d \u0027ra-stateless\u0027"},{"line_number":512,"context_line":"                        elif ra_mode \u003d\u003d constants.IPV6_SLAAC:"},{"line_number":513,"context_line":"                            mode \u003d \u0027slaac\u0027"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"            cidr \u003d netaddr.IPNetwork(subnet.cidr)"},{"line_number":516,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fc847bc8_cc7741e6","line":513,"in_reply_to":"90ac0af1_3906771d","updated":"2023-03-23 15:01:47.000000000","message":"\u003e 1) the IPv6 link-local in the qdhcp namespace becomes the default route of any VMs on the isolated subnets. It actually winds-up being the v6 metadata IP because dnsmasq just picks one, so :( but if you don\u0027t configure the \"old\" a9fe IP things work :)\n\nThat means we cannot have a transitional period in which we have both addresses.\n\n\u003e 2) Adding a router interface to the subnet has two issues: 1) is that any VM will now have 2 default routes; 2) dnsmasq doesn\u0027t get restarted so it will always have 2\n\nHow does Linux interpret these two default routes? I did not find definitive documentation yet. If this means load balancing between the two gateways, then we may send half of the traffic into the dhcp namespace (when we boot a vm on an isolated network and add router interface later), which is not ok. If Linux ignores anything but the last installed route, that could be functionally acceptable (but still quite confusing).\n\nI think its suboptimal that we push default routes to achieve this effect. Ideally we should push routes as narrow as possible: fd00:ec2::254/128 via ...\n\n\u003e 3) Sometimes dnsmasq \"goes out to lunch\" and stops sending RAs. That makes the default route go away and metadata stops working.\n\nI\u0027m also seeing disappearing default routes and I don\u0027t understand the reason yet. These routes disappearing may affect the outcome of the test below too.\n\nI re-created my v6 subnet in the following 4 modes:\n\nopenstack subnet create subnet1-v6 --ip-version 6 --network net1 --subnet-range 2001:db8:1::/64 --dhcp\nopenstack subnet create subnet1-v6 --ip-version 6 --network net1 --subnet-range 2001:db8:1::/64 --dhcp --ipv6-ra-mode slaac --ipv6-address-mode slaac                                          openstack subnet create subnet1-v6 --ip-version 6 --network net1 --subnet-range 2001:db8:1::/64 --dhcp --ipv6-ra-mode dhcpv6-stateless --ipv6-address-mode dhcpv6-stateless\nopenstack subnet create subnet1-v6 --ip-version 6 --network net1 --subnet-range 2001:db8:1::/64 --dhcp --ipv6-ra-mode dhcpv6-stateful --ipv6-address-mode dhcpv6-stateful\n\nAnd I could only ping fd00:ec2::254 in mode dhcpv6-stateless. As I mentioned, some of this may be due to the default routes disappearing.\n\nWhat do you think in what subnet modes should this patch work?","commit_id":"dc836d010767526ecb699366be363896c989dd2a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"0063498d68e1a9878578e083135cc518267f6702","unresolved":true,"context_lines":[{"line_number":510,"context_line":"                        if ra_mode \u003d\u003d constants.DHCPV6_STATELESS:"},{"line_number":511,"context_line":"                            mode \u003d \u0027ra-stateless\u0027"},{"line_number":512,"context_line":"                        elif ra_mode \u003d\u003d constants.IPV6_SLAAC:"},{"line_number":513,"context_line":"                            mode \u003d \u0027slaac\u0027"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"            cidr \u003d netaddr.IPNetwork(subnet.cidr)"},{"line_number":516,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"8f420406_6e192915","line":513,"in_reply_to":"fc847bc8_cc7741e6","updated":"2023-03-29 03:05:30.000000000","message":"Hi Bence, sorry, didn\u0027t see your responses.\n\n\u003e\u003e 1) the IPv6 link-local in the qdhcp namespace becomes the default route of any VMs \n\u003e That means we cannot have a transitional period in which we have both addresses.\n\nRight, or we\u0027d have to change dnsmasq to be able to pick which LL is used, which even if accepted could take a while to get into distros.\n\n\u003e\u003e 2) Adding a router interface to the subnet has two issues: 1) is that any VM\n\u003e\u003e will  now have 2 default routes; 2) dnsmasq doesn\u0027t get restarted so it will\n\u003e\u003e always have 2\n\u003e How does Linux interpret these two default routes?\n\nIt installs them both since they are unique, and (I think) if I remember the RFCs correctly, it will only remove one of the routes after a certain number of RAs from the router go \"missing\". So it\u0027s a problem.\n\n\u003e\u003e 3) Sometimes dnsmasq \"goes out to lunch\" and stops sending RAs. That makes the\n\u003e\u003e default route go away and metadata stops working.\n\u003e I\u0027m also seeing disappearing default routes and I don\u0027t understand the reason yet.\n\nSigh, so either there is a bug in dnsmasq or ??\n\nAnd regarding the different modes you tried, it probably has to do with the mode dnsmasq gets started in for each, and maybe I chose the wrong ones?\n\nEither way, I\u0027m not sure this patch will work.","commit_id":"dc836d010767526ecb699366be363896c989dd2a"}],"neutron/agent/metadata/driver.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":"7bc1bc5c366f667c8783630db1a41793f87f9180","unresolved":true,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"listen listener"},{"line_number":52,"context_line":"    bind %(host)s:%(port)s"},{"line_number":53,"context_line":"    %(bind_line)s"},{"line_number":54,"context_line":"    server metadata %(unix_socket_path)s"},{"line_number":55,"context_line":"    http-request del-header X-Neutron-%(res_type_del)s-ID"},{"line_number":56,"context_line":"    http-request set-header X-Neutron-%(res_type)s-ID %(res_id)s"}],"source_content_type":"text/x-python","patch_set":9,"id":"b93b0e3e_fb96d10b","line":53,"range":{"start_line":53,"start_character":6,"end_line":53,"end_character":15},"updated":"2023-03-15 14:51:31.000000000","message":"nit: could be plural","commit_id":"ed7c64afcee746394c87a68134da07569c9f8826"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6df900ed90f4c5e6b2cb5196ffef8c1838d51238","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"listen listener"},{"line_number":52,"context_line":"    bind %(host)s:%(port)s"},{"line_number":53,"context_line":"    %(bind_line)s"},{"line_number":54,"context_line":"    server metadata %(unix_socket_path)s"},{"line_number":55,"context_line":"    http-request del-header X-Neutron-%(res_type_del)s-ID"},{"line_number":56,"context_line":"    http-request set-header X-Neutron-%(res_type)s-ID %(res_id)s"}],"source_content_type":"text/x-python","patch_set":9,"id":"1b1419e4_6e5323a8","line":53,"range":{"start_line":53,"start_character":6,"end_line":53,"end_character":15},"in_reply_to":"b93b0e3e_fb96d10b","updated":"2023-03-16 22:32:36.000000000","message":"Done","commit_id":"ed7c64afcee746394c87a68134da07569c9f8826"}],"neutron/common/ipv6_utils.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cfb1595367726b4d08de68ed0e2f018b7fccbd24","unresolved":true,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def is_ipv6_link_local(ip_or_cidr):"},{"line_number":50,"context_line":"    \"\"\"Returns True if the address is IPv6 link-local.\"\"\""},{"line_number":51,"context_line":"    ip \u003d ip_or_cidr.split(\u0027/\u0027)[0]"},{"line_number":52,"context_line":"    return netaddr.IPAddress(ip).is_link_local()"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"82257a0d_8a5a4047","line":51,"range":{"start_line":51,"start_character":4,"end_line":51,"end_character":33},"updated":"2023-03-13 11:41:08.000000000","message":"ip \u003d netaddr.IPNetwork(ip_or_cidr).first","commit_id":"e1a48892b51e7546ab48b218e03fe3176c812705"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d6ec4941847218db6a3e9ed5ade5c6fb448b4124","unresolved":true,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def is_ipv6_link_local(ip_or_cidr):"},{"line_number":50,"context_line":"    \"\"\"Returns True if the address is IPv6 link-local.\"\"\""},{"line_number":51,"context_line":"    ip \u003d ip_or_cidr.split(\u0027/\u0027)[0]"},{"line_number":52,"context_line":"    return netaddr.IPAddress(ip).is_link_local()"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"f35f847e_a8ede2ba","line":51,"range":{"start_line":51,"start_character":4,"end_line":51,"end_character":33},"in_reply_to":"82257a0d_8a5a4047","updated":"2023-03-13 14:42:23.000000000","message":"I think you meant s/first/ip, but I can actually just use netaddr.IPNetwork below as it seems to work as well.","commit_id":"e1a48892b51e7546ab48b218e03fe3176c812705"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"323c66bbf125301663ba25ea698359caee754076","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def is_ipv6_link_local(ip_or_cidr):"},{"line_number":50,"context_line":"    \"\"\"Returns True if the address is IPv6 link-local.\"\"\""},{"line_number":51,"context_line":"    ip \u003d ip_or_cidr.split(\u0027/\u0027)[0]"},{"line_number":52,"context_line":"    return netaddr.IPAddress(ip).is_link_local()"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"2a842954_6b1c482a","line":51,"range":{"start_line":51,"start_character":4,"end_line":51,"end_character":33},"in_reply_to":"f35f847e_a8ede2ba","updated":"2023-03-15 01:37:51.000000000","message":"Done","commit_id":"e1a48892b51e7546ab48b218e03fe3176c812705"}],"neutron/conf/agent/metadata/config.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":"32761e95507c20ce40efe9c1e4571bb7914aad74","unresolved":true,"context_lines":[{"line_number":36,"context_line":"               help\u003d_(\"Group (gid or name) running metadata proxy after \""},{"line_number":37,"context_line":"                      \"its initialization (if empty: agent effective \""},{"line_number":38,"context_line":"                      \"group).\")),"},{"line_number":39,"context_line":"    cfg.ListOpt(\u0027ipv6_metadata_cidrs\u0027,"},{"line_number":40,"context_line":"                default\u003d[\u0027fe80::a9fe:a9fe/128\u0027],"},{"line_number":41,"context_line":"                help\u003d_(\u0027The list of IPv6 addresses that should be used for \u0027"},{"line_number":42,"context_line":"                       \u0027serving metadata requests. This is useful in \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"e113a863_64ba0afc","line":39,"range":{"start_line":39,"start_character":17,"end_line":39,"end_character":36},"updated":"2023-03-14 13:43:07.000000000","message":"nit: metadata_ipv6_cidrs would have the metadata part as a prefix.","commit_id":"e81f1d9d2864f798a6eb2555f765128e3bec19fb"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"323c66bbf125301663ba25ea698359caee754076","unresolved":false,"context_lines":[{"line_number":36,"context_line":"               help\u003d_(\"Group (gid or name) running metadata proxy after \""},{"line_number":37,"context_line":"                      \"its initialization (if empty: agent effective \""},{"line_number":38,"context_line":"                      \"group).\")),"},{"line_number":39,"context_line":"    cfg.ListOpt(\u0027ipv6_metadata_cidrs\u0027,"},{"line_number":40,"context_line":"                default\u003d[\u0027fe80::a9fe:a9fe/128\u0027],"},{"line_number":41,"context_line":"                help\u003d_(\u0027The list of IPv6 addresses that should be used for \u0027"},{"line_number":42,"context_line":"                       \u0027serving metadata requests. This is useful in \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"dd09fe3c_6e484e47","line":39,"range":{"start_line":39,"start_character":17,"end_line":39,"end_character":36},"in_reply_to":"8ada6f7b_3247866b","updated":"2023-03-15 01:37:51.000000000","message":"Done","commit_id":"e81f1d9d2864f798a6eb2555f765128e3bec19fb"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b281bb21787ad4dcdf88352529c27c5750d357ba","unresolved":true,"context_lines":[{"line_number":36,"context_line":"               help\u003d_(\"Group (gid or name) running metadata proxy after \""},{"line_number":37,"context_line":"                      \"its initialization (if empty: agent effective \""},{"line_number":38,"context_line":"                      \"group).\")),"},{"line_number":39,"context_line":"    cfg.ListOpt(\u0027ipv6_metadata_cidrs\u0027,"},{"line_number":40,"context_line":"                default\u003d[\u0027fe80::a9fe:a9fe/128\u0027],"},{"line_number":41,"context_line":"                help\u003d_(\u0027The list of IPv6 addresses that should be used for \u0027"},{"line_number":42,"context_line":"                       \u0027serving metadata requests. This is useful in \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"8ada6f7b_3247866b","line":39,"range":{"start_line":39,"start_character":17,"end_line":39,"end_character":36},"in_reply_to":"e113a863_64ba0afc","updated":"2023-03-14 16:24:42.000000000","message":"Ack, will change that next PS.","commit_id":"e81f1d9d2864f798a6eb2555f765128e3bec19fb"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"32761e95507c20ce40efe9c1e4571bb7914aad74","unresolved":true,"context_lines":[{"line_number":37,"context_line":"                      \"its initialization (if empty: agent effective \""},{"line_number":38,"context_line":"                      \"group).\")),"},{"line_number":39,"context_line":"    cfg.ListOpt(\u0027ipv6_metadata_cidrs\u0027,"},{"line_number":40,"context_line":"                default\u003d[\u0027fe80::a9fe:a9fe/128\u0027],"},{"line_number":41,"context_line":"                help\u003d_(\u0027The list of IPv6 addresses that should be used for \u0027"},{"line_number":42,"context_line":"                       \u0027serving metadata requests. This is useful in \u0027"},{"line_number":43,"context_line":"                       \u0027environments that have to support images using \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5993354d_63958a3b","line":40,"updated":"2023-03-14 13:43:07.000000000","message":"Can\u0027t we make the new address part of the default too? I believe people should migrate, then let\u0027s make it easier.","commit_id":"e81f1d9d2864f798a6eb2555f765128e3bec19fb"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b281bb21787ad4dcdf88352529c27c5750d357ba","unresolved":true,"context_lines":[{"line_number":37,"context_line":"                      \"its initialization (if empty: agent effective \""},{"line_number":38,"context_line":"                      \"group).\")),"},{"line_number":39,"context_line":"    cfg.ListOpt(\u0027ipv6_metadata_cidrs\u0027,"},{"line_number":40,"context_line":"                default\u003d[\u0027fe80::a9fe:a9fe/128\u0027],"},{"line_number":41,"context_line":"                help\u003d_(\u0027The list of IPv6 addresses that should be used for \u0027"},{"line_number":42,"context_line":"                       \u0027serving metadata requests. This is useful in \u0027"},{"line_number":43,"context_line":"                       \u0027environments that have to support images using \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"c8282e26_4ead561a","line":40,"in_reply_to":"5993354d_63958a3b","updated":"2023-03-14 16:24:42.000000000","message":"Yes, I actually thought of the same thing this morning. We could make it fd00::a9fe:a9fe too but I\u0027ll use the EC2 number for now.","commit_id":"e81f1d9d2864f798a6eb2555f765128e3bec19fb"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"323c66bbf125301663ba25ea698359caee754076","unresolved":false,"context_lines":[{"line_number":37,"context_line":"                      \"its initialization (if empty: agent effective \""},{"line_number":38,"context_line":"                      \"group).\")),"},{"line_number":39,"context_line":"    cfg.ListOpt(\u0027ipv6_metadata_cidrs\u0027,"},{"line_number":40,"context_line":"                default\u003d[\u0027fe80::a9fe:a9fe/128\u0027],"},{"line_number":41,"context_line":"                help\u003d_(\u0027The list of IPv6 addresses that should be used for \u0027"},{"line_number":42,"context_line":"                       \u0027serving metadata requests. This is useful in \u0027"},{"line_number":43,"context_line":"                       \u0027environments that have to support images using \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"d1d0c96b_2b8e3bb9","line":40,"in_reply_to":"c8282e26_4ead561a","updated":"2023-03-15 01:37:51.000000000","message":"Done","commit_id":"e81f1d9d2864f798a6eb2555f765128e3bec19fb"}],"neutron/tests/fullstack/resources/machine.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"358baaf5c542ecadbc0eb107d8258e63e0332d19","unresolved":true,"context_lines":[{"line_number":221,"context_line":"        #         \"port %s\" % (self.ip_cidr, self.gateway_ip, self.port.name)"},{"line_number":222,"context_line":"        #     )"},{"line_number":223,"context_line":"        # )"},{"line_number":224,"context_line":"        # Let\u0027s debug these separately"},{"line_number":225,"context_line":"        utils.wait_until_true("},{"line_number":226,"context_line":"            lambda: self.ip_configured(),"},{"line_number":227,"context_line":"            exception\u003dmachine_fixtures.FakeMachineException("}],"source_content_type":"text/x-python","patch_set":3,"id":"15c30eea_4deec9f5","line":224,"updated":"2023-03-10 04:20:31.000000000","message":"So seems the multiple dhcp ha test is failing in other jobs the same way, so this part of the change can be un-done, maybe it will find something though...","commit_id":"a9c465eb140faa6a4bab431192703e87e8eba77e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f102014b2c08884b560c10c8f1835bea29a374c3","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        #         \"port %s\" % (self.ip_cidr, self.gateway_ip, self.port.name)"},{"line_number":222,"context_line":"        #     )"},{"line_number":223,"context_line":"        # )"},{"line_number":224,"context_line":"        # Let\u0027s debug these separately"},{"line_number":225,"context_line":"        utils.wait_until_true("},{"line_number":226,"context_line":"            lambda: self.ip_configured(),"},{"line_number":227,"context_line":"            exception\u003dmachine_fixtures.FakeMachineException("}],"source_content_type":"text/x-python","patch_set":3,"id":"9979efab_b67ca3c2","line":224,"in_reply_to":"15c30eea_4deec9f5","updated":"2023-03-10 04:56:20.000000000","message":"Done","commit_id":"a9c465eb140faa6a4bab431192703e87e8eba77e"}]}
