)]}'
{"specs/container-SRIOV-networking.rst":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"bd2f5d7e2900c2f32d268d0cae37a0947f865725","unresolved":false,"context_lines":[{"line_number":21,"context_line":"PF (physical function) and multiple VFs (Virtual Functions). Essentially"},{"line_number":22,"context_line":"the PF and VFs appears as multiple PCIe devices. With the introduction of"},{"line_number":23,"context_line":"SR-IOV based NICs, the traditional virtual bridge is no longer required,"},{"line_number":24,"context_line":"and thus higher networking performance can be achieved. This is an "},{"line_number":25,"context_line":"important requirement for most Virtualization Network Functions (VNFs)."},{"line_number":26,"context_line":"To support VNF application deployment over Zun containers, it is desirable to"},{"line_number":27,"context_line":"support SR-IOV networking feature for Zun."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_4780a346","line":24,"range":{"start_line":24,"start_character":66,"end_line":24,"end_character":67},"updated":"2017-07-18 14:52:27.000000000","message":"nit: no space","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"bd2f5d7e2900c2f32d268d0cae37a0947f865725","unresolved":false,"context_lines":[{"line_number":22,"context_line":"the PF and VFs appears as multiple PCIe devices. With the introduction of"},{"line_number":23,"context_line":"SR-IOV based NICs, the traditional virtual bridge is no longer required,"},{"line_number":24,"context_line":"and thus higher networking performance can be achieved. This is an "},{"line_number":25,"context_line":"important requirement for most Virtualization Network Functions (VNFs)."},{"line_number":26,"context_line":"To support VNF application deployment over Zun containers, it is desirable to"},{"line_number":27,"context_line":"support SR-IOV networking feature for Zun."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_87d8fb7a","line":25,"range":{"start_line":25,"start_character":31,"end_line":25,"end_character":45},"updated":"2017-07-18 14:52:27.000000000","message":"Virtualized Network Function","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"4ece3064cd6327db0d39cde77c5df94cf30c1921","unresolved":false,"context_lines":[{"line_number":29,"context_line":"To enable SR-IOV networking for Zun containers, Zun should provide a data"},{"line_number":30,"context_line":"model for PCI passthrough devices, and a filter to enable Zun scheduler"},{"line_number":31,"context_line":"locate the Zun computes that have access to the PCI passthrough devices."},{"line_number":32,"context_line":"These two dependencies are addressed under separated bluprint[1][2]."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Two network drivers are currently implemented in Zun: docker native networking"},{"line_number":35,"context_line":"and Kuryr networking. Both the drivers do not support SR-IOV without"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_067f35e0","line":32,"range":{"start_line":32,"start_character":53,"end_line":32,"end_character":61},"updated":"2017-07-19 05:34:03.000000000","message":"typo","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"bd2f5d7e2900c2f32d268d0cae37a0947f865725","unresolved":false,"context_lines":[{"line_number":31,"context_line":"locate the Zun computes that have access to the PCI passthrough devices."},{"line_number":32,"context_line":"These two dependencies are addressed under separated bluprint[1][2]."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Two network drivers are currently implemented in Zun: docker native networking"},{"line_number":35,"context_line":"and Kuryr networking. Both the drivers do not support SR-IOV without"},{"line_number":36,"context_line":"modification. Since Kuryr is the prefered networking driver for Zun, this"},{"line_number":37,"context_line":"design spec will focus on the implementation using Kuryr driver."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_87a7dbbd","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":3},"updated":"2017-07-18 14:52:27.000000000","message":"Actually, there is only one network driver in ZUn, which is the Kuryr network driver.","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"4ece3064cd6327db0d39cde77c5df94cf30c1921","unresolved":false,"context_lines":[{"line_number":56,"context_line":"- Cloud admin configures sriov_nic.physical_device_mappings at"},{"line_number":57,"context_line":"  /etc/neutron/plugins/ml2/ml2_conf_sriov.ini on Zun compute nodes (with"},{"line_number":58,"context_line":"  existing Neutron support)[3];"},{"line_number":59,"context_line":"- Cloud user creates a network that SR-IOV NIC connects (with existing"},{"line_number":60,"context_line":"  Neutron support)[3];"},{"line_number":61,"context_line":"- Cloud admin creates a SR-IOV network port (with existing Neutron support)[3];"},{"line_number":62,"context_line":"- Cloud user creates a new container bound with the SR-IOV network port."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"This design spec focuses on the last step above."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_4942deac","line":61,"range":{"start_line":59,"start_character":2,"end_line":61,"end_character":21},"updated":"2017-07-19 05:34:03.000000000","message":"No sure how these 2 steps are coordinated. Maybe the network should be created by the admin?","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":25026,"name":"Bin Zhou","email":"lakerzhou@gmail.com","username":"lakerzhou"},"change_message_id":"3fe227c00e3834fd89da151965eea21db3bbdce2","unresolved":false,"context_lines":[{"line_number":56,"context_line":"- Cloud admin configures sriov_nic.physical_device_mappings at"},{"line_number":57,"context_line":"  /etc/neutron/plugins/ml2/ml2_conf_sriov.ini on Zun compute nodes (with"},{"line_number":58,"context_line":"  existing Neutron support)[3];"},{"line_number":59,"context_line":"- Cloud user creates a network that SR-IOV NIC connects (with existing"},{"line_number":60,"context_line":"  Neutron support)[3];"},{"line_number":61,"context_line":"- Cloud admin creates a SR-IOV network port (with existing Neutron support)[3];"},{"line_number":62,"context_line":"- Cloud user creates a new container bound with the SR-IOV network port."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"This design spec focuses on the last step above."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_1b4d2d3d","line":61,"range":{"start_line":59,"start_character":2,"end_line":61,"end_character":21},"in_reply_to":"1f1a1f67_4942deac","updated":"2017-07-19 20:51:39.000000000","message":"Good catch. By default, it is the other way around. Because the SRIOV VLAN is usually a provider network, usually only admin can create the network (default policy). cloud user should be able to create port (default policy). I will make the change.","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"bd2f5d7e2900c2f32d268d0cae37a0947f865725","unresolved":false,"context_lines":[{"line_number":67,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":68,"context_line":"1. Introduce a new option to allow user specify the neutron port-id when zun"},{"line_number":69,"context_line":"   creates a container, for example:"},{"line_number":70,"context_line":"   zun create --name container_name --nets port_id\u003dxxx ..."},{"line_number":71,"context_line":"   In case the vnic_type of the port is \"direct\", the port is created as"},{"line_number":72,"context_line":"   an SR-IOV port. Then kuryr_libnetwork should use a new SR-IOV port driver"},{"line_number":73,"context_line":"   when create the port for the container. Currently, kuryr can only support"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_07b06b89","line":70,"range":{"start_line":70,"start_character":43,"end_line":70,"end_character":50},"updated":"2017-07-18 14:52:27.000000000","message":"It should be\n\n  --net port\u003dxxx\n\nwhere xxx can be an uuid or name.","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"4ece3064cd6327db0d39cde77c5df94cf30c1921","unresolved":false,"context_lines":[{"line_number":68,"context_line":"1. Introduce a new option to allow user specify the neutron port-id when zun"},{"line_number":69,"context_line":"   creates a container, for example:"},{"line_number":70,"context_line":"   zun create --name container_name --nets port_id\u003dxxx ..."},{"line_number":71,"context_line":"   In case the vnic_type of the port is \"direct\", the port is created as"},{"line_number":72,"context_line":"   an SR-IOV port. Then kuryr_libnetwork should use a new SR-IOV port driver"},{"line_number":73,"context_line":"   when create the port for the container. Currently, kuryr can only support"},{"line_number":74,"context_line":"   one port driver per host. This means if we enable new SR-IOV port driver"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_c90f0e86","line":71,"range":{"start_line":71,"start_character":62,"end_line":71,"end_character":69},"updated":"2017-07-19 05:34:03.000000000","message":"port is already created, the only missing part is binding","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":25026,"name":"Bin Zhou","email":"lakerzhou@gmail.com","username":"lakerzhou"},"change_message_id":"3fe227c00e3834fd89da151965eea21db3bbdce2","unresolved":false,"context_lines":[{"line_number":68,"context_line":"1. Introduce a new option to allow user specify the neutron port-id when zun"},{"line_number":69,"context_line":"   creates a container, for example:"},{"line_number":70,"context_line":"   zun create --name container_name --nets port_id\u003dxxx ..."},{"line_number":71,"context_line":"   In case the vnic_type of the port is \"direct\", the port is created as"},{"line_number":72,"context_line":"   an SR-IOV port. Then kuryr_libnetwork should use a new SR-IOV port driver"},{"line_number":73,"context_line":"   when create the port for the container. Currently, kuryr can only support"},{"line_number":74,"context_line":"   one port driver per host. This means if we enable new SR-IOV port driver"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_16df4469","line":71,"range":{"start_line":71,"start_character":62,"end_line":71,"end_character":69},"in_reply_to":"1f1a1f67_c90f0e86","updated":"2017-07-19 20:51:39.000000000","message":"rewording to make it clear.","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"bd2f5d7e2900c2f32d268d0cae37a0947f865725","unresolved":false,"context_lines":[{"line_number":77,"context_line":"   limitation in the future."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"2. Implement a new sriov_port_driver at kuryr_libnetwork."},{"line_number":80,"context_line":"   The sriov_port_driver implement the abstract function create_host_iface()."},{"line_number":81,"context_line":"   The function allocates an SR-IOV VF on the host for the specified neutron"},{"line_number":82,"context_line":"   port (e.g. pass-in parameter). Then the port is bound to the coresponding"},{"line_number":83,"context_line":"   network subsystem[5]; "}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_cb239da6","line":80,"range":{"start_line":80,"start_character":25,"end_line":80,"end_character":34},"updated":"2017-07-18 14:52:27.000000000","message":"nit: implements","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"bd2f5d7e2900c2f32d268d0cae37a0947f865725","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"2. Implement a new sriov_port_driver at kuryr_libnetwork."},{"line_number":80,"context_line":"   The sriov_port_driver implement the abstract function create_host_iface()."},{"line_number":81,"context_line":"   The function allocates an SR-IOV VF on the host for the specified neutron"},{"line_number":82,"context_line":"   port (e.g. pass-in parameter). Then the port is bound to the coresponding"},{"line_number":83,"context_line":"   network subsystem[5]; "},{"line_number":84,"context_line":"   The sriov_port_driver should also implement delete_host_iface(). The"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_ab4d013f","line":81,"range":{"start_line":81,"start_character":59,"end_line":81,"end_character":68},"updated":"2017-07-18 14:52:27.000000000","message":"According to the docs [1], it seems kuryr cannot directly specify a neutron port by its uuid, however, it can be specified by IP address, like:\n\n  $ docker run -it --net\u003dkuryr_net --ip\u003d10.0.0.5 ubuntu\n\nThis command will search neutron port with IP address 10.0.0.5 under kuryr_net.\n\n[1] https://github.com/openstack/kuryr-libnetwork#features","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":25026,"name":"Bin Zhou","email":"lakerzhou@gmail.com","username":"lakerzhou"},"change_message_id":"3fe227c00e3834fd89da151965eea21db3bbdce2","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"2. Implement a new sriov_port_driver at kuryr_libnetwork."},{"line_number":80,"context_line":"   The sriov_port_driver implement the abstract function create_host_iface()."},{"line_number":81,"context_line":"   The function allocates an SR-IOV VF on the host for the specified neutron"},{"line_number":82,"context_line":"   port (e.g. pass-in parameter). Then the port is bound to the coresponding"},{"line_number":83,"context_line":"   network subsystem[5]; "},{"line_number":84,"context_line":"   The sriov_port_driver should also implement delete_host_iface(). The"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_b64d303c","line":81,"range":{"start_line":81,"start_character":59,"end_line":81,"end_character":68},"in_reply_to":"1f1a1f67_ab4d013f","updated":"2017-07-19 20:51:39.000000000","message":"right! I thought we fixed it. Let me clarify this in the earlier section of the spec. port is a passed parameter for the function create_host_iface(self, endpoint_id, neutron_port, subnets, network\u003dNone).","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"4ece3064cd6327db0d39cde77c5df94cf30c1921","unresolved":false,"context_lines":[{"line_number":79,"context_line":"2. Implement a new sriov_port_driver at kuryr_libnetwork."},{"line_number":80,"context_line":"   The sriov_port_driver implement the abstract function create_host_iface()."},{"line_number":81,"context_line":"   The function allocates an SR-IOV VF on the host for the specified neutron"},{"line_number":82,"context_line":"   port (e.g. pass-in parameter). Then the port is bound to the coresponding"},{"line_number":83,"context_line":"   network subsystem[5]; "},{"line_number":84,"context_line":"   The sriov_port_driver should also implement delete_host_iface(). The"},{"line_number":85,"context_line":"   function de-allocates the SR-IOV VF and adds it back to the pool. "}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_a9585287","line":82,"range":{"start_line":82,"start_character":64,"end_line":82,"end_character":76},"updated":"2017-07-19 05:34:03.000000000","message":"typo","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"bd2f5d7e2900c2f32d268d0cae37a0947f865725","unresolved":false,"context_lines":[{"line_number":80,"context_line":"   The sriov_port_driver implement the abstract function create_host_iface()."},{"line_number":81,"context_line":"   The function allocates an SR-IOV VF on the host for the specified neutron"},{"line_number":82,"context_line":"   port (e.g. pass-in parameter). Then the port is bound to the coresponding"},{"line_number":83,"context_line":"   network subsystem[5]; "},{"line_number":84,"context_line":"   The sriov_port_driver should also implement delete_host_iface(). The"},{"line_number":85,"context_line":"   function de-allocates the SR-IOV VF and adds it back to the pool. "},{"line_number":86,"context_line":"   The sriov_port_driver also implement get_container_iface_name(). This"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_67327f60","line":83,"range":{"start_line":83,"start_character":24,"end_line":83,"end_character":25},"updated":"2017-07-18 14:52:27.000000000","message":"nit: no space.","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"bd2f5d7e2900c2f32d268d0cae37a0947f865725","unresolved":false,"context_lines":[{"line_number":82,"context_line":"   port (e.g. pass-in parameter). Then the port is bound to the coresponding"},{"line_number":83,"context_line":"   network subsystem[5]; "},{"line_number":84,"context_line":"   The sriov_port_driver should also implement delete_host_iface(). The"},{"line_number":85,"context_line":"   function de-allocates the SR-IOV VF and adds it back to the pool. "},{"line_number":86,"context_line":"   The sriov_port_driver also implement get_container_iface_name(). This"},{"line_number":87,"context_line":"   function should return the name of the VF instance."},{"line_number":88,"context_line":"   Once a SR-IOV network port is available, kuryr_libnetwork will call docker"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_e7456fb5","line":85,"range":{"start_line":85,"start_character":68,"end_line":85,"end_character":69},"updated":"2017-07-18 14:52:27.000000000","message":"nit: no space","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"4ece3064cd6327db0d39cde77c5df94cf30c1921","unresolved":false,"context_lines":[{"line_number":82,"context_line":"   port (e.g. pass-in parameter). Then the port is bound to the coresponding"},{"line_number":83,"context_line":"   network subsystem[5]; "},{"line_number":84,"context_line":"   The sriov_port_driver should also implement delete_host_iface(). The"},{"line_number":85,"context_line":"   function de-allocates the SR-IOV VF and adds it back to the pool. "},{"line_number":86,"context_line":"   The sriov_port_driver also implement get_container_iface_name(). This"},{"line_number":87,"context_line":"   function should return the name of the VF instance."},{"line_number":88,"context_line":"   Once a SR-IOV network port is available, kuryr_libnetwork will call docker"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_e95aca80","line":85,"range":{"start_line":85,"start_character":62,"end_line":85,"end_character":67},"updated":"2017-07-19 05:34:03.000000000","message":"till now pool was not mentioned","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"4ece3064cd6327db0d39cde77c5df94cf30c1921","unresolved":false,"context_lines":[{"line_number":83,"context_line":"   network subsystem[5]; "},{"line_number":84,"context_line":"   The sriov_port_driver should also implement delete_host_iface(). The"},{"line_number":85,"context_line":"   function de-allocates the SR-IOV VF and adds it back to the pool. "},{"line_number":86,"context_line":"   The sriov_port_driver also implement get_container_iface_name(). This"},{"line_number":87,"context_line":"   function should return the name of the VF instance."},{"line_number":88,"context_line":"   Once a SR-IOV network port is available, kuryr_libnetwork will call docker"},{"line_number":89,"context_line":"   API to bind the neutron port to a network interface attached to the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_694ebac1","line":86,"range":{"start_line":86,"start_character":30,"end_line":86,"end_character":39},"updated":"2017-07-19 05:34:03.000000000","message":"implements","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"bd2f5d7e2900c2f32d268d0cae37a0947f865725","unresolved":false,"context_lines":[{"line_number":85,"context_line":"   function de-allocates the SR-IOV VF and adds it back to the pool. "},{"line_number":86,"context_line":"   The sriov_port_driver also implement get_container_iface_name(). This"},{"line_number":87,"context_line":"   function should return the name of the VF instance."},{"line_number":88,"context_line":"   Once a SR-IOV network port is available, kuryr_libnetwork will call docker"},{"line_number":89,"context_line":"   API to bind the neutron port to a network interface attached to the"},{"line_number":90,"context_line":"   container. The name of the allocated VF instance will be passed to"},{"line_number":91,"context_line":"   docker[6]. The VF interface name representing the actual OS level VF"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_ebb419f4","line":88,"range":{"start_line":88,"start_character":44,"end_line":88,"end_character":77},"updated":"2017-07-18 14:52:27.000000000","message":"I believe the order is the opposite: docker will call kuryr-libnetwork\u0027s API to bind ...","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"4ece3064cd6327db0d39cde77c5df94cf30c1921","unresolved":false,"context_lines":[{"line_number":105,"context_line":"   Zun creates containers with both network and SR-IOV networking option."},{"line_number":106,"context_line":"   Kuryr driver will integrate with docker SR-IOV driver[8] and create docker"},{"line_number":107,"context_line":"   network with SR-IOV VF interfaces as needed. This design offloads the SR-IOV"},{"line_number":108,"context_line":"   specifc implementation to the docker SR-IOV driver, but at same time"},{"line_number":109,"context_line":"   introduce additional work to integrate with the driver. With this design,"},{"line_number":110,"context_line":"   the VF resources are managed by the docker SR-IOV driver."},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_c9d26ed1","line":108,"range":{"start_line":108,"start_character":3,"end_line":108,"end_character":10},"updated":"2017-07-19 05:34:03.000000000","message":"typo","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"4ece3064cd6327db0d39cde77c5df94cf30c1921","unresolved":false,"context_lines":[{"line_number":109,"context_line":"   introduce additional work to integrate with the driver. With this design,"},{"line_number":110,"context_line":"   the VF resources are managed by the docker SR-IOV driver."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Data model impact"},{"line_number":114,"context_line":"-----------------"},{"line_number":115,"context_line":"Refer to [2]."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_49de5eda","line":112,"updated":"2017-07-19 05:34:03.000000000","message":"I am not sure why none of these options was chosen. Can you please elaborate?","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":25026,"name":"Bin Zhou","email":"lakerzhou@gmail.com","username":"lakerzhou"},"change_message_id":"3fe227c00e3834fd89da151965eea21db3bbdce2","unresolved":false,"context_lines":[{"line_number":109,"context_line":"   introduce additional work to integrate with the driver. With this design,"},{"line_number":110,"context_line":"   the VF resources are managed by the docker SR-IOV driver."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Data model impact"},{"line_number":114,"context_line":"-----------------"},{"line_number":115,"context_line":"Refer to [2]."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_0a9a78b7","line":112,"in_reply_to":"1f1a1f67_49de5eda","updated":"2017-07-19 20:51:39.000000000","message":"Mainly due to implementation and testing cost on Kuryr side.","commit_id":"3db9ea609dad9c39be8ba4a11d30f1c7dc9eb67b"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"435beb58378c5278a936767fafb2cb6656b320c2","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Problem description"},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":"SR-IOV (Single-root input/output virtualization) is a technique that allows"},{"line_number":18,"context_line":"a single physical PCIe device to be shared across several clients (VMs or"},{"line_number":19,"context_line":"containers). SR-IOV networking allows Nova VMs and containers access to"},{"line_number":20,"context_line":"virtual networks via SR-IOV NIC. Each such SR-IOV NIC would have a single"},{"line_number":21,"context_line":"PF (physical function) and multiple VFs (Virtual Functions). Essentially"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff346bd7_edf3899d","line":18,"range":{"start_line":18,"start_character":18,"end_line":18,"end_character":22},"updated":"2017-07-25 01:43:02.000000000","message":"PCIe (Peripheral Component Interconnect Express)","commit_id":"77bed8e494916dd2f5936477180b57e8be74bc6e"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"435beb58378c5278a936767fafb2cb6656b320c2","unresolved":false,"context_lines":[{"line_number":18,"context_line":"a single physical PCIe device to be shared across several clients (VMs or"},{"line_number":19,"context_line":"containers). SR-IOV networking allows Nova VMs and containers access to"},{"line_number":20,"context_line":"virtual networks via SR-IOV NIC. Each such SR-IOV NIC would have a single"},{"line_number":21,"context_line":"PF (physical function) and multiple VFs (Virtual Functions). Essentially"},{"line_number":22,"context_line":"the PF and VFs appears as multiple PCIe devices. With the introduction of"},{"line_number":23,"context_line":"SR-IOV based NICs, the traditional virtual bridge is no longer required,"},{"line_number":24,"context_line":"and thus higher networking performance can be achieved. This is an"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff346bd7_4d03b574","line":21,"range":{"start_line":21,"start_character":4,"end_line":21,"end_character":21},"updated":"2017-07-25 01:43:02.000000000","message":"Physical Function","commit_id":"77bed8e494916dd2f5936477180b57e8be74bc6e"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"435beb58378c5278a936767fafb2cb6656b320c2","unresolved":false,"context_lines":[{"line_number":39,"context_line":"identify the new requirements for Kuryr and Zun for the SR-IOV support."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"With Kuryr driver, Zun will implement SR-IOV networking following the"},{"line_number":42,"context_line":"procedure below:"},{"line_number":43,"context_line":"- Cloud admin enables PCI-passthrough filter at /etc/zun.conf [1];"},{"line_number":44,"context_line":"- Cloud admin creates a new PCI-passthrough alias [2];"},{"line_number":45,"context_line":"- Cloud admin configures PCI passthrough whitelist at Zun compute [2];"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff346bd7_cd4325af","line":42,"updated":"2017-07-25 01:43:02.000000000","message":"Separate 1 blank line.","commit_id":"77bed8e494916dd2f5936477180b57e8be74bc6e"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"435beb58378c5278a936767fafb2cb6656b320c2","unresolved":false,"context_lines":[{"line_number":67,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":68,"context_line":"1. Introduce a new option to allow user specify the neutron port-id when zun"},{"line_number":69,"context_line":"   creates a container, for example:"},{"line_number":70,"context_line":"   zun create --name container_name --nets port\u003dport_uuid ..."},{"line_number":71,"context_line":"   For a neutron SR-IOV port, the vnic_type attribute of the port is \"direct\"."},{"line_number":72,"context_line":"   Ideally, kuryr_libnetwork should use the vnic_type to decide which port"},{"line_number":73,"context_line":"   driver will be used to attach the neutron port to the container. However,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff346bd7_cd71e50e","line":70,"range":{"start_line":70,"start_character":3,"end_line":70,"end_character":61},"updated":"2017-07-25 01:43:02.000000000","message":"use block here to highlight the example command.","commit_id":"77bed8e494916dd2f5936477180b57e8be74bc6e"},{"author":{"_account_id":9820,"name":"Liping Mao","email":"limao@cisco.com","username":"LipingMao"},"change_message_id":"c1731fe1f2c6c3bb823d0d7c00a1412bbd20204d","unresolved":false,"context_lines":[{"line_number":77,"context_line":"   ports on the host. We expect kuryr will remove this limitation in the"},{"line_number":78,"context_line":"   future."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"2. Implement a new sriov_port_driver at kuryr_libnetwork."},{"line_number":81,"context_line":"   The sriov_port_driver implements the abstract function create_host_iface()."},{"line_number":82,"context_line":"   The function allocates an SR-IOV VF on the host for the specified neutron"},{"line_number":83,"context_line":"   port (e.g. pass-in parameter). Then the port is bound to the corresponding"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff346bd7_2624400d","line":80,"updated":"2017-07-23 02:58:08.000000000","message":"How it will be like in vm-nested case?","commit_id":"77bed8e494916dd2f5936477180b57e8be74bc6e"},{"author":{"_account_id":25026,"name":"Bin Zhou","email":"lakerzhou@gmail.com","username":"lakerzhou"},"change_message_id":"1f405718ecc13ffde17770b556b1192481fd8be5","unresolved":false,"context_lines":[{"line_number":77,"context_line":"   ports on the host. We expect kuryr will remove this limitation in the"},{"line_number":78,"context_line":"   future."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"2. Implement a new sriov_port_driver at kuryr_libnetwork."},{"line_number":81,"context_line":"   The sriov_port_driver implements the abstract function create_host_iface()."},{"line_number":82,"context_line":"   The function allocates an SR-IOV VF on the host for the specified neutron"},{"line_number":83,"context_line":"   port (e.g. pass-in parameter). Then the port is bound to the corresponding"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff346bd7_663fe8d6","line":80,"in_reply_to":"ff346bd7_2624400d","updated":"2017-07-23 03:13:25.000000000","message":"PCI-passthrough is designed to by pass the hypervisor layer to achieve high networking performance. So the solution is only applied to containers running over bare metal case.","commit_id":"77bed8e494916dd2f5936477180b57e8be74bc6e"},{"author":{"_account_id":9820,"name":"Liping Mao","email":"limao@cisco.com","username":"LipingMao"},"change_message_id":"e5f58df165275aa2078ff69d8be969db439f4fa1","unresolved":false,"context_lines":[{"line_number":77,"context_line":"   ports on the host. We expect kuryr will remove this limitation in the"},{"line_number":78,"context_line":"   future."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"2. Implement a new sriov_port_driver at kuryr_libnetwork."},{"line_number":81,"context_line":"   The sriov_port_driver implements the abstract function create_host_iface()."},{"line_number":82,"context_line":"   The function allocates an SR-IOV VF on the host for the specified neutron"},{"line_number":83,"context_line":"   port (e.g. pass-in parameter). Then the port is bound to the corresponding"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff346bd7_0607fc1e","line":80,"in_reply_to":"ff346bd7_663fe8d6","updated":"2017-07-23 03:19:15.000000000","message":"Hi Bin,\n\nThe VM-Nested here also can be used in the case that user get a baremetal server which created by ironic. and they run container with kuryr on that baremetal server, currently, it can be set to \"vm-nested\" driver(It should be called baremetal-nested in this case...) with macvlan and ipvlan. I\u0027m thinking if sriov can be supported in this case.\n\n;-)","commit_id":"77bed8e494916dd2f5936477180b57e8be74bc6e"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"435beb58378c5278a936767fafb2cb6656b320c2","unresolved":false,"context_lines":[{"line_number":81,"context_line":"   The sriov_port_driver implements the abstract function create_host_iface()."},{"line_number":82,"context_line":"   The function allocates an SR-IOV VF on the host for the specified neutron"},{"line_number":83,"context_line":"   port (e.g. pass-in parameter). Then the port is bound to the corresponding"},{"line_number":84,"context_line":"   network subsystem[5];"},{"line_number":85,"context_line":"   The sriov_port_driver should also implement delete_host_iface(). The"},{"line_number":86,"context_line":"   function de-allocates the SR-IOV VF and adds it back to the available VF"},{"line_number":87,"context_line":"   pool."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff346bd7_adc7c112","line":84,"updated":"2017-07-25 01:43:02.000000000","message":"separate 1 blank line between 2 blocks. It worths to deal with rst format.","commit_id":"77bed8e494916dd2f5936477180b57e8be74bc6e"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"435beb58378c5278a936767fafb2cb6656b320c2","unresolved":false,"context_lines":[{"line_number":86,"context_line":"   function de-allocates the SR-IOV VF and adds it back to the available VF"},{"line_number":87,"context_line":"   pool."},{"line_number":88,"context_line":"   The sriov_port_driver also implements get_container_iface_name(). This"},{"line_number":89,"context_line":"   function should return the name of the VF instance."},{"line_number":90,"context_line":"   Once a SR-IOV network port is available, Docker will call kuryr-libnetwork"},{"line_number":91,"context_line":"   API to bind the neutron port to a network interface attached to the"},{"line_number":92,"context_line":"   container. The name of the allocated VF instance will be passed to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff346bd7_6dd1d9cd","line":89,"updated":"2017-07-25 01:43:02.000000000","message":"ditto","commit_id":"77bed8e494916dd2f5936477180b57e8be74bc6e"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"435beb58378c5278a936767fafb2cb6656b320c2","unresolved":false,"context_lines":[{"line_number":98,"context_line":"Two other alternatives have been considered for the design. But both options"},{"line_number":99,"context_line":"requires significant changes in existing Kuryr implementations. The above"},{"line_number":100,"context_line":"design is believed to have minimum impact on Kuryr."},{"line_number":101,"context_line":"Option-1:"},{"line_number":102,"context_line":"   Zun creates containers with pre-configured SR-IOV port, and also manages"},{"line_number":103,"context_line":"   the VF resources. This design option is very similar to the proposed"},{"line_number":104,"context_line":"   design. The only difference is that VFs are managed or allocated by Zun."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff346bd7_cd1c45c3","line":101,"updated":"2017-07-25 01:43:02.000000000","message":"separate 1 line.","commit_id":"77bed8e494916dd2f5936477180b57e8be74bc6e"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"435beb58378c5278a936767fafb2cb6656b320c2","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":"The proposed design relies a API change in container creation. The change"},{"line_number":124,"context_line":"allows user to specify an pre-created neutron port to be used for the"},{"line_number":125,"context_line":"container. The implementation of the change is in progress [9]."},{"line_number":126,"context_line":"The existing container CRUD APIs will allow a set of new parameters for"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff346bd7_8d92bd4a","line":123,"range":{"start_line":123,"start_character":20,"end_line":123,"end_character":32},"updated":"2017-07-25 01:43:02.000000000","message":"relies on an API","commit_id":"77bed8e494916dd2f5936477180b57e8be74bc6e"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"435beb58378c5278a936767fafb2cb6656b320c2","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Security impact"},{"line_number":138,"context_line":"---------------"},{"line_number":139,"context_line":"Security group feature is not supported over the SR-IOV network. The same"},{"line_number":140,"context_line":"limitation applies to SR-IOV networking with Nova virtual machines."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff346bd7_6d99d96c","line":139,"range":{"start_line":139,"start_character":40,"end_line":139,"end_character":44},"updated":"2017-07-25 01:43:02.000000000","message":"by","commit_id":"77bed8e494916dd2f5936477180b57e8be74bc6e"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"435beb58378c5278a936767fafb2cb6656b320c2","unresolved":false,"context_lines":[{"line_number":200,"context_line":"References"},{"line_number":201,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":202,"context_line":"[1] https://blueprints.launchpad.net/zun/+spec/container-pci-device-modeling"},{"line_number":203,"context_line":"[2] https://blueprints.launchpad.net/zun/+spec/support-pcipassthroughfilter"},{"line_number":204,"context_line":"[3] https://wiki.openstack.org/wiki/SR-IOV-Passthrough-For-Networking"},{"line_number":205,"context_line":"[4] https://docs.openstack.org/developer/kuryr-libnetwork/devref/libnetwork"},{"line_number":206,"context_line":"    _remote_driver_design.html"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff346bd7_4dea95ac","line":203,"updated":"2017-07-25 01:43:02.000000000","message":"separate 1 line between [1] and [2]. It is necessary with rst format.","commit_id":"77bed8e494916dd2f5936477180b57e8be74bc6e"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"435beb58378c5278a936767fafb2cb6656b320c2","unresolved":false,"context_lines":[{"line_number":202,"context_line":"[1] https://blueprints.launchpad.net/zun/+spec/container-pci-device-modeling"},{"line_number":203,"context_line":"[2] https://blueprints.launchpad.net/zun/+spec/support-pcipassthroughfilter"},{"line_number":204,"context_line":"[3] https://wiki.openstack.org/wiki/SR-IOV-Passthrough-For-Networking"},{"line_number":205,"context_line":"[4] https://docs.openstack.org/developer/kuryr-libnetwork/devref/libnetwork"},{"line_number":206,"context_line":"    _remote_driver_design.html"},{"line_number":207,"context_line":"[5] https://github.com/openstack/kuryr-libnetwork/tree/master/"},{"line_number":208,"context_line":"    kuryr_libnetwork/port_driver"},{"line_number":209,"context_line":"[6] https://github.com/openstack/kuryr-libnetwork/blob/master/"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff346bd7_adb8e1c7","line":206,"range":{"start_line":205,"start_character":0,"end_line":206,"end_character":30},"updated":"2017-07-25 01:43:02.000000000","message":"write in 1 line. It is OK with tox docs test.","commit_id":"77bed8e494916dd2f5936477180b57e8be74bc6e"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"435beb58378c5278a936767fafb2cb6656b320c2","unresolved":false,"context_lines":[{"line_number":205,"context_line":"[4] https://docs.openstack.org/developer/kuryr-libnetwork/devref/libnetwork"},{"line_number":206,"context_line":"    _remote_driver_design.html"},{"line_number":207,"context_line":"[5] https://github.com/openstack/kuryr-libnetwork/tree/master/"},{"line_number":208,"context_line":"    kuryr_libnetwork/port_driver"},{"line_number":209,"context_line":"[6] https://github.com/openstack/kuryr-libnetwork/blob/master/"},{"line_number":210,"context_line":"    kuryr_libnetwork/controllers.py"},{"line_number":211,"context_line":"[7] https://github.com/Docker/libnetwork/blob/master/docs/remote.md#join"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff346bd7_8dbbddc2","line":208,"updated":"2017-07-25 01:43:02.000000000","message":"ditto","commit_id":"77bed8e494916dd2f5936477180b57e8be74bc6e"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"435beb58378c5278a936767fafb2cb6656b320c2","unresolved":false,"context_lines":[{"line_number":207,"context_line":"[5] https://github.com/openstack/kuryr-libnetwork/tree/master/"},{"line_number":208,"context_line":"    kuryr_libnetwork/port_driver"},{"line_number":209,"context_line":"[6] https://github.com/openstack/kuryr-libnetwork/blob/master/"},{"line_number":210,"context_line":"    kuryr_libnetwork/controllers.py"},{"line_number":211,"context_line":"[7] https://github.com/Docker/libnetwork/blob/master/docs/remote.md#join"},{"line_number":212,"context_line":"[8] https://github.com/Mellanox/Docker-passthrough-plugin"},{"line_number":213,"context_line":"[9] https://review.openstack.org/481861"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff346bd7_6db2f9e8","line":210,"updated":"2017-07-25 01:43:02.000000000","message":"ditto","commit_id":"77bed8e494916dd2f5936477180b57e8be74bc6e"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"d182a53083e0e4592d138b5252219f2368b70298","unresolved":false,"context_lines":[{"line_number":19,"context_line":"to be shared across several clients (VMs or containers). SR-IOV networking"},{"line_number":20,"context_line":"allows Nova VMs and containers access to virtual networks via SR-IOV NIC."},{"line_number":21,"context_line":"Each such SR-IOV NIC would have a single PF (Physical Function) and multiple"},{"line_number":22,"context_line":"VFs (Virtual Functions). Essentially the PF and VFs appears as multiple PCIe"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"bridge is no longer required, and thus higher networking performance can be"},{"line_number":25,"context_line":"achieved. This is an important requirement for most Virtualized Network"},{"line_number":26,"context_line":"Functions (VNFs). To support VNF application deployment over Zun containers,"},{"line_number":27,"context_line":"it is desirable to support SR-IOV networking feature for Zun."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff346bd7_71ed2f8a","line":24,"range":{"start_line":22,"start_character":25,"end_line":24,"end_character":28},"updated":"2017-07-26 05:02:07.000000000","message":"Something is missing here","commit_id":"ba52fa02f19ce716a0615f05e73e2a49deed15b6"},{"author":{"_account_id":25026,"name":"Bin Zhou","email":"lakerzhou@gmail.com","username":"lakerzhou"},"change_message_id":"863b0cde115b522c2df7e5de6ad35b9eec7454c9","unresolved":false,"context_lines":[{"line_number":19,"context_line":"to be shared across several clients (VMs or containers). SR-IOV networking"},{"line_number":20,"context_line":"allows Nova VMs and containers access to virtual networks via SR-IOV NIC."},{"line_number":21,"context_line":"Each such SR-IOV NIC would have a single PF (Physical Function) and multiple"},{"line_number":22,"context_line":"VFs (Virtual Functions). Essentially the PF and VFs appears as multiple PCIe"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"bridge is no longer required, and thus higher networking performance can be"},{"line_number":25,"context_line":"achieved. This is an important requirement for most Virtualized Network"},{"line_number":26,"context_line":"Functions (VNFs). To support VNF application deployment over Zun containers,"},{"line_number":27,"context_line":"it is desirable to support SR-IOV networking feature for Zun."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff346bd7_a572f8ab","line":24,"range":{"start_line":22,"start_character":25,"end_line":24,"end_character":28},"in_reply_to":"ff346bd7_71ed2f8a","updated":"2017-07-26 13:47:19.000000000","message":"Done","commit_id":"ba52fa02f19ce716a0615f05e73e2a49deed15b6"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"d182a53083e0e4592d138b5252219f2368b70298","unresolved":false,"context_lines":[{"line_number":44,"context_line":"- Cloud admin enables PCI-passthrough filter at /etc/zun.conf [1];"},{"line_number":45,"context_line":"- Cloud admin creates a new PCI-passthrough alias [2];"},{"line_number":46,"context_line":"- Cloud admin configures PCI passthrough whitelist at Zun compute [2];"},{"line_number":47,"context_line":"- Cloud admin enable sriovnicswitch on Neutron server (with existing Neutron"},{"line_number":48,"context_line":"  support)[3];"},{"line_number":49,"context_line":"- Cloud admin configures supported_pci_vendor_devs at"},{"line_number":50,"context_line":"  /etc/neutron/plugins/ml2/ml2_conf_sriov.ini (with existing Neutron"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff346bd7_71708fdd","line":47,"range":{"start_line":47,"start_character":14,"end_line":47,"end_character":20},"updated":"2017-07-26 05:02:07.000000000","message":"enables","commit_id":"ba52fa02f19ce716a0615f05e73e2a49deed15b6"},{"author":{"_account_id":25026,"name":"Bin Zhou","email":"lakerzhou@gmail.com","username":"lakerzhou"},"change_message_id":"863b0cde115b522c2df7e5de6ad35b9eec7454c9","unresolved":false,"context_lines":[{"line_number":44,"context_line":"- Cloud admin enables PCI-passthrough filter at /etc/zun.conf [1];"},{"line_number":45,"context_line":"- Cloud admin creates a new PCI-passthrough alias [2];"},{"line_number":46,"context_line":"- Cloud admin configures PCI passthrough whitelist at Zun compute [2];"},{"line_number":47,"context_line":"- Cloud admin enable sriovnicswitch on Neutron server (with existing Neutron"},{"line_number":48,"context_line":"  support)[3];"},{"line_number":49,"context_line":"- Cloud admin configures supported_pci_vendor_devs at"},{"line_number":50,"context_line":"  /etc/neutron/plugins/ml2/ml2_conf_sriov.ini (with existing Neutron"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff346bd7_45610cd3","line":47,"range":{"start_line":47,"start_character":14,"end_line":47,"end_character":20},"in_reply_to":"ff346bd7_71708fdd","updated":"2017-07-26 13:47:19.000000000","message":"Done","commit_id":"ba52fa02f19ce716a0615f05e73e2a49deed15b6"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"d182a53083e0e4592d138b5252219f2368b70298","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Implementation"},{"line_number":175,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":176,"context_line":"1. Change the networking option to allow port-id as an option when creating"},{"line_number":177,"context_line":"   containers;"},{"line_number":178,"context_line":"2. Implement sriov_port_driver at kuryr-libnetwork"},{"line_number":179,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff346bd7_9713bc5c","line":176,"range":{"start_line":176,"start_character":41,"end_line":176,"end_character":48},"updated":"2017-07-26 05:02:07.000000000","message":"port","commit_id":"ba52fa02f19ce716a0615f05e73e2a49deed15b6"},{"author":{"_account_id":25026,"name":"Bin Zhou","email":"lakerzhou@gmail.com","username":"lakerzhou"},"change_message_id":"863b0cde115b522c2df7e5de6ad35b9eec7454c9","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Implementation"},{"line_number":175,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":176,"context_line":"1. Change the networking option to allow port-id as an option when creating"},{"line_number":177,"context_line":"   containers;"},{"line_number":178,"context_line":"2. Implement sriov_port_driver at kuryr-libnetwork"},{"line_number":179,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff346bd7_059d44bb","line":176,"range":{"start_line":176,"start_character":41,"end_line":176,"end_character":48},"in_reply_to":"ff346bd7_9713bc5c","updated":"2017-07-26 13:47:19.000000000","message":"Done","commit_id":"ba52fa02f19ce716a0615f05e73e2a49deed15b6"}]}
