)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"36f29cb3eb88b5b01745e1423f74e9e883fd6768","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c50d880d_0b3308fc","updated":"2026-07-28 12:01:54.000000000","message":"its not really a bug in that this has never been tested or supproted by cyrbog devstack plugin before. you can also jsut enabel it via the local.conf\n\nbut im ok to proceed with this.\n\ni condiered askign you to guard this behind if the intel nic driver was enabel and if the sriov nic agent was enebale btu we can do this unconditionally it wont break anything however just +1 for now becasue this by itself does nto fully explain all the other settign you need to configure to chagne form the default ovn deployment to ovs+sriov nic agent.\n\nif we are adding devstack plugin supprot for this i feel like we shoudl also add a sample local.conf \nhttps://github.com/openstack/cyborg/blob/master/devstack/local-conf.pci-sim.sample\nand an associated contributor docs to cover this like \nhttps://github.com/openstack/cyborg/blob/master/doc/source/contributor/nvme-driver.rst\n\nit does not really need to be long thge github gist you create has all the info \nhttps://gist.github.com/melwitt/bb7979d9b1e06cba4a0702e90b4211ab\nbut it woudl be nice to do this all in the same commit","commit_id":"666c083503fdf4124ef98fbd907818517d2a3736"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"3eb6794d25e7bb4d54f217a5813c1f32736c05c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b99dff69_98f67b54","updated":"2026-07-27 15:52:03.000000000","message":"seems to work ok in CI:\n```\n2026-07-20 19:59:31.192 | ++ /opt/stack/cyborg/devstack/plugin.sh:source:37 :   neutron_ml2_extension_driver_add port_device_profile\n2026-07-20 19:59:31.196 | ++ lib/neutron:neutron_ml2_extension_driver_add:1047 :   local extension\u003dport_device_profile\n2026-07-20 19:59:31.200 | ++ lib/neutron:neutron_ml2_extension_driver_add:1048 :   [[ port_security,qos \u003d\u003d \u0027\u0027 ]]\n2026-07-20 19:59:31.203 | ++ lib/neutron:neutron_ml2_extension_driver_add:1050 :   [[ ! ,port_security,qos, \u003d~ ,port_device_profile, ]]\n2026-07-20 19:59:31.207 | ++ lib/neutron:neutron_ml2_extension_driver_add:1051 :   Q_ML2_PLUGIN_EXT_DRIVERS\u003dport_security,qos,port_device_profile\n```\nhttps://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_c97/openstack/c97b3fd0828a4a898e5454132274a785/controller/logs/devstacklog.txt","commit_id":"666c083503fdf4124ef98fbd907818517d2a3736"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4897b6700af8a2091e724c5eddc669d017b2de66","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1b472ef0_887d9675","in_reply_to":"2e88c86c_4ceaf160","updated":"2026-07-29 20:59:27.000000000","message":"PS4 is using `neutron_ml2_extension_driver_add` instead to enable the port_device_profile extension but note it will not show up in any of the job runs on this patch because it is guarded behind \"nic_driver\".","commit_id":"666c083503fdf4124ef98fbd907818517d2a3736"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"878c4be49b5290901ac41cc45807c1beda94801e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"2e88c86c_4ceaf160","in_reply_to":"6b7857e5_c8567596","updated":"2026-07-28 19:26:56.000000000","message":"Thanks for catching that ... It looks like what happens is that the Neutron plugin (`enable_plugin neutron`) post-config writes the ML2 config after this sets the variable in Cyborg\u0027s post-config. So it works in that scenario but in this one where we do not have the Neutron plugin.\n\nI\u0027ll change this to just iniset it directly so it doesn\u0027t depend on the Neutron plugin. The Neutron plugin is still required for the SRIOV agent to be configured and started -- but the Intel NIC driver also works without SRIOV, so it would be also more correct to iniset it.","commit_id":"666c083503fdf4124ef98fbd907818517d2a3736"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"e972fc0cab94510aa4145f8b4340f3d711371bbf","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6b7857e5_c8567596","in_reply_to":"b99dff69_98f67b54","updated":"2026-07-28 09:49:56.000000000","message":"I checked the https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_c97/openstack/c97b3fd0828a4a898e5454132274a785/controller/logs/etc/neutron/plugins/ml2/ml2_conf.ini file\n```\nextension_drivers \u003d port_security,qos\n```\nI am not seeing `port_device_profile` option in ml2_conf.ini in DevStack log.\n\n\nBut,\n\nBelow are entries from my local devstack log for port_device_profile\n```\n2026-07-28 09:21:58.752 | ++^[[38;5;242m/opt/stack/cyborg/devstack/plugin.sh:source:34 ^[[m^O neutron_ml2_extension_driver_add port_device_profile\n2026-07-28 09:21:58.758 | ++^[[38;5;242mlib/neutron:neutron_ml2_extension_driver_add:1047 ^[[m^O local extension\u003dport_device_profile\n2026-07-28 09:21:58.764 | ++^[[38;5;242mlib/neutron:neutron_ml2_extension_driver_add:1048 ^[[m^O [[ port_security \u003d\u003d \u0027\u0027 ]]\n2026-07-28 09:21:58.769 | ++^[[38;5;242mlib/neutron:neutron_ml2_extension_driver_add:1050 ^[[m^O [[ ! ,port_security, \u003d~ ,port_device_profile, ]]\n2026-07-28 09:21:58.775 | ++^[[38;5;242mlib/neutron:neutron_ml2_extension_driver_add:1051 ^[[m^O Q_ML2_PLUGIN_EXT_DRIVERS\u003dport_security,port_device_profile\n```\nand\n```\n2026-07-28 09:22:28.712 | ++^[[38;5;242m/opt/stack/neutron/devstack/lib/ml2:configure_ml2_extension_drivers:12 ^[[m^O iniset /etc/neutron/plugins/ml2/ml2_conf.ini ml2 extension_drivers port_security,port_device_profile\n```\nI am using local.conf from https://gist.github.com/melwitt/bb7979d9b1e06cba4a0702e90b4211ab#3-deploy-devstack with above patch pulled in my env.\n\n\n\n@melwittt@gmail.com Are we missing some devstack config?","commit_id":"666c083503fdf4124ef98fbd907818517d2a3736"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4897b6700af8a2091e724c5eddc669d017b2de66","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"def89672_9740f8f7","in_reply_to":"c50d880d_0b3308fc","updated":"2026-07-29 20:59:27.000000000","message":"Done","commit_id":"666c083503fdf4124ef98fbd907818517d2a3736"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c1a79005c72133463efdc2d75d6c603b5de554c0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c4729672_83bfa34d","updated":"2026-07-28 20:26:36.000000000","message":"lets see if this tempelate out courrelctly in the job but im pretty happy with this as it is now","commit_id":"059601d2080bbc9c27be89d7022c1eb34f3b2772"}],"devstack/plugin.sh":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"9faadea3b30159c097d52a2bd89e99b69bbb2ec2","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                # that the device_profile field on Neutron ports is"},{"line_number":36,"context_line":"                # processed during creation (required for smartNIC SR-IOV)."},{"line_number":37,"context_line":"                if [[ \"$CYBORG_ENABLED_DRIVERS\" \u003d~ nic_driver ]]; then"},{"line_number":38,"context_line":"                    local ext\u003d$(iniget /$NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers)"},{"line_number":39,"context_line":"                    if [[ ! \",$ext,\" \u003d~ ,port_device_profile, ]]; then"},{"line_number":40,"context_line":"                        iniset /$NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers \"${ext:+${ext},}port_device_profile\""},{"line_number":41,"context_line":"                    fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"20334f72_1f85a705","line":38,"updated":"2026-07-28 20:08:46.000000000","message":"The iniget/iniset calls use /$NEUTRON_CORE_PLUGIN_CONF which prepends an extra forward slash to what is already an absolute path. In standard devstack, NEUTRON_CORE_PLUGIN_CONF is set to /etc/neutron/plugins/ml2/ml2_conf.ini (an absolute path), so /$NEUTRON_CORE_PLUGIN_CONF resolves to //etc/neut...\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: The path //etc/neutron/plugins/ml2/ml2_conf.ini works on Linux due to POSIX double-slash collapsing, so there is no runtime failure. However the leading slash is misleading and inconsistent with how every other devstack plugin references configuration file variables. If the variable were ever set...\n\n**Recommendation**:\nRemove the leading slash from both lines so they read: iniget $NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers and iniset $NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers ...","commit_id":"9ab35128d6612c89b397e7bda4fcdbf3b966a24a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"231cf44534bbaac78dc447f38bcf687d2bbb1527","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                # that the device_profile field on Neutron ports is"},{"line_number":36,"context_line":"                # processed during creation (required for smartNIC SR-IOV)."},{"line_number":37,"context_line":"                if [[ \"$CYBORG_ENABLED_DRIVERS\" \u003d~ nic_driver ]]; then"},{"line_number":38,"context_line":"                    local ext\u003d$(iniget /$NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers)"},{"line_number":39,"context_line":"                    if [[ ! \",$ext,\" \u003d~ ,port_device_profile, ]]; then"},{"line_number":40,"context_line":"                        iniset /$NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers \"${ext:+${ext},}port_device_profile\""},{"line_number":41,"context_line":"                    fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"fcf0e6f2_4645ae30","line":38,"in_reply_to":"20334f72_1f85a705","updated":"2026-07-28 20:14:48.000000000","message":"https://github.com/openstack/devstack/blob/70c041f2720b96f86bfddc72791a83555e65029b/lib/neutron#L78-L79\n\nhttps://github.com/openstack/devstack/blob/70c041f2720b96f86bfddc72791a83555e65029b/lib/neutron#L885-L909\n\nyep its correct\nthe / is not required","commit_id":"9ab35128d6612c89b397e7bda4fcdbf3b966a24a"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4897b6700af8a2091e724c5eddc669d017b2de66","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                # that the device_profile field on Neutron ports is"},{"line_number":36,"context_line":"                # processed during creation (required for smartNIC SR-IOV)."},{"line_number":37,"context_line":"                if [[ \"$CYBORG_ENABLED_DRIVERS\" \u003d~ nic_driver ]]; then"},{"line_number":38,"context_line":"                    local ext\u003d$(iniget /$NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers)"},{"line_number":39,"context_line":"                    if [[ ! \",$ext,\" \u003d~ ,port_device_profile, ]]; then"},{"line_number":40,"context_line":"                        iniset /$NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers \"${ext:+${ext},}port_device_profile\""},{"line_number":41,"context_line":"                    fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"d346d4e1_e77bbf93","line":38,"in_reply_to":"60660c15_3ff74041","updated":"2026-07-29 20:59:27.000000000","message":"Done","commit_id":"9ab35128d6612c89b397e7bda4fcdbf3b966a24a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a84f713e6d1ba560005ce1d0b44000486d837226","unresolved":true,"context_lines":[{"line_number":35,"context_line":"                # that the device_profile field on Neutron ports is"},{"line_number":36,"context_line":"                # processed during creation (required for smartNIC SR-IOV)."},{"line_number":37,"context_line":"                if [[ \"$CYBORG_ENABLED_DRIVERS\" \u003d~ nic_driver ]]; then"},{"line_number":38,"context_line":"                    local ext\u003d$(iniget /$NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers)"},{"line_number":39,"context_line":"                    if [[ ! \",$ext,\" \u003d~ ,port_device_profile, ]]; then"},{"line_number":40,"context_line":"                        iniset /$NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers \"${ext:+${ext},}port_device_profile\""},{"line_number":41,"context_line":"                    fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"9c9b2b73_ec33687d","line":38,"in_reply_to":"95dce15d_76afd7aa","updated":"2026-07-29 12:14:46.000000000","message":"bum i gues it is \n\n\ni kind of hate how these are compeost so indirectly but yes Q_PLUGIN_CONF_PATH dose seam to be prefixed.\n\nhttps://github.com/openstack/devstack/blob/70c041f2720b96f86bfddc72791a83555e65029b/lib/neutron_plugins/ml2#L114\n\npart of the problem here si that we are not just extiding\n\nQ_ML2_PLUGIN_EXT_DRIVERS\n\nill admit any time i have ever doen this i have just done it via the local.conf\n\ne.g.\n\n```\n[[post-config|/$Q_PLUGIN_CONF_FILE]]\n[ml2]\nextension_drivers \u003d port_security,qos\n```\nand there i am prfixing it so i think your right\n\npart of the problem here is also \nhttps://opendev.org/openstack/neutron/src/branch/master/devstack/lib/ml2#L12\nthe neutron plugin is modifying how devstack works vs when its not enabled.\n\ni.e. when you do enable the neutron devstack plugin the ml2 confging is generated\nearler\n\nideally we woudl generate htis correctly up rount and not need to modify it directly ourselves.\n\nso we should likely instead just append to Q_ML2_PLUGIN_EXT_DRIVERS\n\n\nhttps://github.com/openstack/devstack/blob/70c041f2720b96f86bfddc72791a83555e65029b/lib/neutron_plugins/ml2#L39-L43\n\nif we jus tdo the check and extend that var in say the install phase\n\nthen we dont need to have the file path at all or use iniset","commit_id":"9ab35128d6612c89b397e7bda4fcdbf3b966a24a"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b528d7bd68c402d5a5b66d0c01e19abc013cf519","unresolved":true,"context_lines":[{"line_number":35,"context_line":"                # that the device_profile field on Neutron ports is"},{"line_number":36,"context_line":"                # processed during creation (required for smartNIC SR-IOV)."},{"line_number":37,"context_line":"                if [[ \"$CYBORG_ENABLED_DRIVERS\" \u003d~ nic_driver ]]; then"},{"line_number":38,"context_line":"                    local ext\u003d$(iniget /$NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers)"},{"line_number":39,"context_line":"                    if [[ ! \",$ext,\" \u003d~ ,port_device_profile, ]]; then"},{"line_number":40,"context_line":"                        iniset /$NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers \"${ext:+${ext},}port_device_profile\""},{"line_number":41,"context_line":"                    fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"60660c15_3ff74041","line":38,"in_reply_to":"9c9b2b73_ec33687d","updated":"2026-07-29 17:31:40.000000000","message":"OK I see. Let me change it to that.","commit_id":"9ab35128d6612c89b397e7bda4fcdbf3b966a24a"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"17df12b2f79a5ed7c984a816a46e2e776a7d4f5d","unresolved":true,"context_lines":[{"line_number":35,"context_line":"                # that the device_profile field on Neutron ports is"},{"line_number":36,"context_line":"                # processed during creation (required for smartNIC SR-IOV)."},{"line_number":37,"context_line":"                if [[ \"$CYBORG_ENABLED_DRIVERS\" \u003d~ nic_driver ]]; then"},{"line_number":38,"context_line":"                    local ext\u003d$(iniget /$NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers)"},{"line_number":39,"context_line":"                    if [[ ! \",$ext,\" \u003d~ ,port_device_profile, ]]; then"},{"line_number":40,"context_line":"                        iniset /$NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers \"${ext:+${ext},}port_device_profile\""},{"line_number":41,"context_line":"                    fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"95dce15d_76afd7aa","line":38,"in_reply_to":"fcf0e6f2_4645ae30","updated":"2026-07-28 20:37:13.000000000","message":"OK ... so Q_PLUGIN_CONF_PATH is a relative path: https://github.com/openstack/devstack/blob/70c041f2720b96f86bfddc72791a83555e65029b/lib/neutron_plugins/ml2#L65\n\nSo it seems like the leading slash _should_ be included?","commit_id":"9ab35128d6612c89b397e7bda4fcdbf3b966a24a"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"b9fea052f1f43b42968e7b5a5d258a933f3f66e3","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                # that the device_profile field on Neutron ports is"},{"line_number":36,"context_line":"                # processed during creation (required for smartNIC SR-IOV)."},{"line_number":37,"context_line":"                if [[ \"$CYBORG_ENABLED_DRIVERS\" \u003d~ nic_driver ]]; then"},{"line_number":38,"context_line":"                    local ext\u003d$(iniget $NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers)"},{"line_number":39,"context_line":"                    if [[ ! \",$ext,\" \u003d~ ,port_device_profile, ]]; then"},{"line_number":40,"context_line":"                        iniset $NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers \"${ext:+${ext},}port_device_profile\""},{"line_number":41,"context_line":"                    fi"}],"source_content_type":"text/x-sh","patch_set":3,"id":"42f5ffe5_85e8bc8b","line":38,"updated":"2026-07-28 20:25:59.000000000","message":"The new code at plugin.sh:38 uses `local ext\u003d$(iniget ...)` inside a case statement at the top level of the script (not inside any function). In bash, `local` can only be used inside a function. When used outside one, bash prints an error to stderr and the assignment does NOT happen — ext remains...\n\n**Severity**: HIGH | **Confidence**: 1.0\n\n**Risk**: When any NIC driver is enabled (e.g., intel_nic_driver), the extension_drivers value in ml2_conf.ini is overwritten with only \u0027port_device_profile\u0027, discarding any pre-existing extension drivers such as \u0027port_security\u0027. This can silently break security group functionality. An error message (\u0027loca...\n\n**Priority**: Before merge\n**Why This Matters**: When any NIC driver is enabled (e.g., intel_nic_driver), the extension_drivers value in ml2_conf.ini is overwritten with only \u0027port_device_profile\u0027, discarding any pre-existing extension drivers such as \u0027port_security\u0027. This can silently break security group functionality. An error message (\u0027loca...\n\n**Recommendation**:\nRemove the `local` keyword from line 38, since the variable is used only within the same case block and does not need function-local scoping. Change to: `ext\u003d$(iniget $NEUTRON_CORE_PLUGIN_CONF ml2 extension_drivers)`","commit_id":"059601d2080bbc9c27be89d7022c1eb34f3b2772"}],"doc/source/contributor/intel-nic-sriov.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"994461aa9d5d9d869444b71004b65cbcabb7abc8","unresolved":true,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Create a provider network on the SR-IOV physical network:"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":".. code-block:: console"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"   $ openstack network create sriov-net \\"},{"line_number":129,"context_line":"       --provider-network-type flat --provider-physical-network physnet1"},{"line_number":130,"context_line":"   $ openstack subnet create sriov-subnet \\"},{"line_number":131,"context_line":"       --network sriov-net --subnet-range 192.168.100.0/24"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Create a port with the ``accelerator-direct`` vnic type and the device"},{"line_number":134,"context_line":"profile:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"e02ba400_cc3772ec","line":131,"range":{"start_line":126,"start_character":0,"end_line":131,"end_character":58},"updated":"2026-07-28 20:25:32.000000000","message":"i this is more just for general use\n\n\ndevstack will create teh public network as a flat network automaticlly","commit_id":"9ab35128d6612c89b397e7bda4fcdbf3b966a24a"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4897b6700af8a2091e724c5eddc669d017b2de66","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Create a provider network on the SR-IOV physical network:"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":".. code-block:: console"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"   $ openstack network create sriov-net \\"},{"line_number":129,"context_line":"       --provider-network-type flat --provider-physical-network physnet1"},{"line_number":130,"context_line":"   $ openstack subnet create sriov-subnet \\"},{"line_number":131,"context_line":"       --network sriov-net --subnet-range 192.168.100.0/24"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Create a port with the ``accelerator-direct`` vnic type and the device"},{"line_number":134,"context_line":"profile:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5979b203_a6b481e3","line":131,"range":{"start_line":126,"start_character":0,"end_line":131,"end_character":58},"in_reply_to":"e02ba400_cc3772ec","updated":"2026-07-29 20:59:27.000000000","message":"Done","commit_id":"9ab35128d6612c89b397e7bda4fcdbf3b966a24a"}]}
