)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1bbc84fdbe2501bee05727b7456c3ff3113d4846","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"* Some VIF types already have a VF associated with them. In that case,"},{"line_number":14,"context_line":"  rather than duplicating the PCI dev_address, the os-vif plugin"},{"line_number":15,"context_line":"  should use VIF type\u0027s dev_address."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Id95a9f311e71b3cefb170704728641a4a1a91144"},{"line_number":18,"context_line":"Signed-off-by: Jan Gutter \u003cjan.gutter@netronome.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1f1a1f67_4de0b8cd","line":15,"updated":"2017-07-18 19:36:27.000000000","message":"s/use VIF type\u0027s dev_address/use the VIF port profile subclassed object\u0027s dev_address/\n\nIt\u0027s an important distinction that I think should be made.","commit_id":"444c3c3adf817de06cf68cda0883e499ebbe2606"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"258719c8452db412fa699f8e2eca3b5ed081e7ec","unresolved":false,"context_lines":[{"line_number":11,"context_line":"  plugin is requested to rename the representor to that."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"* Some VIF types already have a VF associated with them. In that case,"},{"line_number":14,"context_line":"  the PCI dev_address should copied to the VIF port profile subclassed"},{"line_number":15,"context_line":"  object\u0027s representor_address for use by os-vif plug/unplug. The"},{"line_number":16,"context_line":"  hypervisor will still use the VIF\u0027s dev_address for instance spawning."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1f1a1f67_87444d75","line":14,"range":{"start_line":14,"start_character":22,"end_line":14,"end_character":35},"updated":"2017-07-19 15:42:22.000000000","message":"s/should copied/should be copied/","commit_id":"777ea9494e2a37f9e186e7f85c1d08250f87c020"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9c887d0a13b93f8365e6bb8ba335bc5ef7aff3da","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  specifically supporting OVS. If representor_name is set, the os-vif"},{"line_number":11,"context_line":"  plugin is requested to rename the representor to that."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"* Some VIF types already have a VF associated with them. In that case,"},{"line_number":14,"context_line":"  the PCI dev_address should copied to the VIF port profile subclassed"},{"line_number":15,"context_line":"  object\u0027s representor_address for use by os-vif plug/unplug. The"},{"line_number":16,"context_line":"  hypervisor will still use the VIF\u0027s dev_address for instance spawning."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Id95a9f311e71b3cefb170704728641a4a1a91144"},{"line_number":19,"context_line":"Signed-off-by: Jan Gutter \u003cjan.gutter@netronome.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1f1a1f67_35cecc59","line":16,"range":{"start_line":13,"start_character":2,"end_line":16,"end_character":72},"updated":"2017-07-19 11:26:40.000000000","message":"ok cool so in this version we can rely on the port profile always haveing a the address populated and dont have to check 2 different locations in the consuming driver.","commit_id":"777ea9494e2a37f9e186e7f85c1d08250f87c020"}],"doc/source/user/vif-types.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3fcbb3a73778855723ebe6c99c5032c421703ce9","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"This profile provides the metadata required to associate a VIF with a"},{"line_number":116,"context_line":":term:`VF` representor and :term:`Open vSwitch` port. If :term:`vif_name` is"},{"line_number":117,"context_line":"specified, it indicates a desire to rename the representor to the given name"},{"line_number":118,"context_line":"on plugging. If :term:`dev_address` is not specified, the VIF _must_ provide"},{"line_number":119,"context_line":"the PCI address."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"VIFPortProfileFPBridge"},{"line_number":122,"context_line":"----------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_7fe02397","line":119,"range":{"start_line":117,"start_character":11,"end_line":119,"end_character":16},"updated":"2017-07-14 13:02:24.000000000","message":"this is leaking a little of your implementation details but i think its fine to include as it clearly states the intended way for others to reuse and should keep the use of this port profile type consistent.","commit_id":"970bca6a5d6d3e0fcfe89e77d5fddcd34aa43449"}],"os_vif/objects/vif.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1bbc84fdbe2501bee05727b7456c3ff3113d4846","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    fields \u003d {"},{"line_number":205,"context_line":"        # Name to set on the representor (if set)"},{"line_number":206,"context_line":"        \u0027vif_name\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # The PCI address of the Virtual Function"},{"line_number":209,"context_line":"        \u0027dev_address\u0027: fields.PCIAddressField(nullable\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_2de33cdb","line":206,"updated":"2017-07-18 19:36:27.000000000","message":"Why don\u0027t we call this \"representor_name\" if it\u0027s the name of the representor? vif_name just seems vague.","commit_id":"444c3c3adf817de06cf68cda0883e499ebbe2606"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"18d96d88371e821ca089ffe3f31f2ef749120eb5","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    fields \u003d {"},{"line_number":205,"context_line":"        # Name to set on the representor (if set)"},{"line_number":206,"context_line":"        \u0027vif_name\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # The PCI address of the Virtual Function"},{"line_number":209,"context_line":"        \u0027dev_address\u0027: fields.PCIAddressField(nullable\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_8d75b0fc","line":206,"in_reply_to":"1f1a1f67_2de33cdb","updated":"2017-07-18 20:02:24.000000000","message":"Yeah, I take your point. I used vif_name because the VIF name is normally what you want to have the netdev plugged into the bridge called.\n\nThe value of VIF.vif_name does not have to be the same as PORT_PROFILE.representor_name, but for debugging and consistency, it tends to help.","commit_id":"444c3c3adf817de06cf68cda0883e499ebbe2606"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"bffafe7016349c7093c2df1f27c7af47dec86ee8","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        \u0027vif_name\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # The PCI address of the Virtual Function"},{"line_number":209,"context_line":"        \u0027dev_address\u0027: fields.PCIAddressField(nullable\u003dTrue),"},{"line_number":210,"context_line":"    }"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_e86f7228","line":209,"updated":"2017-07-18 20:10:49.000000000","message":"and this \"representor_address\"\n\nas noted on IRC (private conversation), this is *not* the VIFBase subclass but rather the VIFPortProfileBase subclass. So, we want these fields to be specific to the OVS Representor setup.","commit_id":"444c3c3adf817de06cf68cda0883e499ebbe2606"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"a42579de5b362100a0d61efd863ea65508d6edd5","unresolved":false,"context_lines":[{"line_number":195,"context_line":"    }"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"@base.VersionedObjectRegistry.register"},{"line_number":199,"context_line":"class VIFPortProfileOVSRepresentor(VIFPortProfileOpenVSwitch):"},{"line_number":200,"context_line":"    # Port profile info for OpenVSwitch networks using a representor"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    fields \u003d {"},{"line_number":205,"context_line":"        # Name to set on the representor (if set)"},{"line_number":206,"context_line":"        \u0027vif_name\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # The PCI address of the Virtual Function"},{"line_number":209,"context_line":"        \u0027dev_address\u0027: fields.PCIAddressField(nullable\u003dTrue),"},{"line_number":210,"context_line":"    }"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"@base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_fa397df1","line":210,"range":{"start_line":198,"start_character":0,"end_line":210,"end_character":5},"updated":"2017-07-18 16:48:16.000000000","message":"why do you need the dev_address? \nis this plan to be use with direct port or for the new virtio-forwarder VNIC type or both?\nmy concern is conflict with the hostdev vif dev_address","commit_id":"444c3c3adf817de06cf68cda0883e499ebbe2606"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"b6c5f0478bbfcf445679827ad916ffbc33366b7b","unresolved":false,"context_lines":[{"line_number":195,"context_line":"    }"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"@base.VersionedObjectRegistry.register"},{"line_number":199,"context_line":"class VIFPortProfileOVSRepresentor(VIFPortProfileOpenVSwitch):"},{"line_number":200,"context_line":"    # Port profile info for OpenVSwitch networks using a representor"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    fields \u003d {"},{"line_number":205,"context_line":"        # Name to set on the representor (if set)"},{"line_number":206,"context_line":"        \u0027vif_name\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # The PCI address of the Virtual Function"},{"line_number":209,"context_line":"        \u0027dev_address\u0027: fields.PCIAddressField(nullable\u003dTrue),"},{"line_number":210,"context_line":"    }"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"@base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_14408d06","line":210,"range":{"start_line":198,"start_character":0,"end_line":210,"end_character":5},"in_reply_to":"1f1a1f67_65015206","updated":"2017-07-18 17:52:17.000000000","message":"Double dev_addresses also irked me a bit, but the only way to solve that was by adding two port profiles, one for the vif_name and one for the dev_address.\n\nTo be fair, a representor has two unique properties, the netdev associated with it, and the PCI address associated with it, and it\u0027s conceivable that it could also have an equivalent for the OVS userspace datapath.","commit_id":"444c3c3adf817de06cf68cda0883e499ebbe2606"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"ea74f3335eea8bca588e669ed3a8b8d3d4d1fc32","unresolved":false,"context_lines":[{"line_number":195,"context_line":"    }"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"@base.VersionedObjectRegistry.register"},{"line_number":199,"context_line":"class VIFPortProfileOVSRepresentor(VIFPortProfileOpenVSwitch):"},{"line_number":200,"context_line":"    # Port profile info for OpenVSwitch networks using a representor"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    fields \u003d {"},{"line_number":205,"context_line":"        # Name to set on the representor (if set)"},{"line_number":206,"context_line":"        \u0027vif_name\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # The PCI address of the Virtual Function"},{"line_number":209,"context_line":"        \u0027dev_address\u0027: fields.PCIAddressField(nullable\u003dTrue),"},{"line_number":210,"context_line":"    }"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"@base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_c58b86c0","line":210,"range":{"start_line":198,"start_character":0,"end_line":210,"end_character":5},"in_reply_to":"1f1a1f67_c5582689","updated":"2017-07-18 17:10:22.000000000","message":"one more question is it better to add dev_address as optional field to the VIFVHostUser? than it won\u0027t conflict with the SR-IOV hostdev vif","commit_id":"444c3c3adf817de06cf68cda0883e499ebbe2606"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ec052b30ac3ba8bbcb026f2323eaef53d38e1997","unresolved":false,"context_lines":[{"line_number":195,"context_line":"    }"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"@base.VersionedObjectRegistry.register"},{"line_number":199,"context_line":"class VIFPortProfileOVSRepresentor(VIFPortProfileOpenVSwitch):"},{"line_number":200,"context_line":"    # Port profile info for OpenVSwitch networks using a representor"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    fields \u003d {"},{"line_number":205,"context_line":"        # Name to set on the representor (if set)"},{"line_number":206,"context_line":"        \u0027vif_name\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # The PCI address of the Virtual Function"},{"line_number":209,"context_line":"        \u0027dev_address\u0027: fields.PCIAddressField(nullable\u003dTrue),"},{"line_number":210,"context_line":"    }"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"@base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_65015206","line":210,"range":{"start_line":198,"start_character":0,"end_line":210,"end_character":5},"in_reply_to":"1f1a1f67_c58b86c0","updated":"2017-07-18 17:14:46.000000000","message":"well this cannot be part of the VIF object as it is not common to all vhost user interfaces so no that is not an option.\n\nwe should not have a new VIF object either so i do not see any other way to enable this without break the abstraction we have in place.\n\nvif object are generically reusable across all plugins and implementation independent.\n\nport profiles a implementation dependent and carry any addiction info required by the backed that is not generic.","commit_id":"444c3c3adf817de06cf68cda0883e499ebbe2606"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"124b9c7f804c8d0432ded7305d5d87ebf0ac5a89","unresolved":false,"context_lines":[{"line_number":195,"context_line":"    }"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"@base.VersionedObjectRegistry.register"},{"line_number":199,"context_line":"class VIFPortProfileOVSRepresentor(VIFPortProfileOpenVSwitch):"},{"line_number":200,"context_line":"    # Port profile info for OpenVSwitch networks using a representor"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    fields \u003d {"},{"line_number":205,"context_line":"        # Name to set on the representor (if set)"},{"line_number":206,"context_line":"        \u0027vif_name\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # The PCI address of the Virtual Function"},{"line_number":209,"context_line":"        \u0027dev_address\u0027: fields.PCIAddressField(nullable\u003dTrue),"},{"line_number":210,"context_line":"    }"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"@base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_c5582689","line":210,"range":{"start_line":198,"start_character":0,"end_line":210,"end_character":5},"in_reply_to":"1f1a1f67_fa397df1","updated":"2017-07-18 17:06:56.000000000","message":"Ok I look at the nova code and you need the \u0027dev_address\u0027 for the virtio-forwarder.\nnot sure it the best way to go ..","commit_id":"444c3c3adf817de06cf68cda0883e499ebbe2606"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9c887d0a13b93f8365e6bb8ba335bc5ef7aff3da","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    fields \u003d {"},{"line_number":205,"context_line":"        # Name to set on the representor (if set)"},{"line_number":206,"context_line":"        \u0027representor_name\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # The PCI address of the Virtual Function"},{"line_number":209,"context_line":"        \u0027representor_address\u0027: fields.PCIAddressField(nullable\u003dTrue),"},{"line_number":210,"context_line":"    }"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"@base.VersionedObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f1a1f67_35e48c0c","line":210,"range":{"start_line":204,"start_character":4,"end_line":210,"end_character":5},"updated":"2017-07-19 11:26:40.000000000","message":"these are a lot clear so yes i agree with jay\u0027s feedback here. +1","commit_id":"777ea9494e2a37f9e186e7f85c1d08250f87c020"}]}
