)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0d8fbc216c3b6e420923b4705f464ea206d4bf48","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jan Gutter \u003cjan.gutter@netronome.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-04-13 09:55:46 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Netronome SmartNIC Enablement"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is a proof-of-concept patch set illustrating the proposed changes"},{"line_number":10,"context_line":"to enable Netronome SmartNIC acceleration in OpenStack. This is not"},{"line_number":11,"context_line":"intended to be mergeable. Extra parameters and branches have been tagged"},{"line_number":12,"context_line":"by the \"Agilio\" keyword to stand out, the intent is to replace that with"},{"line_number":13,"context_line":"generic \"SmartNIC\" vendor-neutral code."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I945ce5ac564e1274214da8169e4c06470d0f42a2"},{"line_number":16,"context_line":"Signed-off-by: Jan Gutter \u003cjan.gutter@netronome.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9ff52f3f_7782e651","line":13,"range":{"start_line":7,"start_character":0,"end_line":13,"end_character":39},"updated":"2017-04-13 11:36:50.000000000","message":"cool have you talked to moshe on this topic\nsee https://review.openstack.org/#/c/398277/","commit_id":"c1c1d5ca5579b23a75ce1ce04d47f340f2dca819"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"27da959154b4a9e5351c3ddb13a2f8220c758d7d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jan Gutter \u003cjan.gutter@netronome.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-04-13 09:55:46 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Netronome SmartNIC Enablement"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is a proof-of-concept patch set illustrating the proposed changes"},{"line_number":10,"context_line":"to enable Netronome SmartNIC acceleration in OpenStack. This is not"},{"line_number":11,"context_line":"intended to be mergeable. Extra parameters and branches have been tagged"},{"line_number":12,"context_line":"by the \"Agilio\" keyword to stand out, the intent is to replace that with"},{"line_number":13,"context_line":"generic \"SmartNIC\" vendor-neutral code."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I945ce5ac564e1274214da8169e4c06470d0f42a2"},{"line_number":16,"context_line":"Signed-off-by: Jan Gutter \u003cjan.gutter@netronome.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9ff52f3f_0607ea1e","line":13,"range":{"start_line":7,"start_character":0,"end_line":13,"end_character":39},"in_reply_to":"9ff52f3f_7782e651","updated":"2017-04-13 14:20:15.000000000","message":"I\u0027ve sent him a ping but he\u0027s currently OOO, will definitely coordinate.","commit_id":"c1c1d5ca5579b23a75ce1ce04d47f340f2dca819"}],"os_vif/objects/vif.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0d8fbc216c3b6e420923b4705f464ea206d4bf48","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    }"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"@base.VersionedObjectRegistry.register"},{"line_number":165,"context_line":"class VIFAgilioPassthrough(VIFOpenVSwitch):"},{"line_number":166,"context_line":"    # For libvirt drivers, this maps to type\u003d\u0027hostdev\u0027"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"@base.VersionedObjectRegistry.register"},{"line_number":172,"context_line":"class VIFAgilioRelay(VIFOpenVSwitch):"},{"line_number":173,"context_line":"    # For libvirt drivers, this maps to type\u003d\u0027vhostuser\u0027"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"@base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ff52f3f_14c95877","line":175,"range":{"start_line":164,"start_character":0,"end_line":175,"end_character":19},"updated":"2017-04-13 11:36:50.000000000","message":"these i think should be port profiles not vif types.\n\ne.g. there should only be 1 vhost-user vif for all uses of vhost-user but you pair that common vif with a port profile that carries backend specific info.\n\nsimilarly for a standard ovs port\n\nin general adding new vif types should be very rare\n\nadding new portprofiles will happen when ever a new way of using a vif is added.","commit_id":"c1c1d5ca5579b23a75ce1ce04d47f340f2dca819"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0d8fbc216c3b6e420923b4705f464ea206d4bf48","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"@base.VersionedObjectRegistry.register"},{"line_number":179,"context_line":"class VIFAgilioPassthrough(VIFOpenVSwitch):"},{"line_number":180,"context_line":"    # For libvirt drivers, this maps to type\u003d\u0027hostdev\u0027"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"@base.VersionedObjectRegistry.register"},{"line_number":186,"context_line":"class VIFAgilioRelay(VIFOpenVSwitch):"},{"line_number":187,"context_line":"    # For libvirt drivers, this maps to type\u003d\u0027vhostuser\u0027"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"@base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ff52f3f_74af8494","line":189,"range":{"start_line":178,"start_character":0,"end_line":189,"end_character":19},"updated":"2017-04-13 11:36:50.000000000","message":"these are repeated so should be deleted.","commit_id":"c1c1d5ca5579b23a75ce1ce04d47f340f2dca819"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0d8fbc216c3b6e420923b4705f464ea206d4bf48","unresolved":false,"context_lines":[{"line_number":264,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"@base.VersionedObjectRegistry.register"},{"line_number":268,"context_line":"class VIFPortProfileAgilioPassthrough(VIFPortProfileOpenVSwitch,"},{"line_number":269,"context_line":"                                      VIFHostDevice):"},{"line_number":270,"context_line":"    # Port profile info for Agilio Passthrough networks"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"@base.VersionedObjectRegistry.register"},{"line_number":276,"context_line":"class VIFPortProfileAgilioRelay(VIFPortProfileOpenVSwitch,"},{"line_number":277,"context_line":"                                VIFHostDevice,"},{"line_number":278,"context_line":"                                VIFVHostUser):"},{"line_number":279,"context_line":"    # Port profile info for Agilio Relay networks"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"@base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ff52f3f_349fbc51","line":281,"range":{"start_line":267,"start_character":0,"end_line":281,"end_character":19},"updated":"2017-04-13 11:36:50.000000000","message":"this is a dupe and can be deleted.","commit_id":"c1c1d5ca5579b23a75ce1ce04d47f340f2dca819"}],"vif_plug_ovs/linux_net.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0d8fbc216c3b6e420923b4705f464ea206d4bf48","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    _update_device_mtu(dev, mtu, interface_type, timeout\u003dtimeout)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":101,"context_line":"def agilio_claim_passthrough(dev, mac_address, pci_slot):"},{"line_number":102,"context_line":"    _agilio_vf_mgr([\u0027--claim-passthrough\u0027, dev, mac_address, \u0027--pciaddr\u0027, pci_slot])"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":106,"context_line":"def agilio_claim_relay(dev, mac_address, pci_slot):"},{"line_number":107,"context_line":"    _agilio_vf_mgr([\u0027--claim-relay\u0027, dev, mac_address, \u0027--pciaddr\u0027, pci_slot])"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":111,"context_line":"def agilio_release(dev):"},{"line_number":112,"context_line":"    _agilio_vf_mgr([\u0027--release\u0027, dev])"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":116,"context_line":"def agilio_claim_passthrough(dev, mac_address, pci_slot):"},{"line_number":117,"context_line":"    _agilio_vf_mgr([\u0027--claim-passthrough\u0027, dev, mac_address, \u0027--pciaddr\u0027, pci_slot])"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":121,"context_line":"def agilio_claim_relay(dev, mac_address, pci_slot):"},{"line_number":122,"context_line":"    _agilio_vf_mgr([\u0027--claim-relay\u0027, dev, mac_address, \u0027--pciaddr\u0027, pci_slot])"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":126,"context_line":"def agilio_release(dev):"},{"line_number":127,"context_line":"    _agilio_vf_mgr([\u0027--release\u0027, dev])"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"@privsep.vif_plug.entrypoint"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ff52f3f_54da40e9","line":127,"range":{"start_line":100,"start_character":0,"end_line":127,"end_character":38},"updated":"2017-04-13 11:36:50.000000000","message":"this assumes that pciaddres would be used to identify the smartnic port which is not necessarily going to be the case but the logic makes sense.\n\nunless this is supported upstream in ovs though this kind of change would be better done in a separate plugin.","commit_id":"c1c1d5ca5579b23a75ce1ce04d47f340f2dca819"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"27da959154b4a9e5351c3ddb13a2f8220c758d7d","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    _update_device_mtu(dev, mtu, interface_type, timeout\u003dtimeout)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":101,"context_line":"def agilio_claim_passthrough(dev, mac_address, pci_slot):"},{"line_number":102,"context_line":"    _agilio_vf_mgr([\u0027--claim-passthrough\u0027, dev, mac_address, \u0027--pciaddr\u0027, pci_slot])"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":106,"context_line":"def agilio_claim_relay(dev, mac_address, pci_slot):"},{"line_number":107,"context_line":"    _agilio_vf_mgr([\u0027--claim-relay\u0027, dev, mac_address, \u0027--pciaddr\u0027, pci_slot])"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":111,"context_line":"def agilio_release(dev):"},{"line_number":112,"context_line":"    _agilio_vf_mgr([\u0027--release\u0027, dev])"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":116,"context_line":"def agilio_claim_passthrough(dev, mac_address, pci_slot):"},{"line_number":117,"context_line":"    _agilio_vf_mgr([\u0027--claim-passthrough\u0027, dev, mac_address, \u0027--pciaddr\u0027, pci_slot])"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":121,"context_line":"def agilio_claim_relay(dev, mac_address, pci_slot):"},{"line_number":122,"context_line":"    _agilio_vf_mgr([\u0027--claim-relay\u0027, dev, mac_address, \u0027--pciaddr\u0027, pci_slot])"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":126,"context_line":"def agilio_release(dev):"},{"line_number":127,"context_line":"    _agilio_vf_mgr([\u0027--release\u0027, dev])"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"@privsep.vif_plug.entrypoint"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ff52f3f_5ad94281","line":127,"range":{"start_line":100,"start_character":0,"end_line":127,"end_character":38},"in_reply_to":"9ff52f3f_54da40e9","updated":"2017-04-13 14:20:15.000000000","message":"One reason the decision was made to use the PCI address is that it would bring scheduling/NUMA visibility to the control node, meaning that the scheduler should have the correct affinity information BEFORE an instance is scheduled. I\u0027ll coordinate with Moshe about this: it\u0027s very likely that this would also work with their model.","commit_id":"c1c1d5ca5579b23a75ce1ce04d47f340f2dca819"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"398c80723424a81925af5fbce68dc08b2ba1252b","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    _update_device_mtu(dev, mtu, interface_type, timeout\u003dtimeout)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":101,"context_line":"def agilio_claim_passthrough(dev, mac_address, pci_slot):"},{"line_number":102,"context_line":"    _agilio_vf_mgr([\u0027--claim-passthrough\u0027, dev, mac_address, \u0027--pciaddr\u0027, pci_slot])"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":106,"context_line":"def agilio_claim_relay(dev, mac_address, pci_slot):"},{"line_number":107,"context_line":"    _agilio_vf_mgr([\u0027--claim-relay\u0027, dev, mac_address, \u0027--pciaddr\u0027, pci_slot])"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":111,"context_line":"def agilio_release(dev):"},{"line_number":112,"context_line":"    _agilio_vf_mgr([\u0027--release\u0027, dev])"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":116,"context_line":"def agilio_claim_passthrough(dev, mac_address, pci_slot):"},{"line_number":117,"context_line":"    _agilio_vf_mgr([\u0027--claim-passthrough\u0027, dev, mac_address, \u0027--pciaddr\u0027, pci_slot])"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":121,"context_line":"def agilio_claim_relay(dev, mac_address, pci_slot):"},{"line_number":122,"context_line":"    _agilio_vf_mgr([\u0027--claim-relay\u0027, dev, mac_address, \u0027--pciaddr\u0027, pci_slot])"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"@privsep.vif_plug.entrypoint"},{"line_number":126,"context_line":"def agilio_release(dev):"},{"line_number":127,"context_line":"    _agilio_vf_mgr([\u0027--release\u0027, dev])"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"@privsep.vif_plug.entrypoint"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ff52f3f_011fca6c","line":127,"range":{"start_line":100,"start_character":0,"end_line":127,"end_character":38},"in_reply_to":"9ff52f3f_5ad94281","updated":"2017-04-13 18:41:45.000000000","message":"yep i think it would but i have had dissutions before regarding pci address of vf vs pci of pf + vf offset\n\ni prefer pciaddress personally and if there isnt a an implmentation at would need something else to work i think it s a good candiate untill we have a usecase that it cant support.","commit_id":"c1c1d5ca5579b23a75ce1ce04d47f340f2dca819"}],"vif_plug_ovs/ovs.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0d8fbc216c3b6e420923b4705f464ea206d4bf48","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                    vif_object_name\u003dobjects.vif.VIFVHostUser.__name__,"},{"line_number":81,"context_line":"                    min_version\u003d\"1.0\","},{"line_number":82,"context_line":"                    max_version\u003d\"1.0\"),"},{"line_number":83,"context_line":"                objects.host_info.HostVIFInfo("},{"line_number":84,"context_line":"                    vif_object_name\u003dobjects.vif.VIFAgilioRelay.__name__,"},{"line_number":85,"context_line":"                    min_version\u003d\"1.0\","},{"line_number":86,"context_line":"                    max_version\u003d\"1.0\"),"},{"line_number":87,"context_line":"                objects.host_info.HostVIFInfo("},{"line_number":88,"context_line":"                    vif_object_name\u003dobjects.vif.VIFAgilioPassthrough.__name__,"},{"line_number":89,"context_line":"                    min_version\u003d\"1.0\","},{"line_number":90,"context_line":"                    max_version\u003d\"1.0\"),"},{"line_number":91,"context_line":"            ])"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def _get_mtu(self, vif):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ff52f3f_74bc2469","line":90,"range":{"start_line":83,"start_character":15,"end_line":90,"end_character":39},"updated":"2017-04-13 11:36:50.000000000","message":"as i said in the vif objects file we likely do not need these unless these ports are new interface type in the hypervior(libvirt/kvm ...)","commit_id":"c1c1d5ca5579b23a75ce1ce04d47f340f2dca819"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0d8fbc216c3b6e420923b4705f464ea206d4bf48","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            raise exception.WrongPortProfile("},{"line_number":168,"context_line":"                profile\u003dvif.port_profile.__class__.__name__)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        if isinstance(vif, objects.vif.VIFAgilioPassthrough):"},{"line_number":171,"context_line":"            linux_net.ensure_ovs_bridge(vif.network.bridge,"},{"line_number":172,"context_line":"                                        constants.OVS_DATAPATH_SYSTEM)"},{"line_number":173,"context_line":"            linux_net.agilio_claim_passthrough(vif.vif_name, vif.address, vif.port_profile.dev_address)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ff52f3f_345c5c4a","line":170,"range":{"start_line":170,"start_character":7,"end_line":170,"end_character":61},"updated":"2017-04-13 11:36:50.000000000","message":"this would need to be change to an if on the portprofile instead but otherwise the logic remains the same.","commit_id":"c1c1d5ca5579b23a75ce1ce04d47f340f2dca819"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0d8fbc216c3b6e420923b4705f464ea206d4bf48","unresolved":false,"context_lines":[{"line_number":239,"context_line":"            raise exception.WrongPortProfile("},{"line_number":240,"context_line":"                profile\u003dvif.port_profile.__class__.__name__)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        if isinstance(vif, objects.vif.VIFAgilioPassthrough):"},{"line_number":243,"context_line":"            linux_net.delete_ovs_vif_port(vif.network.bridge, vif.vif_name,"},{"line_number":244,"context_line":"                                          timeout\u003dself.config.ovs_vsctl_timeout)"},{"line_number":245,"context_line":"            linux_net.agilio_release(vif.vif_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ff52f3f_171cba68","line":242,"range":{"start_line":242,"start_character":8,"end_line":242,"end_character":61},"updated":"2017-04-13 11:36:50.000000000","message":"same as above it will be an isinstance check on the portprofile instead.","commit_id":"c1c1d5ca5579b23a75ce1ce04d47f340f2dca819"}]}
