)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"b46f290ede9f50179483ef123bb2ece01f78db15","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"39a69c6c_cc5e8410","updated":"2026-03-05 14:55:50.000000000","message":"I just removed trailing space from the spec. LGTM for me, thx for working on it","commit_id":"fda49b03682de3f8434a1725074530e2c6780a99"}],"specs/2026.1/pvlan-semantics-for-provider-networks.rst":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"919a9fbd11bec058e48c03466014acc825277562","unresolved":true,"context_lines":[{"line_number":14,"context_line":"Layer 2 forwarding constraints."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This spec describes how to implement the PVLAN mechanism by creating a service"},{"line_number":17,"context_line":"plugin on Neutron, that can be extensible to any ML2 plugin, but that will be"},{"line_number":18,"context_line":"mainly focused on the implementation of the ML2/OVN logic."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":5,"id":"6a6dcb0d_d8db1399","line":17,"range":{"start_line":17,"start_character":53,"end_line":17,"end_character":59},"updated":"2026-02-16 15:49:10.000000000","message":"nit: I would say \"any ML2 mechanism driver\" or \"to any backend\"","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"7f0c327f64f37cf58728f5625ea8f0935484cc92","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Layer 2 forwarding constraints."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This spec describes how to implement the PVLAN mechanism by creating a service"},{"line_number":17,"context_line":"plugin on Neutron, that can be extensible to any ML2 plugin, but that will be"},{"line_number":18,"context_line":"mainly focused on the implementation of the ML2/OVN logic."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":5,"id":"58e08bdc_62cda946","line":17,"range":{"start_line":17,"start_character":53,"end_line":17,"end_character":59},"in_reply_to":"6a6dcb0d_d8db1399","updated":"2026-02-17 09:52:17.000000000","message":"Done","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"919a9fbd11bec058e48c03466014acc825277562","unresolved":true,"context_lines":[{"line_number":23,"context_line":"Current implementations of Security Groups or other networking isolation tools"},{"line_number":24,"context_line":"do not comply with this security-focused approach to device isolation.  PVLAN"},{"line_number":25,"context_line":"is an established mechanism [1] that has well-defined boundaries and rules for"},{"line_number":26,"context_line":"consistent networking management. There is currently no way of replicating"},{"line_number":27,"context_line":"these boundaries and rules to achieve a consistent implementation of PVLAN in"},{"line_number":28,"context_line":"Neutron with existent plugins and/or extensions."},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"cacf57da_be2becec","line":26,"range":{"start_line":26,"start_character":34,"end_line":26,"end_character":74},"updated":"2026-02-16 15:49:10.000000000","message":"IMO if someone would be really determined to do so, they can do it for kind of established deployment with security groups but this approach would not be really flexible (not easy to change in the dynamic cloud environment) nor easy to understand for the cloud users.","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"7f0c327f64f37cf58728f5625ea8f0935484cc92","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Current implementations of Security Groups or other networking isolation tools"},{"line_number":24,"context_line":"do not comply with this security-focused approach to device isolation.  PVLAN"},{"line_number":25,"context_line":"is an established mechanism [1] that has well-defined boundaries and rules for"},{"line_number":26,"context_line":"consistent networking management. There is currently no way of replicating"},{"line_number":27,"context_line":"these boundaries and rules to achieve a consistent implementation of PVLAN in"},{"line_number":28,"context_line":"Neutron with existent plugins and/or extensions."},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"ecf2acbd_8830fd56","line":26,"range":{"start_line":26,"start_character":34,"end_line":26,"end_character":74},"in_reply_to":"cacf57da_be2becec","updated":"2026-02-17 09:52:17.000000000","message":"Done","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"919a9fbd11bec058e48c03466014acc825277562","unresolved":true,"context_lines":[{"line_number":83,"context_line":"Proposed Change"},{"line_number":84,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"A new service extension of Neutron that will be available for implementation in"},{"line_number":87,"context_line":"any driver."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":".. note:: The scope of this spec is to complete the driver implementation of"}],"source_content_type":"text/x-rst","patch_set":5,"id":"27b4e570_cfa2b9de","line":86,"range":{"start_line":86,"start_character":14,"end_line":86,"end_character":23},"updated":"2026-02-16 15:49:10.000000000","message":"plugin","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"7f0c327f64f37cf58728f5625ea8f0935484cc92","unresolved":false,"context_lines":[{"line_number":83,"context_line":"Proposed Change"},{"line_number":84,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"A new service extension of Neutron that will be available for implementation in"},{"line_number":87,"context_line":"any driver."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":".. note:: The scope of this spec is to complete the driver implementation of"}],"source_content_type":"text/x-rst","patch_set":5,"id":"c4b280d9_69dda703","line":86,"range":{"start_line":86,"start_character":14,"end_line":86,"end_character":23},"in_reply_to":"27b4e570_cfa2b9de","updated":"2026-02-17 09:52:17.000000000","message":"Done","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"919a9fbd11bec058e48c03466014acc825277562","unresolved":true,"context_lines":[{"line_number":83,"context_line":"Proposed Change"},{"line_number":84,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"A new service extension of Neutron that will be available for implementation in"},{"line_number":87,"context_line":"any driver."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":".. note:: The scope of this spec is to complete the driver implementation of"},{"line_number":90,"context_line":"   ML2/OVN. Any interested contributor is welcomed to implement the ML2/OVS"}],"source_content_type":"text/x-rst","patch_set":5,"id":"847286a6_f79a051c","line":87,"range":{"start_line":86,"start_character":35,"end_line":87,"end_character":10},"updated":"2026-02-16 15:49:10.000000000","message":"I would write something like \"that will implement new API extension and will be extensible by the various backend drivers\"","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"7f0c327f64f37cf58728f5625ea8f0935484cc92","unresolved":false,"context_lines":[{"line_number":83,"context_line":"Proposed Change"},{"line_number":84,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"A new service extension of Neutron that will be available for implementation in"},{"line_number":87,"context_line":"any driver."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":".. note:: The scope of this spec is to complete the driver implementation of"},{"line_number":90,"context_line":"   ML2/OVN. Any interested contributor is welcomed to implement the ML2/OVS"}],"source_content_type":"text/x-rst","patch_set":5,"id":"c26cf543_9262de21","line":87,"range":{"start_line":86,"start_character":35,"end_line":87,"end_character":10},"in_reply_to":"847286a6_f79a051c","updated":"2026-02-17 09:52:17.000000000","message":"Done","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"919a9fbd11bec058e48c03466014acc825277562","unresolved":true,"context_lines":[{"line_number":134,"context_line":"    If **pvlan_type\u003dcommunity** and it is the last port in the Port Group corresponding"},{"line_number":135,"context_line":"    to that community name, **remove that Port Group as well**."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":".. note:: The default value of pvlan_type should be false if pvlan is not enabled."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Other ML2/OVN Driver Implementation details"},{"line_number":140,"context_line":"-------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f391721_80abe4cd","line":137,"updated":"2026-02-16 15:49:10.000000000","message":"all that what you have described in the section above is related to the ML2/OVN backend driver really. Service plugin is responsible to implement API extension, do things like extend network or port object with those additional attributes, store them in the db, etc.\nAnd it is also responsible to call configured backend driver (like ovn in the initial implementation). That backend driver will be responsible for creating Port Groups, adding ports to the PGs, etc.","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"7f0c327f64f37cf58728f5625ea8f0935484cc92","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    If **pvlan_type\u003dcommunity** and it is the last port in the Port Group corresponding"},{"line_number":135,"context_line":"    to that community name, **remove that Port Group as well**."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":".. note:: The default value of pvlan_type should be false if pvlan is not enabled."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Other ML2/OVN Driver Implementation details"},{"line_number":140,"context_line":"-------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"aa025008_11c936b5","line":137,"in_reply_to":"1f391721_80abe4cd","updated":"2026-02-17 09:52:17.000000000","message":"Done","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"919a9fbd11bec058e48c03466014acc825277562","unresolved":true,"context_lines":[{"line_number":151,"context_line":"still exist (or we would create a similar one just for PVLAN logics, depending"},{"line_number":152,"context_line":"on what is best). This Port group would have the lowest priority. Security"},{"line_number":153,"context_line":"group rules could coexist with PVLAN after deciding whether secgroup ACLs"},{"line_number":154,"context_line":"should have higher or lower priority than PVLAN ACLs."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Remaining questions on Implementation"}],"source_content_type":"text/x-rst","patch_set":5,"id":"eaa33e6a_ab790759","line":154,"updated":"2026-02-16 15:49:10.000000000","message":"IMO: SG related ACLs should have lower priority to be processed after the PVLAN ones. That way PVLANs will work always as expected, no matter what SG rules will be configured for those ports.","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"7f0c327f64f37cf58728f5625ea8f0935484cc92","unresolved":false,"context_lines":[{"line_number":151,"context_line":"still exist (or we would create a similar one just for PVLAN logics, depending"},{"line_number":152,"context_line":"on what is best). This Port group would have the lowest priority. Security"},{"line_number":153,"context_line":"group rules could coexist with PVLAN after deciding whether secgroup ACLs"},{"line_number":154,"context_line":"should have higher or lower priority than PVLAN ACLs."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Remaining questions on Implementation"}],"source_content_type":"text/x-rst","patch_set":5,"id":"8e354711_825793dd","line":154,"in_reply_to":"eaa33e6a_ab790759","updated":"2026-02-17 09:52:17.000000000","message":"Done","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"919a9fbd11bec058e48c03466014acc825277562","unresolved":true,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"* What should be the default value of the pvlan_type for newly created"},{"line_number":161,"context_line":"  ports?"},{"line_number":162,"context_line":"  (egarciar): I think that if pvlan_type should default to isolated,"},{"line_number":163,"context_line":"  since we have a security approach in neutron that favours isolation."},{"line_number":164,"context_line":"  Furthermore, pvlan_mode should be None or False if we don\u0027t have the plugin"},{"line_number":165,"context_line":"  enabled. Once we enable the service plugin, we can set the default to true."}],"source_content_type":"text/x-rst","patch_set":5,"id":"f075089d_2eb4b06d","line":162,"range":{"start_line":162,"start_character":30,"end_line":162,"end_character":68},"updated":"2026-02-16 15:49:10.000000000","message":"I am not sure about this really. On one side it makes sense to make such ports to be isolated by default if pvlan is enabled in network but on the other side, this will \"break\" most common bahavior for ports in the same network which we have in neutron since forever - ports in the same network often are using default SG and then can talk to each other always. So I think I would vote for having them to be \"promiscous\" by default to not break connectivity for e.g. existing ports if you update network to enable pvlan.","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"7f0c327f64f37cf58728f5625ea8f0935484cc92","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"* What should be the default value of the pvlan_type for newly created"},{"line_number":161,"context_line":"  ports?"},{"line_number":162,"context_line":"  (egarciar): I think that if pvlan_type should default to isolated,"},{"line_number":163,"context_line":"  since we have a security approach in neutron that favours isolation."},{"line_number":164,"context_line":"  Furthermore, pvlan_mode should be None or False if we don\u0027t have the plugin"},{"line_number":165,"context_line":"  enabled. Once we enable the service plugin, we can set the default to true."}],"source_content_type":"text/x-rst","patch_set":5,"id":"580500e6_b84e8a38","line":162,"range":{"start_line":162,"start_character":30,"end_line":162,"end_character":68},"in_reply_to":"f075089d_2eb4b06d","updated":"2026-02-17 09:52:17.000000000","message":"Makes sense, I did not take that into account! It is sensible then for the default value to be promiscuous. I have deleted this question and added the defaults to each property on the API section.","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"919a9fbd11bec058e48c03466014acc825277562","unresolved":true,"context_lines":[{"line_number":162,"context_line":"  (egarciar): I think that if pvlan_type should default to isolated,"},{"line_number":163,"context_line":"  since we have a security approach in neutron that favours isolation."},{"line_number":164,"context_line":"  Furthermore, pvlan_mode should be None or False if we don\u0027t have the plugin"},{"line_number":165,"context_line":"  enabled. Once we enable the service plugin, we can set the default to true."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"* Should we disable arp_responder for LSP to be able to block that traffic too? Or maybe it is possible to configure OVN to respond to ARP traffic “selectively”?"},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"e9cad509_8bbc1ca7","line":165,"updated":"2026-02-16 15:49:10.000000000","message":"if the plugin is not loaded, there will be no pvlan_mode attribute visible at all in the API so we don\u0027t need to even consider such case in this spec. When plugin is enabled I think that the default value for this should be `false` for each new network.","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"7f0c327f64f37cf58728f5625ea8f0935484cc92","unresolved":false,"context_lines":[{"line_number":162,"context_line":"  (egarciar): I think that if pvlan_type should default to isolated,"},{"line_number":163,"context_line":"  since we have a security approach in neutron that favours isolation."},{"line_number":164,"context_line":"  Furthermore, pvlan_mode should be None or False if we don\u0027t have the plugin"},{"line_number":165,"context_line":"  enabled. Once we enable the service plugin, we can set the default to true."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"* Should we disable arp_responder for LSP to be able to block that traffic too? Or maybe it is possible to configure OVN to respond to ARP traffic “selectively”?"},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"77c603de_f26cd3ec","line":165,"in_reply_to":"e9cad509_8bbc1ca7","updated":"2026-02-17 09:52:17.000000000","message":"Done","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"919a9fbd11bec058e48c03466014acc825277562","unresolved":true,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"* (egarciar) I\u0027ve seen in the PoC we only use allow-stateless. Which action"},{"line_number":173,"context_line":"  should the final PVLAN ACLs use? Should we make that configurable? (allow /"},{"line_number":174,"context_line":"  allow-related / allow-stateless)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Upgrading"}],"source_content_type":"text/x-rst","patch_set":5,"id":"f20e29fe_fddaa3b8","line":174,"updated":"2026-02-16 15:49:10.000000000","message":"I think that we don\u0027t need to track state of the connection here so IMO stateless could be better in terms of the performance in some cases. Not all cases because if port is using stateful SG OVN will still do conntack lookup AFAIR so the perfomance will be as for the stateful ACLs but if SGs are also stateless it at least will not break the performance.","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"7f0c327f64f37cf58728f5625ea8f0935484cc92","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"* (egarciar) I\u0027ve seen in the PoC we only use allow-stateless. Which action"},{"line_number":173,"context_line":"  should the final PVLAN ACLs use? Should we make that configurable? (allow /"},{"line_number":174,"context_line":"  allow-related / allow-stateless)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Upgrading"}],"source_content_type":"text/x-rst","patch_set":5,"id":"8aff9804_581847c6","line":174,"in_reply_to":"f20e29fe_fddaa3b8","updated":"2026-02-17 09:52:17.000000000","message":"Done","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"919a9fbd11bec058e48c03466014acc825277562","unresolved":true,"context_lines":[{"line_number":172,"context_line":"* (egarciar) I\u0027ve seen in the PoC we only use allow-stateless. Which action"},{"line_number":173,"context_line":"  should the final PVLAN ACLs use? Should we make that configurable? (allow /"},{"line_number":174,"context_line":"  allow-related / allow-stateless)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Upgrading"},{"line_number":178,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"602429db_34039ec6","line":175,"updated":"2026-02-16 15:49:10.000000000","message":"Another question is: what we should do with ports with port_security disabled? IMO we should probably forbid having ports with disabled port security in the network with enabled pvlan as any other solution could be \"tricky\" probably. But maybe you will have another idea about it.","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"7f0c327f64f37cf58728f5625ea8f0935484cc92","unresolved":false,"context_lines":[{"line_number":172,"context_line":"* (egarciar) I\u0027ve seen in the PoC we only use allow-stateless. Which action"},{"line_number":173,"context_line":"  should the final PVLAN ACLs use? Should we make that configurable? (allow /"},{"line_number":174,"context_line":"  allow-related / allow-stateless)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Upgrading"},{"line_number":178,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"4d906b78_d1737edf","line":175,"in_reply_to":"602429db_34039ec6","updated":"2026-02-17 09:52:17.000000000","message":"I added this as a question, thanks","commit_id":"be00cf424effc7e8632ac6d001752cdeef3d58ff"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f8a03f4f55903a6b306fba4c7de04f707350927a","unresolved":true,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"RFE: https://bugs.launchpad.net/neutron/+bug/2138746"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Private VLAN (PVLAN) [1]_ is a device isolation mechanism through the application of special"},{"line_number":14,"context_line":"Layer 2 forwarding constraints."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This spec describes how to implement the PVLAN mechanism by creating a service"}],"source_content_type":"text/x-rst","patch_set":6,"id":"e9355869_ef2a21bb","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":92},"updated":"2026-02-17 16:04:16.000000000","message":"For this line and further ones, please limit the size to 80 chars.","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"4a878980a30462952f2479fa87ff0089a1549ce9","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"RFE: https://bugs.launchpad.net/neutron/+bug/2138746"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Private VLAN (PVLAN) [1]_ is a device isolation mechanism through the application of special"},{"line_number":14,"context_line":"Layer 2 forwarding constraints."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This spec describes how to implement the PVLAN mechanism by creating a service"}],"source_content_type":"text/x-rst","patch_set":6,"id":"e4b6c43b_b9c4ab86","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":92},"in_reply_to":"e9355869_ef2a21bb","updated":"2026-02-23 19:35:33.000000000","message":"Done","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"15d87534509f470561a5b13eb5047509b44f1ddc","unresolved":true,"context_lines":[{"line_number":23,"context_line":"Current implementations of Security Groups or other networking isolation tools"},{"line_number":24,"context_line":"do not comply with this security-focused approach to device isolation.  PVLAN"},{"line_number":25,"context_line":"is an established mechanism [1] that has well-defined boundaries and rules for"},{"line_number":26,"context_line":"consistent networking management. There is currently not an straight-forward"},{"line_number":27,"context_line":"way of replicating these boundaries and rules to achieve a consistent"},{"line_number":28,"context_line":"implementation of PVLAN in Neutron with existing plugins and/or extensions. A"},{"line_number":29,"context_line":"mix of security groups and security group rules could make a certain"}],"source_content_type":"text/x-rst","patch_set":6,"id":"a590a8fd_6c592901","line":26,"range":{"start_line":26,"start_character":57,"end_line":26,"end_character":59},"updated":"2026-02-20 08:47:06.000000000","message":"nit: an/a","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"4a878980a30462952f2479fa87ff0089a1549ce9","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Current implementations of Security Groups or other networking isolation tools"},{"line_number":24,"context_line":"do not comply with this security-focused approach to device isolation.  PVLAN"},{"line_number":25,"context_line":"is an established mechanism [1] that has well-defined boundaries and rules for"},{"line_number":26,"context_line":"consistent networking management. There is currently not an straight-forward"},{"line_number":27,"context_line":"way of replicating these boundaries and rules to achieve a consistent"},{"line_number":28,"context_line":"implementation of PVLAN in Neutron with existing plugins and/or extensions. A"},{"line_number":29,"context_line":"mix of security groups and security group rules could make a certain"}],"source_content_type":"text/x-rst","patch_set":6,"id":"977d2ac3_07b695c5","line":26,"range":{"start_line":26,"start_character":57,"end_line":26,"end_character":59},"in_reply_to":"a590a8fd_6c592901","updated":"2026-02-23 19:35:33.000000000","message":"Done","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"15d87534509f470561a5b13eb5047509b44f1ddc","unresolved":true,"context_lines":[{"line_number":36,"context_line":"Network attributes"},{"line_number":37,"context_line":"------------------"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* **pvlan_mode** `{{enabled | disabled}}`: enable PVLAN semantics on the provider network."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* **pvlan_domain** `{{ string }}`: groups ports into a single PVLAN broadcast"},{"line_number":42,"context_line":"  domain. In this case, it is equivalent to the **Network ID**."}],"source_content_type":"text/x-rst","patch_set":6,"id":"db8e1864_1f50cd93","line":39,"range":{"start_line":39,"start_character":4,"end_line":39,"end_character":14},"updated":"2026-02-20 08:47:06.000000000","message":"these will be visible on the API? Or just in the OVN db?","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"4a878980a30462952f2479fa87ff0089a1549ce9","unresolved":true,"context_lines":[{"line_number":36,"context_line":"Network attributes"},{"line_number":37,"context_line":"------------------"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* **pvlan_mode** `{{enabled | disabled}}`: enable PVLAN semantics on the provider network."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* **pvlan_domain** `{{ string }}`: groups ports into a single PVLAN broadcast"},{"line_number":42,"context_line":"  domain. In this case, it is equivalent to the **Network ID**."}],"source_content_type":"text/x-rst","patch_set":6,"id":"4f5e756c_9080b495","line":39,"range":{"start_line":39,"start_character":4,"end_line":39,"end_character":14},"in_reply_to":"db8e1864_1f50cd93","updated":"2026-02-23 19:35:33.000000000","message":"My idea is for this to be visible on the API since we could have networks with pvlan_mode enabled and networks without it that only use security groups.","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f8a03f4f55903a6b306fba4c7de04f707350927a","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* **pvlan_mode** `{{enabled | disabled}}`: enable PVLAN semantics on the provider network."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* **pvlan_domain** `{{ string }}`: groups ports into a single PVLAN broadcast"},{"line_number":42,"context_line":"  domain. In this case, it is equivalent to the **Network ID**."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Port attributes"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1d7d14a9_612f80ab","line":41,"range":{"start_line":41,"start_character":4,"end_line":41,"end_character":16},"updated":"2026-02-17 16:04:16.000000000","message":"What is this value?","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"4a878980a30462952f2479fa87ff0089a1549ce9","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* **pvlan_mode** `{{enabled | disabled}}`: enable PVLAN semantics on the provider network."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* **pvlan_domain** `{{ string }}`: groups ports into a single PVLAN broadcast"},{"line_number":42,"context_line":"  domain. In this case, it is equivalent to the **Network ID**."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Port attributes"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fefd5770_50c308ef","line":41,"range":{"start_line":41,"start_character":4,"end_line":41,"end_character":16},"in_reply_to":"1d7d14a9_612f80ab","updated":"2026-02-23 19:35:33.000000000","message":"I added this because it is part of the description of PVLAN in the PVLAN Cisco docs, for mapping with our environment: \"A PVLAN is a VLAN with configuration for Layer 2 isolation from other ports within the same broadcast domain or subnet. You can assign a specific set of ports within a PVLAN and thereby control access among the ports at Layer 2. You can configure PVLANs and normal VLANs on the same switch.\"\n\nIn our case I think this \"pvlan_domain\" would be 1:1 the same property as the neutron \"network\" (each network is its own pvlan_domain), therefore there is no need to add any logic behind it, and the identification of the pvlan_domain is the neutron ID itself. \n\nI hope I explained it better in this comment, let me know if it makes sense. Thanks!","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"74f18d2117c2132938a4d666bbcabaf764263811","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* **pvlan_mode** `{{enabled | disabled}}`: enable PVLAN semantics on the provider network."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* **pvlan_domain** `{{ string }}`: groups ports into a single PVLAN broadcast"},{"line_number":42,"context_line":"  domain. In this case, it is equivalent to the **Network ID**."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Port attributes"}],"source_content_type":"text/x-rst","patch_set":6,"id":"17ebf9f7_1cb6f915","line":41,"range":{"start_line":41,"start_character":4,"end_line":41,"end_character":16},"in_reply_to":"df20eeb5_1d327662","updated":"2026-02-27 10:22:37.000000000","message":"I think it should be simply there to make sure that it is enabled and that you can configure pvlan_mode and community for ports. If that is false for networks, we should not even add pvlan related attributes to the port object returned by API to not confuse users.","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"76a2b77a9f78ceeedfae90a543e12915c1e6b9ab","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* **pvlan_mode** `{{enabled | disabled}}`: enable PVLAN semantics on the provider network."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* **pvlan_domain** `{{ string }}`: groups ports into a single PVLAN broadcast"},{"line_number":42,"context_line":"  domain. In this case, it is equivalent to the **Network ID**."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Port attributes"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df20eeb5_1d327662","line":41,"range":{"start_line":41,"start_character":4,"end_line":41,"end_character":16},"in_reply_to":"fefd5770_50c308ef","updated":"2026-02-27 10:17:50.000000000","message":"But where are we using it then? If that will be the network ID, why storing it? Also I don\u0027t see it in the API changes.","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f8a03f4f55903a6b306fba4c7de04f707350927a","unresolved":true,"context_lines":[{"line_number":97,"context_line":"---------------"},{"line_number":98,"context_line":"As described before, there are new attributes present on both networks and ports."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"For **Network**"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* **pvlan_mode** - `boolean type`. Default: False."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"For **Port**:"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"e4cc41b5_149bc057","line":102,"range":{"start_line":100,"start_character":0,"end_line":102,"end_character":50},"updated":"2026-02-17 16:04:16.000000000","message":"Where are these attributes stored? If that requires a new table, please create the table reference (check other specs with DB changes).","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"4a878980a30462952f2479fa87ff0089a1549ce9","unresolved":true,"context_lines":[{"line_number":97,"context_line":"---------------"},{"line_number":98,"context_line":"As described before, there are new attributes present on both networks and ports."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"For **Network**"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* **pvlan_mode** - `boolean type`. Default: False."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"For **Port**:"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"2b90ffd2_383157bf","line":102,"range":{"start_line":100,"start_character":0,"end_line":102,"end_character":50},"in_reply_to":"58d1f52a_813ea7d3","updated":"2026-02-23 19:35:33.000000000","message":"Hi! I updated this creating a new version with examples, based on the spec in wallaby for port-forwarding port ranges. Let me know if I should further change/detail this.","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"15d87534509f470561a5b13eb5047509b44f1ddc","unresolved":true,"context_lines":[{"line_number":97,"context_line":"---------------"},{"line_number":98,"context_line":"As described before, there are new attributes present on both networks and ports."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"For **Network**"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* **pvlan_mode** - `boolean type`. Default: False."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"For **Port**:"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"58d1f52a_813ea7d3","line":102,"range":{"start_line":100,"start_character":0,"end_line":102,"end_character":50},"in_reply_to":"e4cc41b5_149bc057","updated":"2026-02-20 08:47:06.000000000","message":"+1, and also simple API example please","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f8a03f4f55903a6b306fba4c7de04f707350927a","unresolved":true,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* **pvlan_mode** - `boolean type`. Default: False."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"For **Port**:"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"* **pvlan_type** - `string type`. Allowed values: \"isolated\", \"community\", \"promiscuous\". Default: Promiscuous."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"* **pvlan_community** - `string type`. Allowed values: Any string that complies"},{"line_number":109,"context_line":"  with Port Group name restriction notes in OVN [5]_ — Names are ASCII and must"},{"line_number":110,"context_line":"  match ``[a-zA-Z_.][a-zA-Z_.0-9]*``. Default: None."},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"45363979_220ec562","line":108,"range":{"start_line":104,"start_character":0,"end_line":108,"end_character":23},"updated":"2026-02-17 16:04:16.000000000","message":"Ditto","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"4a878980a30462952f2479fa87ff0089a1549ce9","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* **pvlan_mode** - `boolean type`. Default: False."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"For **Port**:"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"* **pvlan_type** - `string type`. Allowed values: \"isolated\", \"community\", \"promiscuous\". Default: Promiscuous."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"* **pvlan_community** - `string type`. Allowed values: Any string that complies"},{"line_number":109,"context_line":"  with Port Group name restriction notes in OVN [5]_ — Names are ASCII and must"},{"line_number":110,"context_line":"  match ``[a-zA-Z_.][a-zA-Z_.0-9]*``. Default: None."},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"608ee496_1e96aa04","line":108,"range":{"start_line":104,"start_character":0,"end_line":108,"end_character":23},"in_reply_to":"45363979_220ec562","updated":"2026-02-23 19:35:33.000000000","message":"Done","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f8a03f4f55903a6b306fba4c7de04f707350927a","unresolved":true,"context_lines":[{"line_number":113,"context_line":"Service Plugin"},{"line_number":114,"context_line":"--------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The new service plugin ``pvlan`` will implement the API extension and will"},{"line_number":117,"context_line":"extend Neutron resources with the attributes needed for port and network. It"},{"line_number":118,"context_line":"will also define the new DB objects and will call the backend driver for the"},{"line_number":119,"context_line":"attribute operations (create / update / delete) implementation."}],"source_content_type":"text/x-rst","patch_set":6,"id":"65cc2f77_f8ade797","line":116,"range":{"start_line":116,"start_character":25,"end_line":116,"end_character":30},"updated":"2026-02-17 16:04:16.000000000","message":"I\u0027m a bit confused about this feature as a service plugin. Does it mean it could be possible to use it over any network type? For example, a geneve, VXLAN or VLAN network?\n\nWhat happens with the VLAN networks that have access to external resources? Will OVN tag the VM packets accordingly? Because if I\u0027m not wrong, a PVLAN network must have a primary VLAN ID and as many VLAN IDs as communities it has + another one for the isolated ports. But the implementation proposed in this spec does not use VLAN tags at all, just port groups to simulate the communication matrix between groups.","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"76a2b77a9f78ceeedfae90a543e12915c1e6b9ab","unresolved":true,"context_lines":[{"line_number":113,"context_line":"Service Plugin"},{"line_number":114,"context_line":"--------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The new service plugin ``pvlan`` will implement the API extension and will"},{"line_number":117,"context_line":"extend Neutron resources with the attributes needed for port and network. It"},{"line_number":118,"context_line":"will also define the new DB objects and will call the backend driver for the"},{"line_number":119,"context_line":"attribute operations (create / update / delete) implementation."}],"source_content_type":"text/x-rst","patch_set":6,"id":"72aecf39_1ff315f9","line":116,"range":{"start_line":116,"start_character":25,"end_line":116,"end_character":30},"in_reply_to":"3b2f1d5c_35d9d36d","updated":"2026-02-27 10:17:50.000000000","message":"Yeah, better to describe and document that this is only for internal ports and there is no possibility/compatibility with external PVLAN networks. That should be documented here too.","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f83deac9773afc2489c27e7187ffe2315a1dcafc","unresolved":true,"context_lines":[{"line_number":113,"context_line":"Service Plugin"},{"line_number":114,"context_line":"--------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The new service plugin ``pvlan`` will implement the API extension and will"},{"line_number":117,"context_line":"extend Neutron resources with the attributes needed for port and network. It"},{"line_number":118,"context_line":"will also define the new DB objects and will call the backend driver for the"},{"line_number":119,"context_line":"attribute operations (create / update / delete) implementation."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3b2f1d5c_35d9d36d","line":116,"range":{"start_line":116,"start_character":25,"end_line":116,"end_character":30},"in_reply_to":"65cc2f77_f8ade797","updated":"2026-02-25 10:54:10.000000000","message":"So my idea here was to have service plugin and be able to implement drivers for different backends. And initially to do backend driver which would implement PVLAN functionality based on the ACLs and PGs in OVN. For this driver it would be limited to the neutron ports, no matter of network type. But we would need to document that external ports connected e.g. to the VLAN network will not be \"part of the PVLAN\".\n\n\nNow, as I read your comment I think that this could be good candidate for another driver, something like \"ovn_vlan\" (name is not perfect for sure) which would be dedicated for different use case and implement things using nested VLANs probably - that way it would work with external ports but not with other network types except VLAN. But I didn\u0027t explore this case at all when I was doing PoC so it will require more investigations.\nMaybe we could even combine both in one \"ovn\" driver later and have it implemented differently for different network types, I don\u0027t know really what would be the best solution there. For sure our idea was to initially implement that based on the PGs and ACLs so that it will work for any network type but only for ports managed by Neutron.","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"44d0cc85a8951be7601d9d227ec699633ddeaf81","unresolved":false,"context_lines":[{"line_number":113,"context_line":"Service Plugin"},{"line_number":114,"context_line":"--------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The new service plugin ``pvlan`` will implement the API extension and will"},{"line_number":117,"context_line":"extend Neutron resources with the attributes needed for port and network. It"},{"line_number":118,"context_line":"will also define the new DB objects and will call the backend driver for the"},{"line_number":119,"context_line":"attribute operations (create / update / delete) implementation."}],"source_content_type":"text/x-rst","patch_set":6,"id":"451f0918_60c905fe","line":116,"range":{"start_line":116,"start_character":25,"end_line":116,"end_character":30},"in_reply_to":"72aecf39_1ff315f9","updated":"2026-03-02 14:37:15.000000000","message":"Done","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f8a03f4f55903a6b306fba4c7de04f707350927a","unresolved":true,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"The operations to be implemented are:"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* **Network create or update (enable pvlan_mode)** -"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        1. Create ``pvlan_drop_all``, ``pvlan_isolated`` and ``pvlan_promiscuous`` Port Groups for the network (Logical Switch)."},{"line_number":133,"context_line":"        2. Create ACLs for those Port Groups."}],"source_content_type":"text/x-rst","patch_set":6,"id":"524f372e_9b22d67b","line":130,"range":{"start_line":130,"start_character":22,"end_line":130,"end_character":28},"updated":"2026-02-17 16:04:16.000000000","message":"Will be possible to update this value? looks risky","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"4a878980a30462952f2479fa87ff0089a1549ce9","unresolved":true,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"The operations to be implemented are:"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* **Network create or update (enable pvlan_mode)** -"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        1. Create ``pvlan_drop_all``, ``pvlan_isolated`` and ``pvlan_promiscuous`` Port Groups for the network (Logical Switch)."},{"line_number":133,"context_line":"        2. Create ACLs for those Port Groups."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5b1f8fa9_22b0870b","line":130,"range":{"start_line":130,"start_character":22,"end_line":130,"end_character":28},"in_reply_to":"524f372e_9b22d67b","updated":"2026-02-23 19:35:33.000000000","message":"I think the idea would be that if this is deleted the port would be left with the default security group of the environment, although I guess it could have consequences I\u0027m not aware of. I have changed it to only create, I will check with Slawek since this was part of his initial proposal.","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f83deac9773afc2489c27e7187ffe2315a1dcafc","unresolved":true,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"The operations to be implemented are:"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* **Network create or update (enable pvlan_mode)** -"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        1. Create ``pvlan_drop_all``, ``pvlan_isolated`` and ``pvlan_promiscuous`` Port Groups for the network (Logical Switch)."},{"line_number":133,"context_line":"        2. Create ACLs for those Port Groups."}],"source_content_type":"text/x-rst","patch_set":6,"id":"90959e4f_275e3869","line":130,"range":{"start_line":130,"start_character":22,"end_line":130,"end_character":28},"in_reply_to":"5b1f8fa9_22b0870b","updated":"2026-02-25 10:54:10.000000000","message":"I don\u0027t really think it would be risky to allow updating it. If you disable it when updating the network we would need to simply check all ports in this network and remove pvlan_community and pvlan_type from those ports, and remove Port_Groups and ACLs related to that LS in OVN.\nIf you enable it on the existing network, all ports should be set to the promiscous mode by default so actually, from the user\u0027s PoV nothing will really change with connectivity - SG rules will be still the only ones limiting it in such network.","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f8a03f4f55903a6b306fba4c7de04f707350927a","unresolved":true,"context_lines":[{"line_number":130,"context_line":"* **Network create or update (enable pvlan_mode)** -"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        1. Create ``pvlan_drop_all``, ``pvlan_isolated`` and ``pvlan_promiscuous`` Port Groups for the network (Logical Switch)."},{"line_number":133,"context_line":"        2. Create ACLs for those Port Groups."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* **Network delete or update (disable pvlan_mode)** - delete ``pvlan_drop_all``, ``pvlan_isolated`` and ``pvlan_promiscuous`` Port Groups for the network (Logical Switch), delete ACLs created for those Port Groups."},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"0a37428b_6e774c91","line":133,"range":{"start_line":133,"start_character":11,"end_line":133,"end_character":44},"updated":"2026-02-17 16:04:16.000000000","message":"How these ACLs will be? can you provide examples?","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"4a878980a30462952f2479fa87ff0089a1549ce9","unresolved":false,"context_lines":[{"line_number":130,"context_line":"* **Network create or update (enable pvlan_mode)** -"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        1. Create ``pvlan_drop_all``, ``pvlan_isolated`` and ``pvlan_promiscuous`` Port Groups for the network (Logical Switch)."},{"line_number":133,"context_line":"        2. Create ACLs for those Port Groups."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* **Network delete or update (disable pvlan_mode)** - delete ``pvlan_drop_all``, ``pvlan_isolated`` and ``pvlan_promiscuous`` Port Groups for the network (Logical Switch), delete ACLs created for those Port Groups."},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"f8f2520d_537647fc","line":133,"range":{"start_line":133,"start_character":11,"end_line":133,"end_character":44},"in_reply_to":"0a37428b_6e774c91","updated":"2026-02-23 19:35:33.000000000","message":"Done!","commit_id":"2c9bd98f48eb2ecce1e5b4e107714383eede162e"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"6917280c3a777e78f3f301de14e5847e54f172b5","unresolved":true,"context_lines":[{"line_number":109,"context_line":"+----------------------------------+--------------------------------------+---------+--------+----------------+------------------+------------------+-------------------------+------+------+------------+"},{"line_number":110,"context_line":"| project_id                       | id                                   | name    | status | admin_state_up | vlan_transparent | standard_attr_id | availability_zone_hints | mtu  | qinq | pvlan_mode |"},{"line_number":111,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":112,"context_line":"| fb0e16da8ce7435c8a444647738e2166 | 2c1b70d6-1ffb-43e8-8069-53f5597c446e | net1    | ACTIVE |              1 |                0 |              719 | NULL                    | 1442 |    0 |  TRUE      |"},{"line_number":113,"context_line":"+----------------------------------+--------------------------------------+---------+--------+----------------+------------------+------------------+-------------------------+------+------+------------+"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":8,"id":"e8f6af8c_40e91941","line":112,"range":{"start_line":112,"start_character":191,"end_line":112,"end_character":195},"updated":"2026-02-25 15:39:05.000000000","message":"it will be 0 or 1 in DB AFAICT","commit_id":"2fc67b08da669f0f74cb256058381fc4cdba1afc"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"88bc81c6f9df54305865c26807db8f5dfb1a2181","unresolved":false,"context_lines":[{"line_number":109,"context_line":"+----------------------------------+--------------------------------------+---------+--------+----------------+------------------+------------------+-------------------------+------+------+------------+"},{"line_number":110,"context_line":"| project_id                       | id                                   | name    | status | admin_state_up | vlan_transparent | standard_attr_id | availability_zone_hints | mtu  | qinq | pvlan_mode |"},{"line_number":111,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":112,"context_line":"| fb0e16da8ce7435c8a444647738e2166 | 2c1b70d6-1ffb-43e8-8069-53f5597c446e | net1    | ACTIVE |              1 |                0 |              719 | NULL                    | 1442 |    0 |  TRUE      |"},{"line_number":113,"context_line":"+----------------------------------+--------------------------------------+---------+--------+----------------+------------------+------------------+-------------------------+------+------+------------+"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":8,"id":"8e42230c_11e5b9c6","line":112,"range":{"start_line":112,"start_character":191,"end_line":112,"end_character":195},"in_reply_to":"e8f6af8c_40e91941","updated":"2026-02-26 14:32:15.000000000","message":"Done","commit_id":"2fc67b08da669f0f74cb256058381fc4cdba1afc"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"6917280c3a777e78f3f301de14e5847e54f172b5","unresolved":true,"context_lines":[{"line_number":110,"context_line":"| project_id                       | id                                   | name    | status | admin_state_up | vlan_transparent | standard_attr_id | availability_zone_hints | mtu  | qinq | pvlan_mode |"},{"line_number":111,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":112,"context_line":"| fb0e16da8ce7435c8a444647738e2166 | 2c1b70d6-1ffb-43e8-8069-53f5597c446e | net1    | ACTIVE |              1 |                0 |              719 | NULL                    | 1442 |    0 |  TRUE      |"},{"line_number":113,"context_line":"+----------------------------------+--------------------------------------+---------+--------+----------------+------------------+------------------+-------------------------+------+------+------------+"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":".. code::"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"4bcbdab2_ba99681a","line":113,"updated":"2026-02-25 15:39:05.000000000","message":"maybe we should have new table for that, something like ``networkpvlan`` with columns ``network_id`` and ``pvlan`` which would be boolean value.","commit_id":"2fc67b08da669f0f74cb256058381fc4cdba1afc"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"88bc81c6f9df54305865c26807db8f5dfb1a2181","unresolved":false,"context_lines":[{"line_number":110,"context_line":"| project_id                       | id                                   | name    | status | admin_state_up | vlan_transparent | standard_attr_id | availability_zone_hints | mtu  | qinq | pvlan_mode |"},{"line_number":111,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":112,"context_line":"| fb0e16da8ce7435c8a444647738e2166 | 2c1b70d6-1ffb-43e8-8069-53f5597c446e | net1    | ACTIVE |              1 |                0 |              719 | NULL                    | 1442 |    0 |  TRUE      |"},{"line_number":113,"context_line":"+----------------------------------+--------------------------------------+---------+--------+----------------+------------------+------------------+-------------------------+------+------+------------+"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":".. code::"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"998dd84f_11220441","line":113,"in_reply_to":"4bcbdab2_ba99681a","updated":"2026-02-26 14:32:15.000000000","message":"Done","commit_id":"2fc67b08da669f0f74cb256058381fc4cdba1afc"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"6917280c3a777e78f3f301de14e5847e54f172b5","unresolved":true,"context_lines":[{"line_number":121,"context_line":"    \"network\": {"},{"line_number":122,"context_line":"        \"name\": \"pvlan-net-1\","},{"line_number":123,"context_line":"        \"admin_state_up\": true,"},{"line_number":124,"context_line":"        \"pvlan_mode\": true}"},{"line_number":125,"context_line":"    }"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7b388364_9965f394","line":124,"updated":"2026-02-25 15:39:05.000000000","message":"maybe in API we can name it just ``pvlan``, wdyt?","commit_id":"2fc67b08da669f0f74cb256058381fc4cdba1afc"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"88bc81c6f9df54305865c26807db8f5dfb1a2181","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    \"network\": {"},{"line_number":122,"context_line":"        \"name\": \"pvlan-net-1\","},{"line_number":123,"context_line":"        \"admin_state_up\": true,"},{"line_number":124,"context_line":"        \"pvlan_mode\": true}"},{"line_number":125,"context_line":"    }"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"0bbb2151_3fc10dac","line":124,"in_reply_to":"7b388364_9965f394","updated":"2026-02-26 14:32:15.000000000","message":"Sounds better indeed!","commit_id":"2fc67b08da669f0f74cb256058381fc4cdba1afc"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"6917280c3a777e78f3f301de14e5847e54f172b5","unresolved":true,"context_lines":[{"line_number":161,"context_line":"| 733a3eff9d39452d9bb4cdb339fa46a2 | 7abca15f-a19a-4f4d-a27c-b695ca1ec44b | port_pvlan1  | 8433d6f9-9cfa-4be4-8cf2-5f481ecda250 | fa:16:3e:11:89:d3 |              1 | DOWN   | f51da0f6-f1e2-48cb-b46d-d37a262f383e         |                          |               50 | immediate     | community  | community_1     |"},{"line_number":162,"context_line":"+----------------------------------+--------------------------------------+--------------+--------------------------------------+-------------------+----------------+--------+----------------------------------------------+--------------------------+------------------+---------------+------------+-----------------+"},{"line_number":163,"context_line":"| 733a3eff9d39452d9bb4cdb339fa46a2 | 7abca15f-a19a-4f4d-a27c-b695ca1ec44b | port_pvlan2  | 8433d6f9-9cfa-4be4-8cf2-5f481ecda250 | fa:16:3e:11:89:d3 |              1 | DOWN   |                                              |                          |               50 | immediate     | isolated   | NONE            |"},{"line_number":164,"context_line":"+----------------------------------+--------------------------------------+--------------+--------------------------------------+-------------------+----------------+--------+----------------------------------------------+--------------------------+------------------+---------------+------------+-----------------+"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":8,"id":"b9d54a9b_cad0ab37","line":164,"updated":"2026-02-25 15:39:05.000000000","message":"We may have separete table for that probably as we have for many other things already. Something like ``portpvlan`` with columns ``port_id``, ``pvlan_type`` and ``pvlan_community``","commit_id":"2fc67b08da669f0f74cb256058381fc4cdba1afc"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"88bc81c6f9df54305865c26807db8f5dfb1a2181","unresolved":false,"context_lines":[{"line_number":161,"context_line":"| 733a3eff9d39452d9bb4cdb339fa46a2 | 7abca15f-a19a-4f4d-a27c-b695ca1ec44b | port_pvlan1  | 8433d6f9-9cfa-4be4-8cf2-5f481ecda250 | fa:16:3e:11:89:d3 |              1 | DOWN   | f51da0f6-f1e2-48cb-b46d-d37a262f383e         |                          |               50 | immediate     | community  | community_1     |"},{"line_number":162,"context_line":"+----------------------------------+--------------------------------------+--------------+--------------------------------------+-------------------+----------------+--------+----------------------------------------------+--------------------------+------------------+---------------+------------+-----------------+"},{"line_number":163,"context_line":"| 733a3eff9d39452d9bb4cdb339fa46a2 | 7abca15f-a19a-4f4d-a27c-b695ca1ec44b | port_pvlan2  | 8433d6f9-9cfa-4be4-8cf2-5f481ecda250 | fa:16:3e:11:89:d3 |              1 | DOWN   |                                              |                          |               50 | immediate     | isolated   | NONE            |"},{"line_number":164,"context_line":"+----------------------------------+--------------------------------------+--------------+--------------------------------------+-------------------+----------------+--------+----------------------------------------------+--------------------------+------------------+---------------+------------+-----------------+"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":8,"id":"a425b416_3dfac2f6","line":164,"in_reply_to":"b9d54a9b_cad0ab37","updated":"2026-02-26 14:32:15.000000000","message":"Done","commit_id":"2fc67b08da669f0f74cb256058381fc4cdba1afc"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"6917280c3a777e78f3f301de14e5847e54f172b5","unresolved":true,"context_lines":[{"line_number":195,"context_line":"    }"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"The migration to this extension can be done with an alembic migration, where ``pvlan_mode`` in networks would become False, and ``pvlan_type`` would become promiscuous and  ``pvlan_community`` would be empty."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"An example of creating a new port with this new API extension would"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"85902112_8cdae5f3","line":198,"updated":"2026-02-25 15:39:05.000000000","message":"With new tables alembic migration would be easier as it would just need to create new tables and left them empty - if something is not there, we can treat it as it has default value","commit_id":"2fc67b08da669f0f74cb256058381fc4cdba1afc"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"88bc81c6f9df54305865c26807db8f5dfb1a2181","unresolved":false,"context_lines":[{"line_number":195,"context_line":"    }"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"The migration to this extension can be done with an alembic migration, where ``pvlan_mode`` in networks would become False, and ``pvlan_type`` would become promiscuous and  ``pvlan_community`` would be empty."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"An example of creating a new port with this new API extension would"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"c4f02726_1f596091","line":198,"in_reply_to":"85902112_8cdae5f3","updated":"2026-02-26 14:32:15.000000000","message":"Acknowledged","commit_id":"2fc67b08da669f0f74cb256058381fc4cdba1afc"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"6917280c3a777e78f3f301de14e5847e54f172b5","unresolved":true,"context_lines":[{"line_number":246,"context_line":""},{"line_number":247,"context_line":".. code-block:: sh"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    openstack network create --pvlan-mode net1"},{"line_number":250,"context_line":"    openstack port create --network net1 --pvlan-type isolated port1"},{"line_number":251,"context_line":"    openstack port create --network net1 --pvlan-type community --pvlan-community community1 port1"},{"line_number":252,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"d6505237_e23115d1","line":249,"updated":"2026-02-25 15:39:05.000000000","message":"I think it would be ``--enable-pvlan`` and ``--disable-pvlan`` but I don\u0027t think we need to include CLI examples here. The spec should be focused on the neutron server and API it provides, not the implementation in the client(s)","commit_id":"2fc67b08da669f0f74cb256058381fc4cdba1afc"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"88bc81c6f9df54305865c26807db8f5dfb1a2181","unresolved":false,"context_lines":[{"line_number":246,"context_line":""},{"line_number":247,"context_line":".. code-block:: sh"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    openstack network create --pvlan-mode net1"},{"line_number":250,"context_line":"    openstack port create --network net1 --pvlan-type isolated port1"},{"line_number":251,"context_line":"    openstack port create --network net1 --pvlan-type community --pvlan-community community1 port1"},{"line_number":252,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"eac934f9_dd63570d","line":249,"in_reply_to":"d6505237_e23115d1","updated":"2026-02-26 14:32:15.000000000","message":"Sure, I will delete this part then, thanks!","commit_id":"2fc67b08da669f0f74cb256058381fc4cdba1afc"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"6917280c3a777e78f3f301de14e5847e54f172b5","unresolved":true,"context_lines":[{"line_number":355,"context_line":"  stateless could be better in terms of the performance in some cases. Not all"},{"line_number":356,"context_line":"  cases because if port is using stateful SG OVN will still do conntack lookup"},{"line_number":357,"context_line":"  AFAIR so the perfomance will be as for the stateful ACLs but if SGs are also"},{"line_number":358,"context_line":"  stateless it at least will not break the performance"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"* What we should do with ports with port_security disabled?"},{"line_number":361,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"58766f6a_a9d2b0e9","line":358,"updated":"2026-02-25 15:39:05.000000000","message":"I think we don\u0027t need to keep that question and answer here and You can simply include information about choosen type of ACLs in the section above.","commit_id":"2fc67b08da669f0f74cb256058381fc4cdba1afc"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"88bc81c6f9df54305865c26807db8f5dfb1a2181","unresolved":false,"context_lines":[{"line_number":355,"context_line":"  stateless could be better in terms of the performance in some cases. Not all"},{"line_number":356,"context_line":"  cases because if port is using stateful SG OVN will still do conntack lookup"},{"line_number":357,"context_line":"  AFAIR so the perfomance will be as for the stateful ACLs but if SGs are also"},{"line_number":358,"context_line":"  stateless it at least will not break the performance"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"* What we should do with ports with port_security disabled?"},{"line_number":361,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a82786c_20b20045","line":358,"in_reply_to":"58766f6a_a9d2b0e9","updated":"2026-02-26 14:32:15.000000000","message":"done, thanks!","commit_id":"2fc67b08da669f0f74cb256058381fc4cdba1afc"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"d37715dfbc581c579c19fa57c3d4be181663cced","unresolved":true,"context_lines":[{"line_number":162,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":163,"context_line":"| 7abca15f-a19a-4f4d-a27c-b695ca1ec44b | community  | community_1     |"},{"line_number":164,"context_line":"+--------------------------------------+------------+-----------------+"},{"line_number":165,"context_line":"| 7abca15f-a19a-4f4d-a27c-b695ca1ec44b | isolated   | NONE            |"},{"line_number":166,"context_line":"+--------------------------------------+------------+-----------------+"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3eec14b4_9c3b950d","line":165,"updated":"2026-02-27 10:01:58.000000000","message":"it is nit but may be confusing for other readers later: you used the same uuid in both rows which suggests that same port can have different pvlan_types at the same time.","commit_id":"6bee9f8433b5033c22a50ec92dacca4a510fd7b9"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"44d0cc85a8951be7601d9d227ec699633ddeaf81","unresolved":false,"context_lines":[{"line_number":162,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":163,"context_line":"| 7abca15f-a19a-4f4d-a27c-b695ca1ec44b | community  | community_1     |"},{"line_number":164,"context_line":"+--------------------------------------+------------+-----------------+"},{"line_number":165,"context_line":"| 7abca15f-a19a-4f4d-a27c-b695ca1ec44b | isolated   | NONE            |"},{"line_number":166,"context_line":"+--------------------------------------+------------+-----------------+"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"690fc642_af29b06e","line":165,"in_reply_to":"3eec14b4_9c3b950d","updated":"2026-03-02 14:37:15.000000000","message":"oh no I did not realize! Thanks for pointing it out.","commit_id":"6bee9f8433b5033c22a50ec92dacca4a510fd7b9"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"76a2b77a9f78ceeedfae90a543e12915c1e6b9ab","unresolved":true,"context_lines":[{"line_number":214,"context_line":"        network.COLLECTION_NAME: {"},{"line_number":215,"context_line":"            pvlan_const.PVLAN_MODE: {"},{"line_number":216,"context_line":"                \u0027allow_post\u0027: True,"},{"line_number":217,"context_line":"                \u0027allow_put\u0027: False,"},{"line_number":218,"context_line":"                \u0027is_visible\u0027: True,"},{"line_number":219,"context_line":"                \u0027default\u0027: False,"},{"line_number":220,"context_line":"                \u0027enforce_policy\u0027: True,"}],"source_content_type":"text/x-rst","patch_set":9,"id":"d374c64b_fbf9af65","line":217,"range":{"start_line":217,"start_character":29,"end_line":217,"end_character":34},"updated":"2026-02-27 10:17:50.000000000","message":"If we are allowing the mode change, this should be `True`.","commit_id":"6bee9f8433b5033c22a50ec92dacca4a510fd7b9"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"44d0cc85a8951be7601d9d227ec699633ddeaf81","unresolved":false,"context_lines":[{"line_number":214,"context_line":"        network.COLLECTION_NAME: {"},{"line_number":215,"context_line":"            pvlan_const.PVLAN_MODE: {"},{"line_number":216,"context_line":"                \u0027allow_post\u0027: True,"},{"line_number":217,"context_line":"                \u0027allow_put\u0027: False,"},{"line_number":218,"context_line":"                \u0027is_visible\u0027: True,"},{"line_number":219,"context_line":"                \u0027default\u0027: False,"},{"line_number":220,"context_line":"                \u0027enforce_policy\u0027: True,"}],"source_content_type":"text/x-rst","patch_set":9,"id":"454e8f55_4c43a5e3","line":217,"range":{"start_line":217,"start_character":29,"end_line":217,"end_character":34},"in_reply_to":"d374c64b_fbf9af65","updated":"2026-03-02 14:37:15.000000000","message":"Done","commit_id":"6bee9f8433b5033c22a50ec92dacca4a510fd7b9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"33913c3158df9ca10a69bfcf0656ee1cdb190cd2","unresolved":true,"context_lines":[{"line_number":37,"context_line":"------------------"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* **pvlan** `{{enabled | disabled}}`: enable PVLAN semantics on the"},{"line_number":40,"context_line":"  provider network."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Port attributes"},{"line_number":43,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"6d50018d_a777aeb2","line":40,"range":{"start_line":40,"start_character":2,"end_line":40,"end_character":10},"updated":"2026-03-05 09:34:36.000000000","message":"sorry for nit picking but this can be used on any type of networks, not only provider network (which is vlan or flat network type)","commit_id":"2d4c54c04d631a886fbeff9fc88e438eed01e2f7"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"65ddb1a0fd83c3f0c0c2ad4f8d1bcbd1991b7536","unresolved":false,"context_lines":[{"line_number":37,"context_line":"------------------"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* **pvlan** `{{enabled | disabled}}`: enable PVLAN semantics on the"},{"line_number":40,"context_line":"  provider network."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Port attributes"},{"line_number":43,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"02bab92e_90052009","line":40,"range":{"start_line":40,"start_character":2,"end_line":40,"end_character":10},"in_reply_to":"6d50018d_a777aeb2","updated":"2026-03-05 14:09:16.000000000","message":"It\u0027s important to be correct on technical documentation so thanks a lot","commit_id":"2d4c54c04d631a886fbeff9fc88e438eed01e2f7"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"33913c3158df9ca10a69bfcf0656ee1cdb190cd2","unresolved":true,"context_lines":[{"line_number":48,"context_line":"      One port can only be part of one community."},{"line_number":49,"context_line":"    + **Isolated:** Can only reach promiscuous, if any."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* **Community label** (if applies) `{{ uuid }}`: To subgroup community ports"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"In the following diagram taken from the OVN proof-of-concept [4]_ we can"},{"line_number":54,"context_line":"understand how the different VMs would be configured depending on their role."}],"source_content_type":"text/x-rst","patch_set":12,"id":"a11f262d_7dbdec17","line":51,"range":{"start_line":51,"start_character":39,"end_line":51,"end_character":43},"updated":"2026-03-05 09:34:36.000000000","message":"IIUC Cisco\u0027s RFE about that, technicaly in Cisco\u0027s implementation it is vlan_id so has to be integer. But I think we can allow users to use any string as community name, it don\u0027t need to be uuid I think.","commit_id":"2d4c54c04d631a886fbeff9fc88e438eed01e2f7"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"65ddb1a0fd83c3f0c0c2ad4f8d1bcbd1991b7536","unresolved":false,"context_lines":[{"line_number":48,"context_line":"      One port can only be part of one community."},{"line_number":49,"context_line":"    + **Isolated:** Can only reach promiscuous, if any."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* **Community label** (if applies) `{{ uuid }}`: To subgroup community ports"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"In the following diagram taken from the OVN proof-of-concept [4]_ we can"},{"line_number":54,"context_line":"understand how the different VMs would be configured depending on their role."}],"source_content_type":"text/x-rst","patch_set":12,"id":"c04fed0c_10e32857","line":51,"range":{"start_line":51,"start_character":39,"end_line":51,"end_character":43},"in_reply_to":"a11f262d_7dbdec17","updated":"2026-03-05 14:09:16.000000000","message":"It does make sense for it to be string. Thanks!","commit_id":"2d4c54c04d631a886fbeff9fc88e438eed01e2f7"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"33913c3158df9ca10a69bfcf0656ee1cdb190cd2","unresolved":true,"context_lines":[{"line_number":161,"context_line":"| 7abca15f-a19a-4f4d-a27c-b695ca1ec44b | community  | community_1     |"},{"line_number":162,"context_line":"+--------------------------------------+------------+-----------------+"},{"line_number":163,"context_line":"| e66abfad-a681-4a90-a6f7-8efe5e4bd2ae | isolated   | NONE            |"},{"line_number":164,"context_line":"+--------------------------------------+------------+-----------------+"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":12,"id":"a4b1c4df_ebf6cc94","line":164,"updated":"2026-03-05 09:34:36.000000000","message":"No action needed, just a comment for now:\nFor now this is ok and we can left it as such but in the future, in case we would want to implement another backend driver which would implement PVLANs based on the nested VLANs (see Rodolfo\u0027s suggestion in one of the previous patch sets), then we may need to add additional table to map (network_id, community_id) to the VLAN_ID used internally.","commit_id":"2d4c54c04d631a886fbeff9fc88e438eed01e2f7"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"65ddb1a0fd83c3f0c0c2ad4f8d1bcbd1991b7536","unresolved":true,"context_lines":[{"line_number":161,"context_line":"| 7abca15f-a19a-4f4d-a27c-b695ca1ec44b | community  | community_1     |"},{"line_number":162,"context_line":"+--------------------------------------+------------+-----------------+"},{"line_number":163,"context_line":"| e66abfad-a681-4a90-a6f7-8efe5e4bd2ae | isolated   | NONE            |"},{"line_number":164,"context_line":"+--------------------------------------+------------+-----------------+"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3bbf6a7b_b65a5f53","line":164,"in_reply_to":"a4b1c4df_ebf6cc94","updated":"2026-03-05 14:09:16.000000000","message":"Ack","commit_id":"2d4c54c04d631a886fbeff9fc88e438eed01e2f7"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"33913c3158df9ca10a69bfcf0656ee1cdb190cd2","unresolved":true,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"The migration to this extension can be done with an alembic migration, but it"},{"line_number":199,"context_line":"would be easy as the new tables make it possible to just leave them empty if"},{"line_number":200,"context_line":"the plugin is not active."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"Sub Resource Extension"}],"source_content_type":"text/x-rst","patch_set":12,"id":"8ffa3b34_8ab4060a","line":200,"updated":"2026-03-05 09:34:36.000000000","message":"I don\u0027t think we need such kind of \"comments\" in the spec itself.","commit_id":"2d4c54c04d631a886fbeff9fc88e438eed01e2f7"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"65ddb1a0fd83c3f0c0c2ad4f8d1bcbd1991b7536","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"The migration to this extension can be done with an alembic migration, but it"},{"line_number":199,"context_line":"would be easy as the new tables make it possible to just leave them empty if"},{"line_number":200,"context_line":"the plugin is not active."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"Sub Resource Extension"}],"source_content_type":"text/x-rst","patch_set":12,"id":"d92c7acf_51fd6052","line":200,"in_reply_to":"8ffa3b34_8ab4060a","updated":"2026-03-05 14:09:16.000000000","message":"Done","commit_id":"2d4c54c04d631a886fbeff9fc88e438eed01e2f7"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"33913c3158df9ca10a69bfcf0656ee1cdb190cd2","unresolved":true,"context_lines":[{"line_number":249,"context_line":"attribute operations (create / update / delete) implementation."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":".. warning:: Note that this plugin is inteded for internal ports and there is"},{"line_number":252,"context_line":"   no compatibility with external PVLAN networks."},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"ML2/OVN Driver Implementation details"},{"line_number":255,"context_line":"-------------------------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"1ecbd302_dd5f699b","line":252,"updated":"2026-03-05 09:34:36.000000000","message":"I would change that as service plugin has nothing to do with external PVLANs really. It is more about backend driver and the one which we want to implement currently, based on the ACLs will not be compatible with external ports outside of the OpenStack.","commit_id":"2d4c54c04d631a886fbeff9fc88e438eed01e2f7"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"65ddb1a0fd83c3f0c0c2ad4f8d1bcbd1991b7536","unresolved":false,"context_lines":[{"line_number":249,"context_line":"attribute operations (create / update / delete) implementation."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":".. warning:: Note that this plugin is inteded for internal ports and there is"},{"line_number":252,"context_line":"   no compatibility with external PVLAN networks."},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"ML2/OVN Driver Implementation details"},{"line_number":255,"context_line":"-------------------------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7e35619f_dd0fa21f","line":252,"in_reply_to":"1ecbd302_dd5f699b","updated":"2026-03-05 14:09:16.000000000","message":"ack, moved it to ML2/OVN Driver Implementation details and changed the text for better understanding.","commit_id":"2d4c54c04d631a886fbeff9fc88e438eed01e2f7"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"33913c3158df9ca10a69bfcf0656ee1cdb190cd2","unresolved":true,"context_lines":[{"line_number":342,"context_line":""},{"line_number":343,"context_line":"* Should we disable arp_responder for LSP to be able to block that traffic too?"},{"line_number":344,"context_line":"  Or maybe it is possible to configure OVN to respond to ARP traffic"},{"line_number":345,"context_line":"  “selectively”?"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"* Would pg_drop_group be different to the general drop port group of PVLAN or"},{"line_number":348,"context_line":"  can we use the same one?"}],"source_content_type":"text/x-rst","patch_set":12,"id":"67c9e28d_0b8e863c","line":345,"updated":"2026-03-05 09:34:36.000000000","message":"no action needed for now but we may need to talk with OVN devs about that one at some point","commit_id":"2d4c54c04d631a886fbeff9fc88e438eed01e2f7"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"65ddb1a0fd83c3f0c0c2ad4f8d1bcbd1991b7536","unresolved":true,"context_lines":[{"line_number":342,"context_line":""},{"line_number":343,"context_line":"* Should we disable arp_responder for LSP to be able to block that traffic too?"},{"line_number":344,"context_line":"  Or maybe it is possible to configure OVN to respond to ARP traffic"},{"line_number":345,"context_line":"  “selectively”?"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"* Would pg_drop_group be different to the general drop port group of PVLAN or"},{"line_number":348,"context_line":"  can we use the same one?"}],"source_content_type":"text/x-rst","patch_set":12,"id":"980eafb7_81a8c2a3","line":345,"in_reply_to":"67c9e28d_0b8e863c","updated":"2026-03-05 14:09:16.000000000","message":"Ack","commit_id":"2d4c54c04d631a886fbeff9fc88e438eed01e2f7"}]}
