)]}'
{"specs/kilo/approved/sriov-interface-attach-detach.rst":[{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"68a677980d542a7dee01390586c033507b08a3d4","unresolved":false,"context_lines":[{"line_number":8,"context_line":"support sriov interface attach/detach"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/sriov-interface-attach-detach"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_a144fa74","line":11,"updated":"2014-12-08 07:36:13.000000000","message":"no need this line.","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"d0dc3a26e97ed534c1fb4b99d27a2f03e2798a20","unresolved":false,"context_lines":[{"line_number":8,"context_line":"support sriov interface attach/detach"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/sriov-interface-attach-detach"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_e45c504f","line":11,"in_reply_to":"3a961159_a144fa74","updated":"2014-12-16 06:28:33.000000000","message":"Done in V2.","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"33e66232485268b082fa6a85743dcdafb2bed59c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"2014. And in Juno release, the libvirt driver is enhanced to support SR-IOV"},{"line_number":19,"context_line":"networking by [LIBVIRT_SUPPORT_SR-IOV]_. Also [PCI_PASSTHROUGH_SRIOV]_ enables"},{"line_number":20,"context_line":"a nova instance to be booted up with neutron SRIOV ports."},{"line_number":21,"context_line":"Now we can support attach or detach SR-IOV interfaces to a living VM if host"},{"line_number":22,"context_line":"supports SR-IOV base on the above patches."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_2edda342","line":21,"updated":"2014-12-12 15:34:30.000000000","message":"Here and throughout, please replace \"a living VM\" with \"an active VM\" :)","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"d0dc3a26e97ed534c1fb4b99d27a2f03e2798a20","unresolved":false,"context_lines":[{"line_number":18,"context_line":"2014. And in Juno release, the libvirt driver is enhanced to support SR-IOV"},{"line_number":19,"context_line":"networking by [LIBVIRT_SUPPORT_SR-IOV]_. Also [PCI_PASSTHROUGH_SRIOV]_ enables"},{"line_number":20,"context_line":"a nova instance to be booted up with neutron SRIOV ports."},{"line_number":21,"context_line":"Now we can support attach or detach SR-IOV interfaces to a living VM if host"},{"line_number":22,"context_line":"supports SR-IOV base on the above patches."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_64306008","line":21,"in_reply_to":"3a961159_2edda342","updated":"2014-12-16 06:28:33.000000000","message":"Done in V2.","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"33e66232485268b082fa6a85743dcdafb2bed59c","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Right now it is possible to attach/detach a normal interface for a living VM"},{"line_number":28,"context_line":"by nova attach_interface/detach_interface API."},{"line_number":29,"context_line":"However, it\u0027s not possible to request access to virtual network dynamicly via"},{"line_number":30,"context_line":"SR-IOV NICs at present."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"There are two variants in connecting a SR-IOV port to its corresponding VF."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_4ee02ffa","line":29,"updated":"2014-12-12 15:34:30.000000000","message":"s/dynamicly/dynamically/","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"33e66232485268b082fa6a85743dcdafb2bed59c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                        [--fixed-ip \u003cfixed_ip\u003e] \u003cserver\u003e"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"However currently the nova do not know the SR-IOV profile when attach it,"},{"line_number":47,"context_line":"so the Nova interface-attach API will not be enhanced to support SR-IOV"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_6eea4bdc","line":47,"updated":"2014-12-12 15:34:30.000000000","message":"I have no idea what this last sentence is trying to say. Could you rephrase it?","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"d0dc3a26e97ed534c1fb4b99d27a2f03e2798a20","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                        [--fixed-ip \u003cfixed_ip\u003e] \u003cserver\u003e"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"However currently the nova do not know the SR-IOV profile when attach it,"},{"line_number":47,"context_line":"so the Nova interface-attach API will not be enhanced to support SR-IOV"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_04731ce8","line":47,"in_reply_to":"3a961159_18572627","updated":"2014-12-16 06:28:33.000000000","message":"Yongli He, Thank you for your explanation.","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"f73a40c96d6e82091d0ab4b3a69bce26d9437c7a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                        [--fixed-ip \u003cfixed_ip\u003e] \u003cserver\u003e"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"However currently the nova do not know the SR-IOV profile when attach it,"},{"line_number":47,"context_line":"so the Nova interface-attach API will not be enhanced to support SR-IOV"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_18572627","line":47,"in_reply_to":"3a961159_6eea4bdc","updated":"2014-12-15 06:28:46.000000000","message":"the normal pci allocation already finished after the server boot up,  the nova attach interface, is hotplug a interface to the existing server.\n\nif the port to be hotplugged for this server is \"direct\u0027 or \u0027macvtap\u0027,  it just not work because no pci device allocated for this.\n\nwe need  translating the port to pci request in the \u0027nova attach-interface\u0027 API stage, and allocating the pci devices  on host to supporting the hotplug a SRIOV port.","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":6772,"name":"Stephen Gordon","email":"sgordon@redhat.com","username":"sgordon"},"change_message_id":"8c4399bc1ca9050bf0267276db06c83d8b9cd5e7","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"However currently the nova do not know the SR-IOV profile when attach it,"},{"line_number":47,"context_line":"so the Nova interface-attach API will not be enhanced to support SR-IOV"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Use Cases"},{"line_number":51,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_170f0189","line":48,"updated":"2014-12-13 19:46:18.000000000","message":"This last sentence, I suspect, is meant to be the crux of the problem description (rest is basically a refresher on current state as of Juno) - it needs to be expanded to explain exactly why interface-attach is not working for these ports today.","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"f73a40c96d6e82091d0ab4b3a69bce26d9437c7a","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"However currently the nova do not know the SR-IOV profile when attach it,"},{"line_number":47,"context_line":"so the Nova interface-attach API will not be enhanced to support SR-IOV"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Use Cases"},{"line_number":51,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_581b6e80","line":48,"in_reply_to":"3a961159_170f0189","updated":"2014-12-15 06:28:46.000000000","message":"refer to my reply to Jay Pipes, hope it\u0027s a little clear.","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"d0dc3a26e97ed534c1fb4b99d27a2f03e2798a20","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"However currently the nova do not know the SR-IOV profile when attach it,"},{"line_number":47,"context_line":"so the Nova interface-attach API will not be enhanced to support SR-IOV"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Use Cases"},{"line_number":51,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_a756ca04","line":48,"in_reply_to":"3a961159_581b6e80","updated":"2014-12-16 06:28:33.000000000","message":"Yongli He, Thank you for your explanation.","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"33e66232485268b082fa6a85743dcdafb2bed59c","unresolved":false,"context_lines":[{"line_number":51,"context_line":"----------"},{"line_number":52,"context_line":"* As an user, I want to request access to a new virtual network via SR-IOV"},{"line_number":53,"context_line":"  NICs, if host support it."},{"line_number":54,"context_line":"* As an user, I want to separate a SR-IOV NICs from a network."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Project Priority"},{"line_number":57,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_8ee5b70a","line":54,"updated":"2014-12-12 15:34:30.000000000","message":"Users of a cloud system should not want or need to know anything about the underlying physical hardware; knowing anything about the underlying hardware goes against the whole idea of virtualization, IMO. Users of cloud systems should only speak or think in terms of the abstract: tiers of network performance. So, the use case here should be more along the lines of:\n\nAlice wants certain virtual machines to have access to faster networking interfaces. She configures her virtual machine instance as normal. After launch, Alice wishes to add a new network interface to her virtual machine that has better performance than the network interface already on her VM. She calls an API to attach a new network interface, passing in some tag that indicates a better tier of performance for the interface.","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"d0dc3a26e97ed534c1fb4b99d27a2f03e2798a20","unresolved":false,"context_lines":[{"line_number":51,"context_line":"----------"},{"line_number":52,"context_line":"* As an user, I want to request access to a new virtual network via SR-IOV"},{"line_number":53,"context_line":"  NICs, if host support it."},{"line_number":54,"context_line":"* As an user, I want to separate a SR-IOV NICs from a network."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Project Priority"},{"line_number":57,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_c75bd62c","line":54,"in_reply_to":"3a961159_8ee5b70a","updated":"2014-12-16 06:28:33.000000000","message":"Done","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"f73a40c96d6e82091d0ab4b3a69bce26d9437c7a","unresolved":false,"context_lines":[{"line_number":61,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"attach_interface"},{"line_number":64,"context_line":"----------------"},{"line_number":65,"context_line":"For SR-IOV networking, special libvirt xml is required. So a PCI request id is"},{"line_number":66,"context_line":"need to initialy created to get a SR-IOV information."},{"line_number":67,"context_line":"We can check the \"physical_network\" tag for the attached port."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_73eccb2a","line":64,"updated":"2014-12-15 06:28:46.000000000","message":"for attach interface there is only 2 thing need to be addressed:\n\nfirst one is converting the port/network information from  attach interface API to pci_request, which already had API (network/neutron v2 API).  \n\nthe second thing is alloc the pci device on the host (nova/compute/manager), then the task finished,  libvirt already supporting generating the pci xml for server.","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"33e66232485268b082fa6a85743dcdafb2bed59c","unresolved":false,"context_lines":[{"line_number":63,"context_line":"attach_interface"},{"line_number":64,"context_line":"----------------"},{"line_number":65,"context_line":"For SR-IOV networking, special libvirt xml is required. So a PCI request id is"},{"line_number":66,"context_line":"need to initialy created to get a SR-IOV information."},{"line_number":67,"context_line":"We can check the \"physical_network\" tag for the attached port."},{"line_number":68,"context_line":"And we will create a normal interface without \"physical_network\"."},{"line_number":69,"context_line":"Or We need to correlate the allocated device with the requested network (NIC)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_aef0b3c9","line":66,"updated":"2014-12-12 15:34:30.000000000","message":"s/need to initially created to get/needed to initially create/","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"d0dc3a26e97ed534c1fb4b99d27a2f03e2798a20","unresolved":false,"context_lines":[{"line_number":63,"context_line":"attach_interface"},{"line_number":64,"context_line":"----------------"},{"line_number":65,"context_line":"For SR-IOV networking, special libvirt xml is required. So a PCI request id is"},{"line_number":66,"context_line":"need to initialy created to get a SR-IOV information."},{"line_number":67,"context_line":"We can check the \"physical_network\" tag for the attached port."},{"line_number":68,"context_line":"And we will create a normal interface without \"physical_network\"."},{"line_number":69,"context_line":"Or We need to correlate the allocated device with the requested network (NIC)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_674ce277","line":66,"in_reply_to":"3a961159_aef0b3c9","updated":"2014-12-16 06:28:33.000000000","message":"Done","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"33e66232485268b082fa6a85743dcdafb2bed59c","unresolved":false,"context_lines":[{"line_number":65,"context_line":"For SR-IOV networking, special libvirt xml is required. So a PCI request id is"},{"line_number":66,"context_line":"need to initialy created to get a SR-IOV information."},{"line_number":67,"context_line":"We can check the \"physical_network\" tag for the attached port."},{"line_number":68,"context_line":"And we will create a normal interface without \"physical_network\"."},{"line_number":69,"context_line":"Or We need to correlate the allocated device with the requested network (NIC)"},{"line_number":70,"context_line":"[SUPPORT_SR-IOV_NETWORKING]_ before the libvirt dirver attach, in this way we"},{"line_number":71,"context_line":"can attach a SR-IOV port correctly."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_ceeb3fda","line":68,"updated":"2014-12-12 15:34:30.000000000","message":"What does \"and we will create a normal interface without \"physical_network\"\" mean?","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"33e66232485268b082fa6a85743dcdafb2bed59c","unresolved":false,"context_lines":[{"line_number":68,"context_line":"And we will create a normal interface without \"physical_network\"."},{"line_number":69,"context_line":"Or We need to correlate the allocated device with the requested network (NIC)"},{"line_number":70,"context_line":"[SUPPORT_SR-IOV_NETWORKING]_ before the libvirt dirver attach, in this way we"},{"line_number":71,"context_line":"can attach a SR-IOV port correctly."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Note that for SR-IOV networking, a pre-defined tag \"physical_network\" is aready"},{"line_number":74,"context_line":"used to define the physical network that the devices are attached to, refer to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_eebd5bd9","line":71,"updated":"2014-12-12 15:34:30.000000000","message":"I don\u0027t understand why anything needs to change in Nova, actually. When creating a new port in Neutron, the port should be able to be specified as belonging to a SR-IOV VF and not a \"normal\" vNIC. The port binding information returned from Neutron to Nova should already contain information about the type of port (including PCI device information) and this information should trigger behaviour in libvirt\u0027s VIF classes. I don\u0027t see why there needs to be any change in Nova\u0027s existing attach_interface APIs.","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"f73a40c96d6e82091d0ab4b3a69bce26d9437c7a","unresolved":false,"context_lines":[{"line_number":68,"context_line":"And we will create a normal interface without \"physical_network\"."},{"line_number":69,"context_line":"Or We need to correlate the allocated device with the requested network (NIC)"},{"line_number":70,"context_line":"[SUPPORT_SR-IOV_NETWORKING]_ before the libvirt dirver attach, in this way we"},{"line_number":71,"context_line":"can attach a SR-IOV port correctly."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Note that for SR-IOV networking, a pre-defined tag \"physical_network\" is aready"},{"line_number":74,"context_line":"used to define the physical network that the devices are attached to, refer to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_b3c9d3ad","line":71,"in_reply_to":"3a961159_eebd5bd9","updated":"2014-12-15 06:28:46.000000000","message":"this description is not right for the interface attach, refer my comments above, i think this chapter need revised a lot.","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":6772,"name":"Stephen Gordon","email":"sgordon@redhat.com","username":"sgordon"},"change_message_id":"8c4399bc1ca9050bf0267276db06c83d8b9cd5e7","unresolved":false,"context_lines":[{"line_number":69,"context_line":"Or We need to correlate the allocated device with the requested network (NIC)"},{"line_number":70,"context_line":"[SUPPORT_SR-IOV_NETWORKING]_ before the libvirt dirver attach, in this way we"},{"line_number":71,"context_line":"can attach a SR-IOV port correctly."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Note that for SR-IOV networking, a pre-defined tag \"physical_network\" is aready"},{"line_number":74,"context_line":"used to define the physical network that the devices are attached to, refer to"},{"line_number":75,"context_line":"[ENHANCE_PCI_WHITELIST]_."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_37295de6","line":72,"updated":"2014-12-13 19:46:18.000000000","message":"My re-collection (and it\u0027s been a while) is that interface-attach does not currently work with ports that are associated with a SR-IOV VF, that is you must create the port and attach it at boot - you can\u0027t attach it later. I can\u0027t however recall WHY this is the case, and this spec doesn\u0027t in it\u0027s current form do a lot to remind me :)","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"d0dc3a26e97ed534c1fb4b99d27a2f03e2798a20","unresolved":false,"context_lines":[{"line_number":69,"context_line":"Or We need to correlate the allocated device with the requested network (NIC)"},{"line_number":70,"context_line":"[SUPPORT_SR-IOV_NETWORKING]_ before the libvirt dirver attach, in this way we"},{"line_number":71,"context_line":"can attach a SR-IOV port correctly."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Note that for SR-IOV networking, a pre-defined tag \"physical_network\" is aready"},{"line_number":74,"context_line":"used to define the physical network that the devices are attached to, refer to"},{"line_number":75,"context_line":"[ENHANCE_PCI_WHITELIST]_."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_07d95e83","line":72,"in_reply_to":"3a961159_37295de6","updated":"2014-12-16 06:28:33.000000000","message":"revise it in V2.","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"f73a40c96d6e82091d0ab4b3a69bce26d9437c7a","unresolved":false,"context_lines":[{"line_number":69,"context_line":"Or We need to correlate the allocated device with the requested network (NIC)"},{"line_number":70,"context_line":"[SUPPORT_SR-IOV_NETWORKING]_ before the libvirt dirver attach, in this way we"},{"line_number":71,"context_line":"can attach a SR-IOV port correctly."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Note that for SR-IOV networking, a pre-defined tag \"physical_network\" is aready"},{"line_number":74,"context_line":"used to define the physical network that the devices are attached to, refer to"},{"line_number":75,"context_line":"[ENHANCE_PCI_WHITELIST]_."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_733a0b9a","line":72,"in_reply_to":"3a961159_37295de6","updated":"2014-12-15 06:28:46.000000000","message":"we are not create the port, we just converting the port to pci request as needed, and allocate pci devices.  -:)","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"d0dc3a26e97ed534c1fb4b99d27a2f03e2798a20","unresolved":false,"context_lines":[{"line_number":69,"context_line":"Or We need to correlate the allocated device with the requested network (NIC)"},{"line_number":70,"context_line":"[SUPPORT_SR-IOV_NETWORKING]_ before the libvirt dirver attach, in this way we"},{"line_number":71,"context_line":"can attach a SR-IOV port correctly."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Note that for SR-IOV networking, a pre-defined tag \"physical_network\" is aready"},{"line_number":74,"context_line":"used to define the physical network that the devices are attached to, refer to"},{"line_number":75,"context_line":"[ENHANCE_PCI_WHITELIST]_."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_a7088a29","line":72,"in_reply_to":"3a961159_733a0b9a","updated":"2014-12-16 06:28:33.000000000","message":"Yongli He, Thank you for your explanation.","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"33e66232485268b082fa6a85743dcdafb2bed59c","unresolved":false,"context_lines":[{"line_number":123,"context_line":"either *direct* or *macvtap*, it will call neutron *show_network* to retrieve"},{"line_number":124,"context_line":"the associated physical network. As a consequence, the number of calls to"},{"line_number":125,"context_line":"neutron will be slightly increased when *port-id* is specified in the --nic"},{"line_number":126,"context_line":"option in nova boot."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_0ec1c753","line":126,"updated":"2014-12-12 15:34:30.000000000","message":"This isn\u0027t actually true. Nova already calls Neutron to get the port binding information for any vNIC, so I don\u0027t see there being any additional call needed.","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"d0dc3a26e97ed534c1fb4b99d27a2f03e2798a20","unresolved":false,"context_lines":[{"line_number":123,"context_line":"either *direct* or *macvtap*, it will call neutron *show_network* to retrieve"},{"line_number":124,"context_line":"the associated physical network. As a consequence, the number of calls to"},{"line_number":125,"context_line":"neutron will be slightly increased when *port-id* is specified in the --nic"},{"line_number":126,"context_line":"option in nova boot."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_04215cb4","line":126,"in_reply_to":"3a961159_0ec1c753","updated":"2014-12-16 06:28:33.000000000","message":"Just an additional pci request will be called, that will bring slightly performance impact.\nDone in V2","commit_id":"f1325b25b86ae5f04f1ad5c20505f014022485ab"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"8a6a121a785cf838867a240cefcf0a7e9b0d0b01","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  nova interface-attach [--port-id \u003cport_id\u003e] [--fixed-ip \u003cfixed_ip\u003e] \u003cserver\u003e"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"The nova attach interface, is hotplug a interface to the existing server."},{"line_number":45,"context_line":"The normal pci allocation has already finished after the server boot up."},{"line_number":46,"context_line":"If the port to be hotplugged for this server is \"direct\u0027 or \u0027macvtap\u0027, it just"},{"line_number":47,"context_line":"not work because no pci device allocated for this."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_18ab548a","line":44,"updated":"2014-12-17 05:28:52.000000000","message":"Nova attach interface api hotplug an interface to an existing server.","commit_id":"42495198b0553d029a094ca72a0c11ca9c1d78e4"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"8a6a121a785cf838867a240cefcf0a7e9b0d0b01","unresolved":false,"context_lines":[{"line_number":44,"context_line":"The nova attach interface, is hotplug a interface to the existing server."},{"line_number":45,"context_line":"The normal pci allocation has already finished after the server boot up."},{"line_number":46,"context_line":"If the port to be hotplugged for this server is \"direct\u0027 or \u0027macvtap\u0027, it just"},{"line_number":47,"context_line":"not work because no pci device allocated for this."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"The Nova interface-attach API needs be enhanced to support SR-IOV."},{"line_number":50,"context_line":"We need translating the port to pci request in the \u0027nova attach-interface\u0027 API"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_38b570cd","line":47,"updated":"2014-12-17 05:28:52.000000000","message":"not works because no pci device allocated for it yet.","commit_id":"42495198b0553d029a094ca72a0c11ca9c1d78e4"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"8a6a121a785cf838867a240cefcf0a7e9b0d0b01","unresolved":false,"context_lines":[{"line_number":47,"context_line":"not work because no pci device allocated for this."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"The Nova interface-attach API needs be enhanced to support SR-IOV."},{"line_number":50,"context_line":"We need translating the port to pci request in the \u0027nova attach-interface\u0027 API"},{"line_number":51,"context_line":"stage, and allocating the pci devices on host to supporting the hotplug a SRIOV"},{"line_number":52,"context_line":"port."},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_98f10498","line":50,"updated":"2014-12-17 05:28:52.000000000","message":"s/need translating/need to translate","commit_id":"42495198b0553d029a094ca72a0c11ca9c1d78e4"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"8a6a121a785cf838867a240cefcf0a7e9b0d0b01","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"The Nova interface-attach API needs be enhanced to support SR-IOV."},{"line_number":50,"context_line":"We need translating the port to pci request in the \u0027nova attach-interface\u0027 API"},{"line_number":51,"context_line":"stage, and allocating the pci devices on host to supporting the hotplug a SRIOV"},{"line_number":52,"context_line":"port."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_38ec90c7","line":51,"updated":"2014-12-17 05:28:52.000000000","message":"and allocate, ..... on host to support ...","commit_id":"42495198b0553d029a094ca72a0c11ca9c1d78e4"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"8a6a121a785cf838867a240cefcf0a7e9b0d0b01","unresolved":false,"context_lines":[{"line_number":153,"context_line":"Work Items"},{"line_number":154,"context_line":"----------"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"* nova compute."},{"line_number":157,"context_line":"* nova API"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_3803b074","line":156,"updated":"2014-12-17 05:28:52.000000000","message":"need to be more detail","commit_id":"42495198b0553d029a094ca72a0c11ca9c1d78e4"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"8a6a121a785cf838867a240cefcf0a7e9b0d0b01","unresolved":false,"context_lines":[{"line_number":154,"context_line":"----------"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"* nova compute."},{"line_number":157,"context_line":"* nova API"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_58f79c8c","line":157,"updated":"2014-12-17 05:28:52.000000000","message":"need to be more detail","commit_id":"42495198b0553d029a094ca72a0c11ca9c1d78e4"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"40af5643db954c5c49f12fbcaec8e449cfa652e7","unresolved":false,"context_lines":[{"line_number":34,"context_line":"SR-IOV NICs at present."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"For example we can create a directly SR-IOV port by:"},{"line_number":38,"context_line":"  neutron port-create \u003cnet-id\u003e --binding:vnic-type direct"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Then we can do the following to attach interface to a VM:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_14d5a6b8","line":37,"updated":"2014-12-18 16:09:17.000000000","message":"Nit: s/directly/direct","commit_id":"821f77a771e4fca935fb2e215f87e13cacf2773f"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"40af5643db954c5c49f12fbcaec8e449cfa652e7","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Nova attach interface api hotplug an interface to an existing server."},{"line_number":45,"context_line":"The normal pci allocation has already finished after the server boot up."},{"line_number":46,"context_line":"If the port to be hotplugged for this server is \"direct\u0027 or \u0027macvtap\u0027, it just"},{"line_number":47,"context_line":"not works because no pci device allocated for it yet."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"The Nova interface-attach API needs be enhanced to support SR-IOV."},{"line_number":50,"context_line":"We need to translate the port to pci request in the \u0027nova attach-interface\u0027 API"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_54848eb0","line":47,"updated":"2014-12-18 16:09:17.000000000","message":"Clarification: would the VM boot at all?","commit_id":"821f77a771e4fca935fb2e215f87e13cacf2773f"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"40af5643db954c5c49f12fbcaec8e449cfa652e7","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"attach_interface"},{"line_number":73,"context_line":"----------------"},{"line_number":74,"context_line":"For attach interface there is only 2 thing need to be addressed:"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"First one is converting the port/network information from attach interface API"},{"line_number":77,"context_line":"to pci_request, which already had API (network/neutron v2 API)."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_147126e0","line":74,"updated":"2014-12-18 16:09:17.000000000","message":"Nit: things that need to be addressed","commit_id":"821f77a771e4fca935fb2e215f87e13cacf2773f"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"40af5643db954c5c49f12fbcaec8e449cfa652e7","unresolved":false,"context_lines":[{"line_number":74,"context_line":"For attach interface there is only 2 thing need to be addressed:"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"First one is converting the port/network information from attach interface API"},{"line_number":77,"context_line":"to pci_request, which already had API (network/neutron v2 API)."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The second thing is alloc the pci device on the host (nova/compute/manager)."},{"line_number":80,"context_line":"Libvirt has already supported generating the pci xml for server, and it can"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_345e2246","line":77,"updated":"2014-12-18 16:09:17.000000000","message":"Nit: to a pci request. The API to create a PCI request already exists.","commit_id":"821f77a771e4fca935fb2e215f87e13cacf2773f"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"40af5643db954c5c49f12fbcaec8e449cfa652e7","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"detach_interface"},{"line_number":84,"context_line":"----------------"},{"line_number":85,"context_line":"We need to refresh PCI stats after detach a SR-IOV port."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_94535638","line":85,"updated":"2014-12-18 16:09:17.000000000","message":"do you want to mention that the device will be freed? Is there any extra change needed for detach?","commit_id":"821f77a771e4fca935fb2e215f87e13cacf2773f"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"40af5643db954c5c49f12fbcaec8e449cfa652e7","unresolved":false,"context_lines":[{"line_number":153,"context_line":"Work Items"},{"line_number":154,"context_line":"----------"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"* nova compute API"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_342542c2","line":156,"updated":"2014-12-18 16:09:17.000000000","message":"Make it a little more specific?","commit_id":"821f77a771e4fca935fb2e215f87e13cacf2773f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"630f56cf13a846609b8ad773f922e0b67f3dd4ea","unresolved":false,"context_lines":[{"line_number":168,"context_line":"Both unit and tempest tests need to be created to ensure proper functioning of"},{"line_number":169,"context_line":"SR-IOV networking. For tempest testing, given the nature of SR-IOV depending on"},{"line_number":170,"context_line":"hardware, it may require vendor support and use of proper neutron ML2 mechanism"},{"line_number":171,"context_line":"drivers. Cisco Neutron CI and Mellanox External Testing need to be enhanced in"},{"line_number":172,"context_line":"support of SR-IOV tempest testing."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_30738081","line":171,"updated":"2014-12-18 22:24:44.000000000","message":"What\u0027s the progress on this?  Lots of people in suits at the summit session on NFV promised to help with lots of this stuff but so far I haven\u0027t heard of much, at least in nova, maybe most of the effort on CI is in neutron right now?  Would be good to get some details in the mailing list so people know where this is going (and tag for nova, not just [nfv]).","commit_id":"821f77a771e4fca935fb2e215f87e13cacf2773f"},{"author":{"_account_id":6772,"name":"Stephen Gordon","email":"sgordon@redhat.com","username":"sgordon"},"change_message_id":"a32fe0a07c400b2a08d6b6fab5dd9fc3fae638e9","unresolved":false,"context_lines":[{"line_number":168,"context_line":"Both unit and tempest tests need to be created to ensure proper functioning of"},{"line_number":169,"context_line":"SR-IOV networking. For tempest testing, given the nature of SR-IOV depending on"},{"line_number":170,"context_line":"hardware, it may require vendor support and use of proper neutron ML2 mechanism"},{"line_number":171,"context_line":"drivers. Cisco Neutron CI and Mellanox External Testing need to be enhanced in"},{"line_number":172,"context_line":"support of SR-IOV tempest testing."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_e67034a6","line":171,"in_reply_to":"3a961159_30738081","updated":"2014-12-22 02:26:03.000000000","message":"Intel have been working on getting this up and voting on Nova:\n\nhttps://wiki.openstack.org/wiki/ThirdPartySystems/Intel-PCI-CI","commit_id":"821f77a771e4fca935fb2e215f87e13cacf2773f"}],"specs/liberty/approved/sriov-interface-attach-detach.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"bf76d26c6436b537ccf71075408dbc0dab261412","unresolved":false,"context_lines":[{"line_number":17,"context_line":"networking by [LIBVIRT_SUPPORT_SR-IOV]_. Also [PCI_PASSTHROUGH_SRIOV]_ enables"},{"line_number":18,"context_line":"a nova instance to be booted up with neutron SRIOV ports."},{"line_number":19,"context_line":"Now we can support attach or detach SR-IOV interfaces to an active VM if host"},{"line_number":20,"context_line":"supports SR-IOV base on the above patches."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"There are two variants in connecting a SR-IOV port to its corresponding VF."},{"line_number":23,"context_line":"A SR-IOV port may be directly connected to its VF [DIRECT_SR-IOV]_. Or it may"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_de72767c","line":20,"updated":"2015-06-15 11:02:56.000000000","message":"not sure we need this blurb here, I think that should be assumed now.","commit_id":"90199ab6c92a1e581227615ea6a997047be2499e"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"1f3532d95619fdad30720c0926da64532bc8d76f","unresolved":false,"context_lines":[{"line_number":46,"context_line":"If the port to be hotplugged for this server is \"direct\u0027 or \u0027macvtap\u0027, it just"},{"line_number":47,"context_line":"not works because no pci device allocated for it yet."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"The Nova interface-attach API needs be enhanced to support SR-IOV."},{"line_number":50,"context_line":"We need to translate the port to pci request in the \u0027nova attach-interface\u0027 API"},{"line_number":51,"context_line":"stage, and allocate the pci devices on host to support the hotplug a SRIOV"},{"line_number":52,"context_line":"port."}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_96b5a7ce","line":49,"updated":"2015-06-15 16:33:10.000000000","message":"I do not think we want to update \"interface-attach\" here. We need firstly to have an API to request a pci device since we can need it in future for as an example GPU.\n\nI guess the workflow will be as example:\n\n  nova pci-device-request --type SR-IOV\n  \u003cuuid-pci-request-accepted\u003e\n  nova interface-attach --pci-device \u003cuuid-pci-request-accepted\u003e --port-id \u003cneutron-port-id\u003e \u003cserver\u003e","commit_id":"90199ab6c92a1e581227615ea6a997047be2499e"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"4e675ac4ba115c16f15098a6ce219b94774846c7","unresolved":false,"context_lines":[{"line_number":46,"context_line":"If the port to be hotplugged for this server is \"direct\u0027 or \u0027macvtap\u0027, it just"},{"line_number":47,"context_line":"not works because no pci device allocated for it yet."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"The Nova interface-attach API needs be enhanced to support SR-IOV."},{"line_number":50,"context_line":"We need to translate the port to pci request in the \u0027nova attach-interface\u0027 API"},{"line_number":51,"context_line":"stage, and allocate the pci devices on host to support the hotplug a SRIOV"},{"line_number":52,"context_line":"port."}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_8a551afb","line":49,"in_reply_to":"fa32b979_96b5a7ce","updated":"2015-06-17 10:51:13.000000000","message":"ACK","commit_id":"90199ab6c92a1e581227615ea6a997047be2499e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"bf76d26c6436b537ccf71075408dbc0dab261412","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The second thing is alloc the pci device on the host (nova/compute/manager)."},{"line_number":80,"context_line":"Libvirt has already supported generating the pci xml for server, and it can"},{"line_number":81,"context_line":"attach allocated SR-IOV port correctly."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"detach_interface"},{"line_number":84,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_5ebae6e2","line":81,"updated":"2015-06-15 11:02:56.000000000","message":"What happens if you don\u0027t have any devices available to attach? how do we deal with this error? Does that put the server into an ERROR state, or does it just report an error via the instance actions API?","commit_id":"90199ab6c92a1e581227615ea6a997047be2499e"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"02e665c43ff436ec5c6d082b752f471d1b91723e","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The second thing is alloc the pci device on the host (nova/compute/manager)."},{"line_number":80,"context_line":"Libvirt has already supported generating the pci xml for server, and it can"},{"line_number":81,"context_line":"attach allocated SR-IOV port correctly."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"detach_interface"},{"line_number":84,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_f405e7c1","line":81,"in_reply_to":"fa32b979_5ebae6e2","updated":"2015-06-16 09:55:17.000000000","message":"Yep, the unavailability of a suitable PCI device seems like it will be the most common pitfall here, so need a clear way to indicate failure to the user. Particularly given that the user will have no visibility into whether there are any free PCI devices on the host their VM is placed on.","commit_id":"90199ab6c92a1e581227615ea6a997047be2499e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"bf76d26c6436b537ccf71075408dbc0dab261412","unresolved":false,"context_lines":[{"line_number":83,"context_line":"detach_interface"},{"line_number":84,"context_line":"----------------"},{"line_number":85,"context_line":"We need to refresh PCI status to free the device object after detach a SR-IOV"},{"line_number":86,"context_line":"port."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_7e31eaa1","line":86,"updated":"2015-06-15 11:02:56.000000000","message":"Is it safe to detach an directly connected PCI passthrough device?\n\nI would expect the guest might just crash?\n\nShould we only allow hot unplug of macvtap devices?","commit_id":"90199ab6c92a1e581227615ea6a997047be2499e"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"02e665c43ff436ec5c6d082b752f471d1b91723e","unresolved":false,"context_lines":[{"line_number":83,"context_line":"detach_interface"},{"line_number":84,"context_line":"----------------"},{"line_number":85,"context_line":"We need to refresh PCI status to free the device object after detach a SR-IOV"},{"line_number":86,"context_line":"port."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_148c0b34","line":86,"in_reply_to":"fa32b979_7e31eaa1","updated":"2015-06-16 09:55:17.000000000","message":"It is safe, but it is not guaranteed to succeed. What happens is that  the hypervisor injects an ACPI request to unplug the device. The guest OS must co-operate by releasing the device, before the hypervisor  will  complete the action of physically removing it.  So you require a guest OS that supports ACPI unplug of course, and if the guest is crashed or being malicious there is no guarantee the unplug will succeed. Libvirt will wait a short while for success, but you must monitor for libvirt events to see if/when it finally completes.  This delayed release has implications for when Nova can mark the PCI device as unused and available for other guests to assign.","commit_id":"90199ab6c92a1e581227615ea6a997047be2499e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"bf76d26c6436b537ccf71075408dbc0dab261412","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Both unit and tempest tests need to be created to ensure proper functioning of"},{"line_number":170,"context_line":"SR-IOV networking. For tempest testing, given the nature of SR-IOV depending on"},{"line_number":171,"context_line":"hardware, it may require vendor support."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Now intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":174,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV ralated feature."}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_bebbf20d","line":171,"updated":"2015-06-15 11:02:56.000000000","message":"This shouldn\u0027t need extra tempest tests, it should just be running the existing vif plug/unplug scripts, as I understand it?","commit_id":"90199ab6c92a1e581227615ea6a997047be2499e"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"4e675ac4ba115c16f15098a6ce219b94774846c7","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Both unit and tempest tests need to be created to ensure proper functioning of"},{"line_number":170,"context_line":"SR-IOV networking. For tempest testing, given the nature of SR-IOV depending on"},{"line_number":171,"context_line":"hardware, it may require vendor support."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Now intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":174,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV ralated feature."}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_6a3a16ce","line":171,"in_reply_to":"fa32b979_bebbf20d","updated":"2015-06-17 10:51:13.000000000","message":"sure, extra tempest tests will be added into  INTEL_SRIOV_CI.","commit_id":"90199ab6c92a1e581227615ea6a997047be2499e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"bf76d26c6436b537ccf71075408dbc0dab261412","unresolved":false,"context_lines":[{"line_number":171,"context_line":"hardware, it may require vendor support."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Now intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":174,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV ralated feature."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_fecbba70","line":174,"updated":"2015-06-15 11:02:56.000000000","message":"Can you please make it clear you are going to work with the intel CI folks to add tests for this feature?","commit_id":"90199ab6c92a1e581227615ea6a997047be2499e"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"4e675ac4ba115c16f15098a6ce219b94774846c7","unresolved":false,"context_lines":[{"line_number":171,"context_line":"hardware, it may require vendor support."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Now intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":174,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV ralated feature."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_0757c326","line":174,"in_reply_to":"fa32b979_fecbba70","updated":"2015-06-17 10:51:13.000000000","message":"yes. \n  actually I was one of  INTEL_SRIOV_CI maintianer. \n  you can find my mane here.  https://wiki.openstack.org/wiki/ThirdPartySystems/Intel-SRIOV-CI","commit_id":"90199ab6c92a1e581227615ea6a997047be2499e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"bf76d26c6436b537ccf71075408dbc0dab261412","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Now intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":174,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV ralated feature."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Documentation Impact"},{"line_number":178,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_3eb922ea","line":175,"updated":"2015-06-15 11:02:56.000000000","message":"I am guessing macvtap and non-macvtap both need testing here?","commit_id":"90199ab6c92a1e581227615ea6a997047be2499e"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"4e675ac4ba115c16f15098a6ce219b94774846c7","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Now intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":174,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV ralated feature."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Documentation Impact"},{"line_number":178,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_072ee3a4","line":175,"in_reply_to":"fa32b979_3eb922ea","updated":"2015-06-17 10:51:13.000000000","message":"both.","commit_id":"90199ab6c92a1e581227615ea6a997047be2499e"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"7684b22b47fe3d8987d2b632e4b0f829df995fb5","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Then we can do the following to attach interface to a VM:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  nova pci-device-request --type SR-IOV"},{"line_number":43,"context_line":"  \u003cuuid-pci-request-accepted\u003e"},{"line_number":44,"context_line":"  nova interface-attach --pci-device \u003cuuid-pci-request-accepted\u003e --port-id"},{"line_number":45,"context_line":"  \u003cneutron-port-id\u003e \u003cserver\u003e"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_affc65b8","line":42,"updated":"2015-06-18 16:19:59.000000000","message":"I do not believe this API is already implemented and did not find any blueprint/spec. I\u0027m going to work on a spec to address this API will try to provide something ready quickly so you can use it in your change.\n\n  https://blueprints.launchpad.net/nova/+spec/pci-passthrough-hotplug","commit_id":"1465b5490bbd7068937345af3e1e2c189619482d"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"959be6430063053c441c88b6102b51d4276c4fe3","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Then we can do the following to attach interface to a VM:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  nova pci-device-request --type SR-IOV"},{"line_number":43,"context_line":"  \u003cuuid-pci-request-accepted\u003e"},{"line_number":44,"context_line":"  nova interface-attach --pci-device \u003cuuid-pci-request-accepted\u003e --port-id"},{"line_number":45,"context_line":"  \u003cneutron-port-id\u003e \u003cserver\u003e"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a29b11f_d4b831e8","line":42,"in_reply_to":"fa32b979_69404408","updated":"2015-10-18 08:41:23.000000000","message":"hi sahid. \nplease see John Garbutt\t and Jay Pipes\t comments.","commit_id":"1465b5490bbd7068937345af3e1e2c189619482d"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"be222d77c6eb1dba198dd8c29cb126eda27e8e63","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Then we can do the following to attach interface to a VM:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  nova pci-device-request --type SR-IOV"},{"line_number":43,"context_line":"  \u003cuuid-pci-request-accepted\u003e"},{"line_number":44,"context_line":"  nova interface-attach --pci-device \u003cuuid-pci-request-accepted\u003e --port-id"},{"line_number":45,"context_line":"  \u003cneutron-port-id\u003e \u003cserver\u003e"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_69404408","line":42,"in_reply_to":"fa32b979_af28e59a","updated":"2015-06-22 07:34:35.000000000","message":"We need to request for a pci device when a guest is already running. That needs a specific spec to think about how we have to implement this since for instance a host can does not have more pci devices available. This is not specifically linked to the network hardwares.","commit_id":"1465b5490bbd7068937345af3e1e2c189619482d"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"aaf1ef5fd76f6674821cd4e9913c465302d9d538","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Then we can do the following to attach interface to a VM:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  nova pci-device-request --type SR-IOV"},{"line_number":43,"context_line":"  \u003cuuid-pci-request-accepted\u003e"},{"line_number":44,"context_line":"  nova interface-attach --pci-device \u003cuuid-pci-request-accepted\u003e --port-id"},{"line_number":45,"context_line":"  \u003cneutron-port-id\u003e \u003cserver\u003e"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_af28e59a","line":42,"in_reply_to":"fa32b979_affc65b8","updated":"2015-06-18 16:33:57.000000000","message":"Can you describe what this API would do, and why it\u0027s necessary?","commit_id":"1465b5490bbd7068937345af3e1e2c189619482d"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"224674c16275a794600fd64d8cadb8bb531ffd35","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  nova pci-device-request --type SR-IOV"},{"line_number":43,"context_line":"  \u003cuuid-pci-request-accepted\u003e"},{"line_number":44,"context_line":"  nova interface-attach --pci-device \u003cuuid-pci-request-accepted\u003e --port-id"},{"line_number":45,"context_line":"  \u003cneutron-port-id\u003e \u003cserver\u003e"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Nova attach interface api hotplug an interface to an existing server."},{"line_number":48,"context_line":"The normal pci allocation has already finished after the server boot up."}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba3cc151_f08c4c81","line":45,"updated":"2015-07-06 11:34:02.000000000","message":"Surely the user should just do the normal port attach, similar to when booting a VM, and we just do a PCI attach instead.\n\nAlthough given the real resources required, its almost like this should be a resize to a flavor that allows PCI passthrough.\n\nThis needs more thought, I am afraid.","commit_id":"1465b5490bbd7068937345af3e1e2c189619482d"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"aaf880342e6de88dabd28a2794dbf5ffdc7d2d02","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  nova pci-device-request --type SR-IOV"},{"line_number":43,"context_line":"  \u003cuuid-pci-request-accepted\u003e"},{"line_number":44,"context_line":"  nova interface-attach --pci-device \u003cuuid-pci-request-accepted\u003e --port-id"},{"line_number":45,"context_line":"  \u003cneutron-port-id\u003e \u003cserver\u003e"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Nova attach interface api hotplug an interface to an existing server."},{"line_number":48,"context_line":"The normal pci allocation has already finished after the server boot up."}],"source_content_type":"text/x-rst","patch_set":6,"id":"9a41bdd9_218b1320","line":45,"in_reply_to":"ba3cc151_f08c4c81","updated":"2015-07-18 12:12:46.000000000","message":"Agreed with John here. There should be no new CLI or REST API interface for attaching/detaching an SR-IOV VF to a vNIC.\n\nThe existing nova interface attach API takes a port_id and net_id parameter. The SR-IOV PCI device information should be looked up based on the port_id.","commit_id":"1465b5490bbd7068937345af3e1e2c189619482d"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"a96ca9b9131e608de2598aca4f8acb0deeae6028","unresolved":false,"context_lines":[{"line_number":191,"context_line":"For tempest testing, given the nature of SR-IOV depending on hardware."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"Now intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":194,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV ralated feature."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da20952f_ad766c3c","line":194,"updated":"2015-08-27 10:37:49.000000000","message":"s/ralated/related/","commit_id":"1465b5490bbd7068937345af3e1e2c189619482d"}],"specs/mitaka/approved/sriov-interface-attach-detach.rst":[{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"fc4e68ea91eac54a9892a34b230645230ea17f21","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Now we can support attach or detach SR-IOV interfaces to an active VM if host"},{"line_number":20,"context_line":"supports SR-IOV base on the above patches."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"There are two variants in connecting a SR-IOV port to its corresponding VF."},{"line_number":23,"context_line":"A SR-IOV port may be directly connected to its VF [DIRECT_SR-IOV]_. Or it may"},{"line_number":24,"context_line":"be connected with a macvtap device that resides on the host, which is then"},{"line_number":25,"context_line":"connected to the corresponding VF [MACVTAP_SR-IOV]_. Both connecting types will"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a29b11f_6e7e971a","line":22,"range":{"start_line":22,"start_character":72,"end_line":22,"end_character":74},"updated":"2015-10-21 14:04:33.000000000","message":"VF, what does this stand for please? Is this a virtual function, of a PCI card?","commit_id":"5f0cc412d23646a0694e2ccd74201156b6613fc7"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"7af63d64d5e13d900388ea6826c4e15370ec9227","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Now we can support attach or detach SR-IOV interfaces to an active VM if host"},{"line_number":20,"context_line":"supports SR-IOV base on the above patches."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"There are two variants in connecting a SR-IOV port to its corresponding VF."},{"line_number":23,"context_line":"A SR-IOV port may be directly connected to its VF [DIRECT_SR-IOV]_. Or it may"},{"line_number":24,"context_line":"be connected with a macvtap device that resides on the host, which is then"},{"line_number":25,"context_line":"connected to the corresponding VF [MACVTAP_SR-IOV]_. Both connecting types will"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a26ad4f_9e8a4f1a","line":22,"in_reply_to":"3a29b11f_6e7e971a","updated":"2015-11-02 07:38:50.000000000","message":"virtual function.","commit_id":"5f0cc412d23646a0694e2ccd74201156b6613fc7"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"fc4e68ea91eac54a9892a34b230645230ea17f21","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"The unavailability of a suitable PCI device seems like it will be the most"},{"line_number":83,"context_line":"common pitfall here. So need a clear way via the instance actions API to"},{"line_number":84,"context_line":"indicate failure to the user."},{"line_number":85,"context_line":"Particularly given that the user will have no visibility into whether there are"},{"line_number":86,"context_line":"any free PCI devices on the host their VM is placed on."},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a29b11f_b1a88e8d","line":84,"updated":"2015-10-21 14:04:33.000000000","message":"instance actions seems like a weird way to indicate failure. Can\u0027t we fail to create the port instead?","commit_id":"5f0cc412d23646a0694e2ccd74201156b6613fc7"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"9be5887c1a260d239a777be35f4e3a34dafa4d67","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"The unavailability of a suitable PCI device seems like it will be the most"},{"line_number":83,"context_line":"common pitfall here. So need a clear way via the instance actions API to"},{"line_number":84,"context_line":"indicate failure to the user."},{"line_number":85,"context_line":"Particularly given that the user will have no visibility into whether there are"},{"line_number":86,"context_line":"any free PCI devices on the host their VM is placed on."},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a26ad4f_cfe38504","line":84,"in_reply_to":"3a29b11f_b1a88e8d","updated":"2015-10-29 05:52:59.000000000","message":"I don\u0027t think that you need to create a port as the port may be created without knowing which instance it will be attached to.\n\nI think instance actions or maybe InstanceFault was added for this kind of stuff exactly so that\u0027s probably something we want to use actually.\n\nMy only comment to this is that we need to be using the PCI device claim logic, and hold the resource lock (as normal claims do) otherwise we open ourselves up for races.\n\nI will look a little bit into how this works on the libvirt side too, but as long as we do all the necessary locking - I am OK with this idea.","commit_id":"5f0cc412d23646a0694e2ccd74201156b6613fc7"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"9be5887c1a260d239a777be35f4e3a34dafa4d67","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"detach_interface"},{"line_number":89,"context_line":"----------------"},{"line_number":90,"context_line":"We need to refresh PCI status to free the device object after detach a SR-IOV"},{"line_number":91,"context_line":"port."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"It is safe to detach an directly connected PCI passthrough device, but it is"},{"line_number":94,"context_line":"not guaranteed to succeed. What happens is that the hypervisor injects an ACPI"},{"line_number":95,"context_line":"request to unplug the device. The guest OS must co-operate by releasing the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a26ad4f_ef820100","line":92,"range":{"start_line":90,"start_character":0,"end_line":92,"end_character":0},"updated":"2015-10-29 05:52:59.000000000","message":"This also needs to be done holding a compute node resource lock. It would be good to mention it explicitly in the spec so that reviewers can reference it as it is rather critical.","commit_id":"5f0cc412d23646a0694e2ccd74201156b6613fc7"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"fc4e68ea91eac54a9892a34b230645230ea17f21","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"REST API impact"},{"line_number":118,"context_line":"---------------"},{"line_number":119,"context_line":"None"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a29b11f_f12cc603","line":119,"updated":"2015-10-21 14:04:33.000000000","message":"Seems like there should be some API impact, EG to indicate PCI unavailability","commit_id":"5f0cc412d23646a0694e2ccd74201156b6613fc7"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"47f21750ab0582c439c8a955bf43cab6e0914d2d","unresolved":false,"context_lines":[{"line_number":119,"context_line":"None"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Security impact"},{"line_number":123,"context_line":"---------------"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a26ad4f_c5efca85","line":122,"range":{"start_line":122,"start_character":0,"end_line":122,"end_character":15},"updated":"2015-10-30 01:38:24.000000000","message":"We discussed this spec briefly in the nova contributor meetup, and the discussion started around a slight concern that by starting instances and trying to attach sriov devices, a user could deduce some things about the infrastructure. The reason this may not be a big concern is because of some expectations about how people would deploy this.\n\nWhat we might want to do is document a very common setup where a certain flavor would be marked as \"sriov hot-pluggable\" which would actually map to a host aggregate that contains only hosts which support sriov (unless they are already all taken). That way any VM that does not have this flavor would be expected to fail the attach 100% of the time.\n\nAdding this to the spec would be a good first step I think.","commit_id":"5f0cc412d23646a0694e2ccd74201156b6613fc7"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"fc4e68ea91eac54a9892a34b230645230ea17f21","unresolved":false,"context_lines":[{"line_number":164,"context_line":"-----------"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Primary assignee:"},{"line_number":167,"context_line":"  \u003cshaohefeng\u003e"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Work Items"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a29b11f_118062bf","line":167,"updated":"2015-10-21 14:04:33.000000000","message":"femtonit: \u003cname\u003e is used to indicate a gap, usually like quotes you remove the \u003c\u003e","commit_id":"5f0cc412d23646a0694e2ccd74201156b6613fc7"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"af3cc9020800b3e8190baa6230e8b41a4a01ec8c","unresolved":false,"context_lines":[{"line_number":183,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"It can be run the existing vif plug/unplug scripts for unit tests. Tempest"},{"line_number":186,"context_line":"tests need to be created to ensure proper functioning of SR-IOV networking."},{"line_number":187,"context_line":"For tempest testing, given the nature of SR-IOV depending on hardware."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"Now intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a29b11f_83d44f47","line":186,"updated":"2015-10-20 20:50:12.000000000","message":"tempest support test_hotplug_nic,but is skip if port is direct or macvtap \nwhen this bp will be impalement \nwe need to remove the the following lines:\nhttps://github.com/openstack/tempest/blob/master/tempest/scenario/test_network_basic_ops.py#L458-L460\none this is done we can test it with Mellanox CI","commit_id":"5f0cc412d23646a0694e2ccd74201156b6613fc7"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"e1a2d67871aa340d12b64875aedfd3cae3580cbb","unresolved":false,"context_lines":[{"line_number":183,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"It can be run the existing vif plug/unplug scripts for unit tests. Tempest"},{"line_number":186,"context_line":"tests need to be created to ensure proper functioning of SR-IOV networking."},{"line_number":187,"context_line":"For tempest testing, given the nature of SR-IOV depending on hardware."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"Now intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a29b11f_7ec3c1ed","line":186,"in_reply_to":"3a29b11f_83d44f47","updated":"2015-10-21 01:56:58.000000000","message":"That\u0027s great. \nThen we can leverage Mellanox CI.","commit_id":"5f0cc412d23646a0694e2ccd74201156b6613fc7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2dcf1294b33e9cf991cd5a57944e16fd791890c","unresolved":false,"context_lines":[{"line_number":46,"context_line":"not works because no pci device allocated for it yet."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The Nova interface-attach API needs be enhanced to support SR-IOV."},{"line_number":49,"context_line":"We need to translate the port to pci request in the \u0027nova attach-interface\u0027 API"},{"line_number":50,"context_line":"stage, and allocate the pci devices on host to support the hotplug a SRIOV"},{"line_number":51,"context_line":"port."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_fb5a8e4f","line":49,"updated":"2015-11-05 18:50:25.000000000","message":"Couldn\u0027t we do this in the compute manager rather than the API by determining the type of port based on the vnic-type attribute and then do the proper thing?  Or do we have to do the logic in the API layer because of the PCI resource claim as mentioned in the proposed change?","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"d13dff9f03edeb027111dd700dd2dccc7372ab1d","unresolved":false,"context_lines":[{"line_number":46,"context_line":"not works because no pci device allocated for it yet."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The Nova interface-attach API needs be enhanced to support SR-IOV."},{"line_number":49,"context_line":"We need to translate the port to pci request in the \u0027nova attach-interface\u0027 API"},{"line_number":50,"context_line":"stage, and allocate the pci devices on host to support the hotplug a SRIOV"},{"line_number":51,"context_line":"port."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba8a016a_ad2f9d3d","line":49,"in_reply_to":"fa80f949_fb5a8e4f","updated":"2015-11-19 14:17:09.000000000","message":"Have check the code. \n\nwe can do this in the computer manager.  \nin the compute_api.attach_interface .\n\nAPI layer it more better?","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2dcf1294b33e9cf991cd5a57944e16fd791890c","unresolved":false,"context_lines":[{"line_number":58,"context_line":"interfaces. She configures her virtual machine instance as normal."},{"line_number":59,"context_line":"After launch, Alice wishes to add a new network interface to her virtual"},{"line_number":60,"context_line":"machine that has better performance than the network interface already on her"},{"line_number":61,"context_line":"VM. She calls an API to attach a new network interface, passing in some tag"},{"line_number":62,"context_line":"that indicates a better tier of performance for the interface."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_fb212eb5","line":61,"updated":"2015-11-05 18:50:25.000000000","message":"This tag passed in is what I\u0027m wondering about - if the port in neutron has the details about the type of port, couldn\u0027t nova just base it\u0027s logic on that rather than the user having to tell nova explicitly what needs to happen?","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"d13dff9f03edeb027111dd700dd2dccc7372ab1d","unresolved":false,"context_lines":[{"line_number":58,"context_line":"interfaces. She configures her virtual machine instance as normal."},{"line_number":59,"context_line":"After launch, Alice wishes to add a new network interface to her virtual"},{"line_number":60,"context_line":"machine that has better performance than the network interface already on her"},{"line_number":61,"context_line":"VM. She calls an API to attach a new network interface, passing in some tag"},{"line_number":62,"context_line":"that indicates a better tier of performance for the interface."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba8a016a_ad8b1d1e","line":61,"in_reply_to":"fa80f949_fb212eb5","updated":"2015-11-19 14:17:09.000000000","message":"yes. Nova can base on neutron\u0027s details.","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2dcf1294b33e9cf991cd5a57944e16fd791890c","unresolved":false,"context_lines":[{"line_number":62,"context_line":"that indicates a better tier of performance for the interface."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Project Priority"},{"line_number":65,"context_line":"-----------------"},{"line_number":66,"context_line":"None"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_1b13d267","line":65,"updated":"2015-11-05 18:50:25.000000000","message":"This section can be removed.","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"d13dff9f03edeb027111dd700dd2dccc7372ab1d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"that indicates a better tier of performance for the interface."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Project Priority"},{"line_number":65,"context_line":"-----------------"},{"line_number":66,"context_line":"None"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba8a016a_8d84190b","line":65,"in_reply_to":"fa80f949_1b13d267","updated":"2015-11-19 14:17:09.000000000","message":"ACK","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2dcf1294b33e9cf991cd5a57944e16fd791890c","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"The unavailability of a suitable PCI device seems like it will be the most"},{"line_number":87,"context_line":"common pitfall here. So need a clear way via the instance actions API to"},{"line_number":88,"context_line":"indicate failure to the user."},{"line_number":89,"context_line":"Particularly given that the user will have no visibility into whether there are"},{"line_number":90,"context_line":"any free PCI devices on the host their VM is placed on."},{"line_number":91,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_de145845","line":88,"updated":"2015-11-05 18:50:25.000000000","message":"Couldn\u0027t we use instance faults for this?","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"d13dff9f03edeb027111dd700dd2dccc7372ab1d","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"The unavailability of a suitable PCI device seems like it will be the most"},{"line_number":87,"context_line":"common pitfall here. So need a clear way via the instance actions API to"},{"line_number":88,"context_line":"indicate failure to the user."},{"line_number":89,"context_line":"Particularly given that the user will have no visibility into whether there are"},{"line_number":90,"context_line":"any free PCI devices on the host their VM is placed on."},{"line_number":91,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba8a016a_b384d70a","line":88,"in_reply_to":"fa80f949_de145845","updated":"2015-11-19 14:17:09.000000000","message":"does instances faults means something wrong with instance?","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2dcf1294b33e9cf991cd5a57944e16fd791890c","unresolved":false,"context_lines":[{"line_number":101,"context_line":"it. So when require a guest OS that supports ACPI unplug of course, and if the"},{"line_number":102,"context_line":"guest is crashed or being malicious there is no guarantee the unplug will"},{"line_number":103,"context_line":"succeed. Libvirt will wait a short while for success, but nova must monitor for"},{"line_number":104,"context_line":"libvirt events to see if/when it finally completes. This delayed release has"},{"line_number":105,"context_line":"implications for when Nova can mark the PCI device as unused and available for"},{"line_number":106,"context_line":"other guests to assign."},{"line_number":107,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_be3074e9","line":104,"updated":"2015-11-05 18:50:25.000000000","message":"Which specific libvirt events and which minimum version of libvirt is required to register for listening on those events?","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"fdf40bee9e88867179b8ea3375da6d04eef77c47","unresolved":false,"context_lines":[{"line_number":101,"context_line":"it. So when require a guest OS that supports ACPI unplug of course, and if the"},{"line_number":102,"context_line":"guest is crashed or being malicious there is no guarantee the unplug will"},{"line_number":103,"context_line":"succeed. Libvirt will wait a short while for success, but nova must monitor for"},{"line_number":104,"context_line":"libvirt events to see if/when it finally completes. This delayed release has"},{"line_number":105,"context_line":"implications for when Nova can mark the PCI device as unused and available for"},{"line_number":106,"context_line":"other guests to assign."},{"line_number":107,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba8a016a_6953e26b","line":104,"in_reply_to":"fa80f949_be3074e9","updated":"2015-11-19 14:42:35.000000000","message":"VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED  and 1.1.1 version(Jul 30, 2013)","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2dcf1294b33e9cf991cd5a57944e16fd791890c","unresolved":false,"context_lines":[{"line_number":109,"context_line":"Alternatives"},{"line_number":110,"context_line":"------------"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"None"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_9e4c9071","line":112,"updated":"2015-11-05 18:50:25.000000000","message":"I\u0027d like to know about alternatives where the compute API code determines the type of port and does the PCI logic if necessary rather than the user have to pass the type in on the request, it seems we should be able to handle that within nova.","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"1fa262c524ede8075b7dd63eac3dc1da5a8fa772","unresolved":false,"context_lines":[{"line_number":110,"context_line":"------------"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"None"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Data model impact"},{"line_number":116,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_5b15a83d","line":113,"updated":"2015-11-06 18:25:25.000000000","message":"The SR-IOV NIC resources will most likely not be available on all computes, or they will be limited resources on a compute.\n\nAn alternative could be to do the logic in two steps: 1) Do the port-create and attach-interface.  2) Resize the instance so that the scheduler can take the new requirements  into account.\n\nWould that be reasonable ?","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"d13dff9f03edeb027111dd700dd2dccc7372ab1d","unresolved":false,"context_lines":[{"line_number":110,"context_line":"------------"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"None"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Data model impact"},{"line_number":116,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba8a016a_d8a17af9","line":113,"in_reply_to":"fa80f949_5b15a83d","updated":"2015-11-19 14:17:09.000000000","message":"ACK.","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2dcf1294b33e9cf991cd5a57944e16fd791890c","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"REST API impact"},{"line_number":122,"context_line":"---------------"},{"line_number":123,"context_line":"InstanceFault will be raised to indicate PCI unavailability."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Security impact"},{"line_number":126,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_5e9ce8bf","line":123,"updated":"2015-11-05 18:50:25.000000000","message":"This is not a REST API impact - just mention this above where I was saying we could use an InstanceFault to track async failures.\n\nThe REST API impact section is where you detail the microversion changes to the compute API, if any, like adding a new \u0027port-type\u0027 to the request or whatever it\u0027s going to be (which I\u0027d also like to avoid).","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"d13dff9f03edeb027111dd700dd2dccc7372ab1d","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"REST API impact"},{"line_number":122,"context_line":"---------------"},{"line_number":123,"context_line":"InstanceFault will be raised to indicate PCI unavailability."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Security impact"},{"line_number":126,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba8a016a_b566ff27","line":123,"in_reply_to":"fa80f949_5e9ce8bf","updated":"2015-11-19 14:17:09.000000000","message":"ACK","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2dcf1294b33e9cf991cd5a57944e16fd791890c","unresolved":false,"context_lines":[{"line_number":182,"context_line":"Work Items"},{"line_number":183,"context_line":"----------"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"* nova compute API"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_1e7d006e","line":185,"updated":"2015-11-05 18:50:25.000000000","message":"You should have some more detailed work item break down details here.","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2dcf1294b33e9cf991cd5a57944e16fd791890c","unresolved":false,"context_lines":[{"line_number":198,"context_line":"For tempest testing, given the nature of SR-IOV depending on hardware."},{"line_number":199,"context_line":"Tempest supports test_hotplug_nic, but is skip if port is direct or macvtap."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"When this bp will be impalement we can enable it in tempest, and Mellanox CI"},{"line_number":202,"context_line":"can test it."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"Also intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_de97788e","line":201,"updated":"2015-11-05 18:50:25.000000000","message":"s/impalement/implemented/\n\nIs the Mellanox CI running against nova changes today?  I know the Intel CI is (although it\u0027s usually not working).","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"268b8897133984ff3812055ac5e110b3eebedd10","unresolved":false,"context_lines":[{"line_number":198,"context_line":"For tempest testing, given the nature of SR-IOV depending on hardware."},{"line_number":199,"context_line":"Tempest supports test_hotplug_nic, but is skip if port is direct or macvtap."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"When this bp will be impalement we can enable it in tempest, and Mellanox CI"},{"line_number":202,"context_line":"can test it."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"Also intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_fe5a7c4f","line":201,"in_reply_to":"fa80f949_de97788e","updated":"2015-11-05 19:11:36.000000000","message":"yes, you can see an example here https://review.openstack.org/#/c/197569/\n\nand in the tempest result (http://144.76.193.39/ci-artifacts/197569/13/Nova-ML2-Sriov/testr_results.html.gz)  you can see that we ran \ntempest.scenario.test_network_basic_ops.TestNetworkBasicOps and the test_hotplug_nic is skipped","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2dcf1294b33e9cf991cd5a57944e16fd791890c","unresolved":false,"context_lines":[{"line_number":201,"context_line":"When this bp will be impalement we can enable it in tempest, and Mellanox CI"},{"line_number":202,"context_line":"can test it."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"Also intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":205,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV related feature."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa80f949_5eeaa810","line":204,"updated":"2015-11-05 18:50:25.000000000","message":"Yeah, I\u0027d expect to see this tested in the Intel 3rd party CI.","commit_id":"1f1c81e569b361055dc35bc3ba41c4537f6c54c7"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"7e611c667127b5453b4ccdc18f6507407bbb10ad","unresolved":false,"context_lines":[{"line_number":85,"context_line":"indicate failure to the user."},{"line_number":86,"context_line":"Particularly given that the user will have no visibility into whether there are"},{"line_number":87,"context_line":"any free PCI devices on the host their VM is placed on."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"detach_interface"},{"line_number":90,"context_line":"----------------"},{"line_number":91,"context_line":"We need to refresh PCI status to free the device object after detach a SR-IOV"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba8a016a_d724d20d","line":88,"updated":"2015-11-19 19:39:10.000000000","message":"I would also mention that it\u0027s possible that there is no PCI devices that can be claimed on the guest\u0027s compute.  If it\u0027s the case the guest will be re-sized on another host, in which case a reboot will be required.\n\nI would just specify that hot-plug might not always be possible.","commit_id":"22134233a0689135747e259fafea0a4f8e1e2af7"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"e040da6b29743d2e03af25a3fb6a7bfa6b0f95a6","unresolved":false,"context_lines":[{"line_number":85,"context_line":"indicate failure to the user."},{"line_number":86,"context_line":"Particularly given that the user will have no visibility into whether there are"},{"line_number":87,"context_line":"any free PCI devices on the host their VM is placed on."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"detach_interface"},{"line_number":90,"context_line":"----------------"},{"line_number":91,"context_line":"We need to refresh PCI status to free the device object after detach a SR-IOV"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba8a016a_ef36cf4f","line":88,"in_reply_to":"ba8a016a_d724d20d","updated":"2015-11-20 04:46:12.000000000","message":"ACK","commit_id":"22134233a0689135747e259fafea0a4f8e1e2af7"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"7e611c667127b5453b4ccdc18f6507407bbb10ad","unresolved":false,"context_lines":[{"line_number":183,"context_line":""},{"line_number":184,"context_line":"* nova API"},{"line_number":185,"context_line":"* compute API"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Dependencies"},{"line_number":189,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba8a016a_f758f68b","line":186,"updated":"2015-11-19 19:39:10.000000000","message":"You should really go in more details here to help estimate the effort needed for this feature to be implemented.","commit_id":"22134233a0689135747e259fafea0a4f8e1e2af7"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"e040da6b29743d2e03af25a3fb6a7bfa6b0f95a6","unresolved":false,"context_lines":[{"line_number":183,"context_line":""},{"line_number":184,"context_line":"* nova API"},{"line_number":185,"context_line":"* compute API"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Dependencies"},{"line_number":189,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba8a016a_35766406","line":186,"in_reply_to":"ba8a016a_f758f68b","updated":"2015-11-20 04:46:12.000000000","message":"ACK","commit_id":"22134233a0689135747e259fafea0a4f8e1e2af7"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"83a5ffad31aa5e119b6b5153b302e5a562e0f298","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Particularly given that the user will have no visibility into whether there are"},{"line_number":87,"context_line":"any free PCI devices on the host their VM is placed on."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":90,"context_line":"devices that can be claimed on the guest\u0027s compute. If it\u0027s the case the guest"},{"line_number":91,"context_line":"will be re-sized on another host, in which case a reboot will be required."},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a8ffd7b_18f34475","line":89,"updated":"2015-11-24 13:21:10.000000000","message":"Yeah, this is the tricky bit...\n\nI remember discussions around the flavor currently limiting the number of SRIOV ports? Does that need addressing here? At a minimum, we need a way for the flavor to either allow or disallow the option to add extra SRIOV ports?\n\nMaybe with this version we should just error out and do no moving.\n\nI don\u0027t like the idea of attaching an interface causing the VM to be shutdown and moved, and only sometimes. That all seems very unexpected.","commit_id":"730b2d692e95b298cbd6cdaa24568c7d780866b1"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"986392bad2ca84847dd3fb52f0b87a4777dd3de9","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":90,"context_line":"devices that can be claimed on the guest\u0027s compute. If it\u0027s the case the guest"},{"line_number":91,"context_line":"will be re-sized on another host, in which case a reboot will be required."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"detach_interface"},{"line_number":94,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba8a016a_ff8b6466","line":91,"updated":"2015-11-23 20:05:22.000000000","message":"From reading the above, i\u0027m not clear on the behavior when failure due to lack of resources occurs:\n  -- report failure to the user, or\n  -- resize on to another host that can satisfy the resource requirements, \n  -- or both\n\nIf it\u0027s to resize, then it\u0027s not hot-plug any more. So the decision to resize should be made by the user.\n\nPlease clarify.","commit_id":"730b2d692e95b298cbd6cdaa24568c7d780866b1"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"377c95fdc69615431189a4be0a289c3a8febbdfd","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":90,"context_line":"devices that can be claimed on the guest\u0027s compute. If it\u0027s the case the guest"},{"line_number":91,"context_line":"will be re-sized on another host, in which case a reboot will be required."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"detach_interface"},{"line_number":94,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba8a016a_5d186e84","line":91,"in_reply_to":"ba8a016a_ff8b6466","updated":"2015-11-24 02:56:02.000000000","message":"report failure to the user.\n \n This spec does not do resize.  \n\n The user decide resize on another host, \n if failure, and he still wantd to extend the sriov nic, he need to resize to another host  by himself.","commit_id":"730b2d692e95b298cbd6cdaa24568c7d780866b1"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"83a5ffad31aa5e119b6b5153b302e5a562e0f298","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"REST API impact"},{"line_number":125,"context_line":"---------------"},{"line_number":126,"context_line":"Support a new type SR-IOV port for attach interface request."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Security impact"},{"line_number":129,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a8ffd7b_7820504a","line":126,"updated":"2015-11-24 13:21:10.000000000","message":"This was my main concern previously, so good to see this here.","commit_id":"730b2d692e95b298cbd6cdaa24568c7d780866b1"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"3358cd98bfe9ea022fbc5822fca134f6ec84b104","unresolved":false,"context_lines":[{"line_number":128,"context_line":"Security impact"},{"line_number":129,"context_line":"---------------"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"It is a slight concern that by starting starting instances and trying to attach"},{"line_number":132,"context_line":"sriov devices, a user could deduce some things about the infrastructure. The"},{"line_number":133,"context_line":"reason this may not be a big concern is because of some expectations about how"},{"line_number":134,"context_line":"people would deploy this."}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a8ffd7b_f873e0b2","line":131,"range":{"start_line":131,"start_character":31,"end_line":131,"end_character":48},"updated":"2015-11-24 13:10:54.000000000","message":"one starting is enough","commit_id":"730b2d692e95b298cbd6cdaa24568c7d780866b1"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"cd917140a685d588b5dbaf6ae1bc6d9e631e9965","unresolved":false,"context_lines":[{"line_number":191,"context_line":"* InstanceFault will be raised to indicate PCI unavailability."},{"line_number":192,"context_line":"* Monitor libvirt event VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED to see"},{"line_number":193,"context_line":"  detach finally completes."},{"line_number":194,"context_line":"* libvirt/dirver support SR-IOV. This is done by [LIBVIRT_SUPPORT_SR-IOV]_."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba8a016a_8c1cc378","line":194,"updated":"2015-11-20 20:50:27.000000000","message":"s/dirver/driver/","commit_id":"730b2d692e95b298cbd6cdaa24568c7d780866b1"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5194d8ac91c5ecc2f6c179cc11e9a6b61a366c16","unresolved":false,"context_lines":[{"line_number":59,"context_line":"After launch, Alice wishes to add a new network interface to her virtual"},{"line_number":60,"context_line":"machine that has better performance than the network interface already on her"},{"line_number":61,"context_line":"VM. She calls an API to attach a new network interface, passing in some tag"},{"line_number":62,"context_line":"that indicates a better tier of performance for the interface."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_7e1a6619","line":62,"updated":"2015-11-24 18:36:26.000000000","message":"The question should be asked here... why not just launch a new VM with a flavor that has an SR-IOV VF passthrough support instead of changing an existing VM? I mean these are VMs after all...\n\nThere is also the issue of how to handle the billing/accounting/permissions issue for this. What this use case is describing essentially would allow a user to launch a lower-priced VM flavor and then attach to an SR-IOV interface that may typically be only available to higher-priced VM flavors.","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"ad70dcb3f4b75753e24236b75cd76cbc0d22a0a1","unresolved":false,"context_lines":[{"line_number":59,"context_line":"After launch, Alice wishes to add a new network interface to her virtual"},{"line_number":60,"context_line":"machine that has better performance than the network interface already on her"},{"line_number":61,"context_line":"VM. She calls an API to attach a new network interface, passing in some tag"},{"line_number":62,"context_line":"that indicates a better tier of performance for the interface."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_02d14557","line":62,"in_reply_to":"9a8ffd7b_6f4b925a","updated":"2015-11-25 16:14:04.000000000","message":"this notify should be there i guess, if not, this is seems a new spec, not this one.","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3803070f1aae7be6ce4fc533660a8b10af20adb5","unresolved":false,"context_lines":[{"line_number":59,"context_line":"After launch, Alice wishes to add a new network interface to her virtual"},{"line_number":60,"context_line":"machine that has better performance than the network interface already on her"},{"line_number":61,"context_line":"VM. She calls an API to attach a new network interface, passing in some tag"},{"line_number":62,"context_line":"that indicates a better tier of performance for the interface."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_6f4b925a","line":62,"in_reply_to":"9a8ffd7b_7e1a6619","updated":"2015-11-24 18:57:08.000000000","message":"People can\u0027t just spin up new VMs Jay!  They want to turn their sloth pet into a cheetah pet.\n\nFor the billing issue, maybe if we notified on interface attach the billing system could see that you are plugging an expensive doohickey and charge you for it.","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3803070f1aae7be6ce4fc533660a8b10af20adb5","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"And there is 2 things that need to be addressed."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"First one is converting the port/network information from attach interface API"},{"line_number":77,"context_line":"to a pci request. The API to create a PCI request already exists."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The second thing is alloc the pci device on the host (nova/compute/manager)."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_14b0dbf3","line":76,"updated":"2015-11-24 18:57:08.000000000","message":"So in the interface attach API we are going to detect the port type and then orchestrate creating a PCI request, wait for that to complete and then attach with the PCI request ID?","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"8dfe554d9d09a02938dce9908af1492be8ba2ba1","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"And there is 2 things that need to be addressed."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"First one is converting the port/network information from attach interface API"},{"line_number":77,"context_line":"to a pci request. The API to create a PCI request already exists."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The second thing is alloc the pci device on the host (nova/compute/manager)."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_9864c2e5","line":76,"in_reply_to":"9a8ffd7b_14b0dbf3","updated":"2015-11-25 17:00:10.000000000","message":"Done","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"ad70dcb3f4b75753e24236b75cd76cbc0d22a0a1","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"And there is 2 things that need to be addressed."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"First one is converting the port/network information from attach interface API"},{"line_number":77,"context_line":"to a pci request. The API to create a PCI request already exists."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The second thing is alloc the pci device on the host (nova/compute/manager)."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_e2a8c1dd","line":76,"in_reply_to":"9a8ffd7b_14b0dbf3","updated":"2015-11-25 16:14:04.000000000","message":"this is seems not a orchestrate i guess, this is just convert the information from one type to another type. request just use to find something.","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3803070f1aae7be6ce4fc533660a8b10af20adb5","unresolved":false,"context_lines":[{"line_number":81,"context_line":"attach allocated SR-IOV port correctly, if the port is available."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"The unavailability of a suitable PCI device seems like it will be the most"},{"line_number":84,"context_line":"common pitfall here. So need a clear way via the instance actions API to"},{"line_number":85,"context_line":"indicate failure to the user."},{"line_number":86,"context_line":"Particularly given that the user will have no visibility into whether there are"},{"line_number":87,"context_line":"any free PCI devices on the host their VM is placed on."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_54942336","line":84,"updated":"2015-11-24 18:57:08.000000000","message":"So is there a TODO or dependency on improving instance actions for this?\n\nOh, I guess that\u0027s just the part about raising an instance fault in the work items - I was reading this as a gap in the existing instance actions functionality.","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"8dfe554d9d09a02938dce9908af1492be8ba2ba1","unresolved":false,"context_lines":[{"line_number":81,"context_line":"attach allocated SR-IOV port correctly, if the port is available."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"The unavailability of a suitable PCI device seems like it will be the most"},{"line_number":84,"context_line":"common pitfall here. So need a clear way via the instance actions API to"},{"line_number":85,"context_line":"indicate failure to the user."},{"line_number":86,"context_line":"Particularly given that the user will have no visibility into whether there are"},{"line_number":87,"context_line":"any free PCI devices on the host their VM is placed on."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_18be92d4","line":84,"in_reply_to":"9a8ffd7b_54942336","updated":"2015-11-25 17:00:10.000000000","message":"Done","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"ad70dcb3f4b75753e24236b75cd76cbc0d22a0a1","unresolved":false,"context_lines":[{"line_number":81,"context_line":"attach allocated SR-IOV port correctly, if the port is available."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"The unavailability of a suitable PCI device seems like it will be the most"},{"line_number":84,"context_line":"common pitfall here. So need a clear way via the instance actions API to"},{"line_number":85,"context_line":"indicate failure to the user."},{"line_number":86,"context_line":"Particularly given that the user will have no visibility into whether there are"},{"line_number":87,"context_line":"any free PCI devices on the host their VM is placed on."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_c209fd2d","line":84,"in_reply_to":"9a8ffd7b_54942336","updated":"2015-11-25 16:14:04.000000000","message":"if there is no resource, just fail this api call. and the api is already exist, we don\u0027t need to change it at all.","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3803070f1aae7be6ce4fc533660a8b10af20adb5","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":90,"context_line":"devices that can be claimed on the guest\u0027s compute."},{"line_number":91,"context_line":"User can make a decision to resize guest on another host, in which case a"},{"line_number":92,"context_line":"reboot will be required, but it\u0027s not hot-plug any more."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"detach_interface"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_d4d813f2","line":91,"updated":"2015-11-24 18:57:08.000000000","message":"The user making this decision is outside of this change, right?  You\u0027re not, like, asking for this information on the API request in the case that this happens, right?","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"ad70dcb3f4b75753e24236b75cd76cbc0d22a0a1","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":90,"context_line":"devices that can be claimed on the guest\u0027s compute."},{"line_number":91,"context_line":"User can make a decision to resize guest on another host, in which case a"},{"line_number":92,"context_line":"reboot will be required, but it\u0027s not hot-plug any more."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"detach_interface"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_8e356147","line":91,"in_reply_to":"9a8ffd7b_b503db41","updated":"2015-11-25 16:14:04.000000000","message":"this is nothing related this spec. should be removed.","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"8dfe554d9d09a02938dce9908af1492be8ba2ba1","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":90,"context_line":"devices that can be claimed on the guest\u0027s compute."},{"line_number":91,"context_line":"User can make a decision to resize guest on another host, in which case a"},{"line_number":92,"context_line":"reboot will be required, but it\u0027s not hot-plug any more."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"detach_interface"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_78a47ea5","line":91,"in_reply_to":"9a8ffd7b_d4d813f2","updated":"2015-11-25 17:00:10.000000000","message":"Done","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"fc6b3019c96cc714c60fa5d4998d6904029de36c","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":90,"context_line":"devices that can be claimed on the guest\u0027s compute."},{"line_number":91,"context_line":"User can make a decision to resize guest on another host, in which case a"},{"line_number":92,"context_line":"reboot will be required, but it\u0027s not hot-plug any more."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"detach_interface"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_b503db41","line":91,"in_reply_to":"9a8ffd7b_d4d813f2","updated":"2015-11-25 14:39:57.000000000","message":"should I remove it?","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5194d8ac91c5ecc2f6c179cc11e9a6b61a366c16","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"REST API impact"},{"line_number":126,"context_line":"---------------"},{"line_number":127,"context_line":"Support a new type SR-IOV port for attach interface request."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Security impact"},{"line_number":130,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_792040f8","line":127,"updated":"2015-11-24 18:36:26.000000000","message":"I don\u0027t see any reason to change the REST APIs at all. Wouldn\u0027t Nova be able to tell if the requested port is an SR-IOV port by looking at the port binding information from Neutron?\n\nIn other words, if a user issued an existing call to POST /servers/{server}/os-interface with this request payload:\n\n {\n    \"interfaceAttachment\": {\n        \"port_id\": \"ce531f90-199f-48c0-816c-13e38010b442\"\n    }\n }\n\nand Nova could determine that the port requested is a PCI passthrough port, then why would we need any change to either the REST API *or* the novaclient CLI?","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3803070f1aae7be6ce4fc533660a8b10af20adb5","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"REST API impact"},{"line_number":126,"context_line":"---------------"},{"line_number":127,"context_line":"Support a new type SR-IOV port for attach interface request."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Security impact"},{"line_number":130,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_f408b72a","line":127,"in_reply_to":"9a8ffd7b_792040f8","updated":"2015-11-24 18:57:08.000000000","message":"Agreed. We\u0027ve had the same issue brought up with the \u0027trunk ports\u0027 idea in Neutron. Neutron should be able to tell us what kind of port it is and then nova can use it accordingly.","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"8dfe554d9d09a02938dce9908af1492be8ba2ba1","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"REST API impact"},{"line_number":126,"context_line":"---------------"},{"line_number":127,"context_line":"Support a new type SR-IOV port for attach interface request."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Security impact"},{"line_number":130,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_d8ea4aac","line":127,"in_reply_to":"9a8ffd7b_792040f8","updated":"2015-11-25 17:00:10.000000000","message":"Done","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"fc6b3019c96cc714c60fa5d4998d6904029de36c","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"REST API impact"},{"line_number":126,"context_line":"---------------"},{"line_number":127,"context_line":"Support a new type SR-IOV port for attach interface request."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Security impact"},{"line_number":130,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_a473b314","line":127,"in_reply_to":"9a8ffd7b_792040f8","updated":"2015-11-25 14:39:57.000000000","message":"Oh, so sorry, this should be removed.","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"8dfe554d9d09a02938dce9908af1492be8ba2ba1","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"REST API impact"},{"line_number":126,"context_line":"---------------"},{"line_number":127,"context_line":"Support a new type SR-IOV port for attach interface request."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Security impact"},{"line_number":130,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_78d23e02","line":127,"in_reply_to":"9a8ffd7b_f408b72a","updated":"2015-11-25 17:00:10.000000000","message":"Done","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3803070f1aae7be6ce4fc533660a8b10af20adb5","unresolved":false,"context_lines":[{"line_number":144,"context_line":"Notifications impact"},{"line_number":145,"context_line":"--------------------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"None"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_cf107e51","line":147,"updated":"2015-11-24 18:57:08.000000000","message":"I\u0027m surprised we don\u0027t notify on interface attach...","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"8dfe554d9d09a02938dce9908af1492be8ba2ba1","unresolved":false,"context_lines":[{"line_number":144,"context_line":"Notifications impact"},{"line_number":145,"context_line":"--------------------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"None"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_384fd6be","line":147,"in_reply_to":"9a8ffd7b_cf107e51","updated":"2015-11-25 17:00:10.000000000","message":"we are not going to chang the behevia of this interface attach/detach API logic in this spec i think. if this is missing, might that is a bug, because normal interface attach/detach also need this. \n\n(i  kind of jump here, not sure if there already have a notification there, sorry).","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3803070f1aae7be6ce4fc533660a8b10af20adb5","unresolved":false,"context_lines":[{"line_number":170,"context_line":"Developer impact"},{"line_number":171,"context_line":"----------------"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"None"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_eff22206","line":173,"updated":"2015-11-24 18:57:08.000000000","message":"I don\u0027t know if I\u0027d call this none, as it sounds like it\u0027s adding more orchestration into nova for detecting the type of port in the interface attach API and performing the PCI request for this special case, but maybe that\u0027s unavoidable.\n\nI\u0027m just thinking of the recent discussions about orchestration within nova being problematic, like when booting from volumes and nova has to create the volume first.","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3803070f1aae7be6ce4fc533660a8b10af20adb5","unresolved":false,"context_lines":[{"line_number":190,"context_line":"* Claim the PCI device when the port type is SR-IOV."},{"line_number":191,"context_line":"* pass pci_request_id to allocate_port_for_instance."},{"line_number":192,"context_line":"* InstanceFault will be raised to indicate PCI unavailability."},{"line_number":193,"context_line":"* Monitor libvirt event VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED to see"},{"line_number":194,"context_line":"  detach finally completes."},{"line_number":195,"context_line":"* libvirt/driver support SR-IOV. This is done by [LIBVIRT_SUPPORT_SR-IOV]_."},{"line_number":196,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_f46c370a","line":193,"updated":"2015-11-24 18:57:08.000000000","message":"IMO this is something we could do outside of this spec, since it would make the existing PCI detach code in the libvirt driver more robust, but I\u0027m just making a note for that here.  Hint: this should come early in the series for this change.","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"8dfe554d9d09a02938dce9908af1492be8ba2ba1","unresolved":false,"context_lines":[{"line_number":190,"context_line":"* Claim the PCI device when the port type is SR-IOV."},{"line_number":191,"context_line":"* pass pci_request_id to allocate_port_for_instance."},{"line_number":192,"context_line":"* InstanceFault will be raised to indicate PCI unavailability."},{"line_number":193,"context_line":"* Monitor libvirt event VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED to see"},{"line_number":194,"context_line":"  detach finally completes."},{"line_number":195,"context_line":"* libvirt/driver support SR-IOV. This is done by [LIBVIRT_SUPPORT_SR-IOV]_."},{"line_number":196,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_f8ee2e8a","line":193,"in_reply_to":"9a8ffd7b_f46c370a","updated":"2015-11-25 17:00:10.000000000","message":"Done","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"fc6b3019c96cc714c60fa5d4998d6904029de36c","unresolved":false,"context_lines":[{"line_number":190,"context_line":"* Claim the PCI device when the port type is SR-IOV."},{"line_number":191,"context_line":"* pass pci_request_id to allocate_port_for_instance."},{"line_number":192,"context_line":"* InstanceFault will be raised to indicate PCI unavailability."},{"line_number":193,"context_line":"* Monitor libvirt event VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED to see"},{"line_number":194,"context_line":"  detach finally completes."},{"line_number":195,"context_line":"* libvirt/driver support SR-IOV. This is done by [LIBVIRT_SUPPORT_SR-IOV]_."},{"line_number":196,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_9a7da4b3","line":193,"in_reply_to":"9a8ffd7b_f46c370a","updated":"2015-11-25 14:39:57.000000000","message":"agree. so remove it here?","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3803070f1aae7be6ce4fc533660a8b10af20adb5","unresolved":false,"context_lines":[{"line_number":192,"context_line":"* InstanceFault will be raised to indicate PCI unavailability."},{"line_number":193,"context_line":"* Monitor libvirt event VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED to see"},{"line_number":194,"context_line":"  detach finally completes."},{"line_number":195,"context_line":"* libvirt/driver support SR-IOV. This is done by [LIBVIRT_SUPPORT_SR-IOV]_."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_f4c997ad","line":195,"updated":"2015-11-24 18:57:08.000000000","message":"Why list this as a work item if it\u0027s already completed?\n\nhttps://review.openstack.org/#/c/107466/","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"8dfe554d9d09a02938dce9908af1492be8ba2ba1","unresolved":false,"context_lines":[{"line_number":192,"context_line":"* InstanceFault will be raised to indicate PCI unavailability."},{"line_number":193,"context_line":"* Monitor libvirt event VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED to see"},{"line_number":194,"context_line":"  detach finally completes."},{"line_number":195,"context_line":"* libvirt/driver support SR-IOV. This is done by [LIBVIRT_SUPPORT_SR-IOV]_."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_d8eb2a77","line":195,"in_reply_to":"9a8ffd7b_f4c997ad","updated":"2015-11-25 17:00:10.000000000","message":"Done","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"fc6b3019c96cc714c60fa5d4998d6904029de36c","unresolved":false,"context_lines":[{"line_number":192,"context_line":"* InstanceFault will be raised to indicate PCI unavailability."},{"line_number":193,"context_line":"* Monitor libvirt event VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED to see"},{"line_number":194,"context_line":"  detach finally completes."},{"line_number":195,"context_line":"* libvirt/driver support SR-IOV. This is done by [LIBVIRT_SUPPORT_SR-IOV]_."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a8ffd7b_1a48d486","line":195,"in_reply_to":"9a8ffd7b_f4c997ad","updated":"2015-11-25 14:39:57.000000000","message":"will remove it.","commit_id":"0957b50d9a30411571c421f8db67ffcf164df0de"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"ddb21d31d9892aa1f009304dc1ca183ddb324774","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Then we can do the following to attach interface to a VM:"},{"line_number":41,"context_line":"  nova interface-attach [--port-id \u003cport_id\u003e] [--fixed-ip \u003cfixed_ip\u003e] \u003cserver\u003e"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Nova attach interface api hotplug an interface to an existing server."},{"line_number":44,"context_line":"The normal pci allocation has already finished after the server boot up."},{"line_number":45,"context_line":"If the port to be hotplugged for this server is \"direct\u0027 or \u0027macvtap\u0027, it just"},{"line_number":46,"context_line":"not works because no pci device allocated for it yet."}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a8ffd7b_2c1d4e0f","line":43,"updated":"2015-11-25 21:53:30.000000000","message":"Nitpick: s/api/API/ for consistency","commit_id":"b814725bd5a507148db4eb079db3553e8047cde4"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"ddb21d31d9892aa1f009304dc1ca183ddb324774","unresolved":false,"context_lines":[{"line_number":43,"context_line":"Nova attach interface api hotplug an interface to an existing server."},{"line_number":44,"context_line":"The normal pci allocation has already finished after the server boot up."},{"line_number":45,"context_line":"If the port to be hotplugged for this server is \"direct\u0027 or \u0027macvtap\u0027, it just"},{"line_number":46,"context_line":"not works because no pci device allocated for it yet."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The Nova interface-attach API needs be enhanced to support SR-IOV."},{"line_number":49,"context_line":"We need to translate the port to pci request in the \u0027nova attach-interface\u0027 API"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a8ffd7b_acbe1ed2","line":46,"updated":"2015-11-25 21:53:30.000000000","message":"Rephrase to \"it just doesn\u0027t work because no pci devices were allocated yet\"","commit_id":"b814725bd5a507148db4eb079db3553e8047cde4"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"ddb21d31d9892aa1f009304dc1ca183ddb324774","unresolved":false,"context_lines":[{"line_number":69,"context_line":"----------------"},{"line_number":70,"context_line":"For attach interface we need to be using the PCI device claim logic, and hold"},{"line_number":71,"context_line":"the resource lock (as normal claims do) otherwise we open ourselves up for"},{"line_number":72,"context_line":"races."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"And there is 2 things that need to be addressed."},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a8ffd7b_cca042a2","line":72,"updated":"2015-11-25 21:53:30.000000000","message":"s/races/race condition/","commit_id":"b814725bd5a507148db4eb079db3553e8047cde4"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"ddb21d31d9892aa1f009304dc1ca183ddb324774","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The unavailability of a suitable PCI device will make this API call failed."},{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":86,"context_line":"devices avaliable on the guest\u0027s compute."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"detach_interface"},{"line_number":89,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a8ffd7b_2ca0ee8f","line":86,"updated":"2015-11-25 21:53:30.000000000","message":"In this case, should we add an option in the API so that the user can specify that if the request can\u0027t be met without a reboot then an error should be returned ?  Not sure if this is necessary, maybe some NFV application would prefer that this doesn\u0027t happen.","commit_id":"b814725bd5a507148db4eb079db3553e8047cde4"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"a66e90efc0ecc14e9c7376a863eb3f09163f1ee9","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The unavailability of a suitable PCI device will make this API call failed."},{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":86,"context_line":"devices avaliable on the guest\u0027s compute."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"detach_interface"},{"line_number":89,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a8ffd7b_8fa22cad","line":86,"in_reply_to":"9a8ffd7b_2ca0ee8f","updated":"2015-11-25 22:13:11.000000000","message":"i don\u0027t think a fail of attache a addtional port need reboot. A API error indicate the resource unavaliable is enough, it should be.","commit_id":"b814725bd5a507148db4eb079db3553e8047cde4"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"4023cbb01cc1d0c2197e3a4c3eb56b8302fb04c6","unresolved":false,"context_lines":[{"line_number":74,"context_line":"And there is 2 things that need to be addressed."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"First one is converting the port/network information from attach interface API"},{"line_number":77,"context_line":"to a pci request which is used to alloc pci device for this inerface. The API"},{"line_number":78,"context_line":"to create a PCI request already exists."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The second thing is alloc the pci device on the host (nova/compute/manager)."}],"source_content_type":"text/x-rst","patch_set":14,"id":"9a8ffd7b_6e6f862b","line":77,"updated":"2015-11-27 07:53:36.000000000","message":"typo s/inerface/interface/","commit_id":"c41f0ed3e47e5ad4c171246094a6925c51885492"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"1a8e52c901efc4f55cd33d99fa451d7f9996c466","unresolved":false,"context_lines":[{"line_number":74,"context_line":"And there is 2 things that need to be addressed."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"First one is converting the port/network information from attach interface API"},{"line_number":77,"context_line":"to a pci request which is used to alloc pci device for this inerface. The API"},{"line_number":78,"context_line":"to create a PCI request already exists."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The second thing is alloc the pci device on the host (nova/compute/manager)."}],"source_content_type":"text/x-rst","patch_set":14,"id":"9a8ffd7b_0fc4983d","line":77,"in_reply_to":"9a8ffd7b_6e6f862b","updated":"2015-11-27 17:59:55.000000000","message":"Good point.\n ACK","commit_id":"c41f0ed3e47e5ad4c171246094a6925c51885492"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f8289b28642fb1631c2997019aeff8ab32e68e7b","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The unavailability of a suitable PCI device will make this API call failed."},{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":86,"context_line":"devices avaliable on the guest\u0027s compute."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"detach_interface"},{"line_number":89,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9a8ffd7b_3a30eee7","line":86,"updated":"2015-11-26 15:45:31.000000000","message":"I do think we need should have something in the flavour that allows a user to attach extra SR-IOV devices, and if its missing (i.e. by default) don\u0027t allow that operation for that flavor.\n\nIts common only a subset of infrastructure would allow adding an SR-IOV port, for example. Best to schedule the correct flavors in the correct location, etc.","commit_id":"c41f0ed3e47e5ad4c171246094a6925c51885492"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"1a8e52c901efc4f55cd33d99fa451d7f9996c466","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The unavailability of a suitable PCI device will make this API call failed."},{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":86,"context_line":"devices avaliable on the guest\u0027s compute."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"detach_interface"},{"line_number":89,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9a8ffd7b_aa0e9a89","line":86,"in_reply_to":"9a8ffd7b_3a30eee7","updated":"2015-11-27 17:59:55.000000000","message":"such as: \n nova flavor-key nlimit set port:vif_sriov_support\u003dtrue ?\n\n But now  nova support boot an instance with a sriov port with this extra spec.\n we can create an instance as follow:\n $ neutron port-create \u003cnet-id\u003e --binding:vnic-type direct\n $ nova boot --flavor m1.large --image \u003cimage\u003e\n          --nic port-id\u003d\u003cport1\u003e --nic port-id\u003d\u003cport2\u003e","commit_id":"c41f0ed3e47e5ad4c171246094a6925c51885492"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"06ca170482f661dedbbcd6a5819246088bb441f5","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The unavailability of a suitable PCI device will make this API call failed."},{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":86,"context_line":"devices avaliable on the guest\u0027s compute."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"detach_interface"},{"line_number":89,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9a8ffd7b_fc5539f9","line":86,"in_reply_to":"9a8ffd7b_aa0e9a89","updated":"2015-11-29 09:45:39.000000000","message":"maybe: \n nova flavor-key nlimit set port:vif_sriov_supported\u003d2 ?\n\n which means, only 2 SRIOV ports can be allocated to the instance.","commit_id":"c41f0ed3e47e5ad4c171246094a6925c51885492"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f8289b28642fb1631c2997019aeff8ab32e68e7b","unresolved":false,"context_lines":[{"line_number":99,"context_line":"succeed. Libvirt will wait a short while for success, but nova must monitor for"},{"line_number":100,"context_line":"libvirt events to see if/when it finally completes. This delayed release has"},{"line_number":101,"context_line":"implications for when Nova can mark the PCI device as unused and available for"},{"line_number":102,"context_line":"other guests to assign."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9a8ffd7b_666b46f2","line":102,"updated":"2015-11-26 15:45:31.000000000","message":"Do we timeout eventually and force the detach?\n\nMaybe we should just not support detach on a running instance when its SR-IOV port? although that seems messy.\n\nI think we need to talk about how the instance actions would be updated to show this is still pending, and eventually complete or errored out.","commit_id":"c41f0ed3e47e5ad4c171246094a6925c51885492"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"0c0494e600a5274f18224e5fedf5701405ab4111","unresolved":false,"context_lines":[{"line_number":99,"context_line":"succeed. Libvirt will wait a short while for success, but nova must monitor for"},{"line_number":100,"context_line":"libvirt events to see if/when it finally completes. This delayed release has"},{"line_number":101,"context_line":"implications for when Nova can mark the PCI device as unused and available for"},{"line_number":102,"context_line":"other guests to assign."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9a8ffd7b_e4b82dca","line":102,"in_reply_to":"9a8ffd7b_666b46f2","updated":"2015-11-30 11:26:59.000000000","message":"I\u0027d like to talk about the delete instance device of nova. It is a  common issue instead of SRIOV\n\n Here is the libvirt doc string to describe it underly function detachDeviceFlags.\n http://paste.openstack.org/show/480330/\n\n It says:\n detaching a device from a running domain may be asynchronous.\n and it suggests:\n To check whether the device was successfully removed, either recheck domain\n configuration using virDomainGetXMLDesc() or add handler for\n VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED\n\n Also Daniel elaborated it, and gave us more some scenarios about it.\n\n it is not guaranteed to succeed. What happens is that the hypervisor injects\n an ACPI request to unplug the device. The guest OS must co-operate by releasing\n the device, before the hypervisor will complete the action of physically\n removing it. So you require a guest OS that supports ACPI unplug of course,\n and if the guest is crashed or being malicious there is no guarantee the unplug\n will succeed. Libvirt will wait a short while for success, but you must monitor\n for libvirt events to see if/when it finally completes. This delayed release has\n implications for when Nova can mark the PCI device as unused and available for\n other guests to assign.\n\n\n Now I have checked the code, both detach volume or detach interface call\n    5   1220  nova/virt/libvirt/driver.py \u003c\u003cdetach_volume\u003e\u003e\n              guest . detach_device ( conf , persistent \u003d True , live \u003d live )\n    6   1280  nova/virt/libvirt/driver.py \u003c\u003cdetach_interface\u003e\u003e\n              guest . detach_device ( cfg , persistent \u003d True , live \u003d live )\n    7   3016  nova/virt/libvirt/driver.py \u003c\u003c_detach_pci_devices\u003e\u003e\n              guest . detach_device ( self . _get_guest_pci_device ( dev ) , live \u003d True )\n    8   3105  nova/virt/libvirt/driver.py \u003c\u003c_detach_sriov_ports\u003e\u003e\n              guest . detach_device ( cfg , live \u003d True )\n\n\n And for detach_interface in nova/compute/manager.py:\n\n     @wrap_exception()\n     @wrap_instance_fault\n     def detach_interface(self, context, instance, port_id):\n         \"\"\"Detach an network adapter from an instance.\"\"\"\n         network_info \u003d instance.info_cache.network_info\n         condemned \u003d None\n         for vif in network_info:\n             if vif[\u0027id\u0027] \u003d\u003d port_id:\n                 condemned \u003d vif\n                 break\n         if condemned is None:\n             raise exception.PortNotFound(_(\"Port %s is not \"\n                                            \"attached\") % port_id)\n         try:\n             self.driver.detach_interface(instance, condemned)\n         except exception.NovaException as ex:\n             LOG.warning(_LW(\"Detach interface failed, port_id\u003d%(port_id)s,\"\n                             \" reason: %(msg)s\"),\n                         {\u0027port_id\u0027: port_id, \u0027msg\u0027: ex}, instance\u003dinstance)\n             raise exception.InterfaceDetachFailed(instance_uuid\u003dinstance.uuid)\n         else:\n             try:\n                 self.network_api.deallocate_port_for_instance(\n                     context, instance, port_id)\n             except Exception as ex:\n                 with excutils.save_and_reraise_exception():\n                     # Since this is a cast operation, log the failure for\n                     # triage.\n                     LOG.warning(_LW(\u0027Failed to deallocate port %(port_id)s \u0027\n                                     \u0027for instance. Error: %(error)s\u0027),\n                                 {\u0027port_id\u0027: port_id, \u0027error\u0027: ex},\n                                 instance\u003dinstance)\n\n\n It just detach_interface, no double check the device is detached finally.\n Now I will support the detach SRIOV code.\n https://review.openstack.org/#/c/139910/\n I\u0027m not sure should I need to double check the device is finally detached.\n\n If yes.\n\n What should I support?\n\n 3 options:\n 1. Just ignored it. keep the nova code.\n\n 2. sync check.\n as the libvirt suggests: use virDomainGetXMLDesc()\n\n def detach_interface(self, context, instance, port_id):\n    self.driver.detach_interface(instance, condemned)\n    # just pseudo-code\n    for i in range(1, 51):\n       if not(virDomainGetXMLDesc()):\n            sleep(1)\n        else if i \u003d\u003d 51：\n            raise exception\n        else:\n            break\n    self.network_api.deallocate_port_for_instance(\n        context, instance, port_id)\n\n\n 3. async notification.\n  as the libvirt suggests:\n add event handler for VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED.\n\n call network_api.deallocate_port_for_instance in a backend task.\n The backend receives the event result from event handler by AMPQ and filter the\n device is the the expected interface device, not the volume device.\n\n Then backend call network_api.deallocate_port_for_instance to deallocate the port.\n\n\n\n I have not check the volume detach, not sure it has the same issues.\n\n Beside this issue:\n But from the libvirt Doc string,\n hypervisors may prevent this operation if there is a current\n block copy operation on the device being detached;","commit_id":"c41f0ed3e47e5ad4c171246094a6925c51885492"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"1a8e52c901efc4f55cd33d99fa451d7f9996c466","unresolved":false,"context_lines":[{"line_number":99,"context_line":"succeed. Libvirt will wait a short while for success, but nova must monitor for"},{"line_number":100,"context_line":"libvirt events to see if/when it finally completes. This delayed release has"},{"line_number":101,"context_line":"implications for when Nova can mark the PCI device as unused and available for"},{"line_number":102,"context_line":"other guests to assign."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9a8ffd7b_2f671cb8","line":102,"in_reply_to":"9a8ffd7b_666b46f2","updated":"2015-11-27 17:59:55.000000000","message":"Libvirt will wait a short while for success.\n\n how about:\n register domain event, libvirt.VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED.\n\n In my patch set 11: \n https://review.openstack.org/#/c/139910/11/specs/mitaka/approved/sriov-interface-attach-detach.rst\n I really list this in the work items. \n\n\n This is not only for SRIOV device, any other device should also  have the same problem. \n\n I have check the nova code, it does not register this event.\n That meas, nova does not monitor other type device detach.\n And the  current user\u0027s guest  OS all support the ACPI unplug, the guest do not crashed when detach.  \n\nAs  Matt Riedemann\u0027s comments in patch set 11:\t Nov 25 2:57 AM\n IMO this is something we could do outside of this spec, since it would make the existing PCI detach code in the libvirt driver more robust, but I\u0027m just making a note for that here. Hint: this should come early in the series for this change.\n\nBut I\u0027d like to add another BP for this event register.","commit_id":"c41f0ed3e47e5ad4c171246094a6925c51885492"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"a78fe225cd26bea41228d78efced7506bed797cf","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Note: now the current nova code always changes persistent configure when detach"},{"line_number":120,"context_line":"a device. So even upplug failed, the device will also be detached on next guest"},{"line_number":121,"context_line":"reboot."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Alternatives"},{"line_number":124,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"9a8ffd7b_5a1bbc80","line":121,"updated":"2015-12-01 16:09:48.000000000","message":"s/upplug/unplug.\n\nNot sure if I understand the above sentence correctly. Are you saying that nova keep track of whether or not a device is successfully detached, and if a detach operation fails, it would try to detach it again when next time the guest is rebooted?","commit_id":"48bcdae1895349db5fc1a67c7c714f97423b5ecf"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"a5a799c3613575ad4d7da2c8180b52a2611835e6","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Note: now the current nova code always changes persistent configure when detach"},{"line_number":120,"context_line":"a device. So even upplug failed, the device will also be detached on next guest"},{"line_number":121,"context_line":"reboot."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Alternatives"},{"line_number":124,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"9a8ffd7b_a2aabe83","line":121,"in_reply_to":"9a8ffd7b_5a1bbc80","updated":"2015-12-01 17:06:03.000000000","message":"there\u0027s a bug in nova.   this bug is out of this spec.\n nova always will ignore the failure of any device detach, not only sirov.\n in these case, if detach failed, it can take effect on the net reboot, for the \n persistent has changed. \n\n see my comments in： \n https://review.openstack.org/#/c/139910/14/specs/mitaka/approved/sriov-interface-attach-detach.rst\n \nI put them here again.\n\n\nI\u0027d like to talk about the delete instance device of nova. It is a common issue instead of SRIOV\n Here is the libvirt doc string to describe it underly function detachDeviceFlags.\n http://paste.openstack.org/show/480330/\n It says:\n detaching a device from a running domain may be asynchronous.\n and it suggests:\n To check whether the device was successfully removed, either recheck domain\n configuration using virDomainGetXMLDesc() or add handler for\n VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED\n Also Daniel elaborated it, and gave us more some scenarios about it.\n it is not guaranteed to succeed. What happens is that the hypervisor injects\n an ACPI request to unplug the device. The guest OS must co-operate by releasing\n the device, before the hypervisor will complete the action of physically\n removing it. So you require a guest OS that supports ACPI unplug of course,\n and if the guest is crashed or being malicious there is no guarantee the unplug\n will succeed. Libvirt will wait a short while for success, but you must monitor\n for libvirt events to see if/when it finally completes. This delayed release has\n implications for when Nova can mark the PCI device as unused and available for\n other guests to assign.\n\n Now I have checked the code, both detach volume or detach interface call\n    5   1220  nova/virt/libvirt/driver.py \u003c\u003cdetach_volume\u003e\u003e\n              guest . detach_device ( conf , persistent \u003d True , live \u003d live )\n    6   1280  nova/virt/libvirt/driver.py \u003c\u003cdetach_interface\u003e\u003e\n              guest . detach_device ( cfg , persistent \u003d True , live \u003d live )\n    7   3016  nova/virt/libvirt/driver.py \u003c\u003c_detach_pci_devices\u003e\u003e\n              guest . detach_device ( self . _get_guest_pci_device ( dev ) , live \u003d True )\n    8   3105  nova/virt/libvirt/driver.py \u003c\u003c_detach_sriov_ports\u003e\u003e\n              guest . detach_device ( cfg , live \u003d True )\n\n And for detach_interface in nova/compute/manager.py:\n     @wrap_exception()\n     @wrap_instance_fault\n     def detach_interface(self, context, instance, port_id):\n         \"\"\"Detach an network adapter from an instance.\"\"\"\n         network_info \u003d instance.info_cache.network_info\n         condemned \u003d None\n         for vif in network_info:\n             if vif[\u0027id\u0027] \u003d\u003d port_id:\n                 condemned \u003d vif\n                 break\n         if condemned is None:\n             raise exception.PortNotFound(_(\"Port %s is not \"\n                                            \"attached\") % port_id)\n         try:\n             self.driver.detach_interface(instance, condemned)\n         except exception.NovaException as ex:\n             LOG.warning(_LW(\"Detach interface failed, port_id\u003d%(port_id)s,\"\n                             \" reason: %(msg)s\"),\n                         {\u0027port_id\u0027: port_id, \u0027msg\u0027: ex}, instance\u003dinstance)\n             raise exception.InterfaceDetachFailed(instance_uuid\u003dinstance.uuid)\n         else:\n             try:\n                 self.network_api.deallocate_port_for_instance(\n                     context, instance, port_id)\n             except Exception as ex:\n                 with excutils.save_and_reraise_exception():\n                     # Since this is a cast operation, log the failure for\n                     # triage.\n                     LOG.warning(_LW(\u0027Failed to deallocate port %(port_id)s \u0027\n                                     \u0027for instance. Error: %(error)s\u0027),\n                                 {\u0027port_id\u0027: port_id, \u0027error\u0027: ex},\n                                 instance\u003dinstance)\n\n It just detach_interface, no double check the device is detached finally.\n Now I will support the detach SRIOV code.\n https://review.openstack.org/#/c/139910/\n I\u0027m not sure should I need to double check the device is finally detached.\n If yes.\n What should I support?\n 3 options:\n 1. Just ignored it. keep the nova code.\n 2. sync check.\n as the libvirt suggests: use virDomainGetXMLDesc()\n def detach_interface(self, context, instance, port_id):\n    self.driver.detach_interface(instance, condemned)\n    # just pseudo-code\n    for i in range(1, 51):\n       if not(virDomainGetXMLDesc()):\n            sleep(1)\n        else if i \u003d\u003d 51：\n            raise exception\n        else:\n            break\n    self.network_api.deallocate_port_for_instance(\n        context, instance, port_id)\n\n 3. async notification.\n  as the libvirt suggests:\n add event handler for VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED.\n call network_api.deallocate_port_for_instance in a backend task.\n The backend receives the event result from event handler by AMPQ and filter the\n device is the the expected interface device, not the volume device.\n Then backend call network_api.deallocate_port_for_instance to deallocate the port.\n I have not check the volume detach, not sure it has the same issues.\n Beside this issue:\n But from the libvirt Doc string,\n hypervisors may prevent this operation if there is a current\n block copy operation on the device being detached;","commit_id":"48bcdae1895349db5fc1a67c7c714f97423b5ecf"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"9ffda29086fca901fdca414f69c0860d92c948eb","unresolved":false,"context_lines":[{"line_number":80,"context_line":"The second thing is alloc the pci device on the host (nova/compute/manager)."},{"line_number":81,"context_line":"Libvirt has already supported generating the pci xml for server, and it can"},{"line_number":82,"context_line":"attach allocated SR-IOV port correctly, if the port is available."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The unavailability of a suitable PCI device will make this API call failed."},{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":86,"context_line":"devices avaliable on the guest\u0027s compute."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"we will add an extra spec in the flavour, such as hw_sriov_max_count\u003d2, that"},{"line_number":89,"context_line":"allows a user to attach extra SR-IOV devices, and if its missing (i.e. by"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a740942_78a36e9f","line":86,"range":{"start_line":83,"start_character":0,"end_line":86,"end_character":41},"updated":"2015-12-03 16:54:45.000000000","message":"I am assuming this is not exactly correct as the claim will fail on the compute host which won\u0027t be visible through the API but this can be worked out in the code.","commit_id":"7283bcee334571def4b7b4f686470508f8ebd7dc"},{"author":{"_account_id":11189,"name":"yuntongjin","email":"yuntong.jin@intel.com","username":"yuntong"},"change_message_id":"7d4c8be58ea4e28b53db741e04a4c4a1ed73314f","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The unavailability of a suitable PCI device will make this API call failed."},{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":86,"context_line":"devices avaliable on the guest\u0027s compute."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"we will add an extra spec in the flavour, such as hw_sriov_max_count\u003d2, that"},{"line_number":89,"context_line":"allows a user to attach extra SR-IOV devices, and if its missing (i.e. by"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a740942_ed269a15","line":86,"in_reply_to":"7a740942_4e69088b","updated":"2015-12-04 08:50:08.000000000","message":"I thought resource claim fail will make API fails.","commit_id":"7283bcee334571def4b7b4f686470508f8ebd7dc"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b337e83717a3a0f78c7cbbc00a4809f09c09713d","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The unavailability of a suitable PCI device will make this API call failed."},{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":86,"context_line":"devices avaliable on the guest\u0027s compute."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"we will add an extra spec in the flavour, such as hw_sriov_max_count\u003d2, that"},{"line_number":89,"context_line":"allows a user to attach extra SR-IOV devices, and if its missing (i.e. by"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a740942_114bf12c","line":86,"in_reply_to":"7a740942_75e1fa99","updated":"2015-12-10 10:27:45.000000000","message":"Hang on, all new APIs should be async","commit_id":"7283bcee334571def4b7b4f686470508f8ebd7dc"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7851c3244b319d4589dcd0c45dc733c80673ff2d","unresolved":false,"context_lines":[{"line_number":80,"context_line":"The second thing is alloc the pci device on the host (nova/compute/manager)."},{"line_number":81,"context_line":"Libvirt has already supported generating the pci xml for server, and it can"},{"line_number":82,"context_line":"attach allocated SR-IOV port correctly, if the port is available."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The unavailability of a suitable PCI device will make this API call failed."},{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":86,"context_line":"devices avaliable on the guest\u0027s compute."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"we will add an extra spec in the flavour, such as hw_sriov_max_count\u003d2, that"},{"line_number":89,"context_line":"allows a user to attach extra SR-IOV devices, and if its missing (i.e. by"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a740942_4e69088b","line":86,"range":{"start_line":83,"start_character":0,"end_line":86,"end_character":41},"in_reply_to":"7a740942_78a36e9f","updated":"2015-12-03 17:33:09.000000000","message":"+1, lets fix that in a second revision.","commit_id":"7283bcee334571def4b7b4f686470508f8ebd7dc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5515c979de6915aa3de10b197825240703c77d83","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The unavailability of a suitable PCI device will make this API call failed."},{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":86,"context_line":"devices avaliable on the guest\u0027s compute."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"we will add an extra spec in the flavour, such as hw_sriov_max_count\u003d2, that"},{"line_number":89,"context_line":"allows a user to attach extra SR-IOV devices, and if its missing (i.e. by"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a740942_ac0f1f2d","line":86,"in_reply_to":"7a740942_78a36e9f","updated":"2015-12-04 15:34:06.000000000","message":"i might be wrong:  there is no async process in this  API. all failure or exception lead to API failure.  if it\u0027s not, it\u0027s easy to fix when write code. do you reference to this?","commit_id":"7283bcee334571def4b7b4f686470508f8ebd7dc"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"3edd408985ec7986207d311ae07e9cf71b2bebb5","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The unavailability of a suitable PCI device will make this API call failed."},{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":86,"context_line":"devices avaliable on the guest\u0027s compute."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"we will add an extra spec in the flavour, such as hw_sriov_max_count\u003d2, that"},{"line_number":89,"context_line":"allows a user to attach extra SR-IOV devices, and if its missing (i.e. by"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a740942_75e1fa99","line":86,"in_reply_to":"7a740942_ac0f1f2d","updated":"2015-12-04 16:33:41.000000000","message":"Actually you are right - I assumed it was async like attach volume. So no need to change anything here really","commit_id":"7283bcee334571def4b7b4f686470508f8ebd7dc"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"25c2e9cdee320587798ca349ffd8785d9d78d3a9","unresolved":false,"context_lines":[{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":86,"context_line":"devices avaliable on the guest\u0027s compute."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"we will add an extra spec in the flavour, such as hw_sriov_max_count\u003d2, that"},{"line_number":89,"context_line":"allows a user to attach extra SR-IOV devices, and if its missing (i.e. by"},{"line_number":90,"context_line":"default) don\u0027t allow that operation for that flavor."},{"line_number":91,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a740942_3aadd688","line":88,"updated":"2015-12-03 18:45:42.000000000","message":"We really need to get away from adding more things to flavor extra specs.","commit_id":"7283bcee334571def4b7b4f686470508f8ebd7dc"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b337e83717a3a0f78c7cbbc00a4809f09c09713d","unresolved":false,"context_lines":[{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":86,"context_line":"devices avaliable on the guest\u0027s compute."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"we will add an extra spec in the flavour, such as hw_sriov_max_count\u003d2, that"},{"line_number":89,"context_line":"allows a user to attach extra SR-IOV devices, and if its missing (i.e. by"},{"line_number":90,"context_line":"default) don\u0027t allow that operation for that flavor."},{"line_number":91,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a740942_31938da5","line":88,"in_reply_to":"7a740942_3aadd688","updated":"2015-12-10 10:27:45.000000000","message":"Yeah, I want to get it \"controlled\" at least, like we have for image properties.","commit_id":"7283bcee334571def4b7b4f686470508f8ebd7dc"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7851c3244b319d4589dcd0c45dc733c80673ff2d","unresolved":false,"context_lines":[{"line_number":123,"context_line":"Alternatives"},{"line_number":124,"context_line":"------------"},{"line_number":125,"context_line":"An alternative could be to do the logic in two steps:"},{"line_number":126,"context_line":"1) Do the port-create and attach-interface."},{"line_number":127,"context_line":"2) Resize the instance so that the scheduler can take the new requirements"},{"line_number":128,"context_line":"into account."},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a740942_8e1db011","line":126,"updated":"2015-12-03 17:33:09.000000000","message":"Nit: not sure this is easy to read, I assume it means make nova do the port-create and attach interface in a single step?","commit_id":"7283bcee334571def4b7b4f686470508f8ebd7dc"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"cf4d7ae5e5693cfcafff3419e29cfc6b22d1fada","unresolved":false,"context_lines":[{"line_number":81,"context_line":"Libvirt has already supported generating the pci xml for server, and it can"},{"line_number":82,"context_line":"attach allocated SR-IOV port correctly, if the port is available."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The unavailability of a suitable PCI device will make this API call failed."},{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":86,"context_line":"devices avaliable on the guest\u0027s compute."},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"7a740942_d1f009cc","line":84,"updated":"2015-12-10 10:30:35.000000000","message":"This must be an Async API, so this would be an error reported by os-instance-actions.","commit_id":"c832356b5b4d888434b56b82192d590fa8e302fe"}],"specs/newton/approved/sriov-interface-attach-detach.rst":[{"author":{"_account_id":6804,"name":"bruce-benjamin","email":"bruce.benjamin@jhuapl.edu","username":"bruce-benjamin"},"change_message_id":"efbf9053131a94de04697a73166c4754ec08c94d","unresolved":false,"context_lines":[{"line_number":105,"context_line":"physically removing it."},{"line_number":106,"context_line":"So when require a guest OS that supports ACPI unplug of course, and if the"},{"line_number":107,"context_line":"guest is crashed or being malicious there is no guarantee the unplug will"},{"line_number":108,"context_line":"succeed. Libvirt will wait a short while for success, but nova must monitor for"},{"line_number":109,"context_line":"libvirt events to see if/when it finally completes. This delayed release has"},{"line_number":110,"context_line":"implications for when Nova can mark the PCI device as unused and available for"},{"line_number":111,"context_line":"other guests to assign."}],"source_content_type":"text/x-rst","patch_set":19,"id":"da0c15f0_f26a9c19","line":108,"range":{"start_line":108,"start_character":21,"end_line":108,"end_character":22},"updated":"2016-03-25 17:44:28.000000000","message":"I suggest the update below for clarity.  Also, please include this sentence directly after the sentence above it.  thanks.\n\ns/So when require a guest OS that supports ACPI unplug of course, and if the guest is crashed or being malicious there is no guarantee the unplug will succeed./So a guest OS that supports ACPI unplug is required, but if the guest has crashed or is malicious, there\u0027s no guarantee the unplug will succeed./","commit_id":"f0fec181c8ece11371a08c2a5b989c647d947d92"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"fb38b5824137f8ae2be3819a35678245fded2039","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"SR-IOV makes it possible for a VM to directly send packets to the VIC (virtual"},{"line_number":14,"context_line":"interface card) without having the hypervisor involved."},{"line_number":15,"context_line":"Normal network adapter hotplug [NETWORK_ADAPTER_HOTPLUG]_ is supported in Feb,"},{"line_number":16,"context_line":"2014. And in Juno release, the libvirt driver is enhanced to support SR-IOV"},{"line_number":17,"context_line":"networking by [LIBVIRT_SUPPORT_SR-IOV]_. Also [PCI_PASSTHROUGH_SRIOV]_ enables"},{"line_number":18,"context_line":"a nova instance to be booted up with neutron SRIOV ports."}],"source_content_type":"text/x-rst","patch_set":20,"id":"bab6814e_8423cfa6","line":15,"updated":"2016-05-25 13:43:30.000000000","message":"s/in/since/","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"fb38b5824137f8ae2be3819a35678245fded2039","unresolved":false,"context_lines":[{"line_number":13,"context_line":"SR-IOV makes it possible for a VM to directly send packets to the VIC (virtual"},{"line_number":14,"context_line":"interface card) without having the hypervisor involved."},{"line_number":15,"context_line":"Normal network adapter hotplug [NETWORK_ADAPTER_HOTPLUG]_ is supported in Feb,"},{"line_number":16,"context_line":"2014. And in Juno release, the libvirt driver is enhanced to support SR-IOV"},{"line_number":17,"context_line":"networking by [LIBVIRT_SUPPORT_SR-IOV]_. Also [PCI_PASSTHROUGH_SRIOV]_ enables"},{"line_number":18,"context_line":"a nova instance to be booted up with neutron SRIOV ports."},{"line_number":19,"context_line":"Now we can support attach or detach SR-IOV interfaces to an active VM if host"}],"source_content_type":"text/x-rst","patch_set":20,"id":"bab6814e_644d0b72","line":16,"updated":"2016-05-25 13:43:30.000000000","message":"/is/was/","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"fb38b5824137f8ae2be3819a35678245fded2039","unresolved":false,"context_lines":[{"line_number":22,"context_line":"There are two variants in connecting a SR-IOV port to its corresponding VF."},{"line_number":23,"context_line":"A SR-IOV port may be directly connected to its VF [DIRECT_SR-IOV]_. Or it may"},{"line_number":24,"context_line":"be connected with a macvtap device that resides on the host, which is then"},{"line_number":25,"context_line":"connected to the corresponding VF [MACVTAP_SR-IOV]_. Both connecting types will"},{"line_number":26,"context_line":"be supported."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":20,"id":"bab6814e_246303de","line":25,"updated":"2016-05-25 13:43:30.000000000","message":"s/connecting/connection/","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"02d1653e1f160eda27d02e936994c46c8f9f0712","unresolved":false,"context_lines":[{"line_number":77,"context_line":"to a pci request which is used to alloc pci device for this interface. The API"},{"line_number":78,"context_line":"to create a PCI request already exists."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The second thing is alloc the pci device on the host (nova/compute/manager)."},{"line_number":81,"context_line":"Libvirt has already supported generating the pci xml for server, and it can"},{"line_number":82,"context_line":"attach allocated SR-IOV port correctly, if the port is available."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The unavailability of a suitable PCI device will make this API call failed."},{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"}],"source_content_type":"text/x-rst","patch_set":20,"id":"bab6814e_6170cb40","line":82,"range":{"start_line":80,"start_character":0,"end_line":82,"end_character":65},"updated":"2016-05-23 18:15:12.000000000","message":"what about other hypervies. does hyperv or vmware have similar support.\n\ni believe both support sriov but not sure if they can do it at runtime.\n\nshould this be raised as an error via the api. \ne.g. sriov hotplug not supported by hypervisor.","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"f024fd6402a1297fc17e0e896e7df65f41d36e11","unresolved":false,"context_lines":[{"line_number":77,"context_line":"to a pci request which is used to alloc pci device for this interface. The API"},{"line_number":78,"context_line":"to create a PCI request already exists."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The second thing is alloc the pci device on the host (nova/compute/manager)."},{"line_number":81,"context_line":"Libvirt has already supported generating the pci xml for server, and it can"},{"line_number":82,"context_line":"attach allocated SR-IOV port correctly, if the port is available."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The unavailability of a suitable PCI device will make this API call failed."},{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"}],"source_content_type":"text/x-rst","patch_set":20,"id":"bab6814e_0451d862","line":82,"range":{"start_line":80,"start_character":0,"end_line":82,"end_character":65},"in_reply_to":"bab6814e_3e734b4f","updated":"2016-05-24 15:41:52.000000000","message":"SR-IOV is not supported in vmware until this will be implemented https://review.openstack.org/#/c/317126/","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"5b23a13205fcd8cb4fc43673ce4ff645dafb0b36","unresolved":false,"context_lines":[{"line_number":77,"context_line":"to a pci request which is used to alloc pci device for this interface. The API"},{"line_number":78,"context_line":"to create a PCI request already exists."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The second thing is alloc the pci device on the host (nova/compute/manager)."},{"line_number":81,"context_line":"Libvirt has already supported generating the pci xml for server, and it can"},{"line_number":82,"context_line":"attach allocated SR-IOV port correctly, if the port is available."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The unavailability of a suitable PCI device will make this API call failed."},{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"}],"source_content_type":"text/x-rst","patch_set":20,"id":"bab6814e_3e734b4f","line":82,"range":{"start_line":80,"start_character":0,"end_line":82,"end_character":65},"in_reply_to":"bab6814e_6170cb40","updated":"2016-05-24 14:52:15.000000000","message":"I\u0027m not familiar with vmware and hyperv. \n\nI\u0027d like to raise a notImplementation exception.","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":6804,"name":"bruce-benjamin","email":"bruce.benjamin@jhuapl.edu","username":"bruce-benjamin"},"change_message_id":"9dac0e400c9be2eca5a86791fd53816e031fbc87","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The unavailability of a suitable PCI device will make this API call failed."},{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":86,"context_line":"devices avaliable on the guest\u0027s compute."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"we will add an extra spec in the flavour, such as hw_sriov_max_count\u003d2, that"},{"line_number":89,"context_line":"allows a user to attach extra SR-IOV devices, and if its missing (i.e. by"}],"source_content_type":"text/x-rst","patch_set":20,"id":"9abb7d3a_6405d912","line":86,"range":{"start_line":86,"start_character":40,"end_line":86,"end_character":41},"updated":"2016-05-31 17:02:14.000000000","message":"s/avaliable/available/","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"f024fd6402a1297fc17e0e896e7df65f41d36e11","unresolved":false,"context_lines":[{"line_number":85,"context_line":"Hot-plug might not always be possible for it\u0027s possible that there is no PCI"},{"line_number":86,"context_line":"devices avaliable on the guest\u0027s compute."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"we will add an extra spec in the flavour, such as hw_sriov_max_count\u003d2, that"},{"line_number":89,"context_line":"allows a user to attach extra SR-IOV devices, and if its missing (i.e. by"},{"line_number":90,"context_line":"default) don\u0027t allow that operation for that flavor."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Its common only a subset of infrastructure would allow adding an SR-IOV port,"},{"line_number":93,"context_line":"for example. Best to schedule the correct flavors in the correct location."}],"source_content_type":"text/x-rst","patch_set":20,"id":"bab6814e_c7e19200","line":90,"range":{"start_line":88,"start_character":0,"end_line":90,"end_character":52},"updated":"2016-05-24 15:41:52.000000000","message":"I guess you want to allow the administrator to limit the tenant from adding many pci devices. \nmaybe we should think of quotas for pci devices\nat the moment this seems like a hack.","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":20566,"name":"BaiLinZhang","email":"bailin.zhang@hotmail.com","username":"bailin.zhang"},"change_message_id":"4d3369c9eb9dd60dfb7d702e7ea9c525dd3c3e6e","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"we will add an extra spec in the flavour, such as hw_sriov_max_count\u003d2, that"},{"line_number":89,"context_line":"allows a user to attach extra SR-IOV devices, and if its missing (i.e. by"},{"line_number":90,"context_line":"default) don\u0027t allow that operation for that flavor."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Its common only a subset of infrastructure would allow adding an SR-IOV port,"},{"line_number":93,"context_line":"for example. Best to schedule the correct flavors in the correct location."}],"source_content_type":"text/x-rst","patch_set":20,"id":"7aa08908_e509632c","line":90,"updated":"2016-06-15 02:20:34.000000000","message":"I think this is unnecessary. Because user can create a VM with many SR-IOV devices.","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":20566,"name":"BaiLinZhang","email":"bailin.zhang@hotmail.com","username":"bailin.zhang"},"change_message_id":"4d3369c9eb9dd60dfb7d702e7ea9c525dd3c3e6e","unresolved":false,"context_lines":[{"line_number":98,"context_line":"port. And this also needs to be done holding a compute node resource lock."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"It is safe to detach an directly connected PCI passthrough device, but it is"},{"line_number":101,"context_line":"not guaranteed to succeed. This is commen issue, not only for SRIVO device,"},{"line_number":102,"context_line":"but also for volume and other devices. What happens is that the hypervisor"},{"line_number":103,"context_line":"injects an ACPI request to unplug the device. The guest OS must co-operate by"},{"line_number":104,"context_line":"releasing the device, before the hypervisor will complete the action of"}],"source_content_type":"text/x-rst","patch_set":20,"id":"7aa08908_253ecbb7","line":101,"updated":"2016-06-15 02:20:34.000000000","message":"SRIVO? spelling mistake","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"fb38b5824137f8ae2be3819a35678245fded2039","unresolved":false,"context_lines":[{"line_number":98,"context_line":"port. And this also needs to be done holding a compute node resource lock."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"It is safe to detach an directly connected PCI passthrough device, but it is"},{"line_number":101,"context_line":"not guaranteed to succeed. This is commen issue, not only for SRIVO device,"},{"line_number":102,"context_line":"but also for volume and other devices. What happens is that the hypervisor"},{"line_number":103,"context_line":"injects an ACPI request to unplug the device. The guest OS must co-operate by"},{"line_number":104,"context_line":"releasing the device, before the hypervisor will complete the action of"}],"source_content_type":"text/x-rst","patch_set":20,"id":"bab6814e_e43f3b23","line":101,"updated":"2016-05-25 13:43:30.000000000","message":"s/commen/common/","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":20566,"name":"BaiLinZhang","email":"bailin.zhang@hotmail.com","username":"bailin.zhang"},"change_message_id":"4d3369c9eb9dd60dfb7d702e7ea9c525dd3c3e6e","unresolved":false,"context_lines":[{"line_number":100,"context_line":"It is safe to detach an directly connected PCI passthrough device, but it is"},{"line_number":101,"context_line":"not guaranteed to succeed. This is commen issue, not only for SRIVO device,"},{"line_number":102,"context_line":"but also for volume and other devices. What happens is that the hypervisor"},{"line_number":103,"context_line":"injects an ACPI request to unplug the device. The guest OS must co-operate by"},{"line_number":104,"context_line":"releasing the device, before the hypervisor will complete the action of"},{"line_number":105,"context_line":"physically removing it. So a guest OS that supports ACPI unplug is required,"},{"line_number":106,"context_line":"but if the guest has crashed or is malicious, there\u0027s no guarantee the unplug"}],"source_content_type":"text/x-rst","patch_set":20,"id":"7aa08908_c59c27c2","line":103,"updated":"2016-06-15 02:20:34.000000000","message":"ACPI?","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"02d1653e1f160eda27d02e936994c46c8f9f0712","unresolved":false,"context_lines":[{"line_number":109,"context_line":"release has implications for when Nova can mark the PCI device as unused and"},{"line_number":110,"context_line":"available for other guests to assign."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Libvirt suggestion: to check whether the device was successfully removed,"},{"line_number":113,"context_line":"either recheck domain configuration using virDomainGetXMLDesc() or add handler"},{"line_number":114,"context_line":"for VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED."},{"line_number":115,"context_line":"But this is outside of this spec, the spec doesn\u0027t need to cover the libvirt"}],"source_content_type":"text/x-rst","patch_set":20,"id":"bab6814e_6143abaf","line":112,"range":{"start_line":112,"start_character":0,"end_line":112,"end_character":18},"updated":"2016-05-23 18:15:12.000000000","message":"again what about for other hypervisors.\n\nlibvirt/kvm is the most commen but is there a similar method that applies in the general case.","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"5b23a13205fcd8cb4fc43673ce4ff645dafb0b36","unresolved":false,"context_lines":[{"line_number":109,"context_line":"release has implications for when Nova can mark the PCI device as unused and"},{"line_number":110,"context_line":"available for other guests to assign."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Libvirt suggestion: to check whether the device was successfully removed,"},{"line_number":113,"context_line":"either recheck domain configuration using virDomainGetXMLDesc() or add handler"},{"line_number":114,"context_line":"for VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED."},{"line_number":115,"context_line":"But this is outside of this spec, the spec doesn\u0027t need to cover the libvirt"}],"source_content_type":"text/x-rst","patch_set":20,"id":"bab6814e_5e49efcf","line":112,"range":{"start_line":112,"start_character":0,"end_line":112,"end_character":18},"in_reply_to":"bab6814e_6143abaf","updated":"2016-05-24 14:52:15.000000000","message":"leave not Implementation for other hypervisor.\n\nvmware and hyperv experts can Implement it.","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":6804,"name":"bruce-benjamin","email":"bruce.benjamin@jhuapl.edu","username":"bruce-benjamin"},"change_message_id":"9dac0e400c9be2eca5a86791fd53816e031fbc87","unresolved":false,"context_lines":[{"line_number":113,"context_line":"either recheck domain configuration using virDomainGetXMLDesc() or add handler"},{"line_number":114,"context_line":"for VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED."},{"line_number":115,"context_line":"But this is outside of this spec, the spec doesn\u0027t need to cover the libvirt"},{"line_number":116,"context_line":"calls, we just need to be clear about the API and user vision of the feature."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Note: now the current nova code always changes persistent configure when detach"},{"line_number":119,"context_line":"a device. So even unplug failed, the device will also be detached on next guest"}],"source_content_type":"text/x-rst","patch_set":20,"id":"9abb7d3a_5b0eaf3b","line":116,"range":{"start_line":116,"start_character":76,"end_line":116,"end_character":77},"updated":"2016-05-31 17:02:14.000000000","message":"Suggested update for clarity:  \ns/this is outside of this spec, the spec doesn\u0027t need to cover the libvirt calls, we just need to be clear about/libvirt calls are outside the scope of this spec, since the API and the user\u0027s interactions with the feature are the focus./","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":6804,"name":"bruce-benjamin","email":"bruce.benjamin@jhuapl.edu","username":"bruce-benjamin"},"change_message_id":"9dac0e400c9be2eca5a86791fd53816e031fbc87","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Note: now the current nova code always changes persistent configure when detach"},{"line_number":119,"context_line":"a device. So even unplug failed, the device will also be detached on next guest"},{"line_number":120,"context_line":"reboot."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Alternatives"},{"line_number":123,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":20,"id":"9abb7d3a_5b150f3e","line":120,"range":{"start_line":120,"start_character":6,"end_line":120,"end_character":7},"updated":"2016-05-31 17:02:14.000000000","message":"s/now the current nova code always changes persistent configure when detach a device. So even unplug/The current nova code always changes the persistent configuration when detaching a device, so even if unplug/","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"02d1653e1f160eda27d02e936994c46c8f9f0712","unresolved":false,"context_lines":[{"line_number":147,"context_line":"this may not be a big concern is because of some expectations about how people"},{"line_number":148,"context_line":"would deploy this."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"What we might want to do is document a very common setup where a certain flavor"},{"line_number":151,"context_line":"would be marked as \"sriov hot-pluggable\" which would actually map to a host"},{"line_number":152,"context_line":"aggregate that contains only hosts which support sriov (unless they are already"},{"line_number":153,"context_line":"all taken). That way any VM that does not have this flavor would be expected to"},{"line_number":154,"context_line":"fail the attach 100% of the time."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":20,"id":"bab6814e_81fb2f46","line":154,"range":{"start_line":150,"start_character":0,"end_line":154,"end_character":33},"updated":"2016-05-23 18:15:12.000000000","message":"this is not ideal as it requires many flavors to be created.\ninface you need to double the flavors required.\n\ni think it would be better not to go down that path.","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"5b23a13205fcd8cb4fc43673ce4ff645dafb0b36","unresolved":false,"context_lines":[{"line_number":147,"context_line":"this may not be a big concern is because of some expectations about how people"},{"line_number":148,"context_line":"would deploy this."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"What we might want to do is document a very common setup where a certain flavor"},{"line_number":151,"context_line":"would be marked as \"sriov hot-pluggable\" which would actually map to a host"},{"line_number":152,"context_line":"aggregate that contains only hosts which support sriov (unless they are already"},{"line_number":153,"context_line":"all taken). That way any VM that does not have this flavor would be expected to"},{"line_number":154,"context_line":"fail the attach 100% of the time."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":20,"id":"bab6814e_e140060a","line":154,"range":{"start_line":150,"start_character":0,"end_line":154,"end_character":33},"in_reply_to":"bab6814e_81fb2f46","updated":"2016-05-24 14:52:15.000000000","message":"This is a just document for user to do some mark if they want","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":6804,"name":"bruce-benjamin","email":"bruce.benjamin@jhuapl.edu","username":"bruce-benjamin"},"change_message_id":"9dac0e400c9be2eca5a86791fd53816e031fbc87","unresolved":false,"context_lines":[{"line_number":170,"context_line":"------------------"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Additional pci request will be called, that will bring slightly performance"},{"line_number":173,"context_line":"impact."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":20,"id":"9abb7d3a_3fc0f829","line":173,"range":{"start_line":173,"start_character":0,"end_line":173,"end_character":6},"updated":"2016-05-31 17:02:14.000000000","message":"s/bring slightly/cause a slight/","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d9c1127bc0a591e28f50f52dd1a0f33c67d16ea6","unresolved":false,"context_lines":[{"line_number":221,"context_line":"When this bp will be implemented we can enable it in tempest, and Mellanox CI"},{"line_number":222,"context_line":"can test it."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Also intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":225,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV related feature."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"1a122d0e_6bb985ec","line":224,"range":{"start_line":224,"start_character":32,"end_line":224,"end_character":44},"updated":"2016-04-22 02:06:25.000000000","message":"This currently runs just a single test to create an instance with a pci passthrough flavor and then ssh into the guest to verify the device is attached.","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c2e4f64a07e7386078367813436b135ba9d37eb0","unresolved":false,"context_lines":[{"line_number":221,"context_line":"When this bp will be implemented we can enable it in tempest, and Mellanox CI"},{"line_number":222,"context_line":"can test it."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Also intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":225,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV related feature."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"1a122d0e_b9b78539","line":224,"range":{"start_line":224,"start_character":32,"end_line":224,"end_character":44},"in_reply_to":"1a122d0e_63024971","updated":"2016-05-02 02:05:49.000000000","message":"I see that there are other tests in the Intel PCI CI test repo, but in the latest runs I\u0027ve checked those other tests aren\u0027t being run.","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"7bd1b49263bb4f5f29ff5848b977b5f5bb408b25","unresolved":false,"context_lines":[{"line_number":221,"context_line":"When this bp will be implemented we can enable it in tempest, and Mellanox CI"},{"line_number":222,"context_line":"can test it."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Also intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":225,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV related feature."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"1a122d0e_63024971","line":224,"range":{"start_line":224,"start_character":32,"end_line":224,"end_character":44},"in_reply_to":"1a122d0e_6bb985ec","updated":"2016-04-22 07:17:30.000000000","message":"Hi, Matt. \nThere are several tests about PCI test. Because the upstream of tempest have changed, we are update the test case one by one. \nNow some of the test cases are recovering. \n\nAlso we give up ssh into the guest info. \nWe use use \"user-data\" and \"personality\" to inject a shell to the guest, and print the PCI info to console, and then verify the PCI device. \nThis way is more reliable.\n\nNow you can check the new version code of PCI test case.","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"71f10c3be59b8271cd048133209515dd32428cd8","unresolved":false,"context_lines":[{"line_number":221,"context_line":"When this bp will be implemented we can enable it in tempest, and Mellanox CI"},{"line_number":222,"context_line":"can test it."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Also intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":225,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV related feature."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"bab6814e_a4628c14","line":224,"range":{"start_line":224,"start_character":32,"end_line":224,"end_character":44},"in_reply_to":"1a122d0e_b9b78539","updated":"2016-05-24 15:17:11.000000000","message":"Hi, Matt.\n\nWe have do a lot of working on PCI/SRIOV CI now. \n\nAnd we can add the SRIOV CI for nova.\n\n\nI wonder, can this spec be approved for this release?","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9a3c5a44246efcfdd56d1703258b26a16069b737","unresolved":false,"context_lines":[{"line_number":221,"context_line":"When this bp will be implemented we can enable it in tempest, and Mellanox CI"},{"line_number":222,"context_line":"can test it."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Also intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":225,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV related feature."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"1a122d0e_ca940a8e","line":224,"range":{"start_line":224,"start_character":32,"end_line":224,"end_character":44},"in_reply_to":"1a122d0e_b9b78539","updated":"2016-05-03 02:04:06.000000000","message":"the CI test cases been upgraded recently. for prevent to given wrong test result, these test cases would been run in experimental mode for several days. then make them gate again. \n\nseveral cases been run for about 1 week, and will recover soon. (btw, with resize testing.)","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d9c1127bc0a591e28f50f52dd1a0f33c67d16ea6","unresolved":false,"context_lines":[{"line_number":222,"context_line":"can test it."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Also intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":225,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV related feature."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1a122d0e_6bd22536","line":225,"range":{"start_line":225,"start_character":1,"end_line":225,"end_character":15},"updated":"2016-04-22 02:06:25.000000000","message":"This doesn\u0027t run on nova today...","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"71f10c3be59b8271cd048133209515dd32428cd8","unresolved":false,"context_lines":[{"line_number":222,"context_line":"can test it."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Also intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":225,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV related feature."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":20,"id":"bab6814e_642f04a2","line":225,"range":{"start_line":225,"start_character":1,"end_line":225,"end_character":15},"in_reply_to":"1a122d0e_397a5578","updated":"2016-05-24 15:17:11.000000000","message":"We can support all these test case, and add a SR-IOV CI for nova.","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"02d1653e1f160eda27d02e936994c46c8f9f0712","unresolved":false,"context_lines":[{"line_number":222,"context_line":"can test it."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Also intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":225,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV related feature."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":20,"id":"bab6814e_fce580db","line":225,"range":{"start_line":225,"start_character":1,"end_line":225,"end_character":15},"in_reply_to":"1a122d0e_397a5578","updated":"2016-05-23 18:15:12.000000000","message":"we are almost finished migrating or nvf and networking ci\nto zuul. \n\nwe need to ha a discussion internally about if we will add pci/sriov testing to those cis as well.\n\neventually the pci and sriov ci could merge with our other ci but we have not stared trying to combine them currently.\n\nfor our main compute and networking ci we are first focusing on the zuul migration which is almost completed and then probably multi node testing. after those features are added i think it would make sense to see if we can absorb the pci and sriov jobs into our other cis as additional zuul jobs.","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c2e4f64a07e7386078367813436b135ba9d37eb0","unresolved":false,"context_lines":[{"line_number":222,"context_line":"can test it."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Also intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":225,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV related feature."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1a122d0e_397a5578","line":225,"range":{"start_line":225,"start_character":1,"end_line":225,"end_character":15},"in_reply_to":"1a122d0e_6339a941","updated":"2016-05-02 02:05:49.000000000","message":"It depends on what it tests and if it works. See the etherpad on the performance VMs design summit session in Austin:\n\nhttps://etherpad.openstack.org/p/newton-nova-performance-vms","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"7bd1b49263bb4f5f29ff5848b977b5f5bb408b25","unresolved":false,"context_lines":[{"line_number":222,"context_line":"can test it."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Also intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":225,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV related feature."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":20,"id":"1a122d0e_6339a941","line":225,"range":{"start_line":225,"start_character":1,"end_line":225,"end_character":15},"in_reply_to":"1a122d0e_6bd22536","updated":"2016-04-22 07:17:30.000000000","message":"So should we run this SR-IOV test case on nova at present?","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"5b23a13205fcd8cb4fc43673ce4ff645dafb0b36","unresolved":false,"context_lines":[{"line_number":222,"context_line":"can test it."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Also intel has set up a PCI CI [INTEL_PCI_CI]_ and a SR-IOV CI"},{"line_number":225,"context_line":"[INTEL_SRIOV_CI]_ to ensure the SR-IOV related feature."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":20,"id":"bab6814e_1e0c8741","line":225,"range":{"start_line":225,"start_character":1,"end_line":225,"end_character":15},"in_reply_to":"bab6814e_fce580db","updated":"2016-05-24 14:52:15.000000000","message":"Great. Thanks.","commit_id":"d011c5a5e2c4b8857e4978237d76a63e78ba5033"}]}
