)]}'
{"specs/pike/approved/dpdk-sriov.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1a6a973729901fa09dbe801f023b4f40dd50e3f0","unresolved":false,"context_lines":[{"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/accelerating-sriov-with-dpdk"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"By integrating DPDK PMD drivers with SR-IOV we can see significant improvement"},{"line_number":16,"context_line":"in NFV workloads. The virtual machines will be attached to hostdev devices"},{"line_number":17,"context_line":"which will increase the throughput for the NFV applications and help get as"},{"line_number":18,"context_line":"close to wire-line speed as possible for virtual machines."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\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":2,"id":"1a430d35_cff12603","line":18,"range":{"start_line":14,"start_character":0,"end_line":18,"end_character":58},"updated":"2017-02-07 16:39:19.000000000","message":"you can use a dpdk pmd in the guest today with sriov VF or pci pasthrough.","commit_id":"e021400e9800fa50b5d983d2661af6064a49e6e4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1a6a973729901fa09dbe801f023b4f40dd50e3f0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Any application that cannot support high volume on the data traffic path needs"},{"line_number":24,"context_line":"significant improvement in performance for network data traffic. The typical"},{"line_number":25,"context_line":"performance of  a vSwitch can be improved using features like SR-IOV and DPDK."},{"line_number":26,"context_line":"Leveraging the features of theunderlying intel hardware, it comprises a set of"},{"line_number":27,"context_line":"lightweight software data plane libraries and optimized NIC drivers that can"},{"line_number":28,"context_line":"be modified for specifc applications that cannot handle high volumes on data"},{"line_number":29,"context_line":"traffic path. Along with SR-IOV this will enable the users to program the data"},{"line_number":30,"context_line":"path using DPDK."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Use Cases"},{"line_number":33,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a430d35_4f6b7685","line":30,"range":{"start_line":23,"start_character":0,"end_line":30,"end_character":16},"updated":"2017-02-07 16:39:19.000000000","message":"this is two broad can you be more specific as to what problem you are trying to address. dpdk is a framework for userspace networking that can be used to address many domains.\n\nwhat specific problem are you trying to address this this spec that cant be fulfilled today.","commit_id":"e021400e9800fa50b5d983d2661af6064a49e6e4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1a6a973729901fa09dbe801f023b4f40dd50e3f0","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Use Cases"},{"line_number":33,"context_line":"---------"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"In addition to network performance, this proposed solution will allow operators"},{"line_number":36,"context_line":"to configure VFs at a more granular level with all the features available on"},{"line_number":37,"context_line":"cards and provide more flexibility to the NFV users. The operator can configure"},{"line_number":38,"context_line":"advanced features for the VFs on supported NICs like VLAN filtering, mac"},{"line_number":39,"context_line":"spoofing, multicast mode, QinQ, insert tag, strip tag, etc."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a430d35_af8f7a28","line":39,"range":{"start_line":35,"start_character":0,"end_line":39,"end_character":59},"updated":"2017-02-07 16:39:19.000000000","message":"this configuration would be more sutited to being done via the sriov-nic-agent in neutron. not in nova. \n\nby doing this via neutron we can decouple the configuration for the flavor or image and do this on a per port basis which will not be possible to do in a nova context.","commit_id":"e021400e9800fa50b5d983d2661af6064a49e6e4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1a6a973729901fa09dbe801f023b4f40dd50e3f0","unresolved":false,"context_lines":[{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"In existing implementation we have a network segment bound to a port, and this"},{"line_number":45,"context_line":"network segment is a VLAN but with the ability to configure each VF. By"},{"line_number":46,"context_line":"integration of DPDK, the data from user applications avoid context switching"},{"line_number":47,"context_line":"and data copy associated with system calls. DPDK accelerated hardware enables"},{"line_number":48,"context_line":"the packets to bypass the Kernel entirely. Operators can configure multiple"},{"line_number":49,"context_line":"segments and much more configurations on each VF and use the same provider"},{"line_number":50,"context_line":"physical network which maps to a NIC that can have 32 VFs The physical network"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a430d35_6ac0202b","line":47,"range":{"start_line":45,"start_character":69,"end_line":47,"end_character":43},"updated":"2017-02-07 16:39:19.000000000","message":"dpdk does not support the kernel mailbox protocol which means that if the PF is bound to dpdk no kernel apis can be used to manage the VF and only the userpaces application would be able to manage it. \n\nalso in the context of sriov unless we are talking baout dpdk in the guest which works to day this is irrlevent when discussing sriov.","commit_id":"e021400e9800fa50b5d983d2661af6064a49e6e4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1a6a973729901fa09dbe801f023b4f40dd50e3f0","unresolved":false,"context_lines":[{"line_number":44,"context_line":"In existing implementation we have a network segment bound to a port, and this"},{"line_number":45,"context_line":"network segment is a VLAN but with the ability to configure each VF. By"},{"line_number":46,"context_line":"integration of DPDK, the data from user applications avoid context switching"},{"line_number":47,"context_line":"and data copy associated with system calls. DPDK accelerated hardware enables"},{"line_number":48,"context_line":"the packets to bypass the Kernel entirely. Operators can configure multiple"},{"line_number":49,"context_line":"segments and much more configurations on each VF and use the same provider"},{"line_number":50,"context_line":"physical network which maps to a NIC that can have 32 VFs The physical network"},{"line_number":51,"context_line":"maps to the pci_whitelist option found in the nova.conf configuration file."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a430d35_ea86d0d9","line":48,"range":{"start_line":47,"start_character":44,"end_line":48,"end_character":41},"updated":"2017-02-07 16:39:19.000000000","message":"sriov is a kernel bypass technology and dpdk is an alternitve kernel bapass technology.\n\nusing sriov on the host for a PF will have no accleration effect for the VF. sriov operates at a hardware level so it cannot be accelerated with software. dpdk may give you access\nto configuring hardware features not exposed in the linux driver but dpdk is itself is not preforming any acceleration in this case.","commit_id":"e021400e9800fa50b5d983d2661af6064a49e6e4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1a6a973729901fa09dbe801f023b4f40dd50e3f0","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        |     |            |         |  +-----------------------------+"},{"line_number":71,"context_line":"        |     +------------+         |  | Compute Node                |"},{"line_number":72,"context_line":"   2.   |                            |  |                             |"},{"line_number":73,"context_line":"    +   |     +--------------------+ |  |  +-----------------+        |"},{"line_number":74,"context_line":"    |   |     | Nova               | |  |  | Nova Compute    |        |"},{"line_number":75,"context_line":"    |   |     | +------+ +-------+ | |  |  |                 |        |"},{"line_number":76,"context_line":"    |   |     | | API  | | Server| | |  |  | +-------------+ |        |"},{"line_number":77,"context_line":"    +-----------\u003e    3.+--\u003e 4.   | | |  |  | | Manager     | |        |"},{"line_number":78,"context_line":"        |     | +------+ +--+----+ | |  |  | |      6.     | |        |"},{"line_number":79,"context_line":"        |     |             |      | |  |  | | +---------+ | | +-----+|"},{"line_number":80,"context_line":"        |     |     +-------v--+   | |  |  | | | libvrt  | | | | DPDK||"},{"line_number":81,"context_line":"        |     |     | Scheduler|   | |  |  | | | Driver7.+-----\u003e 8.  ||"},{"line_number":82,"context_line":"        |     |     |       5.+--  +---------\u003e +---------+ | | |     ||"},{"line_number":83,"context_line":"        |     |     +----------|   | |  |  | +-------------+ | +-+---+|"},{"line_number":84,"context_line":"        |     +--------------------+ |  |  +-----------------+   |    |"},{"line_number":85,"context_line":"        |                            |  |                      9.|    |"},{"line_number":86,"context_line":"        +----------------------------+  |                        |    |"},{"line_number":87,"context_line":"                                        |  +-----------------------+  |"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a430d35_6af8204a","line":84,"range":{"start_line":73,"start_character":43,"end_line":84,"end_character":62},"updated":"2017-02-07 16:39:19.000000000","message":"the nova compute box should be replaced with the sriov nic agent.","commit_id":"e021400e9800fa50b5d983d2661af6064a49e6e4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1a6a973729901fa09dbe801f023b4f40dd50e3f0","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":".. code-block:: bash"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    openstack port create --name demo_sriov f0ddb971-609e-45a8-9c4d-d6e08a5f0e6d\\"},{"line_number":115,"context_line":"    --binding:vnic_type direct --binding:profile type\u003dutils.json2dict\\"},{"line_number":116,"context_line":"    \u0027{\"VF_VLAN_FILTER\": [207], \"INSERT_STAG\": false, \"VF_BROADCAST_ALLOW\":\\"},{"line_number":117,"context_line":"    true ,\"VF_UNKNOWN_MULTICAST_ALLOW\": true, \"VF_UNKNOWN_UNICAST_ALLOW\":\\"},{"line_number":118,"context_line":"    true, \"LINK_STATUS\": true ,\"VF_VLAN_STRIP\": true}\u0027"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"2. User sends the port id information to the nova client in a boot request"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a430d35_ca42f467","line":118,"range":{"start_line":114,"start_character":4,"end_line":118,"end_character":54},"updated":"2017-02-07 16:39:19.000000000","message":"here you are storing the request in the neutron port which i like but why would nova need this information?\n\nif we siply did not program the vlan and mac with nova in the libvirt xml we could configure all these paramaters via the sriov nic agent by adding a simple driver lay that allowed the VFD to be used as an alternitive driver to iptools.","commit_id":"e021400e9800fa50b5d983d2661af6064a49e6e4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1a6a973729901fa09dbe801f023b4f40dd50e3f0","unresolved":false,"context_lines":[{"line_number":130,"context_line":"   Passthrough"},{"line_number":131,"context_line":"6. Nova Scheduler sends a notification to nova manager on compute"},{"line_number":132,"context_line":"7. The nova manager generates the vm configuration and adds the hostdev devices"},{"line_number":133,"context_line":"   and DPDK driver to include the PCI VFs"},{"line_number":134,"context_line":"8. Nova Compute updates the port information by retrieving the information from"},{"line_number":135,"context_line":"   the port ID in the request."},{"line_number":136,"context_line":"9. Nova Compute configures virtual functions by generating a configuration file"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a430d35_854fff69","line":133,"range":{"start_line":133,"start_character":6,"end_line":133,"end_character":41},"updated":"2017-02-07 16:39:19.000000000","message":"this would require libvirt changes to allow libvirt to comuicate to dpdk. the dpdk project is not working on this and im not aware of any activity in the libvirt comutity to enable this.\n\nusing the sriov nic agent to mangae this we can enable this usecase without modifying libvirt or dpdk.","commit_id":"e021400e9800fa50b5d983d2661af6064a49e6e4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1a6a973729901fa09dbe801f023b4f40dd50e3f0","unresolved":false,"context_lines":[{"line_number":154,"context_line":"The parameters in the binding profile need to be exposed to"},{"line_number":155,"context_line":"Neutron."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"--binding:profile \"{"},{"line_number":158,"context_line":"    \"VLAN_FILTER\":  [100],"},{"line_number":159,"context_line":"    \"MAC_FILTER\": [\"de:ad:be:ef:co:fe\"],"},{"line_number":160,"context_line":"    \"VLAN_ANTI_SPOOF_CHECK\": true,"},{"line_number":161,"context_line":"    \"BROADCAST_ALLOW\": true,"},{"line_number":162,"context_line":"    \"VLAN_STRIP\": true,"},{"line_number":163,"context_line":"    \"UNKOWN_UNICAST_ALLOW\": true,"},{"line_number":164,"context_line":"    \"MAC_ANTI_SPOOF_CHECK\": true,"},{"line_number":165,"context_line":"    \"INSERT_STAG\": true,"},{"line_number":166,"context_line":"    \"UNKOWN_MULTICAST_ALLOW\": true,"},{"line_number":167,"context_line":"    \"LINK_STATUS\": \"auto\""},{"line_number":168,"context_line":"}\""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Security impact"},{"line_number":171,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a430d35_e571a3a9","line":168,"range":{"start_line":157,"start_character":0,"end_line":168,"end_character":2},"updated":"2017-02-07 16:39:19.000000000","message":"this i am fine with in general but this is a neutron api change so this should be a neutron spec.","commit_id":"e021400e9800fa50b5d983d2661af6064a49e6e4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1a6a973729901fa09dbe801f023b4f40dd50e3f0","unresolved":false,"context_lines":[{"line_number":187,"context_line":"Performance Impact"},{"line_number":188,"context_line":"------------------"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Networking with SR-IOV will see significant improvements by using this"},{"line_number":191,"context_line":"feature because DPDK\u0027s poll mode mitigates interrupts."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"Other deployer impact"},{"line_number":194,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a430d35_a5d79b49","line":191,"range":{"start_line":190,"start_character":0,"end_line":191,"end_character":54},"updated":"2017-02-07 16:39:19.000000000","message":"can you provide evidce of this.\n\nbased on my knolage of dpdk this is not true.\n\ninterrupts for the VF are not processed by the host they are processed by the VM it is attached too and without a running dpdk pmd in the Guest then this change will not eliminate the need to handle interrupts as they are done today.\n\nsimilarly as you can already run dpdk in the guest i dont see how this spec changes that.","commit_id":"e021400e9800fa50b5d983d2661af6064a49e6e4"}]}
