)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"eb8041555533a29a471e54b601ee34ca69f98196","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-06-15 15:53:22 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix lack l2 goto l3 flow entry"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I5ae491c10009ab50a427fef0c6da8b6fc68cf42e"},{"line_number":10,"context_line":"Closes-bug: #1592223"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7aa08908_b42828f0","line":8,"updated":"2016-06-15 09:20:37.000000000","message":"describe the problem and how to solve it briefly.","commit_id":"976eff07140782a54dd2d885a43614a6a4ff7915"}],"dragonflow/controller/l2_app.py":[{"author":{"_account_id":18186,"name":"Denis Makogon","username":"denismakogon","inactive":true},"change_message_id":"e1dacbd6a804d2740cd98f32684882d6a91baea1","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                priority\u003dconst.PRIORITY_MEDIUM,"},{"line_number":164,"context_line":"                out_port\u003dofproto.OFPP_ANY,"},{"line_number":165,"context_line":"                out_group\u003dofproto.OFPG_ANY,"},{"line_number":166,"context_line":"                match\u003dmatch)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        # Remove egress classifier for port"},{"line_number":169,"context_line":"        match \u003d parser.OFPMatch(reg7\u003dtunnel_key)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_8e4cf0c9","line":166,"updated":"2016-06-15 11:02:46.000000000","message":"please extract this code into separate method due to duplication below","commit_id":"6b06c7488220229cf6bc5a1e17890659e4e8b0b7"},{"author":{"_account_id":18186,"name":"Denis Makogon","username":"denismakogon","inactive":true},"change_message_id":"e1dacbd6a804d2740cd98f32684882d6a91baea1","unresolved":false,"context_lines":[{"line_number":304,"context_line":"                inst\u003dinst,"},{"line_number":305,"context_line":"                table_id\u003dconst.L2_LOOKUP_TABLE,"},{"line_number":306,"context_line":"                priority\u003dpriority,"},{"line_number":307,"context_line":"                match\u003dmatch)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        # Egress classifier for port"},{"line_number":310,"context_line":"        match \u003d parser.OFPMatch(reg7\u003dtunnel_key)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_cec43810","line":307,"updated":"2016-06-15 11:02:46.000000000","message":"same here","commit_id":"6b06c7488220229cf6bc5a1e17890659e4e8b0b7"},{"author":{"_account_id":18186,"name":"Denis Makogon","username":"denismakogon","inactive":true},"change_message_id":"e1dacbd6a804d2740cd98f32684882d6a91baea1","unresolved":false,"context_lines":[{"line_number":455,"context_line":"                inst\u003dinst,"},{"line_number":456,"context_line":"                table_id\u003dconst.L2_LOOKUP_TABLE,"},{"line_number":457,"context_line":"                priority\u003dpriority,"},{"line_number":458,"context_line":"                match\u003dmatch)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"        # Egress classifier for port"},{"line_number":461,"context_line":"        match \u003d parser.OFPMatch(reg7\u003dtunnel_key)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_aec9ec27","line":458,"updated":"2016-06-15 11:02:46.000000000","message":"and here","commit_id":"6b06c7488220229cf6bc5a1e17890659e4e8b0b7"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"11d58174c08aa5020930da710d58ef7b09eff43e","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        match \u003d parser.OFPMatch()"},{"line_number":115,"context_line":"        match.set_metadata(network_id)"},{"line_number":116,"context_line":"        match.set_dl_dst(haddr_to_bin(mac))"},{"line_number":117,"context_line":"        actions \u003d []"},{"line_number":118,"context_line":"        actions.append(parser.OFPActionSetField(reg7\u003dtunnel_key))"},{"line_number":119,"context_line":"        action_inst \u003d self.get_datapath().ofproto_parser\\"},{"line_number":120,"context_line":"            .OFPInstructionActions(ofproto.OFPIT_APPLY_ACTIONS, actions)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_57e4520c","line":117,"updated":"2016-07-03 16:33:15.000000000","message":"It would be better to create the actions array with the elements immediately, rather than creating an empty array and then adding.\n\ne.g. actions \u003d [parser.Action()] rather than actions \u003d [] ; actions.append[parser.Action()].","commit_id":"a3d0ec41c6144125d49f971a6a02b3d9dc329ff5"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"11d58174c08aa5020930da710d58ef7b09eff43e","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        match.set_dl_dst(haddr_to_bin(mac))"},{"line_number":117,"context_line":"        actions \u003d []"},{"line_number":118,"context_line":"        actions.append(parser.OFPActionSetField(reg7\u003dtunnel_key))"},{"line_number":119,"context_line":"        action_inst \u003d self.get_datapath().ofproto_parser\\"},{"line_number":120,"context_line":"            .OFPInstructionActions(ofproto.OFPIT_APPLY_ACTIONS, actions)"},{"line_number":121,"context_line":"        goto_inst \u003d parser.OFPInstructionGotoTable(const.EGRESS_TABLE)"},{"line_number":122,"context_line":"        inst \u003d [action_inst, goto_inst]"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_37dd4643","line":119,"updated":"2016-07-03 16:33:15.000000000","message":"nit: It is preferable to wrap in brackets rather than braking lines with \\. And self.get_datapath().ofproto_parser \u003d parser.","commit_id":"a3d0ec41c6144125d49f971a6a02b3d9dc329ff5"}],"dragonflow/controller/l3_app.py":[{"author":{"_account_id":21007,"name":"yuan wei","email":"wei.yuan@huawei.com","username":"yuanwei"},"change_message_id":"6d82fdf3a17c56f863827070023a38ffa77bee79","unresolved":false,"context_lines":[{"line_number":174,"context_line":"            priority\u003dconst.PRIORITY_HIGH,"},{"line_number":175,"context_line":"            match\u003dmatch)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        #add dst_mac\u003dgw_mac l2 goto l3 flow"},{"line_number":178,"context_line":"        match \u003d parser.OFPMatch()"},{"line_number":179,"context_line":"        match.set_metadata(local_network_id)"},{"line_number":180,"context_line":"        match.set_dl_dst(haddr_to_bin(mac))"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_2c011d05","line":177,"range":{"start_line":177,"start_character":8,"end_line":177,"end_character":34},"updated":"2016-06-17 02:47:12.000000000","message":"when L3 agent isn\u0027t deployed, arp requests to a router interface can\u0027t be replied, so a VM may don\u0027t have the mac of the router interface. That should be took into count. Maybe the arp response flows of router interfaces should also be installed here.","commit_id":"c1986797f80299db5ab86ed3e5de8e2b00235d9f"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"11d58174c08aa5020930da710d58ef7b09eff43e","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                                    ipv6_dst\u003ddst_ip)"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        actions \u003d []"},{"line_number":229,"context_line":"        actions.append(parser.OFPActionSetField(reg7\u003dtunnel_key))"},{"line_number":230,"context_line":"        action_inst \u003d self.get_datapath().ofproto_parser.OFPInstructionActions("},{"line_number":231,"context_line":"            ofproto.OFPIT_APPLY_ACTIONS, actions)"},{"line_number":232,"context_line":"        goto_inst \u003d parser.OFPInstructionGotoTable(const.EGRESS_TABLE)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_17b00af4","line":229,"updated":"2016-07-03 16:33:15.000000000","message":"Same here re: actions array creation","commit_id":"a3d0ec41c6144125d49f971a6a02b3d9dc329ff5"}],"dragonflow/controller/l3_proactive_app.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"11d58174c08aa5020930da710d58ef7b09eff43e","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                                    ipv6_dst\u003ddst_ip)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        actions \u003d []"},{"line_number":64,"context_line":"        actions.append(parser.OFPActionSetField(reg7\u003dtunnel_key))"},{"line_number":65,"context_line":"        action_inst \u003d self.get_datapath().ofproto_parser.OFPInstructionActions("},{"line_number":66,"context_line":"            ofproto.OFPIT_APPLY_ACTIONS, actions)"},{"line_number":67,"context_line":"        goto_inst \u003d parser.OFPInstructionGotoTable(const.EGRESS_TABLE)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_97c51a5d","line":64,"updated":"2016-07-03 16:33:15.000000000","message":"Same here re: creation of actions array","commit_id":"a3d0ec41c6144125d49f971a6a02b3d9dc329ff5"}]}
