)]}'
{"networking_ovn/common/ovn_client.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"acb9d28de39f952166f5fd34f66c4b1badab305c","unresolved":false,"context_lines":[{"line_number":604,"context_line":"                txn.add(self._nb_idl.qos_add(**qos_rule_column_new))"},{"line_number":605,"context_line":"            # If we want to delete port qos_rule by using"},{"line_number":606,"context_line":"            # param \u0027--no-qos-policy\u0027"},{"line_number":607,"context_line":"            elif not qos_options_new and qos_options_old:"},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"                qos_rule_column_old \u003d self._create_qos_rules(qos_options_old,"},{"line_number":610,"context_line":"                                                             port,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_fbfabab7","line":607,"range":{"start_line":607,"start_character":17,"end_line":607,"end_character":36},"updated":"2019-10-30 15:18:16.000000000","message":"this is implied true because of L593, so can be removed","commit_id":"3485015aa89226dc798cff224a348220e5a0ac75"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"f80c8eead95b1e359cbeac68db137d4c6d276411","unresolved":false,"context_lines":[{"line_number":604,"context_line":"                txn.add(self._nb_idl.qos_add(**qos_rule_column_new))"},{"line_number":605,"context_line":"            # If we want to delete port qos_rule by using"},{"line_number":606,"context_line":"            # param \u0027--no-qos-policy\u0027"},{"line_number":607,"context_line":"            elif not qos_options_new and qos_options_old:"},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"                qos_rule_column_old \u003d self._create_qos_rules(qos_options_old,"},{"line_number":610,"context_line":"                                                             port,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_f7aabfcf","line":607,"range":{"start_line":607,"start_character":17,"end_line":607,"end_character":36},"in_reply_to":"3fa7e38b_fbfabab7","updated":"2019-10-31 12:13:35.000000000","message":"Done,thanks :)","commit_id":"3485015aa89226dc798cff224a348220e5a0ac75"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"acb9d28de39f952166f5fd34f66c4b1badab305c","unresolved":false,"context_lines":[{"line_number":615,"context_line":""},{"line_number":616,"context_line":"            # If we want to delete network qos_rule by using"},{"line_number":617,"context_line":"            # param \u0027--no-qos-policy\u0027"},{"line_number":618,"context_line":"            elif not qos_options_new and not qos_options_old \\"},{"line_number":619,"context_line":"                    and ovn_net_qos_policy:"},{"line_number":620,"context_line":"                txn.add(self._nb_idl.qos_del(lswitch_name))"},{"line_number":621,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_9b2dc647","line":618,"range":{"start_line":618,"start_character":17,"end_line":618,"end_character":36},"updated":"2019-10-30 15:18:16.000000000","message":"same","commit_id":"3485015aa89226dc798cff224a348220e5a0ac75"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"f80c8eead95b1e359cbeac68db137d4c6d276411","unresolved":false,"context_lines":[{"line_number":615,"context_line":""},{"line_number":616,"context_line":"            # If we want to delete network qos_rule by using"},{"line_number":617,"context_line":"            # param \u0027--no-qos-policy\u0027"},{"line_number":618,"context_line":"            elif not qos_options_new and not qos_options_old \\"},{"line_number":619,"context_line":"                    and ovn_net_qos_policy:"},{"line_number":620,"context_line":"                txn.add(self._nb_idl.qos_del(lswitch_name))"},{"line_number":621,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_97b58b34","line":618,"range":{"start_line":618,"start_character":17,"end_line":618,"end_character":36},"in_reply_to":"3fa7e38b_9b2dc647","updated":"2019-10-31 12:13:35.000000000","message":"Done,thanks :)","commit_id":"3485015aa89226dc798cff224a348220e5a0ac75"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"f699e2868ecf98145602d9509b2dfdad80123455","unresolved":false,"context_lines":[{"line_number":580,"context_line":"            # update_port method, which qos_policy is in port dict, so we"},{"line_number":581,"context_line":"            # also need get policy from port dict if qos_options is None"},{"line_number":582,"context_line":"            qos_options_new \u003d qos_options if qos_options \\"},{"line_number":583,"context_line":"                else self._qos_driver.get_qos_options(port)"},{"line_number":584,"context_line":"            # If port_object is None, we also need to get necessary params"},{"line_number":585,"context_line":"            # to delete the qos rule"},{"line_number":586,"context_line":"            qos_options_old \u003d self._qos_driver.get_qos_options(port_object) \\"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_29b7dbda","line":583,"updated":"2019-11-18 11:33:23.000000000","message":"nit: Let\u0027s use parentheses to wrap multiple lines\n\n\"The preferred way of wrapping long lines is by using Python\u0027s implied line continuation inside parentheses, brackets and braces. Long lines can be broken over multiple lines by wrapping expressions in parentheses. These should be used in preference to using a backslash for line continuation.\"\n\nhttps://www.python.org/dev/peps/pep-0008/#maximum-line-length","commit_id":"1e102e09bcedb772e35b8ecb19c6d7dfb6d63277"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"890b393d03198c6c128e3b2229554b0d7be64d7b","unresolved":false,"context_lines":[{"line_number":580,"context_line":"            # update_port method, which qos_policy is in port dict, so we"},{"line_number":581,"context_line":"            # also need get policy from port dict if qos_options is None"},{"line_number":582,"context_line":"            qos_options_new \u003d qos_options if qos_options \\"},{"line_number":583,"context_line":"                else self._qos_driver.get_qos_options(port)"},{"line_number":584,"context_line":"            # If port_object is None, we also need to get necessary params"},{"line_number":585,"context_line":"            # to delete the qos rule"},{"line_number":586,"context_line":"            qos_options_old \u003d self._qos_driver.get_qos_options(port_object) \\"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_b7cf9555","line":583,"in_reply_to":"3fa7e38b_29b7dbda","updated":"2019-11-19 05:52:04.000000000","message":"done","commit_id":"1e102e09bcedb772e35b8ecb19c6d7dfb6d63277"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"f699e2868ecf98145602d9509b2dfdad80123455","unresolved":false,"context_lines":[{"line_number":584,"context_line":"            # If port_object is None, we also need to get necessary params"},{"line_number":585,"context_line":"            # to delete the qos rule"},{"line_number":586,"context_line":"            qos_options_old \u003d self._qos_driver.get_qos_options(port_object) \\"},{"line_number":587,"context_line":"                if port_object else qos_options_new"},{"line_number":588,"context_line":""},{"line_number":589,"context_line":"            ovn_net \u003d self._nb_idl.get_lswitch(lswitch_name)"},{"line_number":590,"context_line":"            ovn_net_qos_policy \u003d \\"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_e9ac6389","line":587,"updated":"2019-11-18 11:33:23.000000000","message":"ditto: parentheses","commit_id":"1e102e09bcedb772e35b8ecb19c6d7dfb6d63277"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"890b393d03198c6c128e3b2229554b0d7be64d7b","unresolved":false,"context_lines":[{"line_number":584,"context_line":"            # If port_object is None, we also need to get necessary params"},{"line_number":585,"context_line":"            # to delete the qos rule"},{"line_number":586,"context_line":"            qos_options_old \u003d self._qos_driver.get_qos_options(port_object) \\"},{"line_number":587,"context_line":"                if port_object else qos_options_new"},{"line_number":588,"context_line":""},{"line_number":589,"context_line":"            ovn_net \u003d self._nb_idl.get_lswitch(lswitch_name)"},{"line_number":590,"context_line":"            ovn_net_qos_policy \u003d \\"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_d7cc9162","line":587,"in_reply_to":"3fa7e38b_e9ac6389","updated":"2019-11-19 05:52:04.000000000","message":"done","commit_id":"1e102e09bcedb772e35b8ecb19c6d7dfb6d63277"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"f699e2868ecf98145602d9509b2dfdad80123455","unresolved":false,"context_lines":[{"line_number":590,"context_line":"            ovn_net_qos_policy \u003d \\"},{"line_number":591,"context_line":"                ovn_net.external_ids[ovn_const.OVN_QOS_POLICY_EXT_ID_KEY] \\"},{"line_number":592,"context_line":"                if ovn_const.OVN_QOS_POLICY_EXT_ID_KEY \\"},{"line_number":593,"context_line":"                in ovn_net.external_ids else None"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":"            if qos_options_new:"},{"line_number":596,"context_line":"                qos_rule_column_old \u003d self._create_qos_rules(qos_options_old,"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_09b21fe6","line":593,"updated":"2019-11-18 11:33:23.000000000","message":"ditto: parentheses","commit_id":"1e102e09bcedb772e35b8ecb19c6d7dfb6d63277"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"890b393d03198c6c128e3b2229554b0d7be64d7b","unresolved":false,"context_lines":[{"line_number":590,"context_line":"            ovn_net_qos_policy \u003d \\"},{"line_number":591,"context_line":"                ovn_net.external_ids[ovn_const.OVN_QOS_POLICY_EXT_ID_KEY] \\"},{"line_number":592,"context_line":"                if ovn_const.OVN_QOS_POLICY_EXT_ID_KEY \\"},{"line_number":593,"context_line":"                in ovn_net.external_ids else None"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":"            if qos_options_new:"},{"line_number":596,"context_line":"                qos_rule_column_old \u003d self._create_qos_rules(qos_options_old,"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_77d59de5","line":593,"in_reply_to":"3fa7e38b_09b21fe6","updated":"2019-11-19 05:52:04.000000000","message":"done","commit_id":"1e102e09bcedb772e35b8ecb19c6d7dfb6d63277"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"69dddb0249ac36208e5394b38189e52f0b9ed74c","unresolved":false,"context_lines":[{"line_number":649,"context_line":"                               else self._qos_driver.get_qos_options(port))"},{"line_number":650,"context_line":"            # If port_object is None, we also need to get necessary params"},{"line_number":651,"context_line":"            # to delete the qos rule"},{"line_number":652,"context_line":"            qos_options_old \u003d (self._qos_driver.get_qos_options(port_object)"},{"line_number":653,"context_line":"                               if port_object else qos_options_new)"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"            ovn_net \u003d self._nb_idl.get_lswitch(lswitch_name)"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_fba09793","line":652,"range":{"start_line":652,"start_character":64,"end_line":652,"end_character":75},"updated":"2019-11-19 10:00:36.000000000","message":"This is supposed to be removed as per the comment in L455. Is there any other way to achieve the same?","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"9c6505d73d119813f712c082f14b1238400ac4e7","unresolved":false,"context_lines":[{"line_number":649,"context_line":"                               else self._qos_driver.get_qos_options(port))"},{"line_number":650,"context_line":"            # If port_object is None, we also need to get necessary params"},{"line_number":651,"context_line":"            # to delete the qos rule"},{"line_number":652,"context_line":"            qos_options_old \u003d (self._qos_driver.get_qos_options(port_object)"},{"line_number":653,"context_line":"                               if port_object else qos_options_new)"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"            ovn_net \u003d self._nb_idl.get_lswitch(lswitch_name)"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_be28cd97","line":652,"range":{"start_line":652,"start_character":64,"end_line":652,"end_character":75},"in_reply_to":"3fa7e38b_fba09793","updated":"2019-11-19 12:34:36.000000000","message":"In this place, we just need to delete the old rule.\nAs there is no \"name\" column in QoS table of OVN, we can not associate neutron_qos_rule with ovn_qos.\nIf we want to delete the old ovn_rule, we must get it. Now,I think  the only way to get old qos options is from port_object. If you have some sugesstions, it will be appreciated.  ;)\n\nI am working on OVN project to add \"name\" column to QoS table.\nIf this finished ,I will add related API in OVSDBAPP project, then I will refactor the QoS patch. :)","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"69dddb0249ac36208e5394b38189e52f0b9ed74c","unresolved":false,"context_lines":[{"line_number":757,"context_line":"                            addrs_remove\u003daddr_list))"},{"line_number":758,"context_line":"            # Delete qos rule of port"},{"line_number":759,"context_line":"            try:"},{"line_number":760,"context_line":"                if not port_object or \u0027qos_policy_id\u0027 not in port_object or \\"},{"line_number":761,"context_line":"                        port_object[\u0027qos_policy_id\u0027] is None:"},{"line_number":762,"context_line":"                    pass"},{"line_number":763,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_3bacef86","line":760,"range":{"start_line":760,"start_character":23,"end_line":760,"end_character":34},"updated":"2019-11-19 10:00:36.000000000","message":"ditto","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"69dddb0249ac36208e5394b38189e52f0b9ed74c","unresolved":false,"context_lines":[{"line_number":757,"context_line":"                            addrs_remove\u003daddr_list))"},{"line_number":758,"context_line":"            # Delete qos rule of port"},{"line_number":759,"context_line":"            try:"},{"line_number":760,"context_line":"                if not port_object or \u0027qos_policy_id\u0027 not in port_object or \\"},{"line_number":761,"context_line":"                        port_object[\u0027qos_policy_id\u0027] is None:"},{"line_number":762,"context_line":"                    pass"},{"line_number":763,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_fbc97759","line":760,"range":{"start_line":760,"start_character":76,"end_line":760,"end_character":77},"updated":"2019-11-19 10:00:36.000000000","message":"parenthesis are preferred over backslash for line continuation","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"9c6505d73d119813f712c082f14b1238400ac4e7","unresolved":false,"context_lines":[{"line_number":757,"context_line":"                            addrs_remove\u003daddr_list))"},{"line_number":758,"context_line":"            # Delete qos rule of port"},{"line_number":759,"context_line":"            try:"},{"line_number":760,"context_line":"                if not port_object or \u0027qos_policy_id\u0027 not in port_object or \\"},{"line_number":761,"context_line":"                        port_object[\u0027qos_policy_id\u0027] is None:"},{"line_number":762,"context_line":"                    pass"},{"line_number":763,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_7e181583","line":760,"range":{"start_line":760,"start_character":23,"end_line":760,"end_character":34},"in_reply_to":"3fa7e38b_3bacef86","updated":"2019-11-19 12:34:36.000000000","message":"same","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"9c6505d73d119813f712c082f14b1238400ac4e7","unresolved":false,"context_lines":[{"line_number":757,"context_line":"                            addrs_remove\u003daddr_list))"},{"line_number":758,"context_line":"            # Delete qos rule of port"},{"line_number":759,"context_line":"            try:"},{"line_number":760,"context_line":"                if not port_object or \u0027qos_policy_id\u0027 not in port_object or \\"},{"line_number":761,"context_line":"                        port_object[\u0027qos_policy_id\u0027] is None:"},{"line_number":762,"context_line":"                    pass"},{"line_number":763,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_9e1dd174","line":760,"range":{"start_line":760,"start_character":76,"end_line":760,"end_character":77},"in_reply_to":"3fa7e38b_fbc97759","updated":"2019-11-19 12:34:36.000000000","message":"Done","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"}],"networking_ovn/ml2/qos_driver.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"acb9d28de39f952166f5fd34f66c4b1badab305c","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                    options[\u0027qos_max_rate\u0027] \u003d str(rule.max_kbps)"},{"line_number":108,"context_line":"                if rule.max_burst_kbps:"},{"line_number":109,"context_line":"                    options[\u0027qos_burst\u0027] \u003d str(rule.max_burst_kbps)"},{"line_number":110,"context_line":"        # OVN could support both directions"},{"line_number":111,"context_line":"                if rule.direction:"},{"line_number":112,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":113,"context_line":"        # Add dscp_mark support"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_fb471aa2","line":110,"updated":"2019-10-30 15:18:16.000000000","message":"nit: indentation","commit_id":"3485015aa89226dc798cff224a348220e5a0ac75"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"acb9d28de39f952166f5fd34f66c4b1badab305c","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # OVN could support both directions"},{"line_number":111,"context_line":"                if rule.direction:"},{"line_number":112,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":113,"context_line":"        # Add dscp_mark support"},{"line_number":114,"context_line":"            if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":115,"context_line":"                if rule.dscp_mark:"},{"line_number":116,"context_line":"                    options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_1bda36e8","line":113,"updated":"2019-10-30 15:18:16.000000000","message":"nit: indentation, but might not be necessary","commit_id":"3485015aa89226dc798cff224a348220e5a0ac75"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"69dddb0249ac36208e5394b38189e52f0b9ed74c","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                    options[\u0027qos_max_rate\u0027] \u003d str(rule.max_kbps)"},{"line_number":108,"context_line":"                if rule.max_burst_kbps:"},{"line_number":109,"context_line":"                    options[\u0027qos_burst\u0027] \u003d str(rule.max_burst_kbps)"},{"line_number":110,"context_line":"                    # OVN could support both directions"},{"line_number":111,"context_line":"                if rule.direction:"},{"line_number":112,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":113,"context_line":"                    # Add dscp_mark support"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_bbbf7fa9","line":110,"range":{"start_line":110,"start_character":20,"end_line":110,"end_character":55},"updated":"2019-11-19 10:00:36.000000000","message":"Is this a TODO? Is it the right indentation?","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"9c6505d73d119813f712c082f14b1238400ac4e7","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                    options[\u0027qos_max_rate\u0027] \u003d str(rule.max_kbps)"},{"line_number":108,"context_line":"                if rule.max_burst_kbps:"},{"line_number":109,"context_line":"                    options[\u0027qos_burst\u0027] \u003d str(rule.max_burst_kbps)"},{"line_number":110,"context_line":"                    # OVN could support both directions"},{"line_number":111,"context_line":"                if rule.direction:"},{"line_number":112,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":113,"context_line":"                    # Add dscp_mark support"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_01118453","line":110,"range":{"start_line":110,"start_character":20,"end_line":110,"end_character":55},"in_reply_to":"3fa7e38b_bbbf7fa9","updated":"2019-11-19 12:34:36.000000000","message":"It\u0027s just a comment, I have chang its indentation.Thanks  :)","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"69dddb0249ac36208e5394b38189e52f0b9ed74c","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                    # OVN could support both directions"},{"line_number":111,"context_line":"                if rule.direction:"},{"line_number":112,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":113,"context_line":"                    # Add dscp_mark support"},{"line_number":114,"context_line":"                if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":115,"context_line":"                    if rule.dscp_mark:"},{"line_number":116,"context_line":"                        options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_dbbcbbb6","line":113,"range":{"start_line":113,"start_character":20,"end_line":113,"end_character":43},"updated":"2019-11-19 10:00:36.000000000","message":"ditto","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"9c6505d73d119813f712c082f14b1238400ac4e7","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                    # OVN could support both directions"},{"line_number":111,"context_line":"                if rule.direction:"},{"line_number":112,"context_line":"                    options[\u0027direction\u0027] \u003d rule.direction"},{"line_number":113,"context_line":"                    # Add dscp_mark support"},{"line_number":114,"context_line":"                if isinstance(rule, qos_rule.QosDscpMarkingRule):"},{"line_number":115,"context_line":"                    if rule.dscp_mark:"},{"line_number":116,"context_line":"                        options[\u0027dscp_mark\u0027] \u003d rule.dscp_mark"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_210e0032","line":113,"range":{"start_line":113,"start_character":20,"end_line":113,"end_character":43},"in_reply_to":"3fa7e38b_dbbcbbb6","updated":"2019-11-19 12:34:36.000000000","message":"same","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"}],"networking_ovn/tests/functional/test_maintenance.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"f699e2868ecf98145602d9509b2dfdad80123455","unresolved":false,"context_lines":[{"line_number":337,"context_line":"            int(ovn_obj.external_ids[ovn_const.OVN_REV_NUM_EXT_ID_KEY]))"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"        # \u003e Delete"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        with mock.patch.object(self._ovn_client, \u0027delete_port\u0027):"},{"line_number":342,"context_line":"            self._delete(\u0027ports\u0027, new_neutron_obj[\u0027id\u0027])"},{"line_number":343,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_a9a18b97","side":"PARENT","line":340,"updated":"2019-11-18 11:33:23.000000000","message":"unrelated changes here","commit_id":"ddd5fb506545b3cc33ddd5577393fee5ce5dab2b"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"890b393d03198c6c128e3b2229554b0d7be64d7b","unresolved":false,"context_lines":[{"line_number":337,"context_line":"            int(ovn_obj.external_ids[ovn_const.OVN_REV_NUM_EXT_ID_KEY]))"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"        # \u003e Delete"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        with mock.patch.object(self._ovn_client, \u0027delete_port\u0027):"},{"line_number":342,"context_line":"            self._delete(\u0027ports\u0027, new_neutron_obj[\u0027id\u0027])"},{"line_number":343,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_3705e57a","side":"PARENT","line":340,"in_reply_to":"3fa7e38b_a9a18b97","updated":"2019-11-19 05:52:04.000000000","message":"Done","commit_id":"ddd5fb506545b3cc33ddd5577393fee5ce5dab2b"}],"networking_ovn/tests/functional/test_qos_driver.py":[{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"5162d835c8524119771f3a3e4d7e20d16385917c","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            if \u0027qos_max_rate\u0027 in lsp.options:"},{"line_number":109,"context_line":"                observed_lsp_qos_options[\u0027qos_max_rate\u0027] \u003d lsp.options.get("},{"line_number":110,"context_line":"                    \u0027qos_max_rate\u0027)"},{"line_number":111,"context_line":"        # TODO(Taoyunxiang):The qos table in OVN dose not"},{"line_number":112,"context_line":"        # contain \"name\" column, which could link database of neutron"},{"line_number":113,"context_line":"        # and OVN. Effective test will be added after qos"},{"line_number":114,"context_line":"        # table of OVN was be completed."},{"line_number":115,"context_line":"        self.assertEqual({}, observed_lsp_qos_options)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_7369b5f6","line":112,"range":{"start_line":111,"start_character":28,"end_line":112,"end_character":31},"updated":"2019-11-07 08:22:58.000000000","message":"++ For this, I think that we should add the QoS part to the maintenance task as well right?","commit_id":"7404a47d843e5e7ba5bc7a79a621052d826db455"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"0c597e175e3627a8385ea8191c212d94e8a6c135","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            if \u0027qos_max_rate\u0027 in lsp.options:"},{"line_number":109,"context_line":"                observed_lsp_qos_options[\u0027qos_max_rate\u0027] \u003d lsp.options.get("},{"line_number":110,"context_line":"                    \u0027qos_max_rate\u0027)"},{"line_number":111,"context_line":"        # TODO(Taoyunxiang):The qos table in OVN dose not"},{"line_number":112,"context_line":"        # contain \"name\" column, which could link database of neutron"},{"line_number":113,"context_line":"        # and OVN. Effective test will be added after qos"},{"line_number":114,"context_line":"        # table of OVN was be completed."},{"line_number":115,"context_line":"        self.assertEqual({}, observed_lsp_qos_options)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_2598c573","line":112,"range":{"start_line":111,"start_character":28,"end_line":112,"end_character":31},"in_reply_to":"3fa7e38b_7369b5f6","updated":"2019-11-08 07:47:45.000000000","message":"Agreed  :)","commit_id":"7404a47d843e5e7ba5bc7a79a621052d826db455"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"69dddb0249ac36208e5394b38189e52f0b9ed74c","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            if \u0027qos_max_rate\u0027 in lsp.options:"},{"line_number":109,"context_line":"                observed_lsp_qos_options[\u0027qos_max_rate\u0027] \u003d lsp.options.get("},{"line_number":110,"context_line":"                    \u0027qos_max_rate\u0027)"},{"line_number":111,"context_line":"        # TODO(Taoyunxiang):The qos table in OVN dose not"},{"line_number":112,"context_line":"        # contain \"name\" column, which could link database of neutron"},{"line_number":113,"context_line":"        # and OVN. Effective test will be added after qos"},{"line_number":114,"context_line":"        # table of OVN was be completed."}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_3be14fd0","line":111,"range":{"start_line":111,"start_character":49,"end_line":111,"end_character":53},"updated":"2019-11-19 10:00:36.000000000","message":"nit: does","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"69dddb0249ac36208e5394b38189e52f0b9ed74c","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            if \u0027qos_max_rate\u0027 in lsp.options:"},{"line_number":109,"context_line":"                observed_lsp_qos_options[\u0027qos_max_rate\u0027] \u003d lsp.options.get("},{"line_number":110,"context_line":"                    \u0027qos_max_rate\u0027)"},{"line_number":111,"context_line":"        # TODO(Taoyunxiang):The qos table in OVN dose not"},{"line_number":112,"context_line":"        # contain \"name\" column, which could link database of neutron"},{"line_number":113,"context_line":"        # and OVN. Effective test will be added after qos"},{"line_number":114,"context_line":"        # table of OVN was be completed."}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_9be083ce","line":111,"updated":"2019-11-19 10:00:36.000000000","message":"nit: space :)","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"9c6505d73d119813f712c082f14b1238400ac4e7","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            if \u0027qos_max_rate\u0027 in lsp.options:"},{"line_number":109,"context_line":"                observed_lsp_qos_options[\u0027qos_max_rate\u0027] \u003d lsp.options.get("},{"line_number":110,"context_line":"                    \u0027qos_max_rate\u0027)"},{"line_number":111,"context_line":"        # TODO(Taoyunxiang):The qos table in OVN dose not"},{"line_number":112,"context_line":"        # contain \"name\" column, which could link database of neutron"},{"line_number":113,"context_line":"        # and OVN. Effective test will be added after qos"},{"line_number":114,"context_line":"        # table of OVN was be completed."}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_2137e0e5","line":111,"range":{"start_line":111,"start_character":49,"end_line":111,"end_character":53},"in_reply_to":"3fa7e38b_3be14fd0","updated":"2019-11-19 12:34:36.000000000","message":"Done","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"9c6505d73d119813f712c082f14b1238400ac4e7","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            if \u0027qos_max_rate\u0027 in lsp.options:"},{"line_number":109,"context_line":"                observed_lsp_qos_options[\u0027qos_max_rate\u0027] \u003d lsp.options.get("},{"line_number":110,"context_line":"                    \u0027qos_max_rate\u0027)"},{"line_number":111,"context_line":"        # TODO(Taoyunxiang):The qos table in OVN dose not"},{"line_number":112,"context_line":"        # contain \"name\" column, which could link database of neutron"},{"line_number":113,"context_line":"        # and OVN. Effective test will be added after qos"},{"line_number":114,"context_line":"        # table of OVN was be completed."}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_c12fec86","line":111,"in_reply_to":"3fa7e38b_9be083ce","updated":"2019-11-19 12:34:36.000000000","message":"Done","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"69dddb0249ac36208e5394b38189e52f0b9ed74c","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # TODO(Taoyunxiang):The qos table in OVN dose not"},{"line_number":112,"context_line":"        # contain \"name\" column, which could link database of neutron"},{"line_number":113,"context_line":"        # and OVN. Effective test will be added after qos"},{"line_number":114,"context_line":"        # table of OVN was be completed."},{"line_number":115,"context_line":"        self.assertEqual({}, observed_lsp_qos_options)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def test_port_qos_options_add_and_remove(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_5be68be9","line":114,"range":{"start_line":114,"start_character":23,"end_line":114,"end_character":29},"updated":"2019-11-19 10:00:36.000000000","message":"is?","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"9c6505d73d119813f712c082f14b1238400ac4e7","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # TODO(Taoyunxiang):The qos table in OVN dose not"},{"line_number":112,"context_line":"        # contain \"name\" column, which could link database of neutron"},{"line_number":113,"context_line":"        # and OVN. Effective test will be added after qos"},{"line_number":114,"context_line":"        # table of OVN was be completed."},{"line_number":115,"context_line":"        self.assertEqual({}, observed_lsp_qos_options)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def test_port_qos_options_add_and_remove(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_a150b00b","line":114,"range":{"start_line":114,"start_character":23,"end_line":114,"end_character":29},"in_reply_to":"3fa7e38b_5be68be9","updated":"2019-11-19 12:34:36.000000000","message":"Done,thanks daniel.","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"}],"networking_ovn/tests/unit/ml2/test_qos_driver.py":[{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"69dddb0249ac36208e5394b38189e52f0b9ed74c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    def _create_bw_limit_rule(self):"},{"line_number":73,"context_line":"        rule_obj \u003d qos_rule.QosBandwidthLimitRule()"},{"line_number":74,"context_line":"        rule_obj.id \u003d uuidutils.generate_uuid()"},{"line_number":75,"context_line":"        rule_obj.max_kbps \u003d 1000"},{"line_number":76,"context_line":"        rule_obj.max_burst_kbps \u003d 100000"},{"line_number":77,"context_line":"        rule_obj.obj_reset_changes()"},{"line_number":78,"context_line":"        return rule_obj"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_bbd45feb","line":76,"range":{"start_line":75,"start_character":0,"end_line":76,"end_character":40},"updated":"2019-11-19 10:00:36.000000000","message":"old values are not ok to exercise the same? especially in unit tests","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"9c6505d73d119813f712c082f14b1238400ac4e7","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    def _create_bw_limit_rule(self):"},{"line_number":73,"context_line":"        rule_obj \u003d qos_rule.QosBandwidthLimitRule()"},{"line_number":74,"context_line":"        rule_obj.id \u003d uuidutils.generate_uuid()"},{"line_number":75,"context_line":"        rule_obj.max_kbps \u003d 1000"},{"line_number":76,"context_line":"        rule_obj.max_burst_kbps \u003d 100000"},{"line_number":77,"context_line":"        rule_obj.obj_reset_changes()"},{"line_number":78,"context_line":"        return rule_obj"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_416a1cb5","line":76,"range":{"start_line":75,"start_character":0,"end_line":76,"end_character":40},"in_reply_to":"3fa7e38b_bbd45feb","updated":"2019-11-19 12:34:36.000000000","message":"Because I have change the code here. The unit of QoS in OVN is the same with the QoS rule of neutron, so there is no need to multiply by 1000.\nhttps://review.opendev.org/#/c/692084/15/networking_ovn/ml2/qos_driver.py@104","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"}],"releasenotes/notes/support-QoS-by-meter-action-03bb9fa57e35e5bd.yaml":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"f699e2868ecf98145602d9509b2dfdad80123455","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    in OpenFlow as an action, so it is flexible and exact."},{"line_number":10,"context_line":"    By meter action, we can implemented QoS from both direction,"},{"line_number":11,"context_line":"    also, we can support dscp. If we want to related other matches,"},{"line_number":12,"context_line":"    it is also feasible."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"3fa7e38b_89bdafb2","line":12,"updated":"2019-11-18 11:33:23.000000000","message":"Question, currently we are not enabling the \"qos\" extension in OVN so all the tempest tests are being skipped [0] (search for \"qos\" in that web page).\n\nShould we enable it as part of this patch you think ? If so, you should add it to the list here: https://github.com/openstack/networking-ovn/blob/c27c19bf58ee14742fbc668b2e60e32fc8fac2bb/networking_ovn/common/extensions.py\n\n[0] https://591902838f8e8646dfb9-837b2e88470accfe1a064b11bbc0b1d6.ssl.cf5.rackcdn.com/692084/14/check/networking-ovn-tempest-dsvm-ovs-master/7d5a860/testr_results.html.gz","commit_id":"1e102e09bcedb772e35b8ecb19c6d7dfb6d63277"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"890b393d03198c6c128e3b2229554b0d7be64d7b","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    in OpenFlow as an action, so it is flexible and exact."},{"line_number":10,"context_line":"    By meter action, we can implemented QoS from both direction,"},{"line_number":11,"context_line":"    also, we can support dscp. If we want to related other matches,"},{"line_number":12,"context_line":"    it is also feasible."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"3fa7e38b_572f41f5","line":12,"in_reply_to":"3fa7e38b_89bdafb2","updated":"2019-11-19 05:52:04.000000000","message":"Hi,Lucas. \n   Thanks for your review.  Daniel also mentioned this. I think this patch could be worked for part of the qos tempest, not for all of them. I will continue work for qos feature in following patchs.  :)","commit_id":"1e102e09bcedb772e35b8ecb19c6d7dfb6d63277"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"69dddb0249ac36208e5394b38189e52f0b9ed74c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Currently, QoS is implemented by TC command of HV OS."},{"line_number":5,"context_line":"    This solution has many drawbacks, such as not supported"},{"line_number":6,"context_line":"    VLAN network or VMs from same HV."},{"line_number":7,"context_line":"    "},{"line_number":8,"context_line":"    Meter is a comfortable solution, which is implemented"},{"line_number":9,"context_line":"    in OpenFlow as an action, so it is flexible and exact."},{"line_number":10,"context_line":"    By meter action, we can implemented QoS from both direction,"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_dbd11bfa","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":4},"updated":"2019-11-19 10:00:36.000000000","message":"whitespaces","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"9c6505d73d119813f712c082f14b1238400ac4e7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Currently, QoS is implemented by TC command of HV OS."},{"line_number":5,"context_line":"    This solution has many drawbacks, such as not supported"},{"line_number":6,"context_line":"    VLAN network or VMs from same HV."},{"line_number":7,"context_line":"    "},{"line_number":8,"context_line":"    Meter is a comfortable solution, which is implemented"},{"line_number":9,"context_line":"    in OpenFlow as an action, so it is flexible and exact."},{"line_number":10,"context_line":"    By meter action, we can implemented QoS from both direction,"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_21aa80d1","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":4},"in_reply_to":"3fa7e38b_dbd11bfa","updated":"2019-11-19 12:34:36.000000000","message":"Done","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"69dddb0249ac36208e5394b38189e52f0b9ed74c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    "},{"line_number":8,"context_line":"    Meter is a comfortable solution, which is implemented"},{"line_number":9,"context_line":"    in OpenFlow as an action, so it is flexible and exact."},{"line_number":10,"context_line":"    By meter action, we can implemented QoS from both direction,"},{"line_number":11,"context_line":"    also, we can support dscp. If we want to related other matches,"},{"line_number":12,"context_line":"    it is also feasible."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_5bff6b65","line":10,"range":{"start_line":10,"start_character":54,"end_line":10,"end_character":63},"updated":"2019-11-19 10:00:36.000000000","message":"directions","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"69dddb0249ac36208e5394b38189e52f0b9ed74c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    "},{"line_number":8,"context_line":"    Meter is a comfortable solution, which is implemented"},{"line_number":9,"context_line":"    in OpenFlow as an action, so it is flexible and exact."},{"line_number":10,"context_line":"    By meter action, we can implemented QoS from both direction,"},{"line_number":11,"context_line":"    also, we can support dscp. If we want to related other matches,"},{"line_number":12,"context_line":"    it is also feasible."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_3bfaaf76","line":10,"range":{"start_line":10,"start_character":28,"end_line":10,"end_character":39},"updated":"2019-11-19 10:00:36.000000000","message":"nit: implement","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"9c6505d73d119813f712c082f14b1238400ac4e7","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    "},{"line_number":8,"context_line":"    Meter is a comfortable solution, which is implemented"},{"line_number":9,"context_line":"    in OpenFlow as an action, so it is flexible and exact."},{"line_number":10,"context_line":"    By meter action, we can implemented QoS from both direction,"},{"line_number":11,"context_line":"    also, we can support dscp. If we want to related other matches,"},{"line_number":12,"context_line":"    it is also feasible."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_81825451","line":10,"range":{"start_line":10,"start_character":28,"end_line":10,"end_character":39},"in_reply_to":"3fa7e38b_3bfaaf76","updated":"2019-11-19 12:34:36.000000000","message":"Done","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"9c6505d73d119813f712c082f14b1238400ac4e7","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    "},{"line_number":8,"context_line":"    Meter is a comfortable solution, which is implemented"},{"line_number":9,"context_line":"    in OpenFlow as an action, so it is flexible and exact."},{"line_number":10,"context_line":"    By meter action, we can implemented QoS from both direction,"},{"line_number":11,"context_line":"    also, we can support dscp. If we want to related other matches,"},{"line_number":12,"context_line":"    it is also feasible."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_a1875061","line":10,"range":{"start_line":10,"start_character":54,"end_line":10,"end_character":63},"in_reply_to":"3fa7e38b_5bff6b65","updated":"2019-11-19 12:34:36.000000000","message":"Done","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"69dddb0249ac36208e5394b38189e52f0b9ed74c","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    Meter is a comfortable solution, which is implemented"},{"line_number":9,"context_line":"    in OpenFlow as an action, so it is flexible and exact."},{"line_number":10,"context_line":"    By meter action, we can implemented QoS from both direction,"},{"line_number":11,"context_line":"    also, we can support dscp. If we want to related other matches,"},{"line_number":12,"context_line":"    it is also feasible."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_1bf57383","line":11,"range":{"start_line":11,"start_character":25,"end_line":11,"end_character":29},"updated":"2019-11-19 10:00:36.000000000","message":"DSCP ?","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"69dddb0249ac36208e5394b38189e52f0b9ed74c","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    Meter is a comfortable solution, which is implemented"},{"line_number":9,"context_line":"    in OpenFlow as an action, so it is flexible and exact."},{"line_number":10,"context_line":"    By meter action, we can implemented QoS from both direction,"},{"line_number":11,"context_line":"    also, we can support dscp. If we want to related other matches,"},{"line_number":12,"context_line":"    it is also feasible."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_7b2907f0","line":11,"range":{"start_line":11,"start_character":45,"end_line":11,"end_character":52},"updated":"2019-11-19 10:00:36.000000000","message":"relate? Not sure what do you mean here sorry","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"9c6505d73d119813f712c082f14b1238400ac4e7","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    Meter is a comfortable solution, which is implemented"},{"line_number":9,"context_line":"    in OpenFlow as an action, so it is flexible and exact."},{"line_number":10,"context_line":"    By meter action, we can implemented QoS from both direction,"},{"line_number":11,"context_line":"    also, we can support dscp. If we want to related other matches,"},{"line_number":12,"context_line":"    it is also feasible."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_01966495","line":11,"range":{"start_line":11,"start_character":25,"end_line":11,"end_character":29},"in_reply_to":"3fa7e38b_1bf57383","updated":"2019-11-19 12:34:36.000000000","message":"yes,DSCP","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"9c6505d73d119813f712c082f14b1238400ac4e7","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    Meter is a comfortable solution, which is implemented"},{"line_number":9,"context_line":"    in OpenFlow as an action, so it is flexible and exact."},{"line_number":10,"context_line":"    By meter action, we can implemented QoS from both direction,"},{"line_number":11,"context_line":"    also, we can support dscp. If we want to related other matches,"},{"line_number":12,"context_line":"    it is also feasible."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_61f2b807","line":11,"range":{"start_line":11,"start_character":45,"end_line":11,"end_character":52},"in_reply_to":"3fa7e38b_7b2907f0","updated":"2019-11-19 12:34:36.000000000","message":"Thanks Daniel. \"related\" should be \"add\".","commit_id":"2d5be833320888c3ce5275b32ae856addb4e070c"}]}
