)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"9c1820f05b9f6087e58fbbea66031cc1280abadc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"2e9ae05d_ba4874bb","updated":"2023-03-11 03:48:22.000000000","message":"recheck","commit_id":"b60cc5e015ba86e9ba631aa4d206b718c271e643"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0746dcf6960fa535be205a4e482549abecf79bbf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"bfb81e9e_23f8e31f","updated":"2023-10-18 15:13:52.000000000","message":"I beleive we can push this","commit_id":"6c911b13e7ed8731f1b964dd442df6ddae0e51db"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ff95e73d634553fdad52495c008af8b8bed497e3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e4a7711f_cd14fc28","updated":"2023-12-01 18:17:04.000000000","message":"Should also have a release note as it\u0027s adding a new option","commit_id":"6c911b13e7ed8731f1b964dd442df6ddae0e51db"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0bf24b4f4ba2ca65bbb2e39bbd1b11ab335173d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2cb21884_509a73fb","updated":"2023-05-23 07:40:45.000000000","message":"recheck","commit_id":"6c911b13e7ed8731f1b964dd442df6ddae0e51db"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d8f5742820501b29566d7a4faebe57e14c8e4fa5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"981a2b37_4aa1d3ab","in_reply_to":"e4a7711f_cd14fc28","updated":"2023-12-05 08:19:17.000000000","message":"Done","commit_id":"6c911b13e7ed8731f1b964dd442df6ddae0e51db"}],"neutron/conf/plugins/ml2/drivers/ovs_conf.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"717c71b38fef3266ce64c719814f855a9a21d1cc","unresolved":true,"context_lines":[{"line_number":64,"context_line":"                       \"mapping, make sure to disconnect it from the \""},{"line_number":65,"context_line":"                       \"integration bridge as it won\u0027t be managed by the \""},{"line_number":66,"context_line":"                       \"agent anymore.\")),"},{"line_number":67,"context_line":"    cfg.ListOpt(\u0027bridge_port_mappings\u0027,"},{"line_number":68,"context_line":"                default\u003dDEFAULT_BRIDGE_PORT_MAPPINGS,"},{"line_number":69,"context_line":"                help\u003d_(\"Comma-separated list of \u003cbridge\u003e:\u003cphysical_port\u003e \""},{"line_number":70,"context_line":"                       \"tuples mapping Open vSwitch bridge names to \""}],"source_content_type":"text/x-python","patch_set":2,"id":"b650b3e1_7dbae00c","line":67,"range":{"start_line":67,"start_character":17,"end_line":67,"end_character":37},"updated":"2023-01-30 10:23:57.000000000","message":"all bridges must be listed here?\nIf I understand well only physical bridges, so the cfg option name should reflect this, no?","commit_id":"b17a6409052bd54bd312c42dac657b5b3dbecb67"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0d8191b60e2d12e9e2e0a9647f2b425028112bcc","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                       \"mapping, make sure to disconnect it from the \""},{"line_number":65,"context_line":"                       \"integration bridge as it won\u0027t be managed by the \""},{"line_number":66,"context_line":"                       \"agent anymore.\")),"},{"line_number":67,"context_line":"    cfg.ListOpt(\u0027bridge_port_mappings\u0027,"},{"line_number":68,"context_line":"                default\u003dDEFAULT_BRIDGE_PORT_MAPPINGS,"},{"line_number":69,"context_line":"                help\u003d_(\"Comma-separated list of \u003cbridge\u003e:\u003cphysical_port\u003e \""},{"line_number":70,"context_line":"                       \"tuples mapping Open vSwitch bridge names to \""}],"source_content_type":"text/x-python","patch_set":2,"id":"048457f4_ee7bc2bb","line":67,"range":{"start_line":67,"start_character":17,"end_line":67,"end_character":37},"in_reply_to":"3e5c8240_371079a9","updated":"2023-03-09 01:23:31.000000000","message":"Done, help context updated.","commit_id":"b17a6409052bd54bd312c42dac657b5b3dbecb67"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3c9d9826825280a3d29bc4d41d0c690a7dede99a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                       \"mapping, make sure to disconnect it from the \""},{"line_number":65,"context_line":"                       \"integration bridge as it won\u0027t be managed by the \""},{"line_number":66,"context_line":"                       \"agent anymore.\")),"},{"line_number":67,"context_line":"    cfg.ListOpt(\u0027bridge_port_mappings\u0027,"},{"line_number":68,"context_line":"                default\u003dDEFAULT_BRIDGE_PORT_MAPPINGS,"},{"line_number":69,"context_line":"                help\u003d_(\"Comma-separated list of \u003cbridge\u003e:\u003cphysical_port\u003e \""},{"line_number":70,"context_line":"                       \"tuples mapping Open vSwitch bridge names to \""}],"source_content_type":"text/x-python","patch_set":2,"id":"3e5c8240_371079a9","line":67,"range":{"start_line":67,"start_character":17,"end_line":67,"end_character":37},"in_reply_to":"b650b3e1_7dbae00c","updated":"2023-03-09 01:17:26.000000000","message":"Yes, only physical bridges and its attched physical ports.","commit_id":"b17a6409052bd54bd312c42dac657b5b3dbecb67"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"127a4bb56e1b907035554a474393f9dfc5e10b91","unresolved":true,"context_lines":[{"line_number":69,"context_line":"                help\u003d_(\"Comma-separated list of \u003cbridge\u003e:\u003cphysical_port\u003e \""},{"line_number":70,"context_line":"                       \"tuples mapping Open vSwitch bridge names to \""},{"line_number":71,"context_line":"                       \"node-specific NIC/Bond names to be used \""},{"line_number":72,"context_line":"                       \"for flat and VLAN networks.\")),"},{"line_number":73,"context_line":"    cfg.ListOpt(\u0027resource_provider_bandwidths\u0027,"},{"line_number":74,"context_line":"                default\u003d[],"},{"line_number":75,"context_line":"                help\u003d_(\"Comma-separated list of \""}],"source_content_type":"text/x-python","patch_set":2,"id":"69ee7ff6_868fe6f0","line":72,"updated":"2023-02-07 18:09:01.000000000","message":"do we need config option for that? Why not try to discover them during the agent\u0027s start? In physical bridge we should have:\n\n- physical interface,\n- patch port to br-int (created by neutron-ovs-agent so it\u0027s known and can be filterer)\n- port with the same name as bridge so can be filtered out also\n\nIn that way we can add method which will discover MACs of the physical interfaces of the phys bridges and operator will not need to configure another extra thing.","commit_id":"b17a6409052bd54bd312c42dac657b5b3dbecb67"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3c9d9826825280a3d29bc4d41d0c690a7dede99a","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                help\u003d_(\"Comma-separated list of \u003cbridge\u003e:\u003cphysical_port\u003e \""},{"line_number":70,"context_line":"                       \"tuples mapping Open vSwitch bridge names to \""},{"line_number":71,"context_line":"                       \"node-specific NIC/Bond names to be used \""},{"line_number":72,"context_line":"                       \"for flat and VLAN networks.\")),"},{"line_number":73,"context_line":"    cfg.ListOpt(\u0027resource_provider_bandwidths\u0027,"},{"line_number":74,"context_line":"                default\u003d[],"},{"line_number":75,"context_line":"                help\u003d_(\"Comma-separated list of \""}],"source_content_type":"text/x-python","patch_set":2,"id":"62002a9e_7fdcdef2","line":72,"in_reply_to":"69ee7ff6_868fe6f0","updated":"2023-03-09 01:17:26.000000000","message":"Yes, it is a good idea. But we may still need some explicit config option to enable the direct flows, because this should be set for DVR typically.","commit_id":"b17a6409052bd54bd312c42dac657b5b3dbecb67"}],"neutron/plugins/ml2/common/constants.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"127a4bb56e1b907035554a474393f9dfc5e10b91","unresolved":true,"context_lines":[{"line_number":35,"context_line":"PHYSICAL_INRESS_OUTPUT \u003d 4"},{"line_number":36,"context_line":"PHYSICAL_INRESS_NORMAL \u003d 5"},{"line_number":37,"context_line":"PHYSICAL_EGRESS_OUTPUT \u003d 6"},{"line_number":38,"context_line":"PHYSICAL_EGRESS_NORMAL \u003d 7"}],"source_content_type":"text/x-python","patch_set":2,"id":"1489d952_d0e5555a","line":38,"updated":"2023-02-07 18:09:01.000000000","message":"shouldn\u0027t those go to neutron-lib?","commit_id":"b17a6409052bd54bd312c42dac657b5b3dbecb67"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"55bdee09e8f931fc5baaad6b977da87938a12f1f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"PHYSICAL_INRESS_OUTPUT \u003d 4"},{"line_number":36,"context_line":"PHYSICAL_INRESS_NORMAL \u003d 5"},{"line_number":37,"context_line":"PHYSICAL_EGRESS_OUTPUT \u003d 6"},{"line_number":38,"context_line":"PHYSICAL_EGRESS_NORMAL \u003d 7"}],"source_content_type":"text/x-python","patch_set":2,"id":"f5635b41_2f873cd0","line":38,"in_reply_to":"1489d952_d0e5555a","updated":"2023-03-09 01:19:31.000000000","message":"These should go to neutron-lib, clould we move these later?","commit_id":"b17a6409052bd54bd312c42dac657b5b3dbecb67"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ff95e73d634553fdad52495c008af8b8bed497e3","unresolved":true,"context_lines":[{"line_number":32,"context_line":"METER_FLAG_BPS \u003d \"bps\""},{"line_number":33,"context_line":"METER_FLAG_PPS \u003d \"pps\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"PHYSICAL_INRESS_OUTPUT \u003d 4"},{"line_number":36,"context_line":"PHYSICAL_INRESS_NORMAL \u003d 5"},{"line_number":37,"context_line":"PHYSICAL_EGRESS_OUTPUT \u003d 6"},{"line_number":38,"context_line":"PHYSICAL_EGRESS_NORMAL \u003d 7"}],"source_content_type":"text/x-python","patch_set":4,"id":"846a9f4b_20e5e83a","line":35,"range":{"start_line":35,"start_character":9,"end_line":35,"end_character":15},"updated":"2023-12-01 18:17:04.000000000","message":"INGRESS - of course changing this requires updating all the other files...","commit_id":"6c911b13e7ed8731f1b964dd442df6ddae0e51db"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d8f5742820501b29566d7a4faebe57e14c8e4fa5","unresolved":false,"context_lines":[{"line_number":32,"context_line":"METER_FLAG_BPS \u003d \"bps\""},{"line_number":33,"context_line":"METER_FLAG_PPS \u003d \"pps\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"PHYSICAL_INRESS_OUTPUT \u003d 4"},{"line_number":36,"context_line":"PHYSICAL_INRESS_NORMAL \u003d 5"},{"line_number":37,"context_line":"PHYSICAL_EGRESS_OUTPUT \u003d 6"},{"line_number":38,"context_line":"PHYSICAL_EGRESS_NORMAL \u003d 7"}],"source_content_type":"text/x-python","patch_set":4,"id":"5627877a_578f6b8b","line":35,"range":{"start_line":35,"start_character":9,"end_line":35,"end_character":15},"in_reply_to":"846a9f4b_20e5e83a","updated":"2023-12-05 08:19:17.000000000","message":"Done","commit_id":"6c911b13e7ed8731f1b964dd442df6ddae0e51db"}],"neutron/plugins/ml2/drivers/openvswitch/agent/ovs_dvr_neutron_agent.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ff95e73d634553fdad52495c008af8b8bed497e3","unresolved":true,"context_lines":[{"line_number":30,"context_line":"from neutron.common import utils as n_utils"},{"line_number":31,"context_line":"from neutron.plugins.ml2.common import constants as comm_consts"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"PHYSICAL_INRESS_OUTPUT \u003d comm_consts.PHYSICAL_INRESS_OUTPUT"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1042888c_f802fd19","line":33,"updated":"2023-12-01 18:17:04.000000000","message":"Probably don\u0027t need this as it\u0027s only used once below and should be under 80 chars?","commit_id":"6c911b13e7ed8731f1b964dd442df6ddae0e51db"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d8f5742820501b29566d7a4faebe57e14c8e4fa5","unresolved":true,"context_lines":[{"line_number":30,"context_line":"from neutron.common import utils as n_utils"},{"line_number":31,"context_line":"from neutron.plugins.ml2.common import constants as comm_consts"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"PHYSICAL_INRESS_OUTPUT \u003d comm_consts.PHYSICAL_INRESS_OUTPUT"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dfe6d569_8851bccb","line":33,"in_reply_to":"1042888c_f802fd19","updated":"2023-12-05 08:19:17.000000000","message":"This is for code move of the constants. If these new table constants move to neutron-lib, all this file will only have to change one line here.","commit_id":"6c911b13e7ed8731f1b964dd442df6ddae0e51db"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e8e2c1529e4751ca56761c31b90b023de7e4fe1e","unresolved":true,"context_lines":[{"line_number":30,"context_line":"from neutron.common import utils as n_utils"},{"line_number":31,"context_line":"from neutron.plugins.ml2.common import constants as comm_consts"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"PHYSICAL_INRESS_OUTPUT \u003d comm_consts.PHYSICAL_INRESS_OUTPUT"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"22d4b59e_b9851d0c","line":33,"in_reply_to":"dfe6d569_8851bccb","updated":"2023-12-05 21:12:19.000000000","message":"It would still only be one line :) just something I noticed, no need to change it.","commit_id":"6c911b13e7ed8731f1b964dd442df6ddae0e51db"}],"neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ff95e73d634553fdad52495c008af8b8bed497e3","unresolved":true,"context_lines":[{"line_number":87,"context_line":"PORT_HINTS_TX_STEERING \u003d \u0027tx-steering\u0027"},{"line_number":88,"context_line":"PORT_HINTS_TX_STEERING_HASH \u003d \u0027hash\u0027"},{"line_number":89,"context_line":"PORT_HINTS_TX_STEERING_THREAD \u003d \u0027thread\u0027"},{"line_number":90,"context_line":"PHYSICAL_EGRESS_OUTPUT \u003d comm_consts.PHYSICAL_EGRESS_OUTPUT"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"class _mac_mydialect(netaddr.mac_unix):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff8e0439_4e36f1f1","line":90,"updated":"2023-12-01 18:17:04.000000000","message":"Same comment as other file, probably is not necessary","commit_id":"6c911b13e7ed8731f1b964dd442df6ddae0e51db"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d8f5742820501b29566d7a4faebe57e14c8e4fa5","unresolved":false,"context_lines":[{"line_number":87,"context_line":"PORT_HINTS_TX_STEERING \u003d \u0027tx-steering\u0027"},{"line_number":88,"context_line":"PORT_HINTS_TX_STEERING_HASH \u003d \u0027hash\u0027"},{"line_number":89,"context_line":"PORT_HINTS_TX_STEERING_THREAD \u003d \u0027thread\u0027"},{"line_number":90,"context_line":"PHYSICAL_EGRESS_OUTPUT \u003d comm_consts.PHYSICAL_EGRESS_OUTPUT"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"class _mac_mydialect(netaddr.mac_unix):"}],"source_content_type":"text/x-python","patch_set":4,"id":"d167626f_36251f25","line":90,"in_reply_to":"ff8e0439_4e36f1f1","updated":"2023-12-05 08:19:17.000000000","message":"Ditto","commit_id":"6c911b13e7ed8731f1b964dd442df6ddae0e51db"}],"releasenotes/notes/bridge_port_mappings-b6950a8d8fd914a8.yaml":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e8e2c1529e4751ca56761c31b90b023de7e4fe1e","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds new config option ``bridge_port_mappings``"},{"line_number":5,"context_line":"    for physical bridges which has items like:"},{"line_number":6,"context_line":"    {br-vlan: nic_x, br-phy: bond_y}. This mapping"},{"line_number":7,"context_line":"    will be used for DVR for traffic ingress and egress"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"98c8b67a_c2e213eb","line":4,"range":{"start_line":4,"start_character":20,"end_line":4,"end_character":26},"updated":"2023-12-05 21:12:19.000000000","message":"s/option [OVS]\n\nso it\u0027s clear which section it\u0027s in","commit_id":"c1b81d059025acf1c94c0228aed10cd14bee1dc5"}]}
