)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"298a2696c2d314780983b52c20a3c912b9ecd24b","unresolved":true,"context_lines":[{"line_number":9,"context_line":"Add a new os-vif `network` property called `network_type`."},{"line_number":10,"context_line":"It\u0027s used by the LinkVirtualization ML2 driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Plugin link: https://github.com/napatech/linkvirt-ovs-openstack-plugin"},{"line_number":13,"context_line":"Nova spec: https://review.opendev.org/c/openstack/nova-specs/+/859290"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I4b755da676d4c1b9ad05b47cd3dc7e2ba205197d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"2a700ece_e099e333","line":12,"updated":"2022-10-26 22:24:21.000000000","message":"im going to point this out again but the vif plugins are not part of os-vifs plublic api\n\nhttps://github.com/napatech/linkvirt-ovs-openstack-plugin/blob/main/vif_plug_linkvirt_ovs/linkvirt_ovs.py#L23-L24\n\n\nso you are not allowed to import anything form  vif_plug_ovs\n\nif you do you may be broken without any futher warning.\n\nim not goign to force you to rewrite it but just be aware we will never hold a patch to the ovs plug because it breaks an external driver that importrs code form it.\n\nimporting the os_vif.internal module is even worse we explictly tried to prevent you form doing this by adding https://github.com/openstack/os-vif/blob/master/os_vif/internal/__init__.py#L18-L25\n\nso this https://github.com/napatech/linkvirt-ovs-openstack-plugin/blob/main/vif_plug_linkvirt_ovs/lv_ovs.py#L22\n\nis even more unsupproted.\n\nyou have been warned now so if your external plugin breaks in teh future you will have to fix it yourself.","commit_id":"2ea885388b9605a51d87ab998f0e1ae50d4478e0"},{"author":{"_account_id":35489,"name":"Danylo Vodopianov","email":"dvo-plv@napatech.com","username":"dvo-plv"},"change_message_id":"13f41a5a0d9b9f60cbc414ec8f1c8741c2e6a970","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add a new os-vif `network` property called `network_type`."},{"line_number":10,"context_line":"It\u0027s used by the LinkVirtualization ML2 driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Plugin link: https://github.com/napatech/linkvirt-ovs-openstack-plugin"},{"line_number":13,"context_line":"Nova spec: https://review.opendev.org/c/openstack/nova-specs/+/859290"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I4b755da676d4c1b9ad05b47cd3dc7e2ba205197d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ec76a425_2a31a6fc","line":12,"in_reply_to":"2a700ece_e099e333","updated":"2023-03-10 18:12:17.000000000","message":"Done. In the new iteration we remove external plugin support, as far as like it was suggested we extend default openvswitch driver","commit_id":"2ea885388b9605a51d87ab998f0e1ae50d4478e0"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"298a2696c2d314780983b52c20a3c912b9ecd24b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f8fe67ec_89e2b23c","updated":"2022-10-26 22:24:21.000000000","message":"-1 until spec is approved.","commit_id":"2ea885388b9605a51d87ab998f0e1ae50d4478e0"},{"author":{"_account_id":35489,"name":"Danylo Vodopianov","email":"dvo-plv@napatech.com","username":"dvo-plv"},"change_message_id":"e86e128a319c5c1b4f91d5b099d01f2234ad9403","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"79dd0ce8_c9fa51ce","updated":"2023-03-10 10:10:06.000000000","message":"recheck","commit_id":"77d9704847878c05c60b74bdbe137e664b143552"},{"author":{"_account_id":35489,"name":"Danylo Vodopianov","email":"dvo-plv@napatech.com","username":"dvo-plv"},"change_message_id":"3730410d9a00117ee8bac77d94c29685253cf4e7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"81422022_82335185","updated":"2023-03-10 15:15:16.000000000","message":"recheck","commit_id":"8829d2409d1bd14bdccb3d2ab0cba1fbc7bccbdb"}],"vif_plug_ovs/ovs.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ce2a5befa539157abc28326e3b2a2f10b937579a","unresolved":true,"context_lines":[{"line_number":347,"context_line":"        if isinstance(vif.port_profile,"},{"line_number":348,"context_line":"                      objects.vif.VIFPortProfileOVSRepresentor):"},{"line_number":349,"context_line":"            pci_slot \u003d vif.port_profile.representor_address"},{"line_number":350,"context_line":"            dbs, sep, func \u003d pci_slot.rpartition(\u0027:\u0027)"},{"line_number":351,"context_line":"            dbs, sep, func \u003d func.partition(\u0027.\u0027)"},{"line_number":352,"context_line":"            vf_num \u003d int(dbs) * 8 + int(func)"},{"line_number":353,"context_line":"        else:"},{"line_number":354,"context_line":"            pci_slot \u003d vif.dev_address"}],"source_content_type":"text/x-python","patch_set":7,"id":"4e2a6a6a_9cd99eee","line":351,"range":{"start_line":350,"start_character":2,"end_line":351,"end_character":48},"updated":"2023-08-14 10:46:10.000000000","message":"can you add a comment explaining how this works.\nyou str overwritign dbs/sep\n\nso the first line shoudl really be\n\n_, _, func \u003d pci_slot.rpartition(\u0027:\u0027)\nand you are never using sep so the second line should be\n\ndbs, _, func \u003d func.partition(\u0027.\u0027)","commit_id":"0f3f0787ee25f6a602f8656e14f5cf13aed7546f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ce2a5befa539157abc28326e3b2a2f10b937579a","unresolved":true,"context_lines":[{"line_number":349,"context_line":"            pci_slot \u003d vif.port_profile.representor_address"},{"line_number":350,"context_line":"            dbs, sep, func \u003d pci_slot.rpartition(\u0027:\u0027)"},{"line_number":351,"context_line":"            dbs, sep, func \u003d func.partition(\u0027.\u0027)"},{"line_number":352,"context_line":"            vf_num \u003d int(dbs) * 8 + int(func)"},{"line_number":353,"context_line":"        else:"},{"line_number":354,"context_line":"            pci_slot \u003d vif.dev_address"},{"line_number":355,"context_line":"            vf_num \u003d linux_net.get_vf_num_by_pci_address(pci_slot)"}],"source_content_type":"text/x-python","patch_set":7,"id":"b58d1dd8_d193fdca","line":352,"updated":"2023-08-14 10:46:10.000000000","message":"dbs i had assumed was domain bus slot\n\nim not sure how you are converting that to an int and multipyging it so please add comments showtin waht the value are after each step.\n\ncan you also explain why your are emultipleying by 8 specifically.\n\nit looks like you are trying to calulate the vf number instead fo looking it up form sysfs because with ovs-dpdk the representors are in user space but they are still backed by a VF so i woudl expect to be able to lookup vf_number via the pf.\n\n\nget_vf_num_by_pci_address is using \"/sys/bus/pci/devices/%s/physfn/virtfn*\" % (pci_addr) to lookup the vf number\n\nhttps://github.com/openstack/os-vif/blob/da742a849a1b8b2f3ca9485b38c5bb54c1bb6c75/vif_plug_ovs/linux_net.py#L360-L378\n\nwill that not work in this case?","commit_id":"0f3f0787ee25f6a602f8656e14f5cf13aed7546f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"483f05daf526a81b3e1648faa70d29cedde4e36b","unresolved":true,"context_lines":[{"line_number":349,"context_line":"            pci_slot \u003d vif.port_profile.representor_address"},{"line_number":350,"context_line":"            dbs, sep, func \u003d pci_slot.rpartition(\u0027:\u0027)"},{"line_number":351,"context_line":"            dbs, sep, func \u003d func.partition(\u0027.\u0027)"},{"line_number":352,"context_line":"            vf_num \u003d int(dbs) * 8 + int(func)"},{"line_number":353,"context_line":"        else:"},{"line_number":354,"context_line":"            pci_slot \u003d vif.dev_address"},{"line_number":355,"context_line":"            vf_num \u003d linux_net.get_vf_num_by_pci_address(pci_slot)"}],"source_content_type":"text/x-python","patch_set":7,"id":"a4dcfd3e_daa6efeb","line":352,"in_reply_to":"07318aab_da687c42","updated":"2023-08-22 11:39:02.000000000","message":"instead of caluating it here again i think this really should be pass form neutron in the vif binding_details\n\nfailing that i would prefer to use a regex to take the vhost-user socket name and parse the vf representor from it.\n\n\nreplace this calulation with \n\n            if isinstance(\n                vif.port_profile, objects.vif.VIFPortProfileOVSRepresentor\n            ):\n                pci_slot \u003d vif.port_profile.representor_address\n                vf_num \u003d VF_NUM_RE.search(vif.path)\n            else:\n                pci_slot \u003d vif.dev_address\n                vf_num \u003d linux_net.get_vf_num_by_pci_address(pci_slot)","commit_id":"0f3f0787ee25f6a602f8656e14f5cf13aed7546f"},{"author":{"_account_id":35489,"name":"Danylo Vodopianov","email":"dvo-plv@napatech.com","username":"dvo-plv"},"change_message_id":"5caf99ecc72d224d71c47a097eae6c4415e0439f","unresolved":true,"context_lines":[{"line_number":349,"context_line":"            pci_slot \u003d vif.port_profile.representor_address"},{"line_number":350,"context_line":"            dbs, sep, func \u003d pci_slot.rpartition(\u0027:\u0027)"},{"line_number":351,"context_line":"            dbs, sep, func \u003d func.partition(\u0027.\u0027)"},{"line_number":352,"context_line":"            vf_num \u003d int(dbs) * 8 + int(func)"},{"line_number":353,"context_line":"        else:"},{"line_number":354,"context_line":"            pci_slot \u003d vif.dev_address"},{"line_number":355,"context_line":"            vf_num \u003d linux_net.get_vf_num_by_pci_address(pci_slot)"}],"source_content_type":"text/x-python","patch_set":7,"id":"07318aab_da687c42","line":352,"in_reply_to":"b58d1dd8_d193fdca","updated":"2023-08-22 09:20:24.000000000","message":"sysfs will not work for us in this case. As far as we reserve first 4 pcis for physical functions. Also we need to link socket name and pci number( representor port).\nHere:\nhttps://review.opendev.org/c/openstack/neutron/+/869510/13/neutron/plugins/ml2/drivers/openvswitch/mech_driver/mech_openvswitch.py#224\nWe calc socket number, for ex for pci 0000:2b:01.1, we have stdvio9 according to the formula 1 \\* 8 + 1 \u003d 9 (dbs \\* 8 + func \u003d vf_num)","commit_id":"0f3f0787ee25f6a602f8656e14f5cf13aed7546f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"483f05daf526a81b3e1648faa70d29cedde4e36b","unresolved":true,"context_lines":[{"line_number":16,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":17,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":18,"context_line":"#    under the License."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import sys"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":8,"id":"7ac1d716_44f66f1f","line":19,"updated":"2023-08-22 11:39:02.000000000","message":"import re","commit_id":"1066cdc38d2dddfd295213231d0a7d92bdeeab5c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"483f05daf526a81b3e1648faa70d29cedde4e36b","unresolved":true,"context_lines":[{"line_number":35,"context_line":"from vif_plug_ovs.ovsdb import ovsdb_lib"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"class OvsPlugin(plugin.PluginBase):"},{"line_number":41,"context_line":"    \"\"\"An OVS plugin that can setup VIFs in many ways"}],"source_content_type":"text/x-python","patch_set":8,"id":"66838a3d_69ad8697","line":38,"updated":"2023-08-22 11:39:02.000000000","message":"VF_NUM_RE \u003d re.compile(r\"stdvio(\\d+)\", re.IGNORECASE)","commit_id":"1066cdc38d2dddfd295213231d0a7d92bdeeab5c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5050d4f6b0b2514cda13d37461ac0d771e2b463f","unresolved":true,"context_lines":[{"line_number":357,"context_line":"            # the following result: 1 * 8 + 2 \u003d 10."},{"line_number":358,"context_line":"            # This func number links with socket number in the"},{"line_number":359,"context_line":"            # agent_vhu_sockpath method, which should be stdvio10 for"},{"line_number":360,"context_line":"            # current example."},{"line_number":361,"context_line":"            vf_num \u003d int(dbs) * 8 + int(func)"},{"line_number":362,"context_line":"        else:"},{"line_number":363,"context_line":"            pci_slot \u003d vif.dev_address"}],"source_content_type":"text/x-python","patch_set":8,"id":"9ab95301_13cc6bf2","line":360,"updated":"2023-08-22 11:21:23.000000000","message":"is this guarenteed to work for any vendors smart nic.\n\nos-vif shoudl not contian vendor specific code.\n\nthis seams very hardware specific.\nim also not seeing how this will work properly if you have mupltiple phsyical nics\nif it is only looking at the slot and function number.\n\ni.e. if you have 0000:2b:01.2 and 0000:4b:01.2\n\nthey woudl both calulate to the same number correct?","commit_id":"1066cdc38d2dddfd295213231d0a7d92bdeeab5c"}]}
