)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a083e6b0c883a6d14fd0abbae8151db3f5c4c22d","unresolved":true,"context_lines":[{"line_number":11,"context_line":"It will avoid declaration of RPCServer for Trunk and SubPort objects."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Introduce a new option agent side to control loading of trunk extension"},{"line_number":14,"context_line":"    - agent.trunk_enabled set to True as default"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-bug: #2058712"},{"line_number":17,"context_line":"Change-Id: I94602d5f3159d9a2d5b988c9ab6cdd20dfd4af5b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ac02b738_cffa8b13","line":14,"updated":"2024-04-18 16:29:15.000000000","message":"in ovs agent (and linuxbridge-agent) we have extensions manager that - in theory - allows to control which additional modules are activated. The following extensions are implemented through this mechanism (copying from `setup.cfg`):\n\n```\nneutron.agent.l2.extensions \u003d\n    qos \u003d neutron.agent.l2.extensions.qos:QosAgentExtension\n    fdb \u003d neutron.agent.l2.extensions.fdb_population:FdbPopulationAgentExtension\n    log \u003d neutron.services.logapi.agent.log_extension:LoggingExtension\n    dhcp \u003d neutron.agent.l2.extensions.dhcp.extension:DHCPAgentExtension\n    local_ip \u003d neutron.agent.l2.extensions.local_ip:LocalIPAgentExtension\n```\n\nI wonder if instead of adding another one-off config option for trunk \"extension\", we should implement it as an official l2_extensions module. Thoughts?","commit_id":"bbc936d5e78267c5a8ddc2517ef29307bda7346f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"f5003de9e5b19cbb2eeb164c2fb0637946c5b7a2","unresolved":true,"context_lines":[{"line_number":11,"context_line":"It will avoid declaration of RPCServer for Trunk and SubPort objects."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Introduce a new option agent side to control loading of trunk extension"},{"line_number":14,"context_line":"    - agent.trunk_enabled set to True as default"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-bug: #2058712"},{"line_number":17,"context_line":"Change-Id: I94602d5f3159d9a2d5b988c9ab6cdd20dfd4af5b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ed58c32e_a0adbc1f","line":14,"in_reply_to":"59dbacb3_97c00312","updated":"2024-09-09 13:09:52.000000000","message":"Is the bug worth it in the first place? it\u0027s not clear from the description what the in-the-field impact is. If it\u0027s not too critical to do it now, it may be justified to give time to a proper fix.","commit_id":"bbc936d5e78267c5a8ddc2517ef29307bda7346f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2f4783ccf6db6760c8746814cac3c5b5482c8ad5","unresolved":true,"context_lines":[{"line_number":11,"context_line":"It will avoid declaration of RPCServer for Trunk and SubPort objects."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Introduce a new option agent side to control loading of trunk extension"},{"line_number":14,"context_line":"    - agent.trunk_enabled set to True as default"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-bug: #2058712"},{"line_number":17,"context_line":"Change-Id: I94602d5f3159d9a2d5b988c9ab6cdd20dfd4af5b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"59dbacb3_97c00312","line":14,"in_reply_to":"ac02b738_cffa8b13","updated":"2024-09-09 05:14:00.000000000","message":"That\u0027s a good question, obviously it would require more work. I\u0027m not sure it\u0027s worth it for this small bug, but am curious what others think.","commit_id":"bbc936d5e78267c5a8ddc2517ef29307bda7346f"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"65f5e6129f9aba3e913a86a0e1a302e044854ad2","unresolved":true,"context_lines":[{"line_number":11,"context_line":"It will avoid declaration of RPCServer for Trunk and SubPort objects."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Introduce a new option agent side to control loading of trunk extension"},{"line_number":14,"context_line":"    - agent.trunk_enabled set to True as default"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-bug: #2058712"},{"line_number":17,"context_line":"Change-Id: I94602d5f3159d9a2d5b988c9ab6cdd20dfd4af5b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"f38c15d2_062002a9","line":14,"in_reply_to":"ed58c32e_a0adbc1f","updated":"2025-09-05 13:49:21.000000000","message":"I agree with the fact that there is no hurry regarding this, we disabled this extension on our side in order to reduce the number of queues neutron is creating on rabbitmq.\nThe trunk extension was creating many queues.\n\nWhat is the impact to go through an official l2_extensions? Is it worth?","commit_id":"bbc936d5e78267c5a8ddc2517ef29307bda7346f"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"15c613229fee24ae99c4907985f7fc337d543c99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"84298201_3eba57cb","updated":"2024-03-22 15:16:21.000000000","message":"Thanks for the fix!\n\nCan you also add a test and release note? https://review.opendev.org/c/openstack/neutron/+/780055 is a rough example with that.","commit_id":"6f03250b8c30d8e3ef15d0233d0e32b2502c4c27"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"5cb101fe4aa43a1751aa3a0f97b0c7917d79d2ab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"68b14505_0596ead4","updated":"2024-03-25 09:48:50.000000000","message":"I\u0027m wondering if this approach is best from a distributed systems perspective.\n\nThis way we make an agent restart depend on the server running and being able to answer rpc requests. An agent start is delayed until the server is up. A server start may unexpectedly lead to a storm of agent requests - all waiting for the server to come up.\n\nI have a recollection that in the past we handled similar situations by requiring configuration on both the server and agent side. For example for a feature that needs support both in server and agent, we explicitly load a service_plugin in the server and an agent_extension in the agent.\n\nProper deployment tools should be able to handle this trivially.","commit_id":"4587355873d7b4bdac0acd3ee595ab2c0480dc57"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f9fa4807908224fc2bcb1afb42ddced60dd952d2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5a38b94c_5a4e46fc","updated":"2024-03-25 08:46:19.000000000","message":"Looks ok\n\nrecheck\njob: neutron-functional-with-uwsgi\ntest: TestL3AgentNDPProxyExtensionDVR.test_dvr_ha_router_failover_with_gw\nerror: neutron.privileged.agent.linux.ip_lib.NetworkInterfaceNotFound","commit_id":"4587355873d7b4bdac0acd3ee595ab2c0480dc57"},{"author":{"_account_id":28627,"name":"Julien","email":"julien.cosmao@ovhcloud.com","username":"jcosmao"},"change_message_id":"42a24d450cb4a65a6a98e5cbe6f6aae381bca300","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"20e356dd_6d48d665","in_reply_to":"1c1dff4b_3295eaa2","updated":"2024-03-25 10:48:13.000000000","message":"good point.\ni don\u0027t know if such conf section already exist agent side.\notherwise, i can add \u0027agent_extension\u0027 like you suggest","commit_id":"4587355873d7b4bdac0acd3ee595ab2c0480dc57"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"fd5ab8c36abde438e0ef465198cfb1dfeac38ce9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"9150f5ab_3cd99511","in_reply_to":"20e356dd_6d48d665","updated":"2024-04-03 10:12:57.000000000","message":"Sorry for taking so much time to get back here.\n\nI believe the trunk implementation does not use the agent extension framework. It probably would be a huge undertaking to change that.\n\nHowever the configuration pattern is quite clear and we could have something similar for trunk. The QoS implementation for example uses the agent extension framework and has the following config:\n\n\\# for neutron-server to load qos related api resources\n[DEFAULT]\nservice_plugins \u003d qos,...\n\n\\# for neutron-server to load qos related attributes of core resources\n[ml2]\nextension_drivers \u003d qos,...\n\n\\# for neutron-l2-agent to load all qos support\n[agent]\nextensions \u003d qos,...\n\nSince the agents-side trunk implementation cannot fit into the already existing agent.extensions config option, what about agent.support_trunk? This should probably default to True, to avoid surprises during upgrades.\n\nWhat do you think?","commit_id":"4587355873d7b4bdac0acd3ee595ab2c0480dc57"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a1b636a4efc906875eae006323d4c2431e95c320","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1c1dff4b_3295eaa2","in_reply_to":"68b14505_0596ead4","updated":"2024-03-25 10:30:27.000000000","message":"That\u0027s a very good point and I now remember that too. I think this patch should be reconsidered based on this comment.","commit_id":"4587355873d7b4bdac0acd3ee595ab2c0480dc57"},{"author":{"_account_id":28627,"name":"Julien","email":"julien.cosmao@ovhcloud.com","username":"jcosmao"},"change_message_id":"157945bcfd4b098ee06b7e14138bae907436387f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c57e0bbd_8d286dfb","in_reply_to":"9150f5ab_3cd99511","updated":"2024-04-08 13:34:24.000000000","message":"i looked at this agent.extensions, and yes it does not fit well with trunk. Adding a new agent option here seems good.","commit_id":"4587355873d7b4bdac0acd3ee595ab2c0480dc57"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"8b4945e0ba4dccc93fe2758a9f192e2cdce728dc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5b258d4f_c9500984","updated":"2024-04-09 11:24:35.000000000","message":"Thanks for working on this, just update the relevant doc (see my inline comment)","commit_id":"bbc936d5e78267c5a8ddc2517ef29307bda7346f"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"3bbd5372f31386d8239c95f307f70301e35a8a03","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"41780480_2cec8fc4","updated":"2025-09-20 08:17:10.000000000","message":"recheck neutron-ovs-tempest-dvr-ha-multinode-full","commit_id":"e7364cfa6e467a80cb34cb5ece9974309c80abd5"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"add939f7263490a8228ebda06e66b7ef34c9d35b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"0cbf91c3_2e986433","updated":"2025-09-22 08:17:11.000000000","message":"this is a concurrency issue on workers.\nlet me work on this","commit_id":"358a22233541cb2dae5e4b1b9eaaad4f156b77fd"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"0644953a335b0356fd4b5b69ada477eef89f38ca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"7ad97fb8_a71d620e","updated":"2025-09-29 21:03:38.000000000","message":"I guess another way would have been to have an RPC to ask for loaded extensions, then only init what you need. But for just this one I\u0027m fine with it.","commit_id":"90d5b388e1faa51642e01f6f99de021ec31fde16"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5f1d971d3d723fff638d952ef03b15f40d820a7c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"668966f2_361f3a9d","updated":"2025-09-29 07:52:25.000000000","message":"thanks","commit_id":"90d5b388e1faa51642e01f6f99de021ec31fde16"}],"doc/source/admin/config-trunking.rst":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"0644953a335b0356fd4b5b69ada477eef89f38ca","unresolved":true,"context_lines":[{"line_number":84,"context_line":"  .. code-block:: ini"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"     [OVS]"},{"line_number":87,"context_line":"     trunk_enabled \u003d True"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Verify service operation"},{"line_number":90,"context_line":"------------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"1e75938b_f0fff4ab","line":87,"range":{"start_line":87,"start_character":21,"end_line":87,"end_character":25},"updated":"2025-09-29 21:03:38.000000000","message":"I guess I would have used False since it is overriding it.","commit_id":"90d5b388e1faa51642e01f6f99de021ec31fde16"}],"neutron/agent/rpc.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"15c613229fee24ae99c4907985f7fc337d543c99","unresolved":true,"context_lines":[{"line_number":127,"context_line":"              - update_device_up"},{"line_number":128,"context_line":"              - update_device_list (indirectly, called from update_device_down"},{"line_number":129,"context_line":"                and update_device_up)"},{"line_number":130,"context_line":"    \u0027\u0027\u0027"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def __init__(self, topic):"},{"line_number":133,"context_line":"        target \u003d oslo_messaging.Target(topic\u003dtopic, version\u003d\u00271.9\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"e042fc16_579ac810","line":130,"updated":"2024-03-22 15:16:21.000000000","message":"You will need to add a revision here.","commit_id":"6f03250b8c30d8e3ef15d0233d0e32b2502c4c27"},{"author":{"_account_id":28627,"name":"Julien","email":"julien.cosmao@ovhcloud.com","username":"jcosmao"},"change_message_id":"42a24d450cb4a65a6a98e5cbe6f6aae381bca300","unresolved":false,"context_lines":[{"line_number":127,"context_line":"              - update_device_up"},{"line_number":128,"context_line":"              - update_device_list (indirectly, called from update_device_down"},{"line_number":129,"context_line":"                and update_device_up)"},{"line_number":130,"context_line":"    \u0027\u0027\u0027"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def __init__(self, topic):"},{"line_number":133,"context_line":"        target \u003d oslo_messaging.Target(topic\u003dtopic, version\u003d\u00271.9\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"4580bd84_33c1328e","line":130,"in_reply_to":"e042fc16_579ac810","updated":"2024-03-25 10:48:13.000000000","message":"Acknowledged","commit_id":"6f03250b8c30d8e3ef15d0233d0e32b2502c4c27"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"15c613229fee24ae99c4907985f7fc337d543c99","unresolved":true,"context_lines":[{"line_number":174,"context_line":"                          agent_id\u003dagent_id, host\u003dhost)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def get_enabled_service_plugins(self, context):"},{"line_number":177,"context_line":"        cctxt \u003d self.client.prepare()"},{"line_number":178,"context_line":"        return cctxt.call(context, \u0027get_enabled_service_plugins\u0027)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def update_device_list(self, context, devices_up, devices_down,"}],"source_content_type":"text/x-python","patch_set":1,"id":"d0547195_768a4dc5","line":177,"updated":"2024-03-22 15:16:21.000000000","message":"And specify it in this call.","commit_id":"6f03250b8c30d8e3ef15d0233d0e32b2502c4c27"},{"author":{"_account_id":28627,"name":"Julien","email":"julien.cosmao@ovhcloud.com","username":"jcosmao"},"change_message_id":"42a24d450cb4a65a6a98e5cbe6f6aae381bca300","unresolved":false,"context_lines":[{"line_number":174,"context_line":"                          agent_id\u003dagent_id, host\u003dhost)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def get_enabled_service_plugins(self, context):"},{"line_number":177,"context_line":"        cctxt \u003d self.client.prepare()"},{"line_number":178,"context_line":"        return cctxt.call(context, \u0027get_enabled_service_plugins\u0027)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def update_device_list(self, context, devices_up, devices_down,"}],"source_content_type":"text/x-python","patch_set":1,"id":"d6f912fc_ce20d86b","line":177,"in_reply_to":"d0547195_768a4dc5","updated":"2024-03-25 10:48:13.000000000","message":"Acknowledged","commit_id":"6f03250b8c30d8e3ef15d0233d0e32b2502c4c27"}],"neutron/conf/agent/trunk.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2f4783ccf6db6760c8746814cac3c5b5482c8ad5","unresolved":true,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from neutron._i18n import _"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"AGENT_TRUNK_OPTS \u003d ["},{"line_number":18,"context_line":"    cfg.BoolOpt(\u0027trunk_enabled\u0027,"},{"line_number":19,"context_line":"                default\u003dTrue,"},{"line_number":20,"context_line":"                help\u003d_(\u0027Enable agent side trunk extension.\u0027)),"}],"source_content_type":"text/x-python","patch_set":4,"id":"9e4d0f05_d8975a3e","line":17,"updated":"2024-09-09 05:14:00.000000000","message":"If we decide to keep this here, there is additional work to be done so that it propagates into the config files that are built.\n\nsetup.cfg entry, like:\n\n   neutron.ml2.trunk \u003d neutron.opts:list_trunk_opts\n\nin the oslo.config.opts section\n\nAnd you\u0027d need to add that list_trunk_opts() function in that file following the format there.","commit_id":"bbc936d5e78267c5a8ddc2517ef29307bda7346f"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"27bfbed23d01b7d053a4bc04481df53be6af067f","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from neutron._i18n import _"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"AGENT_TRUNK_OPTS \u003d ["},{"line_number":18,"context_line":"    cfg.BoolOpt(\u0027trunk_enabled\u0027,"},{"line_number":19,"context_line":"                default\u003dTrue,"},{"line_number":20,"context_line":"                help\u003d_(\u0027Enable agent side trunk extension.\u0027)),"}],"source_content_type":"text/x-python","patch_set":4,"id":"e9665f51_149b069e","line":17,"in_reply_to":"33ab5230_4f58a7b0","updated":"2025-09-12 15:56:11.000000000","message":"I moved it to ovs_conf","commit_id":"bbc936d5e78267c5a8ddc2517ef29307bda7346f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f023afb072e4de83900038bf69289c4b8f35642f","unresolved":true,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from neutron._i18n import _"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"AGENT_TRUNK_OPTS \u003d ["},{"line_number":18,"context_line":"    cfg.BoolOpt(\u0027trunk_enabled\u0027,"},{"line_number":19,"context_line":"                default\u003dTrue,"},{"line_number":20,"context_line":"                help\u003d_(\u0027Enable agent side trunk extension.\u0027)),"}],"source_content_type":"text/x-python","patch_set":4,"id":"33ab5230_4f58a7b0","line":17,"in_reply_to":"9e4d0f05_d8975a3e","updated":"2024-09-09 05:18:25.000000000","message":"And I almost forgot, this would also require an entry in an etc/oslo-config-generator/ file","commit_id":"bbc936d5e78267c5a8ddc2517ef29307bda7346f"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"8b4945e0ba4dccc93fe2758a9f192e2cdce728dc","unresolved":true,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"AGENT_TRUNK_OPTS \u003d ["},{"line_number":18,"context_line":"    cfg.BoolOpt(\u0027trunk_enabled\u0027,"},{"line_number":19,"context_line":"                default\u003dTrue,"},{"line_number":20,"context_line":"                help\u003d_(\u0027Enable agent side trunk extension.\u0027)),"},{"line_number":21,"context_line":"]"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"39414bb9_189fa20b","line":19,"range":{"start_line":19,"start_character":24,"end_line":19,"end_character":28},"updated":"2024-04-09 11:24:35.000000000","message":"I am not sure that default True is good here as on server side the user explicitly has to add trunk to service_plugins list","commit_id":"bbc936d5e78267c5a8ddc2517ef29307bda7346f"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"f03cda355bd79965f66fed0dbe588f872b42a528","unresolved":true,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"AGENT_TRUNK_OPTS \u003d ["},{"line_number":18,"context_line":"    cfg.BoolOpt(\u0027trunk_enabled\u0027,"},{"line_number":19,"context_line":"                default\u003dTrue,"},{"line_number":20,"context_line":"                help\u003d_(\u0027Enable agent side trunk extension.\u0027)),"},{"line_number":21,"context_line":"]"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a8863e1_07e5c3bb","line":19,"range":{"start_line":19,"start_character":24,"end_line":19,"end_character":28},"in_reply_to":"39414bb9_189fa20b","updated":"2024-04-09 13:10:44.000000000","message":"Today we always load the agent side trunk support, so if the default had been False that could lead to the surprise of losing trunk support during an upgrade. So I believe we have to have default\u003dTrue here.","commit_id":"bbc936d5e78267c5a8ddc2517ef29307bda7346f"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"bd6f8733ae70cad167699cfe7217c6051ff48688","unresolved":true,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"AGENT_TRUNK_OPTS \u003d ["},{"line_number":18,"context_line":"    cfg.BoolOpt(\u0027trunk_enabled\u0027,"},{"line_number":19,"context_line":"                default\u003dTrue,"},{"line_number":20,"context_line":"                help\u003d_(\u0027Enable agent side trunk extension.\u0027)),"},{"line_number":21,"context_line":"]"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"89dc28f6_401318a1","line":19,"range":{"start_line":19,"start_character":24,"end_line":19,"end_character":28},"in_reply_to":"3a8863e1_07e5c3bb","updated":"2024-04-15 07:51:29.000000000","message":"ack, keep the default to True than","commit_id":"bbc936d5e78267c5a8ddc2517ef29307bda7346f"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"65f5e6129f9aba3e913a86a0e1a302e044854ad2","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"AGENT_TRUNK_OPTS \u003d ["},{"line_number":18,"context_line":"    cfg.BoolOpt(\u0027trunk_enabled\u0027,"},{"line_number":19,"context_line":"                default\u003dTrue,"},{"line_number":20,"context_line":"                help\u003d_(\u0027Enable agent side trunk extension.\u0027)),"},{"line_number":21,"context_line":"]"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ca4b1383_c7cabc1f","line":19,"range":{"start_line":19,"start_character":24,"end_line":19,"end_character":28},"in_reply_to":"89dc28f6_401318a1","updated":"2025-09-05 13:49:21.000000000","message":"Done","commit_id":"bbc936d5e78267c5a8ddc2517ef29307bda7346f"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"8b4945e0ba4dccc93fe2758a9f192e2cdce728dc","unresolved":true,"context_lines":[{"line_number":18,"context_line":"    cfg.BoolOpt(\u0027trunk_enabled\u0027,"},{"line_number":19,"context_line":"                default\u003dTrue,"},{"line_number":20,"context_line":"                help\u003d_(\u0027Enable agent side trunk extension.\u0027)),"},{"line_number":21,"context_line":"]"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def register_agent_trunk_extension_opts(cfg\u003dcfg.CONF):"}],"source_content_type":"text/x-python","patch_set":4,"id":"c0d83454_76bc9a78","line":21,"updated":"2024-04-09 11:24:35.000000000","message":"could you please update the related cfg doc also:\nhttps://opendev.org/openstack/neutron/src/branch/master/doc/source/admin/config-trunking.rst ?","commit_id":"bbc936d5e78267c5a8ddc2517ef29307bda7346f"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"27bfbed23d01b7d053a4bc04481df53be6af067f","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    cfg.BoolOpt(\u0027trunk_enabled\u0027,"},{"line_number":19,"context_line":"                default\u003dTrue,"},{"line_number":20,"context_line":"                help\u003d_(\u0027Enable agent side trunk extension.\u0027)),"},{"line_number":21,"context_line":"]"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def register_agent_trunk_extension_opts(cfg\u003dcfg.CONF):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bb426c9b_ac1b129f","line":21,"in_reply_to":"c0d83454_76bc9a78","updated":"2025-09-12 15:56:11.000000000","message":"done","commit_id":"bbc936d5e78267c5a8ddc2517ef29307bda7346f"}],"neutron/plugins/ml2/rpc.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"15c613229fee24ae99c4907985f7fc337d543c99","unresolved":true,"context_lines":[{"line_number":65,"context_line":"    #       - update_device_up"},{"line_number":66,"context_line":"    #       - update_device_list (indirectly, called from update_device_down"},{"line_number":67,"context_line":"    #         and update_device_up)"},{"line_number":68,"context_line":"    target \u003d oslo_messaging.Target(version\u003d\u00271.9\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def __init__(self, notifier, type_manager):"},{"line_number":71,"context_line":"        self.setup_tunnel_callback_mixin(notifier, type_manager)"}],"source_content_type":"text/x-python","patch_set":1,"id":"87972dc9_7ded63aa","line":68,"updated":"2024-03-22 15:16:21.000000000","message":"And here as well.","commit_id":"6f03250b8c30d8e3ef15d0233d0e32b2502c4c27"},{"author":{"_account_id":28627,"name":"Julien","email":"julien.cosmao@ovhcloud.com","username":"jcosmao"},"change_message_id":"42a24d450cb4a65a6a98e5cbe6f6aae381bca300","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    #       - update_device_up"},{"line_number":66,"context_line":"    #       - update_device_list (indirectly, called from update_device_down"},{"line_number":67,"context_line":"    #         and update_device_up)"},{"line_number":68,"context_line":"    target \u003d oslo_messaging.Target(version\u003d\u00271.9\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def __init__(self, notifier, type_manager):"},{"line_number":71,"context_line":"        self.setup_tunnel_callback_mixin(notifier, type_manager)"}],"source_content_type":"text/x-python","patch_set":1,"id":"8fd89a34_29f9f6b1","line":68,"in_reply_to":"87972dc9_7ded63aa","updated":"2024-03-25 10:48:13.000000000","message":"Acknowledged","commit_id":"6f03250b8c30d8e3ef15d0233d0e32b2502c4c27"}],"neutron/services/trunk/drivers/openvswitch/agent/driver.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2f4783ccf6db6760c8746814cac3c5b5482c8ad5","unresolved":true,"context_lines":[{"line_number":98,"context_line":"    \"\"\"Handler for agent init event.\"\"\""},{"line_number":99,"context_line":"    global TRUNK_SKELETON"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    if cfg.CONF.agent.trunk_enabled:"},{"line_number":102,"context_line":"        LOG.info(\"Registering Trunk extension\")"},{"line_number":103,"context_line":"        manager \u003d trunk_manager.TrunkManager(trigger.int_br)"},{"line_number":104,"context_line":"        handler \u003d ovsdb_handler.OVSDBHandler(manager)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5787ba15_62caa4e7","line":101,"updated":"2024-09-09 05:14:00.000000000","message":"If this is OVS agent specific, why can\u0027t it live with the other agent options? i.e. in neutron.conf.agent.ovs_conf.OPTS ?","commit_id":"bbc936d5e78267c5a8ddc2517ef29307bda7346f"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"27bfbed23d01b7d053a4bc04481df53be6af067f","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    \"\"\"Handler for agent init event.\"\"\""},{"line_number":99,"context_line":"    global TRUNK_SKELETON"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    if cfg.CONF.agent.trunk_enabled:"},{"line_number":102,"context_line":"        LOG.info(\"Registering Trunk extension\")"},{"line_number":103,"context_line":"        manager \u003d trunk_manager.TrunkManager(trigger.int_br)"},{"line_number":104,"context_line":"        handler \u003d ovsdb_handler.OVSDBHandler(manager)"}],"source_content_type":"text/x-python","patch_set":4,"id":"52164694_6cf0b495","line":101,"in_reply_to":"5787ba15_62caa4e7","updated":"2025-09-12 15:56:11.000000000","message":"Done","commit_id":"bbc936d5e78267c5a8ddc2517ef29307bda7346f"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"d7b4e04f48ad7b00aad96cc8b567699b1e85dfb2","unresolved":true,"context_lines":[{"line_number":95,"context_line":"    \"\"\"Handler for agent init event.\"\"\""},{"line_number":96,"context_line":"    global TRUNK_SKELETON"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    if cfg.CONF.agent.trunk_enabled:"},{"line_number":99,"context_line":"        LOG.info(\"Registering Trunk extension\")"},{"line_number":100,"context_line":"        manager \u003d trunk_manager.TrunkManager(trigger.int_br)"},{"line_number":101,"context_line":"        handler \u003d ovsdb_handler.OVSDBHandler(manager)"}],"source_content_type":"text/x-python","patch_set":7,"id":"c80f62a1_32666ed5","line":98,"range":{"start_line":98,"start_character":16,"end_line":98,"end_character":21},"updated":"2025-09-15 10:31:55.000000000","message":"you put the new option into the group OVS (same for the uni tests)","commit_id":"3c35c784f13925113bd76ea0eb8381436cd6f3ea"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"8d95365bd36b8da694461797606a55e570ec1a11","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    \"\"\"Handler for agent init event.\"\"\""},{"line_number":96,"context_line":"    global TRUNK_SKELETON"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    if cfg.CONF.agent.trunk_enabled:"},{"line_number":99,"context_line":"        LOG.info(\"Registering Trunk extension\")"},{"line_number":100,"context_line":"        manager \u003d trunk_manager.TrunkManager(trigger.int_br)"},{"line_number":101,"context_line":"        handler \u003d ovsdb_handler.OVSDBHandler(manager)"}],"source_content_type":"text/x-python","patch_set":7,"id":"38965680_8d7265d8","line":98,"range":{"start_line":98,"start_character":16,"end_line":98,"end_character":21},"in_reply_to":"c80f62a1_32666ed5","updated":"2025-09-19 13:17:30.000000000","message":"yes my bad 😊\nfixed!","commit_id":"3c35c784f13925113bd76ea0eb8381436cd6f3ea"}],"neutron/tests/unit/services/trunk/drivers/openvswitch/agent/test_driver.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"da0f6c03cc7d147b2a88838045e9d57501d368de","unresolved":true,"context_lines":[{"line_number":145,"context_line":"        driver.init_handler(mock.Mock(), mock.Mock(), mock.Mock(), None)"},{"line_number":146,"context_line":"        self.assertIsInstance(driver.TRUNK_SKELETON, driver.OVSTrunkSkeleton)"},{"line_number":147,"context_line":"        # Unset the driver to avoid race condition with other tests"},{"line_number":148,"context_line":"        driver.TRUNK_SKELETON \u003d None"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def test_init_handler_plugin_disabled(self):"},{"line_number":151,"context_line":"        cfg.CONF.set_override(\u0027trunk_enabled\u0027, False, group\u003d\u0027OVS\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"65cd9cde_2ccc6b30","line":148,"range":{"start_line":148,"start_character":8,"end_line":148,"end_character":36},"updated":"2025-09-23 12:04:38.000000000","message":"This can be in setUp also I think","commit_id":"9cc8de33b54c4181174515bbf2395975a7ab3e66"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"db6244444ab7a51f3d6bc03814ff3b608f917e9b","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        driver.init_handler(mock.Mock(), mock.Mock(), mock.Mock(), None)"},{"line_number":146,"context_line":"        self.assertIsInstance(driver.TRUNK_SKELETON, driver.OVSTrunkSkeleton)"},{"line_number":147,"context_line":"        # Unset the driver to avoid race condition with other tests"},{"line_number":148,"context_line":"        driver.TRUNK_SKELETON \u003d None"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def test_init_handler_plugin_disabled(self):"},{"line_number":151,"context_line":"        cfg.CONF.set_override(\u0027trunk_enabled\u0027, False, group\u003d\u0027OVS\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"2429f7d9_a8131075","line":148,"range":{"start_line":148,"start_character":8,"end_line":148,"end_character":36},"in_reply_to":"65cd9cde_2ccc6b30","updated":"2025-09-23 18:58:13.000000000","message":"you are totally right, and this look better. Done","commit_id":"9cc8de33b54c4181174515bbf2395975a7ab3e66"}]}
