)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c051baf7c456914070488b39a7fc18ca83477fa3","unresolved":true,"context_lines":[{"line_number":13,"context_line":"Operator should specify the device and correspond profile in a"},{"line_number":14,"context_line":"config file so that X710\u0027s driver can read the info from this"},{"line_number":15,"context_line":"file."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ida0ba8f24b9e226da7f3d7a85fc372247e5281a5"},{"line_number":18,"context_line":"Implements: blueprint sriov-smartnic-support"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"6ef9a00d_c578a886","line":16,"updated":"2021-02-01 10:10:50.000000000","message":"please add the test report link here.","commit_id":"485e603eb29b49b5c8adea0b85ce9f5fd9d019d4"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"668f7247c93d9c27b6bbf8e8df498ed357124914","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Operator should specify the device and correspond profile in a"},{"line_number":14,"context_line":"config file so that X710\u0027s driver can read the info from this"},{"line_number":15,"context_line":"file."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ida0ba8f24b9e226da7f3d7a85fc372247e5281a5"},{"line_number":18,"context_line":"Implements: blueprint sriov-smartnic-support"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"0140bc92_477212b7","line":16,"in_reply_to":"6ef9a00d_c578a886","updated":"2021-02-02 05:42:37.000000000","message":"Done","commit_id":"485e603eb29b49b5c8adea0b85ce9f5fd9d019d4"}],"0001-Enable-Intel-710-driver.patch":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"04902fabc7ba37cbd2be876975092c710899c240","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3c548f1d_4ffed382","updated":"2020-12-31 03:22:52.000000000","message":"This file show what you have done with 710 driver support and show the resources info, but do we need to add this file in ?","commit_id":"cd68665dc3fa28ae3250bbadcb612dd11112b4ea"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"de9d98e7e343c5b56928a4e57035b916d178b789","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9b80e3f8_cc716672","in_reply_to":"3c548f1d_4ffed382","updated":"2021-01-05 12:53:21.000000000","message":"We don\u0027t need to add this file in. I have deleted it.","commit_id":"cd68665dc3fa28ae3250bbadcb612dd11112b4ea"}],"cyborg.conf.intelnic.sample":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"79a5540e5ab72c4c2e31dc5dd42587731ecde665","unresolved":true,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"[x710_static]"},{"line_number":68,"context_line":"physical_device_mappings \u003d physnet1:eth2|eth3"},{"line_number":69,"context_line":"function_device_mappings \u003d GTPv1:eth3|eth2"}],"source_content_type":"application/octet-stream","patch_set":10,"id":"19cd082a_befc530b","line":69,"range":{"start_line":69,"start_character":27,"end_line":69,"end_character":42},"updated":"2021-02-04 09:37:53.000000000","message":"Talked in wecat, oslo cannot parase the \";\" as the mapping, using \"|\" instead of \";\", that we are keep the same config with PMEM in nova, it\u0027s ok for me.","commit_id":"e3caf5cb0a5d5fe44e2409c7712d3d911508a27b"}],"cyborg.conf.sample":[{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"04d16af8d9662f85d21e3ac87dd605756d6effb9","unresolved":true,"context_lines":[{"line_number":64,"context_line":"[nic_devices]"},{"line_number":65,"context_line":"enabled_nic_types \u003d x710_static"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"[x710_static]"},{"line_number":68,"context_line":"pci_addresses \u003d 0000:86:00.0, 0000:86:00.1"},{"line_number":69,"context_line":"function_name\u003dGTPv1"},{"line_number":70,"context_line":"physnet\u003dphysnet1"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"204cc4ba_fc279781","line":67,"range":{"start_line":67,"start_character":1,"end_line":67,"end_character":12},"updated":"2021-01-11 06:51:14.000000000","message":"Here\u0027s some minor improvement could be done:\n\n1) The physical network should configurable per interface name.\n2) Supporting the multiple nics is handy if we use \u003cethx\u003e:\u003cphysicalnet_name\u003e\n3) Per same reason, the \"function name\" also should use alike mapping. \n4) and use \"function\" seems enough and might better?","commit_id":"f4c735f744e2b3cbc3f1d0a75089bca2fcb66c9d"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"736dcb06f1a778b02e4fc57f223113cd7fb88759","unresolved":true,"context_lines":[{"line_number":64,"context_line":"[nic_devices]"},{"line_number":65,"context_line":"enabled_nic_types \u003d x710_static"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"[x710_static]"},{"line_number":68,"context_line":"pci_addresses \u003d 0000:86:00.0, 0000:86:00.1"},{"line_number":69,"context_line":"function_name\u003dGTPv1"},{"line_number":70,"context_line":"physnet\u003dphysnet1"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"c9c3a6c5_318fd81e","line":67,"range":{"start_line":67,"start_character":1,"end_line":67,"end_character":12},"in_reply_to":"204cc4ba_fc279781","updated":"2021-01-11 07:22:34.000000000","message":"Agree, physical network should be configured per interface. I will improve this with the format like \"\u003cethx\u003e:\u003cphysicalnet_name\u003e\". Thanks for your comments.","commit_id":"f4c735f744e2b3cbc3f1d0a75089bca2fcb66c9d"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"a896042ea7c570d78b4d57f5b6dd17ccf1085286","unresolved":true,"context_lines":[{"line_number":64,"context_line":"[nic_devices]"},{"line_number":65,"context_line":"enabled_nic_types \u003d x710_static"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"[x710_static]"},{"line_number":68,"context_line":"pci_addresses \u003d 0000:86:00.0, 0000:86:00.1"},{"line_number":69,"context_line":"function_name\u003dGTPv1"},{"line_number":70,"context_line":"physnet\u003dphysnet1"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"7c2e6824_8d1702b9","line":67,"range":{"start_line":67,"start_character":1,"end_line":67,"end_character":12},"in_reply_to":"c9c3a6c5_318fd81e","updated":"2021-01-14 07:15:17.000000000","message":"Hi Yongli, I have updated the patch. Now we can make 1:N mapping relation for both physnet and function. For example: \"physnet1:eth2;eth3, physnet2: eth1\". \nBesides, we can also configure them one by one, for example:  \"physnet1:eth1, physnet2:eth2\". Both of them passed the testing.\n\nHowever, \"physnet1:eth2, physnet1:eth3\" is not supported, because the key \"physnet1\" is not unique, which is different from neutron.\n\nI think the two config formats in 1st paragraph is suffisant to use, and it reduce the duplication. Please check the latest patch.","commit_id":"f4c735f744e2b3cbc3f1d0a75089bca2fcb66c9d"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"66e494a5790dfdb7d4de1dc6bee53c148f1084cc","unresolved":true,"context_lines":[{"line_number":1,"context_line":""},{"line_number":2,"context_line":"[DEFAULT]"},{"line_number":3,"context_line":"auth_strategy \u003d "},{"line_number":4,"context_line":"transport_url \u003d rabbit://stackrabbit:123456@192.168.0.186:5672/"},{"line_number":5,"context_line":"use_syslog \u003d False"},{"line_number":6,"context_line":"state_path \u003d /var/lib/cyborg"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"902cc549_49f6ae63","line":3,"range":{"start_line":3,"start_character":15,"end_line":3,"end_character":16},"updated":"2021-01-16 03:20:55.000000000","message":"suggest delete this.","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"1dc4e5586dccb76f8b8c55680a1aa789baf383d1","unresolved":true,"context_lines":[{"line_number":56,"context_line":"policy_file \u003d /etc/cyborg/policy.yaml"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"[conductor]"},{"line_number":59,"context_line":"automated_clean \u003d "},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"[agent]"},{"line_number":62,"context_line":"enabled_drivers \u003d fake_driver,intel_nic_driver"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"d6c6abac_31c99ae2","line":59,"range":{"start_line":59,"start_character":17,"end_line":59,"end_character":18},"updated":"2021-01-18 01:09:17.000000000","message":"redundant space","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"be82b5cb70fb64c911d7d1a35beb1a4f402fa5e7","unresolved":false,"context_lines":[{"line_number":56,"context_line":"policy_file \u003d /etc/cyborg/policy.yaml"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"[conductor]"},{"line_number":59,"context_line":"automated_clean \u003d "},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"[agent]"},{"line_number":62,"context_line":"enabled_drivers \u003d fake_driver,intel_nic_driver"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"25a1afdb_69e6e5a1","line":59,"range":{"start_line":59,"start_character":17,"end_line":59,"end_character":18},"in_reply_to":"d6c6abac_31c99ae2","updated":"2021-01-25 07:26:44.000000000","message":"Done","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"692f1fa21a908ea1e415b3905487ea1f10c2e456","unresolved":true,"context_lines":[{"line_number":1,"context_line":""},{"line_number":2,"context_line":"[DEFAULT]"},{"line_number":3,"context_line":"auth_strategy \u003d "},{"line_number":4,"context_line":"transport_url \u003d rabbit://stackrabbit:123456@192.168.0.186:5672/"},{"line_number":5,"context_line":"use_syslog \u003d False"},{"line_number":6,"context_line":"state_path \u003d /var/lib/cyborg"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"47d3b61c_03d5dd9b","line":3,"range":{"start_line":3,"start_character":15,"end_line":3,"end_character":16},"updated":"2021-01-26 00:45:26.000000000","message":"nit: white space","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"646bc4a1dffb3521b86d831606ef43792a32a1b9","unresolved":false,"context_lines":[{"line_number":1,"context_line":""},{"line_number":2,"context_line":"[DEFAULT]"},{"line_number":3,"context_line":"auth_strategy \u003d "},{"line_number":4,"context_line":"transport_url \u003d rabbit://stackrabbit:123456@192.168.0.186:5672/"},{"line_number":5,"context_line":"use_syslog \u003d False"},{"line_number":6,"context_line":"state_path \u003d /var/lib/cyborg"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"b33e78c4_72933f54","line":3,"range":{"start_line":3,"start_character":15,"end_line":3,"end_character":16},"in_reply_to":"47d3b61c_03d5dd9b","updated":"2021-01-26 08:40:26.000000000","message":"Done","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c051baf7c456914070488b39a7fc18ca83477fa3","unresolved":true,"context_lines":[{"line_number":59,"context_line":"automated_clean \u003d"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"[agent]"},{"line_number":62,"context_line":"enabled_drivers \u003d fake_driver,intel_nic_driver"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"[nic_devices]"},{"line_number":65,"context_line":"enabled_nic_types \u003d x710_static"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"a0df9b25_bd167b4c","line":62,"range":{"start_line":62,"start_character":30,"end_line":62,"end_character":46},"updated":"2021-02-01 10:10:50.000000000","message":"do we need direct 710 card type?","commit_id":"485e603eb29b49b5c8adea0b85ce9f5fd9d019d4"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"668f7247c93d9c27b6bbf8e8df498ed357124914","unresolved":true,"context_lines":[{"line_number":59,"context_line":"automated_clean \u003d"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"[agent]"},{"line_number":62,"context_line":"enabled_drivers \u003d fake_driver,intel_nic_driver"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"[nic_devices]"},{"line_number":65,"context_line":"enabled_nic_types \u003d x710_static"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"ce37c11e_308ce28e","line":62,"range":{"start_line":62,"start_character":30,"end_line":62,"end_character":46},"in_reply_to":"a0df9b25_bd167b4c","updated":"2021-02-02 05:42:37.000000000","message":"we don\u0027t need to support pf pass-through explictly. it is similiar like fpga/gpu driver, the driver will distinguish if it\u0027s a pf or vf. \nfor 710 driver, both pf and vf are supported.","commit_id":"485e603eb29b49b5c8adea0b85ce9f5fd9d019d4"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"5ac5e8d34ea69e63ce612c00b5f7c9644ef5ac90","unresolved":true,"context_lines":[{"line_number":59,"context_line":"automated_clean \u003d"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"[agent]"},{"line_number":62,"context_line":"enabled_drivers \u003d fake_driver,intel_nic_driver"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"[nic_devices]"},{"line_number":65,"context_line":"enabled_nic_types \u003d x710_static"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"effb8d02_df86b962","line":62,"range":{"start_line":62,"start_character":30,"end_line":62,"end_character":46},"in_reply_to":"ce37c11e_308ce28e","updated":"2021-02-02 11:42:36.000000000","message":"Hi xinran, I think wenping\u0027s concern is, if we have two different nic driver in the host, how do we deal with it? as you said in the https://review.opendev.org/c/openstack/cyborg/+/758942/6/cyborg/conf/devices.py#50, x710:eth0,eth1, but if xYY smartNiC also existed in the host, and used xYY:eth2, eth3, at this time, how do we distinguish the driver configured here?","commit_id":"485e603eb29b49b5c8adea0b85ce9f5fd9d019d4"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"0ccdf441fc88343d93301d6be7cf68961c7c699a","unresolved":true,"context_lines":[{"line_number":59,"context_line":"automated_clean \u003d"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"[agent]"},{"line_number":62,"context_line":"enabled_drivers \u003d fake_driver,intel_nic_driver"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"[nic_devices]"},{"line_number":65,"context_line":"enabled_nic_types \u003d x710_static"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"d6413998_29748739","line":62,"range":{"start_line":62,"start_character":30,"end_line":62,"end_character":46},"in_reply_to":"effb8d02_df86b962","updated":"2021-02-03 01:57:35.000000000","message":"if we have another nic type, the config file will have another section, like [x710-dynamically-program] etc. The 710 driver should also be imporved to handle this new section.","commit_id":"485e603eb29b49b5c8adea0b85ce9f5fd9d019d4"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c051baf7c456914070488b39a7fc18ca83477fa3","unresolved":true,"context_lines":[{"line_number":65,"context_line":"enabled_nic_types \u003d x710_static"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"[x710_static]"},{"line_number":68,"context_line":"physical_device_mappings \u003d physnet1:eth2;eth3"},{"line_number":69,"context_line":"function_device_mappings \u003d GTPv1:eth3;eth2"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"f8079dff_78ad6b5e","line":69,"range":{"start_line":68,"start_character":0,"end_line":69,"end_character":42},"updated":"2021-02-01 10:10:50.000000000","message":"which param means card pci address?","commit_id":"485e603eb29b49b5c8adea0b85ce9f5fd9d019d4"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"668f7247c93d9c27b6bbf8e8df498ed357124914","unresolved":true,"context_lines":[{"line_number":65,"context_line":"enabled_nic_types \u003d x710_static"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"[x710_static]"},{"line_number":68,"context_line":"physical_device_mappings \u003d physnet1:eth2;eth3"},{"line_number":69,"context_line":"function_device_mappings \u003d GTPv1:eth3;eth2"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"11b9eb88_dcf94cf9","line":69,"range":{"start_line":68,"start_character":0,"end_line":69,"end_character":42},"in_reply_to":"f8079dff_78ad6b5e","updated":"2021-02-02 05:42:37.000000000","message":"the param ethx means pfs, 710 driver will convert it to pci address.","commit_id":"485e603eb29b49b5c8adea0b85ce9f5fd9d019d4"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"0ef9a07d3ec7a4c5df6e8724c7a928e981a59db9","unresolved":true,"context_lines":[{"line_number":1,"context_line":""},{"line_number":2,"context_line":"[DEFAULT]"},{"line_number":3,"context_line":"auth_strategy \u003d"},{"line_number":4,"context_line":"transport_url \u003d rabbit://stackrabbit:123456@192.168.0.186:5672/"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"d6ee59ea_59cd27a9","line":1,"updated":"2021-02-03 10:07:12.000000000","message":"you can change this file name with cyborg.conf.nic_710.sample","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"82b2ec667d1899597e9f18a1d8c51107cb7952da","unresolved":false,"context_lines":[{"line_number":1,"context_line":""},{"line_number":2,"context_line":"[DEFAULT]"},{"line_number":3,"context_line":"auth_strategy \u003d"},{"line_number":4,"context_line":"transport_url \u003d rabbit://stackrabbit:123456@192.168.0.186:5672/"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"0662609e_51369632","line":1,"in_reply_to":"d6ee59ea_59cd27a9","updated":"2021-02-03 11:04:30.000000000","message":"Done","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"0ef9a07d3ec7a4c5df6e8724c7a928e981a59db9","unresolved":true,"context_lines":[{"line_number":59,"context_line":"automated_clean \u003d"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"[agent]"},{"line_number":62,"context_line":"enabled_drivers \u003d fake_driver,intel_nic_driver"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"[nic_devices]"},{"line_number":65,"context_line":"enabled_nic_types \u003d x710_static"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"96fc2bcf_5bfe1ff4","line":62,"range":{"start_line":62,"start_character":30,"end_line":62,"end_character":46},"updated":"2021-02-03 10:07:12.000000000","message":"What I mean is that the 710 card type driver is specified here（intel_710_nic_driver）, in order to support other types of cards in the future, such as 711/712, etc.","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"82b2ec667d1899597e9f18a1d8c51107cb7952da","unresolved":true,"context_lines":[{"line_number":59,"context_line":"automated_clean \u003d"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"[agent]"},{"line_number":62,"context_line":"enabled_drivers \u003d fake_driver,intel_nic_driver"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"[nic_devices]"},{"line_number":65,"context_line":"enabled_nic_types \u003d x710_static"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"0645d780_e7d7c797","line":62,"range":{"start_line":62,"start_character":30,"end_line":62,"end_character":46},"in_reply_to":"96fc2bcf_5bfe1ff4","updated":"2021-02-03 11:04:30.000000000","message":"currently, we don\u0027t distinguish the model of the same vendor, just like what fpgas, gpus driver do today. we can use the same driver code to discover different device from the same vendor. cause the manner are similiar. All supported device should be list in https://review.opendev.org/c/openstack/cyborg/+/758942/8/cyborg/accelerator/drivers/nic/intel/sysinfo.py#41.\n\nI will replace x710 with a more general work to avoid misunderstanding.  If a new intel driver is introduced, and the manner of the discovery is the same, we can just add the (vendor, device) tuple to KNOWN_NICS.","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"0ef9a07d3ec7a4c5df6e8724c7a928e981a59db9","unresolved":true,"context_lines":[{"line_number":65,"context_line":"enabled_nic_types \u003d x710_static"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"[x710_static]"},{"line_number":68,"context_line":"physical_device_mappings \u003d physnet1:eth2;eth3"},{"line_number":69,"context_line":"function_device_mappings \u003d GTPv1:eth3;eth2"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"90dd540e_fd785f2a","line":68,"range":{"start_line":68,"start_character":40,"end_line":68,"end_character":41},"updated":"2021-02-03 10:07:12.000000000","message":"After talked with Brin, we should use `,` instead of `;` in configure file like agent in L62.","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"82b2ec667d1899597e9f18a1d8c51107cb7952da","unresolved":true,"context_lines":[{"line_number":65,"context_line":"enabled_nic_types \u003d x710_static"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"[x710_static]"},{"line_number":68,"context_line":"physical_device_mappings \u003d physnet1:eth2;eth3"},{"line_number":69,"context_line":"function_device_mappings \u003d GTPv1:eth3;eth2"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"62a80b24_0fcdf51c","line":68,"range":{"start_line":68,"start_character":40,"end_line":68,"end_character":41},"in_reply_to":"90dd540e_fd785f2a","updated":"2021-02-03 11:04:30.000000000","message":"I use ; because it\u0027s better to keep consistent with other project, like neutron. Please check neutron\u0027s configuration especially the excluded_device sample. https://docs.openstack.org/mitaka/networking-guide/config-sriov.html#enable-neutron-sriov-agent-compute","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"}],"cyborg/accelerator/common/utils.py":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"1dc4e5586dccb76f8b8c55680a1aa789baf383d1","unresolved":true,"context_lines":[{"line_number":12,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import collections"},{"line_number":16,"context_line":"from cyborg.common import exception"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import os"},{"line_number":19,"context_line":"from oslo_serialization import jsonutils"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"def pci_str_to_json(pci_address, physnet\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ac0943f9_a398e4f8","line":19,"range":{"start_line":15,"start_character":0,"end_line":19,"end_character":40},"updated":"2021-01-18 01:09:17.000000000","message":"I would like make this follow the base order:\n\n# The third libary\nimport collections\nimport os\n\n# the dependency OpenStack libary\nfrom oslo_serialization import jsonutils\n\n# The libary of Cyborg (itsself)\nfrom cyborg.common import exception","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"be82b5cb70fb64c911d7d1a35beb1a4f402fa5e7","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import collections"},{"line_number":16,"context_line":"from cyborg.common import exception"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import os"},{"line_number":19,"context_line":"from oslo_serialization import jsonutils"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"def pci_str_to_json(pci_address, physnet\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"c92550fe_f5970df0","line":19,"range":{"start_line":15,"start_character":0,"end_line":19,"end_character":40},"in_reply_to":"ac0943f9_a398e4f8","updated":"2021-01-25 07:26:44.000000000","message":"Done","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"66e494a5790dfdb7d4de1dc6bee53c148f1084cc","unresolved":true,"context_lines":[{"line_number":33,"context_line":"    return bdf_json"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def _get_sysfs_netdev_path(pci_addr, pf_interface):"},{"line_number":37,"context_line":"    \"\"\"Get the sysfs path based on the PCI address of the device."},{"line_number":38,"context_line":"    Assumes a networking device - will not check for the existence of the path."},{"line_number":39,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8a2453_c46bc784","line":36,"range":{"start_line":36,"start_character":38,"end_line":36,"end_character":49},"updated":"2021-01-16 03:20:55.000000000","message":"should we set a default value like above function?","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"be82b5cb70fb64c911d7d1a35beb1a4f402fa5e7","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    return bdf_json"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def _get_sysfs_netdev_path(pci_addr, pf_interface):"},{"line_number":37,"context_line":"    \"\"\"Get the sysfs path based on the PCI address of the device."},{"line_number":38,"context_line":"    Assumes a networking device - will not check for the existence of the path."},{"line_number":39,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe1922f_19395b7d","line":36,"range":{"start_line":36,"start_character":38,"end_line":36,"end_character":49},"in_reply_to":"9a8a2453_c46bc784","updated":"2021-01-25 07:26:44.000000000","message":"Done","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"1dc4e5586dccb76f8b8c55680a1aa789baf383d1","unresolved":true,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def _get_sysfs_netdev_path(pci_addr, pf_interface):"},{"line_number":37,"context_line":"    \"\"\"Get the sysfs path based on the PCI address of the device."},{"line_number":38,"context_line":"    Assumes a networking device - will not check for the existence of the path."},{"line_number":39,"context_line":"    \"\"\""},{"line_number":40,"context_line":"    if pf_interface:"},{"line_number":41,"context_line":"        return \"/sys/bus/pci/devices/%s/physfn/net\" % pci_addr"}],"source_content_type":"text/x-python","patch_set":5,"id":"4fabc392_5d1ebb92","line":38,"updated":"2021-01-18 01:09:17.000000000","message":"Hope you can add the docs like in Line64, to make the parameter clealier.","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"be82b5cb70fb64c911d7d1a35beb1a4f402fa5e7","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def _get_sysfs_netdev_path(pci_addr, pf_interface):"},{"line_number":37,"context_line":"    \"\"\"Get the sysfs path based on the PCI address of the device."},{"line_number":38,"context_line":"    Assumes a networking device - will not check for the existence of the path."},{"line_number":39,"context_line":"    \"\"\""},{"line_number":40,"context_line":"    if pf_interface:"},{"line_number":41,"context_line":"        return \"/sys/bus/pci/devices/%s/physfn/net\" % pci_addr"}],"source_content_type":"text/x-python","patch_set":5,"id":"71927167_a77e6697","line":38,"in_reply_to":"4fabc392_5d1ebb92","updated":"2021-01-25 07:26:44.000000000","message":"Done","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"1dc4e5586dccb76f8b8c55680a1aa789baf383d1","unresolved":true,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def get_ifname_by_pci_address(pci_addr, pf_interface\u003dFalse):"},{"line_number":46,"context_line":"    \"\"\"Get the interface name based on a VF\u0027s pci address."},{"line_number":47,"context_line":"    The returned interface name is either the parent PF\u0027s or that of the VF"},{"line_number":48,"context_line":"    itself based on the argument of pf_interface."},{"line_number":49,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"a47be0ea_aadbf48a","line":46,"updated":"2021-01-18 01:09:17.000000000","message":"ditto","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"be82b5cb70fb64c911d7d1a35beb1a4f402fa5e7","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def get_ifname_by_pci_address(pci_addr, pf_interface\u003dFalse):"},{"line_number":46,"context_line":"    \"\"\"Get the interface name based on a VF\u0027s pci address."},{"line_number":47,"context_line":"    The returned interface name is either the parent PF\u0027s or that of the VF"},{"line_number":48,"context_line":"    itself based on the argument of pf_interface."},{"line_number":49,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"bd8b1c06_1699d4e3","line":46,"in_reply_to":"a47be0ea_aadbf48a","updated":"2021-01-25 07:26:44.000000000","message":"Done","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"66e494a5790dfdb7d4de1dc6bee53c148f1084cc","unresolved":true,"context_lines":[{"line_number":63,"context_line":"    function:pci_dev_1;pci_dev_2"},{"line_number":64,"context_line":"    @param mapping_list: list of string pairs in \"key:value\" format"},{"line_number":65,"context_line":"                    the key part represents the physnet or function name"},{"line_number":66,"context_line":"                    the value part is a list of device name separated by \";\""},{"line_number":67,"context_line":"    \"\"\""},{"line_number":68,"context_line":"    mapping \u003d {}"},{"line_number":69,"context_line":"    for dev_mapping in mapping_list:"}],"source_content_type":"text/x-python","patch_set":5,"id":"61ed644d_4d9ffc19","line":66,"range":{"start_line":66,"start_character":8,"end_line":66,"end_character":20},"updated":"2021-01-16 03:20:55.000000000","message":"lack a docs about return value.","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"be82b5cb70fb64c911d7d1a35beb1a4f402fa5e7","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    function:pci_dev_1;pci_dev_2"},{"line_number":64,"context_line":"    @param mapping_list: list of string pairs in \"key:value\" format"},{"line_number":65,"context_line":"                    the key part represents the physnet or function name"},{"line_number":66,"context_line":"                    the value part is a list of device name separated by \";\""},{"line_number":67,"context_line":"    \"\"\""},{"line_number":68,"context_line":"    mapping \u003d {}"},{"line_number":69,"context_line":"    for dev_mapping in mapping_list:"}],"source_content_type":"text/x-python","patch_set":5,"id":"e9a53478_68a9e27a","line":66,"range":{"start_line":66,"start_character":8,"end_line":66,"end_character":20},"in_reply_to":"61ed644d_4d9ffc19","updated":"2021-01-25 07:26:44.000000000","message":"Done","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"41b962d4fa50cd0bd979431ca07d9f181d43fbdc","unresolved":true,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def get_ifname_by_pci_address(pci_addr, vf_interface\u003dFalse):"},{"line_number":51,"context_line":"    \"\"\"Get the interface name based on a the pci address."},{"line_number":52,"context_line":"    The returned interface name is either the parent PF\u0027s or that of the PF"},{"line_number":53,"context_line":"    itself based on the argument of vf_interface."},{"line_number":54,"context_line":"    :param pci_addr: the pci addresee of the device(PF or VF)"}],"source_content_type":"text/x-python","patch_set":6,"id":"19ec1383_e87ee881","line":51,"range":{"start_line":51,"start_character":39,"end_line":51,"end_character":41},"updated":"2021-01-26 01:41:00.000000000","message":"nit","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"646bc4a1dffb3521b86d831606ef43792a32a1b9","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def get_ifname_by_pci_address(pci_addr, vf_interface\u003dFalse):"},{"line_number":51,"context_line":"    \"\"\"Get the interface name based on a the pci address."},{"line_number":52,"context_line":"    The returned interface name is either the parent PF\u0027s or that of the PF"},{"line_number":53,"context_line":"    itself based on the argument of vf_interface."},{"line_number":54,"context_line":"    :param pci_addr: the pci addresee of the device(PF or VF)"}],"source_content_type":"text/x-python","patch_set":6,"id":"be37f6ad_f836bd58","line":51,"range":{"start_line":51,"start_character":39,"end_line":51,"end_character":41},"in_reply_to":"19ec1383_e87ee881","updated":"2021-01-26 08:40:26.000000000","message":"Done","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"41b962d4fa50cd0bd979431ca07d9f181d43fbdc","unresolved":true,"context_lines":[{"line_number":51,"context_line":"    \"\"\"Get the interface name based on a the pci address."},{"line_number":52,"context_line":"    The returned interface name is either the parent PF\u0027s or that of the PF"},{"line_number":53,"context_line":"    itself based on the argument of vf_interface."},{"line_number":54,"context_line":"    :param pci_addr: the pci addresee of the device(PF or VF)"},{"line_number":55,"context_line":"    :param vf_interface: True if the pci_addr is a VF,"},{"line_number":56,"context_line":"        False if the pci_addr is a PF."},{"line_number":57,"context_line":"    :returns: the interface name corresponds to the pci_addr."}],"source_content_type":"text/x-python","patch_set":6,"id":"576494f7_a0219c98","line":54,"range":{"start_line":54,"start_character":29,"end_line":54,"end_character":38},"updated":"2021-01-26 01:41:00.000000000","message":"address","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"646bc4a1dffb3521b86d831606ef43792a32a1b9","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    \"\"\"Get the interface name based on a the pci address."},{"line_number":52,"context_line":"    The returned interface name is either the parent PF\u0027s or that of the PF"},{"line_number":53,"context_line":"    itself based on the argument of vf_interface."},{"line_number":54,"context_line":"    :param pci_addr: the pci addresee of the device(PF or VF)"},{"line_number":55,"context_line":"    :param vf_interface: True if the pci_addr is a VF,"},{"line_number":56,"context_line":"        False if the pci_addr is a PF."},{"line_number":57,"context_line":"    :returns: the interface name corresponds to the pci_addr."}],"source_content_type":"text/x-python","patch_set":6,"id":"9af991fa_84acd539","line":54,"range":{"start_line":54,"start_character":29,"end_line":54,"end_character":38},"in_reply_to":"576494f7_a0219c98","updated":"2021-01-26 08:40:26.000000000","message":"Done","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"0ef9a07d3ec7a4c5df6e8724c7a928e981a59db9","unresolved":true,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def _get_sysfs_netdev_path(pci_addr, vf_interface\u003dFalse):"},{"line_number":38,"context_line":"    \"\"\"Get the sysfs path based on the PCI address of the device."},{"line_number":39,"context_line":"    Assumes a networking device - will not check for the existence of the path."},{"line_number":40,"context_line":"    :param pci_addr: the pci addresee of the device(PF or VF)."},{"line_number":41,"context_line":"    :param vf_interface: True if the pci_addr is a VF,"},{"line_number":42,"context_line":"        False if the pci_addr is a PF."}],"source_content_type":"text/x-python","patch_set":8,"id":"f23f22ca_1c94dbae","line":39,"range":{"start_line":39,"start_character":34,"end_line":39,"end_character":48},"updated":"2021-02-03 10:07:12.000000000","message":"if you will not check the existence of the path, just inline the content in the call place.","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"82b2ec667d1899597e9f18a1d8c51107cb7952da","unresolved":true,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def _get_sysfs_netdev_path(pci_addr, vf_interface\u003dFalse):"},{"line_number":38,"context_line":"    \"\"\"Get the sysfs path based on the PCI address of the device."},{"line_number":39,"context_line":"    Assumes a networking device - will not check for the existence of the path."},{"line_number":40,"context_line":"    :param pci_addr: the pci addresee of the device(PF or VF)."},{"line_number":41,"context_line":"    :param vf_interface: True if the pci_addr is a VF,"},{"line_number":42,"context_line":"        False if the pci_addr is a PF."}],"source_content_type":"text/x-python","patch_set":8,"id":"5f656c96_1d994669","line":39,"range":{"start_line":39,"start_character":34,"end_line":39,"end_character":48},"in_reply_to":"f23f22ca_1c94dbae","updated":"2021-02-03 11:04:30.000000000","message":"I prefer keep this in utils.py, it may called by other nic driver if needed in the future.","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"d1a519bedfc8a8369d605912aa34328ef0711a52","unresolved":true,"context_lines":[{"line_number":89,"context_line":"                (\"Key %(physnet_or_function)s in mapping: %(mapping)s \""},{"line_number":90,"context_line":"                 \"not unique\") % {\u0027physnet_or_function\u0027: physnet_or_function,"},{"line_number":91,"context_line":"                                  \u0027mapping\u0027: dev_mapping})"},{"line_number":92,"context_line":"        devices_list \u003d devices.split(\";\")"},{"line_number":93,"context_line":"        devices_set \u003d set()"},{"line_number":94,"context_line":"        for dev in devices_list:"},{"line_number":95,"context_line":"            dev \u003d dev.strip()"},{"line_number":96,"context_line":"            if dev:"},{"line_number":97,"context_line":"                devices_set.add(dev)"},{"line_number":98,"context_line":"        mapping[physnet_or_function] \u003d devices_set"},{"line_number":99,"context_line":"    return mapping"}],"source_content_type":"text/x-python","patch_set":8,"id":"d5f829e5_a4b93686","line":98,"range":{"start_line":92,"start_character":0,"end_line":98,"end_character":50},"updated":"2021-02-03 09:07:34.000000000","message":"mapping[physnet_or_function] \u003d set(dev.strip() for dev in devices.split(\";\") if dev.strip())","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"82b2ec667d1899597e9f18a1d8c51107cb7952da","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                (\"Key %(physnet_or_function)s in mapping: %(mapping)s \""},{"line_number":90,"context_line":"                 \"not unique\") % {\u0027physnet_or_function\u0027: physnet_or_function,"},{"line_number":91,"context_line":"                                  \u0027mapping\u0027: dev_mapping})"},{"line_number":92,"context_line":"        devices_list \u003d devices.split(\";\")"},{"line_number":93,"context_line":"        devices_set \u003d set()"},{"line_number":94,"context_line":"        for dev in devices_list:"},{"line_number":95,"context_line":"            dev \u003d dev.strip()"},{"line_number":96,"context_line":"            if dev:"},{"line_number":97,"context_line":"                devices_set.add(dev)"},{"line_number":98,"context_line":"        mapping[physnet_or_function] \u003d devices_set"},{"line_number":99,"context_line":"    return mapping"}],"source_content_type":"text/x-python","patch_set":8,"id":"28322aac_706da623","line":98,"range":{"start_line":92,"start_character":0,"end_line":98,"end_character":50},"in_reply_to":"d5f829e5_a4b93686","updated":"2021-02-03 11:04:30.000000000","message":"Done","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"}],"cyborg/accelerator/drivers/fpga/intel/driver.py":[{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"0ef9a07d3ec7a4c5df6e8724c7a928e981a59db9","unresolved":true,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"class IntelFPGADriver(FPGADriver):"},{"line_number":47,"context_line":"    \"\"\"Base class for FPGA drivers."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"       This is just a virtual FPGA drivers interface."},{"line_number":50,"context_line":"       Vendor should implement their specific drivers."},{"line_number":51,"context_line":"    \"\"\""},{"line_number":52,"context_line":"    VENDOR \u003d \"intel\""},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"adda11b4_be99d808","line":50,"range":{"start_line":47,"start_character":0,"end_line":50,"end_character":54},"updated":"2021-02-03 10:07:12.000000000","message":"nit: you can aslo modify this like nic driver.","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"82b2ec667d1899597e9f18a1d8c51107cb7952da","unresolved":true,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"class IntelFPGADriver(FPGADriver):"},{"line_number":47,"context_line":"    \"\"\"Base class for FPGA drivers."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"       This is just a virtual FPGA drivers interface."},{"line_number":50,"context_line":"       Vendor should implement their specific drivers."},{"line_number":51,"context_line":"    \"\"\""},{"line_number":52,"context_line":"    VENDOR \u003d \"intel\""},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"db75eb34_9273ce0d","line":50,"range":{"start_line":47,"start_character":0,"end_line":50,"end_character":54},"in_reply_to":"adda11b4_be99d808","updated":"2021-02-03 11:04:30.000000000","message":"I will improve this for all driver in a separate patch, as well as the generate_attribute part.","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"}],"cyborg/accelerator/drivers/nic/intel/driver.py":[{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"41b962d4fa50cd0bd979431ca07d9f181d43fbdc","unresolved":true,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class IntelNICDriver(NICDriver):"},{"line_number":25,"context_line":"    \"\"\"Base class for NIC drivers."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"       This is just a virtual NIC drivers interface."},{"line_number":28,"context_line":"       Vendor should implement their specific drivers."},{"line_number":29,"context_line":"    \"\"\""},{"line_number":30,"context_line":"    VENDOR \u003d \"intel\""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7b6afc91_d2b4a7b1","line":28,"range":{"start_line":25,"start_character":0,"end_line":28,"end_character":54},"updated":"2021-01-26 01:41:00.000000000","message":"nit","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c051baf7c456914070488b39a7fc18ca83477fa3","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class IntelNICDriver(NICDriver):"},{"line_number":25,"context_line":"    \"\"\"Base class for NIC drivers."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"       This is just a virtual NIC drivers interface."},{"line_number":28,"context_line":"       Vendor should implement their specific drivers."},{"line_number":29,"context_line":"    \"\"\""},{"line_number":30,"context_line":"    VENDOR \u003d \"intel\""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"d875f136_670c2c5b","line":28,"range":{"start_line":25,"start_character":0,"end_line":28,"end_character":54},"in_reply_to":"02ed53bb_18a76870","updated":"2021-02-01 10:10:50.000000000","message":"Not really done. this is not base class.","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"646bc4a1dffb3521b86d831606ef43792a32a1b9","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class IntelNICDriver(NICDriver):"},{"line_number":25,"context_line":"    \"\"\"Base class for NIC drivers."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"       This is just a virtual NIC drivers interface."},{"line_number":28,"context_line":"       Vendor should implement their specific drivers."},{"line_number":29,"context_line":"    \"\"\""},{"line_number":30,"context_line":"    VENDOR \u003d \"intel\""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"02ed53bb_18a76870","line":28,"range":{"start_line":25,"start_character":0,"end_line":28,"end_character":54},"in_reply_to":"7b6afc91_d2b4a7b1","updated":"2021-01-26 08:40:26.000000000","message":"Done","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"668f7247c93d9c27b6bbf8e8df498ed357124914","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class IntelNICDriver(NICDriver):"},{"line_number":25,"context_line":"    \"\"\"Base class for NIC drivers."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"       This is just a virtual NIC drivers interface."},{"line_number":28,"context_line":"       Vendor should implement their specific drivers."},{"line_number":29,"context_line":"    \"\"\""},{"line_number":30,"context_line":"    VENDOR \u003d \"intel\""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"2dd0e1e4_60897332","line":28,"range":{"start_line":25,"start_character":0,"end_line":28,"end_character":54},"in_reply_to":"d875f136_670c2c5b","updated":"2021-02-02 05:42:37.000000000","message":"Done","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"}],"cyborg/accelerator/drivers/nic/intel/nic.conf":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"04902fabc7ba37cbd2be876975092c710899c240","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3287381b_af90df2c","updated":"2020-12-31 03:22:52.000000000","message":"Is this a fixed configuration？","commit_id":"cd68665dc3fa28ae3250bbadcb612dd11112b4ea"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"de9d98e7e343c5b56928a4e57035b916d178b789","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"685b413a_13216c20","in_reply_to":"3287381b_af90df2c","updated":"2021-01-05 12:53:21.000000000","message":"yes, it is configured by admin.","commit_id":"cd68665dc3fa28ae3250bbadcb612dd11112b4ea"}],"cyborg/accelerator/drivers/nic/intel/sysinfo.py":[{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"042c13b6a5ba276e2fafb923f1044baf6fb696e7","unresolved":true,"context_lines":[{"line_number":45,"context_line":"    physnet \u003d None"},{"line_number":46,"context_line":"    config \u003d configparser.ConfigParser()"},{"line_number":47,"context_line":"    config.read(os.path.dirname(__file__) + \"/nic.conf\")"},{"line_number":48,"context_line":"    pf_bdf \u003d config[\"x710-static\"].get(\"pci_address\", None)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    if pci_info[\"PCI_SLOT_NAME\"] \u003d\u003d pf_bdf or \\"},{"line_number":51,"context_line":"        (pf_nic and pf_nic[\"device\"] \u003d\u003d pf_bdf):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1bef2569_6a7a566b","line":48,"range":{"start_line":48,"start_character":54,"end_line":48,"end_character":58},"updated":"2020-12-04 03:36:24.000000000","message":"default is None","commit_id":"cd68665dc3fa28ae3250bbadcb612dd11112b4ea"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"042c13b6a5ba276e2fafb923f1044baf6fb696e7","unresolved":true,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    if pci_info[\"PCI_SLOT_NAME\"] \u003d\u003d pf_bdf or \\"},{"line_number":51,"context_line":"        (pf_nic and pf_nic[\"device\"] \u003d\u003d pf_bdf):"},{"line_number":52,"context_line":"        func_name \u003d config[\"x710-static\"].get(\"function_name\", None)"},{"line_number":53,"context_line":"        physnet \u003d config[\"x710-static\"].get(\"physnet\", None)"},{"line_number":54,"context_line":"        if func_name:"},{"line_number":55,"context_line":"            traits.append(\"CUSTOM_\" + func_name.upper())"}],"source_content_type":"text/x-python","patch_set":1,"id":"248033df_e999096c","line":52,"range":{"start_line":52,"start_character":63,"end_line":52,"end_character":67},"updated":"2020-12-04 03:36:24.000000000","message":"ditto","commit_id":"cd68665dc3fa28ae3250bbadcb612dd11112b4ea"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"042c13b6a5ba276e2fafb923f1044baf6fb696e7","unresolved":true,"context_lines":[{"line_number":50,"context_line":"    if pci_info[\"PCI_SLOT_NAME\"] \u003d\u003d pf_bdf or \\"},{"line_number":51,"context_line":"        (pf_nic and pf_nic[\"device\"] \u003d\u003d pf_bdf):"},{"line_number":52,"context_line":"        func_name \u003d config[\"x710-static\"].get(\"function_name\", None)"},{"line_number":53,"context_line":"        physnet \u003d config[\"x710-static\"].get(\"physnet\", None)"},{"line_number":54,"context_line":"        if func_name:"},{"line_number":55,"context_line":"            traits.append(\"CUSTOM_\" + func_name.upper())"},{"line_number":56,"context_line":"        if physnet:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1db6e837_52574a05","line":53,"range":{"start_line":53,"start_character":55,"end_line":53,"end_character":59},"updated":"2020-12-04 03:36:24.000000000","message":"ditto","commit_id":"cd68665dc3fa28ae3250bbadcb612dd11112b4ea"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"042c13b6a5ba276e2fafb923f1044baf6fb696e7","unresolved":true,"context_lines":[{"line_number":144,"context_line":"    driver_device_obj.vendor_board_info \u003d nic.get("},{"line_number":145,"context_line":"        \"vendor_board_info\","},{"line_number":146,"context_line":"        \"miss_vb_info\")"},{"line_number":147,"context_line":"    std_board_info \u003d {\"product_id\": nic.get(\"product_id\", None)}"},{"line_number":148,"context_line":"    driver_device_obj.std_board_info \u003d jsonutils.dumps(std_board_info)"},{"line_number":149,"context_line":"    driver_device_obj.type \u003d nic[\"type\"]"},{"line_number":150,"context_line":"    driver_device_obj.controlpath_id \u003d _generate_controlpath_id(nic)"}],"source_content_type":"text/x-python","patch_set":1,"id":"89474512_ec2ad533","line":147,"range":{"start_line":147,"start_character":58,"end_line":147,"end_character":62},"updated":"2020-12-04 03:36:24.000000000","message":"ditto","commit_id":"cd68665dc3fa28ae3250bbadcb612dd11112b4ea"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"042c13b6a5ba276e2fafb923f1044baf6fb696e7","unresolved":true,"context_lines":[{"line_number":201,"context_line":"        if k \u003d\u003d \"rc\":"},{"line_number":202,"context_line":"            driver_attr \u003d driver_attribute.DriverAttribute()"},{"line_number":203,"context_line":"            driver_attr.key \u003d k"},{"line_number":204,"context_line":"            driver_attr.value \u003d nic.get(k, None)"},{"line_number":205,"context_line":"            attr_list.append(driver_attr)"},{"line_number":206,"context_line":"        if k \u003d\u003d \"traits\":"},{"line_number":207,"context_line":"            values \u003d nic.get(k, [])"}],"source_content_type":"text/x-python","patch_set":1,"id":"62da9774_cfb4b60a","line":204,"range":{"start_line":204,"start_character":43,"end_line":204,"end_character":47},"updated":"2020-12-04 03:36:24.000000000","message":"ditto","commit_id":"cd68665dc3fa28ae3250bbadcb612dd11112b4ea"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"1dc4e5586dccb76f8b8c55680a1aa789baf383d1","unresolved":true,"context_lines":[{"line_number":31,"context_line":"from cyborg.objects.driver_objects import driver_deployable"},{"line_number":32,"context_line":"from cyborg.objects.driver_objects import driver_device"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"from oslo_log import log as logging"},{"line_number":35,"context_line":"from oslo_serialization import jsonutils"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fe5e201f_7c613eb5","line":35,"range":{"start_line":34,"start_character":0,"end_line":35,"end_character":40},"updated":"2021-01-18 01:09:17.000000000","message":"Pls move these to Line 24, and need to add a blank line on/under them.","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"be82b5cb70fb64c911d7d1a35beb1a4f402fa5e7","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from cyborg.objects.driver_objects import driver_deployable"},{"line_number":32,"context_line":"from cyborg.objects.driver_objects import driver_device"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"from oslo_log import log as logging"},{"line_number":35,"context_line":"from oslo_serialization import jsonutils"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"b8c0da4c_75814377","line":35,"range":{"start_line":34,"start_character":0,"end_line":35,"end_character":40},"in_reply_to":"fe5e201f_7c613eb5","updated":"2021-01-25 07:26:44.000000000","message":"Done","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"41b962d4fa50cd0bd979431ca07d9f181d43fbdc","unresolved":true,"context_lines":[{"line_number":75,"context_line":"            break"},{"line_number":76,"context_line":"    for key, devices in function_device_mappings.items():"},{"line_number":77,"context_line":"        if pf_ifname in devices:"},{"line_number":78,"context_line":"            func_name \u003d key"},{"line_number":79,"context_line":"            break"},{"line_number":80,"context_line":"    if func_name:"},{"line_number":81,"context_line":"        traits.append(\"CUSTOM_\" + func_name.upper())"}],"source_content_type":"text/x-python","patch_set":6,"id":"29a364dd_8ebab09a","line":78,"range":{"start_line":78,"start_character":12,"end_line":78,"end_character":27},"updated":"2021-01-26 01:41:00.000000000","message":"you also need define func_name above.","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"646bc4a1dffb3521b86d831606ef43792a32a1b9","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            break"},{"line_number":76,"context_line":"    for key, devices in function_device_mappings.items():"},{"line_number":77,"context_line":"        if pf_ifname in devices:"},{"line_number":78,"context_line":"            func_name \u003d key"},{"line_number":79,"context_line":"            break"},{"line_number":80,"context_line":"    if func_name:"},{"line_number":81,"context_line":"        traits.append(\"CUSTOM_\" + func_name.upper())"}],"source_content_type":"text/x-python","patch_set":6,"id":"3848164c_2dcaa945","line":78,"range":{"start_line":78,"start_character":12,"end_line":78,"end_character":27},"in_reply_to":"29a364dd_8ebab09a","updated":"2021-01-26 08:40:26.000000000","message":"Done","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"41b962d4fa50cd0bd979431ca07d9f181d43fbdc","unresolved":true,"context_lines":[{"line_number":237,"context_line":"            attr_list.append(driver_attr)"},{"line_number":238,"context_line":"        if k \u003d\u003d \"traits\":"},{"line_number":239,"context_line":"            values \u003d nic.get(k, [])"},{"line_number":240,"context_line":"            for val in values:"},{"line_number":241,"context_line":"                driver_attr \u003d driver_attribute.DriverAttribute()"},{"line_number":242,"context_line":"                driver_attr.key \u003d \"trait\" + str(index)"},{"line_number":243,"context_line":"                index \u003d index + 1"}],"source_content_type":"text/x-python","patch_set":6,"id":"e0858395_94425e98","line":240,"range":{"start_line":240,"start_character":12,"end_line":240,"end_character":29},"updated":"2021-01-26 01:41:00.000000000","message":"use `for index, val in enumerate(values)` and we can remove index var.","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"668f7247c93d9c27b6bbf8e8df498ed357124914","unresolved":true,"context_lines":[{"line_number":237,"context_line":"            attr_list.append(driver_attr)"},{"line_number":238,"context_line":"        if k \u003d\u003d \"traits\":"},{"line_number":239,"context_line":"            values \u003d nic.get(k, [])"},{"line_number":240,"context_line":"            for val in values:"},{"line_number":241,"context_line":"                driver_attr \u003d driver_attribute.DriverAttribute()"},{"line_number":242,"context_line":"                driver_attr.key \u003d \"trait\" + str(index)"},{"line_number":243,"context_line":"                index \u003d index + 1"}],"source_content_type":"text/x-python","patch_set":6,"id":"7d6c0b7b_6a1a18b9","line":240,"range":{"start_line":240,"start_character":12,"end_line":240,"end_character":29},"in_reply_to":"97f7e495_11d6abb6","updated":"2021-02-02 05:42:37.000000000","message":"ok, got your point. we should also motify other drivers with a seperate patch.","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"646bc4a1dffb3521b86d831606ef43792a32a1b9","unresolved":true,"context_lines":[{"line_number":237,"context_line":"            attr_list.append(driver_attr)"},{"line_number":238,"context_line":"        if k \u003d\u003d \"traits\":"},{"line_number":239,"context_line":"            values \u003d nic.get(k, [])"},{"line_number":240,"context_line":"            for val in values:"},{"line_number":241,"context_line":"                driver_attr \u003d driver_attribute.DriverAttribute()"},{"line_number":242,"context_line":"                driver_attr.key \u003d \"trait\" + str(index)"},{"line_number":243,"context_line":"                index \u003d index + 1"}],"source_content_type":"text/x-python","patch_set":6,"id":"f3387da7_18ef3b10","line":240,"range":{"start_line":240,"start_character":12,"end_line":240,"end_character":29},"in_reply_to":"e0858395_94425e98","updated":"2021-01-26 08:40:26.000000000","message":"I dont think it make sence. values is a list and we can traverse it simply by for loop.","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c051baf7c456914070488b39a7fc18ca83477fa3","unresolved":true,"context_lines":[{"line_number":237,"context_line":"            attr_list.append(driver_attr)"},{"line_number":238,"context_line":"        if k \u003d\u003d \"traits\":"},{"line_number":239,"context_line":"            values \u003d nic.get(k, [])"},{"line_number":240,"context_line":"            for val in values:"},{"line_number":241,"context_line":"                driver_attr \u003d driver_attribute.DriverAttribute()"},{"line_number":242,"context_line":"                driver_attr.key \u003d \"trait\" + str(index)"},{"line_number":243,"context_line":"                index \u003d index + 1"}],"source_content_type":"text/x-python","patch_set":6,"id":"97f7e495_11d6abb6","line":240,"range":{"start_line":240,"start_character":12,"end_line":240,"end_character":29},"in_reply_to":"f3387da7_18ef3b10","updated":"2021-02-01 10:10:50.000000000","message":"enumerate is concise. we needn\u0027t define index and increment it.","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c051baf7c456914070488b39a7fc18ca83477fa3","unresolved":true,"context_lines":[{"line_number":48,"context_line":"def _parse_config():"},{"line_number":49,"context_line":"    # parse nic config."},{"line_number":50,"context_line":"    cyborg.conf.devices.register_dynamic_opts(CONF)"},{"line_number":51,"context_line":"    if getattr(CONF, \u0027x710_static\u0027, None):"},{"line_number":52,"context_line":"        pdm \u003d utils.parse_mappings(CONF.x710_static.physical_device_mappings)"},{"line_number":53,"context_line":"        fdm \u003d utils.parse_mappings(CONF.x710_static.function_device_mappings)"},{"line_number":54,"context_line":"        return pdm, fdm"},{"line_number":55,"context_line":"    return None, None"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def get_physical_network_and_traits(pci_info, physnet_device_mappings,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9af21f3f_c6732865","line":55,"range":{"start_line":51,"start_character":0,"end_line":55,"end_character":21},"updated":"2021-02-01 10:10:50.000000000","message":"how about use try...except...?","commit_id":"485e603eb29b49b5c8adea0b85ce9f5fd9d019d4"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"668f7247c93d9c27b6bbf8e8df498ed357124914","unresolved":false,"context_lines":[{"line_number":48,"context_line":"def _parse_config():"},{"line_number":49,"context_line":"    # parse nic config."},{"line_number":50,"context_line":"    cyborg.conf.devices.register_dynamic_opts(CONF)"},{"line_number":51,"context_line":"    if getattr(CONF, \u0027x710_static\u0027, None):"},{"line_number":52,"context_line":"        pdm \u003d utils.parse_mappings(CONF.x710_static.physical_device_mappings)"},{"line_number":53,"context_line":"        fdm \u003d utils.parse_mappings(CONF.x710_static.function_device_mappings)"},{"line_number":54,"context_line":"        return pdm, fdm"},{"line_number":55,"context_line":"    return None, None"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def get_physical_network_and_traits(pci_info, physnet_device_mappings,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3246dbcb_2b401394","line":55,"range":{"start_line":51,"start_character":0,"end_line":55,"end_character":21},"in_reply_to":"9af21f3f_c6732865","updated":"2021-02-02 05:42:37.000000000","message":"Done","commit_id":"485e603eb29b49b5c8adea0b85ce9f5fd9d019d4"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"0ef9a07d3ec7a4c5df6e8724c7a928e981a59db9","unresolved":true,"context_lines":[{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"PCI_DEVICES_PATH_PATTERN \u003d \"/sys/bus/pci/devices/*\""},{"line_number":41,"context_line":"KNOWN_NICS \u003d [(\"0x8086\", \"0x158b\"), (\"0x8086\", \"0x1572\")]"},{"line_number":42,"context_line":"DRIVER_NAME \u003d \"intel\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"VF \u003d \"virtfn*\""}],"source_content_type":"text/x-python","patch_set":8,"id":"aae6e0c1_60f9b032","line":41,"range":{"start_line":41,"start_character":0,"end_line":41,"end_character":57},"updated":"2021-02-03 10:07:12.000000000","message":"this means we have other nic type card? and which one is 710 card?","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"82b2ec667d1899597e9f18a1d8c51107cb7952da","unresolved":true,"context_lines":[{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"PCI_DEVICES_PATH_PATTERN \u003d \"/sys/bus/pci/devices/*\""},{"line_number":41,"context_line":"KNOWN_NICS \u003d [(\"0x8086\", \"0x158b\"), (\"0x8086\", \"0x1572\")]"},{"line_number":42,"context_line":"DRIVER_NAME \u003d \"intel\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"VF \u003d \"virtfn*\""}],"source_content_type":"text/x-python","patch_set":8,"id":"8b41a96a_509ccb09","line":41,"range":{"start_line":41,"start_character":0,"end_line":41,"end_character":57},"in_reply_to":"aae6e0c1_60f9b032","updated":"2021-02-03 11:04:30.000000000","message":"both are 710 series. we have test the both","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"0ef9a07d3ec7a4c5df6e8724c7a928e981a59db9","unresolved":true,"context_lines":[{"line_number":71,"context_line":"        pf_addr \u003d pci_info[\"PCI_SLOT_NAME\"]"},{"line_number":72,"context_line":"        traits.append(\"CUSTOM_PF\")"},{"line_number":73,"context_line":"    if not pf_addr:"},{"line_number":74,"context_line":"        LOG.error(\"Incorrect report date received. Missing PF info.\")"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    pf_ifname \u003d utils.get_ifname_by_pci_address(pf_addr)"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"6ac54359_91514e8b","line":74,"range":{"start_line":74,"start_character":36,"end_line":74,"end_character":41},"updated":"2021-02-03 10:07:12.000000000","message":"nit: data","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"82b2ec667d1899597e9f18a1d8c51107cb7952da","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        pf_addr \u003d pci_info[\"PCI_SLOT_NAME\"]"},{"line_number":72,"context_line":"        traits.append(\"CUSTOM_PF\")"},{"line_number":73,"context_line":"    if not pf_addr:"},{"line_number":74,"context_line":"        LOG.error(\"Incorrect report date received. Missing PF info.\")"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    pf_ifname \u003d utils.get_ifname_by_pci_address(pf_addr)"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"36e43c6f_755ccbba","line":74,"range":{"start_line":74,"start_character":36,"end_line":74,"end_character":41},"in_reply_to":"6ac54359_91514e8b","updated":"2021-02-03 11:04:30.000000000","message":"Done","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"0ef9a07d3ec7a4c5df6e8724c7a928e981a59db9","unresolved":true,"context_lines":[{"line_number":135,"context_line":"        \"rc\": \"CUSTOM_NIC\","},{"line_number":136,"context_line":"        \"stub\": False,"},{"line_number":137,"context_line":"        }"},{"line_number":138,"context_line":"    # TODO(Xinran): need check device id and call get_traits differently."},{"line_number":139,"context_line":"    updates \u003d get_physical_network_and_traits(pci_info,"},{"line_number":140,"context_line":"                                              physnet_device_mappings,"},{"line_number":141,"context_line":"                                              function_device_mappings,"}],"source_content_type":"text/x-python","patch_set":8,"id":"73087386_f028716b","line":138,"range":{"start_line":138,"start_character":31,"end_line":138,"end_character":40},"updated":"2021-02-03 10:07:12.000000000","message":"nit: the divice id is pci_info[\"PCI_SLOT_NAME\"] and how differently?","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"82b2ec667d1899597e9f18a1d8c51107cb7952da","unresolved":true,"context_lines":[{"line_number":135,"context_line":"        \"rc\": \"CUSTOM_NIC\","},{"line_number":136,"context_line":"        \"stub\": False,"},{"line_number":137,"context_line":"        }"},{"line_number":138,"context_line":"    # TODO(Xinran): need check device id and call get_traits differently."},{"line_number":139,"context_line":"    updates \u003d get_physical_network_and_traits(pci_info,"},{"line_number":140,"context_line":"                                              physnet_device_mappings,"},{"line_number":141,"context_line":"                                              function_device_mappings,"}],"source_content_type":"text/x-python","patch_set":8,"id":"a878b35c_46be2ec3","line":138,"range":{"start_line":138,"start_character":31,"end_line":138,"end_character":40},"in_reply_to":"73087386_f028716b","updated":"2021-02-03 11:04:30.000000000","message":"I mean, in the future, we may have diffirent configuration for diffirent device, it should have a if...else or case loop to invoke diffirent function to parse config file. now, we just support one type of configuration, and we can call get_physical_network_and_traits() directly.","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"0ef9a07d3ec7a4c5df6e8724c7a928e981a59db9","unresolved":true,"context_lines":[{"line_number":172,"context_line":"                vf_nic \u003d nic_gen(vf, physnet_device_mappings,"},{"line_number":173,"context_line":"                                 function_device_mappings, nic)"},{"line_number":174,"context_line":"                vfs.append(vf_nic)"},{"line_number":175,"context_line":"                nic[\"vfs\"] \u003d vfs"},{"line_number":176,"context_line":"        nics.append(_generate_driver_device(nic))"},{"line_number":177,"context_line":"    return nics"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"db393e4c_bf97f129","line":175,"range":{"start_line":175,"start_character":16,"end_line":175,"end_character":32},"updated":"2021-02-03 10:07:12.000000000","message":"i think this should put out of for loop.","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"82b2ec667d1899597e9f18a1d8c51107cb7952da","unresolved":true,"context_lines":[{"line_number":172,"context_line":"                vf_nic \u003d nic_gen(vf, physnet_device_mappings,"},{"line_number":173,"context_line":"                                 function_device_mappings, nic)"},{"line_number":174,"context_line":"                vfs.append(vf_nic)"},{"line_number":175,"context_line":"                nic[\"vfs\"] \u003d vfs"},{"line_number":176,"context_line":"        nics.append(_generate_driver_device(nic))"},{"line_number":177,"context_line":"    return nics"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9d96a5fe_39a2e0a4","line":175,"range":{"start_line":175,"start_character":16,"end_line":175,"end_character":32},"in_reply_to":"db393e4c_bf97f129","updated":"2021-02-03 11:04:30.000000000","message":"good catch","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"}],"cyborg/common/constants.py":[{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"66e494a5790dfdb7d4de1dc6bee53c148f1084cc","unresolved":true,"context_lines":[{"line_number":20,"context_line":"DEVICE_FPGA \u003d \u0027FPGA\u0027"},{"line_number":21,"context_line":"DEVICE_AICHIP \u003d \u0027AICHIP\u0027"},{"line_number":22,"context_line":"DEVICE_QAT \u003d \u0027QAT\u0027"},{"line_number":23,"context_line":"DEVICE_NIC \u003d \u0027NIC\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"ARQ_STATES \u003d (ARQ_INITIAL, ARQ_BIND_STARTED, ARQ_BOUND, ARQ_UNBOUND,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9e3d9c92_abb03c9c","line":23,"range":{"start_line":23,"start_character":14,"end_line":23,"end_character":17},"updated":"2021-01-16 03:20:55.000000000","message":"should we rename it smartnic?","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"}],"cyborg/common/exception.py":[{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"d1a519bedfc8a8369d605912aa34328ef0711a52","unresolved":true,"context_lines":[{"line_number":417,"context_line":"    _msg_fmt \u003d _(\"FPGA programming failed with return %(ret)s.\")"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"class PciDeviceNotFoundById(NotFound):"},{"line_number":421,"context_line":"    _msg_fmt \u003d _(\"PCI device %(id)s not found\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"0fa3ae24_668664cb","line":420,"range":{"start_line":420,"start_character":6,"end_line":420,"end_character":27},"updated":"2021-02-03 09:07:34.000000000","message":"PCI maybe better. But Also Ok Pci.","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"}],"cyborg/conf/devices.py":[{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"66e494a5790dfdb7d4de1dc6bee53c148f1084cc","unresolved":true,"context_lines":[{"line_number":15,"context_line":"from oslo_config import cfg"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"nic_group \u003d cfg.OptGroup("},{"line_number":19,"context_line":"    name\u003d\u0027nic_devices\u0027,"},{"line_number":20,"context_line":"    title\u003d\u0027nic device ID options\u0027,"},{"line_number":21,"context_line":"    help\u003d\"\"\"This is used to config specific nic devices."},{"line_number":22,"context_line":"    \"\"\")"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"nic_opts \u003d ["},{"line_number":25,"context_line":"    cfg.ListOpt(\u0027enabled_nic_types\u0027,"},{"line_number":26,"context_line":"                default\u003d[],"},{"line_number":27,"context_line":"                help\u003d\" \")"},{"line_number":28,"context_line":"]"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def register_opts(conf):"},{"line_number":32,"context_line":"    conf.register_group(nic_group)"},{"line_number":33,"context_line":"    conf.register_opts(nic_opts, group\u003dnic_group)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def register_dynamic_opts(conf):"},{"line_number":37,"context_line":"    \"\"\"Register dynamically-generated options and groups."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    This must be called by the service that wishes to use the options **after**"},{"line_number":40,"context_line":"    the initial configuration has been loaded."},{"line_number":41,"context_line":"    \"\"\""},{"line_number":42,"context_line":"    opts \u003d ["},{"line_number":43,"context_line":"        cfg.ListOpt(\u0027physical_device_mappings\u0027, default\u003d[],"},{"line_number":44,"context_line":"                    item_type\u003dcfg.types.String()),"},{"line_number":45,"context_line":"        cfg.ListOpt(\u0027function_device_mappings\u0027, default\u003d[],"},{"line_number":46,"context_line":"                    item_type\u003dcfg.types.String()),"},{"line_number":47,"context_line":"    ]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    # Register the \u0027[vgpu_$(VGPU_TYPE)]/device_addresses\u0027 opts, implicitly"},{"line_number":50,"context_line":"    # registering the \u0027[vgpu_$(VGPU_TYPE)]\u0027 groups in the process"},{"line_number":51,"context_line":"    for nic_type in conf.nic_devices.enabled_nic_types:"},{"line_number":52,"context_line":"        conf.register_opts(opts, group\u003dnic_type)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"def list_opts():"},{"line_number":56,"context_line":"    return {nic_group: nic_opts}"}],"source_content_type":"text/x-python","patch_set":5,"id":"562e410f_2e9a1c12","line":56,"range":{"start_line":18,"start_character":0,"end_line":56,"end_character":32},"updated":"2021-01-16 03:20:55.000000000","message":"If Yumeng\u0027s patch merged first, This patch can follow up.\nhttps://review.opendev.org/c/openstack/cyborg/+/764450","commit_id":"d1ab2695069e001cfb9a6fc568771359fa0097c6"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"41b962d4fa50cd0bd979431ca07d9f181d43fbdc","unresolved":true,"context_lines":[{"line_number":45,"context_line":"        cfg.ListOpt(\u0027function_device_mappings\u0027, default\u003d[],"},{"line_number":46,"context_line":"                    item_type\u003dcfg.types.String()),"},{"line_number":47,"context_line":"    ]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    # Register the \u0027[vgpu_$(VGPU_TYPE)]/device_addresses\u0027 opts, implicitly"},{"line_number":50,"context_line":"    # registering the \u0027[vgpu_$(VGPU_TYPE)]\u0027 groups in the process"},{"line_number":51,"context_line":"    for nic_type in conf.nic_devices.enabled_nic_types:"},{"line_number":52,"context_line":"        conf.register_opts(opts, group\u003dnic_type)"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"23b15bd5_7b738f0d","line":50,"range":{"start_line":48,"start_character":0,"end_line":50,"end_character":65},"updated":"2021-01-26 01:41:00.000000000","message":"nit","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"646bc4a1dffb3521b86d831606ef43792a32a1b9","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        cfg.ListOpt(\u0027function_device_mappings\u0027, default\u003d[],"},{"line_number":46,"context_line":"                    item_type\u003dcfg.types.String()),"},{"line_number":47,"context_line":"    ]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    # Register the \u0027[vgpu_$(VGPU_TYPE)]/device_addresses\u0027 opts, implicitly"},{"line_number":50,"context_line":"    # registering the \u0027[vgpu_$(VGPU_TYPE)]\u0027 groups in the process"},{"line_number":51,"context_line":"    for nic_type in conf.nic_devices.enabled_nic_types:"},{"line_number":52,"context_line":"        conf.register_opts(opts, group\u003dnic_type)"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"faf8b8d4_3bfbb645","line":50,"range":{"start_line":48,"start_character":0,"end_line":50,"end_character":65},"in_reply_to":"23b15bd5_7b738f0d","updated":"2021-01-26 08:40:26.000000000","message":"Done","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"668f7247c93d9c27b6bbf8e8df498ed357124914","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        cfg.ListOpt(\u0027function_device_mappings\u0027, default\u003d[],"},{"line_number":46,"context_line":"                    item_type\u003dcfg.types.String()),"},{"line_number":47,"context_line":"    ]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    # Register the \u0027[vgpu_$(VGPU_TYPE)]/device_addresses\u0027 opts, implicitly"},{"line_number":50,"context_line":"    # registering the \u0027[vgpu_$(VGPU_TYPE)]\u0027 groups in the process"},{"line_number":51,"context_line":"    for nic_type in conf.nic_devices.enabled_nic_types:"},{"line_number":52,"context_line":"        conf.register_opts(opts, group\u003dnic_type)"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"a0d04a28_1fd3a125","line":50,"range":{"start_line":48,"start_character":0,"end_line":50,"end_character":65},"in_reply_to":"4e464ba8_8964c1ba","updated":"2021-02-02 05:42:37.000000000","message":"we have only one nic-type for one deivce. \nbut we can make mulitple devices have the same type. please check the config sample. it has function_device_mappings \u003d GTPv1:eth3;eth2, where eth2, eth3 are 2 diffirent pf, but has same nic-type x710_static","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c051baf7c456914070488b39a7fc18ca83477fa3","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        cfg.ListOpt(\u0027function_device_mappings\u0027, default\u003d[],"},{"line_number":46,"context_line":"                    item_type\u003dcfg.types.String()),"},{"line_number":47,"context_line":"    ]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    # Register the \u0027[vgpu_$(VGPU_TYPE)]/device_addresses\u0027 opts, implicitly"},{"line_number":50,"context_line":"    # registering the \u0027[vgpu_$(VGPU_TYPE)]\u0027 groups in the process"},{"line_number":51,"context_line":"    for nic_type in conf.nic_devices.enabled_nic_types:"},{"line_number":52,"context_line":"        conf.register_opts(opts, group\u003dnic_type)"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"4e464ba8_8964c1ba","line":50,"range":{"start_line":48,"start_character":0,"end_line":50,"end_character":65},"in_reply_to":"faf8b8d4_3bfbb645","updated":"2021-02-01 10:10:50.000000000","message":"what if we have more than one nic_type card? can we config two same type cards with different pci addresses?","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"}],"cyborg/tests/unit/accelerator/drivers/fpga/intel/prepare_test_data.py":[{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"0ef9a07d3ec7a4c5df6e8724c7a928e981a59db9","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/python"},{"line_number":2,"context_line":"# Copyright 2021 Intel, Inc."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":8,"id":"3456df03_a0cb1b3a","line":2,"range":{"start_line":2,"start_character":12,"end_line":2,"end_character":17},"updated":"2021-02-03 10:07:12.000000000","message":"opps, you changed the wrong file","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"82b2ec667d1899597e9f18a1d8c51107cb7952da","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/python"},{"line_number":2,"context_line":"# Copyright 2021 Intel, Inc."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":8,"id":"252a4bc3_67f1cff9","line":2,"range":{"start_line":2,"start_character":12,"end_line":2,"end_character":17},"in_reply_to":"3456df03_a0cb1b3a","updated":"2021-02-03 11:04:30.000000000","message":"Emmm, yeah...","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"}],"cyborg/tests/unit/accelerator/drivers/nic/intel/prepare_test_data.py":[{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"c051baf7c456914070488b39a7fc18ca83477fa3","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/python"},{"line_number":2,"context_line":"# Copyright 2018 Intel, Inc."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":7,"id":"51ee05df_18e7553b","line":2,"range":{"start_line":2,"start_character":12,"end_line":2,"end_character":17},"updated":"2021-02-01 10:10:50.000000000","message":"2021","commit_id":"485e603eb29b49b5c8adea0b85ce9f5fd9d019d4"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"0ef9a07d3ec7a4c5df6e8724c7a928e981a59db9","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/python"},{"line_number":2,"context_line":"# Copyright 2018 Intel, Inc."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":8,"id":"b1dc1a89_8204d37b","line":2,"range":{"start_line":2,"start_character":12,"end_line":2,"end_character":17},"updated":"2021-02-03 10:07:12.000000000","message":"2021","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"82b2ec667d1899597e9f18a1d8c51107cb7952da","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/python"},{"line_number":2,"context_line":"# Copyright 2018 Intel, Inc."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":8,"id":"5bf1c2c4_1ac6b0f4","line":2,"range":{"start_line":2,"start_character":12,"end_line":2,"end_character":17},"in_reply_to":"b1dc1a89_8204d37b","updated":"2021-02-03 11:04:30.000000000","message":"Done","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"d1a519bedfc8a8369d605912aa34328ef0711a52","unresolved":true,"context_lines":[{"line_number":249,"context_line":"def main():"},{"line_number":250,"context_line":"    create_fake_sysfs()"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"if __name__ \u003d\u003d \"__main__\":"},{"line_number":254,"context_line":"    parser \u003d argparse.ArgumentParser("},{"line_number":255,"context_line":"        description\u003d\"Generate a fake sysfs for intel NIC.\")"},{"line_number":256,"context_line":"    group \u003d parser.add_mutually_exclusive_group()"},{"line_number":257,"context_line":"    group.add_argument(\"-v\", \"--verbose\", action\u003d\"store_true\")"},{"line_number":258,"context_line":"    group.add_argument(\"-q\", \"--quiet\", action\u003d\"store_true\")"},{"line_number":259,"context_line":"    parser.add_argument(\"-p\", \"--prefix\", type\u003dstr,"},{"line_number":260,"context_line":"                        default\u003d\"/tmp\", dest\u003d\"p\","},{"line_number":261,"context_line":"                        help\u003d\u0027Set the prefix path of the fake sysfs. \u0027"},{"line_number":262,"context_line":"                        \u0027default \"/tmp\"\u0027)"},{"line_number":263,"context_line":"    args \u003d parser.parse_args()"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    create_fake_sysfs(args.p)"}],"source_content_type":"text/x-python","patch_set":8,"id":"a2fd61f2_e8cfeb53","line":265,"range":{"start_line":252,"start_character":0,"end_line":265,"end_character":29},"updated":"2021-02-03 09:07:34.000000000","message":"Hi xinran.should we need this?","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"82b2ec667d1899597e9f18a1d8c51107cb7952da","unresolved":true,"context_lines":[{"line_number":249,"context_line":"def main():"},{"line_number":250,"context_line":"    create_fake_sysfs()"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"if __name__ \u003d\u003d \"__main__\":"},{"line_number":254,"context_line":"    parser \u003d argparse.ArgumentParser("},{"line_number":255,"context_line":"        description\u003d\"Generate a fake sysfs for intel NIC.\")"},{"line_number":256,"context_line":"    group \u003d parser.add_mutually_exclusive_group()"},{"line_number":257,"context_line":"    group.add_argument(\"-v\", \"--verbose\", action\u003d\"store_true\")"},{"line_number":258,"context_line":"    group.add_argument(\"-q\", \"--quiet\", action\u003d\"store_true\")"},{"line_number":259,"context_line":"    parser.add_argument(\"-p\", \"--prefix\", type\u003dstr,"},{"line_number":260,"context_line":"                        default\u003d\"/tmp\", dest\u003d\"p\","},{"line_number":261,"context_line":"                        help\u003d\u0027Set the prefix path of the fake sysfs. \u0027"},{"line_number":262,"context_line":"                        \u0027default \"/tmp\"\u0027)"},{"line_number":263,"context_line":"    args \u003d parser.parse_args()"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    create_fake_sysfs(args.p)"}],"source_content_type":"text/x-python","patch_set":8,"id":"31cc3f9d_3590eba2","line":265,"range":{"start_line":252,"start_character":0,"end_line":265,"end_character":29},"in_reply_to":"a2fd61f2_e8cfeb53","updated":"2021-02-03 11:04:30.000000000","message":"I think we only need prefix arg.","commit_id":"914c0be301a44cf3090c31da21792bfb61f82bbf"}],"cyborg/tests/unit/accelerator/drivers/nic/intel/test_driver.py":[{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"41b962d4fa50cd0bd979431ca07d9f181d43fbdc","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ca9974b8_17f823c3","updated":"2021-01-26 01:41:00.000000000","message":"canot see test cases.","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"646bc4a1dffb3521b86d831606ef43792a32a1b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"517db0a7_dedc6c45","in_reply_to":"ca9974b8_17f823c3","updated":"2021-01-26 08:40:26.000000000","message":"Done","commit_id":"4a97355ca3a0636297294f2970e93a7279398d1b"}],"doc/source/reference/driver-table.rst":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"79a5540e5ab72c4c2e31dc5dd42587731ecde665","unresolved":true,"context_lines":[{"line_number":41,"context_line":"     - None"},{"line_number":42,"context_line":"     - The driver for Intel NIC Cards."},{"line_number":43,"context_line":"     - None"},{"line_number":44,"context_line":"     - Test results reported at Feb 2021. Please reference: `Intel NIC Driver Test Report \u003chttps://wiki.openstack.org/wiki/Cyborg/TestReport/IntelNic\u003e`_"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":".. note:: Temporary Test Report: This is a temporary test report, it is only"},{"line_number":47,"context_line":"     valid for a short time, if you encounter problems, please contact the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fcabf32_6cf6d6db","line":44,"range":{"start_line":44,"start_character":91,"end_line":44,"end_character":149},"updated":"2021-02-04 09:37:53.000000000","message":"This also need to be update with the new config.","commit_id":"e3caf5cb0a5d5fe44e2409c7712d3d911508a27b"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"5ba31bc7f809549eb2da0056f8274ed333144e66","unresolved":false,"context_lines":[{"line_number":41,"context_line":"     - None"},{"line_number":42,"context_line":"     - The driver for Intel NIC Cards."},{"line_number":43,"context_line":"     - None"},{"line_number":44,"context_line":"     - Test results reported at Feb 2021. Please reference: `Intel NIC Driver Test Report \u003chttps://wiki.openstack.org/wiki/Cyborg/TestReport/IntelNic\u003e`_"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":".. note:: Temporary Test Report: This is a temporary test report, it is only"},{"line_number":47,"context_line":"     valid for a short time, if you encounter problems, please contact the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"26902644_44e4a5d7","line":44,"range":{"start_line":44,"start_character":91,"end_line":44,"end_character":149},"in_reply_to":"3fcabf32_6cf6d6db","updated":"2021-02-04 09:44:51.000000000","message":"Done","commit_id":"e3caf5cb0a5d5fe44e2409c7712d3d911508a27b"}],"x710-driver-setup":[{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"042c13b6a5ba276e2fafb923f1044baf6fb696e7","unresolved":true,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"6. Verify"},{"line_number":18,"context_line":". ~/sriov-devstack/devstack/openrc admin admin"},{"line_number":19,"context_line":"$ openstack resource provider list"},{"line_number":20,"context_line":"+--------------------------------------+----------------------------+------------+"},{"line_number":21,"context_line":"| uuid                                 | name                       | generation |"},{"line_number":22,"context_line":"+--------------------------------------+----------------------------+------------+"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"0e7272d1_02ea3d3f","line":19,"range":{"start_line":19,"start_character":2,"end_line":19,"end_character":34},"updated":"2020-12-04 03:36:24.000000000","message":"is this means the nic card can be virtualized 5 VF, and any rp can be bound to vm?","commit_id":"cd68665dc3fa28ae3250bbadcb612dd11112b4ea"},{"author":{"_account_id":25738,"name":"Xinran WANG","email":"xin-ran.wang@intel.com","username":"Xinran"},"change_message_id":"de9d98e7e343c5b56928a4e57035b916d178b789","unresolved":true,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"6. Verify"},{"line_number":18,"context_line":". ~/sriov-devstack/devstack/openrc admin admin"},{"line_number":19,"context_line":"$ openstack resource provider list"},{"line_number":20,"context_line":"+--------------------------------------+----------------------------+------------+"},{"line_number":21,"context_line":"| uuid                                 | name                       | generation |"},{"line_number":22,"context_line":"+--------------------------------------+----------------------------+------------+"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"8cf643f3_a94447e3","line":19,"range":{"start_line":19,"start_character":2,"end_line":19,"end_character":34},"in_reply_to":"0e7272d1_02ea3d3f","updated":"2021-01-05 12:53:21.000000000","message":"It\u0027s an example. Actually, the device can be virtualized up to 16 VFs per PF. This number may changed accroding to the device ID.","commit_id":"cd68665dc3fa28ae3250bbadcb612dd11112b4ea"}]}
