)]}'
{"metropolis/node/core/clusternet/clusternet.go":[{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"525a48bfd49005778b65f033c29d6128b9a76e14","unresolved":true,"context_lines":[{"line_number":16,"context_line":"// interface. This is used in practice to allow other host nodes (whose external"},{"line_number":17,"context_line":"// addresses are outside the cluster network) to access the cluster network."},{"line_number":18,"context_line":"//"},{"line_number":19,"context_line":"// Second, we two have hardcoded/purpose-specific sources of prefixes:"},{"line_number":20,"context_line":"//  1. Pod networking node prefixes from the kubelet"},{"line_number":21,"context_line":"//  2. The host\u0027s external IP address (as a /32) from the network service."},{"line_number":22,"context_line":"package clusternet"}],"source_content_type":"text/x-go","patch_set":4,"id":"928ef024_64b7cce3","line":19,"range":{"start_line":19,"start_character":11,"end_line":19,"end_character":22},"updated":"2023-04-05 13:57:05.000000000","message":"typo","commit_id":"5f1a0de3e0d1b6e3b2f8c67a8d00f9eb651cdda8"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"cb1726d986848efec4162ec08f4bc947bff89e55","unresolved":false,"context_lines":[{"line_number":16,"context_line":"// interface. This is used in practice to allow other host nodes (whose external"},{"line_number":17,"context_line":"// addresses are outside the cluster network) to access the cluster network."},{"line_number":18,"context_line":"//"},{"line_number":19,"context_line":"// Second, we two have hardcoded/purpose-specific sources of prefixes:"},{"line_number":20,"context_line":"//  1. Pod networking node prefixes from the kubelet"},{"line_number":21,"context_line":"//  2. The host\u0027s external IP address (as a /32) from the network service."},{"line_number":22,"context_line":"package clusternet"}],"source_content_type":"text/x-go","patch_set":4,"id":"eb4888f7_b12813d0","line":19,"range":{"start_line":19,"start_character":11,"end_line":19,"end_character":22},"in_reply_to":"928ef024_64b7cce3","updated":"2023-04-05 14:14:30.000000000","message":"Done","commit_id":"5f1a0de3e0d1b6e3b2f8c67a8d00f9eb651cdda8"}],"metropolis/node/core/clusternet/types.go":[{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"525a48bfd49005778b65f033c29d6128b9a76e14","unresolved":true,"context_lines":[{"line_number":29,"context_line":"\t// Gather prefixes we already have."},{"line_number":30,"context_line":"\tcur :\u003d make(map[string]bool)"},{"line_number":31,"context_line":"\tfor _, pp :\u003d range *p {"},{"line_number":32,"context_line":"\t\tcur[pp.String()] \u003d true"},{"line_number":33,"context_line":"\t}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"\t// Copy over any prefix that we don\u0027t yet have."}],"source_content_type":"text/x-go","patch_set":4,"id":"07e7df83_fb073d87","line":32,"range":{"start_line":32,"start_character":6,"end_line":32,"end_character":17},"updated":"2023-04-05 13:57:05.000000000","message":"I think you can skip the .String() here and use the netip.Prefix as a key as netip.Addr as well as uint16 are comparable and structs are comparable if all their field types are comparable.","commit_id":"5f1a0de3e0d1b6e3b2f8c67a8d00f9eb651cdda8"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"cb1726d986848efec4162ec08f4bc947bff89e55","unresolved":false,"context_lines":[{"line_number":29,"context_line":"\t// Gather prefixes we already have."},{"line_number":30,"context_line":"\tcur :\u003d make(map[string]bool)"},{"line_number":31,"context_line":"\tfor _, pp :\u003d range *p {"},{"line_number":32,"context_line":"\t\tcur[pp.String()] \u003d true"},{"line_number":33,"context_line":"\t}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"\t// Copy over any prefix that we don\u0027t yet have."}],"source_content_type":"text/x-go","patch_set":4,"id":"7b532766_bcb447b8","line":32,"range":{"start_line":32,"start_character":6,"end_line":32,"end_character":17},"in_reply_to":"07e7df83_fb073d87","updated":"2023-04-05 14:14:30.000000000","message":"Done","commit_id":"5f1a0de3e0d1b6e3b2f8c67a8d00f9eb651cdda8"}]}
