)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"cd9515275b75e037d17f99504ed968162c9a0ef1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Gal Sagie \u003cgal.sagie@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-31 08:22:26 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add allowed address pair supporting in DF plugin"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As first step towards implementing port security, make DF plugin"},{"line_number":10,"context_line":"the ability to deal with allowed address pair. And we need to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3afc51ec_4cb72ff5","line":7,"updated":"2016-03-15 04:36:02.000000000","message":":%s/supporting/support/g","commit_id":"610ec3d504d4149d82c861ad184fce846dc51f72"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"5f7a56874d8191a12301de0ddc586952f925124e","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-01-31 08:22:26 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add allowed address pair supporting in DF plugin"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As first step towards implementing port security, make DF plugin"},{"line_number":10,"context_line":"the ability to deal with allowed address pair. And we need to"},{"line_number":11,"context_line":"store the ip-man pair in the DF DB instead of only macs."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a5de9d1_03232fa8","line":8,"updated":"2016-02-01 02:51:36.000000000","message":"In my opinion, it is not a must for port-security.","commit_id":"610ec3d504d4149d82c861ad184fce846dc51f72"},{"author":{"_account_id":18668,"name":"ding bo","email":"longddropt@163.com","username":"longddropt"},"change_message_id":"b2c21a54107af13a721d9dc2e11ab42e42eb210a","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-01-31 08:22:26 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add allowed address pair supporting in DF plugin"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As first step towards implementing port security, make DF plugin"},{"line_number":10,"context_line":"the ability to deal with allowed address pair. And we need to"},{"line_number":11,"context_line":"store the ip-man pair in the DF DB instead of only macs."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a5ae5dd_a6c44992","line":8,"in_reply_to":"7a5de9d1_03232fa8","updated":"2016-02-03 13:00:15.000000000","message":"yes","commit_id":"610ec3d504d4149d82c861ad184fce846dc51f72"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"5f7a56874d8191a12301de0ddc586952f925124e","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As first step towards implementing port security, make DF plugin"},{"line_number":10,"context_line":"the ability to deal with allowed address pair. And we need to"},{"line_number":11,"context_line":"store the ip-man pair in the DF DB instead of only macs."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I046aaebe81508066b561949c724e6b77dcc67b5e"},{"line_number":14,"context_line":"Implements: blueprint mac-spoofing-protection"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a5de9d1_2865ea1c","line":11,"range":{"start_line":11,"start_character":13,"end_line":11,"end_character":16},"updated":"2016-02-01 02:51:36.000000000","message":"mac.","commit_id":"610ec3d504d4149d82c861ad184fce846dc51f72"},{"author":{"_account_id":18668,"name":"ding bo","email":"longddropt@163.com","username":"longddropt"},"change_message_id":"b2c21a54107af13a721d9dc2e11ab42e42eb210a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As first step towards implementing port security, make DF plugin"},{"line_number":10,"context_line":"the ability to deal with allowed address pair. And we need to"},{"line_number":11,"context_line":"store the ip-man pair in the DF DB instead of only macs."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I046aaebe81508066b561949c724e6b77dcc67b5e"},{"line_number":14,"context_line":"Implements: blueprint mac-spoofing-protection"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a5ae5dd_06467d23","line":11,"range":{"start_line":11,"start_character":13,"end_line":11,"end_character":16},"in_reply_to":"7a5de9d1_2865ea1c","updated":"2016-02-03 13:00:15.000000000","message":"will do","commit_id":"610ec3d504d4149d82c861ad184fce846dc51f72"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"5f7a56874d8191a12301de0ddc586952f925124e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"store the ip-man pair in the DF DB instead of only macs."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I046aaebe81508066b561949c724e6b77dcc67b5e"},{"line_number":14,"context_line":"Implements: blueprint mac-spoofing-protection"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a5de9d1_68a8c220","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":10},"updated":"2016-02-01 02:51:36.000000000","message":"Partially-Implements?","commit_id":"610ec3d504d4149d82c861ad184fce846dc51f72"},{"author":{"_account_id":18668,"name":"ding bo","email":"longddropt@163.com","username":"longddropt"},"change_message_id":"b2c21a54107af13a721d9dc2e11ab42e42eb210a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"store the ip-man pair in the DF DB instead of only macs."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I046aaebe81508066b561949c724e6b77dcc67b5e"},{"line_number":14,"context_line":"Implements: blueprint mac-spoofing-protection"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a5ae5dd_c6486530","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":10},"in_reply_to":"7a5de9d1_68a8c220","updated":"2016-02-03 13:00:15.000000000","message":"yes","commit_id":"610ec3d504d4149d82c861ad184fce846dc51f72"}],"dragonflow/neutron/plugin.py":[{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"29bec31984865a909544d3e320582414a71055ea","unresolved":false,"context_lines":[{"line_number":69,"context_line":"               l3_gwmode_db.L3_NAT_db_mixin,"},{"line_number":70,"context_line":"               external_net_db.External_net_db_mixin,"},{"line_number":71,"context_line":"               portbindings_db.PortBindingMixin,"},{"line_number":72,"context_line":"               addr_pair_db.AllowedAddressPairsMixin,"},{"line_number":73,"context_line":"               extradhcpopt_db.ExtraDhcpOptMixin,"},{"line_number":74,"context_line":"               extraroute_db.ExtraRoute_db_mixin,"},{"line_number":75,"context_line":"               agentschedulers_db.DhcpAgentSchedulerDbMixin):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_8c0dc539","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":53},"updated":"2016-03-17 04:51:18.000000000","message":"In Phase 2, ML2 Plugin will be done to support Dragonflow.\nIn ML2, Port_Security_Enalbe is an option.\nThus, with DF Plugin and ML2 plugin, if Port_Security_Enalbe and AllowedAddressPair are handled differently, app also needs to make some changes.","commit_id":"610ec3d504d4149d82c861ad184fce846dc51f72"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"29bec31984865a909544d3e320582414a71055ea","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        ips \u003d []"},{"line_number":343,"context_line":"        if \u0027fixed_ips\u0027 in updated_port:"},{"line_number":344,"context_line":"            ips \u003d [ip[\u0027ip_address\u0027] for ip in updated_port[\u0027fixed_ips\u0027]]"},{"line_number":345,"context_line":"            for ip in port[\u0027fixed_ips\u0027]:"},{"line_number":346,"context_line":"                allowed_address_pairs.add({\u0027ip\u0027: ip,"},{"line_number":347,"context_line":"                                           \u0027mac\u0027: port[\u0027mac_address\u0027]})"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"        chassis \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_0ce2559f","line":346,"range":{"start_line":345,"start_character":12,"end_line":346,"end_character":49},"updated":"2016-03-17 04:51:18.000000000","message":"If you add fixedIp and mac to allowedAddressPair, portsecurity app only needs to care about addresspairs.\nBut how do other apps do ,like Arp ,DHCP, L2, L3.","commit_id":"610ec3d504d4149d82c861ad184fce846dc51f72"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"fa431791ad92da34765bc13212d1c3b44dd88a04","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        if \u0027fixed_ips\u0027 in updated_port:"},{"line_number":344,"context_line":"            ips \u003d [ip[\u0027ip_address\u0027] for ip in updated_port[\u0027fixed_ips\u0027]]"},{"line_number":345,"context_line":"            for ip in port[\u0027fixed_ips\u0027]:"},{"line_number":346,"context_line":"                allowed_address_pairs.add({\u0027ip\u0027: ip,"},{"line_number":347,"context_line":"                                           \u0027mac\u0027: port[\u0027mac_address\u0027]})"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"        chassis \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_00c1cde4","line":346,"updated":"2016-03-15 19:14:11.000000000","message":"See above re: add on list.","commit_id":"610ec3d504d4149d82c861ad184fce846dc51f72"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"29bec31984865a909544d3e320582414a71055ea","unresolved":false,"context_lines":[{"line_number":361,"context_line":"                                 external_ids\u003dexternal_ids,"},{"line_number":362,"context_line":"                                 parent_name\u003dparent_name, tag\u003dtag,"},{"line_number":363,"context_line":"                                 enabled\u003dupdated_port[\u0027admin_state_up\u0027],"},{"line_number":364,"context_line":"                                 port_security\u003dallowed_address_pairs,"},{"line_number":365,"context_line":"                                 chassis\u003dchassis,"},{"line_number":366,"context_line":"                                 device_owner\u003dupdated_port.get(\u0027device_owner\u0027,"},{"line_number":367,"context_line":"                                                               None))"}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_2c9591dd","line":364,"range":{"start_line":364,"start_character":25,"end_line":364,"end_character":69},"updated":"2016-03-17 04:51:18.000000000","message":"I think allowedAddressPairs are mainly used for ports that have virtual ip or virtual mac(vrrp).\nIf you assign allowed_address_pairs to port-security, how do other apps need to do?\nLike arp, dhcp, L2 App, etc.","commit_id":"610ec3d504d4149d82c861ad184fce846dc51f72"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"fa431791ad92da34765bc13212d1c3b44dd88a04","unresolved":false,"context_lines":[{"line_number":406,"context_line":"        allowed_address_pairs \u003d port.get(\u0027allowed_address_pairs\u0027, [])"},{"line_number":407,"context_line":"        for allowed_address in allowed_address_pairs:"},{"line_number":408,"context_line":"            mac \u003d allowed_address.get(\u0027mac_address\u0027, port[\u0027mac_address\u0027])"},{"line_number":409,"context_line":"            address_pairs.add({\u0027ip\u0027: allowed_address[\u0027ip_address\u0027],"},{"line_number":410,"context_line":"                               \u0027mac\u0027: mac})"},{"line_number":411,"context_line":"        return address_pairs"},{"line_number":412,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_e00301b7","line":409,"updated":"2016-03-15 19:14:11.000000000","message":"Items are added to lists using append, not add. Consider revising.","commit_id":"610ec3d504d4149d82c861ad184fce846dc51f72"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"fa431791ad92da34765bc13212d1c3b44dd88a04","unresolved":false,"context_lines":[{"line_number":447,"context_line":"        if \u0027fixed_ips\u0027 in port:"},{"line_number":448,"context_line":"            ips \u003d [ip[\u0027ip_address\u0027] for ip in port[\u0027fixed_ips\u0027]]"},{"line_number":449,"context_line":"            for ip in port[\u0027fixed_ips\u0027]:"},{"line_number":450,"context_line":"                allowed_address_pairs.add({\u0027ip\u0027: ip,"},{"line_number":451,"context_line":"                                           \u0027mac\u0027: port[\u0027mac_address\u0027]})"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"        chassis \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_00a6edc0","line":450,"updated":"2016-03-15 19:14:11.000000000","message":"allowed_address_pairs is of type list, which has no method add. Did you mean append?","commit_id":"610ec3d504d4149d82c861ad184fce846dc51f72"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"29bec31984865a909544d3e320582414a71055ea","unresolved":false,"context_lines":[{"line_number":470,"context_line":"            parent_name\u003dparent_name, tag\u003dtag,"},{"line_number":471,"context_line":"            enabled\u003dport.get(\u0027admin_state_up\u0027, None),"},{"line_number":472,"context_line":"            chassis\u003dchassis, tunnel_key\u003dtunnel_key,"},{"line_number":473,"context_line":"            port_security\u003dallowed_address_pairs,"},{"line_number":474,"context_line":"            device_owner\u003dport.get(\u0027device_owner\u0027, None),"},{"line_number":475,"context_line":"            sgids\u003dsgids)"},{"line_number":476,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_ecb1e990","line":473,"range":{"start_line":473,"start_character":11,"end_line":473,"end_character":48},"updated":"2016-03-17 04:51:18.000000000","message":"Same problems as above.","commit_id":"610ec3d504d4149d82c861ad184fce846dc51f72"}]}
