)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0fd260f8db4e1b20ef2035fb7d77fc391ad20df1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"2dee5c13_ba707db5","updated":"2022-02-03 14:13:23.000000000","message":"I have some comments / questions inline","commit_id":"f35f49ca7bf9c66c55a828633b2615b861ea49a1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"73a7107d0e427b5416d6d451f6c4dc008d36c2e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c44d4f9a_f6570cf1","updated":"2022-02-09 11:47:46.000000000","message":"the content looks ok to me the syntax however is incorrect see comments inline","commit_id":"6eaeb748b06356d30d9bb87ff49c02a293f9d7d3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4e366d3a9ad90f0ee410b809075cd7a401caeb0e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"972a6987_5c3a722b","updated":"2022-02-09 16:00:28.000000000","message":"Really nice doc! Thanks!","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"90cc52e190d1a64826ef507b39c1fa7fa3a279a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8c8c03b7_56a890ab","updated":"2022-02-09 19:09:08.000000000","message":"this looks quite good to me.\n\nsome comment in line since you seam to be intending to respine anyway for the vlan 0 comment you left i have downgraded to +1 and mentioned a few other things.\n\nthe only thing that i think is \"wrong\" relaly is the trusted tag\nit does not make the vfs trusted it just mean that you can use this device if the guest request trusted in the port.\n\nyou cant make vfs trusted by default using the config option.","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"}],"doc/source/admin/networking.rst":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0fd260f8db4e1b20ef2035fb7d77fc391ad20df1","unresolved":true,"context_lines":[{"line_number":37,"context_line":"   Nova will ignore PCI devices reported by the hypervisor if the address is"},{"line_number":38,"context_line":"   outside of these ranges."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":".. note::"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"   For information on creating servers with remotely-managed SR-IOV network"},{"line_number":43,"context_line":"   interfaces of SmartNIC DPUs, refer to the relevant section in"}],"source_content_type":"text/x-rst","patch_set":1,"id":"27f065ad_b432e3fd","line":40,"updated":"2022-02-03 14:13:23.000000000","message":"I would move this to its own chapter and add a tag\n\n.. versionadded:: 25.0.0\n\nso the reader can see when the support was added","commit_id":"f35f49ca7bf9c66c55a828633b2615b861ea49a1"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"0ba78ab5939ae4d0de26c76765487ccf24b7ecd8","unresolved":true,"context_lines":[{"line_number":37,"context_line":"   Nova will ignore PCI devices reported by the hypervisor if the address is"},{"line_number":38,"context_line":"   outside of these ranges."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":".. note::"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"   For information on creating servers with remotely-managed SR-IOV network"},{"line_number":43,"context_line":"   interfaces of SmartNIC DPUs, refer to the relevant section in"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4570e9e2_502bee1c","line":40,"in_reply_to":"27f065ad_b432e3fd","updated":"2022-02-03 16:56:56.000000000","message":"Ack, will do.","commit_id":"f35f49ca7bf9c66c55a828633b2615b861ea49a1"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"4139995656abb293720520cd53ede62f1265379a","unresolved":false,"context_lines":[{"line_number":37,"context_line":"   Nova will ignore PCI devices reported by the hypervisor if the address is"},{"line_number":38,"context_line":"   outside of these ranges."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":".. note::"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"   For information on creating servers with remotely-managed SR-IOV network"},{"line_number":43,"context_line":"   interfaces of SmartNIC DPUs, refer to the relevant section in"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6913b9fe_7d38a42e","line":40,"in_reply_to":"4570e9e2_502bee1c","updated":"2022-02-08 17:49:11.000000000","message":"Done","commit_id":"f35f49ca7bf9c66c55a828633b2615b861ea49a1"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"6c24bbcf25277f9244fe7329379ba125f28b142e","unresolved":true,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"   For information on creating servers with remotely-managed SR-IOV network"},{"line_number":43,"context_line":"   interfaces of SmartNIC DPUs, refer to the relevant section in"},{"line_number":44,"context_line":"   :neutron-doc:`Networking Guide \u003cadmin/config-sriov\u003e`."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"   **Limitations**"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"b060f82f_4dfbf77c","line":44,"range":{"start_line":44,"start_character":35,"end_line":44,"end_character":53},"updated":"2022-02-02 15:54:29.000000000","message":"After discussing with Frode, I think we\u0027ll have a separate page similar to how it\u0027s done for OVS hardware offload https://docs.openstack.org/neutron/latest/admin/config-ovs-offload.html under the OVN driver guide: https://docs.openstack.org/neutron/latest/admin/ovn/index.html","commit_id":"f35f49ca7bf9c66c55a828633b2615b861ea49a1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0fd260f8db4e1b20ef2035fb7d77fc391ad20df1","unresolved":true,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"   For information on creating servers with remotely-managed SR-IOV network"},{"line_number":43,"context_line":"   interfaces of SmartNIC DPUs, refer to the relevant section in"},{"line_number":44,"context_line":"   :neutron-doc:`Networking Guide \u003cadmin/config-sriov\u003e`."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"   **Limitations**"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"b3791845_1b80373b","line":44,"range":{"start_line":44,"start_character":35,"end_line":44,"end_character":53},"in_reply_to":"b060f82f_4dfbf77c","updated":"2022-02-03 14:13:23.000000000","message":"That works for me. When you have that the nova doc can link to it to ease the navigation","commit_id":"f35f49ca7bf9c66c55a828633b2615b861ea49a1"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"4139995656abb293720520cd53ede62f1265379a","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"   For information on creating servers with remotely-managed SR-IOV network"},{"line_number":43,"context_line":"   interfaces of SmartNIC DPUs, refer to the relevant section in"},{"line_number":44,"context_line":"   :neutron-doc:`Networking Guide \u003cadmin/config-sriov\u003e`."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"   **Limitations**"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"923faa7b_61736a3b","line":44,"range":{"start_line":44,"start_character":35,"end_line":44,"end_character":53},"in_reply_to":"b3791845_1b80373b","updated":"2022-02-08 17:49:11.000000000","message":"Done","commit_id":"f35f49ca7bf9c66c55a828633b2615b861ea49a1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0fd260f8db4e1b20ef2035fb7d77fc391ad20df1","unresolved":true,"context_lines":[{"line_number":58,"context_line":"     time of writing;"},{"line_number":59,"context_line":"   * The support for VPD capability handling in Libvirt was added in release"},{"line_number":60,"context_line":"     `7.9.0 \u003chttps://libvirt.org/news.html#v7-9-0-2021-11-01\u003e`_ - older"},{"line_number":61,"context_line":"     versions are not supported by this feature;"},{"line_number":62,"context_line":"   * All compute nodes must be upgraded to the Yoga release in order for"},{"line_number":63,"context_line":"     scheduling of nodes with ``VNIC_TYPE_SMARTNIC`` ports to succeed;"},{"line_number":64,"context_line":"   * The same limitations apply to operations like live migration as with"}],"source_content_type":"text/x-rst","patch_set":1,"id":"457f7765_aae54f41","line":61,"updated":"2022-02-03 14:13:23.000000000","message":"Do we have a check for this in the libvirt driver? What happens if remote_managed is true for a device but the libvirt on the hypervisor is too old?","commit_id":"f35f49ca7bf9c66c55a828633b2615b861ea49a1"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"0ba78ab5939ae4d0de26c76765487ccf24b7ecd8","unresolved":true,"context_lines":[{"line_number":58,"context_line":"     time of writing;"},{"line_number":59,"context_line":"   * The support for VPD capability handling in Libvirt was added in release"},{"line_number":60,"context_line":"     `7.9.0 \u003chttps://libvirt.org/news.html#v7-9-0-2021-11-01\u003e`_ - older"},{"line_number":61,"context_line":"     versions are not supported by this feature;"},{"line_number":62,"context_line":"   * All compute nodes must be upgraded to the Yoga release in order for"},{"line_number":63,"context_line":"     scheduling of nodes with ``VNIC_TYPE_SMARTNIC`` ports to succeed;"},{"line_number":64,"context_line":"   * The same limitations apply to operations like live migration as with"}],"source_content_type":"text/x-rst","patch_set":1,"id":"827fd9dd_e9c7570e","line":61,"in_reply_to":"457f7765_aae54f41","updated":"2022-02-03 16:56:56.000000000","message":"If Libvirt is older than the version with VPD support, the device XML will not contain this capability and, as a result, the device json dict will not contain VPD info even if the device has it.\n\nThere is no check currently and it will be treated as if VPD is not present.\n\nI could think about how we could surface that better.","commit_id":"f35f49ca7bf9c66c55a828633b2615b861ea49a1"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"4139995656abb293720520cd53ede62f1265379a","unresolved":false,"context_lines":[{"line_number":58,"context_line":"     time of writing;"},{"line_number":59,"context_line":"   * The support for VPD capability handling in Libvirt was added in release"},{"line_number":60,"context_line":"     `7.9.0 \u003chttps://libvirt.org/news.html#v7-9-0-2021-11-01\u003e`_ - older"},{"line_number":61,"context_line":"     versions are not supported by this feature;"},{"line_number":62,"context_line":"   * All compute nodes must be upgraded to the Yoga release in order for"},{"line_number":63,"context_line":"     scheduling of nodes with ``VNIC_TYPE_SMARTNIC`` ports to succeed;"},{"line_number":64,"context_line":"   * The same limitations apply to operations like live migration as with"}],"source_content_type":"text/x-rst","patch_set":1,"id":"63284265_84d5b424","line":61,"in_reply_to":"827fd9dd_e9c7570e","updated":"2022-02-08 17:49:11.000000000","message":"One thing I can do is making \"supports_remote_managed_ports\" capability host-dependent.\n\nSo besides the pre-filter checking for presence of remote-managed devices it will also depend on whether the Libvirt driver actually exposes this capability depending on the Libvirt version.","commit_id":"f35f49ca7bf9c66c55a828633b2615b861ea49a1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"59e26593b86892823a8a968514451b828437131f","unresolved":false,"context_lines":[{"line_number":58,"context_line":"     time of writing;"},{"line_number":59,"context_line":"   * The support for VPD capability handling in Libvirt was added in release"},{"line_number":60,"context_line":"     `7.9.0 \u003chttps://libvirt.org/news.html#v7-9-0-2021-11-01\u003e`_ - older"},{"line_number":61,"context_line":"     versions are not supported by this feature;"},{"line_number":62,"context_line":"   * All compute nodes must be upgraded to the Yoga release in order for"},{"line_number":63,"context_line":"     scheduling of nodes with ``VNIC_TYPE_SMARTNIC`` ports to succeed;"},{"line_number":64,"context_line":"   * The same limitations apply to operations like live migration as with"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1341ba46_626b8bd8","line":61,"in_reply_to":"827fd9dd_e9c7570e","updated":"2022-02-04 09:51:35.000000000","message":"thanks for the fix in the previous patch","commit_id":"f35f49ca7bf9c66c55a828633b2615b861ea49a1"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"0ba78ab5939ae4d0de26c76765487ccf24b7ecd8","unresolved":true,"context_lines":[{"line_number":65,"context_line":"     `legacy SR-IOV ports \u003chttps://docs.openstack.org/neutron/latest/admin/config-sriov.html#known-limitations\u003e`_;"},{"line_number":66,"context_line":"   * Clearing a VLAN by programming VLAN 0 must not result in errors in the"},{"line_number":67,"context_line":"     VF kernel driver on the compute host. At the time of writing Libvirt"},{"line_number":68,"context_line":"     clears a VLAN before passing a VF through to the guest which may result"},{"line_number":69,"context_line":"     in an error depending on your driver and kernel version (see, for example,"},{"line_number":70,"context_line":"     `this bug \u003chttps://bugs.launchpad.net/ubuntu/+source/linux/+bug/1957753\u003e_`"},{"line_number":71,"context_line":"     which discusses a case relevant to one driver)."},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"6f54e898_f8eda2c6","line":69,"range":{"start_line":68,"start_character":66,"end_line":69,"end_character":16},"updated":"2022-02-03 16:56:56.000000000","message":"Also, Libvirt should take care of EPERM in the 8.1.0 version now that https://gitlab.com/libvirt/libvirt/-/commit/09cdd16a9bf73bc1f75fe774216c71f9ebc78c88 is in.\n\nThis should help with cross-distro compatibility (at least for the mlx5 driver) in case a fix isn\u0027t backported into the older kernels.","commit_id":"f35f49ca7bf9c66c55a828633b2615b861ea49a1"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"4139995656abb293720520cd53ede62f1265379a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"     `legacy SR-IOV ports \u003chttps://docs.openstack.org/neutron/latest/admin/config-sriov.html#known-limitations\u003e`_;"},{"line_number":66,"context_line":"   * Clearing a VLAN by programming VLAN 0 must not result in errors in the"},{"line_number":67,"context_line":"     VF kernel driver on the compute host. At the time of writing Libvirt"},{"line_number":68,"context_line":"     clears a VLAN before passing a VF through to the guest which may result"},{"line_number":69,"context_line":"     in an error depending on your driver and kernel version (see, for example,"},{"line_number":70,"context_line":"     `this bug \u003chttps://bugs.launchpad.net/ubuntu/+source/linux/+bug/1957753\u003e_`"},{"line_number":71,"context_line":"     which discusses a case relevant to one driver)."},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"f5f6fd15_0471ee33","line":69,"range":{"start_line":68,"start_character":66,"end_line":69,"end_character":16},"in_reply_to":"6f54e898_f8eda2c6","updated":"2022-02-08 17:49:11.000000000","message":"Whether to add a version check for that or not is debatable in my view since the issue is kernel driver-specific.\n\nhttps://bugs.launchpad.net/ubuntu/+source/linux/+bug/1957753\n\nWhether it is present in other network drivers remains to be seen (and whether the error code will be the same for Libvirt to catch it).","commit_id":"f35f49ca7bf9c66c55a828633b2615b861ea49a1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"73a7107d0e427b5416d6d451f6c4dc008d36c2e8","unresolved":true,"context_lines":[{"line_number":37,"context_line":"   Nova will ignore PCI devices reported by the hypervisor if the address is"},{"line_number":38,"context_line":"   outside of these ranges."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":".. note::"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":".. versionadded:: 25.0.0"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ecfdb76f_9e73c5a5","line":40,"updated":"2022-02-09 11:47:46.000000000","message":"this is the cause of the docs error\n\n/home/zuul/src/opendev.org/openstack/nova/doc/source/admin/networking.rst:40: ERROR: Content block expected for the \"note\" directive; none found\n\nyou can just remove this\n\notherwise you need to indent the verionaddded block below inside the note","commit_id":"6eaeb748b06356d30d9bb87ff49c02a293f9d7d3"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"81cdf1225ebb7a8b0ef0d4615dcfca9f1c8c94ec","unresolved":false,"context_lines":[{"line_number":37,"context_line":"   Nova will ignore PCI devices reported by the hypervisor if the address is"},{"line_number":38,"context_line":"   outside of these ranges."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":".. note::"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":".. versionadded:: 25.0.0"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"6a45edac_68af2d87","line":40,"in_reply_to":"ecfdb76f_9e73c5a5","updated":"2022-02-09 13:17:07.000000000","message":"Done","commit_id":"6eaeb748b06356d30d9bb87ff49c02a293f9d7d3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"73a7107d0e427b5416d6d451f6c4dc008d36c2e8","unresolved":true,"context_lines":[{"line_number":68,"context_line":"   * Clearing a VLAN by programming VLAN 0 must not result in errors in the"},{"line_number":69,"context_line":"     VF kernel driver on the compute host. Before v8.1.0 Libvirt clears"},{"line_number":70,"context_line":"     a VLAN before passing a VF through to the guest which may result"},{"line_number":71,"context_line":"     in an error depending on your driver and kernel version (see, for example,"},{"line_number":72,"context_line":"     `this bug \u003chttps://bugs.launchpad.net/ubuntu/+source/linux/+bug/1957753\u003e_`"},{"line_number":73,"context_line":"     which discusses a case relevant to one driver). As of Libvirt v8.1.0,"},{"line_number":74,"context_line":"     EPERM errors encountered while programming a VLAN are ignored if"},{"line_number":75,"context_line":"     VLAN clearning is not explicitly requested in the device XML."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"44c6b6da_50b628ff","line":73,"range":{"start_line":71,"start_character":61,"end_line":73,"end_character":51},"updated":"2022-02-09 11:47:46.000000000","message":"this does not render properly \nhttps://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_a8d/827513/3/check/openstack-tox-docs/a8d973b/docs/admin/networking.html","commit_id":"6eaeb748b06356d30d9bb87ff49c02a293f9d7d3"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"81cdf1225ebb7a8b0ef0d4615dcfca9f1c8c94ec","unresolved":false,"context_lines":[{"line_number":68,"context_line":"   * Clearing a VLAN by programming VLAN 0 must not result in errors in the"},{"line_number":69,"context_line":"     VF kernel driver on the compute host. Before v8.1.0 Libvirt clears"},{"line_number":70,"context_line":"     a VLAN before passing a VF through to the guest which may result"},{"line_number":71,"context_line":"     in an error depending on your driver and kernel version (see, for example,"},{"line_number":72,"context_line":"     `this bug \u003chttps://bugs.launchpad.net/ubuntu/+source/linux/+bug/1957753\u003e_`"},{"line_number":73,"context_line":"     which discusses a case relevant to one driver). As of Libvirt v8.1.0,"},{"line_number":74,"context_line":"     EPERM errors encountered while programming a VLAN are ignored if"},{"line_number":75,"context_line":"     VLAN clearning is not explicitly requested in the device XML."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"72f618d6_db14f021","line":73,"range":{"start_line":71,"start_character":61,"end_line":73,"end_character":51},"in_reply_to":"44c6b6da_50b628ff","updated":"2022-02-09 13:17:07.000000000","message":"Done","commit_id":"6eaeb748b06356d30d9bb87ff49c02a293f9d7d3"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"f092c4d28aa27a968244900bce9839970443adc2","unresolved":true,"context_lines":[{"line_number":69,"context_line":"     in an error depending on your driver and kernel version (see, for example,"},{"line_number":70,"context_line":"     `this bug \u003chttps://bugs.launchpad.net/ubuntu/+source/linux/+bug/1957753\u003e`_"},{"line_number":71,"context_line":"     which discusses a case relevant to one driver). As of Libvirt v8.1.0,"},{"line_number":72,"context_line":"     EPERM errors encountered while programming a VLAN are ignored if"},{"line_number":73,"context_line":"     VLAN clearning is not explicitly requested in the device XML."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"NUMA Affinity"}],"source_content_type":"text/x-rst","patch_set":4,"id":"6d4cc11e_ec26232f","line":72,"range":{"start_line":72,"start_character":50,"end_line":72,"end_character":54},"updated":"2022-02-09 14:13:19.000000000","message":"\"VLAN 0\" is meant here. Will amend for clarity in case I need another respin but the rest of the sentence makes it clear that we are talking about VLAN clearning (programming VLAN 0).","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"034b82e3442784bfc0fab400f6eff5bd7b185056","unresolved":false,"context_lines":[{"line_number":69,"context_line":"     in an error depending on your driver and kernel version (see, for example,"},{"line_number":70,"context_line":"     `this bug \u003chttps://bugs.launchpad.net/ubuntu/+source/linux/+bug/1957753\u003e`_"},{"line_number":71,"context_line":"     which discusses a case relevant to one driver). As of Libvirt v8.1.0,"},{"line_number":72,"context_line":"     EPERM errors encountered while programming a VLAN are ignored if"},{"line_number":73,"context_line":"     VLAN clearning is not explicitly requested in the device XML."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"NUMA Affinity"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ee01934_83b28115","line":72,"range":{"start_line":72,"start_character":50,"end_line":72,"end_character":54},"in_reply_to":"6d4cc11e_ec26232f","updated":"2022-02-10 17:05:48.000000000","message":"Done","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"c09807673334ab34abe148b6071719e77cc64a4e","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"   For information on creating servers with remotely-managed SR-IOV network"},{"line_number":43,"context_line":"   interfaces of SmartNIC DPUs, refer to the relevant section in"},{"line_number":44,"context_line":"   :neutron-doc:`Networking Guide \u003cadmin/ovn/smartnic_dpu\u003e`."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"   **Limitations**"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"b0ca9754_4802ba57","line":44,"range":{"start_line":44,"start_character":35,"end_line":44,"end_character":58},"updated":"2022-02-15 10:34:47.000000000","message":"The respective review is in progress here: https://review.opendev.org/c/openstack/neutron/+/828103","commit_id":"419391e97d195459914aa764850cd99c40708be5"}],"doc/source/admin/pci-passthrough.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"90cc52e190d1a64826ef507b39c1fa7fa3a279a0","unresolved":true,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"``physical_network``"},{"line_number":166,"context_line":"  Associates a device with a physical network label which corresponds to the"},{"line_number":167,"context_line":"  ``physical_network`` attribute of a network segment object in Neutron. For"},{"line_number":168,"context_line":"  virtual networks such as overlays a value of ``null`` should be specified"},{"line_number":169,"context_line":"  as follows: ``\"physical_network\": null``. In the case of physical networks,"},{"line_number":170,"context_line":"  this tag is used to supply the metadata necessary for identifying a switched"},{"line_number":171,"context_line":"  fabric to which a PCI device belongs and associate the port with the correct"},{"line_number":172,"context_line":"  network segment in the networking backend. Besides typical SR-IOV scenarios,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"391ca692_6d220107","line":169,"range":{"start_line":167,"start_character":72,"end_line":169,"end_character":44},"updated":"2022-02-09 19:09:08.000000000","message":"slightly unhappy we are documenting this but yes.\n\ntechnially that was never intended to work and was a bug but people started relying on it to do tunned networking with hardware offloaded ovs.\nthat \"feature\" was never actully implemented in nova and a parsing bug was abused to enabel it but its not used in production so we cant fix it.\n\nhttps://bugs.launchpad.net/nova/+bug/1915282\n\nthere is still basically no testing to ensure this continues to work.\n\nthis should have had a nova spec and we would not have used unquoted null as the way to enable this if we had done it as an intentional feature.\n\nthis is relying on the fact we use json loads to parse this and that it will convert null to python None and that in trun will match the default None we get form looking up the pshynet on a tunneled network that has no physnet defiend.\n\nits supper fragile and one of the hacks i really whish we could remove.\nat somepoint i hope we can deprecate this and add a dedicated tag for it.\nfailing that i really hope we can get better functional and unit test coverage.\n\ni just have not had the time to work on this.\n\nfrom a docs perspecive this has been documented in the neutron docs for a long time","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4762f880de634770d16258fcc222e261a6b27bc3","unresolved":true,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"``physical_network``"},{"line_number":166,"context_line":"  Associates a device with a physical network label which corresponds to the"},{"line_number":167,"context_line":"  ``physical_network`` attribute of a network segment object in Neutron. For"},{"line_number":168,"context_line":"  virtual networks such as overlays a value of ``null`` should be specified"},{"line_number":169,"context_line":"  as follows: ``\"physical_network\": null``. In the case of physical networks,"},{"line_number":170,"context_line":"  this tag is used to supply the metadata necessary for identifying a switched"},{"line_number":171,"context_line":"  fabric to which a PCI device belongs and associate the port with the correct"},{"line_number":172,"context_line":"  network segment in the networking backend. Besides typical SR-IOV scenarios,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"904a5bb8_96148181","line":169,"range":{"start_line":167,"start_character":72,"end_line":169,"end_character":44},"in_reply_to":"100fbaa1_eaf8ccee","updated":"2022-02-17 15:19:55.000000000","message":"Given it\u0027s a documentation question, I\u0027ll just accept this change and in case we continue to have a concern, we can try to do this with a follow-up patch.","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"ac092c123077cd866292c819342366612c713f85","unresolved":true,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"``physical_network``"},{"line_number":166,"context_line":"  Associates a device with a physical network label which corresponds to the"},{"line_number":167,"context_line":"  ``physical_network`` attribute of a network segment object in Neutron. For"},{"line_number":168,"context_line":"  virtual networks such as overlays a value of ``null`` should be specified"},{"line_number":169,"context_line":"  as follows: ``\"physical_network\": null``. In the case of physical networks,"},{"line_number":170,"context_line":"  this tag is used to supply the metadata necessary for identifying a switched"},{"line_number":171,"context_line":"  fabric to which a PCI device belongs and associate the port with the correct"},{"line_number":172,"context_line":"  network segment in the networking backend. Besides typical SR-IOV scenarios,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"100fbaa1_eaf8ccee","line":169,"range":{"start_line":167,"start_character":72,"end_line":169,"end_character":44},"in_reply_to":"391ca692_6d220107","updated":"2022-02-10 15:01:06.000000000","message":"A boolean-like tag \"is_virtual_network\" might do it.\n\nI need to check what kind of tests are there currently as the use of `null` is one of the primary use-cases for remote-managed ports with encapsulation offload.","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"0fd191d7de7af48470b73b40a193c220af66ea19","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"``physical_network``"},{"line_number":166,"context_line":"  Associates a device with a physical network label which corresponds to the"},{"line_number":167,"context_line":"  ``physical_network`` attribute of a network segment object in Neutron. For"},{"line_number":168,"context_line":"  virtual networks such as overlays a value of ``null`` should be specified"},{"line_number":169,"context_line":"  as follows: ``\"physical_network\": null``. In the case of physical networks,"},{"line_number":170,"context_line":"  this tag is used to supply the metadata necessary for identifying a switched"},{"line_number":171,"context_line":"  fabric to which a PCI device belongs and associate the port with the correct"},{"line_number":172,"context_line":"  network segment in the networking backend. Besides typical SR-IOV scenarios,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff6677b6_796d1d88","line":169,"range":{"start_line":167,"start_character":72,"end_line":169,"end_character":44},"in_reply_to":"904a5bb8_96148181","updated":"2022-02-17 19:30:34.000000000","message":"Ack, I am working on additional in-tree tests at the moment, I\u0027ll cover the `null` case in additional functional tests at least.\n\nI think the original thinking that went into the `physical_network` tag was that a PCI device would always give you access to physical networks, however, this is not entirely true in the embedded switch port case where all traffic coming through it could be encapsulated with an overlay network header.\n\nLikewise, there could be isolated sets of VTEPs which would not have the same VXLAN/GENEVE ranges much like there are isolated 0-4095 VLAN ranges on physically separate fabrics (i.e. VLAN 1 on physnet1 is a different broadcast domain from VLAN 1 on physnet2). I have not seen practical applications for that within a single cloud region though - typically all VTEPs in a single cloud region are expected to be able to reach each other over L3 and it is assumed that all VNIs are available via all VTEPs.\n\nSo I would probably spec out the alternative approaches to that just to be sure.","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"8d01f9d8c15dd8679caf663db33bd5ae787e4584","unresolved":true,"context_lines":[{"line_number":180,"context_line":"  ``VNIC_TYPE_REMOTE_MANAGED`` are intended to be used. Once that is done,"},{"line_number":181,"context_line":"  those PCI devices will not be available for allocation for regular"},{"line_number":182,"context_line":"  PCI passthrough use. Specifying ``\"remote_managed\": \"true\"`` is only valid"},{"line_number":183,"context_line":"  for SR-IOV VFs and specifying it for PFs is prohibited."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"  .. important::"},{"line_number":186,"context_line":"     It is recommended that PCI VFs that are meant to be remote-managed"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa3da8f8_24251c3c","line":183,"range":{"start_line":183,"start_character":6,"end_line":183,"end_character":16},"updated":"2022-02-09 18:01:40.000000000","message":"Maybe worth noting somewhere that SR-IOV needs to be allowed in the NIC firmware (e.g. by enabling a setting via NVRAM) but to actually get VFs at the hypervisor host, SR-IOV needs to be enabled on the PF exposed to the hypervisor host.\n\nThat would be a task for network management daemons with the help of config supplied by deployment tools.\n\n\nThere was some recent work in systemd to allow setting num_vfs:\nhttps://github.com/systemd/systemd/commit/41ce9d769d394d19f1caab8b8a89b7dea50db0bc\nhttps://github.com/systemd/systemd/pull/21865\n\nAnd also in Netplan which is used in Ubuntu Server by default:\nhttps://github.com/canonical/netplan/pull/253","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"ac092c123077cd866292c819342366612c713f85","unresolved":false,"context_lines":[{"line_number":180,"context_line":"  ``VNIC_TYPE_REMOTE_MANAGED`` are intended to be used. Once that is done,"},{"line_number":181,"context_line":"  those PCI devices will not be available for allocation for regular"},{"line_number":182,"context_line":"  PCI passthrough use. Specifying ``\"remote_managed\": \"true\"`` is only valid"},{"line_number":183,"context_line":"  for SR-IOV VFs and specifying it for PFs is prohibited."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"  .. important::"},{"line_number":186,"context_line":"     It is recommended that PCI VFs that are meant to be remote-managed"}],"source_content_type":"text/x-rst","patch_set":4,"id":"acda4492_ee3ed493","line":183,"range":{"start_line":183,"start_character":6,"end_line":183,"end_character":16},"in_reply_to":"522d0e41_cb732aed","updated":"2022-02-10 15:01:06.000000000","message":"Ack","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0ab267a471eefacc87c7eb951318509bdd1eb219","unresolved":true,"context_lines":[{"line_number":180,"context_line":"  ``VNIC_TYPE_REMOTE_MANAGED`` are intended to be used. Once that is done,"},{"line_number":181,"context_line":"  those PCI devices will not be available for allocation for regular"},{"line_number":182,"context_line":"  PCI passthrough use. Specifying ``\"remote_managed\": \"true\"`` is only valid"},{"line_number":183,"context_line":"  for SR-IOV VFs and specifying it for PFs is prohibited."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"  .. important::"},{"line_number":186,"context_line":"     It is recommended that PCI VFs that are meant to be remote-managed"}],"source_content_type":"text/x-rst","patch_set":4,"id":"522d0e41_cb732aed","line":183,"range":{"start_line":183,"start_character":6,"end_line":183,"end_character":16},"in_reply_to":"fa3da8f8_24251c3c","updated":"2022-02-09 18:15:18.000000000","message":"that tends to depend on your hardware vendor and sometiem os.\n\nin general i would say no to the detail but if you want to make a vague refence then sure. given the doc secton it is in i think its assume you know to turn on sriov.\n\ngenerally this is not historically done by the network manament deamon\n\nin the past this was mostly managed by either using the kernel module modprobe config files to define the number of vf at module load time (legacy away) or more recently this has been done via udev rules so that when teh PF is detacted udev set the number of vfs to allocate.\n\nnetplan or systemd or os-netconfig ectra are also valid but that is out of scope of the nova docs","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"90cc52e190d1a64826ef507b39c1fa7fa3a279a0","unresolved":true,"context_lines":[{"line_number":189,"context_line":"     they have to be programmed accordingly at the host that has access to the"},{"line_number":190,"context_line":"     NIC switch control plane. If this is not done, instances requesting regular"},{"line_number":191,"context_line":"     SR-IOV ports may get a device that will not be configured correctly and"},{"line_number":192,"context_line":"     will not be usable for sending network traffic."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"  .. important::"},{"line_number":195,"context_line":"     For the Libvirt virt driver, clearing a VLAN by programming VLAN 0 must not"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3d64d7b4_69150d26","line":192,"updated":"2022-02-09 19:09:08.000000000","message":"have you tested this by the way. i would have assumed that when using bluefield 2 at least in DPU mode we would only have 1 vf and no representor netdev\n\nso i would have expected the boot to fail as we would not be able to corralate the devices to add teh representor netdev to the local ovs.\n\nthe doc is fine as writen because yes you should ensure you tag them but in general i think it will explode and the vm will end up in error or retry on another host at the very least.","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"ac092c123077cd866292c819342366612c713f85","unresolved":true,"context_lines":[{"line_number":189,"context_line":"     they have to be programmed accordingly at the host that has access to the"},{"line_number":190,"context_line":"     NIC switch control plane. If this is not done, instances requesting regular"},{"line_number":191,"context_line":"     SR-IOV ports may get a device that will not be configured correctly and"},{"line_number":192,"context_line":"     will not be usable for sending network traffic."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"  .. important::"},{"line_number":195,"context_line":"     For the Libvirt virt driver, clearing a VLAN by programming VLAN 0 must not"}],"source_content_type":"text/x-rst","patch_set":4,"id":"63d3926c_3b15c37c","line":192,"in_reply_to":"3d64d7b4_69150d26","updated":"2022-02-10 15:01:06.000000000","message":"\u003e have you tested this by the way. i would have assumed that when using bluefield 2 at least in DPU mode we would only have 1 vf and no representor netdev\n\nSo in the DPU mode you have 2 PFs for uplink ports (unless you enable NIC-side bonding in which case one PF can be hidden for the hypervisor. A PCI address will still be pre-allocated but only one PF will be there). On top of that you can enable SR-IOV and get VFs but no representors are visible to the hypervisor (they appear at the DPU side dynamically as the hypervisor host enables SR-IOV and sets num_vfs).\n\nSo, yes, for hw offload os-vif wouldn\u0027t be able to correlate VFs to representors because it doesn\u0027t see them at all.\n\nLooking at this https://review.opendev.org/q/topic:bp%252Fenable-sriov-nic-features I finally get why specifying the switchdev capability in binding:profile is not fully implemented.\n\nThere was supposed to be a change to take this from binding:profile and add it to the request spec:\nhttps://review.opendev.org/c/openstack/nova/+/507481/7/nova/network/neutronv2/api.py#1592\n\nHowever, that never landed.","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"034b82e3442784bfc0fab400f6eff5bd7b185056","unresolved":false,"context_lines":[{"line_number":189,"context_line":"     they have to be programmed accordingly at the host that has access to the"},{"line_number":190,"context_line":"     NIC switch control plane. If this is not done, instances requesting regular"},{"line_number":191,"context_line":"     SR-IOV ports may get a device that will not be configured correctly and"},{"line_number":192,"context_line":"     will not be usable for sending network traffic."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"  .. important::"},{"line_number":195,"context_line":"     For the Libvirt virt driver, clearing a VLAN by programming VLAN 0 must not"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7fae370b_e38d0537","line":192,"in_reply_to":"63d3926c_3b15c37c","updated":"2022-02-10 17:05:48.000000000","message":"And, yes, it will raise exception will trying to find a switch ID in `get_representor_port`:\n\nhttps://github.com/openstack/os-vif/blob/7f9e9b8a74e01f7722691d257fdbeb625621c7b7/vif_plug_ovs/linux_net.py#L236-L249","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"90cc52e190d1a64826ef507b39c1fa7fa3a279a0","unresolved":true,"context_lines":[{"line_number":202,"context_line":"     not explicitly requested in the device XML."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"``trusted``"},{"line_number":205,"context_line":"  Configure the VF to be trusted by the network controller through its PF"},{"line_number":206,"context_line":"  device driver. The specific set of features allowed by the trusted mode of"},{"line_number":207,"context_line":"  a VF will differ depending on the network controller itself, its firmware"},{"line_number":208,"context_line":"  version and what a PF device driver version allows to pass to the NIC. Common"},{"line_number":209,"context_line":"  features to be affected by this tag are changing the VF MAC address, enabling"}],"source_content_type":"text/x-rst","patch_set":4,"id":"21d2551c_44f57b58","line":206,"range":{"start_line":205,"start_character":1,"end_line":206,"end_character":15},"updated":"2022-02-09 19:09:08.000000000","message":"am no this does not configure it.\nit allow the use to request that it is configure\n\nyou still have to set the trusted flag on the port.","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"034b82e3442784bfc0fab400f6eff5bd7b185056","unresolved":false,"context_lines":[{"line_number":202,"context_line":"     not explicitly requested in the device XML."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"``trusted``"},{"line_number":205,"context_line":"  Configure the VF to be trusted by the network controller through its PF"},{"line_number":206,"context_line":"  device driver. The specific set of features allowed by the trusted mode of"},{"line_number":207,"context_line":"  a VF will differ depending on the network controller itself, its firmware"},{"line_number":208,"context_line":"  version and what a PF device driver version allows to pass to the NIC. Common"},{"line_number":209,"context_line":"  features to be affected by this tag are changing the VF MAC address, enabling"}],"source_content_type":"text/x-rst","patch_set":4,"id":"d07a35a7_0f89c2b4","line":206,"range":{"start_line":205,"start_character":1,"end_line":206,"end_character":15},"in_reply_to":"1a1e40d3_ab8637d4","updated":"2022-02-10 17:05:48.000000000","message":"Done","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"},{"author":{"_account_id":24824,"name":"Dmitrii Shcherbakov","username":"dmitriis"},"change_message_id":"ac092c123077cd866292c819342366612c713f85","unresolved":true,"context_lines":[{"line_number":202,"context_line":"     not explicitly requested in the device XML."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"``trusted``"},{"line_number":205,"context_line":"  Configure the VF to be trusted by the network controller through its PF"},{"line_number":206,"context_line":"  device driver. The specific set of features allowed by the trusted mode of"},{"line_number":207,"context_line":"  a VF will differ depending on the network controller itself, its firmware"},{"line_number":208,"context_line":"  version and what a PF device driver version allows to pass to the NIC. Common"},{"line_number":209,"context_line":"  features to be affected by this tag are changing the VF MAC address, enabling"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a1e40d3_ab8637d4","line":206,"range":{"start_line":205,"start_character":1,"end_line":206,"end_character":15},"in_reply_to":"21d2551c_44f57b58","updated":"2022-02-10 15:01:06.000000000","message":"Via the binding:profile, I see. I\u0027ll rephrase it.\n\nAnd then for a device with the trusted tag that ends up being allocated this will be called to actually set it:\n\nhttps://github.com/openstack/nova/blob/db15cb9513dbf12e173a66ab87e9638dcc08f4f0/nova/virt/libvirt/vif.py#L634-L637","commit_id":"36fdc09a19c9d1ff3e53f27557b2cfa0b2c6188b"}]}
