)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"4f589d6e5dc5537d316fb6dfcac9119d86ecdcfc","unresolved":false,"context_lines":[{"line_number":9,"context_line":"pci stats base on pci_stats_group_key to group the device. default"},{"line_number":10,"context_line":"value is compatible with current implementation."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"via configuable group policy we can group by pci-flavor, by any extra"},{"line_number":13,"context_line":"infomation."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"bp:pci-extra-info"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAUH%2F%2FAjk%3D","line":12,"updated":"2014-01-19 11:28:46.000000000","message":"typo: configurable","commit_id":"5e26f525d95112948ab0fdfb1461f46d9a300141"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"796cdff3aea84008117372025069c741996eb1d6","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"  pci_flavor_attrs \u003d [\"vendor_id\", ...]"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"pci stats also report stats pool base on pci_flavor_attrs\u0027s attrs list."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"bp:pci-extra-info"},{"line_number":24,"context_line":"Sined-off-by: Yongli He \u003cyongli.he@intel.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAAUH%2F9XMA%3D","line":21,"updated":"2014-02-07 13:06:08.000000000","message":"Please specify how this is done. \nIn this wiki:https://wiki.openstack.org/wiki/PCI_passthrough_SRIOV_support_Icehouse, it indicates that the existing PCI alias will be extended. \nFor neutron SRIOV, we need to tag networking sriov ports with the attribute \"net-group\" (or whatever name we can agree on), and stats report for these ports is based on that. \n\nThis patch doesn\u0027t seem to reflect the wiki and support the neutron sriov requirement.","commit_id":"879ec2325fe34a70a72feb3415d994d5d7abdea7"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"914d1e47968677f93f8fb2bf93a6760cccfb65d3","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"  pci_flavor_attrs \u003d [\"vendor_id\", ...]"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"pci stats also report stats pool base on pci_flavor_attrs\u0027s attrs list."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"bp:pci-extra-info"},{"line_number":24,"context_line":"Sined-off-by: Yongli He \u003cyongli.he@intel.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAAVn%2F%2FuSc%3D","line":21,"in_reply_to":"AAAAUH%2F9XMA%3D","updated":"2014-03-04 13:38:38.000000000","message":"resolve by https://review.openstack.org/#/c/74633/. sorry for later to reply this.","commit_id":"879ec2325fe34a70a72feb3415d994d5d7abdea7"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a20bc3ecc395021d3521c38a99955c864a00b7f9","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Control node has PCI flavors which allow the administrator to package up"},{"line_number":10,"context_line":"PCI devices for users. Flavor has a name, and matching expression that"},{"line_number":11,"context_line":"selects available (offerred by white list) devices."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"PCI flavor is defined by a set of (k,v), the k is the *well defined* PCI"},{"line_number":14,"context_line":"property. Not every PCI property is available to PCI flavor, only a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAUX%2F%2BwWI%3D","line":11,"updated":"2014-02-19 09:32:43.000000000","message":"offerred \u003d\u003e offered","commit_id":"ce7bc98d38b4d2265375cb275e21c8633f44a8cf"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"8f4b48da7ebfbe9475d23658f010cee457015d94","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Control node has PCI flavors which allow the administrator to package up"},{"line_number":10,"context_line":"PCI devices for users. Flavor has a name, and matching expression that"},{"line_number":11,"context_line":"selects available (offerred by white list) devices."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"PCI flavor is defined by a set of (k,v), the k is the *well defined* PCI"},{"line_number":14,"context_line":"property. Not every PCI property is available to PCI flavor, only a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAU3%2F%2FgFQ%3D","line":11,"in_reply_to":"AAAAUX%2F%2BwWI%3D","updated":"2014-02-27 07:37:56.000000000","message":"Done","commit_id":"ce7bc98d38b4d2265375cb275e21c8633f44a8cf"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a20bc3ecc395021d3521c38a99955c864a00b7f9","unresolved":false,"context_lines":[{"line_number":10,"context_line":"PCI devices for users. Flavor has a name, and matching expression that"},{"line_number":11,"context_line":"selects available (offerred by white list) devices."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"PCI flavor is defined by a set of (k,v), the k is the *well defined* PCI"},{"line_number":14,"context_line":"property. Not every PCI property is available to PCI flavor, only a"},{"line_number":15,"context_line":"specific set of PCI property can used to define the PCI flavor, it\u0027s"},{"line_number":16,"context_line":"global to cloud. These PCI properties are defined via a global"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAUX%2F%2BwV4%3D","line":13,"updated":"2014-02-19 09:32:43.000000000","message":"would it be possible to have a link of the well defined values?","commit_id":"ce7bc98d38b4d2265375cb275e21c8633f44a8cf"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"8f4b48da7ebfbe9475d23658f010cee457015d94","unresolved":false,"context_lines":[{"line_number":10,"context_line":"PCI devices for users. Flavor has a name, and matching expression that"},{"line_number":11,"context_line":"selects available (offerred by white list) devices."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"PCI flavor is defined by a set of (k,v), the k is the *well defined* PCI"},{"line_number":14,"context_line":"property. Not every PCI property is available to PCI flavor, only a"},{"line_number":15,"context_line":"specific set of PCI property can used to define the PCI flavor, it\u0027s"},{"line_number":16,"context_line":"global to cloud. These PCI properties are defined via a global"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAU3%2F%2FgFM%3D","line":13,"in_reply_to":"AAAAUX%2F%2BwV4%3D","updated":"2014-02-27 07:37:56.000000000","message":"Done","commit_id":"ce7bc98d38b4d2265375cb275e21c8633f44a8cf"}],"etc/nova/nova.conf.sample":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f72787d3a7d1dbc33d52cbc2fd99f6eeeeab9fff","unresolved":false,"context_lines":[{"line_number":1708,"context_line":"# how the pci stats grouping the device, For example:"},{"line_number":1709,"context_line":"# pci_stats_group_key \u003d [\"product_id\", \"vendor_id\","},{"line_number":1710,"context_line":"# \"extra_info\"] (string value)"},{"line_number":1711,"context_line":"#pci_stats_group_key\u003d[\"product_id\",\"vendor_id\",\"extra_info\"]"},{"line_number":1712,"context_line":""},{"line_number":1713,"context_line":""},{"line_number":1714,"context_line":"#"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAT3%2F%2F2VE%3D","line":1711,"updated":"2013-12-30 08:04:11.000000000","message":"Can you please add DocImpact to the commit message","commit_id":"21666a43f351ad3dc59f7462eefd4b4e72721d32"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"4f589d6e5dc5537d316fb6dfcac9119d86ecdcfc","unresolved":false,"context_lines":[{"line_number":1707,"context_line":"# How pci group the device. This allows users to specify the"},{"line_number":1708,"context_line":"# how the pci stats grouping the device, For example:"},{"line_number":1709,"context_line":"# pci_stats_group_key \u003d [\"product_id\", \"vendor_id\","},{"line_number":1710,"context_line":"# \"extra_info\"] (string value)"},{"line_number":1711,"context_line":"#pci_stats_group_key\u003d[\"product_id\",\"vendor_id\",\"extra_info\"]"},{"line_number":1712,"context_line":""},{"line_number":1713,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAAUH%2F%2FAjA%3D","line":1710,"updated":"2014-01-19 11:28:46.000000000","message":"please add more info on extra_info format. Please change \u0027user\u0027 to \u0027admin\u0027 user or cloud provider. The name of this attribute is confusing, why its _key?","commit_id":"5e26f525d95112948ab0fdfb1461f46d9a300141"}],"nova/exception.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f72787d3a7d1dbc33d52cbc2fd99f6eeeeab9fff","unresolved":false,"context_lines":[{"line_number":1497,"context_line":""},{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"class PciConfigInvalidGroupKey(Invalid):"},{"line_number":1500,"context_line":"    msg_fmt \u003d _(\"Invalid PCI stats group key config %(reason)s\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAT3%2F%2F2VA%3D","line":1500,"updated":"2013-12-30 08:04:11.000000000","message":"Please update config %(reason)s \u003d\u003e config: %(reason)s\nto be consistent with the exceptions above","commit_id":"21666a43f351ad3dc59f7462eefd4b4e72721d32"}],"nova/pci/pci_stats.py":[{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"61775e7c45afd8cdde25ab1e99669079478bf5f9","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                    default\u003d\u0027[\"product_id\",\"vendor_id\",\"extra_info\"]\u0027,"},{"line_number":32,"context_line":"                    help\u003d\u0027How pci group the device. \u0027"},{"line_number":33,"context_line":"                        \u0027This allows users to specify the how the pci stats \u0027"},{"line_number":34,"context_line":"                        \u0027grouping the device, For example: \u0027"},{"line_number":35,"context_line":"                        \u0027pci_stats_group_key \u003d \u0027"},{"line_number":36,"context_line":"                         \u0027[\"product_id\", \"vendor_id\", \"extra_info\"]\u0027"},{"line_number":37,"context_line":"                   )"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAT3%2F%2Fwos%3D","line":34,"updated":"2014-01-02 07:54:00.000000000","message":"Please consider to rephrase the help description for clarity. \nPlease specify the  \u0027admin user\u0027  instead of \u0027user\u0027 in the description.\nIs it only one group key that can be defined?","commit_id":"21666a43f351ad3dc59f7462eefd4b4e72721d32"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"4f589d6e5dc5537d316fb6dfcac9119d86ecdcfc","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                        \u0027This allows users to specify the how the pci stats \u0027"},{"line_number":34,"context_line":"                        \u0027grouping the device, For example: \u0027"},{"line_number":35,"context_line":"                        \u0027pci_stats_group_key \u003d \u0027"},{"line_number":36,"context_line":"                         \u0027[\"product_id\", \"vendor_id\", \"extra_info\"]\u0027"},{"line_number":37,"context_line":"                   )"},{"line_number":38,"context_line":"]"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2FAbY%3D","line":36,"updated":"2014-01-19 11:28:46.000000000","message":"help message here is  not clear, please rephrase.","commit_id":"5e26f525d95112948ab0fdfb1461f46d9a300141"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a20bc3ecc395021d3521c38a99955c864a00b7f9","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    cfg.ListOpt(\u0027pci_flavor_attrs\u0027,"},{"line_number":29,"context_line":"                default\u003d[\"product_id\", \"vendor_id\","},{"line_number":30,"context_line":"                         \"capability_type\", \"device_type\"],"},{"line_number":31,"context_line":"                help\u003d\u0027Report pci stats base on pci_flavor_attrs.\u0027"},{"line_number":32,"context_line":"                     \u0027Define valid pci property for pci flavor\u0027"},{"line_number":33,"context_line":"                     \u0027For example:\u0027"},{"line_number":34,"context_line":"                     \u0027pci_flavor_attrs\u003dproduct_id, vendor_id, e.group\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2BwVI%3D","line":31,"updated":"2014-02-19 09:32:43.000000000","message":"Missing spaces at the end of the line","commit_id":"ce7bc98d38b4d2265375cb275e21c8633f44a8cf"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"8f4b48da7ebfbe9475d23658f010cee457015d94","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    cfg.ListOpt(\u0027pci_flavor_attrs\u0027,"},{"line_number":29,"context_line":"                default\u003d[\"product_id\", \"vendor_id\","},{"line_number":30,"context_line":"                         \"capability_type\", \"device_type\"],"},{"line_number":31,"context_line":"                help\u003d\u0027Report pci stats base on pci_flavor_attrs.\u0027"},{"line_number":32,"context_line":"                     \u0027Define valid pci property for pci flavor\u0027"},{"line_number":33,"context_line":"                     \u0027For example:\u0027"},{"line_number":34,"context_line":"                     \u0027pci_flavor_attrs\u003dproduct_id, vendor_id, e.group\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FgHI%3D","line":31,"in_reply_to":"AAAAUX%2F%2BwVI%3D","updated":"2014-02-27 07:37:56.000000000","message":"Done","commit_id":"ce7bc98d38b4d2265375cb275e21c8633f44a8cf"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"87b64622d1b9e4636fda35b65a032851b20fcdfe","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    cfg.ListOpt(\u0027pci_flavor_attrs\u0027,"},{"line_number":29,"context_line":"                default\u003d[\"product_id\", \"vendor_id\","},{"line_number":30,"context_line":"                         \"capability_type\", \"device_type\"],"},{"line_number":31,"context_line":"                help\u003d\u0027Report pci stats base on pci_flavor_attrs.\u0027"},{"line_number":32,"context_line":"                     \u0027Define valid pci property for pci flavor\u0027"},{"line_number":33,"context_line":"                     \u0027For example:\u0027"},{"line_number":34,"context_line":"                     \u0027pci_flavor_attrs\u003dproduct_id, vendor_id, e.group\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAVX%2F%2F8qI%3D","line":31,"in_reply_to":"AAAAUX%2F%2BwVI%3D","updated":"2014-02-27 07:38:36.000000000","message":"sorry this is not done yet.","commit_id":"ce7bc98d38b4d2265375cb275e21c8633f44a8cf"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a20bc3ecc395021d3521c38a99955c864a00b7f9","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def __init__(self, stats\u003dNone):"},{"line_number":66,"context_line":"        super(PciDeviceStats, self).__init__()"},{"line_number":67,"context_line":"        self.pool_keys \u003d CONF.pci_flavor_attrs"},{"line_number":68,"context_line":"        self.pools \u003d jsonutils.loads(stats) if stats else []"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def _equal_properties(self, dev, entry):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2BwVA%3D","line":67,"updated":"2014-02-19 09:32:43.000000000","message":"is it worthwhile checking the validity of the input here?","commit_id":"ce7bc98d38b4d2265375cb275e21c8633f44a8cf"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"8f4b48da7ebfbe9475d23658f010cee457015d94","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def __init__(self, stats\u003dNone):"},{"line_number":66,"context_line":"        super(PciDeviceStats, self).__init__()"},{"line_number":67,"context_line":"        self.pool_keys \u003d CONF.pci_flavor_attrs"},{"line_number":68,"context_line":"        self.pools \u003d jsonutils.loads(stats) if stats else []"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def _equal_properties(self, dev, entry):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FgHQ%3D","line":67,"in_reply_to":"AAAAUX%2F%2BwVA%3D","updated":"2014-02-27 07:37:56.000000000","message":"Done","commit_id":"ce7bc98d38b4d2265375cb275e21c8633f44a8cf"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"e02b1348828e505fa90df165d515f5ee116fab71","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        pool \u003d self._get_first_pool(dev)"},{"line_number":82,"context_line":"        if not pool:"},{"line_number":83,"context_line":"            pool \u003d dict((k, pci_utils.get_dev_property(dev, k))"},{"line_number":84,"context_line":"                        for k in self.pool_keys)"},{"line_number":85,"context_line":"            pool[\u0027count\u0027] \u003d 0"},{"line_number":86,"context_line":"            self.pools.append(pool)"},{"line_number":87,"context_line":"        pool[\u0027count\u0027] +\u003d 1"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAVn%2F%2FUrw%3D","line":84,"updated":"2014-03-06 20:51:18.000000000","message":"In https://review.openstack.org/#/c/67500/5/nova/pci/pci_stats.py, a different approach is taken. If a device is tagged with attributes, then those attributes are used as pool keys. Otherwise, the existing behavior applies. For example, with the following definition:\n\npci_passthrough_whitelist \u003d {\"vendor_id\":\"1137\",\"product_id\":\"0071\",\"address\":\":0a:00.\",\"physical_network\":\"physnet1\"}\npci_passthrough_whitelist \u003d {\"vendor_id\":\"1137\",\"product_id\":\"0071\"}\n\nwe will have two pools, one as \"physical_network\":\"physnet1\", another as {\"vendor_id\":\"1137\",\"product_id\":\"0071\"} (assuming extra_info is not used as the pool key).\n\nIt\u0027s very clear from the whitelist definition what the admin intends to do. A request with {\"vendor_id\":\"1137\",\"product_id\":\"0071\"} will never use the first pool.","commit_id":"4cbda40027aa71d63b20409bef96c3dbf254fbca"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"81930b03baf29504f71d2edcb24892af12f2a33e","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        pool \u003d self._get_first_pool(dev)"},{"line_number":82,"context_line":"        if not pool:"},{"line_number":83,"context_line":"            pool \u003d dict((k, pci_utils.get_dev_property(dev, k))"},{"line_number":84,"context_line":"                        for k in self.pool_keys)"},{"line_number":85,"context_line":"            pool[\u0027count\u0027] \u003d 0"},{"line_number":86,"context_line":"            self.pools.append(pool)"},{"line_number":87,"context_line":"        pool[\u0027count\u0027] +\u003d 1"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAVn%2F%2Bz9Q%3D","line":84,"in_reply_to":"AAAAVn%2F%2B4VA%3D","updated":"2014-03-12 00:53:27.000000000","message":"another problem about your approch, the  pci_passthrough_whitelist \u003d {\"vendor_id\":\"1137\",\"product_id\":\"0071\",\"address\":\"*:0a:00.*\",\"physical_network\":\"physnet1\"} is going to deprecated, instead , we use pci_infomation for this.\n\nplease check the meeting log.","commit_id":"4cbda40027aa71d63b20409bef96c3dbf254fbca"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"07dd4c798669c762a472d42e664769c6b1c26808","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        pool \u003d self._get_first_pool(dev)"},{"line_number":82,"context_line":"        if not pool:"},{"line_number":83,"context_line":"            pool \u003d dict((k, pci_utils.get_dev_property(dev, k))"},{"line_number":84,"context_line":"                        for k in self.pool_keys)"},{"line_number":85,"context_line":"            pool[\u0027count\u0027] \u003d 0"},{"line_number":86,"context_line":"            self.pools.append(pool)"},{"line_number":87,"context_line":"        pool[\u0027count\u0027] +\u003d 1"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAVn%2F%2B4VA%3D","line":84,"in_reply_to":"AAAAVn%2F%2B5h4%3D","updated":"2014-03-11 15:27:49.000000000","message":"If I understand your question correctly, let\u0027s say that you have a vNIC that has two PFs, you can tag one PF with physnet1, and leave the other PF untagged. Or further, you can tag some specific VFs with physnet1, and leave others as untagged. \n\nFor example: in the above example, \npci_passthrough_whitelist \u003d {\"vendor_id\":\"1137\",\"product_id\":\"0071\",\"address\":\"*:0a:00.*\",\"physical_network\":\"physnet1\"} \n\nThe PF is *:0a:*:*, and VFs *:0a:00:* are tagged with physnet1. The rest of them are put under \npci_passthrough_whitelist \u003d {\"vendor_id\":\"1137\",\"product_id\":\"0071\"}\n\nKeep in mind that a PCI device is matched against the entries in the same order as they are defined in the whitelist","commit_id":"4cbda40027aa71d63b20409bef96c3dbf254fbca"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9bfbd8549c3a7b3bf11ec2ecd9c543422298c99e","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        pool \u003d self._get_first_pool(dev)"},{"line_number":82,"context_line":"        if not pool:"},{"line_number":83,"context_line":"            pool \u003d dict((k, pci_utils.get_dev_property(dev, k))"},{"line_number":84,"context_line":"                        for k in self.pool_keys)"},{"line_number":85,"context_line":"            pool[\u0027count\u0027] \u003d 0"},{"line_number":86,"context_line":"            self.pools.append(pool)"},{"line_number":87,"context_line":"        pool[\u0027count\u0027] +\u003d 1"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAVn%2F%2B5h4%3D","line":84,"in_reply_to":"AAAAVn%2F%2FUrw%3D","updated":"2014-03-11 13:14:52.000000000","message":"if device with 1137, 0071 had a physnet1, what happens to this approach?  does this meet this case:\n\nsame pci\u0027s vf some use as a regular pci pass-through and some had extra tag?(may not be NIC\u0027s SRIOV).","commit_id":"4cbda40027aa71d63b20409bef96c3dbf254fbca"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9c8cc5b2e91168d26df89f8b1b441a9097a20edf","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        pool \u003d self._get_first_pool(dev)"},{"line_number":82,"context_line":"        if not pool:"},{"line_number":83,"context_line":"            pool \u003d dict((k, pci_utils.get_dev_property(dev, k))"},{"line_number":84,"context_line":"                        for k in self.pool_keys)"},{"line_number":85,"context_line":"            pool[\u0027count\u0027] \u003d 0"},{"line_number":86,"context_line":"            self.pools.append(pool)"},{"line_number":87,"context_line":"        pool[\u0027count\u0027] +\u003d 1"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAWH%2F%2FPI8%3D","line":84,"in_reply_to":"AAAAVn%2F%2FUrw%3D","updated":"2014-03-19 07:52:51.000000000","message":"this approach is had same behavior, ie. you have pool:\n{\"vendor_id\":\"1137\",\"product_id\":\"0071\",  None}\n{\"vendor_id\":\"1137\",\"product_id\":\"0071\", \"physical_network\":\"physnet1\"}\n\nand if you request {\"vendor_id\":\"1137\",\"product_id\":\"0071\"} , then use first cause pci_utils.get_dev_property(dev, k) will return None.\n\nand if you only use \"physical_network\":\"physnet1\" as pool, the vendor and product id is missing, which will be useful later.","commit_id":"4cbda40027aa71d63b20409bef96c3dbf254fbca"}]}
