)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6ceba525e7a2627a51f548eb0a68bf1b330f32cc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5baeb162_121fef79","updated":"2023-09-05 14:47:44.000000000","message":"I did have a more generic question that maybe applies to more than this change - where are these config options supposed to live? For example, if I run \u0027tox -e genconfig\u0027 they only appear here:\n\netc/neutron/plugins/ml2/ovn_agent.ini.sample\n\nI would have expected them in the neutron.conf sample?\n\nI\u0027ll have to check a distro to see where they really live, might be a change needed elsewhere to add them.","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"35c4293f49aaf32834339d37d77ee30fe372f2c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d8e53dff_40575794","updated":"2023-09-04 06:44:05.000000000","message":"should the maintenance task take care of previously created router to apply them the new configuration?","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"c416631d99cf5992121671e3da5f56ed16991ae5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"798480c3_d793282e","in_reply_to":"551671df_b01912be","updated":"2023-09-11 22:19:00.000000000","message":"Done","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"b5d64399f428a469c2cec0ede2d3407337421327","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8c52bc13_50466f34","in_reply_to":"5baeb162_121fef79","updated":"2023-09-06 14:57:23.000000000","message":"They absolutely should be in neutron.conf, I\u0027m not sure why tox puts them there.","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"7ab77bf99699921ad16343bf38a4c9c776918de8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1b86d0d4_641f81b7","in_reply_to":"6b27df07_c24f0744","updated":"2023-09-11 22:16:09.000000000","message":"Yeah, sorry. That\u0027s what I meant. Just not the metadata agent config. 😄","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"63b11147e3aa7ed635ab0b9c2774a1c95d1d4a82","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6b27df07_c24f0744","in_reply_to":"8c52bc13_50466f34","updated":"2023-09-06 16:24:37.000000000","message":"Well, in our distro they are found in /etc/neutron/plugins/ml2/ml2_conf.ini","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"b5d64399f428a469c2cec0ede2d3407337421327","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"551671df_b01912be","in_reply_to":"d8e53dff_40575794","updated":"2023-09-06 14:57:23.000000000","message":"My instinct is \"yes\" but only if we are ok with stomping on manual user custom values added to the OVNDB (since we don\u0027t provide per-router config support with this patch).","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c0f5cd11269d727f19b8354abb21a254573c4f02","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ad59c5a5_95e615a1","updated":"2023-09-13 07:41:28.000000000","message":"just some nits","commit_id":"05851e2c3ff5524185384a77fcd868da4a3b4963"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3a3c88dea924fe969c52907afa8ae060ccf528a1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"7629c810_e32f849e","updated":"2023-10-16 09:58:45.000000000","message":"Please, add a sanity check. If I\u0027m not wrong, this functionality was added in v22.09.0.","commit_id":"c155c755c88b13f6ea6c83ea9b9bce7f4a937b71"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"97b0ac2e6e21ee7deaa86123960b9748cc4cb00c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b8a634ac_c6161f91","in_reply_to":"03ee3361_ec5a8e78","updated":"2023-10-17 20:10:52.000000000","message":"As a historical note, the entire purpose of sanity checks was to avoid version number checking: https://blueprints.launchpad.net/neutron/+spec/remove-openvswitch-version-check","commit_id":"c155c755c88b13f6ea6c83ea9b9bce7f4a937b71"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"761e18cc01e3e090b87f7309d5e3ef8fcc2a4790","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"03ee3361_ec5a8e78","in_reply_to":"7629c810_e32f849e","updated":"2023-10-17 20:05:15.000000000","message":"No sanity check will be added since the option will be completely ignored if it doesn\u0027t exist in OVN and there\u0027s no way to add a sanity check as there is no way to test for the feature. Sanity checks should never test version numbers because they are not reliable tests for features given that distros backport features all of the time.","commit_id":"c155c755c88b13f6ea6c83ea9b9bce7f4a937b71"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"a2e25876c3a492491dfc2fc165d523bb4e30f110","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b97bf62b_2b34b980","in_reply_to":"b8a634ac_c6161f91","updated":"2023-10-17 20:32:14.000000000","message":"I should clarify, when I say \"no way to test for the feature\" I mean \"I can\u0027t think of a good way\". Sanity checks take *user-supplied* configs, usually. So if a user specifies 86,400 seconds as the aging time, actually testing the feature would take a day. We could check that the setting was non-zero, *overwrite the OVN Global config* and do a shorter test, and then set the value back...but that doesn\u0027t seem like good behavior for a sanity check.\n\nIf there are non-version-number-checking tests anyone else can think of, I\u0027m open to ideas of course.","commit_id":"c155c755c88b13f6ea6c83ea9b9bce7f4a937b71"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"b4535de061e0c4666ef3822b5d3345b7716f265b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e47967d0_2d0fedf7","updated":"2023-10-18 02:08:24.000000000","message":"recheck random fullstack timeout","commit_id":"cb2f690964d53fbd4fb35d617a103c9704037f1f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"1a7fbc09abbe28e1d6227bc50e59e7c80788ac42","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"1bd0bf49_1a4589cb","updated":"2023-11-13 17:24:25.000000000","message":"I think the release notes comment justifies a respin. (Sorry for not -1ing it earlier.)","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"1f51583009b74b414bcd1d4d9ac7b9426f11ddd9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"f4e0c1b6_19c0ac04","updated":"2023-10-18 15:38:25.000000000","message":"Thanks!","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"29b9c665531f4e4f6e6cbc0f6099c7b8da9a0f22","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"2da652d9_5be5bd0f","updated":"2023-10-19 07:28:47.000000000","message":"recheck fullstack","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"}],"neutron/conf/plugins/ml2/drivers/ovn/ovn_conf.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6ceba525e7a2627a51f548eb0a68bf1b330f32cc","unresolved":true,"context_lines":[{"line_number":237,"context_line":"               help\u003d_(\u0027MAC binding aging bulk removal limit. This limits how \u0027"},{"line_number":238,"context_line":"                      \u0027many rows can expire in a single transaction. Default \u0027"},{"line_number":239,"context_line":"                      \u0027value is 0 which is unlimited. When the limit is \u0027"},{"line_number":240,"context_line":"                      \u0027reached, the next batch removal is delayed by 5 s.\u0027)),"},{"line_number":241,"context_line":"]"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"90a5bf29_d5d8312e","line":240,"range":{"start_line":240,"start_character":69,"end_line":240,"end_character":72},"updated":"2023-09-05 14:47:44.000000000","message":"The change linked shows this to be 10 ms, which is correct?","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"b5d64399f428a469c2cec0ede2d3407337421327","unresolved":false,"context_lines":[{"line_number":237,"context_line":"               help\u003d_(\u0027MAC binding aging bulk removal limit. This limits how \u0027"},{"line_number":238,"context_line":"                      \u0027many rows can expire in a single transaction. Default \u0027"},{"line_number":239,"context_line":"                      \u0027value is 0 which is unlimited. When the limit is \u0027"},{"line_number":240,"context_line":"                      \u0027reached, the next batch removal is delayed by 5 s.\u0027)),"},{"line_number":241,"context_line":"]"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7e02f1d6_6360ac63","line":240,"range":{"start_line":240,"start_character":69,"end_line":240,"end_character":72},"in_reply_to":"90a5bf29_d5d8312e","updated":"2023-09-06 14:57:23.000000000","message":"This. https://github.com/ovn-org/ovn/commit/b6e6ef7c470304955f5ded89f24a1f7e49d942de","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6ceba525e7a2627a51f548eb0a68bf1b330f32cc","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f11703a4_779d1475","line":358,"updated":"2023-09-05 14:47:44.000000000","message":"Should there be methods here for these as well?","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"c416631d99cf5992121671e3da5f56ed16991ae5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3934e337_f022d3c6","line":358,"in_reply_to":"55110972_ed02434c","updated":"2023-09-11 22:19:00.000000000","message":"Went ahead and added them. One of the files that needed access didn\u0027t import cfg.","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"63b11147e3aa7ed635ab0b9c2774a1c95d1d4a82","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"55110972_ed02434c","line":358,"in_reply_to":"75332518_e0f16a55","updated":"2023-09-06 16:24:37.000000000","message":"I don\u0027t know why all these are here, I\u0027m assuming just for readability sake, and there are a few missing too...","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"b5d64399f428a469c2cec0ede2d3407337421327","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"75332518_e0f16a55","line":358,"in_reply_to":"f11703a4_779d1475","updated":"2023-09-06 14:57:23.000000000","message":"I can add them if people prefer. I don\u0027t personally see the value if cfg is imported anyway. Seems like if this is a common pattern, we should add some kind of \u0027expose_as\u003d\u0027function_name\u0027 string to the ConfigOption or something rather than 100+ lines of functions that with few exceptions are just aliases.","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c0f5cd11269d727f19b8354abb21a254573c4f02","unresolved":true,"context_lines":[{"line_number":226,"context_line":"                       \u0027newer.\u0027)),"},{"line_number":227,"context_line":"    cfg.IntOpt(\u0027mac_binding_age_threshold\u0027,"},{"line_number":228,"context_line":"               min\u003d0,"},{"line_number":229,"context_line":"               default\u003d86400,"},{"line_number":230,"context_line":"               help\u003d_(\u0027The number of seconds to keep MAC_Binding entries in \u0027"},{"line_number":231,"context_line":"                      \u0027the OVN DB. Versions of OVN prior to 23.09 will not \u0027"},{"line_number":232,"context_line":"                      \u0027refresh the timer on usage, so all MAC_Binding entries \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"c2a9dabe_e337662f","line":229,"range":{"start_line":229,"start_character":23,"end_line":229,"end_character":28},"updated":"2023-09-13 07:41:28.000000000","message":"should we keep the same default as core ovn? so that if this is not configured there is no aging as before (e.g., in an upgrade)","commit_id":"05851e2c3ff5524185384a77fcd868da4a3b4963"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6b367c27af2239da2877ac30057f4dcf5e26e4bb","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                       \u0027newer.\u0027)),"},{"line_number":227,"context_line":"    cfg.IntOpt(\u0027mac_binding_age_threshold\u0027,"},{"line_number":228,"context_line":"               min\u003d0,"},{"line_number":229,"context_line":"               default\u003d86400,"},{"line_number":230,"context_line":"               help\u003d_(\u0027The number of seconds to keep MAC_Binding entries in \u0027"},{"line_number":231,"context_line":"                      \u0027the OVN DB. Versions of OVN prior to 23.09 will not \u0027"},{"line_number":232,"context_line":"                      \u0027refresh the timer on usage, so all MAC_Binding entries \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"4559f635_fdb0e341","line":229,"range":{"start_line":229,"start_character":23,"end_line":229,"end_character":28},"in_reply_to":"1b81456c_2576a596","updated":"2023-10-17 23:04:35.000000000","message":"Done","commit_id":"05851e2c3ff5524185384a77fcd868da4a3b4963"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"76b75933fca5c65e42648e72bc9a5b5acb2d01a3","unresolved":true,"context_lines":[{"line_number":226,"context_line":"                       \u0027newer.\u0027)),"},{"line_number":227,"context_line":"    cfg.IntOpt(\u0027mac_binding_age_threshold\u0027,"},{"line_number":228,"context_line":"               min\u003d0,"},{"line_number":229,"context_line":"               default\u003d86400,"},{"line_number":230,"context_line":"               help\u003d_(\u0027The number of seconds to keep MAC_Binding entries in \u0027"},{"line_number":231,"context_line":"                      \u0027the OVN DB. Versions of OVN prior to 23.09 will not \u0027"},{"line_number":232,"context_line":"                      \u0027refresh the timer on usage, so all MAC_Binding entries \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"1b81456c_2576a596","line":229,"range":{"start_line":229,"start_character":23,"end_line":229,"end_character":28},"in_reply_to":"c2a9dabe_e337662f","updated":"2023-09-13 21:30:26.000000000","message":"I think it\u0027s worth some debate.\n\nOn one hand, defaulting to allowing anyone who can send a garp to use all memory on not only every ovsdb-server machine, but every machine that registers to receive changes to the MAC_Binding table, is bad. With that said, if someone can do that, they can probably do it in less than a day. Even without maliciousness, it\u0027s still not awesome and leads to support issues.\n\nOn the other hand, there is some additional overhead to the aging. What once was just a create transaction is now at least one create and eventual delete, possibly more depending on OVN version and traffic patterns. There\u0027s probably some overhead to processing expirations, etc.\n\nThe mac_binding_removal_limit would guard against the issue of potentially deleting a lot of MAC_Bindings at once, but doesn\u0027t do anything for the issues that would stem from sustained churn.\n\nI went with a threshold of one day because it seemed like a long enough time to be unlikely to cause issues, but put at least some kind of upper limit on the growth of the list. We could even bump it up to a week or more as a backstop. That wouldn\u0027t address if there was an issue with tracking the MAC address ages themselves caused significant load, though.\n\nI asked the patch author and he said:\n\n\u003e I did some testing locally but on something smaller like 1k MACs being constantly created/deleted\n\nSo I\u0027m not sure large scale testing with 100s nodes and DB connections and a lot of churn has been done anywhere, yet.","commit_id":"05851e2c3ff5524185384a77fcd868da4a3b4963"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"223513411bdd48a30ad33f29ac6dc6f95afb9ba1","unresolved":true,"context_lines":[{"line_number":250,"context_line":"                       \u0027is not an issue, setting it to True can reduce \u0027"},{"line_number":251,"context_line":"                       \u0027the load and latency of the control plane. \u0027"},{"line_number":252,"context_line":"                       \u0027The default value is False.\u0027)),"},{"line_number":253,"context_line":"    cfg.IntOpt(\u0027mac_binding_removal_limit\u0027,"},{"line_number":254,"context_line":"               min\u003d0,"},{"line_number":255,"context_line":"               default\u003d0,"},{"line_number":256,"context_line":"               help\u003d_(\u0027MAC binding aging bulk removal limit. This limits how \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ad1fe3f_231cba61","line":253,"updated":"2023-10-18 14:08:34.000000000","message":"Nice :)","commit_id":"cb2f690964d53fbd4fb35d617a103c9704037f1f"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"aca04be95662b45247d85d4cf61439c06241eac9","unresolved":false,"context_lines":[{"line_number":250,"context_line":"                       \u0027is not an issue, setting it to True can reduce \u0027"},{"line_number":251,"context_line":"                       \u0027the load and latency of the control plane. \u0027"},{"line_number":252,"context_line":"                       \u0027The default value is False.\u0027)),"},{"line_number":253,"context_line":"    cfg.IntOpt(\u0027mac_binding_removal_limit\u0027,"},{"line_number":254,"context_line":"               min\u003d0,"},{"line_number":255,"context_line":"               default\u003d0,"},{"line_number":256,"context_line":"               help\u003d_(\u0027MAC binding aging bulk removal limit. This limits how \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"98f47136_54fef523","line":253,"in_reply_to":"3ad1fe3f_231cba61","updated":"2023-10-18 14:17:35.000000000","message":"Done","commit_id":"cb2f690964d53fbd4fb35d617a103c9704037f1f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"2a5e938e1f66112313e9c01e0a58d24d59d18fbf","unresolved":true,"context_lines":[{"line_number":230,"context_line":"               min\u003d0,"},{"line_number":231,"context_line":"               default\u003d0,"},{"line_number":232,"context_line":"               help\u003d_(\u0027The number of seconds to keep MAC_Binding entries in \u0027"},{"line_number":233,"context_line":"                      \u0027the OVN DB. Versions of OVN prior to 23.09 will not \u0027"},{"line_number":234,"context_line":"                      \u0027refresh the timer on usage, so all MAC_Binding entries \u0027"},{"line_number":235,"context_line":"                      \u0027that are older than this value will be deleted. In \u0027"},{"line_number":236,"context_line":"                      \u0027OVN 23.09+ will reset the timer on usage. 0 to disable \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"dfc553eb_41e12adf","line":233,"updated":"2023-10-18 20:21:31.000000000","message":"I doubt we should document version specific behavior defined elsewhere (in OVN) as part of the option description. At most, I\u0027d suggest to move it to release note, though I would be as happy if this part is dropped and left for OVN release packagers / managers to clarify in their respective documentation.","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"9dc9a9c2339120b11e8c84114a48ddd565186a58","unresolved":false,"context_lines":[{"line_number":230,"context_line":"               min\u003d0,"},{"line_number":231,"context_line":"               default\u003d0,"},{"line_number":232,"context_line":"               help\u003d_(\u0027The number of seconds to keep MAC_Binding entries in \u0027"},{"line_number":233,"context_line":"                      \u0027the OVN DB. Versions of OVN prior to 23.09 will not \u0027"},{"line_number":234,"context_line":"                      \u0027refresh the timer on usage, so all MAC_Binding entries \u0027"},{"line_number":235,"context_line":"                      \u0027that are older than this value will be deleted. In \u0027"},{"line_number":236,"context_line":"                      \u0027OVN 23.09+ will reset the timer on usage. 0 to disable \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"76aa75fb_b3ce6de3","line":233,"in_reply_to":"dfc553eb_41e12adf","updated":"2023-11-17 15:15:40.000000000","message":"Done","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"2a5e938e1f66112313e9c01e0a58d24d59d18fbf","unresolved":true,"context_lines":[{"line_number":254,"context_line":"               min\u003d0,"},{"line_number":255,"context_line":"               default\u003d0,"},{"line_number":256,"context_line":"               help\u003d_(\u0027MAC binding aging bulk removal limit. This limits how \u0027"},{"line_number":257,"context_line":"                      \u0027many rows can expire in a single transaction. Default \u0027"},{"line_number":258,"context_line":"                      \u0027value is 0 which is unlimited. When the limit is \u0027"},{"line_number":259,"context_line":"                      \u0027reached, the next batch removal is delayed by 5 s.\u0027)),"},{"line_number":260,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":8,"id":"fac0b541_480450b7","line":257,"range":{"start_line":257,"start_character":28,"end_line":257,"end_character":32},"updated":"2023-10-18 20:21:31.000000000","message":"nit: you better use consistent language here and above (above you have \"entries\", here you have \"rows\").","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"9dc9a9c2339120b11e8c84114a48ddd565186a58","unresolved":false,"context_lines":[{"line_number":254,"context_line":"               min\u003d0,"},{"line_number":255,"context_line":"               default\u003d0,"},{"line_number":256,"context_line":"               help\u003d_(\u0027MAC binding aging bulk removal limit. This limits how \u0027"},{"line_number":257,"context_line":"                      \u0027many rows can expire in a single transaction. Default \u0027"},{"line_number":258,"context_line":"                      \u0027value is 0 which is unlimited. When the limit is \u0027"},{"line_number":259,"context_line":"                      \u0027reached, the next batch removal is delayed by 5 s.\u0027)),"},{"line_number":260,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":8,"id":"b2a8fb3f_e4dea224","line":257,"range":{"start_line":257,"start_character":28,"end_line":257,"end_character":32},"in_reply_to":"fac0b541_480450b7","updated":"2023-11-17 15:15:40.000000000","message":"Done","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"2a5e938e1f66112313e9c01e0a58d24d59d18fbf","unresolved":true,"context_lines":[{"line_number":256,"context_line":"               help\u003d_(\u0027MAC binding aging bulk removal limit. This limits how \u0027"},{"line_number":257,"context_line":"                      \u0027many rows can expire in a single transaction. Default \u0027"},{"line_number":258,"context_line":"                      \u0027value is 0 which is unlimited. When the limit is \u0027"},{"line_number":259,"context_line":"                      \u0027reached, the next batch removal is delayed by 5 s.\u0027)),"},{"line_number":260,"context_line":"]"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"be638ce1_cb97fbe0","line":259,"range":{"start_line":259,"start_character":69,"end_line":259,"end_character":72},"updated":"2023-10-18 20:21:31.000000000","message":"\"5 seconds\"?","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"9dc9a9c2339120b11e8c84114a48ddd565186a58","unresolved":false,"context_lines":[{"line_number":256,"context_line":"               help\u003d_(\u0027MAC binding aging bulk removal limit. This limits how \u0027"},{"line_number":257,"context_line":"                      \u0027many rows can expire in a single transaction. Default \u0027"},{"line_number":258,"context_line":"                      \u0027value is 0 which is unlimited. When the limit is \u0027"},{"line_number":259,"context_line":"                      \u0027reached, the next batch removal is delayed by 5 s.\u0027)),"},{"line_number":260,"context_line":"]"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"79c010bf_fbe9c916","line":259,"range":{"start_line":259,"start_character":69,"end_line":259,"end_character":72},"in_reply_to":"be638ce1_cb97fbe0","updated":"2023-11-17 15:15:40.000000000","message":"Done","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"daed4702658c8a02e74804054b1b08c8e1023ea4","unresolved":true,"context_lines":[{"line_number":264,"context_line":"               min\u003d0,"},{"line_number":265,"context_line":"               default\u003d0,"},{"line_number":266,"context_line":"               help\u003d_(\u0027MAC binding aging bulk removal limit. This limits how \u0027"},{"line_number":267,"context_line":"                      \u0027many entries can expire in a single transaction.\u0027"},{"line_number":268,"context_line":"                      \u0027The default is 0 which is unlimited. When the limit\u0027"},{"line_number":269,"context_line":"                      \u0027is reached, the next batch removal is delayed by\u0027"},{"line_number":270,"context_line":"                      \u00275 seconds.\u0027)),"}],"source_content_type":"text/x-python","patch_set":9,"id":"f28fcdbe_c9daef6e","line":267,"range":{"start_line":267,"start_character":71,"end_line":267,"end_character":72},"updated":"2023-11-21 17:49:16.000000000","message":"there should be a space here at the end, also below everywhere you split the substrings to new line.","commit_id":"37c9ebd7c37b3a0a1a18c059b23e8d5dfb4bdce5"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"b20517f5b31681f16b2920f707cb3b0b11d3b3df","unresolved":false,"context_lines":[{"line_number":264,"context_line":"               min\u003d0,"},{"line_number":265,"context_line":"               default\u003d0,"},{"line_number":266,"context_line":"               help\u003d_(\u0027MAC binding aging bulk removal limit. This limits how \u0027"},{"line_number":267,"context_line":"                      \u0027many entries can expire in a single transaction.\u0027"},{"line_number":268,"context_line":"                      \u0027The default is 0 which is unlimited. When the limit\u0027"},{"line_number":269,"context_line":"                      \u0027is reached, the next batch removal is delayed by\u0027"},{"line_number":270,"context_line":"                      \u00275 seconds.\u0027)),"}],"source_content_type":"text/x-python","patch_set":9,"id":"b14328be_bf9d3b6e","line":267,"range":{"start_line":267,"start_character":71,"end_line":267,"end_character":72},"in_reply_to":"f28fcdbe_c9daef6e","updated":"2023-11-21 17:55:16.000000000","message":"Done","commit_id":"37c9ebd7c37b3a0a1a18c059b23e8d5dfb4bdce5"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/api.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c0f5cd11269d727f19b8354abb21a254573c4f02","unresolved":true,"context_lines":[{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    @abc.abstractmethod"},{"line_number":186,"context_line":"    def set_mac_removal_limit(self):"},{"line_number":187,"context_line":"        \"\"\"Set the OVN MAC_Binding removal limiti"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        returns: :class:`Command` with no result"},{"line_number":190,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"da6cdb59_7cb46252","line":187,"range":{"start_line":187,"start_character":43,"end_line":187,"end_character":49},"updated":"2023-09-13 07:41:28.000000000","message":"typo: limit","commit_id":"05851e2c3ff5524185384a77fcd868da4a3b4963"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"542563057efbd661c580e127715e7dae5b38b8ed","unresolved":false,"context_lines":[{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    @abc.abstractmethod"},{"line_number":186,"context_line":"    def set_mac_removal_limit(self):"},{"line_number":187,"context_line":"        \"\"\"Set the OVN MAC_Binding removal limiti"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        returns: :class:`Command` with no result"},{"line_number":190,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"ed16a9a3_40f1e0d3","line":187,"range":{"start_line":187,"start_character":43,"end_line":187,"end_character":49},"in_reply_to":"da6cdb59_7cb46252","updated":"2023-09-13 14:46:30.000000000","message":"Done","commit_id":"05851e2c3ff5524185384a77fcd868da4a3b4963"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"223513411bdd48a30ad33f29ac6dc6f95afb9ba1","unresolved":true,"context_lines":[{"line_number":182,"context_line":"        :returns:            :class:`Command` with no result"},{"line_number":183,"context_line":"        \"\"\""},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    @abc.abstractmethod"},{"line_number":186,"context_line":"    def set_mac_removal_limit(self):"},{"line_number":187,"context_line":"        \"\"\"Set the OVN MAC_Binding removal limit"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        returns: :class:`Command` with no result"},{"line_number":190,"context_line":"        \"\"\""},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    @abc.abstractmethod"},{"line_number":193,"context_line":"    def set_router_mac_age_limit(self, router\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"5daf273e_3b46c234","line":190,"range":{"start_line":185,"start_character":0,"end_line":190,"end_character":11},"updated":"2023-10-18 14:08:34.000000000","message":"Do we need this?","commit_id":"cb2f690964d53fbd4fb35d617a103c9704037f1f"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"4c4164617fc404b99ab0b645333f45a69c7dc2be","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        :returns:            :class:`Command` with no result"},{"line_number":183,"context_line":"        \"\"\""},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    @abc.abstractmethod"},{"line_number":186,"context_line":"    def set_mac_removal_limit(self):"},{"line_number":187,"context_line":"        \"\"\"Set the OVN MAC_Binding removal limit"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        returns: :class:`Command` with no result"},{"line_number":190,"context_line":"        \"\"\""},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    @abc.abstractmethod"},{"line_number":193,"context_line":"    def set_router_mac_age_limit(self, router\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"2c7dd189_abfed7d3","line":190,"range":{"start_line":185,"start_character":0,"end_line":190,"end_character":11},"in_reply_to":"5daf273e_3b46c234","updated":"2023-10-18 14:51:20.000000000","message":"Nope.","commit_id":"cb2f690964d53fbd4fb35d617a103c9704037f1f"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/commands.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3a3c88dea924fe969c52907afa8ae060ccf528a1","unresolved":true,"context_lines":[{"line_number":472,"context_line":"        setattr(port, \u0027addresses\u0027, self.lsp_address)"},{"line_number":473,"context_line":""},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"class SetLRouterMacAgeLimitCommand(command.BaseCommand):"},{"line_number":476,"context_line":"    def __init__(self, api, router, threshold):"},{"line_number":477,"context_line":"        super().__init__(api)"},{"line_number":478,"context_line":"        self.router \u003d router"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf9dc4b7_31152bc4","line":475,"range":{"start_line":475,"start_character":6,"end_line":475,"end_character":34},"updated":"2023-10-16 09:58:45.000000000","message":"This command deserves a functional test, same as in ovsdbapp.","commit_id":"c155c755c88b13f6ea6c83ea9b9bce7f4a937b71"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6b367c27af2239da2877ac30057f4dcf5e26e4bb","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        setattr(port, \u0027addresses\u0027, self.lsp_address)"},{"line_number":473,"context_line":""},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"class SetLRouterMacAgeLimitCommand(command.BaseCommand):"},{"line_number":476,"context_line":"    def __init__(self, api, router, threshold):"},{"line_number":477,"context_line":"        super().__init__(api)"},{"line_number":478,"context_line":"        self.router \u003d router"}],"source_content_type":"text/x-python","patch_set":5,"id":"e6adc3bd_44c53a5f","line":475,"range":{"start_line":475,"start_character":6,"end_line":475,"end_character":34},"in_reply_to":"8ceee7e0_4fa45585","updated":"2023-10-17 23:04:35.000000000","message":"Done","commit_id":"c155c755c88b13f6ea6c83ea9b9bce7f4a937b71"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"761e18cc01e3e090b87f7309d5e3ef8fcc2a4790","unresolved":true,"context_lines":[{"line_number":472,"context_line":"        setattr(port, \u0027addresses\u0027, self.lsp_address)"},{"line_number":473,"context_line":""},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"class SetLRouterMacAgeLimitCommand(command.BaseCommand):"},{"line_number":476,"context_line":"    def __init__(self, api, router, threshold):"},{"line_number":477,"context_line":"        super().__init__(api)"},{"line_number":478,"context_line":"        self.router \u003d router"}],"source_content_type":"text/x-python","patch_set":5,"id":"8ceee7e0_4fa45585","line":475,"range":{"start_line":475,"start_character":6,"end_line":475,"end_character":34},"in_reply_to":"bf9dc4b7_31152bc4","updated":"2023-10-17 20:05:15.000000000","message":"Ack","commit_id":"c155c755c88b13f6ea6c83ea9b9bce7f4a937b71"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"2a5e938e1f66112313e9c01e0a58d24d59d18fbf","unresolved":true,"context_lines":[{"line_number":503,"context_line":"                # \"options\" set yet, which the following setkey will rectify"},{"line_number":504,"context_line":"                pass"},{"line_number":505,"context_line":"            router.setkey(\"options\", ovn_const.LR_OPTIONS_MAC_AGE_LIMIT,"},{"line_number":506,"context_line":"                          str(self.threshold))"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"class AddACLCommand(command.BaseCommand):"}],"source_content_type":"text/x-python","patch_set":8,"id":"26a7942b_ad4765b6","line":506,"range":{"start_line":506,"start_character":26,"end_line":506,"end_character":29},"updated":"2023-10-18 20:21:31.000000000","message":"nit: you already `str()`\u0027ed it in line 479, no need to repeat here.","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"9dc9a9c2339120b11e8c84114a48ddd565186a58","unresolved":false,"context_lines":[{"line_number":503,"context_line":"                # \"options\" set yet, which the following setkey will rectify"},{"line_number":504,"context_line":"                pass"},{"line_number":505,"context_line":"            router.setkey(\"options\", ovn_const.LR_OPTIONS_MAC_AGE_LIMIT,"},{"line_number":506,"context_line":"                          str(self.threshold))"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"class AddACLCommand(command.BaseCommand):"}],"source_content_type":"text/x-python","patch_set":8,"id":"6a0cb6f8_9cc647e3","line":506,"range":{"start_line":506,"start_character":26,"end_line":506,"end_character":29},"in_reply_to":"26a7942b_ad4765b6","updated":"2023-11-17 15:15:40.000000000","message":"Done","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/maintenance.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c0f5cd11269d727f19b8354abb21a254573c4f02","unresolved":true,"context_lines":[{"line_number":827,"context_line":""},{"line_number":828,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"},{"line_number":829,"context_line":"            txn.add(self._nb_idl.set_mac_removal_limit())"},{"line_number":830,"context_line":"            txn.add(self._nb_idl.set_router_mac_age_limit())"},{"line_number":831,"context_line":""},{"line_number":832,"context_line":"    # TODO(fnordahl): Remove this in the B+3 cycle. This method removes the"},{"line_number":833,"context_line":"    # now redundant  \"external_ids:OVN_GW_NETWORK_EXT_ID_KEY\" and"}],"source_content_type":"text/x-python","patch_set":4,"id":"d3b3e5ca_28afb65e","line":830,"updated":"2023-09-13 07:41:28.000000000","message":"do we want to keep checking this? or just on startup is enough? if that so we should raise a periodics.NeverAgain()","commit_id":"05851e2c3ff5524185384a77fcd868da4a3b4963"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"542563057efbd661c580e127715e7dae5b38b8ed","unresolved":false,"context_lines":[{"line_number":827,"context_line":""},{"line_number":828,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"},{"line_number":829,"context_line":"            txn.add(self._nb_idl.set_mac_removal_limit())"},{"line_number":830,"context_line":"            txn.add(self._nb_idl.set_router_mac_age_limit())"},{"line_number":831,"context_line":""},{"line_number":832,"context_line":"    # TODO(fnordahl): Remove this in the B+3 cycle. This method removes the"},{"line_number":833,"context_line":"    # now redundant  \"external_ids:OVN_GW_NETWORK_EXT_ID_KEY\" and"}],"source_content_type":"text/x-python","patch_set":4,"id":"be8c2e80_1043da79","line":830,"in_reply_to":"d3b3e5ca_28afb65e","updated":"2023-09-13 14:46:30.000000000","message":"Ah, yeah, I accidentally dropped that. Thanks!","commit_id":"05851e2c3ff5524185384a77fcd868da4a3b4963"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"223513411bdd48a30ad33f29ac6dc6f95afb9ba1","unresolved":true,"context_lines":[{"line_number":800,"context_line":""},{"line_number":801,"context_line":"    # A static spacing value is used here, but this method will only run"},{"line_number":802,"context_line":"    # once per lock due to the use of periodics.NeverAgain()."},{"line_number":803,"context_line":"    @periodics.periodic(spacing\u003d600, run_immediately\u003dTrue)"},{"line_number":804,"context_line":"    def update_mac_aging_settings(self):"},{"line_number":805,"context_line":"        \"\"\"Ensure that MAC_Binding aging options are set\"\"\""},{"line_number":806,"context_line":"        if not self.has_lock:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5e4f479e_73549b68","line":803,"range":{"start_line":803,"start_character":0,"end_line":803,"end_character":58},"updated":"2023-10-18 14:08:34.000000000","message":"`@has_lock_periodic(spacing\u003d600, run_immediately\u003dTrue)`","commit_id":"cb2f690964d53fbd4fb35d617a103c9704037f1f"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"aca04be95662b45247d85d4cf61439c06241eac9","unresolved":false,"context_lines":[{"line_number":800,"context_line":""},{"line_number":801,"context_line":"    # A static spacing value is used here, but this method will only run"},{"line_number":802,"context_line":"    # once per lock due to the use of periodics.NeverAgain()."},{"line_number":803,"context_line":"    @periodics.periodic(spacing\u003d600, run_immediately\u003dTrue)"},{"line_number":804,"context_line":"    def update_mac_aging_settings(self):"},{"line_number":805,"context_line":"        \"\"\"Ensure that MAC_Binding aging options are set\"\"\""},{"line_number":806,"context_line":"        if not self.has_lock:"}],"source_content_type":"text/x-python","patch_set":6,"id":"b1e77095_450b8c8f","line":803,"range":{"start_line":803,"start_character":0,"end_line":803,"end_character":58},"in_reply_to":"5e4f479e_73549b68","updated":"2023-10-18 14:17:35.000000000","message":"Oh yeah, that merged. :)","commit_id":"cb2f690964d53fbd4fb35d617a103c9704037f1f"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"5137c311224dac8be2ebcef85f82ef75e612c054","unresolved":true,"context_lines":[{"line_number":1339,"context_line":"                   \u0027dynamic_neigh_routers\u0027: \u0027true\u0027,"},{"line_number":1340,"context_line":"                   ovn_const.LR_OPTIONS_MAC_AGE_LIMIT:"},{"line_number":1341,"context_line":"                       cfg.CONF.ovn.mac_binding_age_threshold,"},{"line_number":1342,"context_line":"                   ovn_const.LR_OPTIONS_MAC_REMOVAL_LIMIT:"},{"line_number":1343,"context_line":"                       cfg.CONF.ovn.mac_binding_removal_limit}"},{"line_number":1344,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"},{"line_number":1345,"context_line":"            txn.add(self._nb_idl.create_lrouter(lrouter_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"73b88cfe_69a2020b","line":1342,"range":{"start_line":1342,"start_character":0,"end_line":1342,"end_character":1},"updated":"2023-09-08 06:44:21.000000000","message":"is this a LR option or a NB_Global option?","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"d35943d35c0128e8017f1bc0dab18c95f7f344b3","unresolved":true,"context_lines":[{"line_number":1339,"context_line":"                   \u0027dynamic_neigh_routers\u0027: \u0027true\u0027,"},{"line_number":1340,"context_line":"                   ovn_const.LR_OPTIONS_MAC_AGE_LIMIT:"},{"line_number":1341,"context_line":"                       cfg.CONF.ovn.mac_binding_age_threshold,"},{"line_number":1342,"context_line":"                   ovn_const.LR_OPTIONS_MAC_REMOVAL_LIMIT:"},{"line_number":1343,"context_line":"                       cfg.CONF.ovn.mac_binding_removal_limit}"},{"line_number":1344,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"},{"line_number":1345,"context_line":"            txn.add(self._nb_idl.create_lrouter(lrouter_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"c6f5eadb_f6198324","line":1342,"range":{"start_line":1342,"start_character":0,"end_line":1342,"end_character":1},"in_reply_to":"73b88cfe_69a2020b","updated":"2023-09-08 18:27:44.000000000","message":"Ah, thanks. Good catch. That one\u0027s in the \"common options\" section of ovn-nb.xml.","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"c416631d99cf5992121671e3da5f56ed16991ae5","unresolved":false,"context_lines":[{"line_number":1339,"context_line":"                   \u0027dynamic_neigh_routers\u0027: \u0027true\u0027,"},{"line_number":1340,"context_line":"                   ovn_const.LR_OPTIONS_MAC_AGE_LIMIT:"},{"line_number":1341,"context_line":"                       cfg.CONF.ovn.mac_binding_age_threshold,"},{"line_number":1342,"context_line":"                   ovn_const.LR_OPTIONS_MAC_REMOVAL_LIMIT:"},{"line_number":1343,"context_line":"                       cfg.CONF.ovn.mac_binding_removal_limit}"},{"line_number":1344,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"},{"line_number":1345,"context_line":"            txn.add(self._nb_idl.create_lrouter(lrouter_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"f0974e50_28bd76d6","line":1342,"range":{"start_line":1342,"start_character":0,"end_line":1342,"end_character":1},"in_reply_to":"c6f5eadb_f6198324","updated":"2023-09-11 22:19:00.000000000","message":"Done","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6ceba525e7a2627a51f548eb0a68bf1b330f32cc","unresolved":true,"context_lines":[{"line_number":1340,"context_line":"                   ovn_const.LR_OPTIONS_MAC_AGE_LIMIT:"},{"line_number":1341,"context_line":"                       cfg.CONF.ovn.mac_binding_age_threshold,"},{"line_number":1342,"context_line":"                   ovn_const.LR_OPTIONS_MAC_REMOVAL_LIMIT:"},{"line_number":1343,"context_line":"                       cfg.CONF.ovn.mac_binding_removal_limit}"},{"line_number":1344,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"},{"line_number":1345,"context_line":"            txn.add(self._nb_idl.create_lrouter(lrouter_name,"},{"line_number":1346,"context_line":"                                                external_ids\u003dexternal_ids,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5bc37569_cb449edb","line":1343,"updated":"2023-09-05 14:47:44.000000000","message":"Do we always want to set these or only if the OVN version supports it?","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"b5d64399f428a469c2cec0ede2d3407337421327","unresolved":false,"context_lines":[{"line_number":1340,"context_line":"                   ovn_const.LR_OPTIONS_MAC_AGE_LIMIT:"},{"line_number":1341,"context_line":"                       cfg.CONF.ovn.mac_binding_age_threshold,"},{"line_number":1342,"context_line":"                   ovn_const.LR_OPTIONS_MAC_REMOVAL_LIMIT:"},{"line_number":1343,"context_line":"                       cfg.CONF.ovn.mac_binding_removal_limit}"},{"line_number":1344,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"},{"line_number":1345,"context_line":"            txn.add(self._nb_idl.create_lrouter(lrouter_name,"},{"line_number":1346,"context_line":"                                                external_ids\u003dexternal_ids,"}],"source_content_type":"text/x-python","patch_set":1,"id":"93c43b09_49b02cee","line":1343,"in_reply_to":"5bc37569_cb449edb","updated":"2023-09-06 14:57:23.000000000","message":"If OVN doesn\u0027t support the options, they\u0027ll be ignored. So I would vote for keeping the code simple here.","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"63b11147e3aa7ed635ab0b9c2774a1c95d1d4a82","unresolved":false,"context_lines":[{"line_number":1340,"context_line":"                   ovn_const.LR_OPTIONS_MAC_AGE_LIMIT:"},{"line_number":1341,"context_line":"                       cfg.CONF.ovn.mac_binding_age_threshold,"},{"line_number":1342,"context_line":"                   ovn_const.LR_OPTIONS_MAC_REMOVAL_LIMIT:"},{"line_number":1343,"context_line":"                       cfg.CONF.ovn.mac_binding_removal_limit}"},{"line_number":1344,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"},{"line_number":1345,"context_line":"            txn.add(self._nb_idl.create_lrouter(lrouter_name,"},{"line_number":1346,"context_line":"                                                external_ids\u003dexternal_ids,"}],"source_content_type":"text/x-python","patch_set":1,"id":"e6013333_3fa25025","line":1343,"in_reply_to":"93c43b09_49b02cee","updated":"2023-09-06 16:24:37.000000000","message":"Ack.","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"2a5e938e1f66112313e9c01e0a58d24d59d18fbf","unresolved":true,"context_lines":[{"line_number":1339,"context_line":"        added_gw_port \u003d None"},{"line_number":1340,"context_line":"        options \u003d {\u0027always_learn_from_arp_request\u0027: \u0027false\u0027,"},{"line_number":1341,"context_line":"                   \u0027dynamic_neigh_routers\u0027: \u0027true\u0027,"},{"line_number":1342,"context_line":"                   ovn_const.LR_OPTIONS_MAC_AGE_LIMIT:"},{"line_number":1343,"context_line":"                   ovn_conf.get_ovn_mac_binding_age_threshold()}"},{"line_number":1344,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"},{"line_number":1345,"context_line":"            txn.add(self._nb_idl.create_lrouter(lrouter_name,"}],"source_content_type":"text/x-python","patch_set":8,"id":"fbc3077b_aedf555c","line":1342,"updated":"2023-10-18 20:21:31.000000000","message":"nit: it would be nice to avoid creating options that are no-ops, for in case the threshold is zero.","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"f198c941a26ab780d3153e7fa9d255097b08b650","unresolved":true,"context_lines":[{"line_number":1339,"context_line":"        added_gw_port \u003d None"},{"line_number":1340,"context_line":"        options \u003d {\u0027always_learn_from_arp_request\u0027: \u0027false\u0027,"},{"line_number":1341,"context_line":"                   \u0027dynamic_neigh_routers\u0027: \u0027true\u0027,"},{"line_number":1342,"context_line":"                   ovn_const.LR_OPTIONS_MAC_AGE_LIMIT:"},{"line_number":1343,"context_line":"                   ovn_conf.get_ovn_mac_binding_age_threshold()}"},{"line_number":1344,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"},{"line_number":1345,"context_line":"            txn.add(self._nb_idl.create_lrouter(lrouter_name,"}],"source_content_type":"text/x-python","patch_set":8,"id":"ef503b3d_eeced64d","line":1342,"in_reply_to":"88659a43_6df384af","updated":"2023-10-19 01:41:35.000000000","message":"Is it not just an `if () addkey else delkey` with ignore_error or smth? I understand it\u0027s slightly more complex than an unconditional `addkey`, but not a lot.\n\nAnyway, I don\u0027t insist, only prefer.","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"9dc9a9c2339120b11e8c84114a48ddd565186a58","unresolved":true,"context_lines":[{"line_number":1339,"context_line":"        added_gw_port \u003d None"},{"line_number":1340,"context_line":"        options \u003d {\u0027always_learn_from_arp_request\u0027: \u0027false\u0027,"},{"line_number":1341,"context_line":"                   \u0027dynamic_neigh_routers\u0027: \u0027true\u0027,"},{"line_number":1342,"context_line":"                   ovn_const.LR_OPTIONS_MAC_AGE_LIMIT:"},{"line_number":1343,"context_line":"                   ovn_conf.get_ovn_mac_binding_age_threshold()}"},{"line_number":1344,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"},{"line_number":1345,"context_line":"            txn.add(self._nb_idl.create_lrouter(lrouter_name,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7386cd53_2d484cfd","line":1342,"in_reply_to":"ef503b3d_eeced64d","updated":"2023-11-17 15:15:40.000000000","message":"I\u0027m not sure it is quite that simple, at least with the current documented behavior. We have a default of 0, which means disabled. That is currently the default in OVN. So right now, unset \u003d\u003d 0 so if we delkey when LR_OPTIONS_MAC_AGE_LIMIT \u003d\u003d 0, we get that. But if some day OVN changes the default, now we have to change the code. And we\u0027ve had other patches where OVN changed the default and we needed to keep our setting.\n\nWe could change the way the option works by defaulting to something like -1 which would be \"use the OVN default\" (we\u0027d also need to update the FDB aging for consistency).","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"03c00daa10217589391857725f9b8b388d42595a","unresolved":true,"context_lines":[{"line_number":1339,"context_line":"        added_gw_port \u003d None"},{"line_number":1340,"context_line":"        options \u003d {\u0027always_learn_from_arp_request\u0027: \u0027false\u0027,"},{"line_number":1341,"context_line":"                   \u0027dynamic_neigh_routers\u0027: \u0027true\u0027,"},{"line_number":1342,"context_line":"                   ovn_const.LR_OPTIONS_MAC_AGE_LIMIT:"},{"line_number":1343,"context_line":"                   ovn_conf.get_ovn_mac_binding_age_threshold()}"},{"line_number":1344,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"},{"line_number":1345,"context_line":"            txn.add(self._nb_idl.create_lrouter(lrouter_name,"}],"source_content_type":"text/x-python","patch_set":8,"id":"88659a43_6df384af","line":1342,"in_reply_to":"fbc3077b_aedf555c","updated":"2023-10-18 20:46:30.000000000","message":"I considered it when writing it in the first place, but decided against it because it complicates the logic here and elsewhere. If we set to zero, to be consistent we\u0027ve got to delete the value that is in the DB, instead of writing zero, etc. It seemed much more consistent to just store the value we want regardless of what the OVN behavior with defaults might be.","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"}],"neutron/tests/functional/services/ovn_l3/test_plugin.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"223513411bdd48a30ad33f29ac6dc6f95afb9ba1","unresolved":true,"context_lines":[{"line_number":602,"context_line":"        router \u003d self._create_router(name)"},{"line_number":603,"context_line":"        lr_name \u003d ovn_utils.ovn_name(router[\u0027id\u0027])"},{"line_number":604,"context_line":"        options \u003d self.nb_api.db_get("},{"line_number":605,"context_line":"            \"Logical_Router\", lr_name, \"options\").execute(check_error\u003dTrue)"},{"line_number":606,"context_line":"        self.assertEqual(ovn_conf.get_ovn_mac_binding_age_threshold(),"},{"line_number":607,"context_line":"                         options[ovn_const.LR_OPTIONS_MAC_AGE_LIMIT])"}],"source_content_type":"text/x-python","patch_set":6,"id":"d7f6009a_a687e956","line":605,"updated":"2023-10-18 14:08:34.000000000","message":"maybe we should also log the error? `log_errors\u003dTrue`","commit_id":"cb2f690964d53fbd4fb35d617a103c9704037f1f"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"aca04be95662b45247d85d4cf61439c06241eac9","unresolved":false,"context_lines":[{"line_number":602,"context_line":"        router \u003d self._create_router(name)"},{"line_number":603,"context_line":"        lr_name \u003d ovn_utils.ovn_name(router[\u0027id\u0027])"},{"line_number":604,"context_line":"        options \u003d self.nb_api.db_get("},{"line_number":605,"context_line":"            \"Logical_Router\", lr_name, \"options\").execute(check_error\u003dTrue)"},{"line_number":606,"context_line":"        self.assertEqual(ovn_conf.get_ovn_mac_binding_age_threshold(),"},{"line_number":607,"context_line":"                         options[ovn_const.LR_OPTIONS_MAC_AGE_LIMIT])"}],"source_content_type":"text/x-python","patch_set":6,"id":"16871856_e184956c","line":605,"in_reply_to":"d7f6009a_a687e956","updated":"2023-10-18 14:17:35.000000000","message":"log_errors\u003dTrue is the default.","commit_id":"cb2f690964d53fbd4fb35d617a103c9704037f1f"}],"releasenotes/notes/support-ovn-mac-aging-8a555c608ccf8b04.yaml":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6ceba525e7a2627a51f548eb0a68bf1b330f32cc","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    MAC address aging in the OVN ML2 mech driver is now supported and can"},{"line_number":5,"context_line":"    be configured globally with the new OVN.mac_binding_aging_threshold and"},{"line_number":6,"context_line":"    OVN.mac_binding_removal_limit configuration options. Setting the value"},{"line_number":7,"context_line":"    per-router is not currently supported. This feature is available in"},{"line_number":8,"context_line":"    OVN versions \u003e\u003d 22.09.0+. Previous versions will ignore the new options."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3eb599c7_047e2056","line":5,"range":{"start_line":5,"start_character":40,"end_line":5,"end_character":71},"updated":"2023-09-05 14:47:44.000000000","message":"I realize we\u0027re not always consistent in how we add new config options to release notes, but we should try and follow at least listing the section and putting the option in bold, something like:\n\n... new [ovn] ``mac_binding_aging_threshold`` and ``mac_binding_removal_limit`` configuration options","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"63b11147e3aa7ed635ab0b9c2774a1c95d1d4a82","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    MAC address aging in the OVN ML2 mech driver is now supported and can"},{"line_number":5,"context_line":"    be configured globally with the new OVN.mac_binding_aging_threshold and"},{"line_number":6,"context_line":"    OVN.mac_binding_removal_limit configuration options. Setting the value"},{"line_number":7,"context_line":"    per-router is not currently supported. This feature is available in"},{"line_number":8,"context_line":"    OVN versions \u003e\u003d 22.09.0+. Previous versions will ignore the new options."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"eae4b9c8_a985ce6d","line":5,"range":{"start_line":5,"start_character":40,"end_line":5,"end_character":71},"in_reply_to":"3d8320f4_f390e899","updated":"2023-09-06 16:24:37.000000000","message":"Afaik its [section] ``option`` and the file if we know if","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"b5d64399f428a469c2cec0ede2d3407337421327","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    MAC address aging in the OVN ML2 mech driver is now supported and can"},{"line_number":5,"context_line":"    be configured globally with the new OVN.mac_binding_aging_threshold and"},{"line_number":6,"context_line":"    OVN.mac_binding_removal_limit configuration options. Setting the value"},{"line_number":7,"context_line":"    per-router is not currently supported. This feature is available in"},{"line_number":8,"context_line":"    OVN versions \u003e\u003d 22.09.0+. Previous versions will ignore the new options."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3d8320f4_f390e899","line":5,"range":{"start_line":5,"start_character":40,"end_line":5,"end_character":71},"in_reply_to":"3eb599c7_047e2056","updated":"2023-09-06 14:57:23.000000000","message":"Can do. Is there some kind of documentation about how these things should be done? I just went with doing the section in dot notation due to personal preference as I have aesthetic issues with `[section] option` 😊","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"c416631d99cf5992121671e3da5f56ed16991ae5","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    MAC address aging in the OVN ML2 mech driver is now supported and can"},{"line_number":5,"context_line":"    be configured globally with the new OVN.mac_binding_aging_threshold and"},{"line_number":6,"context_line":"    OVN.mac_binding_removal_limit configuration options. Setting the value"},{"line_number":7,"context_line":"    per-router is not currently supported. This feature is available in"},{"line_number":8,"context_line":"    OVN versions \u003e\u003d 22.09.0+. Previous versions will ignore the new options."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"c8f6c0af_ebed205d","line":5,"range":{"start_line":5,"start_character":40,"end_line":5,"end_character":71},"in_reply_to":"eae4b9c8_a985ce6d","updated":"2023-09-11 22:19:00.000000000","message":"Done","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"0b36549d968156ef1ad9bf86fa31ab15f8f42fda","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    OVN.mac_binding_removal_limit configuration options. Setting the value"},{"line_number":7,"context_line":"    per-router is not currently supported. This feature is available in"},{"line_number":8,"context_line":"    OVN versions \u003e\u003d 22.09.0+. Previous versions will ignore the new options."},{"line_number":9,"context_line":"issues:"},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    If the config options are modified, previously created routers are not"},{"line_number":12,"context_line":"    updated with the new values."},{"line_number":13,"context_line":"upgrade:"},{"line_number":14,"context_line":"  - |"},{"line_number":15,"context_line":"    Neutron routers created with before this feature was enabled remain"},{"line_number":16,"context_line":"    untouched and therefore will not have MAC_Binding aging."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"f86136cb_b893c63d","line":16,"range":{"start_line":9,"start_character":0,"end_line":16,"end_character":60},"updated":"2023-09-01 22:47:01.000000000","message":"Both of these issues seem fairly serious and problematic and stem from a combination of having a global setting which is configured in OVN on each router and having to populate changes to all routers. If we blindly write the configured change to all routers, we remove the ability for customers to manually tweak the settings.\n\nThis makes it seem like the best solution would be to allow specific user configuration per-router, but unless I\u0027m wrong, that\u0027d mean an API extension? So for now I\u0027m posting this to get some eyes on it and some suggestions.\n\nThe main issue I\u0027ve seen people have is just \"the MAC_Bindings table grows indefinitely, using tons of memory and making OVSDB connection times take forever\". From that perspective, just having *any* setting is good. And it\u0027s simple enough to manually run an ovn-nbctl command to set the option on old routers (if we don\u0027t want to unilaterally set it for them in the maintenance worker code).","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"c416631d99cf5992121671e3da5f56ed16991ae5","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    OVN.mac_binding_removal_limit configuration options. Setting the value"},{"line_number":7,"context_line":"    per-router is not currently supported. This feature is available in"},{"line_number":8,"context_line":"    OVN versions \u003e\u003d 22.09.0+. Previous versions will ignore the new options."},{"line_number":9,"context_line":"issues:"},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    If the config options are modified, previously created routers are not"},{"line_number":12,"context_line":"    updated with the new values."},{"line_number":13,"context_line":"upgrade:"},{"line_number":14,"context_line":"  - |"},{"line_number":15,"context_line":"    Neutron routers created with before this feature was enabled remain"},{"line_number":16,"context_line":"    untouched and therefore will not have MAC_Binding aging."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5cf3547c_db1c86a7","line":16,"range":{"start_line":9,"start_character":0,"end_line":16,"end_character":60},"in_reply_to":"53c47387_4f13aff2","updated":"2023-09-11 22:19:00.000000000","message":"I went ahead and followed something similar to what Luis is doing w/ the FDB aging with the MaintenanceWorker.","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"63b11147e3aa7ed635ab0b9c2774a1c95d1d4a82","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    OVN.mac_binding_removal_limit configuration options. Setting the value"},{"line_number":7,"context_line":"    per-router is not currently supported. This feature is available in"},{"line_number":8,"context_line":"    OVN versions \u003e\u003d 22.09.0+. Previous versions will ignore the new options."},{"line_number":9,"context_line":"issues:"},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    If the config options are modified, previously created routers are not"},{"line_number":12,"context_line":"    updated with the new values."},{"line_number":13,"context_line":"upgrade:"},{"line_number":14,"context_line":"  - |"},{"line_number":15,"context_line":"    Neutron routers created with before this feature was enabled remain"},{"line_number":16,"context_line":"    untouched and therefore will not have MAC_Binding aging."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"53c47387_4f13aff2","line":16,"range":{"start_line":9,"start_character":0,"end_line":16,"end_character":60},"in_reply_to":"c8b85136_119ff48f","updated":"2023-09-06 16:24:37.000000000","message":"I\u0027m not an operator at the moment either, but I have a weekly meeting with a group here that runs clouds for customers (that oddly have been dealing with a MAC binding issue) I\u0027ll ask what they think.","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"b5d64399f428a469c2cec0ede2d3407337421327","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    OVN.mac_binding_removal_limit configuration options. Setting the value"},{"line_number":7,"context_line":"    per-router is not currently supported. This feature is available in"},{"line_number":8,"context_line":"    OVN versions \u003e\u003d 22.09.0+. Previous versions will ignore the new options."},{"line_number":9,"context_line":"issues:"},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    If the config options are modified, previously created routers are not"},{"line_number":12,"context_line":"    updated with the new values."},{"line_number":13,"context_line":"upgrade:"},{"line_number":14,"context_line":"  - |"},{"line_number":15,"context_line":"    Neutron routers created with before this feature was enabled remain"},{"line_number":16,"context_line":"    untouched and therefore will not have MAC_Binding aging."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"c8b85136_119ff48f","line":16,"range":{"start_line":9,"start_character":0,"end_line":16,"end_character":60},"in_reply_to":"f05a5a08_29f2d7e7","updated":"2023-09-06 14:57:23.000000000","message":"Yeah, it basically comes down to a) we don\u0027t have a great way to expose setting the value per-router w/o doing an API extension, b) it\u0027s pretty easy for users to set it manually if they needed to for some reason, and c) if we use the MaintenanceWorker to update the settings with our global settings, users lose out on the ability work around our lack of per-router support.\n\nNot being an operator myself, I figured I\u0027d throw it out here and see if anyone had some opinions. Since the only complaints I hear are \"the list grows forever\" I wouldn\u0027t expect that anyone would really care much about per-router settings (so it\u0027d be ok to just say \"these are neutron routers and neutron is setting this value globally), but I really just don\u0027t know.","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6ceba525e7a2627a51f548eb0a68bf1b330f32cc","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    OVN.mac_binding_removal_limit configuration options. Setting the value"},{"line_number":7,"context_line":"    per-router is not currently supported. This feature is available in"},{"line_number":8,"context_line":"    OVN versions \u003e\u003d 22.09.0+. Previous versions will ignore the new options."},{"line_number":9,"context_line":"issues:"},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    If the config options are modified, previously created routers are not"},{"line_number":12,"context_line":"    updated with the new values."},{"line_number":13,"context_line":"upgrade:"},{"line_number":14,"context_line":"  - |"},{"line_number":15,"context_line":"    Neutron routers created with before this feature was enabled remain"},{"line_number":16,"context_line":"    untouched and therefore will not have MAC_Binding aging."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"f05a5a08_29f2d7e7","line":16,"range":{"start_line":9,"start_character":0,"end_line":16,"end_character":60},"in_reply_to":"f86136cb_b893c63d","updated":"2023-09-05 14:47:44.000000000","message":"Terry, thanks for raising the issue.\n\nFrom an admin perspective, it would seem like I changed the value and restarted neutron-server I would want it to update all my routers. I\u0027m just not sure how many admins are manually configuring settings on Openstack created routers?","commit_id":"f40bd262349f3d750b93cc52dd98f2e86c53b2db"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"ded5be296f85448b5821931abd86a547eb0f3e3e","unresolved":true,"context_lines":[{"line_number":8,"context_line":"    OVN versions \u003e\u003d 22.09.0+. Previous versions will ignore the new options."},{"line_number":9,"context_line":"upgrade:"},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    OVN Logical_Routers will have their mac_binding_aging_threshold set to"},{"line_number":12,"context_line":"    the value configured."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"4ca44641_def4bd64","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":25},"updated":"2023-09-27 16:30:24.000000000","message":"Should we say also that by default the timeout is set for one day and if the operator doesn\u0027t want the aging mechanism then it should be set to 0?","commit_id":"c155c755c88b13f6ea6c83ea9b9bce7f4a937b71"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"4061b1b07c4f86d45c677dadeb785ff4bf5cc219","unresolved":true,"context_lines":[{"line_number":8,"context_line":"    OVN versions \u003e\u003d 22.09.0+. Previous versions will ignore the new options."},{"line_number":9,"context_line":"upgrade:"},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    OVN Logical_Routers will have their mac_binding_aging_threshold set to"},{"line_number":12,"context_line":"    the value configured."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"cf0e7dc5_59138052","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":25},"in_reply_to":"4ca44641_def4bd64","updated":"2023-09-29 18:27:51.000000000","message":"I guess that depends on the previous comment thread about whether we should follow the default in OVN and set it to 0 by default.\n\nGiven that there are differences in behavior pre/post-23.09 which would determine what a \"good\" default value would be (with post-023.09 probably being somewhere around 300s) and that we don\u0027t have great scale testing of the overhead, I\u0027m now leaning toward defaulting to 0. We could also default to \"unset\" which would be \"do whatever the version of OVN you are using recommends (which effectively would be zero, but may change in the future). 0 would at least not break anyone that wasn\u0027t already broken. My gut feeling is that it\u0027s only a subset of customers/users who will truly have an issue w/ the MAC_Bindings (and over a fairly long timeframe), and having them switch on the aging would be simple enough? But even then I hate the idea of a potentially infinite amount of storage/memory being used. :/","commit_id":"c155c755c88b13f6ea6c83ea9b9bce7f4a937b71"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6b367c27af2239da2877ac30057f4dcf5e26e4bb","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    OVN versions \u003e\u003d 22.09.0+. Previous versions will ignore the new options."},{"line_number":9,"context_line":"upgrade:"},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    OVN Logical_Routers will have their mac_binding_aging_threshold set to"},{"line_number":12,"context_line":"    the value configured."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"c9b0d25b_5c3966b1","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":25},"in_reply_to":"cf0e7dc5_59138052","updated":"2023-10-17 23:04:35.000000000","message":"The value is unconditionally set to whatever value is in the config and defaults to zero, disabled.","commit_id":"c155c755c88b13f6ea6c83ea9b9bce7f4a937b71"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"2a5e938e1f66112313e9c01e0a58d24d59d18fbf","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    MAC address aging in the OVN ML2 mech driver is now supported and can"},{"line_number":5,"context_line":"    be configured globally with the new ``[ovn] mac_binding_aging_threshold``"},{"line_number":6,"context_line":"    and ``[ovn_nb_global]`` ``mac_binding_removal_limit`` configuration"},{"line_number":7,"context_line":"    options. Setting the value per-router is not currently supported. This"},{"line_number":8,"context_line":"    feature is available in OVN versions \u003e\u003d 22.09.0+. Previous versions will"},{"line_number":9,"context_line":"    ignore the new options."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9e7935aa_effcb021","line":6,"range":{"start_line":5,"start_character":40,"end_line":6,"end_character":57},"updated":"2023-10-18 20:21:31.000000000","message":"one of the entries is \"combined\" (single double-quotes) and another is split (two pairs). I think it will look differently in the release notes, so please adjust either way.","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"9dc9a9c2339120b11e8c84114a48ddd565186a58","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    MAC address aging in the OVN ML2 mech driver is now supported and can"},{"line_number":5,"context_line":"    be configured globally with the new ``[ovn] mac_binding_aging_threshold``"},{"line_number":6,"context_line":"    and ``[ovn_nb_global]`` ``mac_binding_removal_limit`` configuration"},{"line_number":7,"context_line":"    options. Setting the value per-router is not currently supported. This"},{"line_number":8,"context_line":"    feature is available in OVN versions \u003e\u003d 22.09.0+. Previous versions will"},{"line_number":9,"context_line":"    ignore the new options."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3a86ac9f_cbd74cf3","line":6,"range":{"start_line":5,"start_character":40,"end_line":6,"end_character":57},"in_reply_to":"9e7935aa_effcb021","updated":"2023-11-17 15:15:40.000000000","message":"Done","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"2a5e938e1f66112313e9c01e0a58d24d59d18fbf","unresolved":true,"context_lines":[{"line_number":7,"context_line":"    options. Setting the value per-router is not currently supported. This"},{"line_number":8,"context_line":"    feature is available in OVN versions \u003e\u003d 22.09.0+. Previous versions will"},{"line_number":9,"context_line":"    ignore the new options."},{"line_number":10,"context_line":"upgrade:"},{"line_number":11,"context_line":"  - |"},{"line_number":12,"context_line":"    OVN Logical_Routers will have their mac_binding_aging_threshold set to"},{"line_number":13,"context_line":"    the value configured."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"68992540_61675d54","line":10,"updated":"2023-10-18 20:21:31.000000000","message":"I doubt the need for this `upgrade` section, because there is nothing that the admin is supposed to do on upgrade in relation to this feature, it will be disabled by default and nothing will change for the admin or the user, unless the admin decides to opt in.","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"9dc9a9c2339120b11e8c84114a48ddd565186a58","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    options. Setting the value per-router is not currently supported. This"},{"line_number":8,"context_line":"    feature is available in OVN versions \u003e\u003d 22.09.0+. Previous versions will"},{"line_number":9,"context_line":"    ignore the new options."},{"line_number":10,"context_line":"upgrade:"},{"line_number":11,"context_line":"  - |"},{"line_number":12,"context_line":"    OVN Logical_Routers will have their mac_binding_aging_threshold set to"},{"line_number":13,"context_line":"    the value configured."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"e8297055_0f898012","line":10,"in_reply_to":"68992540_61675d54","updated":"2023-11-17 15:15:40.000000000","message":"Done","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"2a5e938e1f66112313e9c01e0a58d24d59d18fbf","unresolved":true,"context_lines":[{"line_number":9,"context_line":"    ignore the new options."},{"line_number":10,"context_line":"upgrade:"},{"line_number":11,"context_line":"  - |"},{"line_number":12,"context_line":"    OVN Logical_Routers will have their mac_binding_aging_threshold set to"},{"line_number":13,"context_line":"    the value configured."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"f9749cda_6f0201c9","line":12,"updated":"2023-10-18 20:21:31.000000000","message":"if you use double-quotes for the option names (as above - and as I think you should), then please use them consistently.","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"9dc9a9c2339120b11e8c84114a48ddd565186a58","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    ignore the new options."},{"line_number":10,"context_line":"upgrade:"},{"line_number":11,"context_line":"  - |"},{"line_number":12,"context_line":"    OVN Logical_Routers will have their mac_binding_aging_threshold set to"},{"line_number":13,"context_line":"    the value configured."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"ae0c09f6_cbf37aae","line":12,"in_reply_to":"f9749cda_6f0201c9","updated":"2023-11-17 15:15:40.000000000","message":"Done","commit_id":"e486f1532c690b9121b7011ed70fd26967413881"}]}
