)]}'
{"dragonflow/controller/l3_proactive_app.py":[{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"4e016faf75d56d87243bfac90c089e6e675ecf1d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def _cookie(val):"},{"line_number":33,"context_line":"    result \u003d ((val \u003c\u003c const.L3_PROACTIVE_TUNNEL_COOKIE_SHIFT) \u0026"},{"line_number":34,"context_line":"              const.L3_PROACTIVE_TUNNEL_COOKIE_MASK)"},{"line_number":35,"context_line":"    return result, const.L3_PROACTIVE_TUNNEL_COOKIE_MASK"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_95ea94d9","line":32,"updated":"2017-01-31 13:54:36.000000000","message":"This works really well for first 2^16 ports but then all the ports will share the same key (0). I think we should hash here instead, for a more uniform (though not colission-free) distibution","commit_id":"f53f9daaa1828708a90a47001acd72cccfb85de3"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"fa85708905ef60a73692d323fab9c8fc5e2c3ceb","unresolved":false,"context_lines":[{"line_number":29,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def _cookie(val):"},{"line_number":33,"context_line":"    result \u003d ((val \u003c\u003c const.L3_PROACTIVE_TUNNEL_COOKIE_SHIFT) \u0026"},{"line_number":34,"context_line":"              const.L3_PROACTIVE_TUNNEL_COOKIE_MASK)"},{"line_number":35,"context_line":"    return result, const.L3_PROACTIVE_TUNNEL_COOKIE_MASK"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_e3c87f57","line":32,"in_reply_to":"3a461143_006744b7","updated":"2017-01-31 15:30:06.000000000","message":"Following Itamar\u0027s work are we still going to set VNIs to port keys rather than lswitch keys?","commit_id":"f53f9daaa1828708a90a47001acd72cccfb85de3"},{"author":{"_account_id":18347,"name":"Itamar Ofek","email":"itamofek@netscape.net","username":"itamaro"},"change_message_id":"adc86ec36bb83d0897a51adac947ec094bdab50d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def _cookie(val):"},{"line_number":33,"context_line":"    result \u003d ((val \u003c\u003c const.L3_PROACTIVE_TUNNEL_COOKIE_SHIFT) \u0026"},{"line_number":34,"context_line":"              const.L3_PROACTIVE_TUNNEL_COOKIE_MASK)"},{"line_number":35,"context_line":"    return result, const.L3_PROACTIVE_TUNNEL_COOKIE_MASK"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_d85c491b","line":32,"in_reply_to":"3a461143_431b1381","updated":"2017-01-31 17:38:58.000000000","message":"As we can see in the code metdata is also used as network identifier. May I suggest omitting the use of cookie it this app all together, and move to using metadata with network id,\nfrom a quick view it should not be too bad...","commit_id":"f53f9daaa1828708a90a47001acd72cccfb85de3"},{"author":{"_account_id":18347,"name":"Itamar Ofek","email":"itamofek@netscape.net","username":"itamaro"},"change_message_id":"adc86ec36bb83d0897a51adac947ec094bdab50d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def _cookie(val):"},{"line_number":33,"context_line":"    result \u003d ((val \u003c\u003c const.L3_PROACTIVE_TUNNEL_COOKIE_SHIFT) \u0026"},{"line_number":34,"context_line":"              const.L3_PROACTIVE_TUNNEL_COOKIE_MASK)"},{"line_number":35,"context_line":"    return result, const.L3_PROACTIVE_TUNNEL_COOKIE_MASK"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_20852059","line":32,"in_reply_to":"3a461143_95ea94d9","updated":"2017-01-31 17:38:58.000000000","message":"Done","commit_id":"f53f9daaa1828708a90a47001acd72cccfb85de3"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"1d51879d65815fd350100ce70c269398a82c290c","unresolved":false,"context_lines":[{"line_number":29,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def _cookie(val):"},{"line_number":33,"context_line":"    result \u003d ((val \u003c\u003c const.L3_PROACTIVE_TUNNEL_COOKIE_SHIFT) \u0026"},{"line_number":34,"context_line":"              const.L3_PROACTIVE_TUNNEL_COOKIE_MASK)"},{"line_number":35,"context_line":"    return result, const.L3_PROACTIVE_TUNNEL_COOKIE_MASK"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_006744b7","line":32,"in_reply_to":"3a461143_95ea94d9","updated":"2017-01-31 14:06:37.000000000","message":"The truth is this needs to be increased to 24. That\u0027s VxLAN\u0027s VNI cap, so it should be good enough for us.","commit_id":"f53f9daaa1828708a90a47001acd72cccfb85de3"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"013fd3557e12193aa91997e020fe3f13f4c47fbf","unresolved":false,"context_lines":[{"line_number":29,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def _cookie(val):"},{"line_number":33,"context_line":"    result \u003d ((val \u003c\u003c const.L3_PROACTIVE_TUNNEL_COOKIE_SHIFT) \u0026"},{"line_number":34,"context_line":"              const.L3_PROACTIVE_TUNNEL_COOKIE_MASK)"},{"line_number":35,"context_line":"    return result, const.L3_PROACTIVE_TUNNEL_COOKIE_MASK"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_4db3350a","line":32,"in_reply_to":"3a461143_d85c491b","updated":"2017-01-31 20:49:59.000000000","message":"Yes. It looks like the cookie is used for a quick-delete solution. If this can be done using the metadata, which is encoded anyway, that would probably be better.\n\nBut it should be verified that only flows installed by this app are deleted. Not all flows in the L3 lookup table with that metadata set (e.g. using that app_tag patch).","commit_id":"f53f9daaa1828708a90a47001acd72cccfb85de3"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"e2cd9c21158144fa6d7229709b25370798af3345","unresolved":false,"context_lines":[{"line_number":29,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def _cookie(val):"},{"line_number":33,"context_line":"    result \u003d ((val \u003c\u003c const.L3_PROACTIVE_TUNNEL_COOKIE_SHIFT) \u0026"},{"line_number":34,"context_line":"              const.L3_PROACTIVE_TUNNEL_COOKIE_MASK)"},{"line_number":35,"context_line":"    return result, const.L3_PROACTIVE_TUNNEL_COOKIE_MASK"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_431b1381","line":32,"in_reply_to":"3a461143_e3c87f57","updated":"2017-01-31 15:40:01.000000000","message":"We\u0027ll see how the cookie is used, and take it from there. As can be seen from this change, cookie use in this app is a bit ad-hoc.","commit_id":"f53f9daaa1828708a90a47001acd72cccfb85de3"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"e2cd9c21158144fa6d7229709b25370798af3345","unresolved":false,"context_lines":[{"line_number":542,"context_line":"        cookie \u003d tunnel_key"},{"line_number":543,"context_line":"        self.mod_flow("},{"line_number":544,"context_line":"            datapath\u003dself.get_datapath(),"},{"line_number":545,"context_line":"            cookie\u003dcookie,"},{"line_number":546,"context_line":"            cookie_mask\u003dcookie,"},{"line_number":547,"context_line":"            table_id\u003dconst.L3_LOOKUP_TABLE,"},{"line_number":548,"context_line":"            command\u003dofproto.OFPFC_DELETE,"},{"line_number":549,"context_line":"            priority\u003dconst.PRIORITY_MEDIUM,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_83117b5f","line":546,"range":{"start_line":545,"start_character":0,"end_line":546,"end_character":31},"updated":"2017-01-31 15:40:01.000000000","message":"Missed this location.","commit_id":"f53f9daaa1828708a90a47001acd72cccfb85de3"}]}
