)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5bad4e0ceb884141738726d7b260b5e2c2527c8f","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"[pci]"},{"line_number":14,"context_line":"passthrough_whitelist \u003d {\"devname\": \"eth0\","},{"line_number":15,"context_line":"                         \"trusted\": \"true\"}"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"In Neutron the ports will have to be created with specific bindings to"},{"line_number":18,"context_line":"match the tag so Nova will schedule the VM on a host which provides"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5ff73747_8346304f","line":15,"updated":"2017-05-03 17:38:30.000000000","message":"What does the above indicate, though? That the physical function represented by the eth0 interface name trusts *all* VFs that are created on it that have the trusted: true attribute in the port\u0027s binding profile?\n\nAlso, why \"true\" instead of the boolean true?","commit_id":"9c3e23a22f6cd5c7e0520c5bb60f8879ba6bbc0e"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"e73a8f78e3ed01d28f81dcbeddac2373cb86c888","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"[pci]"},{"line_number":14,"context_line":"passthrough_whitelist \u003d {\"devname\": \"eth0\","},{"line_number":15,"context_line":"                         \"trusted\": \"true\"}"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"In Neutron the ports will have to be created with specific bindings to"},{"line_number":18,"context_line":"match the tag so Nova will schedule the VM on a host which provides"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f044301_bdb729d9","line":15,"in_reply_to":"5ff73747_8346304f","updated":"2017-05-04 11:05:36.000000000","message":"Yes all VFs related to that PF are going to be tagged with that trusted tag. It\u0027s basically used for the scheduling.\n\nA pci request is going to be generated from the binding profile, in that pci request the spec is going to be enhanced by a tag \"trusted\", when we do the scheduling we call \"pci_device_prop_match(pci_dev, specs)\" [0], we try to do a correlation between the devices tagged and the spec from the pci request. If that is matching so the scheduling succeed.\n\nAbout why \"true\" instead of true we have started the discussion in [1] :)\n\n[0] http://git.openstack.org/cgit/openstack/nova/tree/nova/pci/utils.py#n39\n[1] https://review.openstack.org/#/c/458820/2","commit_id":"9c3e23a22f6cd5c7e0520c5bb60f8879ba6bbc0e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5bad4e0ceb884141738726d7b260b5e2c2527c8f","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"In Neutron the ports will have to be created with specific bindings to"},{"line_number":18,"context_line":"match the tag so Nova will schedule the VM on a host which provides"},{"line_number":19,"context_line":"such PCI devices (accoring that: PCIPassthroughtFilter is well"},{"line_number":20,"context_line":"installed)."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"neutron port-create \u003cnet-uuid\u003e \\"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5ff73747_a31b6c71","line":19,"updated":"2017-05-03 17:38:30.000000000","message":"s/accoring that: /assuming that the/","commit_id":"9c3e23a22f6cd5c7e0520c5bb60f8879ba6bbc0e"},{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"e40beb7dfb226272b4b59068bea69d0faca8ad32","unresolved":false,"context_lines":[{"line_number":22,"context_line":"neutron port-create \u003cnet-uuid\u003e \\"},{"line_number":23,"context_line":"                       --name sriov_port \\"},{"line_number":24,"context_line":"                       --vnic-type direct \\"},{"line_number":25,"context_line":"                       --binding-profile\u003d\u0027{\"trusted\": True}\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Implements blueprint sriov-trusted-vfs"},{"line_number":28,"context_line":"Change-Id: I136ab12f2a97ede494af9ca503f160bf1b2aa8fa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5ff73747_efe6fb16","line":25,"range":{"start_line":25,"start_character":24,"end_line":25,"end_character":60},"updated":"2017-04-25 00:11:51.000000000","message":"This should be -- --binding-profile type\u003ddict trusted\u003dtrue","commit_id":"9c3e23a22f6cd5c7e0520c5bb60f8879ba6bbc0e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b5981878325e50e6e9e09b0f8d874dbd497188a2","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt: configure trust mode for vfs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The PCI framework allow mentions of tags. The operator who wants to"},{"line_number":10,"context_line":"enable \u0027trust\u0027 mode for certains pools of PCI devices will have to add"},{"line_number":11,"context_line":"a \"trusted\" tag."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ff0f0b1f_a17552cd","line":9,"updated":"2017-05-22 20:43:24.000000000","message":"s/allow mentions of tags/allows specifying some tags in the whitelist/","commit_id":"e1f3e866837093b940123317d175f3a4fe09b84e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b5981878325e50e6e9e09b0f8d874dbd497188a2","unresolved":false,"context_lines":[{"line_number":13,"context_line":"[pci]"},{"line_number":14,"context_line":"passthrough_whitelist \u003d {\"devname\": \"eth0\","},{"line_number":15,"context_line":"                         \"trusted\": \"true\","},{"line_number":16,"context_line":"\t\t\t \"physical_network\": \"phys0\"}"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"In Neutron the ports will have to be created with specific bindings to"},{"line_number":19,"context_line":"match the tag so Nova will schedule the VM on a host which provides"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ff0f0b1f_a1b0b28b","line":16,"updated":"2017-05-22 20:43:24.000000000","message":"Please replace \\t with spaces.","commit_id":"e1f3e866837093b940123317d175f3a4fe09b84e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b5981878325e50e6e9e09b0f8d874dbd497188a2","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"In Neutron the ports will have to be created with specific bindings to"},{"line_number":19,"context_line":"match the tag so Nova will schedule the VM on a host which provides"},{"line_number":20,"context_line":"such PCI devices (assuming that: PCIPassthroughtFilter is well"},{"line_number":21,"context_line":"installed)."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"neutron port-create \u003cnet-id\u003e \\"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ff0f0b1f_01399ef0","line":20,"range":{"start_line":20,"start_character":47,"end_line":20,"end_character":48},"updated":"2017-05-22 20:43:24.000000000","message":"s/PCIPassthroughtFilter/PciPassthroughFilter/\n\ns/is well installed/is enabled/","commit_id":"e1f3e866837093b940123317d175f3a4fe09b84e"}],"nova/tests/unit/virt/libvirt/test_vif.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"76a10638257cf6c02c5a69852f9ea185277ab927","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        profile\u003d{\u0027pci_vendor_info\u0027: \u00271137:0043\u0027,"},{"line_number":210,"context_line":"                 \u0027pci_slot\u0027: \u00270000:0a:00.1\u0027,"},{"line_number":211,"context_line":"                 \u0027physical_network\u0027: \u0027phynet1\u0027,"},{"line_number":212,"context_line":"                 \u0027trusted\u0027: \u0027true\u0027})"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    vif_hostdev_physical \u003d network_model.VIF(id\u003d\u0027vif-xxx-yyy-zzz\u0027,"},{"line_number":215,"context_line":"        address\u003d\u0027ca:fe:de:ad:be:ef\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"5f7c97a3_c2d7d8be","line":212,"range":{"start_line":212,"start_character":29,"end_line":212,"end_character":33},"updated":"2018-05-30 18:44:15.000000000","message":"nit: technically this will be True because str(True) is \"True\".","commit_id":"ded43ef8886301b44e48e777175f4af059ce5475"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1e65fb7c5b18f10722d6b2d47431fa08c9b69aad","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        profile\u003d{\u0027pci_vendor_info\u0027: \u00271137:0043\u0027,"},{"line_number":210,"context_line":"                 \u0027pci_slot\u0027: \u00270000:0a:00.1\u0027,"},{"line_number":211,"context_line":"                 \u0027physical_network\u0027: \u0027phynet1\u0027,"},{"line_number":212,"context_line":"                 \u0027trusted\u0027: \u0027true\u0027})"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    vif_hostdev_physical \u003d network_model.VIF(id\u003d\u0027vif-xxx-yyy-zzz\u0027,"},{"line_number":215,"context_line":"        address\u003d\u0027ca:fe:de:ad:be:ef\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"5f7c97a3_b6d1c125","line":212,"range":{"start_line":212,"start_character":29,"end_line":212,"end_character":33},"in_reply_to":"5f7c97a3_c2d7d8be","updated":"2018-05-30 19:12:45.000000000","message":"Done","commit_id":"ded43ef8886301b44e48e777175f4af059ce5475"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"76a10638257cf6c02c5a69852f9ea185277ab927","unresolved":false,"context_lines":[{"line_number":211,"context_line":"                 \u0027physical_network\u0027: \u0027phynet1\u0027,"},{"line_number":212,"context_line":"                 \u0027trusted\u0027: \u0027true\u0027})"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    vif_hostdev_physical \u003d network_model.VIF(id\u003d\u0027vif-xxx-yyy-zzz\u0027,"},{"line_number":215,"context_line":"        address\u003d\u0027ca:fe:de:ad:be:ef\u0027,"},{"line_number":216,"context_line":"        network\u003dnetwork_8021,"},{"line_number":217,"context_line":"        type\u003dnetwork_model.VIF_TYPE_HOSTDEV,"}],"source_content_type":"text/x-python","patch_set":21,"id":"5f7c97a3_02d2b0d1","line":214,"range":{"start_line":214,"start_character":45,"end_line":214,"end_character":65},"updated":"2018-05-30 18:44:15.000000000","message":"nit: if this didn\u0027t need to change from uuids.vif then we should leave it as it was.","commit_id":"ded43ef8886301b44e48e777175f4af059ce5475"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1e65fb7c5b18f10722d6b2d47431fa08c9b69aad","unresolved":false,"context_lines":[{"line_number":211,"context_line":"                 \u0027physical_network\u0027: \u0027phynet1\u0027,"},{"line_number":212,"context_line":"                 \u0027trusted\u0027: \u0027true\u0027})"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    vif_hostdev_physical \u003d network_model.VIF(id\u003d\u0027vif-xxx-yyy-zzz\u0027,"},{"line_number":215,"context_line":"        address\u003d\u0027ca:fe:de:ad:be:ef\u0027,"},{"line_number":216,"context_line":"        network\u003dnetwork_8021,"},{"line_number":217,"context_line":"        type\u003dnetwork_model.VIF_TYPE_HOSTDEV,"}],"source_content_type":"text/x-python","patch_set":21,"id":"5f7c97a3_76c7a965","line":214,"range":{"start_line":214,"start_character":45,"end_line":214,"end_character":65},"in_reply_to":"5f7c97a3_02d2b0d1","updated":"2018-05-30 19:12:45.000000000","message":"Done","commit_id":"ded43ef8886301b44e48e777175f4af059ce5475"}],"nova/virt/libvirt/vif.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"8024651304c2b6cf87a8efde14bd5b36b3711dba","unresolved":false,"context_lines":[{"line_number":657,"context_line":"            trusted \u003d strutils.bool_from_string("},{"line_number":658,"context_line":"                vif[\u0027profile\u0027].get(\u0027trusted\u0027, \"False\"))"},{"line_number":659,"context_line":"            if trusted:"},{"line_number":660,"context_line":"                linux_net.set_vf_trusted(vif[\u0027profile\u0027][\u0027pci_slot\u0027], True)"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"    def plug_hostdev_physical(self, instance, vif):"},{"line_number":663,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_525cebeb","line":660,"updated":"2017-04-28 11:22:03.000000000","message":"FYI, by going and running \"ip\" commands directly here, Nova is liable to break as \u0026 when libvirt gains support for managing the trusted feature. In the same way, Nova broke recently wrt VLAN tags on physical functions. (Commit bf3ba76a91e362c0b3b8094964adc06f6a4ec62e/ change Ia14e78e0eda81b8d29d5aa6e07e68777665d0710)","commit_id":"9c3e23a22f6cd5c7e0520c5bb60f8879ba6bbc0e"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"e73a8f78e3ed01d28f81dcbeddac2373cb86c888","unresolved":false,"context_lines":[{"line_number":657,"context_line":"            trusted \u003d strutils.bool_from_string("},{"line_number":658,"context_line":"                vif[\u0027profile\u0027].get(\u0027trusted\u0027, \"False\"))"},{"line_number":659,"context_line":"            if trusted:"},{"line_number":660,"context_line":"                linux_net.set_vf_trusted(vif[\u0027profile\u0027][\u0027pci_slot\u0027], True)"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"    def plug_hostdev_physical(self, instance, vif):"},{"line_number":663,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f044301_7d0d218f","line":660,"in_reply_to":"5ff73747_433b889b","updated":"2017-05-04 11:05:36.000000000","message":"Yes as I have replied to you here [0] I don\u0027t really know where that can be added in os-vif, if you have suggestion I\u0027m ok to address it\n\n[0] https://review.openstack.org/#/c/458820/","commit_id":"9c3e23a22f6cd5c7e0520c5bb60f8879ba6bbc0e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5bad4e0ceb884141738726d7b260b5e2c2527c8f","unresolved":false,"context_lines":[{"line_number":657,"context_line":"            trusted \u003d strutils.bool_from_string("},{"line_number":658,"context_line":"                vif[\u0027profile\u0027].get(\u0027trusted\u0027, \"False\"))"},{"line_number":659,"context_line":"            if trusted:"},{"line_number":660,"context_line":"                linux_net.set_vf_trusted(vif[\u0027profile\u0027][\u0027pci_slot\u0027], True)"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"    def plug_hostdev_physical(self, instance, vif):"},{"line_number":663,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_433b889b","line":660,"in_reply_to":"5ff73747_4dba0a6e","updated":"2017-05-03 17:38:30.000000000","message":"Seems to me that this type of code -- being part of the \"plug\" operation... -- should be part of os-vif, at least eventually?","commit_id":"9c3e23a22f6cd5c7e0520c5bb60f8879ba6bbc0e"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"8c5b49a003e16175dd171a2a2b70badadc4aa08e","unresolved":false,"context_lines":[{"line_number":657,"context_line":"            trusted \u003d strutils.bool_from_string("},{"line_number":658,"context_line":"                vif[\u0027profile\u0027].get(\u0027trusted\u0027, \"False\"))"},{"line_number":659,"context_line":"            if trusted:"},{"line_number":660,"context_line":"                linux_net.set_vf_trusted(vif[\u0027profile\u0027][\u0027pci_slot\u0027], True)"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"    def plug_hostdev_physical(self, instance, vif):"},{"line_number":663,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_4dba0a6e","line":660,"in_reply_to":"5ff73747_525cebeb","updated":"2017-04-28 12:16:40.000000000","message":"Yes we expect that this part be handled by libivrt itself. So far nothing in that direction.\n\nI do not think that is going to break anything, probably libvirt are going to expose an \"option\" to the \"Interface\" element and probably defaulted to do nothing until that new option be defined. We could smoothly do the convergence.\n\nIt basically what\u0027s going to happen when we will do the convergence for the MTU.\n\nhttp://libvirt.org/formatdomain.html#mtu","commit_id":"9c3e23a22f6cd5c7e0520c5bb60f8879ba6bbc0e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b5981878325e50e6e9e09b0f8d874dbd497188a2","unresolved":false,"context_lines":[{"line_number":659,"context_line":"            trusted \u003d strutils.bool_from_string("},{"line_number":660,"context_line":"                vif[\u0027profile\u0027].get(\u0027trusted\u0027, \"False\"))"},{"line_number":661,"context_line":"            if trusted:"},{"line_number":662,"context_line":"                linux_net.set_vf_trusted(vif[\u0027profile\u0027][\u0027pci_slot\u0027], True)"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"    def plug_hostdev_physical(self, instance, vif):"},{"line_number":665,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_ac3d49c5","line":662,"updated":"2017-05-22 20:43:24.000000000","message":"Are we guaranteed to have the vif[\u0027profile\u0027][\u0027pci_slot\u0027] key present in the vif dict?","commit_id":"e1f3e866837093b940123317d175f3a4fe09b84e"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"e533d172d1c71b243ac6a9be6ac3bc74ed657f36","unresolved":false,"context_lines":[{"line_number":659,"context_line":"            trusted \u003d strutils.bool_from_string("},{"line_number":660,"context_line":"                vif[\u0027profile\u0027].get(\u0027trusted\u0027, \"False\"))"},{"line_number":661,"context_line":"            if trusted:"},{"line_number":662,"context_line":"                linux_net.set_vf_trusted(vif[\u0027profile\u0027][\u0027pci_slot\u0027], True)"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"    def plug_hostdev_physical(self, instance, vif):"},{"line_number":665,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_cf18611f","line":662,"in_reply_to":"ff0f0b1f_ac3d49c5","updated":"2017-05-23 08:27:19.000000000","message":"Yes for all VNIC_TYPES_SRIOV we update the binding profile with such information. If at this step we do not have the pci_slot so that means we have a bug and we should find the root cause.\n\n(see: network/neutron/api.py _update_port_binding_for_instance)","commit_id":"e1f3e866837093b940123317d175f3a4fe09b84e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7b262d58cbec52ea4e7f7eb7b9d919a86ab1fd82","unresolved":false,"context_lines":[{"line_number":615,"context_line":"    def plug_802qbh(self, instance, vif):"},{"line_number":616,"context_line":"        pass"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":"    def plug_hw_veb(self, instance, vif):"},{"line_number":619,"context_line":"        # TODO(vladikr): This code can be removed once the minimum version of"},{"line_number":620,"context_line":"        # Libvirt is incleased above 1.3.5, as vlan will be set by libvirt"},{"line_number":621,"context_line":"        if vif[\u0027vnic_type\u0027] \u003d\u003d network_model.VNIC_TYPE_MACVTAP:"}],"source_content_type":"text/x-python","patch_set":19,"id":"5f7c97a3_cb04e717","line":618,"range":{"start_line":618,"start_character":13,"end_line":618,"end_character":19},"updated":"2018-05-29 22:33:08.000000000","message":"Shouldn\u0027t the release note point out that trusted VFs only works for ports of binding:vif_type\u003d\u0027hw_veb\u0027 and binding:vnic_type\u003d\u0027direct\u0027?","commit_id":"6fc6225fa2be1275afe76c291dc6092d7cab6ca7"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"7e8ee1a8cd682e8b044e212d7705aa2e632368c8","unresolved":false,"context_lines":[{"line_number":615,"context_line":"    def plug_802qbh(self, instance, vif):"},{"line_number":616,"context_line":"        pass"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":"    def plug_hw_veb(self, instance, vif):"},{"line_number":619,"context_line":"        # TODO(vladikr): This code can be removed once the minimum version of"},{"line_number":620,"context_line":"        # Libvirt is incleased above 1.3.5, as vlan will be set by libvirt"},{"line_number":621,"context_line":"        if vif[\u0027vnic_type\u0027] \u003d\u003d network_model.VNIC_TYPE_MACVTAP:"}],"source_content_type":"text/x-python","patch_set":19,"id":"5f7c97a3_2fda3e77","line":618,"range":{"start_line":618,"start_character":13,"end_line":618,"end_character":19},"in_reply_to":"5f7c97a3_cb04e717","updated":"2018-05-30 10:15:02.000000000","message":"Sure I could add a note. For hardware offloading we could only have vnic_type\u003ddirect since direct-phy is not SRIOV.","commit_id":"6fc6225fa2be1275afe76c291dc6092d7cab6ca7"}],"releasenotes/notes/trusted-vfs-abee6dff7c9b6940.yaml":[{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"e40beb7dfb226272b4b59068bea69d0faca8ad32","unresolved":false,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - Provide a way for users to boot instances with as assigned SR-IOV"},{"line_number":3,"context_line":"    VFs which will be configured as trusted."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5ff73747_0f05a777","line":3,"updated":"2017-04-25 00:11:51.000000000","message":"I think here we will need to explain how does the user can configure it, and briefly why is it needed.","commit_id":"9c3e23a22f6cd5c7e0520c5bb60f8879ba6bbc0e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b5981878325e50e6e9e09b0f8d874dbd497188a2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - Provides for users ability to boot instances with assigned SR-IOV"},{"line_number":3,"context_line":"    which will be configured as trusted."},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"    The operator will have to create pools of devices with tag"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ff0f0b1f_8c3f25b3","line":2,"updated":"2017-05-22 20:43:24.000000000","message":"s/Provides for users ability to boot/Allows users to boot/\n\ns/assigned SR-IOV which/SR-IOV virtual functions which/","commit_id":"e1f3e866837093b940123317d175f3a4fe09b84e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b5981878325e50e6e9e09b0f8d874dbd497188a2","unresolved":false,"context_lines":[{"line_number":21,"context_line":"                          --binding:profile type\u003ddict trusted\u003dtrue"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    Note: it\u0027s important to use the same boolean representation for"},{"line_number":24,"context_line":"    the value of the trusted tag and that because of a limitation in"},{"line_number":25,"context_line":"    the representation of the requests specs and tags for pools."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ff0f0b1f_4c5ead12","line":24,"updated":"2017-05-22 20:43:24.000000000","message":"/and that because of/due to/","commit_id":"e1f3e866837093b940123317d175f3a4fe09b84e"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"76d10898295fd03179248ad32546bf10182011eb","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                          --vnic-type direct \\"},{"line_number":24,"context_line":"                          --binding:profile type\u003ddict trusted\u003dtrue"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    Note: it\u0027s important to use the same boolean representation for"},{"line_number":27,"context_line":"    the value of the trusted tag due to because of a limitation in the"},{"line_number":28,"context_line":"    representation of the requests specs and tags for pools."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"df7087c5_69c21a88","line":26,"range":{"start_line":26,"start_character":36,"end_line":26,"end_character":63},"updated":"2018-03-07 20:47:56.000000000","message":"Meaning that I could technically set \"trusted\u003dfoo\" in the neutron port-create command, and if I put \"trusted\": \"foo\" in the whitelist, it would match the port to that device? That\u0027s... fun :)","commit_id":"2ea82a5be29d351f521870ef19c27cb00fb4a5e1"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a465612872ba1446ff67d086349c1a59a5d83a5f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                          --vnic-type direct \\"},{"line_number":24,"context_line":"                          --binding:profile type\u003ddict trusted\u003dtrue"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    Note: it\u0027s important to use the same boolean representation for"},{"line_number":27,"context_line":"    the value of the trusted tag due to because of a limitation in the"},{"line_number":28,"context_line":"    representation of the requests specs and tags for pools."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"df7087c5_c431a8a4","line":26,"range":{"start_line":26,"start_character":36,"end_line":26,"end_character":63},"in_reply_to":"df7087c5_69c21a88","updated":"2018-03-09 08:25:21.000000000","message":"No no that does not work, I\u0027m using a function to convert bool from string do check the value.","commit_id":"2ea82a5be29d351f521870ef19c27cb00fb4a5e1"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"7cb9193554a65b36718781991b4171000a9b0828","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                          --vnic-type direct \\"},{"line_number":24,"context_line":"                          --binding:profile type\u003ddict trusted\u003dtrue"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    Note: it\u0027s important to use the same boolean representation for"},{"line_number":27,"context_line":"    the value of the trusted tag due to because of a limitation in the"},{"line_number":28,"context_line":"    representation of the requests specs and tags for pools."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"9f6a8fd7_298a901a","line":26,"updated":"2018-05-02 15:50:49.000000000","message":"So if this [0] is accepted I can remove that note.\n\n[0] https://review.openstack.org/#/c/565808/","commit_id":"0d3259e7082188edab4c3de3bb0ff5cb9d0070d7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7b262d58cbec52ea4e7f7eb7b9d919a86ab1fd82","unresolved":false,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Allows users to boot instances with SR-IOV virtual functions which"},{"line_number":4,"context_line":"    will be configured as trusted."},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    The operator will have to create pools of devices with tag"},{"line_number":7,"context_line":"    trusted\u003dtrue."}],"source_content_type":"text/x-yaml","patch_set":19,"id":"5f7c97a3_a0a0aa43","line":4,"range":{"start_line":3,"start_character":4,"end_line":4,"end_character":34},"updated":"2018-05-29 22:33:08.000000000","message":"This reads like a commit message but should be written in the context of a release note, where there will be lots of things listed together. So it should probably say something like:\n\n\"The libvirt compute driver now allows users to create instances with SR-IOV virtual functions which will be configured as trusted.\"","commit_id":"6fc6225fa2be1275afe76c291dc6092d7cab6ca7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7b262d58cbec52ea4e7f7eb7b9d919a86ab1fd82","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    Allows users to boot instances with SR-IOV virtual functions which"},{"line_number":4,"context_line":"    will be configured as trusted."},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    The operator will have to create pools of devices with tag"},{"line_number":7,"context_line":"    trusted\u003dtrue."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    /etc/nova.conf"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"5f7c97a3_a0474a77","line":6,"updated":"2018-05-29 22:33:08.000000000","message":"The passthrough_whitelist config option help also should be updated, i.e.:\n\nhttps://github.com/openstack/nova/blob/5266ac27e78ae2a6fdb4f15e51a222a7c782e59f/nova/conf/pci.py#L95\n\nAnd the examples:\n\nhttps://github.com/openstack/nova/blob/5266ac27e78ae2a6fdb4f15e51a222a7c782e59f/nova/conf/pci.py#L98","commit_id":"6fc6225fa2be1275afe76c291dc6092d7cab6ca7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7b262d58cbec52ea4e7f7eb7b9d919a86ab1fd82","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    The operator will have to create pools of devices with tag"},{"line_number":7,"context_line":"    trusted\u003dtrue."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    /etc/nova.conf"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    [pci]"},{"line_number":12,"context_line":"    passthrough_whitelist \u003d {\"devname\": \"eth0\", \"trusted\": \"true\"}"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"5f7c97a3_608612bc","line":9,"range":{"start_line":9,"start_character":4,"end_line":9,"end_character":18},"updated":"2018-05-29 22:33:08.000000000","message":"/etc/nova/nova.conf","commit_id":"6fc6225fa2be1275afe76c291dc6092d7cab6ca7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7b262d58cbec52ea4e7f7eb7b9d919a86ab1fd82","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    /etc/nova.conf"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    [pci]"},{"line_number":12,"context_line":"    passthrough_whitelist \u003d {\"devname\": \"eth0\", \"trusted\": \"true\"}"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    Where \"eth0\" is the interface name related to the physical"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"5f7c97a3_208c9ad5","line":12,"range":{"start_line":11,"start_character":4,"end_line":12,"end_character":66},"updated":"2018-05-29 22:33:08.000000000","message":"This should be in a code block, e.g.\n\n::\n\n[pci]\npassthrough_whitelist \u003d {\"devname\": \"eth0\", \"trusted\": \"true\"}","commit_id":"6fc6225fa2be1275afe76c291dc6092d7cab6ca7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2895265543d174418ab6357f3bbb51d41a5a253b","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    /etc/nova.conf"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    [pci]"},{"line_number":12,"context_line":"    passthrough_whitelist \u003d {\"devname\": \"eth0\", \"trusted\": \"true\"}"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    Where \"eth0\" is the interface name related to the physical"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"5f7c97a3_0bb97f13","line":12,"range":{"start_line":11,"start_character":4,"end_line":12,"end_character":66},"in_reply_to":"5f7c97a3_208c9ad5","updated":"2018-05-29 22:51:22.000000000","message":"Actually, an ini block:\n\n.. code-block:: ini\n\n  [pci]\n  passthrough_whitelist \u003d {\"devname\": \"eth0\", \"trusted\": \"true\"}\n\nThat will look super beautiful.","commit_id":"6fc6225fa2be1275afe76c291dc6092d7cab6ca7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7b262d58cbec52ea4e7f7eb7b9d919a86ab1fd82","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    Where \"eth0\" is the interface name related to the physical"},{"line_number":16,"context_line":"    function."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    Ports from the phyical network will have to be created with a"},{"line_number":19,"context_line":"    binding profile to match the trusted tag."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    $ neutron port-create \u003cnet-id\u003e \\"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"5f7c97a3_8069eef8","line":18,"range":{"start_line":18,"start_character":19,"end_line":18,"end_character":26},"updated":"2018-05-29 22:33:08.000000000","message":"physical","commit_id":"6fc6225fa2be1275afe76c291dc6092d7cab6ca7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7b262d58cbec52ea4e7f7eb7b9d919a86ab1fd82","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    Ports from the phyical network will have to be created with a"},{"line_number":19,"context_line":"    binding profile to match the trusted tag."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    $ neutron port-create \u003cnet-id\u003e \\"},{"line_number":22,"context_line":"                          --name sriov_port \\"},{"line_number":23,"context_line":"                          --vnic-type direct \\"},{"line_number":24,"context_line":"                          --binding:profile type\u003ddict trusted\u003dtrue"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"5f7c97a3_c031260d","line":21,"updated":"2018-05-29 22:33:08.000000000","message":"This should go into a command-style block:\n\n.. code-block:: console\n\n  $ neutron port-create \u003cnet-id\u003e \\","commit_id":"6fc6225fa2be1275afe76c291dc6092d7cab6ca7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7b262d58cbec52ea4e7f7eb7b9d919a86ab1fd82","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                          --vnic-type direct \\"},{"line_number":24,"context_line":"                          --binding:profile type\u003ddict trusted\u003dtrue"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    Note: it\u0027s important to use the same boolean representation for"},{"line_number":27,"context_line":"    the value of the trusted tag due to because of a limitation in the"},{"line_number":28,"context_line":"    representation of the requests specs and tags for pools."}],"source_content_type":"text/x-yaml","patch_set":19,"id":"5f7c97a3_c01a867b","line":28,"range":{"start_line":26,"start_character":4,"end_line":28,"end_character":60},"updated":"2018-05-29 22:33:08.000000000","message":"This is no longer true, correct?","commit_id":"6fc6225fa2be1275afe76c291dc6092d7cab6ca7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a24dcd1fe3768cc0a182640a6c77297648742c8","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                          --vnic-type direct \\"},{"line_number":24,"context_line":"                          --binding:profile type\u003ddict trusted\u003dtrue"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    Note: it\u0027s important to use the same boolean representation for"},{"line_number":27,"context_line":"    the value of the trusted tag due to because of a limitation in the"},{"line_number":28,"context_line":"    representation of the requests specs and tags for pools."}],"source_content_type":"text/x-yaml","patch_set":19,"id":"5f7c97a3_621fe4b6","line":28,"range":{"start_line":26,"start_character":4,"end_line":28,"end_character":60},"in_reply_to":"5f7c97a3_af3c0e93","updated":"2018-05-30 18:32:20.000000000","message":"Sure, I know the configured pci passthrough_whitelist must be true or false (case insensitive), but the port binding profile value can be any of the bool-type things that other REST APIs in openstack handle. Probably not really worth going into that level of detail here, just mention that the pci passthrough_whitelist value for the \u0027trusted\u0027 key must either be true or false, and case is not important.","commit_id":"6fc6225fa2be1275afe76c291dc6092d7cab6ca7"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"7e8ee1a8cd682e8b044e212d7705aa2e632368c8","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                          --vnic-type direct \\"},{"line_number":24,"context_line":"                          --binding:profile type\u003ddict trusted\u003dtrue"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    Note: it\u0027s important to use the same boolean representation for"},{"line_number":27,"context_line":"    the value of the trusted tag due to because of a limitation in the"},{"line_number":28,"context_line":"    representation of the requests specs and tags for pools."}],"source_content_type":"text/x-yaml","patch_set":19,"id":"5f7c97a3_af3c0e93","line":28,"range":{"start_line":26,"start_character":4,"end_line":28,"end_character":60},"in_reply_to":"5f7c97a3_c01a867b","updated":"2018-05-30 10:15:02.000000000","message":"Right. Also it\u0027s not possible anymore to use \"1\" in passthrough_whitelist. since even if we create a port with trusted\u003d1 that will be converted to True and so compared to the whitelisted tag value which will remain 1","commit_id":"6fc6225fa2be1275afe76c291dc6092d7cab6ca7"}]}
