)]}'
{"neutron/agent/linux/iptables_firewall.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"0490e4506146a1d2deecb8eb226b60e9bd2b8f4d","unresolved":false,"context_lines":[{"line_number":381,"context_line":"            mac_ipv6_pairs.append((mac, ip_address))"},{"line_number":382,"context_line":"            lla \u003d str(ipv6_utils.get_ipv6_addr_by_EUI64("},{"line_number":383,"context_line":"                    constants.IPV6_LLA_PREFIX, mac))"},{"line_number":384,"context_line":"            mac_ipv6_pairs.append((mac, lla))"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    def _spoofing_rule(self, port, ipv4_rules, ipv6_rules):"},{"line_number":387,"context_line":"        # Allow dhcp client discovery and request"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_341d2574","line":384,"range":{"start_line":384,"start_character":12,"end_line":384,"end_character":45},"updated":"2016-04-16 19:35:52.000000000","message":"Dustin asked me if this is OK, since LLAs are not stored in neutron port resources. I don\u0027t see a problem with it, other than that users won\u0027t be able to view all the details.","commit_id":"71a866fae6daef1f7c72d160ed8c71018f1543a6"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"a71933bcae5ae9bba22b00758b6a6b194b199775","unresolved":false,"context_lines":[{"line_number":41,"context_line":"CHAIN_NAME_PREFIX \u003d {firewall.INGRESS_DIRECTION: \u0027i\u0027,"},{"line_number":42,"context_line":"                     firewall.EGRESS_DIRECTION: \u0027o\u0027,"},{"line_number":43,"context_line":"                     SPOOF_FILTER: \u0027s\u0027}"},{"line_number":44,"context_line":"ICMPV6_ALLOWED_UNSPEC_ADDR_TYPES \u003d [131, 135, 143]"},{"line_number":45,"context_line":"IPSET_DIRECTION \u003d {firewall.INGRESS_DIRECTION: \u0027src\u0027,"},{"line_number":46,"context_line":"                   firewall.EGRESS_DIRECTION: \u0027dst\u0027}"},{"line_number":47,"context_line":"# length of all device prefixes (e.g. qvo, tap, qvb)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_da6e18ff","line":44,"updated":"2016-04-27 14:36:31.000000000","message":"This should be in the constants file or neutron-lib, since there is no context for what the numbers mean in this file.  Is that going to be a follow-on?","commit_id":"a8a9d225d8496c044db7057552394afd6c950a8e"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"a9c9ed01be143da416720ade8307e8391050475e","unresolved":false,"context_lines":[{"line_number":41,"context_line":"CHAIN_NAME_PREFIX \u003d {firewall.INGRESS_DIRECTION: \u0027i\u0027,"},{"line_number":42,"context_line":"                     firewall.EGRESS_DIRECTION: \u0027o\u0027,"},{"line_number":43,"context_line":"                     SPOOF_FILTER: \u0027s\u0027}"},{"line_number":44,"context_line":"ICMPV6_ALLOWED_UNSPEC_ADDR_TYPES \u003d [131, 135, 143]"},{"line_number":45,"context_line":"IPSET_DIRECTION \u003d {firewall.INGRESS_DIRECTION: \u0027src\u0027,"},{"line_number":46,"context_line":"                   firewall.EGRESS_DIRECTION: \u0027dst\u0027}"},{"line_number":47,"context_line":"# length of all device prefixes (e.g. qvo, tap, qvb)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_d8bf36ce","line":44,"in_reply_to":"1a122d0e_da6e18ff","updated":"2016-04-27 21:03:32.000000000","message":"I recommend:\n\nKeep this local constant here for this patch. Submit a patch to add it to neutron-lib. File a bug to remind yourself to use the neutron-lib constant when it lands in neutron.","commit_id":"a8a9d225d8496c044db7057552394afd6c950a8e"}],"neutron/tests/functional/agent/test_firewall.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"ef3ecf3a515881b8418f67a9b53d8e516a247481","unresolved":false,"context_lines":[{"line_number":661,"context_line":"        self.tester.assert_no_connection(protocol\u003dself.tester.ICMP,"},{"line_number":662,"context_line":"                                         direction\u003dself.tester.EGRESS)"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"    @skip_if_firewall(\u0027openvswitch\u0027)"},{"line_number":665,"context_line":"    def test_ip_spoofing(self):"},{"line_number":666,"context_line":"        sg_rules \u003d [{\u0027ethertype\u0027: constants.IPv6,"},{"line_number":667,"context_line":"                     \u0027direction\u0027: firewall.INGRESS_DIRECTION,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a18252c_ed08c42f","line":664,"range":{"start_line":664,"start_character":4,"end_line":664,"end_character":36},"updated":"2016-04-13 15:48:52.000000000","message":"I just cried a bit. Does it mean it won\u0027t pass with ovs-firewall?","commit_id":"71a866fae6daef1f7c72d160ed8c71018f1543a6"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"bfa360903509d21183f08592236a12843470993a","unresolved":false,"context_lines":[{"line_number":661,"context_line":"        self.tester.assert_no_connection(protocol\u003dself.tester.ICMP,"},{"line_number":662,"context_line":"                                         direction\u003dself.tester.EGRESS)"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"    @skip_if_firewall(\u0027openvswitch\u0027)"},{"line_number":665,"context_line":"    def test_ip_spoofing(self):"},{"line_number":666,"context_line":"        sg_rules \u003d [{\u0027ethertype\u0027: constants.IPv6,"},{"line_number":667,"context_line":"                     \u0027direction\u0027: firewall.INGRESS_DIRECTION,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a18252c_4f3608e7","line":664,"range":{"start_line":664,"start_character":4,"end_line":664,"end_character":36},"in_reply_to":"5a18252c_14042948","updated":"2016-04-13 17:17:26.000000000","message":"Bad ovs firewall. I\u0027ll look into it and let you know :)","commit_id":"71a866fae6daef1f7c72d160ed8c71018f1543a6"},{"author":{"_account_id":11255,"name":"Dustin Lundquist","username":"dustin.lundquist","inactive":true},"change_message_id":"89a8dd452aa90cf65557a57fc23b6935a547f52a","unresolved":false,"context_lines":[{"line_number":661,"context_line":"        self.tester.assert_no_connection(protocol\u003dself.tester.ICMP,"},{"line_number":662,"context_line":"                                         direction\u003dself.tester.EGRESS)"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"    @skip_if_firewall(\u0027openvswitch\u0027)"},{"line_number":665,"context_line":"    def test_ip_spoofing(self):"},{"line_number":666,"context_line":"        sg_rules \u003d [{\u0027ethertype\u0027: constants.IPv6,"},{"line_number":667,"context_line":"                     \u0027direction\u0027: firewall.INGRESS_DIRECTION,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a18252c_14042948","line":664,"range":{"start_line":664,"start_character":4,"end_line":664,"end_character":36},"in_reply_to":"5a18252c_ed08c42f","updated":"2016-04-13 17:13:42.000000000","message":"Correct, the OVSFirewall implementation was failing the spoofed DHCP request test: http://logs.openstack.org/33/300233/3/check/gate-neutron-dsvm-functional/8637aec/testr_results.html.gz\n\nI would be happy to look at this, but still having trouble getting the OVSFirewall driver up in a devstack.","commit_id":"71a866fae6daef1f7c72d160ed8c71018f1543a6"}],"neutron/tests/unit/agent/linux/test_iptables_firewall.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"a71933bcae5ae9bba22b00758b6a6b194b199775","unresolved":false,"context_lines":[{"line_number":956,"context_line":"            dhcp_rule \u003d [mock.call.add_rule(\u0027ofake_dev\u0027,"},{"line_number":957,"context_line":"                                            \u0027-s ::/128 -d ff02::/16 \u0027"},{"line_number":958,"context_line":"                                            \u0027-p ipv6-icmp -m icmp6 \u0027"},{"line_number":959,"context_line":"                                            \u0027--icmpv6-type 131 -j RETURN\u0027,"},{"line_number":960,"context_line":"                                            comment\u003dNone),"},{"line_number":961,"context_line":"                         mock.call.add_rule(\u0027ofake_dev\u0027,"},{"line_number":962,"context_line":"                                            \u0027-s ::/128 -d ff02::/16 \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_b5824f50","line":959,"updated":"2016-04-27 14:36:31.000000000","message":"Is there a constant definition for MLD (131)?  Just that L964/965 makes it clear what\u0027s being allowed for those that haven\u0027t memorized the types.","commit_id":"a8a9d225d8496c044db7057552394afd6c950a8e"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"a9c9ed01be143da416720ade8307e8391050475e","unresolved":false,"context_lines":[{"line_number":956,"context_line":"            dhcp_rule \u003d [mock.call.add_rule(\u0027ofake_dev\u0027,"},{"line_number":957,"context_line":"                                            \u0027-s ::/128 -d ff02::/16 \u0027"},{"line_number":958,"context_line":"                                            \u0027-p ipv6-icmp -m icmp6 \u0027"},{"line_number":959,"context_line":"                                            \u0027--icmpv6-type 131 -j RETURN\u0027,"},{"line_number":960,"context_line":"                                            comment\u003dNone),"},{"line_number":961,"context_line":"                         mock.call.add_rule(\u0027ofake_dev\u0027,"},{"line_number":962,"context_line":"                                            \u0027-s ::/128 -d ff02::/16 \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_38a8ea8b","line":959,"in_reply_to":"1a122d0e_b5824f50","updated":"2016-04-27 21:03:32.000000000","message":"I recommend:\n\nKeep this hard-coded number here for this patch. Submit a patch to add a constant for it to neutron-lib. File a bug to remind yourself to use the neutron-lib constant when it lands in neutron.","commit_id":"a8a9d225d8496c044db7057552394afd6c950a8e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"a71933bcae5ae9bba22b00758b6a6b194b199775","unresolved":false,"context_lines":[{"line_number":967,"context_line":"                         mock.call.add_rule(\u0027ofake_dev\u0027,"},{"line_number":968,"context_line":"                                            \u0027-s ::/128 -d ff02::/16 \u0027"},{"line_number":969,"context_line":"                                            \u0027-p ipv6-icmp -m icmp6 \u0027"},{"line_number":970,"context_line":"                                            \u0027--icmpv6-type 143 -j RETURN\u0027,"},{"line_number":971,"context_line":"                                            comment\u003dNone)]"},{"line_number":972,"context_line":"        sg \u003d [rule]"},{"line_number":973,"context_line":"        port[\u0027security_group_rules\u0027] \u003d sg"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_95875360","line":970,"updated":"2016-04-27 14:36:31.000000000","message":"Ditto.","commit_id":"a8a9d225d8496c044db7057552394afd6c950a8e"}]}
