)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2e43efb09bb3110ac973a8dbba99f868ab80cd7a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"SRIOV: Fix instance with macvtap port live migration failed"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"VIFMigrateData object add \u0027dest_devname\u0027 for"},{"line_number":10,"context_line":"pci device name on destination host allocated for"},{"line_number":11,"context_line":"instance attached macvtap vnic_type port."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"For the sr-iov device pci slot and device name"},{"line_number":14,"context_line":"on source compute maybe different with the destination"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f560f44_7e2a73e7","line":11,"range":{"start_line":9,"start_character":0,"end_line":11,"end_character":41},"updated":"2020-07-27 13:18:24.000000000","message":"we need this change to be backportable so we cant modify the\nobject. we should store the info in the profile instead.\n\nthe vif_profile field is used to convay info from nova to neutron and the contence of it are defined by nova unlike the vif_details which is used to pass info form neutron to nova.\nas such we can safly stash info in the profile since we know the dest_devname key is not used\n\nin a follow up patch you can then add the new filed and remove stashing it in the profile but we need two patches so that we can backport one and then use then remove the workaround and use the new field to do it cleanly going forward.","commit_id":"e318a0db6b5655e4f2d034c68b8539cfa2df0555"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c5e38798c4516da2ca18d34486a26ef9d7dd881","unresolved":false,"context_lines":[{"line_number":16,"context_line":"the VF device name allocated on destination host"},{"line_number":17,"context_line":"and source compute service generate correct"},{"line_number":18,"context_line":"target new vm xml."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I33b5559e9caa2f9d3a000925ea799b10b0c3211d"},{"line_number":21,"context_line":"Closes-Bug: #1885558"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9f560f44_8d4a43a9","line":19,"updated":"2020-08-03 22:35:14.000000000","message":"can you also add a release note with a fixes section.\nwhen we back port his it will be good for operator to be aware of this change incase they are currenlty hitting this and the release not will inform them of that if they review the release notes periodically.","commit_id":"3e82115b5b089f609e74912930a59f745cd01c7a"}],"nova/compute/manager.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2e43efb09bb3110ac973a8dbba99f868ab80cd7a","unresolved":false,"context_lines":[{"line_number":10426,"context_line":"            profile[\u0027pci_slot\u0027] \u003d pci_dev.address"},{"line_number":10427,"context_line":"            profile[\u0027pci_vendor_info\u0027] \u003d \u0027:\u0027.join([pci_dev.vendor_id,"},{"line_number":10428,"context_line":"                                                   pci_dev.product_id])"},{"line_number":10429,"context_line":"            mig_vif.profile \u003d profile"},{"line_number":10430,"context_line":"            LOG.debug(\"Updating migrate VIF profile for port %(port_id)s:\""},{"line_number":10431,"context_line":"                      \"%(profile)s\", {\u0027port_id\u0027: port_id,"},{"line_number":10432,"context_line":"                                      \u0027profile\u0027: profile})"},{"line_number":10433,"context_line":"            # SR-IOV macvtap indirect mode"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_9eb667d9","line":10430,"range":{"start_line":10429,"start_character":10,"end_line":10430,"end_character":37},"updated":"2020-07-27 13:18:24.000000000","message":"source_vif \u003d mig_vif.source_vif\n            if source_vif[\u0027vnic_type\u0027] \u003d\u003d network_model.VIF_TYPE_MACVTAP:\n                profile[\u0027dest_devname\u0027] \u003d (\npci_utils.get_ifname_by_pci_address(pci_dev.address))\nmig_vif.profile \u003d profile","commit_id":"e318a0db6b5655e4f2d034c68b8539cfa2df0555"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2e43efb09bb3110ac973a8dbba99f868ab80cd7a","unresolved":false,"context_lines":[{"line_number":10430,"context_line":"            LOG.debug(\"Updating migrate VIF profile for port %(port_id)s:\""},{"line_number":10431,"context_line":"                      \"%(profile)s\", {\u0027port_id\u0027: port_id,"},{"line_number":10432,"context_line":"                                      \u0027profile\u0027: profile})"},{"line_number":10433,"context_line":"            # SR-IOV macvtap indirect mode"},{"line_number":10434,"context_line":"            source_vif \u003d mig_vif.source_vif"},{"line_number":10435,"context_line":"            if source_vif[\u0027vnic_type\u0027] \u003d\u003d network_model.VIF_TYPE_MACVTAP:"},{"line_number":10436,"context_line":"                mig_vif.dest_devname \u003d \\"},{"line_number":10437,"context_line":"                        pci_utils.get_ifname_by_pci_address(pci_dev.address)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_1e741735","line":10437,"range":{"start_line":10433,"start_character":10,"end_line":10437,"end_character":76},"updated":"2020-07-27 13:18:24.000000000","message":"we need to move this up to store the info in the profile.","commit_id":"e318a0db6b5655e4f2d034c68b8539cfa2df0555"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c5e38798c4516da2ca18d34486a26ef9d7dd881","unresolved":false,"context_lines":[{"line_number":10426,"context_line":"            profile[\u0027pci_slot\u0027] \u003d pci_dev.address"},{"line_number":10427,"context_line":"            profile[\u0027pci_vendor_info\u0027] \u003d \u0027:\u0027.join([pci_dev.vendor_id,"},{"line_number":10428,"context_line":"                                                   pci_dev.product_id])"},{"line_number":10429,"context_line":"            # SR-IOV macvtap indirect mode"},{"line_number":10430,"context_line":"            source_vif \u003d mig_vif.source_vif"},{"line_number":10431,"context_line":"            if source_vif[\u0027vnic_type\u0027] \u003d\u003d network_model.VIF_TYPE_MACVTAP:"},{"line_number":10432,"context_line":"                profile[\u0027dest_devname\u0027] \u003d \\"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_4d54ab53","line":10429,"updated":"2020-08-03 22:35:14.000000000","message":"If you respin this can you add a TODO to extend the object like you did in patch set one and remove this backward compatible behaviour of stashing it in the profile.","commit_id":"3e82115b5b089f609e74912930a59f745cd01c7a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"41afa06bfe647bcbeec1ff140bcea5744ce86969","unresolved":false,"context_lines":[{"line_number":10493,"context_line":"            profile[\u0027pci_slot\u0027] \u003d pci_dev.address"},{"line_number":10494,"context_line":"            profile[\u0027pci_vendor_info\u0027] \u003d \u0027:\u0027.join([pci_dev.vendor_id,"},{"line_number":10495,"context_line":"                                                   pci_dev.product_id])"},{"line_number":10496,"context_line":"            # SR-IOV macvtap indirect mode"},{"line_number":10497,"context_line":"            # \u0027dest_devname\u0027 in profile is for backward compatibility."},{"line_number":10498,"context_line":"            # TODO(renminmin): VIFMigrateData object add a new field for dest"},{"line_number":10499,"context_line":"            # device name and remove \u0027dest_devname\u0027 from profile."},{"line_number":10500,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_171750f0","line":10497,"range":{"start_line":10496,"start_character":0,"end_line":10497,"end_character":70},"updated":"2020-09-08 16:44:13.000000000","message":"Assuming my comment below is correct (we need to do this here since we\u0027re running on the destination host), then this comment could do with some work. How about:\n\n  Stash the devname corresponding to the requested PCI device\n  since we can\u0027t look this up once we\u0027re back on the source\n  host.","commit_id":"c0252100308ef8a581a76f2ee2d80349065539f7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"41afa06bfe647bcbeec1ff140bcea5744ce86969","unresolved":false,"context_lines":[{"line_number":10501,"context_line":"            source_vif \u003d mig_vif.source_vif"},{"line_number":10502,"context_line":"            if source_vif[\u0027vnic_type\u0027] \u003d\u003d network_model.VIF_TYPE_MACVTAP:"},{"line_number":10503,"context_line":"                profile[\u0027dest_devname\u0027] \u003d \\"},{"line_number":10504,"context_line":"                        pci_utils.get_ifname_by_pci_address(pci_dev.address)"},{"line_number":10505,"context_line":"            mig_vif.profile \u003d profile"},{"line_number":10506,"context_line":"            LOG.debug(\"Updating migrate VIF profile for port %(port_id)s:\""},{"line_number":10507,"context_line":"                      \"%(profile)s\", {\u0027port_id\u0027: port_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_178d907b","line":10504,"range":{"start_line":10504,"start_character":24,"end_line":10504,"end_character":76},"updated":"2020-09-08 16:44:13.000000000","message":"This is exactly what we were doing before at [1]. Why does it work here when it doesn\u0027t work there?\n\nLater: Oh, maybe it\u0027s because we\u0027re running on the destination host here, whereas we\u0027re running on the source host during the later operation (whatever is calling \u0027set_vif_host_backend_hw_veb\u0027?\n\n[1] https://review.opendev.org/#/c/738432/4/nova/virt/libvirt/designer.py@110","commit_id":"c0252100308ef8a581a76f2ee2d80349065539f7"}],"nova/objects/migrate_data.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2e43efb09bb3110ac973a8dbba99f868ab80cd7a","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        # the libvirt driver here: https://review.opendev.org/#/c/551370/"},{"line_number":58,"context_line":"        # 29/nova/virt/libvirt/driver.py@7036"},{"line_number":59,"context_line":"        \u0027source_vif\u0027: fields.Field(fields.NetworkVIFModel()),"},{"line_number":60,"context_line":"        # SR-IOV macvtap destination hardware device name"},{"line_number":61,"context_line":"        # version 1.1: add dest_devname"},{"line_number":62,"context_line":"        \u0027dest_devname\u0027: fields.StringField()"},{"line_number":63,"context_line":"    }"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_1eb53732","line":62,"range":{"start_line":60,"start_character":4,"end_line":62,"end_character":44},"updated":"2020-07-27 13:18:24.000000000","message":"FYI, this makes this change not backportable\n\nwe could avoid the object change by stashing the dest_devname\nin the profile_json or vif_details_json.\n\nprofile would be slightly better see my other commnets for how to do that. this is the correct way to doing it long term but we need a backportable fix then this can be a refactoring after.","commit_id":"e318a0db6b5655e4f2d034c68b8539cfa2df0555"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2e43efb09bb3110ac973a8dbba99f868ab80cd7a","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        vif \u003d copy.deepcopy(self.source_vif)"},{"line_number":94,"context_line":"        vif[\u0027type\u0027] \u003d self.vif_type"},{"line_number":95,"context_line":"        vif[\u0027vnic_type\u0027] \u003d self.vnic_type"},{"line_number":96,"context_line":"        vif[\u0027profile\u0027] \u003d self.profile"},{"line_number":97,"context_line":"        vif[\u0027details\u0027] \u003d self.vif_details"},{"line_number":98,"context_line":"        if \u0027dest_devname\u0027 in self:"},{"line_number":99,"context_line":"            vif[\u0027dest_devname\u0027] \u003d self.dest_devname"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_7e89d324","line":96,"range":{"start_line":96,"start_character":7,"end_line":96,"end_character":37},"updated":"2020-07-27 13:18:24.000000000","message":"profile \u003d self.profile\ndest_devname \u003d profile.pop(\u0027dest_devname\u0027, None)\nself.profile \u003d profile","commit_id":"e318a0db6b5655e4f2d034c68b8539cfa2df0555"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2e43efb09bb3110ac973a8dbba99f868ab80cd7a","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        vif[\u0027vnic_type\u0027] \u003d self.vnic_type"},{"line_number":96,"context_line":"        vif[\u0027profile\u0027] \u003d self.profile"},{"line_number":97,"context_line":"        vif[\u0027details\u0027] \u003d self.vif_details"},{"line_number":98,"context_line":"        if \u0027dest_devname\u0027 in self:"},{"line_number":99,"context_line":"            vif[\u0027dest_devname\u0027] \u003d self.dest_devname"},{"line_number":100,"context_line":"        return vif"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_5ec04f51","line":98,"range":{"start_line":98,"start_character":8,"end_line":98,"end_character":34},"updated":"2020-07-27 13:18:24.000000000","message":"if dest_devname:","commit_id":"e318a0db6b5655e4f2d034c68b8539cfa2df0555"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2e43efb09bb3110ac973a8dbba99f868ab80cd7a","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        vif[\u0027profile\u0027] \u003d self.profile"},{"line_number":97,"context_line":"        vif[\u0027details\u0027] \u003d self.vif_details"},{"line_number":98,"context_line":"        if \u0027dest_devname\u0027 in self:"},{"line_number":99,"context_line":"            vif[\u0027dest_devname\u0027] \u003d self.dest_devname"},{"line_number":100,"context_line":"        return vif"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_9ebae7db","line":99,"range":{"start_line":99,"start_character":34,"end_line":99,"end_character":51},"updated":"2020-07-27 13:18:24.000000000","message":"dest_devname","commit_id":"e318a0db6b5655e4f2d034c68b8539cfa2df0555"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"41afa06bfe647bcbeec1ff140bcea5744ce86969","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        vif[\u0027vnic_type\u0027] \u003d self.vnic_type"},{"line_number":92,"context_line":"        dest_devname \u003d self.profile.pop(\u0027dest_devname\u0027, None)"},{"line_number":93,"context_line":"        if dest_devname:"},{"line_number":94,"context_line":"            vif[\u0027dest_devname\u0027] \u003d dest_devname"},{"line_number":95,"context_line":"        vif[\u0027profile\u0027] \u003d self.profile"},{"line_number":96,"context_line":"        vif[\u0027details\u0027] \u003d self.vif_details"},{"line_number":97,"context_line":"        return vif"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_57bb88e3","line":94,"range":{"start_line":94,"start_character":17,"end_line":94,"end_character":29},"updated":"2020-09-08 16:44:13.000000000","message":"Could we simply call this devname?","commit_id":"c0252100308ef8a581a76f2ee2d80349065539f7"}],"nova/virt/libvirt/designer.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2e43efb09bb3110ac973a8dbba99f868ab80cd7a","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        conf.source_mode \u003d \u0027passthrough\u0027"},{"line_number":119,"context_line":"        # If source_dev is not None, conf.source_dev use"},{"line_number":120,"context_line":"        # the parameter source_dev"},{"line_number":121,"context_line":"        conf.source_dev \u003d source_dev if source_dev \\"},{"line_number":122,"context_line":"            else pci_utils.get_ifname_by_pci_address(devname)"},{"line_number":123,"context_line":"        conf.driver_name \u003d \u0027vhost\u0027"},{"line_number":124,"context_line":"    else:  # net_type \u003d\u003d network_model.VNIC_TYPE_DIRECT"},{"line_number":125,"context_line":"        conf.source_dev \u003d devname"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_de461f22","line":122,"range":{"start_line":121,"start_character":5,"end_line":122,"end_character":61},"updated":"2020-07-27 13:18:24.000000000","message":"nit: i hate seeing \\ used for line continuationes\nthis should also work and not require it.\n\ndev \u003d source_dev or pci_utils.get_ifname_by_pci_address(devname)\nconf.source_dev \u003d dev","commit_id":"e318a0db6b5655e4f2d034c68b8539cfa2df0555"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"41afa06bfe647bcbeec1ff140bcea5744ce86969","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    conf.vlan \u003d vlan"},{"line_number":106,"context_line":"    if net_type \u003d\u003d \u0027direct\u0027:"},{"line_number":107,"context_line":"        conf.source_mode \u003d \u0027passthrough\u0027"},{"line_number":108,"context_line":"        # If source_dev is not None, conf.source_dev use"},{"line_number":109,"context_line":"        # the parameter source_dev"},{"line_number":110,"context_line":"        dev \u003d source_dev or pci_utils.get_ifname_by_pci_address(devname)"},{"line_number":111,"context_line":"        conf.source_dev \u003d dev"},{"line_number":112,"context_line":"        conf.driver_name \u003d \u0027vhost\u0027"},{"line_number":113,"context_line":"    else:  # net_type \u003d\u003d network_model.VNIC_TYPE_DIRECT"},{"line_number":114,"context_line":"        conf.source_dev \u003d devname"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_ecff73ff","line":111,"range":{"start_line":108,"start_character":0,"end_line":111,"end_character":29},"updated":"2020-09-08 16:44:13.000000000","message":"This is rather confusing. We have the \u0027devname\u0027 parameter but it\u0027s not always actually a devname: for direct attach devices it\u0027s actually a PCI address which we use to lookup a devname via a call to \u0027pci_utils.get_ifname_by_pci_address\u0027.\n\nRather than adding a new \u0027source_dev\u0027 parameter like we\u0027re doing here, could we ensure we always pass a device name and simply change what that device name is depending on the context? That means the rest of this function would become e.g.:\n\n  if net_type \u003d\u003d \u0027direct\u0027:\n      conf.source_mode \u003d \u0027passthrough\u0027\n      conf.driver_name \u003d \u0027vhost\u0027\n  else:   # net_type \u003d\u003d network_model.VNIC_TYPE_DIRECT\n      conf.model \u003d None\n\n  conf.source_dev \u003d devname\n  if tapname:\n      conf.target_dev \u003d tapname\n\nWhile a caller to this function would become like [1]\n\n[1] https://review.opendev.org/#/c/738432/4/nova/virt/libvirt/vif.py@368","commit_id":"c0252100308ef8a581a76f2ee2d80349065539f7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2d1476460b69eb631c4c59a523e3cb29b89421b2","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    conf.vlan \u003d vlan"},{"line_number":106,"context_line":"    if net_type \u003d\u003d \u0027direct\u0027:"},{"line_number":107,"context_line":"        conf.source_mode \u003d \u0027passthrough\u0027"},{"line_number":108,"context_line":"        # If source_dev is not None, conf.source_dev use"},{"line_number":109,"context_line":"        # the parameter source_dev"},{"line_number":110,"context_line":"        dev \u003d source_dev or pci_utils.get_ifname_by_pci_address(devname)"},{"line_number":111,"context_line":"        conf.source_dev \u003d dev"},{"line_number":112,"context_line":"        conf.driver_name \u003d \u0027vhost\u0027"},{"line_number":113,"context_line":"    else:  # net_type \u003d\u003d network_model.VNIC_TYPE_DIRECT"},{"line_number":114,"context_line":"        conf.source_dev \u003d devname"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_1772b012","line":111,"range":{"start_line":108,"start_character":0,"end_line":111,"end_character":29},"in_reply_to":"9f560f44_ecff73ff","updated":"2020-09-08 16:46:08.000000000","message":"So basically can we move this logic up one level and out of this function","commit_id":"c0252100308ef8a581a76f2ee2d80349065539f7"}],"nova/virt/libvirt/vif.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"41afa06bfe647bcbeec1ff140bcea5744ce86969","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        # in profile \u0027dest_devname\u0027 for generating"},{"line_number":366,"context_line":"        # target new_xml_str used in"},{"line_number":367,"context_line":"        # libvirt/driver.py:_live_migration_operation"},{"line_number":368,"context_line":"        source_dev \u003d vif.pop(\u0027dest_devname\u0027, None)"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        designer.set_vif_host_backend_hw_veb("},{"line_number":371,"context_line":"            conf, net_type, profile[\u0027pci_slot\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_173110ee","line":368,"updated":"2020-09-08 16:44:13.000000000","message":"Assuming what I\u0027m saying in the previous file is sane, this would become:\n\n  devname \u003d vif.pop(\u0027dest_devname\u0027, None)\n  if not devname:\n      devname \u003d pci_utils.get_ifname_by_pci_address(profile[\u0027pci_slot\u0027])","commit_id":"c0252100308ef8a581a76f2ee2d80349065539f7"}],"releasenotes/notes/bug-1885558-macvtap-live-migrate-a10e53447be518f3.yaml":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"41afa06bfe647bcbeec1ff140bcea5744ce86969","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix `bug 188558`_ that instance with macvtap interface live-migration failed"},{"line_number":5,"context_line":"    when the sriov VF allocated on destination compute node is different"},{"line_number":6,"context_line":"    device name from source compute node. Add \u0027dest_devname\u0027 in VIFMigrateData"},{"line_number":7,"context_line":"    profile for recording destination device name."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    .. _bug 188558: http://launchpad.net/bugs/1885558"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9f560f44_977fe015","line":7,"range":{"start_line":4,"start_character":0,"end_line":7,"end_character":50},"updated":"2020-09-08 16:44:13.000000000","message":"Assuming I understand this problem correctly, how about simply:\n\n  Fix `bug 188558`_, whereby live migration of an instance with a\n  macvtap interface would fail if SR-IOV VFs had different\n  addresses or device names on the destination host compared\n  to the source host.\n\nSince I suspect that if we chose a device on the destination host with a PCI address that did not exist on the source host, things would explode.","commit_id":"c0252100308ef8a581a76f2ee2d80349065539f7"}]}
