)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"4dd49a290fb03b746a22fa641a195a2443dd33b6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"fd7bd266_08e5561c","updated":"2023-05-17 07:34:12.000000000","message":"++","commit_id":"739ac589f17de1d6351606d477f8cf2c275f59b6"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"055b92ea07e28861937900194624f122c23ae696","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6c307580_f7e9e20f","updated":"2023-05-18 10:32:28.000000000","message":"**NOTE**: this new PS reflects the comments in previous PS. The new API extension is no longer a flag but a string parameter that could contain a set of defined HWOL types. For now we have one single type: switchdev.","commit_id":"9c644a2d3b0b8dbe3ffe707d0e572ec645d85ee8"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"6c8817b6a868ba6990cf62e5fe6d7a0ab50806b3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a1381ece_652434c9","updated":"2023-05-22 09:49:17.000000000","message":"++ for the update","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"ee00c4a0ac0098d138440a8a260e392285af4c29","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"06a97817_df1e8116","updated":"2023-05-26 21:50:51.000000000","message":"Just a small nit","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"31f669105e756820a16919a98fa8e844e1d3cd86","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"c497315e_640b3e4c","updated":"2023-05-29 16:17:23.000000000","message":"**NOTE**: please join the discussion about the port binding profile command deprecation.","commit_id":"944e71d2aef940f40ec9362e1675d9de253c0e88"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"ebcd63b9200339a566a9085465c09277e5b3ae51","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"67f67eb0_e4be3290","updated":"2023-06-01 17:55:12.000000000","message":"After the latest round of comments, I understand that Rodolfo is going to push another revision to this spec. While waiting for that, I am +1 ing it to signal it looks good to me","commit_id":"944e71d2aef940f40ec9362e1675d9de253c0e88"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3de36606644cb46367695620bfe07808ad8ce59e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ecafabaa_1ecdeca4","updated":"2023-05-31 15:48:42.000000000","message":"ping fellow reviewers","commit_id":"944e71d2aef940f40ec9362e1675d9de253c0e88"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"11d24853716241ae2761dcfffe67e76681ff0d9b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9a261550_adeb561c","in_reply_to":"c497315e_640b3e4c","updated":"2023-05-29 16:17:51.000000000","message":"--\u003e https://review.opendev.org/c/openstack/neutron-specs/+/882272/comment/2cb82715_1c83a2fd/","commit_id":"944e71d2aef940f40ec9362e1675d9de253c0e88"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"1e3382f4fd948357ebee4844e2dd9bdfeff39dca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"968d2a3f_9dbcc7ec","updated":"2023-06-05 09:33:33.000000000","message":"looks, ok, thanks for taking care for the nova side later :)","commit_id":"ec0a0fb2a2b3eb71b7d08d39b2d73ec9de55b537"}],"specs/2023.2/hardware-offload-port-extension.rst":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"4dd49a290fb03b746a22fa641a195a2443dd33b6","unresolved":true,"context_lines":[{"line_number":80,"context_line":"    openstack port create --vnic-type direct --hardware-offload port_hwol"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"The new boolean field will be visible when showing the port resource."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"REST API Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"d1fad374_36ed88a0","line":83,"updated":"2023-05-17 07:34:12.000000000","message":"I\u0027m just wondering whether we don\u0027t want to indicate what kind of driver Nova should use. like for today \"switchdev\".\n\nThat means to have in table *Port hardware offload* a field called driver and for the HTTP response an additional attribute.\n\nIn the other side that also means more technical details exposed to users where we don\u0027t know if new model will be exposed to the kernel in future.","commit_id":"739ac589f17de1d6351606d477f8cf2c275f59b6"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"edb3ea6d12fba420be241ea895660403d8d87e87","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    openstack port create --vnic-type direct --hardware-offload port_hwol"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"The new boolean field will be visible when showing the port resource."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"REST API Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"665cbe96_7a18cd74","line":83,"in_reply_to":"d1fad374_36ed88a0","updated":"2023-05-17 13:45:08.000000000","message":"That makes sense. We currently have one single HWOL model that is \"switchdev\". But that could change. It could be more flexible if we store here a constant parameter defined in n-lib, for example, from a list of possible values.\n\nI\u0027ll propose a new PS.","commit_id":"739ac589f17de1d6351606d477f8cf2c275f59b6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ae314b41f39814c486ee650260fa5c38ebc7b076","unresolved":true,"context_lines":[{"line_number":41,"context_line":"Proposed Change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"This RFE proposes to create a new port extension, called \"hardware-offload\","},{"line_number":45,"context_line":"that will replace the need of manually defining the port binding profile"},{"line_number":46,"context_line":"information when creating the port; please note that this is referring only to"},{"line_number":47,"context_line":"the port creation process. This API extension consists on a string parameter"}],"source_content_type":"text/x-rst","patch_set":5,"id":"d7448180_d3ba34b9","line":44,"range":{"start_line":44,"start_character":58,"end_line":44,"end_character":74},"updated":"2023-05-19 11:04:52.000000000","message":"This is an API extension name, so isn\u0027t it better to have a prefix \"port-\" (i.e. \"port-hardware-offload\".","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1faf4d049f9365d210034e50b37d07d04103c162","unresolved":false,"context_lines":[{"line_number":41,"context_line":"Proposed Change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"This RFE proposes to create a new port extension, called \"hardware-offload\","},{"line_number":45,"context_line":"that will replace the need of manually defining the port binding profile"},{"line_number":46,"context_line":"information when creating the port; please note that this is referring only to"},{"line_number":47,"context_line":"the port creation process. This API extension consists on a string parameter"}],"source_content_type":"text/x-rst","patch_set":5,"id":"35e34328_3ada4d6f","line":44,"range":{"start_line":44,"start_character":58,"end_line":44,"end_character":74},"in_reply_to":"18f3f26a_52ef1b10","updated":"2023-05-29 16:16:43.000000000","message":"Yeah, sorry. Actually I used this constant in https://review.opendev.org/c/openstack/neutron-lib/+/882726/3/neutron_lib/api/definitions/port_hardware_offload.py","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"d30f17797e05597c9c2f712d4c5fe87f878e4b54","unresolved":true,"context_lines":[{"line_number":41,"context_line":"Proposed Change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"This RFE proposes to create a new port extension, called \"hardware-offload\","},{"line_number":45,"context_line":"that will replace the need of manually defining the port binding profile"},{"line_number":46,"context_line":"information when creating the port; please note that this is referring only to"},{"line_number":47,"context_line":"the port creation process. This API extension consists on a string parameter"}],"source_content_type":"text/x-rst","patch_set":5,"id":"18f3f26a_52ef1b10","line":44,"range":{"start_line":44,"start_character":58,"end_line":44,"end_character":74},"in_reply_to":"d7448180_d3ba34b9","updated":"2023-05-22 10:03:46.000000000","message":"+1","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"d30f17797e05597c9c2f712d4c5fe87f878e4b54","unresolved":true,"context_lines":[{"line_number":44,"context_line":"This RFE proposes to create a new port extension, called \"hardware-offload\","},{"line_number":45,"context_line":"that will replace the need of manually defining the port binding profile"},{"line_number":46,"context_line":"information when creating the port; please note that this is referring only to"},{"line_number":47,"context_line":"the port creation process. This API extension consists on a string parameter"},{"line_number":48,"context_line":"that will be \"None\" by default. This string will be the hardware offload"},{"line_number":49,"context_line":"type; OpenStack Neutron and Nova are currently supporting only \"switchdev\""},{"line_number":50,"context_line":"[6]_. The strings allowed by the API will be limited to a set of defined"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ae941a47_49092581","line":47,"range":{"start_line":47,"start_character":55,"end_line":47,"end_character":57},"updated":"2023-05-22 10:03:46.000000000","message":"nit: of","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1faf4d049f9365d210034e50b37d07d04103c162","unresolved":false,"context_lines":[{"line_number":44,"context_line":"This RFE proposes to create a new port extension, called \"hardware-offload\","},{"line_number":45,"context_line":"that will replace the need of manually defining the port binding profile"},{"line_number":46,"context_line":"information when creating the port; please note that this is referring only to"},{"line_number":47,"context_line":"the port creation process. This API extension consists on a string parameter"},{"line_number":48,"context_line":"that will be \"None\" by default. This string will be the hardware offload"},{"line_number":49,"context_line":"type; OpenStack Neutron and Nova are currently supporting only \"switchdev\""},{"line_number":50,"context_line":"[6]_. The strings allowed by the API will be limited to a set of defined"}],"source_content_type":"text/x-rst","patch_set":5,"id":"a0292754_1babb716","line":47,"range":{"start_line":47,"start_character":55,"end_line":47,"end_character":57},"in_reply_to":"ae941a47_49092581","updated":"2023-05-29 16:16:43.000000000","message":"Done","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ae314b41f39814c486ee650260fa5c38ebc7b076","unresolved":true,"context_lines":[{"line_number":51,"context_line":"constants."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"This new string parameter will be passed to Nova along with the port"},{"line_number":54,"context_line":"information dictionary. Nova will use this flag instead of the port binding"},{"line_number":55,"context_line":"profile information to command ``os-vif`` to create the corresponding layer"},{"line_number":56,"context_line":"1 port (a devlink port [3]_ [7]_)."},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"084a7d5d_8968a4cd","line":54,"range":{"start_line":54,"start_character":43,"end_line":54,"end_character":47},"updated":"2023-05-19 11:04:52.000000000","message":"s/flag/parameter/ ?","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1faf4d049f9365d210034e50b37d07d04103c162","unresolved":false,"context_lines":[{"line_number":51,"context_line":"constants."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"This new string parameter will be passed to Nova along with the port"},{"line_number":54,"context_line":"information dictionary. Nova will use this flag instead of the port binding"},{"line_number":55,"context_line":"profile information to command ``os-vif`` to create the corresponding layer"},{"line_number":56,"context_line":"1 port (a devlink port [3]_ [7]_)."},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"04429d85_953ac528","line":54,"range":{"start_line":54,"start_character":43,"end_line":54,"end_character":47},"in_reply_to":"084a7d5d_8968a4cd","updated":"2023-05-29 16:16:43.000000000","message":"Exactly, this is a leftover from the last PS","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"ee00c4a0ac0098d138440a8a260e392285af4c29","unresolved":true,"context_lines":[{"line_number":63,"context_line":"  parameter added in this RFE and the port binding profile, that will be added"},{"line_number":64,"context_line":"  internally by Neutron when the new paramter is not \"None\"."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* The second step involves the Nova implementation. This changes implies that"},{"line_number":67,"context_line":"  Nova can read the port new parameter and create the corresponding port. The"},{"line_number":68,"context_line":"  port binding profile information passed by Neutron will be irrelevant."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3ef20aef_9dcfae1e","line":66,"range":{"start_line":66,"start_character":57,"end_line":66,"end_character":64},"updated":"2023-05-26 21:50:51.000000000","message":"change","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1faf4d049f9365d210034e50b37d07d04103c162","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  parameter added in this RFE and the port binding profile, that will be added"},{"line_number":64,"context_line":"  internally by Neutron when the new paramter is not \"None\"."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* The second step involves the Nova implementation. This changes implies that"},{"line_number":67,"context_line":"  Nova can read the port new parameter and create the corresponding port. The"},{"line_number":68,"context_line":"  port binding profile information passed by Neutron will be irrelevant."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"35e6dd13_44871fe6","line":66,"range":{"start_line":66,"start_character":57,"end_line":66,"end_character":64},"in_reply_to":"3ef20aef_9dcfae1e","updated":"2023-05-29 16:16:43.000000000","message":"Done","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"d30f17797e05597c9c2f712d4c5fe87f878e4b54","unresolved":true,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* The second step involves the Nova implementation. This changes implies that"},{"line_number":67,"context_line":"  Nova can read the port new parameter and create the corresponding port. The"},{"line_number":68,"context_line":"  port binding profile information passed by Neutron will be irrelevant."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":".. NOTE::"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"2cb82715_1c83a2fd","line":68,"updated":"2023-05-22 10:03:46.000000000","message":"This means that if somebody keeps using the old API (through multiple upgrades though), then at some point the behavior will change silently (getting a non hwol port instead of a hwol port).\n\nIn addition: how will an API user know when it is no longer needed to send the binding_profile?\n\nThinking out loud: Maybe nova\u0027s switch from binding_profile to hardware_offload could be triggered by a nova microversion? But I don\u0027t know which nova operation should use this microversion...\n\nAs noted below this question may not belong to the neutron spec though. On the other hand, the nova part may affect how can we deprecate the old method.","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1faf4d049f9365d210034e50b37d07d04103c162","unresolved":true,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* The second step involves the Nova implementation. This changes implies that"},{"line_number":67,"context_line":"  Nova can read the port new parameter and create the corresponding port. The"},{"line_number":68,"context_line":"  port binding profile information passed by Neutron will be irrelevant."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":".. NOTE::"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"ca702959_8cacb3dd","line":68,"in_reply_to":"2cb82715_1c83a2fd","updated":"2023-05-29 16:16:43.000000000","message":"That\u0027s a very good point to be discussed.\n\nMy two cents: for now, we are going to implement the first part (the Neutron one). I would like to leave Nova out of the scope here. It is better for compatibility reasons. Having said that, this should be a Neutron issue. In order to deprecate the old way to create a HWOL port, we shoild check if \"capabilities\" keys is added to the binding profile. Actually I think this should be done in the OSC code. For example [1]. This is because we can\u0027t return a 200 code from the Neutron API and at the same time write a message in the CLI.\n\nAt the same time, I can add a check in the Neutron API to write a warning message in the logs.\n\nIn 2 releases from now (2024.2), we\u0027ll block this from the Neutron server.\n\nAre you OK with this? If so, I\u0027ll amend the spec.\n\n[1]https://review.opendev.org/c/openstack/python-openstackclient/+/665357","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"feeebb8cf543b9d75e982ce425d2ec702ba06fa4","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* The second step involves the Nova implementation. This changes implies that"},{"line_number":67,"context_line":"  Nova can read the port new parameter and create the corresponding port. The"},{"line_number":68,"context_line":"  port binding profile information passed by Neutron will be irrelevant."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":".. NOTE::"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"21b0cf54_7ee2beae","line":68,"in_reply_to":"94f95b9e_321ff215","updated":"2023-06-02 08:08:52.000000000","message":"Done","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"07540ed51dcc7e12a11ccce72c2414eda87ee507","unresolved":true,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* The second step involves the Nova implementation. This changes implies that"},{"line_number":67,"context_line":"  Nova can read the port new parameter and create the corresponding port. The"},{"line_number":68,"context_line":"  port binding profile information passed by Neutron will be irrelevant."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":".. NOTE::"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"94f95b9e_321ff215","line":68,"in_reply_to":"9f3e3059_8766f05c","updated":"2023-06-01 15:08:52.000000000","message":"Right, we can change OSC but not cover all API clients. But at least we\u0027ll make it clear for all OSC users (most of them) that HWOL ports should be created with the new extension.\n\nOf course a follow up will be covered and this is the second part of this spec (that is out of scope here). You\u0027ll be able to continue creating a port in the old way but if you want to control the policies (allow non-admin users to create HWOL ports without allowing non-admin users to modify the port binding), it will be better to use this new method.\n\nI\u0027ll add the OSC warning change in the client impact.","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"109dc326745455a5bfee7ed10349fc74f0f92c3f","unresolved":true,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* The second step involves the Nova implementation. This changes implies that"},{"line_number":67,"context_line":"  Nova can read the port new parameter and create the corresponding port. The"},{"line_number":68,"context_line":"  port binding profile information passed by Neutron will be irrelevant."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":".. NOTE::"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9f3e3059_8766f05c","line":68,"in_reply_to":"ca702959_8cacb3dd","updated":"2023-06-01 15:02:46.000000000","message":"I don\u0027t want to block this spec by questions of how nova should behave.\n\nI think we can and should deprecate the old capabilities way. But I\u0027m not sure if we can ever block it from neutron API. At least for a long time we said this kind of api change is forbidden in neutron because it cannot be described by an api extension (i.e. we cannot expect old clients to start checking for an extension to know that something that was previously allowed is still allowed).\n\nA change in OSC is a good idea. It clearly educates and nudges our users to use the new way. On the other hand it cannot cover all api clients.\n\nMy conclusion here is that a followup from nova side is needed. Nova needs to signal its behavior change (using the hwol_type field instead of capabilities) *somehow* to openstack api users, otherwise an api client is forced to always use *both* the old and the new way. In all other cases system behavior is undefined until nova starts giving the above mentioned signal. Here we must trust nova that this change is coming in the near future.","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ae314b41f39814c486ee650260fa5c38ebc7b076","unresolved":true,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":95,"context_line":"        port.COLLECTION_NAME: {"},{"line_number":96,"context_line":"            \"hardware_offload\": {"},{"line_number":97,"context_line":"                \u0027allow_post\u0027: True,"},{"line_number":98,"context_line":"                \u0027allow_put\u0027: False,"},{"line_number":99,"context_line":"                \u0027convert_to\u0027: converters.convert_to_string,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"4860b377_e343ec20","line":96,"range":{"start_line":96,"start_character":13,"end_line":96,"end_character":29},"updated":"2023-05-19 11:04:52.000000000","message":"nit: This parameter spcifies the hardware offload \"type\", so it might be more clear if we include \"type\" in the parameter name like \"hardware_offload_type\".\nI think the only downside would be the parameter name (and the corresponding CLI arg) will be longer.","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"d30f17797e05597c9c2f712d4c5fe87f878e4b54","unresolved":true,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":95,"context_line":"        port.COLLECTION_NAME: {"},{"line_number":96,"context_line":"            \"hardware_offload\": {"},{"line_number":97,"context_line":"                \u0027allow_post\u0027: True,"},{"line_number":98,"context_line":"                \u0027allow_put\u0027: False,"},{"line_number":99,"context_line":"                \u0027convert_to\u0027: converters.convert_to_string,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"d67d39b3_147b24f3","line":96,"range":{"start_line":96,"start_character":13,"end_line":96,"end_character":29},"in_reply_to":"4860b377_e343ec20","updated":"2023-05-22 10:03:46.000000000","message":"+1","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"6c8817b6a868ba6990cf62e5fe6d7a0ab50806b3","unresolved":true,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":95,"context_line":"        port.COLLECTION_NAME: {"},{"line_number":96,"context_line":"            \"hardware_offload\": {"},{"line_number":97,"context_line":"                \u0027allow_post\u0027: True,"},{"line_number":98,"context_line":"                \u0027allow_put\u0027: False,"},{"line_number":99,"context_line":"                \u0027convert_to\u0027: converters.convert_to_string,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"319f3731_edf974ac","line":96,"range":{"start_line":96,"start_character":13,"end_line":96,"end_character":29},"in_reply_to":"4860b377_e343ec20","updated":"2023-05-22 09:49:17.000000000","message":"Hum I\u0027m not totally with you, adding such prefix or suffix is usually just noisy. But in the other side I can see that we used \u0027vnic-type\u0027 so... :-)","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1faf4d049f9365d210034e50b37d07d04103c162","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":95,"context_line":"        port.COLLECTION_NAME: {"},{"line_number":96,"context_line":"            \"hardware_offload\": {"},{"line_number":97,"context_line":"                \u0027allow_post\u0027: True,"},{"line_number":98,"context_line":"                \u0027allow_put\u0027: False,"},{"line_number":99,"context_line":"                \u0027convert_to\u0027: converters.convert_to_string,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1b939dd3_2bac595c","line":96,"range":{"start_line":96,"start_character":13,"end_line":96,"end_character":29},"in_reply_to":"d67d39b3_147b24f3","updated":"2023-05-29 16:16:43.000000000","message":"I agree with Akihiro: the \"_type\" suffix explains what this parameter is and we have already used it before.","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ae314b41f39814c486ee650260fa5c38ebc7b076","unresolved":true,"context_lines":[{"line_number":97,"context_line":"                \u0027allow_post\u0027: True,"},{"line_number":98,"context_line":"                \u0027allow_put\u0027: False,"},{"line_number":99,"context_line":"                \u0027convert_to\u0027: converters.convert_to_string,"},{"line_number":100,"context_line":"                \u0027default\u0027: False,"},{"line_number":101,"context_line":"                \u0027is_visible\u0027: True,"},{"line_number":102,"context_line":"                \u0027is_filter\u0027: True,"},{"line_number":103,"context_line":"                \u0027validate\u0027: {"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba78591c_bc481cb1","line":100,"updated":"2023-05-19 11:04:52.000000000","message":"I think \u0027default\u0027 should be \"None\" corresponding to JSON null.","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"6c8817b6a868ba6990cf62e5fe6d7a0ab50806b3","unresolved":true,"context_lines":[{"line_number":97,"context_line":"                \u0027allow_post\u0027: True,"},{"line_number":98,"context_line":"                \u0027allow_put\u0027: False,"},{"line_number":99,"context_line":"                \u0027convert_to\u0027: converters.convert_to_string,"},{"line_number":100,"context_line":"                \u0027default\u0027: False,"},{"line_number":101,"context_line":"                \u0027is_visible\u0027: True,"},{"line_number":102,"context_line":"                \u0027is_filter\u0027: True,"},{"line_number":103,"context_line":"                \u0027validate\u0027: {"}],"source_content_type":"text/x-rst","patch_set":5,"id":"de382a26_6f387a16","line":100,"in_reply_to":"ba78591c_bc481cb1","updated":"2023-05-22 09:49:17.000000000","message":"Yep good point, previously it was a boolean I guess Rodolfo missed to updated this point.","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1faf4d049f9365d210034e50b37d07d04103c162","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                \u0027allow_post\u0027: True,"},{"line_number":98,"context_line":"                \u0027allow_put\u0027: False,"},{"line_number":99,"context_line":"                \u0027convert_to\u0027: converters.convert_to_string,"},{"line_number":100,"context_line":"                \u0027default\u0027: False,"},{"line_number":101,"context_line":"                \u0027is_visible\u0027: True,"},{"line_number":102,"context_line":"                \u0027is_filter\u0027: True,"},{"line_number":103,"context_line":"                \u0027validate\u0027: {"}],"source_content_type":"text/x-rst","patch_set":5,"id":"0619d48d_c5024e07","line":100,"in_reply_to":"de382a26_6f387a16","updated":"2023-05-29 16:16:43.000000000","message":"Done","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"6c8817b6a868ba6990cf62e5fe6d7a0ab50806b3","unresolved":true,"context_lines":[{"line_number":101,"context_line":"                \u0027is_visible\u0027: True,"},{"line_number":102,"context_line":"                \u0027is_filter\u0027: True,"},{"line_number":103,"context_line":"                \u0027validate\u0027: {"},{"line_number":104,"context_line":"                    \u0027type:values\u0027: constants.VALID_HWOL_TYPES}"},{"line_number":105,"context_line":"            }"},{"line_number":106,"context_line":"        }"},{"line_number":107,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":5,"id":"d16de8a4_8686b4ae","line":104,"updated":"2023-05-22 09:49:17.000000000","message":"Do you want to define somewhere in this sectionthe initial  value of VALID_HWOL_TYPES ?\n\n(In all cases you already defined it previously in introduction I think)","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1faf4d049f9365d210034e50b37d07d04103c162","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                \u0027is_visible\u0027: True,"},{"line_number":102,"context_line":"                \u0027is_filter\u0027: True,"},{"line_number":103,"context_line":"                \u0027validate\u0027: {"},{"line_number":104,"context_line":"                    \u0027type:values\u0027: constants.VALID_HWOL_TYPES}"},{"line_number":105,"context_line":"            }"},{"line_number":106,"context_line":"        }"},{"line_number":107,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ec18fb8a_05a2c5ca","line":104,"in_reply_to":"d16de8a4_8686b4ae","updated":"2023-05-29 16:16:43.000000000","message":"This is specify in L49: only one type is currently supported.","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ae314b41f39814c486ee650260fa5c38ebc7b076","unresolved":true,"context_lines":[{"line_number":138,"context_line":"    Attribute         Type     CRUD Description"},{"line_number":139,"context_line":"    \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":140,"context_line":"    port_id           uuid-str RO   Unique identifier for the port object"},{"line_number":141,"context_line":"    hardware_offload  str      RO   String to indicate the hardware offload type"},{"line_number":142,"context_line":"    \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"a6071ef5_ea309502","line":141,"range":{"start_line":141,"start_character":31,"end_line":141,"end_character":33},"updated":"2023-05-19 11:04:52.000000000","message":"CR instead of RO?\nThe parameter is passed only when creating a port.","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1faf4d049f9365d210034e50b37d07d04103c162","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    Attribute         Type     CRUD Description"},{"line_number":139,"context_line":"    \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":140,"context_line":"    port_id           uuid-str RO   Unique identifier for the port object"},{"line_number":141,"context_line":"    hardware_offload  str      RO   String to indicate the hardware offload type"},{"line_number":142,"context_line":"    \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"a8f73708_e2293018","line":141,"range":{"start_line":141,"start_character":31,"end_line":141,"end_character":33},"in_reply_to":"a6071ef5_ea309502","updated":"2023-05-29 16:16:43.000000000","message":"Exactly.","commit_id":"201108a3ee253a0f8e2c46f4641b19fa565d27dc"}]}
