)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"40b312dee5c5b139059fb21d0bdd3720385d9482","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     David Shaughnessy \u003cdavid.shaughnessy@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-10-29 14:12:58 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Neutron Classifier integration into Neutron QoS"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is the Spec to propose and describe the integration"},{"line_number":10,"context_line":"between the Neutron Quality of Service extension and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa7e38b_b88c1335","line":7,"range":{"start_line":7,"start_character":36,"end_line":7,"end_character":47},"updated":"2019-11-25 14:19:18.000000000","message":"A general newbie question: till this point I thought that this classifier API/framework whatever if will be moved to neutron-tree will be available for any neutron APIs that need classification, but this spec speaks about QoS DSCP, is that something I misunderstood?\n\nThe PoC as I see is again not specific to QoS dscp (https://review.opendev.org/670049 \u0026 https://review.opendev.org/670050)","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"13708c7c0c1aab84688db3abc4df15ae9bdd9ad7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     David Shaughnessy \u003cdavid.shaughnessy@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-10-29 14:12:58 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Neutron Classifier integration into Neutron QoS"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is the Spec to propose and describe the integration"},{"line_number":10,"context_line":"between the Neutron Quality of Service extension and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa7e38b_1f9e4d55","line":7,"range":{"start_line":7,"start_character":36,"end_line":7,"end_character":47},"in_reply_to":"3fa7e38b_46042014","updated":"2019-11-27 09:09:46.000000000","message":"Ok, thanks","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"0d335f4686defa8d4718b4f1166ff55cbe164996","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     David Shaughnessy \u003cdavid.shaughnessy@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-10-29 14:12:58 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Neutron Classifier integration into Neutron QoS"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is the Spec to propose and describe the integration"},{"line_number":10,"context_line":"between the Neutron Quality of Service extension and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa7e38b_46042014","line":7,"range":{"start_line":7,"start_character":36,"end_line":7,"end_character":47},"in_reply_to":"3fa7e38b_b88c1335","updated":"2019-11-25 15:30:47.000000000","message":"No you\u0027re correct, This spec is specifically about integrating QoS DSCP to use Neutron Classifier\u0027s API and the back-end changes that would require.","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"}],"specs/train/qos_classifier.rst":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1dbb70c77684bff15b874edb18c38055e214b550","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Neutron\u0027s Quality of Service extension allows for SLAs to be enforced at a"},{"line_number":29,"context_line":"Neutron port level, however it does not provide a resource to allow"},{"line_number":30,"context_line":"administrators to define SLAs for the different traffic classes entering or"},{"line_number":31,"context_line":"leaving the port."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"This results in an all or nothing approach to traffic class SLAs, either"},{"line_number":34,"context_line":"all the traffic leaving a port recieves the same DSCP mark or the traffic"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_0b736617","line":31,"updated":"2019-09-07 08:29:03.000000000","message":"the same qos policy can be now also applied to FIP to ensure bw limit on FIP. Will it work with such classifiers? Or maybe You will have to somehow forbid using such classful rules for FIPs?","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"ef09d2034cabb3a19b74568f5f494b829c3491f1","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Neutron\u0027s Quality of Service extension allows for SLAs to be enforced at a"},{"line_number":29,"context_line":"Neutron port level, however it does not provide a resource to allow"},{"line_number":30,"context_line":"administrators to define SLAs for the different traffic classes entering or"},{"line_number":31,"context_line":"leaving the port."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"This results in an all or nothing approach to traffic class SLAs, either"},{"line_number":34,"context_line":"all the traffic leaving a port recieves the same DSCP mark or the traffic"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_e6d15359","line":31,"in_reply_to":"5faad753_0b736617","updated":"2019-09-09 15:00:08.000000000","message":"I\u0027ll have to double check the implementation of FIP bw limit, but I don\u0027t know why it shouldn\u0027t?\nIf it doesn\u0027t QoS does support the backend drivers saying what rules they support, so similar to how ingress and egress bw limit or DSCP aren\u0027t supported on all drivers the drivers can show they can\u0027t utilize a classification on a given backend.","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cea5c3bff8b65b3c2bfe1b86290612fe92e88d20","unresolved":false,"context_lines":[{"line_number":39,"context_line":"* Assigning a higher drop priority for traffic leaving TCP port YY"},{"line_number":40,"context_line":"  than other traffic leaving the Neutron port"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* Bandwidth limiting traffic destined for IPv4 address X.X.X.X"},{"line_number":43,"context_line":"  to prevent congestion at that host."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Providing a bandwidth guarantee for traffic coming from X.X.X.X"},{"line_number":46,"context_line":"  and TCP port YY to maintain a stable connection to a remote"},{"line_number":47,"context_line":"  volume hosted at X.X.X.X"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_87ede28c","line":47,"range":{"start_line":42,"start_character":0,"end_line":47,"end_character":26},"updated":"2019-09-10 12:50:01.000000000","message":"a) BW limit and BW min are not considered in this spec.\nb) FIP only provides BW limit","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1dbb70c77684bff15b874edb18c38055e214b550","unresolved":false,"context_lines":[{"line_number":42,"context_line":"* Bandwidth limiting traffic destined for IPv4 address X.X.X.X"},{"line_number":43,"context_line":"  to prevent congestion at that host."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Providing a bandwidth guarantee for traffic coming from X.X.X.X"},{"line_number":46,"context_line":"  and TCP port YY to maintain a stable connection to a remote"},{"line_number":47,"context_line":"  volume hosted at X.X.X.X"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_8b60b634","line":47,"range":{"start_line":45,"start_character":2,"end_line":47,"end_character":26},"updated":"2019-09-07 08:29:03.000000000","message":"that will probably not have any effect with FIP if FIP !\u003d X.X.X.X :)","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"ef09d2034cabb3a19b74568f5f494b829c3491f1","unresolved":false,"context_lines":[{"line_number":42,"context_line":"* Bandwidth limiting traffic destined for IPv4 address X.X.X.X"},{"line_number":43,"context_line":"  to prevent congestion at that host."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Providing a bandwidth guarantee for traffic coming from X.X.X.X"},{"line_number":46,"context_line":"  and TCP port YY to maintain a stable connection to a remote"},{"line_number":47,"context_line":"  volume hosted at X.X.X.X"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_06658fb5","line":47,"range":{"start_line":45,"start_character":2,"end_line":47,"end_character":26},"in_reply_to":"5faad753_8b60b634","updated":"2019-09-09 15:00:08.000000000","message":"I\u0027m probably misunderstanding FIP, but doesn\u0027t it only change the instance IP?\nShouldn\u0027t the destination and source of the other IP stay the same?","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cea5c3bff8b65b3c2bfe1b86290612fe92e88d20","unresolved":false,"context_lines":[{"line_number":54,"context_line":"in a way that does not involve the introduction of external dependencies"},{"line_number":55,"context_line":"in Neutron, the Neutron Classifier service plugin will have to be migrated"},{"line_number":56,"context_line":"into the core Neutron repository."},{"line_number":57,"context_line":"Details of the resource models and API can be found \u0027here \u003chttps://review.opendev.org/#/c/333993/\u003e\u0027_"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The modifications required to Neutron\u0027s QoS extension is minimal,"},{"line_number":60,"context_line":"it involves the introduction of a new variable to the DSCP Marking rule."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_875f2271","line":57,"updated":"2019-09-10 12:50:01.000000000","message":"Please, put this link in \"References\", using\n\n [1]_     .. [1]\n\nIf this is a new paragraph, please add a line.","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"e0ec506c27a775f1e9a0e998e268b3cc60bc8c7e","unresolved":false,"context_lines":[{"line_number":54,"context_line":"in a way that does not involve the introduction of external dependencies"},{"line_number":55,"context_line":"in Neutron, the Neutron Classifier service plugin will have to be migrated"},{"line_number":56,"context_line":"into the core Neutron repository."},{"line_number":57,"context_line":"Details of the resource models and API can be found \u0027here \u003chttps://review.opendev.org/#/c/333993/\u003e\u0027_"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The modifications required to Neutron\u0027s QoS extension is minimal,"},{"line_number":60,"context_line":"it involves the introduction of a new variable to the DSCP Marking rule."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_743cd82e","line":57,"in_reply_to":"5faad753_875f2271","updated":"2019-10-09 16:06:15.000000000","message":"Done","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1dbb70c77684bff15b874edb18c38055e214b550","unresolved":false,"context_lines":[{"line_number":57,"context_line":"Details of the resource models and API can be found \u0027here \u003chttps://review.opendev.org/#/c/333993/\u003e\u0027_"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The modifications required to Neutron\u0027s QoS extension is minimal,"},{"line_number":60,"context_line":"it involves the introduction of a new variable to the DSCP Marking rule."},{"line_number":61,"context_line":"This variable takes an ID for a classification group (a collection of"},{"line_number":62,"context_line":"individual classifications) which the QoS backends can consume to target"},{"line_number":63,"context_line":"DSCP Marks to traffic classes as opposed to marking all traffic leaving"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_eb4e0ac0","line":60,"range":{"start_line":60,"start_character":54,"end_line":60,"end_character":71},"updated":"2019-09-07 08:29:03.000000000","message":"only to this one? What about bw limit rules and min bw rules?","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cea5c3bff8b65b3c2bfe1b86290612fe92e88d20","unresolved":false,"context_lines":[{"line_number":57,"context_line":"Details of the resource models and API can be found \u0027here \u003chttps://review.opendev.org/#/c/333993/\u003e\u0027_"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The modifications required to Neutron\u0027s QoS extension is minimal,"},{"line_number":60,"context_line":"it involves the introduction of a new variable to the DSCP Marking rule."},{"line_number":61,"context_line":"This variable takes an ID for a classification group (a collection of"},{"line_number":62,"context_line":"individual classifications) which the QoS backends can consume to target"},{"line_number":63,"context_line":"DSCP Marks to traffic classes as opposed to marking all traffic leaving"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_e7fdb63a","line":60,"range":{"start_line":60,"start_character":54,"end_line":60,"end_character":71},"in_reply_to":"5faad753_067b4f8c","updated":"2019-09-10 12:50:01.000000000","message":"That\u0027s the point, you are rising the expectations in \"Problem Description\" but here have the reality: this will affect DSCP only (at least with this spec)","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"e0ec506c27a775f1e9a0e998e268b3cc60bc8c7e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"Details of the resource models and API can be found \u0027here \u003chttps://review.opendev.org/#/c/333993/\u003e\u0027_"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The modifications required to Neutron\u0027s QoS extension is minimal,"},{"line_number":60,"context_line":"it involves the introduction of a new variable to the DSCP Marking rule."},{"line_number":61,"context_line":"This variable takes an ID for a classification group (a collection of"},{"line_number":62,"context_line":"individual classifications) which the QoS backends can consume to target"},{"line_number":63,"context_line":"DSCP Marks to traffic classes as opposed to marking all traffic leaving"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_94e634b0","line":60,"range":{"start_line":60,"start_character":54,"end_line":60,"end_character":71},"in_reply_to":"5faad753_e7fdb63a","updated":"2019-10-09 16:06:15.000000000","message":"Done","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"ef09d2034cabb3a19b74568f5f494b829c3491f1","unresolved":false,"context_lines":[{"line_number":57,"context_line":"Details of the resource models and API can be found \u0027here \u003chttps://review.opendev.org/#/c/333993/\u003e\u0027_"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The modifications required to Neutron\u0027s QoS extension is minimal,"},{"line_number":60,"context_line":"it involves the introduction of a new variable to the DSCP Marking rule."},{"line_number":61,"context_line":"This variable takes an ID for a classification group (a collection of"},{"line_number":62,"context_line":"individual classifications) which the QoS backends can consume to target"},{"line_number":63,"context_line":"DSCP Marks to traffic classes as opposed to marking all traffic leaving"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_067b4f8c","line":60,"range":{"start_line":60,"start_character":54,"end_line":60,"end_character":71},"in_reply_to":"5faad753_eb4e0ac0","updated":"2019-09-09 15:00:08.000000000","message":"The PoC submitted just has DSCP and I\u0027m basing this spec on that work.\nI can expand this spec to include the other rules and extend the PoC.","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cea5c3bff8b65b3c2bfe1b86290612fe92e88d20","unresolved":false,"context_lines":[{"line_number":63,"context_line":"DSCP Marks to traffic classes as opposed to marking all traffic leaving"},{"line_number":64,"context_line":"the port."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"In order to provide consistent functionality on upgrade the"},{"line_number":67,"context_line":"classification_group_id defaults to None, meaning a DSCP marking rule"},{"line_number":68,"context_line":"will behave the same way it did before the introduction of this feature."},{"line_number":69,"context_line":"A priority value will also be introduced, allowing admins to decide"},{"line_number":70,"context_line":"which DSCP marking rules should be applied in a case where 2 classifications"},{"line_number":71,"context_line":"overlap."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_d9173ea3","line":68,"range":{"start_line":66,"start_character":0,"end_line":68,"end_character":72},"updated":"2019-09-10 12:50:01.000000000","message":"This should be defined in the following section, \"data model impact\".","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"e0ec506c27a775f1e9a0e998e268b3cc60bc8c7e","unresolved":false,"context_lines":[{"line_number":63,"context_line":"DSCP Marks to traffic classes as opposed to marking all traffic leaving"},{"line_number":64,"context_line":"the port."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"In order to provide consistent functionality on upgrade the"},{"line_number":67,"context_line":"classification_group_id defaults to None, meaning a DSCP marking rule"},{"line_number":68,"context_line":"will behave the same way it did before the introduction of this feature."},{"line_number":69,"context_line":"A priority value will also be introduced, allowing admins to decide"},{"line_number":70,"context_line":"which DSCP marking rules should be applied in a case where 2 classifications"},{"line_number":71,"context_line":"overlap."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_144564b4","line":68,"range":{"start_line":66,"start_character":0,"end_line":68,"end_character":72},"in_reply_to":"5faad753_d9173ea3","updated":"2019-10-09 16:06:15.000000000","message":"Done","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cea5c3bff8b65b3c2bfe1b86290612fe92e88d20","unresolved":false,"context_lines":[{"line_number":66,"context_line":"In order to provide consistent functionality on upgrade the"},{"line_number":67,"context_line":"classification_group_id defaults to None, meaning a DSCP marking rule"},{"line_number":68,"context_line":"will behave the same way it did before the introduction of this feature."},{"line_number":69,"context_line":"A priority value will also be introduced, allowing admins to decide"},{"line_number":70,"context_line":"which DSCP marking rules should be applied in a case where 2 classifications"},{"line_number":71,"context_line":"overlap."},{"line_number":72,"context_line":"ie."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_b97922fd","line":69,"range":{"start_line":69,"start_character":2,"end_line":69,"end_character":16},"updated":"2019-09-10 12:50:01.000000000","message":"I see \"classification_priority\" is going to be an integer. Please, define if:\n- This is going to be just a positive integer.\n- Or a limited set (e.g.: 0 to 1000)\n\nBTW, please specify if the priority level increases with the value:\n0: low priority\n10: more priority\n20: even more priority","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"e0ec506c27a775f1e9a0e998e268b3cc60bc8c7e","unresolved":false,"context_lines":[{"line_number":66,"context_line":"In order to provide consistent functionality on upgrade the"},{"line_number":67,"context_line":"classification_group_id defaults to None, meaning a DSCP marking rule"},{"line_number":68,"context_line":"will behave the same way it did before the introduction of this feature."},{"line_number":69,"context_line":"A priority value will also be introduced, allowing admins to decide"},{"line_number":70,"context_line":"which DSCP marking rules should be applied in a case where 2 classifications"},{"line_number":71,"context_line":"overlap."},{"line_number":72,"context_line":"ie."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_3442e0ac","line":69,"range":{"start_line":69,"start_character":2,"end_line":69,"end_character":16},"in_reply_to":"5faad753_b97922fd","updated":"2019-10-09 16:06:15.000000000","message":"Done","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cea5c3bff8b65b3c2bfe1b86290612fe92e88d20","unresolved":false,"context_lines":[{"line_number":68,"context_line":"will behave the same way it did before the introduction of this feature."},{"line_number":69,"context_line":"A priority value will also be introduced, allowing admins to decide"},{"line_number":70,"context_line":"which DSCP marking rules should be applied in a case where 2 classifications"},{"line_number":71,"context_line":"overlap."},{"line_number":72,"context_line":"ie."},{"line_number":73,"context_line":"class_1 tcp destination port 80"},{"line_number":74,"context_line":"class_2 destination host 10.0.0.5"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_39dbf2ed","line":71,"range":{"start_line":71,"start_character":0,"end_line":71,"end_character":7},"updated":"2019-09-10 12:50:01.000000000","message":"Just to add a bit of context, please from [1] extract the types of traffic and add some examples of overlapping (as you did here, port 80 and dst 10.0.0.5).\n\n[1] https://review.opendev.org/#/c/333993/","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"e0ec506c27a775f1e9a0e998e268b3cc60bc8c7e","unresolved":false,"context_lines":[{"line_number":68,"context_line":"will behave the same way it did before the introduction of this feature."},{"line_number":69,"context_line":"A priority value will also be introduced, allowing admins to decide"},{"line_number":70,"context_line":"which DSCP marking rules should be applied in a case where 2 classifications"},{"line_number":71,"context_line":"overlap."},{"line_number":72,"context_line":"ie."},{"line_number":73,"context_line":"class_1 tcp destination port 80"},{"line_number":74,"context_line":"class_2 destination host 10.0.0.5"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_aeae7b7e","line":71,"range":{"start_line":71,"start_character":0,"end_line":71,"end_character":7},"in_reply_to":"5faad753_39dbf2ed","updated":"2019-10-09 16:06:15.000000000","message":"I think I\u0027ve addressed this comment.","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cea5c3bff8b65b3c2bfe1b86290612fe92e88d20","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"The QosDscpMarkingRule model currently looks like this:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"+--------------+-------+----------+--------+-----------------+------------+"},{"line_number":86,"context_line":"|Attribute     |Type   |Access    |Default |Validation/      |Description |"},{"line_number":87,"context_line":"|Name          |       |          |Value   |Conversion       |            |"},{"line_number":88,"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+"},{"line_number":89,"context_line":"|qos_policy_id |string |RO, all   |N/A     |uuid             | QoSPolicy  |"},{"line_number":90,"context_line":"|              |(UUID) |          |        |                 | reference  |"},{"line_number":91,"context_line":"+--------------+-------+----------+--------+-----------------+------------+"},{"line_number":92,"context_line":"|dscp_mark     |integer|RW, tenant|N/A     |0 and 56, except |            |"},{"line_number":93,"context_line":"|              |       |          |        |2-6, 42, 44, and | DSCP Mark  |"},{"line_number":94,"context_line":"|              |       |          |        |50-54            |            |"},{"line_number":95,"context_line":"+--------------+-------+----------+--------+-----------------+------------+"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The proposed change would result in the model looking like this:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_3989b2c9","line":94,"range":{"start_line":85,"start_character":1,"end_line":94,"end_character":75},"updated":"2019-09-10 12:50:01.000000000","message":"Not needed.","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"e0ec506c27a775f1e9a0e998e268b3cc60bc8c7e","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"The QosDscpMarkingRule model currently looks like this:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"+--------------+-------+----------+--------+-----------------+------------+"},{"line_number":86,"context_line":"|Attribute     |Type   |Access    |Default |Validation/      |Description |"},{"line_number":87,"context_line":"|Name          |       |          |Value   |Conversion       |            |"},{"line_number":88,"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+"},{"line_number":89,"context_line":"|qos_policy_id |string |RO, all   |N/A     |uuid             | QoSPolicy  |"},{"line_number":90,"context_line":"|              |(UUID) |          |        |                 | reference  |"},{"line_number":91,"context_line":"+--------------+-------+----------+--------+-----------------+------------+"},{"line_number":92,"context_line":"|dscp_mark     |integer|RW, tenant|N/A     |0 and 56, except |            |"},{"line_number":93,"context_line":"|              |       |          |        |2-6, 42, 44, and | DSCP Mark  |"},{"line_number":94,"context_line":"|              |       |          |        |50-54            |            |"},{"line_number":95,"context_line":"+--------------+-------+----------+--------+-----------------+------------+"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The proposed change would result in the model looking like this:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_bd2313a7","line":94,"range":{"start_line":85,"start_character":1,"end_line":94,"end_character":75},"in_reply_to":"5faad753_3989b2c9","updated":"2019-10-09 16:06:15.000000000","message":"Done","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cea5c3bff8b65b3c2bfe1b86290612fe92e88d20","unresolved":false,"context_lines":[{"line_number":99,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"},{"line_number":100,"context_line":"|Attribute               |Type   |Access    |Default |Validation/      |Description     |"},{"line_number":101,"context_line":"|Name                    |       |          |Value   |Conversion       |                |"},{"line_number":102,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":103,"context_line":"|qos_policy_id           |string |RO, all   |N/A     |uuid             | QoSPolicy      |"},{"line_number":104,"context_line":"|                        |(UUID) |          |        |                 | reference      |"},{"line_number":105,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_595b4e53","line":102,"updated":"2019-09-10 12:50:01.000000000","message":"Do not miss the \"id\" (not all objects have ID)","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"e0ec506c27a775f1e9a0e998e268b3cc60bc8c7e","unresolved":false,"context_lines":[{"line_number":99,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"},{"line_number":100,"context_line":"|Attribute               |Type   |Access    |Default |Validation/      |Description     |"},{"line_number":101,"context_line":"|Name                    |       |          |Value   |Conversion       |                |"},{"line_number":102,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":103,"context_line":"|qos_policy_id           |string |RO, all   |N/A     |uuid             | QoSPolicy      |"},{"line_number":104,"context_line":"|                        |(UUID) |          |        |                 | reference      |"},{"line_number":105,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_5d3c5fc7","line":102,"in_reply_to":"5faad753_595b4e53","updated":"2019-10-09 16:06:15.000000000","message":"Done","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cea5c3bff8b65b3c2bfe1b86290612fe92e88d20","unresolved":false,"context_lines":[{"line_number":103,"context_line":"|qos_policy_id           |string |RO, all   |N/A     |uuid             | QoSPolicy      |"},{"line_number":104,"context_line":"|                        |(UUID) |          |        |                 | reference      |"},{"line_number":105,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"},{"line_number":106,"context_line":"|dscp_mark               |integer|RW, tenant|N/A     |0 and 56, except |                |"},{"line_number":107,"context_line":"|                        |       |          |        |2-6, 42, 44, and | DSCP Mark      |"},{"line_number":108,"context_line":"|                        |       |          |        |50-54            |                |"},{"line_number":109,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_79b88a75","line":106,"range":{"start_line":106,"start_character":26,"end_line":106,"end_character":33},"updated":"2019-09-10 12:50:01.000000000","message":"integer (enum)","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"e0ec506c27a775f1e9a0e998e268b3cc60bc8c7e","unresolved":false,"context_lines":[{"line_number":103,"context_line":"|qos_policy_id           |string |RO, all   |N/A     |uuid             | QoSPolicy      |"},{"line_number":104,"context_line":"|                        |(UUID) |          |        |                 | reference      |"},{"line_number":105,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"},{"line_number":106,"context_line":"|dscp_mark               |integer|RW, tenant|N/A     |0 and 56, except |                |"},{"line_number":107,"context_line":"|                        |       |          |        |2-6, 42, 44, and | DSCP Mark      |"},{"line_number":108,"context_line":"|                        |       |          |        |50-54            |                |"},{"line_number":109,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_7d391bd5","line":106,"range":{"start_line":106,"start_character":26,"end_line":106,"end_character":33},"in_reply_to":"5faad753_79b88a75","updated":"2019-10-09 16:06:15.000000000","message":"Done","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cea5c3bff8b65b3c2bfe1b86290612fe92e88d20","unresolved":false,"context_lines":[{"line_number":107,"context_line":"|                        |       |          |        |2-6, 42, 44, and | DSCP Mark      |"},{"line_number":108,"context_line":"|                        |       |          |        |50-54            |                |"},{"line_number":109,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"},{"line_number":110,"context_line":"|classification_group_id |string |RW, all   |None    |uuid             | Classification |"},{"line_number":111,"context_line":"|                        |(UUID) |          |        |                 | Group          |"},{"line_number":112,"context_line":"|                        |       |          |        |                 | reference      |"},{"line_number":113,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_b963621a","line":110,"range":{"start_line":110,"start_character":38,"end_line":110,"end_character":41},"updated":"2019-09-10 12:50:01.000000000","message":"all? This should be tenant too, am I right?","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"e0ec506c27a775f1e9a0e998e268b3cc60bc8c7e","unresolved":false,"context_lines":[{"line_number":107,"context_line":"|                        |       |          |        |2-6, 42, 44, and | DSCP Mark      |"},{"line_number":108,"context_line":"|                        |       |          |        |50-54            |                |"},{"line_number":109,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"},{"line_number":110,"context_line":"|classification_group_id |string |RW, all   |None    |uuid             | Classification |"},{"line_number":111,"context_line":"|                        |(UUID) |          |        |                 | Group          |"},{"line_number":112,"context_line":"|                        |       |          |        |                 | reference      |"},{"line_number":113,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_1d3267f3","line":110,"range":{"start_line":110,"start_character":38,"end_line":110,"end_character":41},"in_reply_to":"5faad753_b963621a","updated":"2019-10-09 16:06:15.000000000","message":"Done","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cea5c3bff8b65b3c2bfe1b86290612fe92e88d20","unresolved":false,"context_lines":[{"line_number":111,"context_line":"|                        |(UUID) |          |        |                 | Group          |"},{"line_number":112,"context_line":"|                        |       |          |        |                 | reference      |"},{"line_number":113,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"},{"line_number":114,"context_line":"|classification_priority |integer|RW, all   |0       |A positive       | value to       |"},{"line_number":115,"context_line":"|                        |(UUID) |          |        |integer          | denote prioity |"},{"line_number":116,"context_line":"|                        |       |          |        |                 | of this rule   |"},{"line_number":117,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_d9665e2a","line":114,"range":{"start_line":114,"start_character":38,"end_line":114,"end_character":41},"updated":"2019-09-10 12:50:01.000000000","message":"ditto","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"e0ec506c27a775f1e9a0e998e268b3cc60bc8c7e","unresolved":false,"context_lines":[{"line_number":111,"context_line":"|                        |(UUID) |          |        |                 | Group          |"},{"line_number":112,"context_line":"|                        |       |          |        |                 | reference      |"},{"line_number":113,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"},{"line_number":114,"context_line":"|classification_priority |integer|RW, all   |0       |A positive       | value to       |"},{"line_number":115,"context_line":"|                        |(UUID) |          |        |integer          | denote prioity |"},{"line_number":116,"context_line":"|                        |       |          |        |                 | of this rule   |"},{"line_number":117,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_3d2f2389","line":114,"range":{"start_line":114,"start_character":38,"end_line":114,"end_character":41},"in_reply_to":"5faad753_d9665e2a","updated":"2019-10-09 16:06:15.000000000","message":"Done","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cea5c3bff8b65b3c2bfe1b86290612fe92e88d20","unresolved":false,"context_lines":[{"line_number":112,"context_line":"|                        |       |          |        |                 | reference      |"},{"line_number":113,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"},{"line_number":114,"context_line":"|classification_priority |integer|RW, all   |0       |A positive       | value to       |"},{"line_number":115,"context_line":"|                        |(UUID) |          |        |integer          | denote prioity |"},{"line_number":116,"context_line":"|                        |       |          |        |                 | of this rule   |"},{"line_number":117,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_593a6e34","line":115,"range":{"start_line":115,"start_character":27,"end_line":115,"end_character":31},"updated":"2019-09-10 12:50:01.000000000","message":"??","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"e0ec506c27a775f1e9a0e998e268b3cc60bc8c7e","unresolved":false,"context_lines":[{"line_number":112,"context_line":"|                        |       |          |        |                 | reference      |"},{"line_number":113,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"},{"line_number":114,"context_line":"|classification_priority |integer|RW, all   |0       |A positive       | value to       |"},{"line_number":115,"context_line":"|                        |(UUID) |          |        |integer          | denote prioity |"},{"line_number":116,"context_line":"|                        |       |          |        |                 | of this rule   |"},{"line_number":117,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_dd4daf72","line":115,"range":{"start_line":115,"start_character":27,"end_line":115,"end_character":31},"in_reply_to":"5faad753_593a6e34","updated":"2019-10-09 16:06:15.000000000","message":"Done","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cea5c3bff8b65b3c2bfe1b86290612fe92e88d20","unresolved":false,"context_lines":[{"line_number":115,"context_line":"|                        |(UUID) |          |        |integer          | denote prioity |"},{"line_number":116,"context_line":"|                        |       |          |        |                 | of this rule   |"},{"line_number":117,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"REST API Impact"},{"line_number":120,"context_line":"---------------"},{"line_number":121,"context_line":"Proposed attribute::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_acd23e5b","line":118,"updated":"2019-09-10 12:50:01.000000000","message":"You should also need to define the DB change: qos_policy_id won\u0027t be unique anymore. The constrain will be now \"qos_policy_id0classification_group_id\"\n\nIMPORTANT NOTE!!!\nWe can have classification_group_id \u003d None. I think we CAN have UniqueConstraint joining fields that can be nullable, but please check it.","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"af11767eaa4b9aa746ce40b77035a7ce08425881","unresolved":false,"context_lines":[{"line_number":115,"context_line":"|                        |(UUID) |          |        |integer          | denote prioity |"},{"line_number":116,"context_line":"|                        |       |          |        |                 | of this rule   |"},{"line_number":117,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"REST API Impact"},{"line_number":120,"context_line":"---------------"},{"line_number":121,"context_line":"Proposed attribute::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_64fb1147","line":118,"in_reply_to":"3fa7e38b_99da4049","updated":"2019-10-29 17:27:38.000000000","message":"Several DSCP marks with classification_group_id \u003d None,\nAs soon as you try to create a second one on a qos_policy that already has one it will fail (same mechanism as direction for BW limit + direction).\n\nIf you mean specifically the backend, like how does it interpret it, DSCP marking rules for OvS at least have the in_port as a matching criteria.","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2af4bdf3d0048ceaf563e95637fcc561363b3ba4","unresolved":false,"context_lines":[{"line_number":115,"context_line":"|                        |(UUID) |          |        |integer          | denote prioity |"},{"line_number":116,"context_line":"|                        |       |          |        |                 | of this rule   |"},{"line_number":117,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"REST API Impact"},{"line_number":120,"context_line":"---------------"},{"line_number":121,"context_line":"Proposed attribute::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_99da4049","line":118,"in_reply_to":"3fa7e38b_9d42d767","updated":"2019-10-21 16:39:50.000000000","message":"One question about this (and reviewing PS3). What is happening if you have several DSCP marks with classification_group_id \u003d None? Which one is going to be used in the backend agent now?","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"e0ec506c27a775f1e9a0e998e268b3cc60bc8c7e","unresolved":false,"context_lines":[{"line_number":115,"context_line":"|                        |(UUID) |          |        |integer          | denote prioity |"},{"line_number":116,"context_line":"|                        |       |          |        |                 | of this rule   |"},{"line_number":117,"context_line":"+------------------------+-------+----------+--------+-----------------+----------------+"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"REST API Impact"},{"line_number":120,"context_line":"---------------"},{"line_number":121,"context_line":"Proposed attribute::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_9d42d767","line":118,"in_reply_to":"5faad753_acd23e5b","updated":"2019-10-09 16:06:15.000000000","message":"Done,\nI\u0027ve validated that classification_group_id can be None in\nhttps://review.opendev.org/#/c/636333/","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1dbb70c77684bff15b874edb18c38055e214b550","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                        \u0027convert_to\u0027: attr.convert_to_int,"},{"line_number":146,"context_line":"                        \u0027is_visible\u0027: True,"},{"line_number":147,"context_line":"                        \u0027default\u0027: 0,"},{"line_number":148,"context_line":"                        \u0027validate\u0027: {\u0027type:values\u0027: range(10)}"},{"line_number":149,"context_line":"                }"},{"line_number":150,"context_line":"        }"},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_0b4cc6c5","line":148,"range":{"start_line":148,"start_character":52,"end_line":148,"end_character":61},"updated":"2019-09-07 08:29:03.000000000","message":"only 10 priorities? In L114 You don\u0027t mention that constraint.","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"ef09d2034cabb3a19b74568f5f494b829c3491f1","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                        \u0027convert_to\u0027: attr.convert_to_int,"},{"line_number":146,"context_line":"                        \u0027is_visible\u0027: True,"},{"line_number":147,"context_line":"                        \u0027default\u0027: 0,"},{"line_number":148,"context_line":"                        \u0027validate\u0027: {\u0027type:values\u0027: range(10)}"},{"line_number":149,"context_line":"                }"},{"line_number":150,"context_line":"        }"},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_860f3f2d","line":148,"range":{"start_line":148,"start_character":52,"end_line":148,"end_character":61},"in_reply_to":"5faad753_0b4cc6c5","updated":"2019-09-09 15:00:08.000000000","message":"I only put it in to have an example, do you have a recommendation for a value?","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cea5c3bff8b65b3c2bfe1b86290612fe92e88d20","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                        \u0027convert_to\u0027: attr.convert_to_int,"},{"line_number":146,"context_line":"                        \u0027is_visible\u0027: True,"},{"line_number":147,"context_line":"                        \u0027default\u0027: 0,"},{"line_number":148,"context_line":"                        \u0027validate\u0027: {\u0027type:values\u0027: range(10)}"},{"line_number":149,"context_line":"                }"},{"line_number":150,"context_line":"        }"},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5faad753_f92ebaa3","line":148,"range":{"start_line":148,"start_character":52,"end_line":148,"end_character":61},"in_reply_to":"5faad753_860f3f2d","updated":"2019-09-10 12:50:01.000000000","message":"As commented previously, if an interval is going to be defined, you should specify it. And, BTW, let\u0027s be generous: this could be 1000.","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"e0ec506c27a775f1e9a0e998e268b3cc60bc8c7e","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                        \u0027convert_to\u0027: attr.convert_to_int,"},{"line_number":146,"context_line":"                        \u0027is_visible\u0027: True,"},{"line_number":147,"context_line":"                        \u0027default\u0027: 0,"},{"line_number":148,"context_line":"                        \u0027validate\u0027: {\u0027type:values\u0027: range(10)}"},{"line_number":149,"context_line":"                }"},{"line_number":150,"context_line":"        }"},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_d4f02c6a","line":148,"range":{"start_line":148,"start_character":52,"end_line":148,"end_character":61},"in_reply_to":"5faad753_f92ebaa3","updated":"2019-10-09 16:06:15.000000000","message":"Done","commit_id":"c785f527ec857be383338d3b43e1f5412a682a04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2af4bdf3d0048ceaf563e95637fcc561363b3ba4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3fa7e38b_79a984db","line":43,"range":{"start_line":43,"start_character":25,"end_line":43,"end_character":29},"updated":"2019-10-21 16:39:50.000000000","message":"DSCP","commit_id":"df4a44cf2af97f2ea4b512e80a28c70e9cff7c85"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"af11767eaa4b9aa746ce40b77035a7ce08425881","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3fa7e38b_5c6236da","line":43,"range":{"start_line":43,"start_character":25,"end_line":43,"end_character":29},"in_reply_to":"3fa7e38b_79a984db","updated":"2019-10-29 17:27:38.000000000","message":"Done","commit_id":"df4a44cf2af97f2ea4b512e80a28c70e9cff7c85"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2af4bdf3d0048ceaf563e95637fcc561363b3ba4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3fa7e38b_d9e6784b","line":66,"range":{"start_line":66,"start_character":0,"end_line":66,"end_character":2},"updated":"2019-10-21 16:39:50.000000000","message":"I think this should be E.g.:","commit_id":"df4a44cf2af97f2ea4b512e80a28c70e9cff7c85"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"af11767eaa4b9aa746ce40b77035a7ce08425881","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3fa7e38b_bc632add","line":66,"range":{"start_line":66,"start_character":0,"end_line":66,"end_character":2},"in_reply_to":"3fa7e38b_d9e6784b","updated":"2019-10-29 17:27:38.000000000","message":"Done","commit_id":"df4a44cf2af97f2ea4b512e80a28c70e9cff7c85"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2af4bdf3d0048ceaf563e95637fcc561363b3ba4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3fa7e38b_99f00000","line":71,"range":{"start_line":67,"start_character":2,"end_line":71,"end_character":47},"updated":"2019-10-21 16:39:50.000000000","message":"Can you format this as code?","commit_id":"df4a44cf2af97f2ea4b512e80a28c70e9cff7c85"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"af11767eaa4b9aa746ce40b77035a7ce08425881","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3fa7e38b_9c68aeba","line":71,"range":{"start_line":67,"start_character":2,"end_line":71,"end_character":47},"in_reply_to":"3fa7e38b_99f00000","updated":"2019-10-29 17:27:38.000000000","message":"Done","commit_id":"df4a44cf2af97f2ea4b512e80a28c70e9cff7c85"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2af4bdf3d0048ceaf563e95637fcc561363b3ba4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3fa7e38b_b9f5bcef","line":73,"range":{"start_line":73,"start_character":0,"end_line":73,"end_character":1},"updated":"2019-10-21 16:39:50.000000000","message":"Uppercase","commit_id":"df4a44cf2af97f2ea4b512e80a28c70e9cff7c85"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"af11767eaa4b9aa746ce40b77035a7ce08425881","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3fa7e38b_fc71a2a9","line":73,"range":{"start_line":73,"start_character":0,"end_line":73,"end_character":1},"in_reply_to":"3fa7e38b_b9f5bcef","updated":"2019-10-29 17:27:38.000000000","message":"Done","commit_id":"df4a44cf2af97f2ea4b512e80a28c70e9cff7c85"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2af4bdf3d0048ceaf563e95637fcc561363b3ba4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3fa7e38b_d9cf58b1","line":116,"range":{"start_line":116,"start_character":0,"end_line":116,"end_character":3},"updated":"2019-10-21 16:39:50.000000000","message":"IMO, this should follow the previous line.","commit_id":"df4a44cf2af97f2ea4b512e80a28c70e9cff7c85"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"af11767eaa4b9aa746ce40b77035a7ce08425881","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3fa7e38b_dc6e26c8","line":116,"range":{"start_line":116,"start_character":0,"end_line":116,"end_character":3},"in_reply_to":"3fa7e38b_d9cf58b1","updated":"2019-10-29 17:27:38.000000000","message":"Done","commit_id":"df4a44cf2af97f2ea4b512e80a28c70e9cff7c85"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2af4bdf3d0048ceaf563e95637fcc561363b3ba4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3fa7e38b_79f3c4e8","line":120,"updated":"2019-10-21 16:39:50.000000000","message":"This spec is talking about the API and server level, no implementation yet in any backend. It that what you want?","commit_id":"df4a44cf2af97f2ea4b512e80a28c70e9cff7c85"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"af11767eaa4b9aa746ce40b77035a7ce08425881","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3fa7e38b_dcf14603","line":120,"in_reply_to":"3fa7e38b_79f3c4e8","updated":"2019-10-29 17:27:38.000000000","message":"I\u0027ll add some openflow examples and a brief summary of using the agent extensions API to query the classification group ids.","commit_id":"df4a44cf2af97f2ea4b512e80a28c70e9cff7c85"}],"specs/ussuri/qos_classifier.rst":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"d24ed0dd0908adb9a2cf36c800c83a7500ec1664","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"In order to consume the classification resources of the Neutron Classifier"},{"line_number":50,"context_line":"in a way that does not involve the introduction of external dependencies"},{"line_number":51,"context_line":"in Neutron, the Neutron Classifier service plugin will have to be migrated"},{"line_number":52,"context_line":"into the core Neutron repository."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Details of the resource models and API can be found here [1]_"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_6702b30a","line":51,"range":{"start_line":51,"start_character":16,"end_line":51,"end_character":49},"updated":"2019-12-10 04:05:11.000000000","message":"does it have hooks or something which allows non-rpc backend drivers (eg. midonet) to propagate models to their backends?","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"d24ed0dd0908adb9a2cf36c800c83a7500ec1664","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"In order to consume the classification resources of the Neutron Classifier"},{"line_number":50,"context_line":"in a way that does not involve the introduction of external dependencies"},{"line_number":51,"context_line":"in Neutron, the Neutron Classifier service plugin will have to be migrated"},{"line_number":52,"context_line":"into the core Neutron repository."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Details of the resource models and API can be found here [1]_"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_e715433f","line":51,"range":{"start_line":51,"start_character":55,"end_line":51,"end_character":62},"updated":"2019-12-10 04:05:11.000000000","message":"while i feel \"have to\" is a bit too strong, i agree it\u0027s the most straightforward way.","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"94df91397c4316011d619526760c9ad4c17eeab6","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"In order to consume the classification resources of the Neutron Classifier"},{"line_number":50,"context_line":"in a way that does not involve the introduction of external dependencies"},{"line_number":51,"context_line":"in Neutron, the Neutron Classifier service plugin will have to be migrated"},{"line_number":52,"context_line":"into the core Neutron repository."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Details of the resource models and API can be found here [1]_"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_9f960f94","line":51,"range":{"start_line":51,"start_character":16,"end_line":51,"end_character":49},"in_reply_to":"3fa7e38b_6702b30a","updated":"2019-12-10 14:47:19.000000000","message":"At the moment I\u0027m extending the AgentExtensionApi to include callbacks to the service plugin.\nhttps://review.opendev.org/#/c/670050/6/neutron/services/classification/agent_extension_api_mixin.py\nThose are RPC, do you have an example of some hooks that midonet uses for things like QoS?","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"94df91397c4316011d619526760c9ad4c17eeab6","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"In order to consume the classification resources of the Neutron Classifier"},{"line_number":50,"context_line":"in a way that does not involve the introduction of external dependencies"},{"line_number":51,"context_line":"in Neutron, the Neutron Classifier service plugin will have to be migrated"},{"line_number":52,"context_line":"into the core Neutron repository."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Details of the resource models and API can be found here [1]_"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_3feb5b12","line":51,"range":{"start_line":51,"start_character":55,"end_line":51,"end_character":62},"in_reply_to":"3fa7e38b_e715433f","updated":"2019-12-10 14:47:19.000000000","message":"does \"require\" sound ok?","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"fe6095f37effd358301aac77238886be7760bf94","unresolved":false,"context_lines":[{"line_number":49,"context_line":"In order to consume the classification resources of the Neutron Classifier"},{"line_number":50,"context_line":"in a way that does not involve the introduction of external dependencies"},{"line_number":51,"context_line":"in Neutron, the Neutron Classifier service plugin will have to be migrated"},{"line_number":52,"context_line":"into the core Neutron repository."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Details of the resource models and API can be found here [1]_"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_73791c2d","line":52,"updated":"2019-11-20 12:07:09.000000000","message":"It\u0027s quite a lot of code to be included in neutron tree for that, isn\u0027t it?\nWhat external dependencies we are talking about here exactly?","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0fec71642b98b6596a9cc34313de6a127cb32a72","unresolved":false,"context_lines":[{"line_number":49,"context_line":"In order to consume the classification resources of the Neutron Classifier"},{"line_number":50,"context_line":"in a way that does not involve the introduction of external dependencies"},{"line_number":51,"context_line":"in Neutron, the Neutron Classifier service plugin will have to be migrated"},{"line_number":52,"context_line":"into the core Neutron repository."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Details of the resource models and API can be found here [1]_"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_b8f8dac0","line":52,"in_reply_to":"3fa7e38b_00e2a230","updated":"2019-12-09 10:46:43.000000000","message":"ok, this was generally discussed during drivers meetings and I\u0027m ok with this.","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"7a0d0c995e62abbb0fe7f4c6ff8bb568177bb711","unresolved":false,"context_lines":[{"line_number":49,"context_line":"In order to consume the classification resources of the Neutron Classifier"},{"line_number":50,"context_line":"in a way that does not involve the introduction of external dependencies"},{"line_number":51,"context_line":"in Neutron, the Neutron Classifier service plugin will have to be migrated"},{"line_number":52,"context_line":"into the core Neutron repository."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Details of the resource models and API can be found here [1]_"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_00e2a230","line":52,"in_reply_to":"3fa7e38b_73791c2d","updated":"2019-11-22 16:44:38.000000000","message":"The issue we found for QoS was that there was no way to reference the classification objects in the DB while Neutron Classifier remained entirely separate.\n\nThings like foreign keys wouldn\u0027t work if Neutron Classifier\u0027s DB migration didn\u0027t go before QoS\u0027s DB migration referencing it, there were initial patches which just added the DB models, but at that point it was almost half of the Neutron classifier Service plugin to set them up correctly for unit/functional testing.","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"d24ed0dd0908adb9a2cf36c800c83a7500ec1664","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Details of the resource models and API can be found here [1]_"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"The modifications required to Neutron\u0027s QoS extension is minimal,"},{"line_number":57,"context_line":"it involves the introduction of a two variables to the DSCP Marking rule."},{"line_number":58,"context_line":"The first variable takes an ID for a classification group (a collection of"},{"line_number":59,"context_line":"individual classifications) which the QoS backends can consume to target"},{"line_number":60,"context_line":"DSCP Marks to traffic classes as opposed to marking all traffic leaving"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_a773cbb3","line":57,"range":{"start_line":57,"start_character":55,"end_line":57,"end_character":72},"updated":"2019-12-10 04:05:11.000000000","message":"DSCP marking here is just an example?\nor is the scope of this spec strictly limited to DSCP marking?\n\nif it\u0027s only about DSCP marking, can you change the title of the spec to make it clear?","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"94df91397c4316011d619526760c9ad4c17eeab6","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Details of the resource models and API can be found here [1]_"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"The modifications required to Neutron\u0027s QoS extension is minimal,"},{"line_number":57,"context_line":"it involves the introduction of a two variables to the DSCP Marking rule."},{"line_number":58,"context_line":"The first variable takes an ID for a classification group (a collection of"},{"line_number":59,"context_line":"individual classifications) which the QoS backends can consume to target"},{"line_number":60,"context_line":"DSCP Marks to traffic classes as opposed to marking all traffic leaving"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_ffc943aa","line":57,"range":{"start_line":57,"start_character":55,"end_line":57,"end_character":72},"in_reply_to":"3fa7e38b_a773cbb3","updated":"2019-12-10 14:47:19.000000000","message":"The current scope is limited to DSCP, I\u0027ll update the title, I won\u0027t update the file name yet, it can complicate the review when a file name changes and some comments get lost in the transition.","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"d24ed0dd0908adb9a2cf36c800c83a7500ec1664","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        --dscp-mark 22"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    openstack network classification create ethernet --ethertype 0x0800 \\"},{"line_number":74,"context_line":"        --name eth_ipv4"},{"line_number":75,"context_line":"    openstack network classification create tcp --dst-port-max 80 \\"},{"line_number":76,"context_line":"        --name tcp_80"},{"line_number":77,"context_line":"    openstack network classification group create \\"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_f4796fc5","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":14},"updated":"2019-12-10 04:05:11.000000000","message":"--name seems unusual for openstack cli.\nis this just showing how neutron-classifer is right now?","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"94df91397c4316011d619526760c9ad4c17eeab6","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        --dscp-mark 22"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    openstack network classification create ethernet --ethertype 0x0800 \\"},{"line_number":74,"context_line":"        --name eth_ipv4"},{"line_number":75,"context_line":"    openstack network classification create tcp --dst-port-max 80 \\"},{"line_number":76,"context_line":"        --name tcp_80"},{"line_number":77,"context_line":"    openstack network classification group create \\"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_3f627bae","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":14},"in_reply_to":"3fa7e38b_f4796fc5","updated":"2019-12-10 14:47:19.000000000","message":"Yes, the name is an optional parameter in the CLI mock up I made, I should make it a positional parameter now that you\u0027ve pointed it out.","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"d24ed0dd0908adb9a2cf36c800c83a7500ec1664","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    openstack network classification create tcp --dst-port-max 80 \\"},{"line_number":76,"context_line":"        --name tcp_80"},{"line_number":77,"context_line":"    openstack network classification group create \\"},{"line_number":78,"context_line":"        --classification tcp_80 eth_ipv4 --name class_1"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    openstack network qos rule create example_policy --type dscp-marking \\"},{"line_number":81,"context_line":"        --dscp-mark 28 --classification-group-id class_1 \\"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_d41c7378","line":78,"range":{"start_line":78,"start_character":8,"end_line":78,"end_character":40},"updated":"2019-12-10 04:05:11.000000000","message":"is this parsed as a list?","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"94df91397c4316011d619526760c9ad4c17eeab6","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    openstack network classification create tcp --dst-port-max 80 \\"},{"line_number":76,"context_line":"        --name tcp_80"},{"line_number":77,"context_line":"    openstack network classification group create \\"},{"line_number":78,"context_line":"        --classification tcp_80 eth_ipv4 --name class_1"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    openstack network qos rule create example_policy --type dscp-marking \\"},{"line_number":81,"context_line":"        --dscp-mark 28 --classification-group-id class_1 \\"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_5fd5f7e4","line":78,"range":{"start_line":78,"start_character":8,"end_line":78,"end_character":40},"in_reply_to":"3fa7e38b_d41c7378","updated":"2019-12-10 14:47:19.000000000","message":"Yup","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"d24ed0dd0908adb9a2cf36c800c83a7500ec1664","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Without a clear priority between the above classes there are instances where"},{"line_number":125,"context_line":"classes class_1, class_3, class_4 and class_5 will also match class_2."},{"line_number":126,"context_line":"Depending on the backend this can result in unpredictible behavior without"},{"line_number":127,"context_line":"a clear prioritization mechanism between traffic classes."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"To accomodate these changes, modifications will need to be made in the"},{"line_number":130,"context_line":"backend to allow drivers to retrieve the classification definitions from"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_473697e9","line":127,"range":{"start_line":126,"start_character":0,"end_line":127,"end_character":57},"updated":"2019-12-10 04:05:11.000000000","message":"is there any real use cases for this?\nhave you considered to require unique priorities?","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"94df91397c4316011d619526760c9ad4c17eeab6","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Without a clear priority between the above classes there are instances where"},{"line_number":125,"context_line":"classes class_1, class_3, class_4 and class_5 will also match class_2."},{"line_number":126,"context_line":"Depending on the backend this can result in unpredictible behavior without"},{"line_number":127,"context_line":"a clear prioritization mechanism between traffic classes."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"To accomodate these changes, modifications will need to be made in the"},{"line_number":130,"context_line":"backend to allow drivers to retrieve the classification definitions from"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_bf38ab3a","line":127,"range":{"start_line":126,"start_character":0,"end_line":127,"end_character":57},"in_reply_to":"3fa7e38b_473697e9","updated":"2019-12-10 14:47:19.000000000","message":"The use-case for priorities is outlined above, when there is overlap between traffic classes, which for more vague class definitions can be common, it\u0027s important to denote a relative priority between the classifications.\nI think unique priorities might be excessive.","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"13708c7c0c1aab84688db3abc4df15ae9bdd9ad7","unresolved":false,"context_lines":[{"line_number":172,"context_line":"the same policy, this includes when the classification_group_id is None."},{"line_number":173,"context_line":"As a result, a QosPolicy can only have a single DSCPMarkingRule with"},{"line_number":174,"context_line":"classification_group_id set to None."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"REST API Impact"},{"line_number":177,"context_line":"---------------"},{"line_number":178,"context_line":"Proposed attribute::"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_3fc9c950","line":175,"updated":"2019-11-27 09:09:46.000000000","message":"I would expect some reference here for the new  database schemas you plane to introduce in neutron db.","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e16cf240a13199f9564da1f99facbf20d7be0179","unresolved":false,"context_lines":[{"line_number":172,"context_line":"the same policy, this includes when the classification_group_id is None."},{"line_number":173,"context_line":"As a result, a QosPolicy can only have a single DSCPMarkingRule with"},{"line_number":174,"context_line":"classification_group_id set to None."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"REST API Impact"},{"line_number":177,"context_line":"---------------"},{"line_number":178,"context_line":"Proposed attribute::"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_95080a80","line":175,"in_reply_to":"3fa7e38b_13ed48b7","updated":"2019-12-12 14:59:28.000000000","message":"looking forward to reading it","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"94df91397c4316011d619526760c9ad4c17eeab6","unresolved":false,"context_lines":[{"line_number":172,"context_line":"the same policy, this includes when the classification_group_id is None."},{"line_number":173,"context_line":"As a result, a QosPolicy can only have a single DSCPMarkingRule with"},{"line_number":174,"context_line":"classification_group_id set to None."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"REST API Impact"},{"line_number":177,"context_line":"---------------"},{"line_number":178,"context_line":"Proposed attribute::"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_13ed48b7","line":175,"in_reply_to":"3fa7e38b_3fc9c950","updated":"2019-12-10 14:47:19.000000000","message":"Done","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"13708c7c0c1aab84688db3abc4df15ae9bdd9ad7","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"            }"},{"line_number":280,"context_line":"        }"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"References"},{"line_number":283,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":284,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_ffd251fd","line":281,"updated":"2019-11-27 09:09:46.000000000","message":"I would expect some reference again for the new API that you introduce to define the classifier resources that you can reference for QoS DSCP for example.","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"030f225450693826638bb8d8d113d9f8fe0fdb47","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"            }"},{"line_number":280,"context_line":"        }"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"References"},{"line_number":283,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":284,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_4a2190fb","line":281,"in_reply_to":"3fa7e38b_1543bab1","updated":"2019-12-30 10:54:25.000000000","message":"Ack","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e16cf240a13199f9564da1f99facbf20d7be0179","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"            }"},{"line_number":280,"context_line":"        }"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"References"},{"line_number":283,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":284,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_1543bab1","line":281,"in_reply_to":"3fa7e38b_1f13ffb9","updated":"2019-12-12 14:59:28.000000000","message":"Actually I meant how to use it for other neutron resources like security-groups for example if somebody has the strength to make that use the common classifier.\nI suppose a new contributor guide or similar would be the best.","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"94df91397c4316011d619526760c9ad4c17eeab6","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"            }"},{"line_number":280,"context_line":"        }"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"References"},{"line_number":283,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":284,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_1f13ffb9","line":281,"in_reply_to":"3fa7e38b_ffd251fd","updated":"2019-12-10 14:47:19.000000000","message":"I\u0027ve added a reference for getting the classification group, but do you mean creating it and passing it through?","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"13708c7c0c1aab84688db3abc4df15ae9bdd9ad7","unresolved":false,"context_lines":[{"line_number":279,"context_line":"            }"},{"line_number":280,"context_line":"        }"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"References"},{"line_number":283,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":".. [1] \u0027NC API spec"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_bf2b79e8","line":282,"updated":"2019-11-27 09:09:46.000000000","message":"As this will be a common thing that I suppose will be used later for other resources (like sec groups) I miss the part that makes sure that this feature will be a stable well documented part of neutron code base:\n\n* documentation\n** user doc of course\n** developer doc as I am sure that there will be new consumers soon for this common classifier\n\n* testing to make sure that it remains stable if other resources start using this feature.\n\n* upgrade, which you already mentioned in the db section.","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"94df91397c4316011d619526760c9ad4c17eeab6","unresolved":false,"context_lines":[{"line_number":279,"context_line":"            }"},{"line_number":280,"context_line":"        }"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"References"},{"line_number":283,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":".. [1] \u0027NC API spec"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_bf598b5b","line":282,"in_reply_to":"3fa7e38b_bf2b79e8","updated":"2019-12-10 14:47:19.000000000","message":"Ack, I\u0027ll begin drafting the user and developer docs.","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e16cf240a13199f9564da1f99facbf20d7be0179","unresolved":false,"context_lines":[{"line_number":279,"context_line":"            }"},{"line_number":280,"context_line":"        }"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"References"},{"line_number":283,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":".. [1] \u0027NC API spec"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_f507fe7f","line":282,"in_reply_to":"3fa7e38b_bf598b5b","updated":"2019-12-12 14:59:28.000000000","message":"For the spec I meant only to mention it to make it clear for everybody that it has effects on upgrade, docs whatever.","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"d24ed0dd0908adb9a2cf36c800c83a7500ec1664","unresolved":false,"context_lines":[{"line_number":283,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":".. [1] \u0027NC API spec"},{"line_number":286,"context_line":"   \u003chttps://specs.openstack.org/openstack/neutron-specs/specs/pike/common-classification-framework.html/\u003e\u0027_"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_547163dd","line":286,"range":{"start_line":286,"start_character":103,"end_line":286,"end_character":104},"updated":"2019-12-10 04:05:11.000000000","message":"extra / ?","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"94df91397c4316011d619526760c9ad4c17eeab6","unresolved":false,"context_lines":[{"line_number":283,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":".. [1] \u0027NC API spec"},{"line_number":286,"context_line":"   \u003chttps://specs.openstack.org/openstack/neutron-specs/specs/pike/common-classification-framework.html/\u003e\u0027_"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_e21c4a67","line":286,"range":{"start_line":286,"start_character":103,"end_line":286,"end_character":104},"in_reply_to":"3fa7e38b_547163dd","updated":"2019-12-10 14:47:19.000000000","message":"I\u0027ll fix this.","commit_id":"3edabc89e41d9bcda2fd91de1be10a2d7cd07bf3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a550996ba172c495cec1c879e03eef478b3f9261","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        eth_ipv4"},{"line_number":75,"context_line":"    openstack network classification create tcp --dst-port-max 80 \\"},{"line_number":76,"context_line":"        tcp_80"},{"line_number":77,"context_line":"    openstack network classification group create class_1 \\"},{"line_number":78,"context_line":"        --classification tcp_80 eth_ipv4"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    openstack network qos rule create example_policy --type dscp-marking \\"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_117952fa","line":77,"range":{"start_line":77,"start_character":50,"end_line":77,"end_character":57},"updated":"2019-12-17 11:12:09.000000000","message":"Names (mandatory fields) are parsed at the end of the command.","commit_id":"637dcf9aec003e74b8f34377b1be42ac52158635"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"030f225450693826638bb8d8d113d9f8fe0fdb47","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        eth_ipv4"},{"line_number":75,"context_line":"    openstack network classification create tcp --dst-port-max 80 \\"},{"line_number":76,"context_line":"        tcp_80"},{"line_number":77,"context_line":"    openstack network classification group create class_1 \\"},{"line_number":78,"context_line":"        --classification tcp_80 eth_ipv4"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    openstack network qos rule create example_policy --type dscp-marking \\"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_c16bd783","line":77,"range":{"start_line":77,"start_character":50,"end_line":77,"end_character":57},"in_reply_to":"3fa7e38b_117952fa","updated":"2019-12-30 10:54:25.000000000","message":"Name is positional, They can be assigned before or after.\nMy concern with putting it after is that the classification parsed list may consume it as another element and throw an error.\nI have the code for the OpenStack client here, https://review.opendev.org/#/c/687256/","commit_id":"637dcf9aec003e74b8f34377b1be42ac52158635"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"d37a725449fb30f86a169a9fb3e13ab23d30645c","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        eth_ipv4"},{"line_number":75,"context_line":"    openstack network classification create tcp --dst-port-max 80 \\"},{"line_number":76,"context_line":"        tcp_80"},{"line_number":77,"context_line":"    openstack network classification group create class_1 \\"},{"line_number":78,"context_line":"        --classification tcp_80 eth_ipv4"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    openstack network qos rule create example_policy --type dscp-marking \\"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_49af9a7b","line":77,"range":{"start_line":77,"start_character":50,"end_line":77,"end_character":57},"in_reply_to":"3fa7e38b_13fd4f3a","updated":"2020-01-06 14:04:11.000000000","message":"kk, If I update how the list of classifications are taken in should I update the spec?","commit_id":"637dcf9aec003e74b8f34377b1be42ac52158635"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"88858bad969c8fb8b95443da56e274a2ebb31e0b","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        eth_ipv4"},{"line_number":75,"context_line":"    openstack network classification create tcp --dst-port-max 80 \\"},{"line_number":76,"context_line":"        tcp_80"},{"line_number":77,"context_line":"    openstack network classification group create class_1 \\"},{"line_number":78,"context_line":"        --classification tcp_80 eth_ipv4"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    openstack network qos rule create example_policy --type dscp-marking \\"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_ed852f5a","line":77,"range":{"start_line":77,"start_character":50,"end_line":77,"end_character":57},"in_reply_to":"3fa7e38b_49af9a7b","updated":"2020-01-06 16:08:30.000000000","message":"This is just a nit. The implementation can be handle in the patch itself. IMO, you don\u0027t need to change the spec for this.","commit_id":"637dcf9aec003e74b8f34377b1be42ac52158635"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7315a1f3a1919cb462c6c6ba96c9e29cff1eddea","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        eth_ipv4"},{"line_number":75,"context_line":"    openstack network classification create tcp --dst-port-max 80 \\"},{"line_number":76,"context_line":"        tcp_80"},{"line_number":77,"context_line":"    openstack network classification group create class_1 \\"},{"line_number":78,"context_line":"        --classification tcp_80 eth_ipv4"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    openstack network qos rule create example_policy --type dscp-marking \\"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_13fd4f3a","line":77,"range":{"start_line":77,"start_character":50,"end_line":77,"end_character":57},"in_reply_to":"3fa7e38b_c16bd783","updated":"2020-01-06 11:26:43.000000000","message":"According to this patch:\n- name is not positional, but an optional argument\n- in OSclient, names are usually positional arguments and are given at the end of the command.","commit_id":"637dcf9aec003e74b8f34377b1be42ac52158635"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a550996ba172c495cec1c879e03eef478b3f9261","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    openstack network classification create ipv4 --dst-addr 10.0.0.5 \\"},{"line_number":85,"context_line":"        ipv4_dst"},{"line_number":86,"context_line":"    openstack network classification group create class_2 \\"},{"line_number":87,"context_line":"        --classification ipv4_dst"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    openstack network qos rule create example_policy --type dscp-marking \\"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_b17ddee7","line":86,"range":{"start_line":86,"start_character":50,"end_line":86,"end_character":57},"updated":"2019-12-17 11:12:09.000000000","message":"ditto, and class_3 and class_4","commit_id":"637dcf9aec003e74b8f34377b1be42ac52158635"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"030f225450693826638bb8d8d113d9f8fe0fdb47","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    openstack network classification create ipv4 --dst-addr 10.0.0.5 \\"},{"line_number":85,"context_line":"        ipv4_dst"},{"line_number":86,"context_line":"    openstack network classification group create class_2 \\"},{"line_number":87,"context_line":"        --classification ipv4_dst"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    openstack network qos rule create example_policy --type dscp-marking \\"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_6fb445f2","line":86,"range":{"start_line":86,"start_character":50,"end_line":86,"end_character":57},"in_reply_to":"3fa7e38b_b17ddee7","updated":"2019-12-30 10:54:25.000000000","message":"ditto","commit_id":"637dcf9aec003e74b8f34377b1be42ac52158635"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"344b190d5b3d61ec88c635c4a40d581e091847da","unresolved":false,"context_lines":[{"line_number":173,"context_line":"As a result, a QosPolicy can only have a single DSCPMarkingRule with"},{"line_number":174,"context_line":"classification_group_id set to None."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Neutron DB table: DSCPMarkingRule"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"* id: primary key"},{"line_number":179,"context_line":"* qos_policy_id: foreign key to QoSPolicy.id"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_e7d986f0","line":176,"range":{"start_line":176,"start_character":18,"end_line":176,"end_character":33},"updated":"2019-12-13 12:22:36.000000000","message":"QosDscpMarkingRule","commit_id":"637dcf9aec003e74b8f34377b1be42ac52158635"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"030f225450693826638bb8d8d113d9f8fe0fdb47","unresolved":false,"context_lines":[{"line_number":173,"context_line":"As a result, a QosPolicy can only have a single DSCPMarkingRule with"},{"line_number":174,"context_line":"classification_group_id set to None."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Neutron DB table: DSCPMarkingRule"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"* id: primary key"},{"line_number":179,"context_line":"* qos_policy_id: foreign key to QoSPolicy.id"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_ccf8e74b","line":176,"range":{"start_line":176,"start_character":18,"end_line":176,"end_character":33},"in_reply_to":"3fa7e38b_e7d986f0","updated":"2019-12-30 10:54:25.000000000","message":"Done","commit_id":"637dcf9aec003e74b8f34377b1be42ac52158635"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"344b190d5b3d61ec88c635c4a40d581e091847da","unresolved":false,"context_lines":[{"line_number":180,"context_line":"* dscp_mark: Integer within a defined set of values."},{"line_number":181,"context_line":"* classification_group_id: foreign key to ClassificationGroup.id"},{"line_number":182,"context_line":"* classification_priority: positive integer between 0 and 1000"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"REST API Impact"},{"line_number":185,"context_line":"---------------"},{"line_number":186,"context_line":"Proposed attribute::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_8761b213","line":183,"updated":"2019-12-13 12:22:36.000000000","message":"From https://review.opendev.org/670050 I see new db models (ClassificationGroup, CGToClassificationMapping, CGToClassificationGroupMapping...)\n\nJust a kind of hint about the new tables is enough I think in a spec.","commit_id":"637dcf9aec003e74b8f34377b1be42ac52158635"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"030f225450693826638bb8d8d113d9f8fe0fdb47","unresolved":false,"context_lines":[{"line_number":180,"context_line":"* dscp_mark: Integer within a defined set of values."},{"line_number":181,"context_line":"* classification_group_id: foreign key to ClassificationGroup.id"},{"line_number":182,"context_line":"* classification_priority: positive integer between 0 and 1000"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"REST API Impact"},{"line_number":185,"context_line":"---------------"},{"line_number":186,"context_line":"Proposed attribute::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_8fb741f9","line":183,"in_reply_to":"3fa7e38b_1162b23e","updated":"2019-12-30 10:54:25.000000000","message":"Done, I want to draw attention as well to the removal of the negated field from classifications, I don\u0027t think there is a way to define a negitive classification in most backends reliably, but let me know your thoughts.\n\nI also spoke to Rodolfo about enforcing structure to the API, I\u0027ve added a note about it too.","commit_id":"637dcf9aec003e74b8f34377b1be42ac52158635"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a550996ba172c495cec1c879e03eef478b3f9261","unresolved":false,"context_lines":[{"line_number":180,"context_line":"* dscp_mark: Integer within a defined set of values."},{"line_number":181,"context_line":"* classification_group_id: foreign key to ClassificationGroup.id"},{"line_number":182,"context_line":"* classification_priority: positive integer between 0 and 1000"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"REST API Impact"},{"line_number":185,"context_line":"---------------"},{"line_number":186,"context_line":"Proposed attribute::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_1162b23e","line":183,"in_reply_to":"3fa7e38b_27079e1f","updated":"2019-12-17 11:12:09.000000000","message":"Exactly, an updated copy/paste from [1] could be enough. It is important to see the tables and the relationships between them (classification_groups_mapping \u003c-\u003e classification_groups)\n\n[1] https://specs.openstack.org/openstack/neutron-specs/specs/backlog/pike/common-classification-framework.html#data-model-impact","commit_id":"637dcf9aec003e74b8f34377b1be42ac52158635"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"ad889944be56aceba7e4e584f6709168da68f47f","unresolved":false,"context_lines":[{"line_number":180,"context_line":"* dscp_mark: Integer within a defined set of values."},{"line_number":181,"context_line":"* classification_group_id: foreign key to ClassificationGroup.id"},{"line_number":182,"context_line":"* classification_priority: positive integer between 0 and 1000"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"REST API Impact"},{"line_number":185,"context_line":"---------------"},{"line_number":186,"context_line":"Proposed attribute::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_27079e1f","line":183,"in_reply_to":"3fa7e38b_8761b213","updated":"2019-12-13 12:23:41.000000000","message":"I found it here: https://specs.openstack.org/openstack/neutron-specs/specs/backlog/pike/common-classification-framework.html#data-model-impact\n\nThat\u0027s still relevant as I see, am I right?","commit_id":"637dcf9aec003e74b8f34377b1be42ac52158635"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"344b190d5b3d61ec88c635c4a40d581e091847da","unresolved":false,"context_lines":[{"line_number":310,"context_line":"            }"},{"line_number":311,"context_line":"        }"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"Documentation Impact"},{"line_number":314,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"User Documentation"},{"line_number":317,"context_line":"------------------"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"Existing `Networking Guide`_ will be updated for this feature."},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"Existing `CLI guide`_ will be updated for this feature."},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"Developer Documentation"},{"line_number":324,"context_line":"-----------------------"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"Existing `QoS devref document`_ will be updated for this feature."},{"line_number":327,"context_line":"A New Document will be drafted for the Neutron Classifier API also."},{"line_number":328,"context_line":""},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"API Documentation"},{"line_number":331,"context_line":"-----------------"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"Existing `QoS API documentation`_ will be updated for this feature."},{"line_number":334,"context_line":"A New Document will be drafted for the Neutron Classifier API also."},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"References"},{"line_number":337,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_07d942f2","line":334,"range":{"start_line":313,"start_character":0,"end_line":334,"end_character":67},"updated":"2019-12-13 12:22:36.000000000","message":"Thanks","commit_id":"637dcf9aec003e74b8f34377b1be42ac52158635"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"030f225450693826638bb8d8d113d9f8fe0fdb47","unresolved":false,"context_lines":[{"line_number":310,"context_line":"            }"},{"line_number":311,"context_line":"        }"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"Documentation Impact"},{"line_number":314,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"User Documentation"},{"line_number":317,"context_line":"------------------"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"Existing `Networking Guide`_ will be updated for this feature."},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"Existing `CLI guide`_ will be updated for this feature."},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"Developer Documentation"},{"line_number":324,"context_line":"-----------------------"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"Existing `QoS devref document`_ will be updated for this feature."},{"line_number":327,"context_line":"A New Document will be drafted for the Neutron Classifier API also."},{"line_number":328,"context_line":""},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"API Documentation"},{"line_number":331,"context_line":"-----------------"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"Existing `QoS API documentation`_ will be updated for this feature."},{"line_number":334,"context_line":"A New Document will be drafted for the Neutron Classifier API also."},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"References"},{"line_number":337,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_afba3ddd","line":334,"range":{"start_line":313,"start_character":0,"end_line":334,"end_character":67},"in_reply_to":"3fa7e38b_07d942f2","updated":"2019-12-30 10:54:25.000000000","message":"No problem, thanks for pointing it out!","commit_id":"637dcf9aec003e74b8f34377b1be42ac52158635"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"d80fc9bcf7e76f0330c0b0c235e587aedbe4c7b5","unresolved":false,"context_lines":[{"line_number":233,"context_line":" |                      |         | project|           |             |                             |"},{"line_number":234,"context_line":" +----------------------+---------+--------+-----------+-------------+-----------------------------+"},{"line_number":235,"context_line":" | shared               | bool    | RW,    | False     | boolean     | Shared with other projects  |"},{"line_number":236,"context_line":" |                      |         | project|           |             |                             |"},{"line_number":237,"context_line":" +----------------------+---------+--------+-----------+-------------+-----------------------------+"},{"line_number":238,"context_line":" | operator             | string  | RW*,   | \"and\"     | [\"and\",     | Boolean connective: AND/OR  |"},{"line_number":239,"context_line":" |                      | (values)| project|           |  \"or\"]      |                             |"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_bca6c3bf","line":236,"updated":"2020-01-06 20:24:19.000000000","message":"will it be shared through RBAC mechanism or it will be simple shared with all tenants or with no one?","commit_id":"86e51045abf715dbbf442d1f03e249bdd6b73c39"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ecb97e167b3a46e236457c62d10e4b3502409c94","unresolved":false,"context_lines":[{"line_number":233,"context_line":" |                      |         | project|           |             |                             |"},{"line_number":234,"context_line":" +----------------------+---------+--------+-----------+-------------+-----------------------------+"},{"line_number":235,"context_line":" | shared               | bool    | RW,    | False     | boolean     | Shared with other projects  |"},{"line_number":236,"context_line":" |                      |         | project|           |             |                             |"},{"line_number":237,"context_line":" +----------------------+---------+--------+-----------+-------------+-----------------------------+"},{"line_number":238,"context_line":" | operator             | string  | RW*,   | \"and\"     | [\"and\",     | Boolean connective: AND/OR  |"},{"line_number":239,"context_line":" |                      | (values)| project|           |  \"or\"]      |                             |"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_b7a0c737","line":236,"in_reply_to":"3fa7e38b_96c35b06","updated":"2020-01-08 09:15:43.000000000","message":"if it will be RBAC mechanism, do we need this flag here? I think that separate table like e.g. \"qospolicyrbacs\" will be need in such case instead of flag \"shared\".","commit_id":"86e51045abf715dbbf442d1f03e249bdd6b73c39"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"f0e7ad23677a689702c52deba562b837e18e9317","unresolved":false,"context_lines":[{"line_number":233,"context_line":" |                      |         | project|           |             |                             |"},{"line_number":234,"context_line":" +----------------------+---------+--------+-----------+-------------+-----------------------------+"},{"line_number":235,"context_line":" | shared               | bool    | RW,    | False     | boolean     | Shared with other projects  |"},{"line_number":236,"context_line":" |                      |         | project|           |             |                             |"},{"line_number":237,"context_line":" +----------------------+---------+--------+-----------+-------------+-----------------------------+"},{"line_number":238,"context_line":" | operator             | string  | RW*,   | \"and\"     | [\"and\",     | Boolean connective: AND/OR  |"},{"line_number":239,"context_line":" |                      | (values)| project|           |  \"or\"]      |                             |"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_d5597b29","line":236,"in_reply_to":"3fa7e38b_b7a0c737","updated":"2020-01-13 16:21:26.000000000","message":"I think QoS has both the RBAC table and the Shared flag, should it be one or the other?","commit_id":"86e51045abf715dbbf442d1f03e249bdd6b73c39"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"501259e3f1c01903f0680b8f8fbc34555b59fe39","unresolved":false,"context_lines":[{"line_number":233,"context_line":" |                      |         | project|           |             |                             |"},{"line_number":234,"context_line":" +----------------------+---------+--------+-----------+-------------+-----------------------------+"},{"line_number":235,"context_line":" | shared               | bool    | RW,    | False     | boolean     | Shared with other projects  |"},{"line_number":236,"context_line":" |                      |         | project|           |             |                             |"},{"line_number":237,"context_line":" +----------------------+---------+--------+-----------+-------------+-----------------------------+"},{"line_number":238,"context_line":" | operator             | string  | RW*,   | \"and\"     | [\"and\",     | Boolean connective: AND/OR  |"},{"line_number":239,"context_line":" |                      | (values)| project|           |  \"or\"]      |                             |"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_96c35b06","line":236,"in_reply_to":"3fa7e38b_bca6c3bf","updated":"2020-01-07 14:04:49.000000000","message":"It\u0027ll use the RBAC mechanism.","commit_id":"86e51045abf715dbbf442d1f03e249bdd6b73c39"}]}
