)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"b18d1cb682db2b37c3e5eac645dc209d72347405","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Migrate from ofctl to native QoS DSCP"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Neutron migrated from using ofctl from the command line in Rocky."},{"line_number":10,"context_line":"This patch refactors DSCPs OvS backend to use native rather than"},{"line_number":11,"context_line":"ofctl."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_b7e7670f","line":9,"range":{"start_line":9,"start_character":59,"end_line":9,"end_character":64},"updated":"2019-11-21 16:38:17.000000000","message":"I think this happened in Rocky?\nOr was it further back?","commit_id":"3836f7310ef86d73b0f5289f895af2c3b31752dc"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"258de4f1ce9bbdba4d329b8bf0bcbf50a1f8056f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Migrate from ofctl to native QoS DSCP"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Neutron migrated from using ofctl from the command line in Rocky."},{"line_number":10,"context_line":"This patch refactors DSCPs OvS backend to use native rather than"},{"line_number":11,"context_line":"ofctl."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_a0262e66","line":9,"range":{"start_line":9,"start_character":59,"end_line":9,"end_character":64},"in_reply_to":"3fa7e38b_b7e7670f","updated":"2019-11-22 16:50:48.000000000","message":"It was Pike.","commit_id":"3836f7310ef86d73b0f5289f895af2c3b31752dc"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"940df3a066fb22d829e649e137b043ef3d58ec65","unresolved":false,"context_lines":[{"line_number":11,"context_line":"ofctl and deprecates the run_ofctl function in ovs_lib.OVSBridge."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id9ab0eaf92b6ec6d5c9197bee60d324ffcb192a8"},{"line_number":14,"context_line":"Closes-Bug: #1853171"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3fa7e38b_76d70ac2","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":20},"updated":"2019-12-04 16:51:09.000000000","message":"Do you want to close the bug now at deprecation or later when actually removing the code? Keeping it open may help remembering to remove.","commit_id":"81f77aa1c9889e61859d5a80edb9485a93c21599"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c364f23fe4b4221bd8f943d9fb95b293c546c7a5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"ofctl and deprecates the run_ofctl function in ovs_lib.OVSBridge."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id9ab0eaf92b6ec6d5c9197bee60d324ffcb192a8"},{"line_number":14,"context_line":"Closes-Bug: #1853171"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3fa7e38b_dcd05fcb","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":20},"in_reply_to":"3fa7e38b_76d70ac2","updated":"2019-12-04 18:57:02.000000000","message":"+1","commit_id":"81f77aa1c9889e61859d5a80edb9485a93c21599"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"79fa0564e8f1a11785c919177b907d0908fe5964","unresolved":false,"context_lines":[{"line_number":11,"context_line":"ofctl and deprecates the run_ofctl function in ovs_lib.OVSBridge."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id9ab0eaf92b6ec6d5c9197bee60d324ffcb192a8"},{"line_number":14,"context_line":"Closes-Bug: #1853171"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3fa7e38b_377742d4","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":20},"in_reply_to":"3fa7e38b_76d70ac2","updated":"2019-12-05 12:09:17.000000000","message":"Done","commit_id":"81f77aa1c9889e61859d5a80edb9485a93c21599"}],"neutron/agent/common/ovs_lib.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c8efc3f74b2947027f5446cfff6acdcd4fae094c","unresolved":false,"context_lines":[{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    def run_ofctl(self, cmd, args, process_input\u003dNone):"},{"line_number":345,"context_line":"        debtcollector.deprecate(\"Use of this functions is \""},{"line_number":346,"context_line":"            \"deprecated\", removal_version\u003d\u0027V\u0027)"},{"line_number":347,"context_line":"        full_args \u003d [\"ovs-ofctl\", cmd,"},{"line_number":348,"context_line":"                     \"-O\", self._highest_protocol_needed,"},{"line_number":349,"context_line":"                     self.br_name] + args"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_e68c3e36","line":346,"updated":"2019-11-22 18:26:19.000000000","message":"Hmmm, can you propose this in a single patch? Related to https://bugs.launchpad.net/neutron/+bug/185317, just to encourage the community to migrate to native implementation.","commit_id":"923adb2d296c0358ec7818a61721556518492d4f"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"89d31d0ed1d1e3ed1c35aca044dac1784ec958da","unresolved":false,"context_lines":[{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    def run_ofctl(self, cmd, args, process_input\u003dNone):"},{"line_number":345,"context_line":"        debtcollector.deprecate(\"Use of this functions is \""},{"line_number":346,"context_line":"            \"deprecated\", removal_version\u003d\u0027V\u0027)"},{"line_number":347,"context_line":"        full_args \u003d [\"ovs-ofctl\", cmd,"},{"line_number":348,"context_line":"                     \"-O\", self._highest_protocol_needed,"},{"line_number":349,"context_line":"                     self.br_name] + args"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_66583cf8","line":346,"in_reply_to":"3fa7e38b_e68c3e36","updated":"2019-11-25 18:08:19.000000000","message":"ack, changing it to W, I figured since this was deprecated back in Pike we didn\u0027t need the same length of time to deprecate this function.","commit_id":"923adb2d296c0358ec7818a61721556518492d4f"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"940df3a066fb22d829e649e137b043ef3d58ec65","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        self.ovsdb.del_port(port_name, self.br_name).execute()"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def run_ofctl(self, cmd, args, process_input\u003dNone):"},{"line_number":346,"context_line":"        debtcollector.deprecate(\"Use of this functions is \""},{"line_number":347,"context_line":"            \"deprecated\", removal_version\u003d\u0027V\u0027)"},{"line_number":348,"context_line":"        full_args \u003d [\"ovs-ofctl\", cmd,"},{"line_number":349,"context_line":"                     \"-O\", self._highest_protocol_needed,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_56d20eff","line":346,"range":{"start_line":346,"start_character":40,"end_line":346,"end_character":54},"updated":"2019-12-04 16:51:09.000000000","message":"Could be a bit more helpful saying: \"Use of run_ofctl ...\"\n\ncodesearch says networking-sfc and networking-bagpipe still uses run-ofctl, but only in a handful calls, so there won\u0027t be many deprecation warnings.","commit_id":"81f77aa1c9889e61859d5a80edb9485a93c21599"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c364f23fe4b4221bd8f943d9fb95b293c546c7a5","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        self.ovsdb.del_port(port_name, self.br_name).execute()"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def run_ofctl(self, cmd, args, process_input\u003dNone):"},{"line_number":346,"context_line":"        debtcollector.deprecate(\"Use of this functions is \""},{"line_number":347,"context_line":"            \"deprecated\", removal_version\u003d\u0027V\u0027)"},{"line_number":348,"context_line":"        full_args \u003d [\"ovs-ofctl\", cmd,"},{"line_number":349,"context_line":"                     \"-O\", self._highest_protocol_needed,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_7cd7ebc1","line":346,"range":{"start_line":346,"start_character":40,"end_line":346,"end_character":54},"in_reply_to":"3fa7e38b_56d20eff","updated":"2019-12-04 18:57:02.000000000","message":"+1","commit_id":"81f77aa1c9889e61859d5a80edb9485a93c21599"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"79fa0564e8f1a11785c919177b907d0908fe5964","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        self.ovsdb.del_port(port_name, self.br_name).execute()"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def run_ofctl(self, cmd, args, process_input\u003dNone):"},{"line_number":346,"context_line":"        debtcollector.deprecate(\"Use of this functions is \""},{"line_number":347,"context_line":"            \"deprecated\", removal_version\u003d\u0027V\u0027)"},{"line_number":348,"context_line":"        full_args \u003d [\"ovs-ofctl\", cmd,"},{"line_number":349,"context_line":"                     \"-O\", self._highest_protocol_needed,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_f74e8a94","line":346,"range":{"start_line":346,"start_character":40,"end_line":346,"end_character":54},"in_reply_to":"3fa7e38b_56d20eff","updated":"2019-12-05 12:09:17.000000000","message":"Done","commit_id":"81f77aa1c9889e61859d5a80edb9485a93c21599"}],"neutron/plugins/ml2/drivers/openvswitch/agent/extension_drivers/qos_driver.py":[{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"b72b3bc414ece53122a98e47dad12bb622cec625","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        # By loading a value into this field and checking if the value is"},{"line_number":124,"context_line":"        # altered it allows the packet to be resubmitted and go through"},{"line_number":125,"context_line":"        # the flow table again to be identified by other flows."},{"line_number":126,"context_line":"        (dp, ofp, ofpp) \u003d self.br_int._get_dp()"},{"line_number":127,"context_line":"        actions \u003d [ofpp.OFPActionSetField(reg2\u003d1),"},{"line_number":128,"context_line":"                   ofpp.OFPActionSetField(ip_dscp\u003drule.dscp_mark),"},{"line_number":129,"context_line":"                   ofpp.NXActionResubmit(in_port\u003dport)]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_97502bd7","line":126,"range":{"start_line":126,"start_character":38,"end_line":126,"end_character":47},"updated":"2019-11-21 16:36:58.000000000","message":"This is a private function, should I make a public wrapper if we plan on giving extensions access to it?","commit_id":"3836f7310ef86d73b0f5289f895af2c3b31752dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4d66e0230123e1c4bf4688735d2ca07d07a070f1","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        # By loading a value into this field and checking if the value is"},{"line_number":124,"context_line":"        # altered it allows the packet to be resubmitted and go through"},{"line_number":125,"context_line":"        # the flow table again to be identified by other flows."},{"line_number":126,"context_line":"        (dp, ofp, ofpp) \u003d self.br_int._get_dp()"},{"line_number":127,"context_line":"        actions \u003d [ofpp.OFPActionSetField(reg2\u003d1),"},{"line_number":128,"context_line":"                   ofpp.OFPActionSetField(ip_dscp\u003drule.dscp_mark),"},{"line_number":129,"context_line":"                   ofpp.NXActionResubmit(in_port\u003dport)]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_59f15eff","line":126,"range":{"start_line":126,"start_character":38,"end_line":126,"end_character":47},"in_reply_to":"3fa7e38b_47309a55","updated":"2019-11-25 18:47:56.000000000","message":"And what about moving this to openflow.native.br_int?","commit_id":"3836f7310ef86d73b0f5289f895af2c3b31752dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c8efc3f74b2947027f5446cfff6acdcd4fae094c","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        # By loading a value into this field and checking if the value is"},{"line_number":124,"context_line":"        # altered it allows the packet to be resubmitted and go through"},{"line_number":125,"context_line":"        # the flow table again to be identified by other flows."},{"line_number":126,"context_line":"        (dp, ofp, ofpp) \u003d self.br_int._get_dp()"},{"line_number":127,"context_line":"        actions \u003d [ofpp.OFPActionSetField(reg2\u003d1),"},{"line_number":128,"context_line":"                   ofpp.OFPActionSetField(ip_dscp\u003drule.dscp_mark),"},{"line_number":129,"context_line":"                   ofpp.NXActionResubmit(in_port\u003dport)]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_86e22ad3","line":126,"range":{"start_line":126,"start_character":38,"end_line":126,"end_character":47},"in_reply_to":"3fa7e38b_800a12ce","updated":"2019-11-22 18:26:19.000000000","message":"Instead of this, IMO you should implement, in openflow.native.br_int, a method to insert this openflow.\n\nThis method can take dscp and port as input parameters. Table, reg nr, priority and ether type (4 and 6), should be something internal.","commit_id":"3836f7310ef86d73b0f5289f895af2c3b31752dc"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"89d31d0ed1d1e3ed1c35aca044dac1784ec958da","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        # By loading a value into this field and checking if the value is"},{"line_number":124,"context_line":"        # altered it allows the packet to be resubmitted and go through"},{"line_number":125,"context_line":"        # the flow table again to be identified by other flows."},{"line_number":126,"context_line":"        (dp, ofp, ofpp) \u003d self.br_int._get_dp()"},{"line_number":127,"context_line":"        actions \u003d [ofpp.OFPActionSetField(reg2\u003d1),"},{"line_number":128,"context_line":"                   ofpp.OFPActionSetField(ip_dscp\u003drule.dscp_mark),"},{"line_number":129,"context_line":"                   ofpp.NXActionResubmit(in_port\u003dport)]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_47309a55","line":126,"range":{"start_line":126,"start_character":38,"end_line":126,"end_character":47},"in_reply_to":"3fa7e38b_86e22ad3","updated":"2019-11-25 18:08:19.000000000","message":"ack, but I feel that won\u0027t help the other out of tree extensions that will have to follow up on this patch to use the native library.\nThey will still need br_int.get_dp() to construct their matches and actions.","commit_id":"3836f7310ef86d73b0f5289f895af2c3b31752dc"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"ed17f0d6f9e4ab382144e842e7d8c9d117c2c289","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        # By loading a value into this field and checking if the value is"},{"line_number":124,"context_line":"        # altered it allows the packet to be resubmitted and go through"},{"line_number":125,"context_line":"        # the flow table again to be identified by other flows."},{"line_number":126,"context_line":"        (dp, ofp, ofpp) \u003d self.br_int._get_dp()"},{"line_number":127,"context_line":"        actions \u003d [ofpp.OFPActionSetField(reg2\u003d1),"},{"line_number":128,"context_line":"                   ofpp.OFPActionSetField(ip_dscp\u003drule.dscp_mark),"},{"line_number":129,"context_line":"                   ofpp.NXActionResubmit(in_port\u003dport)]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_ad95da3e","line":126,"range":{"start_line":126,"start_character":38,"end_line":126,"end_character":47},"in_reply_to":"3fa7e38b_97502bd7","updated":"2019-11-21 17:24:39.000000000","message":"Yes, I think so.","commit_id":"3836f7310ef86d73b0f5289f895af2c3b31752dc"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"258de4f1ce9bbdba4d329b8bf0bcbf50a1f8056f","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        # By loading a value into this field and checking if the value is"},{"line_number":124,"context_line":"        # altered it allows the packet to be resubmitted and go through"},{"line_number":125,"context_line":"        # the flow table again to be identified by other flows."},{"line_number":126,"context_line":"        (dp, ofp, ofpp) \u003d self.br_int._get_dp()"},{"line_number":127,"context_line":"        actions \u003d [ofpp.OFPActionSetField(reg2\u003d1),"},{"line_number":128,"context_line":"                   ofpp.OFPActionSetField(ip_dscp\u003drule.dscp_mark),"},{"line_number":129,"context_line":"                   ofpp.NXActionResubmit(in_port\u003dport)]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_800a12ce","line":126,"range":{"start_line":126,"start_character":38,"end_line":126,"end_character":47},"in_reply_to":"3fa7e38b_ad95da3e","updated":"2019-11-22 16:50:48.000000000","message":"Done","commit_id":"3836f7310ef86d73b0f5289f895af2c3b31752dc"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"b72b3bc414ece53122a98e47dad12bb622cec625","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        ]"},{"line_number":133,"context_line":"        self.br_int.install_instructions(instructions, table_id\u003d0,"},{"line_number":134,"context_line":"                                         priority\u003d65535, in_port\u003dport, reg2\u003d0,"},{"line_number":135,"context_line":"                                         eth_type\u003d0x0800)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def delete_dscp_marking(self, port):"},{"line_number":138,"context_line":"        vif_port \u003d port.get(\u0027vif_port\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_37cb77a4","line":135,"range":{"start_line":135,"start_character":41,"end_line":135,"end_character":56},"updated":"2019-11-21 16:36:58.000000000","message":"We didn\u0027t need this for ofctl, but os-ken won\u0027t let you modify the DSCP field without the eth_type.\nThe old code probably worked for IPv4 and IPv6, should we create a second flow for IPv6?","commit_id":"3836f7310ef86d73b0f5289f895af2c3b31752dc"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"89d31d0ed1d1e3ed1c35aca044dac1784ec958da","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        ]"},{"line_number":133,"context_line":"        self.br_int.install_instructions(instructions, table_id\u003d0,"},{"line_number":134,"context_line":"                                         priority\u003d65535, in_port\u003dport, reg2\u003d0,"},{"line_number":135,"context_line":"                                         eth_type\u003d0x0800)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def delete_dscp_marking(self, port):"},{"line_number":138,"context_line":"        vif_port \u003d port.get(\u0027vif_port\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_a7086e90","line":135,"range":{"start_line":135,"start_character":41,"end_line":135,"end_character":56},"in_reply_to":"3fa7e38b_06739a4f","updated":"2019-11-25 18:08:19.000000000","message":"I think I\u0027ve misunderstood what the \"Groups\" were in Openflow, but I can check if I can mask the ethertype to include both IPv4 and IPv6.","commit_id":"3836f7310ef86d73b0f5289f895af2c3b31752dc"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"ed17f0d6f9e4ab382144e842e7d8c9d117c2c289","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        ]"},{"line_number":133,"context_line":"        self.br_int.install_instructions(instructions, table_id\u003d0,"},{"line_number":134,"context_line":"                                         priority\u003d65535, in_port\u003dport, reg2\u003d0,"},{"line_number":135,"context_line":"                                         eth_type\u003d0x0800)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def delete_dscp_marking(self, port):"},{"line_number":138,"context_line":"        vif_port \u003d port.get(\u0027vif_port\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_4d63061b","line":135,"range":{"start_line":135,"start_character":41,"end_line":135,"end_character":56},"in_reply_to":"3fa7e38b_37cb77a4","updated":"2019-11-21 17:24:39.000000000","message":"When the custom ethertypes work merges there could be ethertypes other than IPv4 and IPv6 that come here, I would think.  But we can cross that bridge when we get to it, I think adding IPv4 and IPv6 flows will cover 97% of the cases.","commit_id":"3836f7310ef86d73b0f5289f895af2c3b31752dc"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"940df3a066fb22d829e649e137b043ef3d58ec65","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        ]"},{"line_number":133,"context_line":"        self.br_int.install_instructions(instructions, table_id\u003d0,"},{"line_number":134,"context_line":"                                         priority\u003d65535, in_port\u003dport, reg2\u003d0,"},{"line_number":135,"context_line":"                                         eth_type\u003d0x0800)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def delete_dscp_marking(self, port):"},{"line_number":138,"context_line":"        vif_port \u003d port.get(\u0027vif_port\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_767aaa25","line":135,"range":{"start_line":135,"start_character":41,"end_line":135,"end_character":56},"in_reply_to":"3fa7e38b_4d63061b","updated":"2019-12-04 16:51:09.000000000","message":"I\u0027m not sure if this affects the custom ethertypes work since is there DSCP for anything else but IP?","commit_id":"3836f7310ef86d73b0f5289f895af2c3b31752dc"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"258de4f1ce9bbdba4d329b8bf0bcbf50a1f8056f","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        ]"},{"line_number":133,"context_line":"        self.br_int.install_instructions(instructions, table_id\u003d0,"},{"line_number":134,"context_line":"                                         priority\u003d65535, in_port\u003dport, reg2\u003d0,"},{"line_number":135,"context_line":"                                         eth_type\u003d0x0800)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def delete_dscp_marking(self, port):"},{"line_number":138,"context_line":"        vif_port \u003d port.get(\u0027vif_port\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_c05faae2","line":135,"range":{"start_line":135,"start_character":41,"end_line":135,"end_character":56},"in_reply_to":"3fa7e38b_4d63061b","updated":"2019-11-22 16:50:48.000000000","message":"That is an easy fix with Neutron classifier to be fair.\njust have the ether_type set in an ethernet classification and we can override this one.\nI haven\u0027t added the second IPv6 flow, I\u0027ve heard there is a way to group values for match criteria for Ryu so I want to try that before adding a second flow.","commit_id":"3836f7310ef86d73b0f5289f895af2c3b31752dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c364f23fe4b4221bd8f943d9fb95b293c546c7a5","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        ]"},{"line_number":133,"context_line":"        self.br_int.install_instructions(instructions, table_id\u003d0,"},{"line_number":134,"context_line":"                                         priority\u003d65535, in_port\u003dport, reg2\u003d0,"},{"line_number":135,"context_line":"                                         eth_type\u003d0x0800)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def delete_dscp_marking(self, port):"},{"line_number":138,"context_line":"        vif_port \u003d port.get(\u0027vif_port\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_bcb48383","line":135,"range":{"start_line":135,"start_character":41,"end_line":135,"end_character":56},"in_reply_to":"3fa7e38b_767aaa25","updated":"2019-12-04 18:57:02.000000000","message":"DSCP is a mark in the IP header, so adding IPv4 and IPv6 as eth_type should cover 100% of the traffic with DSCP marks.\n\nhttp://ptgmedia.pearsoncmg.com/images/chap03_1587201224/elementLinks/fig12.jpg","commit_id":"3836f7310ef86d73b0f5289f895af2c3b31752dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c8efc3f74b2947027f5446cfff6acdcd4fae094c","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        ]"},{"line_number":133,"context_line":"        self.br_int.install_instructions(instructions, table_id\u003d0,"},{"line_number":134,"context_line":"                                         priority\u003d65535, in_port\u003dport, reg2\u003d0,"},{"line_number":135,"context_line":"                                         eth_type\u003d0x0800)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def delete_dscp_marking(self, port):"},{"line_number":138,"context_line":"        vif_port \u003d port.get(\u0027vif_port\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_06739a4f","line":135,"range":{"start_line":135,"start_character":41,"end_line":135,"end_character":56},"in_reply_to":"3fa7e38b_c05faae2","updated":"2019-11-22 18:26:19.000000000","message":"1) Yes, you should add ipv4 and 6\n2) I don\u0027t see how to create a OFPMatch with two ether types","commit_id":"3836f7310ef86d73b0f5289f895af2c3b31752dc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4d66e0230123e1c4bf4688735d2ca07d07a070f1","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        ]"},{"line_number":133,"context_line":"        self.br_int.install_instructions(instructions, table_id\u003d0,"},{"line_number":134,"context_line":"                                         priority\u003d65535, in_port\u003dport, reg2\u003d0,"},{"line_number":135,"context_line":"                                         eth_type\u003d0x0800)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def delete_dscp_marking(self, port):"},{"line_number":138,"context_line":"        vif_port \u003d port.get(\u0027vif_port\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_39eee220","line":135,"range":{"start_line":135,"start_character":50,"end_line":135,"end_character":56},"updated":"2019-11-25 18:47:56.000000000","message":"waiting for ipv6, I know you are still investigating this","commit_id":"4e28773f64a6faaf96ed8e655ee0a2b8cf739bbd"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"a98a2eac4b697b65af7ce6ba610d7810336de43a","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        ]"},{"line_number":133,"context_line":"        self.br_int.install_instructions(instructions, table_id\u003d0,"},{"line_number":134,"context_line":"                                         priority\u003d65535, in_port\u003dport, reg2\u003d0,"},{"line_number":135,"context_line":"                                         eth_type\u003d0x0800)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def delete_dscp_marking(self, port):"},{"line_number":138,"context_line":"        vif_port \u003d port.get(\u0027vif_port\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_f3efa8f7","line":135,"range":{"start_line":135,"start_character":50,"end_line":135,"end_character":56},"in_reply_to":"3fa7e38b_39eee220","updated":"2019-12-03 10:06:33.000000000","message":"Ya, I\u0027ve looked into this, there isn\u0027t a single bit incommon between the ipv4 ether type and the ipv6 ether type...\nI\u0027ve created the two flows in an install_dscp_marking_instruction in openflow/native/br_int.py","commit_id":"4e28773f64a6faaf96ed8e655ee0a2b8cf739bbd"}],"neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"ff6c28296a885e7541dcdfc723ac0a8f12c24f05","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                        ctx.reraise \u003d False"},{"line_number":71,"context_line":"                    self._cached_dpid \u003d new_dpid"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def get_dp(self):"},{"line_number":74,"context_line":"        # NOTE(davidsha) I mentioned making this a wrapper, but should we"},{"line_number":75,"context_line":"        # refactor from private to public function?"},{"line_number":76,"context_line":"        return self._get_dp()"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def setup_controllers(self, conf):"},{"line_number":79,"context_line":"        url \u003d ipv6_utils.valid_ipv6_url(conf.OVS.of_listen_address,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_a878def6","line":76,"range":{"start_line":73,"start_character":4,"end_line":76,"end_character":29},"updated":"2019-12-03 12:40:51.000000000","message":"IMO as where you use this method (_get_dp()) is a descendant of this class OVSAgentBridge I see no problem using a private method, as the new method (install_dscp_marking_rule) is a \"wrapper\" around it :-)\n\nSo my opinion is that this wrapper is useless, but anyway you use the private version in install_dscp_marking_rule :-)","commit_id":"10f6e90753455e5fbfadbd649f03afbfef4e1468"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"bb5355a4a914b82ab0984f080d50a705e8ef9348","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                        ctx.reraise \u003d False"},{"line_number":71,"context_line":"                    self._cached_dpid \u003d new_dpid"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def get_dp(self):"},{"line_number":74,"context_line":"        # NOTE(davidsha) I mentioned making this a wrapper, but should we"},{"line_number":75,"context_line":"        # refactor from private to public function?"},{"line_number":76,"context_line":"        return self._get_dp()"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def setup_controllers(self, conf):"},{"line_number":79,"context_line":"        url \u003d ipv6_utils.valid_ipv6_url(conf.OVS.of_listen_address,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_2bbb7675","line":76,"range":{"start_line":73,"start_character":4,"end_line":76,"end_character":29},"in_reply_to":"3fa7e38b_088572ae","updated":"2019-12-04 10:09:18.000000000","message":"Ok, understood.\nIn that case to avoid seemingly unused method here, you can just use this method in install_dscp_marking_rule instead of _get_dp.\n\nAs I see networking-sfc is one user of OVSAgentBridge, and I suppose possible user of get_dp().\n\nSo conclusion: the idea of having a public method is generally good, so I suppose just use get_dp instead of _get_dp()","commit_id":"10f6e90753455e5fbfadbd649f03afbfef4e1468"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"df69db6f0a36b02904739afdc3c480d8d7143b08","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                        ctx.reraise \u003d False"},{"line_number":71,"context_line":"                    self._cached_dpid \u003d new_dpid"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def get_dp(self):"},{"line_number":74,"context_line":"        # NOTE(davidsha) I mentioned making this a wrapper, but should we"},{"line_number":75,"context_line":"        # refactor from private to public function?"},{"line_number":76,"context_line":"        return self._get_dp()"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def setup_controllers(self, conf):"},{"line_number":79,"context_line":"        url \u003d ipv6_utils.valid_ipv6_url(conf.OVS.of_listen_address,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_088572ae","line":76,"range":{"start_line":73,"start_character":4,"end_line":76,"end_character":29},"in_reply_to":"3fa7e38b_a878def6","updated":"2019-12-03 12:45:44.000000000","message":"I\u0027m thinking for out of tree Neutron extensions that can\u0027t cheat and put their custom flows into the OVSAgentBridge class ;)","commit_id":"10f6e90753455e5fbfadbd649f03afbfef4e1468"}],"neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/test_br_int.py":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"940df3a066fb22d829e649e137b043ef3d58ec65","unresolved":false,"context_lines":[{"line_number":530,"context_line":"                               [ofpp.OFPActionSetField(reg2\u003d1),"},{"line_number":531,"context_line":"                                ofpp.OFPActionSetField(ip_dscp\u003d38),"},{"line_number":532,"context_line":"                                ofpp.NXActionResubmit(in_port\u003d8888)])],"},{"line_number":533,"context_line":"                               match\u003dofpp.OFPMatch(eth_type\u003d34525,"},{"line_number":534,"context_line":"                                                   in_port\u003d8888, reg2\u003d0),"},{"line_number":535,"context_line":"                               priority\u003d65535, table_id\u003d0),"},{"line_number":536,"context_line":"                           active_bundle\u003dNone)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_d6dcbe46","line":533,"range":{"start_line":533,"start_character":60,"end_line":533,"end_character":65},"updated":"2019-12-04 16:51:09.000000000","message":"nit: would be a bit easier to read with hexadecimal literals","commit_id":"81f77aa1c9889e61859d5a80edb9485a93c21599"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"79fa0564e8f1a11785c919177b907d0908fe5964","unresolved":false,"context_lines":[{"line_number":530,"context_line":"                               [ofpp.OFPActionSetField(reg2\u003d1),"},{"line_number":531,"context_line":"                                ofpp.OFPActionSetField(ip_dscp\u003d38),"},{"line_number":532,"context_line":"                                ofpp.NXActionResubmit(in_port\u003d8888)])],"},{"line_number":533,"context_line":"                               match\u003dofpp.OFPMatch(eth_type\u003d34525,"},{"line_number":534,"context_line":"                                                   in_port\u003d8888, reg2\u003d0),"},{"line_number":535,"context_line":"                               priority\u003d65535, table_id\u003d0),"},{"line_number":536,"context_line":"                           active_bundle\u003dNone)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_973f16de","line":533,"range":{"start_line":533,"start_character":60,"end_line":533,"end_character":65},"in_reply_to":"3fa7e38b_d6dcbe46","updated":"2019-12-05 12:09:17.000000000","message":"Done","commit_id":"81f77aa1c9889e61859d5a80edb9485a93c21599"}]}
