)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"80b08e5c7e071300c7f73dec0bea4a2c4a716eaa","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch makes sure that existing connection breaks once security"},{"line_number":10,"context_line":"group rule that allowed such connection is removed. Due to correctly"},{"line_number":11,"context_line":"track connections on the same hypervisor, zones were changed from"},{"line_number":12,"context_line":"per-port to per-tenant (based on port\u0027s vlan tag). This information is"},{"line_number":13,"context_line":"now stored in register 6. Also there was added a test for RELATED"},{"line_number":14,"context_line":"connections to avoid marking such connection as invalid by REPLY rules."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"fa0719c6_b5effe1c","line":12,"updated":"2016-03-23 16:03:57.000000000","message":"This doesn\u0027t make sense to me. VLAN tags don\u0027t have anything to do with tenants, so how is it per tenant?","commit_id":"4a4b14b6ad792354b4c7885490280a82dec8d2e7"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"7c1b2cc02d7e626b55ba6368eb42fefa608365fe","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch makes sure that existing connection breaks once security"},{"line_number":10,"context_line":"group rule that allowed such connection is removed. Due to correctly"},{"line_number":11,"context_line":"track connections on the same hypervisor, zones were changed from"},{"line_number":12,"context_line":"per-port to per-tenant (based on port\u0027s vlan tag). This information is"},{"line_number":13,"context_line":"now stored in register 6. Also there was added a test for RELATED"},{"line_number":14,"context_line":"connections to avoid marking such connection as invalid by REPLY rules."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"fa0719c6_f5285635","line":12,"in_reply_to":"fa0719c6_b5effe1c","updated":"2016-03-23 16:05:08.000000000","message":"Bug in commit msg. it\u0027s per network","commit_id":"4a4b14b6ad792354b4c7885490280a82dec8d2e7"}],"doc/source/devref/openvswitch_firewall.rst":[{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"21bcd8d6a4632cda719e3e4297f40e4c1656771e","unresolved":false,"context_lines":[{"line_number":90,"context_line":"Rules example with explanation:"},{"line_number":91,"context_line":"-------------------------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"TODO: Rules below will be awesomly explained"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"::"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa0719c6_d902333e","line":93,"updated":"2016-03-21 14:01:00.000000000","message":"and probably should be updated too, right?\nI\u0027d love to see an explanation anyway, it would make this patch easier to review and it will be useful for the future anyway","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d7e32b1492e99609e0824045462219bbb56de35f","unresolved":false,"context_lines":[{"line_number":90,"context_line":"Rules example with explanation:"},{"line_number":91,"context_line":"-------------------------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"TODO: Rules below will be awesomly explained"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"::"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa0719c6_ecd80820","line":93,"in_reply_to":"fa0719c6_9cdd4945","updated":"2016-03-21 16:49:52.000000000","message":"Done","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"cec0a58e1ed30c63430a541e94232c8c431f5930","unresolved":false,"context_lines":[{"line_number":90,"context_line":"Rules example with explanation:"},{"line_number":91,"context_line":"-------------------------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"TODO: Rules below will be awesomly explained"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"::"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa0719c6_9cdd4945","line":93,"in_reply_to":"fa0719c6_d902333e","updated":"2016-03-21 14:52:23.000000000","message":"I have it as a separate patch (https://review.openstack.org/#/c/283137/) that I planned to update once this gets merged so I don\u0027t need to make a change to rst every time I change a little piece of code. But I can squash.","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"509302d0154c975e5ad9e25270d85edf5af9647d","unresolved":false,"context_lines":[{"line_number":169,"context_line":" table\u003d71, priority\u003d70,udp,reg5\u003d0x2,in_port\u003d2,tp_src\u003d67,tp_dst\u003d68 actions\u003ddrop"},{"line_number":170,"context_line":" table\u003d71, priority\u003d70,udp6,reg5\u003d0x2,in_port\u003d2,tp_src\u003d547,tp_dst\u003d546 actions\u003ddrop"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Flowing rules obtain conntrack information for valid ip addresses. All other"},{"line_number":173,"context_line":"packets are dropped."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":10,"id":"fa0719c6_54c96125","line":172,"updated":"2016-03-23 09:35:00.000000000","message":"nit \"for valid ip and mac address combinations\"","commit_id":"8d4df2963289db23b5c6a2f9a7a2d4a4086d891e"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"b948495c99388cbd927bb8842a1abb7f33fb2278","unresolved":false,"context_lines":[{"line_number":169,"context_line":" table\u003d71, priority\u003d70,udp,reg5\u003d0x2,in_port\u003d2,tp_src\u003d67,tp_dst\u003d68 actions\u003ddrop"},{"line_number":170,"context_line":" table\u003d71, priority\u003d70,udp6,reg5\u003d0x2,in_port\u003d2,tp_src\u003d547,tp_dst\u003d546 actions\u003ddrop"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Flowing rules obtain conntrack information for valid ip addresses. All other"},{"line_number":173,"context_line":"packets are dropped."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":10,"id":"fa0719c6_870d89ea","line":172,"in_reply_to":"fa0719c6_54c96125","updated":"2016-03-23 09:38:16.000000000","message":"Done","commit_id":"8d4df2963289db23b5c6a2f9a7a2d4a4086d891e"}],"neutron/agent/linux/openvswitch_firewall/firewall.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"9ad8ed4b9a79e2d6d3c98ec8d924d8a5da8a4f82","unresolved":false,"context_lines":[{"line_number":444,"context_line":"                    \"exec(set_field:{:s}-\u003ect_label))\".format("},{"line_number":445,"context_line":"                        ovs_consts.RULES_EGRESS_TABLE,"},{"line_number":446,"context_line":"                        ovsfw_consts.CT_LABEL_INVALID)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"        )"},{"line_number":449,"context_line":"        # Drop traffic for not removed sg rules"},{"line_number":450,"context_line":"        self._add_flow("}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_0279b82f","line":447,"updated":"2016-02-25 12:40:56.000000000","message":"This empty line is very important :)","commit_id":"4db4c39281870d39e60818380eac20d747d5df95"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"9ad8ed4b9a79e2d6d3c98ec8d924d8a5da8a4f82","unresolved":false,"context_lines":[{"line_number":547,"context_line":"                    \"exec(set_field:{:s}-\u003ect_label))\".format("},{"line_number":548,"context_line":"                        ovs_consts.RULES_INGRESS_TABLE,"},{"line_number":549,"context_line":"                        ovsfw_consts.CT_LABEL_INVALID)"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"        )"},{"line_number":552,"context_line":"        # Drop traffic for not removed sg rules"},{"line_number":553,"context_line":"        self._add_flow("}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_a28e0c25","line":550,"updated":"2016-02-25 12:40:56.000000000","message":"Ditto","commit_id":"4db4c39281870d39e60818380eac20d747d5df95"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"0746d2aaadefac16497308532ccdf8d2f75607ff","unresolved":false,"context_lines":[{"line_number":395,"context_line":"                nw_proto\u003dconstants.PROTO_NUM_UDP,"},{"line_number":396,"context_line":"                tp_src\u003dsrc_port,"},{"line_number":397,"context_line":"                tp_dst\u003ddst_port,"},{"line_number":398,"context_line":"                actions\u003d\u0027ct(commit,table\u003d{:d},zone\u003dNXM_NX_REG6[0..15])\u0027.format("},{"line_number":399,"context_line":"                    ovs_consts.ACCEPT_OR_INGRESS_TABLE)"},{"line_number":400,"context_line":"            )"},{"line_number":401,"context_line":"        # Ban dhcp service running on an instance"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_fb2da4fe","line":398,"range":{"start_line":398,"start_character":25,"end_line":398,"end_character":70},"updated":"2016-03-04 12:48:41.000000000","message":"There should be left resubmit","commit_id":"aa236a3c7f3a7a459d335b9bb763e992bbc55793"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"7f7a417e84d8f46bdd5df8a5e071e540b4209912","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    def _accept_flow(self, **flow):"},{"line_number":178,"context_line":"        flow[\u0027ct_state\u0027] \u003d ovsfw_consts.OF_STATE_ESTABLISHED_NOT_REPLY"},{"line_number":179,"context_line":"        self._add_flow(**flow)"},{"line_number":180,"context_line":"        flow[\u0027ct_state\u0027] \u003d ovsfw_consts.OF_STATE_NEW_NOT_ESTABLISHED"},{"line_number":181,"context_line":"        if flow[\u0027table\u0027] \u003d\u003d ovs_consts.RULES_INGRESS_TABLE:"},{"line_number":182,"context_line":"            flow[\u0027actions\u0027] +\u003d \u0027,ct(commit,zone\u003dNXM_NX_REG6[0..15])\u0027"},{"line_number":183,"context_line":"        self._add_flow(**flow)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_a20b5429","line":180,"updated":"2016-03-09 12:36:23.000000000","message":"ok , this should be better, the CT check is done, and only if it\u0027s not established we will try to commit it.","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"971d32e6b6837c1059ed6dc52471948fe7e24fcf","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    def _accept_flow(self, **flow):"},{"line_number":178,"context_line":"        flow[\u0027ct_state\u0027] \u003d ovsfw_consts.OF_STATE_ESTABLISHED_NOT_REPLY"},{"line_number":179,"context_line":"        self._add_flow(**flow)"},{"line_number":180,"context_line":"        flow[\u0027ct_state\u0027] \u003d ovsfw_consts.OF_STATE_NEW_NOT_ESTABLISHED"},{"line_number":181,"context_line":"        if flow[\u0027table\u0027] \u003d\u003d ovs_consts.RULES_INGRESS_TABLE:"},{"line_number":182,"context_line":"            flow[\u0027actions\u0027] +\u003d \u0027,ct(commit,zone\u003dNXM_NX_REG6[0..15])\u0027"},{"line_number":183,"context_line":"        self._add_flow(**flow)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_982dd600","line":180,"in_reply_to":"5aef4532_84ebba12","updated":"2016-03-09 15:59:24.000000000","message":"no no, it was a (good!!) :) sorry :)","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d30c3f0e1c384f5fe121a58bc8898dda5309318b","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    def _accept_flow(self, **flow):"},{"line_number":178,"context_line":"        flow[\u0027ct_state\u0027] \u003d ovsfw_consts.OF_STATE_ESTABLISHED_NOT_REPLY"},{"line_number":179,"context_line":"        self._add_flow(**flow)"},{"line_number":180,"context_line":"        flow[\u0027ct_state\u0027] \u003d ovsfw_consts.OF_STATE_NEW_NOT_ESTABLISHED"},{"line_number":181,"context_line":"        if flow[\u0027table\u0027] \u003d\u003d ovs_consts.RULES_INGRESS_TABLE:"},{"line_number":182,"context_line":"            flow[\u0027actions\u0027] +\u003d \u0027,ct(commit,zone\u003dNXM_NX_REG6[0..15])\u0027"},{"line_number":183,"context_line":"        self._add_flow(**flow)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_84ebba12","line":180,"in_reply_to":"5aef4532_a20b5429","updated":"2016-03-09 14:02:46.000000000","message":"Are there any actions to be taken? I didn\u0027t get it.","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"7f7a417e84d8f46bdd5df8a5e071e540b4209912","unresolved":false,"context_lines":[{"line_number":305,"context_line":"            table\u003dovs_consts.LOCAL_SWITCHING,"},{"line_number":306,"context_line":"            priority\u003d100,"},{"line_number":307,"context_line":"            in_port\u003dport.ofport,"},{"line_number":308,"context_line":"            actions\u003d\u0027set_field:{:d}-\u003ereg5,\u0027"},{"line_number":309,"context_line":"                    \u0027set_field:{:d}-\u003ereg6,\u0027"},{"line_number":310,"context_line":"                    \u0027resubmit(,{:d})\u0027.format("},{"line_number":311,"context_line":"                        port.ofport,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_f9c35255","line":308,"updated":"2016-03-09 12:36:23.000000000","message":"(No action required now): we should find a way to dynamically reserve registers in the openflow code, so l2-ovs-extensions will be able to safely use registers of their own too. Now it\u0027s safe as the other know extensions (DSCP) use different registers, but there could be out of extensions in the future.","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d30c3f0e1c384f5fe121a58bc8898dda5309318b","unresolved":false,"context_lines":[{"line_number":305,"context_line":"            table\u003dovs_consts.LOCAL_SWITCHING,"},{"line_number":306,"context_line":"            priority\u003d100,"},{"line_number":307,"context_line":"            in_port\u003dport.ofport,"},{"line_number":308,"context_line":"            actions\u003d\u0027set_field:{:d}-\u003ereg5,\u0027"},{"line_number":309,"context_line":"                    \u0027set_field:{:d}-\u003ereg6,\u0027"},{"line_number":310,"context_line":"                    \u0027resubmit(,{:d})\u0027.format("},{"line_number":311,"context_line":"                        port.ofport,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_84761aa2","line":308,"in_reply_to":"5aef4532_f9c35255","updated":"2016-03-09 14:02:46.000000000","message":"Maybe we should leave a TODO somewhere or document it.","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"7f7a417e84d8f46bdd5df8a5e071e540b4209912","unresolved":false,"context_lines":[{"line_number":306,"context_line":"            priority\u003d100,"},{"line_number":307,"context_line":"            in_port\u003dport.ofport,"},{"line_number":308,"context_line":"            actions\u003d\u0027set_field:{:d}-\u003ereg5,\u0027"},{"line_number":309,"context_line":"                    \u0027set_field:{:d}-\u003ereg6,\u0027"},{"line_number":310,"context_line":"                    \u0027resubmit(,{:d})\u0027.format("},{"line_number":311,"context_line":"                        port.ofport,"},{"line_number":312,"context_line":"                        port.vlan_tag,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_0c051a13","line":309,"updated":"2016-03-09 12:36:23.000000000","message":"looking at that, could we set reg5 and reg6 for now as constants?\n\novs_consts.OFPORT_REG\novs_consts.VLAN_REG  or something like that?","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d30c3f0e1c384f5fe121a58bc8898dda5309318b","unresolved":false,"context_lines":[{"line_number":306,"context_line":"            priority\u003d100,"},{"line_number":307,"context_line":"            in_port\u003dport.ofport,"},{"line_number":308,"context_line":"            actions\u003d\u0027set_field:{:d}-\u003ereg5,\u0027"},{"line_number":309,"context_line":"                    \u0027set_field:{:d}-\u003ereg6,\u0027"},{"line_number":310,"context_line":"                    \u0027resubmit(,{:d})\u0027.format("},{"line_number":311,"context_line":"                        port.ofport,"},{"line_number":312,"context_line":"                        port.vlan_tag,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_6454aefe","line":309,"in_reply_to":"5aef4532_0c051a13","updated":"2016-03-09 14:02:46.000000000","message":"Good idea.","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"7f7a417e84d8f46bdd5df8a5e071e540b4209912","unresolved":false,"context_lines":[{"line_number":463,"context_line":"            ct_state\u003dovsfw_consts.OF_STATE_INVALID,"},{"line_number":464,"context_line":"            actions\u003d\u0027drop\u0027"},{"line_number":465,"context_line":"        )"},{"line_number":466,"context_line":"        # Drop traffic for not removed sg rules"},{"line_number":467,"context_line":"        self._add_flow("},{"line_number":468,"context_line":"            table\u003dovs_consts.RULES_EGRESS_TABLE,"},{"line_number":469,"context_line":"            priority\u003d50,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_b9da6ae6","line":466,"updated":"2016-03-09 12:36:23.000000000","message":"wouldn\u0027t it be \"for removed\" sg rules? instead of \"not\" ?","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d30c3f0e1c384f5fe121a58bc8898dda5309318b","unresolved":false,"context_lines":[{"line_number":463,"context_line":"            ct_state\u003dovsfw_consts.OF_STATE_INVALID,"},{"line_number":464,"context_line":"            actions\u003d\u0027drop\u0027"},{"line_number":465,"context_line":"        )"},{"line_number":466,"context_line":"        # Drop traffic for not removed sg rules"},{"line_number":467,"context_line":"        self._add_flow("},{"line_number":468,"context_line":"            table\u003dovs_consts.RULES_EGRESS_TABLE,"},{"line_number":469,"context_line":"            priority\u003d50,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_04b20a4c","line":466,"in_reply_to":"5aef4532_b9da6ae6","updated":"2016-03-09 14:02:46.000000000","message":"Done","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"7f7a417e84d8f46bdd5df8a5e071e540b4209912","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        self._add_flow("},{"line_number":496,"context_line":"            table\u003dovs_consts.RULES_EGRESS_TABLE,"},{"line_number":497,"context_line":"            priority\u003d40,"},{"line_number":498,"context_line":"            reg5\u003dport.ofport,"},{"line_number":499,"context_line":"            ct_state\u003dovsfw_consts.OF_STATE_ESTABLISHED,"},{"line_number":500,"context_line":"            actions\u003d\"ct(commit,zone\u003dNXM_NX_REG6[0..15],\""},{"line_number":501,"context_line":"                    \"exec(set_field:{:s}-\u003ect_mark))\".format("}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_ec7c2eb7","line":498,"range":{"start_line":498,"start_character":19,"end_line":498,"end_character":20},"updated":"2016-03-09 12:36:23.000000000","message":"nit: can we match on ct_mark\u003dCT_MARK_NORMAL too? (see later comments around L605","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"971d32e6b6837c1059ed6dc52471948fe7e24fcf","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        self._add_flow("},{"line_number":496,"context_line":"            table\u003dovs_consts.RULES_EGRESS_TABLE,"},{"line_number":497,"context_line":"            priority\u003d40,"},{"line_number":498,"context_line":"            reg5\u003dport.ofport,"},{"line_number":499,"context_line":"            ct_state\u003dovsfw_consts.OF_STATE_ESTABLISHED,"},{"line_number":500,"context_line":"            actions\u003d\"ct(commit,zone\u003dNXM_NX_REG6[0..15],\""},{"line_number":501,"context_line":"                    \"exec(set_field:{:s}-\u003ect_mark))\".format("}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_b8eb7277","line":498,"range":{"start_line":498,"start_character":19,"end_line":498,"end_character":20},"in_reply_to":"5aef4532_e176f0d5","updated":"2016-03-09 15:59:24.000000000","message":"ack, right! :)","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d30c3f0e1c384f5fe121a58bc8898dda5309318b","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        self._add_flow("},{"line_number":496,"context_line":"            table\u003dovs_consts.RULES_EGRESS_TABLE,"},{"line_number":497,"context_line":"            priority\u003d40,"},{"line_number":498,"context_line":"            reg5\u003dport.ofport,"},{"line_number":499,"context_line":"            ct_state\u003dovsfw_consts.OF_STATE_ESTABLISHED,"},{"line_number":500,"context_line":"            actions\u003d\"ct(commit,zone\u003dNXM_NX_REG6[0..15],\""},{"line_number":501,"context_line":"                    \"exec(set_field:{:s}-\u003ect_mark))\".format("}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_e176f0d5","line":498,"range":{"start_line":498,"start_character":19,"end_line":498,"end_character":20},"in_reply_to":"5aef4532_ec7c2eb7","updated":"2016-03-09 14:02:46.000000000","message":"Not needed as CT_MARK_INVALID are filtered on L467 with higher priority. That leaves only CT_MARK_NORMAL marks for this rule.","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"7f7a417e84d8f46bdd5df8a5e071e540b4209912","unresolved":false,"context_lines":[{"line_number":570,"context_line":"            ct_state\u003dovsfw_consts.OF_STATE_INVALID,"},{"line_number":571,"context_line":"            actions\u003d\u0027drop\u0027"},{"line_number":572,"context_line":"        )"},{"line_number":573,"context_line":"        # Drop traffic for not removed sg rules"},{"line_number":574,"context_line":"        self._add_flow("},{"line_number":575,"context_line":"            table\u003dovs_consts.RULES_INGRESS_TABLE,"},{"line_number":576,"context_line":"            priority\u003d50,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_2c0bb68f","line":573,"updated":"2016-03-09 12:36:23.000000000","message":"not removed-\u003eremoved?","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d30c3f0e1c384f5fe121a58bc8898dda5309318b","unresolved":false,"context_lines":[{"line_number":570,"context_line":"            ct_state\u003dovsfw_consts.OF_STATE_INVALID,"},{"line_number":571,"context_line":"            actions\u003d\u0027drop\u0027"},{"line_number":572,"context_line":"        )"},{"line_number":573,"context_line":"        # Drop traffic for not removed sg rules"},{"line_number":574,"context_line":"        self._add_flow("},{"line_number":575,"context_line":"            table\u003dovs_consts.RULES_INGRESS_TABLE,"},{"line_number":576,"context_line":"            priority\u003d50,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_4461b2d2","line":573,"in_reply_to":"5aef4532_2c0bb68f","updated":"2016-03-09 14:02:46.000000000","message":"Done","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"7f7a417e84d8f46bdd5df8a5e071e540b4209912","unresolved":false,"context_lines":[{"line_number":585,"context_line":"            self._add_flow("},{"line_number":586,"context_line":"                table\u003dovs_consts.RULES_INGRESS_TABLE,"},{"line_number":587,"context_line":"                priority\u003d50,"},{"line_number":588,"context_line":"                dl_dst\u003dport.mac,"},{"line_number":589,"context_line":"                reg5\u003dport.ofport,"},{"line_number":590,"context_line":"                ct_state\u003dstate,"},{"line_number":591,"context_line":"                ct_mark\u003dovsfw_consts.CT_MARK_NORMAL,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_2c67364e","line":588,"updated":"2016-03-09 12:36:23.000000000","message":"unrelated to this patch, I just realized it\u0027s redundant to match by both mac \u0026 ofport (reg5), I wonder if it has any matching performance impact at all, but at least, we could spin them off in a separate patch to improve rule readability.","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d30c3f0e1c384f5fe121a58bc8898dda5309318b","unresolved":false,"context_lines":[{"line_number":585,"context_line":"            self._add_flow("},{"line_number":586,"context_line":"                table\u003dovs_consts.RULES_INGRESS_TABLE,"},{"line_number":587,"context_line":"                priority\u003d50,"},{"line_number":588,"context_line":"                dl_dst\u003dport.mac,"},{"line_number":589,"context_line":"                reg5\u003dport.ofport,"},{"line_number":590,"context_line":"                ct_state\u003dstate,"},{"line_number":591,"context_line":"                ct_mark\u003dovsfw_consts.CT_MARK_NORMAL,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_010f9c37","line":588,"in_reply_to":"5aef4532_2c67364e","updated":"2016-03-09 14:02:46.000000000","message":"Yes, I have it in my todo. I plan to do cleanups after all patches land and then update devref to be aligned with actual generated flows.","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"7f7a417e84d8f46bdd5df8a5e071e540b4209912","unresolved":false,"context_lines":[{"line_number":602,"context_line":"        self._add_flow("},{"line_number":603,"context_line":"            table\u003dovs_consts.RULES_INGRESS_TABLE,"},{"line_number":604,"context_line":"            priority\u003d40,"},{"line_number":605,"context_line":"            reg5\u003dport.ofport,"},{"line_number":606,"context_line":"            ct_state\u003dovsfw_consts.OF_STATE_ESTABLISHED,"},{"line_number":607,"context_line":"            actions\u003d\"ct(commit,zone\u003dNXM_NX_REG6[0..15],\""},{"line_number":608,"context_line":"                    \"exec(set_field:{:s}-\u003ect_mark))\".format("}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_6cb93e79","line":605,"range":{"start_line":605,"start_character":23,"end_line":605,"end_character":24},"updated":"2016-03-09 12:36:23.000000000","message":"nit: could we also match on ct_mark\u003dCT_MARK_NORMAL ? , this way we avoid any new packets trying to get through to rehit commit ct-conntrack calls.","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d30c3f0e1c384f5fe121a58bc8898dda5309318b","unresolved":false,"context_lines":[{"line_number":602,"context_line":"        self._add_flow("},{"line_number":603,"context_line":"            table\u003dovs_consts.RULES_INGRESS_TABLE,"},{"line_number":604,"context_line":"            priority\u003d40,"},{"line_number":605,"context_line":"            reg5\u003dport.ofport,"},{"line_number":606,"context_line":"            ct_state\u003dovsfw_consts.OF_STATE_ESTABLISHED,"},{"line_number":607,"context_line":"            actions\u003d\"ct(commit,zone\u003dNXM_NX_REG6[0..15],\""},{"line_number":608,"context_line":"                    \"exec(set_field:{:s}-\u003ect_mark))\".format("}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_a42356a6","line":605,"range":{"start_line":605,"start_character":23,"end_line":605,"end_character":24},"in_reply_to":"5aef4532_6cb93e79","updated":"2016-03-09 14:02:46.000000000","message":"Same as above, CT_MARK_INVALID are matched on L574","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"971d32e6b6837c1059ed6dc52471948fe7e24fcf","unresolved":false,"context_lines":[{"line_number":602,"context_line":"        self._add_flow("},{"line_number":603,"context_line":"            table\u003dovs_consts.RULES_INGRESS_TABLE,"},{"line_number":604,"context_line":"            priority\u003d40,"},{"line_number":605,"context_line":"            reg5\u003dport.ofport,"},{"line_number":606,"context_line":"            ct_state\u003dovsfw_consts.OF_STATE_ESTABLISHED,"},{"line_number":607,"context_line":"            actions\u003d\"ct(commit,zone\u003dNXM_NX_REG6[0..15],\""},{"line_number":608,"context_line":"                    \"exec(set_field:{:s}-\u003ect_mark))\".format("}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_58922ef7","line":605,"range":{"start_line":605,"start_character":23,"end_line":605,"end_character":24},"in_reply_to":"5aef4532_a42356a6","updated":"2016-03-09 15:59:24.000000000","message":"re-ack :)","commit_id":"cfe9d32733b44a451d18657ec0eae4fa73b7de5e"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"21bcd8d6a4632cda719e3e4297f40e4c1656771e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def _replace_register(flow_params, register_number, register_value):"},{"line_number":33,"context_line":"    try:"},{"line_number":34,"context_line":"        reg_port \u003d flow_params[register_value]"},{"line_number":35,"context_line":"        del flow_params[register_value]"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_5963c31a","line":32,"updated":"2016-03-21 14:01:00.000000000","message":"these two methods are cryptic, I\u0027d love to see a doc string explaining them","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"cec0a58e1ed30c63430a541e94232c8c431f5930","unresolved":false,"context_lines":[{"line_number":29,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def _replace_register(flow_params, register_number, register_value):"},{"line_number":33,"context_line":"    try:"},{"line_number":34,"context_line":"        reg_port \u003d flow_params[register_value]"},{"line_number":35,"context_line":"        del flow_params[register_value]"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_857328b1","line":32,"in_reply_to":"fa0719c6_5963c31a","updated":"2016-03-21 14:52:23.000000000","message":"Done","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"21bcd8d6a4632cda719e3e4297f40e4c1656771e","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            try:"},{"line_number":237,"context_line":"                port_vlan_id \u003d int(port_tags[ovs_port.port_name])"},{"line_number":238,"context_line":"            except (KeyError, ValueError):"},{"line_number":239,"context_line":"                port_vlan_id \u003d 4095"},{"line_number":240,"context_line":"            of_port \u003d OFPort(port, ovs_port, port_vlan_id)"},{"line_number":241,"context_line":"            self.sg_port_map.create_port(of_port, port)"},{"line_number":242,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_394fef93","line":239,"updated":"2016-03-21 14:01:00.000000000","message":"why 4095?","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d7e32b1492e99609e0824045462219bbb56de35f","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            try:"},{"line_number":237,"context_line":"                port_vlan_id \u003d int(port_tags[ovs_port.port_name])"},{"line_number":238,"context_line":"            except (KeyError, ValueError):"},{"line_number":239,"context_line":"                port_vlan_id \u003d 4095"},{"line_number":240,"context_line":"            of_port \u003d OFPort(port, ovs_port, port_vlan_id)"},{"line_number":241,"context_line":"            self.sg_port_map.create_port(of_port, port)"},{"line_number":242,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_2c096096","line":239,"in_reply_to":"fa0719c6_36189184","updated":"2016-03-21 16:49:52.000000000","message":"Done","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"cec0a58e1ed30c63430a541e94232c8c431f5930","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            try:"},{"line_number":237,"context_line":"                port_vlan_id \u003d int(port_tags[ovs_port.port_name])"},{"line_number":238,"context_line":"            except (KeyError, ValueError):"},{"line_number":239,"context_line":"                port_vlan_id \u003d 4095"},{"line_number":240,"context_line":"            of_port \u003d OFPort(port, ovs_port, port_vlan_id)"},{"line_number":241,"context_line":"            self.sg_port_map.create_port(of_port, port)"},{"line_number":242,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_9cab8989","line":239,"in_reply_to":"fa0719c6_394fef93","updated":"2016-03-21 14:52:23.000000000","message":"That\u0027s a dead port. Any suggestions? Will it be better to use no zone for conntrack or just fail here?","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"aef217ad8ef2f353ce1fcf63b049dd497e43e251","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            try:"},{"line_number":237,"context_line":"                port_vlan_id \u003d int(port_tags[ovs_port.port_name])"},{"line_number":238,"context_line":"            except (KeyError, ValueError):"},{"line_number":239,"context_line":"                port_vlan_id \u003d 4095"},{"line_number":240,"context_line":"            of_port \u003d OFPort(port, ovs_port, port_vlan_id)"},{"line_number":241,"context_line":"            self.sg_port_map.create_port(of_port, port)"},{"line_number":242,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_36189184","line":239,"in_reply_to":"fa0719c6_9cab8989","updated":"2016-03-21 16:25:55.000000000","message":"yes, this constant https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py#L65","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"e6af1b64abd78d2324b4fd53d9102ea6cd043568","unresolved":false,"context_lines":[{"line_number":243,"context_line":"            if not ovs_port:"},{"line_number":244,"context_line":"                raise OVSFWPortNotFound(port_id\u003dport_id)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"            port_tags \u003d self.int_br.br.get_port_tag_dict()"},{"line_number":247,"context_line":"            try:"},{"line_number":248,"context_line":"                port_vlan_id \u003d int(port_tags[ovs_port.port_name])"},{"line_number":249,"context_line":"            except (KeyError, ValueError):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa0719c6_0c5eb511","line":246,"updated":"2016-03-23 12:20:58.000000000","message":"Never tested it, do you know if querying all the ports or just one has some performance impact in an environment with many ports? Another possible improvement could be keeping a cache of tags and update it...","commit_id":"b21e6e17e856831ee1e4d627105a75b3c7beebfe"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"bb914d72733bfb58e542ff3621d7f1b39a6f58b1","unresolved":false,"context_lines":[{"line_number":243,"context_line":"            if not ovs_port:"},{"line_number":244,"context_line":"                raise OVSFWPortNotFound(port_id\u003dport_id)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"            port_tags \u003d self.int_br.br.get_port_tag_dict()"},{"line_number":247,"context_line":"            try:"},{"line_number":248,"context_line":"                port_vlan_id \u003d int(port_tags[ovs_port.port_name])"},{"line_number":249,"context_line":"            except (KeyError, ValueError):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa0719c6_ac6b49f0","line":246,"in_reply_to":"fa0719c6_0c5eb511","updated":"2016-03-23 12:25:18.000000000","message":"That\u0027s a good question. I don\u0027t know the performance impact. We can also make a query to ovsdb that would filter for specific port only.","commit_id":"b21e6e17e856831ee1e4d627105a75b3c7beebfe"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"b83886607c0a57ab39497bfb4f15f45ac9a7e8ed","unresolved":false,"context_lines":[{"line_number":243,"context_line":"            if not ovs_port:"},{"line_number":244,"context_line":"                raise OVSFWPortNotFound(port_id\u003dport_id)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"            port_tags \u003d self.int_br.br.get_port_tag_dict()"},{"line_number":247,"context_line":"            try:"},{"line_number":248,"context_line":"                port_vlan_id \u003d int(port_tags[ovs_port.port_name])"},{"line_number":249,"context_line":"            except (KeyError, ValueError):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa0719c6_cd0b1729","line":246,"in_reply_to":"fa0719c6_ac6b49f0","updated":"2016-03-23 13:09:29.000000000","message":"I replaced it with fetching for a single tag. Thanks for catching this Rossella :)","commit_id":"b21e6e17e856831ee1e4d627105a75b3c7beebfe"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"e6f85124c331c84be6f18ee7fadad8123a22ad62","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            try:"},{"line_number":247,"context_line":"                port_vlan_id \u003d int(self.int_br.br.db_get_val("},{"line_number":248,"context_line":"                    \u0027Port\u0027, ovs_port.port_name, \u0027tag\u0027))"},{"line_number":249,"context_line":"            except (KeyError, ValueError):"},{"line_number":250,"context_line":"                port_vlan_id \u003d ovs_consts.DEAD_VLAN_TAG"},{"line_number":251,"context_line":"            of_port \u003d OFPort(port, ovs_port, port_vlan_id)"},{"line_number":252,"context_line":"            self.sg_port_map.create_port(of_port, port)"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa0719c6_bf236aa6","line":249,"range":{"start_line":249,"start_character":20,"end_line":249,"end_character":28},"updated":"2016-03-23 13:10:05.000000000","message":"Damn, this should be TypeError now","commit_id":"96a3308f6ba5f0ae182f812616ef77a650ed2571"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"dd6381a6faff75809dc2f5e01cc9f26f80da1c23","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            try:"},{"line_number":247,"context_line":"                port_vlan_id \u003d int(self.int_br.br.db_get_val("},{"line_number":248,"context_line":"                    \u0027Port\u0027, ovs_port.port_name, \u0027tag\u0027))"},{"line_number":249,"context_line":"            except (KeyError, ValueError):"},{"line_number":250,"context_line":"                port_vlan_id \u003d ovs_consts.DEAD_VLAN_TAG"},{"line_number":251,"context_line":"            of_port \u003d OFPort(port, ovs_port, port_vlan_id)"},{"line_number":252,"context_line":"            self.sg_port_map.create_port(of_port, port)"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa0719c6_5facce8b","line":249,"range":{"start_line":249,"start_character":20,"end_line":249,"end_character":28},"in_reply_to":"fa0719c6_bf236aa6","updated":"2016-03-23 13:17:24.000000000","message":"Apparently this is caused by missing UT for this case. I\u0027ll add it.","commit_id":"96a3308f6ba5f0ae182f812616ef77a650ed2571"}],"neutron/tests/common/conn_testers.py":[{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"21bcd8d6a4632cda719e3e4297f40e4c1656771e","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        try:"},{"line_number":210,"context_line":"            self.assert_established_connection(direction, protocol, src_port,"},{"line_number":211,"context_line":"                                               dst_port)"},{"line_number":212,"context_line":"        except (ConnectionTesterException, RuntimeError):"},{"line_number":213,"context_line":"            pass"},{"line_number":214,"context_line":"        else:"},{"line_number":215,"context_line":"            raise ConnectionTesterException("}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_593743b0","line":212,"updated":"2016-03-21 14:01:00.000000000","message":"why did you have to add RuntimeError?","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"cec0a58e1ed30c63430a541e94232c8c431f5930","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        try:"},{"line_number":210,"context_line":"            self.assert_established_connection(direction, protocol, src_port,"},{"line_number":211,"context_line":"                                               dst_port)"},{"line_number":212,"context_line":"        except (ConnectionTesterException, RuntimeError):"},{"line_number":213,"context_line":"            pass"},{"line_number":214,"context_line":"        else:"},{"line_number":215,"context_line":"            raise ConnectionTesterException("}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_aaf39b09","line":212,"in_reply_to":"fa0719c6_593743b0","updated":"2016-03-21 14:52:23.000000000","message":"That\u0027s what comes from test_connectivity() when output on the peer side is not delivered. Maybe it will be better to wrap L194 with except RuntimeError and raise ConnectionTesterExcetpion","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"aef217ad8ef2f353ce1fcf63b049dd497e43e251","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        try:"},{"line_number":210,"context_line":"            self.assert_established_connection(direction, protocol, src_port,"},{"line_number":211,"context_line":"                                               dst_port)"},{"line_number":212,"context_line":"        except (ConnectionTesterException, RuntimeError):"},{"line_number":213,"context_line":"            pass"},{"line_number":214,"context_line":"        else:"},{"line_number":215,"context_line":"            raise ConnectionTesterException("}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_d1131f5b","line":212,"in_reply_to":"fa0719c6_aaf39b09","updated":"2016-03-21 16:25:55.000000000","message":"yep much better!","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d7e32b1492e99609e0824045462219bbb56de35f","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        try:"},{"line_number":210,"context_line":"            self.assert_established_connection(direction, protocol, src_port,"},{"line_number":211,"context_line":"                                               dst_port)"},{"line_number":212,"context_line":"        except (ConnectionTesterException, RuntimeError):"},{"line_number":213,"context_line":"            pass"},{"line_number":214,"context_line":"        else:"},{"line_number":215,"context_line":"            raise ConnectionTesterException("}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_6cecf8c7","line":212,"in_reply_to":"fa0719c6_d1131f5b","updated":"2016-03-21 16:49:52.000000000","message":"Done","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"}],"neutron/tests/functional/agent/test_firewall.py":[{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"db4dac04bcb23162f77a1bcf28377472a0e6e8f7","unresolved":false,"context_lines":[{"line_number":539,"context_line":"    def test_related_connection(self):"},{"line_number":540,"context_line":"        \"\"\"Test ICMP net unreachable packets get back"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"        When network is unreachable, icmp related packets are returned."},{"line_number":543,"context_line":"        \"\"\""},{"line_number":544,"context_line":"        self.tester.set_vm_default_gateway(self.tester.peer_ip_address)"},{"line_number":545,"context_line":"        vm_sg_rules \u003d [{\u0027ethertype\u0027: \u0027IPv4\u0027, \u0027direction\u0027: \u0027egress\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_72436eaf","line":542,"updated":"2016-03-04 14:52:54.000000000","message":"This test is very hard to read if you don\u0027t already have the context - You should explain what we want to test - That packets considered by conntrack as RELATED are not filtered by the firewalls, and that ICMP net unreachable packets are RELATED.","commit_id":"584d3f9d1b5faf1223a9a906811e0fd331a42981"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"db4dac04bcb23162f77a1bcf28377472a0e6e8f7","unresolved":false,"context_lines":[{"line_number":547,"context_line":"        self._apply_security_group_rules(self.FAKE_SECURITY_GROUP_ID,"},{"line_number":548,"context_line":"                                         vm_sg_rules)"},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"        self.tester.assert_net_unreachable(self.tester.EGRESS, \u00271.2.3.4\u0027)"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"class FirewallTestCaseIPv6(BaseFirewallTestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_527f5214","line":550,"updated":"2016-03-04 14:52:54.000000000","message":"It would be beneficial to remind to the reader that 1.2.3.4 is out of the subnet of the source, and that\u0027s why we expect the default gateway to return ICMP net unreachable messages.","commit_id":"584d3f9d1b5faf1223a9a906811e0fd331a42981"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"21bcd8d6a4632cda719e3e4297f40e4c1656771e","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    conn_testers.ConnectionTester.UDP: conn_testers.ConnectionTester.TCP}"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"DEVICE_OWNER_COMPUTE \u003d constants.DEVICE_OWNER_COMPUTE_PREFIX + \u0027fake\u0027"},{"line_number":52,"context_line":"VLAN_COUNT \u003d 1024"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"def skip_if_firewall(firewall_name):"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_59b623dd","line":52,"updated":"2016-03-21 14:01:00.000000000","message":"why 1024? 4096 are the available VLANs","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"cec0a58e1ed30c63430a541e94232c8c431f5930","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    conn_testers.ConnectionTester.UDP: conn_testers.ConnectionTester.TCP}"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"DEVICE_OWNER_COMPUTE \u003d constants.DEVICE_OWNER_COMPUTE_PREFIX + \u0027fake\u0027"},{"line_number":52,"context_line":"VLAN_COUNT \u003d 1024"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"def skip_if_firewall(firewall_name):"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_ea20f34b","line":52,"in_reply_to":"fa0719c6_59b623dd","updated":"2016-03-21 14:52:23.000000000","message":"It seemed to me big enough range for functional tests. So far we have 8 parallel runs on gate. 128 times higher value seems enough for me :) Do you think it\u0027s better to use the whole range?","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d7e32b1492e99609e0824045462219bbb56de35f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    conn_testers.ConnectionTester.UDP: conn_testers.ConnectionTester.TCP}"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"DEVICE_OWNER_COMPUTE \u003d constants.DEVICE_OWNER_COMPUTE_PREFIX + \u0027fake\u0027"},{"line_number":52,"context_line":"VLAN_COUNT \u003d 1024"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"def skip_if_firewall(firewall_name):"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_acf57084","line":52,"in_reply_to":"fa0719c6_916ec7c7","updated":"2016-03-21 16:49:52.000000000","message":"Done","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"aef217ad8ef2f353ce1fcf63b049dd497e43e251","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    conn_testers.ConnectionTester.UDP: conn_testers.ConnectionTester.TCP}"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"DEVICE_OWNER_COMPUTE \u003d constants.DEVICE_OWNER_COMPUTE_PREFIX + \u0027fake\u0027"},{"line_number":52,"context_line":"VLAN_COUNT \u003d 1024"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"def skip_if_firewall(firewall_name):"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_916ec7c7","line":52,"in_reply_to":"fa0719c6_ea20f34b","updated":"2016-03-21 16:25:55.000000000","message":"ah OK, 1024 seems just a random value, it\u0027s enough probably but I\u0027d use the whole range just not to create confusion :)","commit_id":"c438f0c7f7080fa360477f167343dfe765b9fb2c"}],"neutron/tests/unit/agent/linux/openvswitch_firewall/test_rules.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e01b4d4a38a25448bfc6897bed486749fec45980","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"class TestCreateProtocolFlows(base.BaseTestCase):"},{"line_number":163,"context_line":"    TESTING_VLAN_TAG \u003d 1"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def setUp(self):"},{"line_number":166,"context_line":"        super(TestCreateProtocolFlows, self).setUp()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1af94dfe_c8a083a2","line":163,"updated":"2016-03-16 13:27:51.000000000","message":"nit: you use 1 on L54 too so this could be global, although it\u0027s never used for verification.","commit_id":"859bc863423c09287567bd2a2d1f68a29a0be438"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"81e374f2bc63a984f4b19ed6169b7bbc91eac5dd","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"class TestCreateProtocolFlows(base.BaseTestCase):"},{"line_number":163,"context_line":"    TESTING_VLAN_TAG \u003d 1"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def setUp(self):"},{"line_number":166,"context_line":"        super(TestCreateProtocolFlows, self).setUp()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1af94dfe_a83d04bd","line":163,"in_reply_to":"1af94dfe_7c3bf038","updated":"2016-03-17 09:19:54.000000000","message":"Can you move it up? :)\n\nIt\u0027s not superduper important, but it makes sense.","commit_id":"859bc863423c09287567bd2a2d1f68a29a0be438"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"60fcdab3c39f8bf5a60e0b4ba3fb74ca0c2c3f9a","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"class TestCreateProtocolFlows(base.BaseTestCase):"},{"line_number":163,"context_line":"    TESTING_VLAN_TAG \u003d 1"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def setUp(self):"},{"line_number":166,"context_line":"        super(TestCreateProtocolFlows, self).setUp()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1af94dfe_abfe9e35","line":163,"in_reply_to":"1af94dfe_a83d04bd","updated":"2016-03-17 10:02:57.000000000","message":"Done","commit_id":"859bc863423c09287567bd2a2d1f68a29a0be438"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"1230dc290b9375174fce0d5bb528de48c25a2d0a","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"class TestCreateProtocolFlows(base.BaseTestCase):"},{"line_number":163,"context_line":"    TESTING_VLAN_TAG \u003d 1"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def setUp(self):"},{"line_number":166,"context_line":"        super(TestCreateProtocolFlows, self).setUp()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1af94dfe_7c3bf038","line":163,"in_reply_to":"1af94dfe_c8a083a2","updated":"2016-03-16 13:42:55.000000000","message":"Good eye, you\u0027re right :) Yeah, on L54 it\u0027s just to satisfy init.","commit_id":"859bc863423c09287567bd2a2d1f68a29a0be438"}]}
