)]}'
{"dragonflow/controller/apps/l3_base.py":[{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"9cfe9af06175d77755f11ca17b8bffc858ceec97","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def _handle_ttl_expired(self, msg):"},{"line_number":68,"context_line":"        \"\"\""},{"line_number":69,"context_line":"        This callback is called when the OVS switch reduced a packet\u0027s TTL"},{"line_number":70,"context_line":"        to 0."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        Create an ICMP error packet, and return it."}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_c2cbf550","line":69,"updated":"2017-09-25 08:27:38.000000000","message":"param and type from msg? \n(Just for keeping the convention with the packets below)","commit_id":"77b2622aa6dfe40d1dd30f09d862737cca663ce8"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"969b6ad5ff94ecac43599823aa8cb716850e81df","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def _handle_ttl_expired(self, msg):"},{"line_number":68,"context_line":"        \"\"\""},{"line_number":69,"context_line":"        This callback is called when the OVS switch reduced a packet\u0027s TTL"},{"line_number":70,"context_line":"        to 0."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        Create an ICMP error packet, and return it."}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_64bfa9fb","line":69,"in_reply_to":"7f515b1d_c2cbf550","updated":"2017-09-25 11:56:57.000000000","message":"Done","commit_id":"77b2622aa6dfe40d1dd30f09d862737cca663ce8"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"9cfe9af06175d77755f11ca17b8bffc858ceec97","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    def _handle_invalid_dest(self, msg):"},{"line_number":108,"context_line":"        \"\"\""},{"line_number":109,"context_line":"        Handle a packet sent to the router interface (by IP). Since only ping"},{"line_number":110,"context_line":"        and ARP are supported, everything else is responded to with a"},{"line_number":111,"context_line":"        Destination Unreachable message."},{"line_number":112,"context_line":"        \"\"\""},{"line_number":113,"context_line":"        # If the destination is router interface, the unique key of router"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_82c5fd3e","line":110,"updated":"2017-09-25 08:27:38.000000000","message":"same here","commit_id":"77b2622aa6dfe40d1dd30f09d862737cca663ce8"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"969b6ad5ff94ecac43599823aa8cb716850e81df","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    def _handle_invalid_dest(self, msg):"},{"line_number":108,"context_line":"        \"\"\""},{"line_number":109,"context_line":"        Handle a packet sent to the router interface (by IP). Since only ping"},{"line_number":110,"context_line":"        and ARP are supported, everything else is responded to with a"},{"line_number":111,"context_line":"        Destination Unreachable message."},{"line_number":112,"context_line":"        \"\"\""},{"line_number":113,"context_line":"        # If the destination is router interface, the unique key of router"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_44bcad04","line":110,"in_reply_to":"7f515b1d_82c5fd3e","updated":"2017-09-25 11:56:57.000000000","message":"Done","commit_id":"77b2622aa6dfe40d1dd30f09d862737cca663ce8"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"9cfe9af06175d77755f11ca17b8bffc858ceec97","unresolved":false,"context_lines":[{"line_number":380,"context_line":"    # {router: {ROUTE_ADDED: set(route), ROUTE_TO_ADD: set(route)}"},{"line_number":381,"context_line":"    def _add_to_route_cache(self, key, router_id, route):"},{"line_number":382,"context_line":"        \"\"\""},{"line_number":383,"context_line":"        Update the route_cache dictionary, for the."},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"        The route_cache dictionary contains two sets per router:"},{"line_number":386,"context_line":"        1. Routes that were added"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_82485dcc","line":383,"updated":"2017-09-25 08:27:38.000000000","message":"something is missing ..","commit_id":"77b2622aa6dfe40d1dd30f09d862737cca663ce8"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"969b6ad5ff94ecac43599823aa8cb716850e81df","unresolved":false,"context_lines":[{"line_number":380,"context_line":"    # {router: {ROUTE_ADDED: set(route), ROUTE_TO_ADD: set(route)}"},{"line_number":381,"context_line":"    def _add_to_route_cache(self, key, router_id, route):"},{"line_number":382,"context_line":"        \"\"\""},{"line_number":383,"context_line":"        Update the route_cache dictionary, for the."},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"        The route_cache dictionary contains two sets per router:"},{"line_number":386,"context_line":"        1. Routes that were added"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_645449cb","line":383,"in_reply_to":"7f515b1d_82485dcc","updated":"2017-09-25 11:56:57.000000000","message":"Done","commit_id":"77b2622aa6dfe40d1dd30f09d862737cca663ce8"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"9cfe9af06175d77755f11ca17b8bffc858ceec97","unresolved":false,"context_lines":[{"line_number":438,"context_line":""},{"line_number":439,"context_line":"    def _get_router_interface_match(self, router_unique_key, rif_ip):"},{"line_number":440,"context_line":"        \"\"\""},{"line_number":441,"context_line":"        Create an OpenFlow Match object for the router interface on the router."},{"line_number":442,"context_line":"        Used to either pass the packet to the router (concrete router port)"},{"line_number":443,"context_line":"        or send to controller (distributed router port)"},{"line_number":444,"context_line":"        :param router_unique_key:   The Unique Key of the router"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_226889f3","line":441,"updated":"2017-09-25 08:27:38.000000000","message":"i think that \"on the router\" redundant","commit_id":"77b2622aa6dfe40d1dd30f09d862737cca663ce8"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"969b6ad5ff94ecac43599823aa8cb716850e81df","unresolved":false,"context_lines":[{"line_number":438,"context_line":""},{"line_number":439,"context_line":"    def _get_router_interface_match(self, router_unique_key, rif_ip):"},{"line_number":440,"context_line":"        \"\"\""},{"line_number":441,"context_line":"        Create an OpenFlow Match object for the router interface on the router."},{"line_number":442,"context_line":"        Used to either pass the packet to the router (concrete router port)"},{"line_number":443,"context_line":"        or send to controller (distributed router port)"},{"line_number":444,"context_line":"        :param router_unique_key:   The Unique Key of the router"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_a4736180","line":441,"in_reply_to":"7f515b1d_226889f3","updated":"2017-09-25 11:56:57.000000000","message":"I don\u0027t think it makes things less clear, but if you insist, I\u0027ll remove it.","commit_id":"77b2622aa6dfe40d1dd30f09d862737cca663ce8"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"9cfe9af06175d77755f11ca17b8bffc858ceec97","unresolved":false,"context_lines":[{"line_number":482,"context_line":""},{"line_number":483,"context_line":"    def _add_new_router_port(self, router, router_port):"},{"line_number":484,"context_line":"        \"\"\""},{"line_number":485,"context_line":"        Handle the creation of a new router interface on the router."},{"line_number":486,"context_line":"        * Match L2 address and update reg5"},{"line_number":487,"context_line":"        * Install ARPM and ICMP responders"},{"line_number":488,"context_line":"        * Match packets with router as dst"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_a22119b7","line":485,"updated":"2017-09-25 08:27:38.000000000","message":"same here","commit_id":"77b2622aa6dfe40d1dd30f09d862737cca663ce8"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"969b6ad5ff94ecac43599823aa8cb716850e81df","unresolved":false,"context_lines":[{"line_number":482,"context_line":""},{"line_number":483,"context_line":"    def _add_new_router_port(self, router, router_port):"},{"line_number":484,"context_line":"        \"\"\""},{"line_number":485,"context_line":"        Handle the creation of a new router interface on the router."},{"line_number":486,"context_line":"        * Match L2 address and update reg5"},{"line_number":487,"context_line":"        * Install ARPM and ICMP responders"},{"line_number":488,"context_line":"        * Match packets with router as dst"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_646d6997","line":485,"in_reply_to":"7f515b1d_a22119b7","updated":"2017-09-25 11:56:57.000000000","message":"Same response.","commit_id":"77b2622aa6dfe40d1dd30f09d862737cca663ce8"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"9cfe9af06175d77755f11ca17b8bffc858ceec97","unresolved":false,"context_lines":[{"line_number":484,"context_line":"        \"\"\""},{"line_number":485,"context_line":"        Handle the creation of a new router interface on the router."},{"line_number":486,"context_line":"        * Match L2 address and update reg5"},{"line_number":487,"context_line":"        * Install ARPM and ICMP responders"},{"line_number":488,"context_line":"        * Match packets with router as dst"},{"line_number":489,"context_line":"        * Add flows for  new route entries"},{"line_number":490,"context_line":"        :param router:        The router on which the interface is added"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_622b2194","line":487,"updated":"2017-09-25 08:27:38.000000000","message":"nit:  ARP","commit_id":"77b2622aa6dfe40d1dd30f09d862737cca663ce8"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"969b6ad5ff94ecac43599823aa8cb716850e81df","unresolved":false,"context_lines":[{"line_number":484,"context_line":"        \"\"\""},{"line_number":485,"context_line":"        Handle the creation of a new router interface on the router."},{"line_number":486,"context_line":"        * Match L2 address and update reg5"},{"line_number":487,"context_line":"        * Install ARPM and ICMP responders"},{"line_number":488,"context_line":"        * Match packets with router as dst"},{"line_number":489,"context_line":"        * Add flows for  new route entries"},{"line_number":490,"context_line":"        :param router:        The router on which the interface is added"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_240531c3","line":487,"in_reply_to":"7f515b1d_622b2194","updated":"2017-09-25 11:56:57.000000000","message":"Done","commit_id":"77b2622aa6dfe40d1dd30f09d862737cca663ce8"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"9cfe9af06175d77755f11ca17b8bffc858ceec97","unresolved":false,"context_lines":[{"line_number":556,"context_line":""},{"line_number":557,"context_line":"    def _delete_router_port(self, router, router_port):"},{"line_number":558,"context_line":"        \"\"\""},{"line_number":559,"context_line":"        Handle the removal of a router interface from a router. Undoes the"},{"line_number":560,"context_line":"        actions in #_add_new_router_port."},{"line_number":561,"context_line":"        :param router:        The router on which the interface is removed"},{"line_number":562,"context_line":"        :type router:         LogicalRouter model object"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_221f696d","line":559,"updated":"2017-09-25 08:27:38.000000000","message":"same here","commit_id":"77b2622aa6dfe40d1dd30f09d862737cca663ce8"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"969b6ad5ff94ecac43599823aa8cb716850e81df","unresolved":false,"context_lines":[{"line_number":556,"context_line":""},{"line_number":557,"context_line":"    def _delete_router_port(self, router, router_port):"},{"line_number":558,"context_line":"        \"\"\""},{"line_number":559,"context_line":"        Handle the removal of a router interface from a router. Undoes the"},{"line_number":560,"context_line":"        actions in #_add_new_router_port."},{"line_number":561,"context_line":"        :param router:        The router on which the interface is removed"},{"line_number":562,"context_line":"        :type router:         LogicalRouter model object"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_c413fd0c","line":559,"in_reply_to":"7f515b1d_221f696d","updated":"2017-09-25 11:56:57.000000000","message":"Same response.","commit_id":"77b2622aa6dfe40d1dd30f09d862737cca663ce8"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"af4703ffc76bdd86be9c4108bb0e19115f1df110","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        X is the OpenFlow version (e.g. 1_3)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        :param msg: Packet in message"},{"line_number":77,"context_line":"        :type msg:  ryu.ofproto.ofproto_vX_parser.OFPPacketIn"},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":"        if self.ttl_invalid_handler_rate_limit():"},{"line_number":80,"context_line":"            LOG.warning(\"Get more than %(rate)s TTL invalid packets per \""}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_b14de273","line":77,"range":{"start_line":77,"start_character":41,"end_line":77,"end_character":42},"updated":"2017-09-25 12:57:11.000000000","message":"Maybe \u003cversion\u003e instead of X will be more clear:\nryu.ofproto.ofproto_v\u003cversion\u003e_parser.OFPPacketIn","commit_id":"20482974a5930fc9e1b37c5e4693f793e7f8c2f9"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"af4703ffc76bdd86be9c4108bb0e19115f1df110","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        X is the OpenFlow version (e.g. 1_3)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        :param msg: Packet in message"},{"line_number":156,"context_line":"        :type msg:  ryu.ofproto.ofproto_vX_parser.OFPPacketIn"},{"line_number":157,"context_line":"        \"\"\""},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        if msg.reason \u003d\u003d self.ofproto.OFPR_INVALID_TTL:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_515a2e2a","line":156,"range":{"start_line":156,"start_character":41,"end_line":156,"end_character":42},"updated":"2017-09-25 12:57:11.000000000","message":"ditto","commit_id":"20482974a5930fc9e1b37c5e4693f793e7f8c2f9"}],"dragonflow/controller/apps/l3_reactive.py":[{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"af4703ffc76bdd86be9c4108bb0e19115f1df110","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        :param network_id:  The source network from which the packet arrived"},{"line_number":81,"context_line":"        :type network_id:   Integer"},{"line_number":82,"context_line":"        :param msg:         Packet in message"},{"line_number":83,"context_line":"        :type msg:          ryu.ofproto.ofproto_vX_parser.OFPPacketIn"},{"line_number":84,"context_line":"        \"\"\""},{"line_number":85,"context_line":"        ip_addr \u003d netaddr.IPAddress(pkt_ip.dst)"},{"line_number":86,"context_line":"        router_unique_key \u003d msg.match.get(\u0027reg5\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_316a12b3","line":83,"range":{"start_line":83,"start_character":49,"end_line":83,"end_character":50},"updated":"2017-09-25 12:57:11.000000000","message":"ditto","commit_id":"20482974a5930fc9e1b37c5e4693f793e7f8c2f9"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"af4703ffc76bdd86be9c4108bb0e19115f1df110","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        :param dst_port:        Destination port"},{"line_number":115,"context_line":"        :type dst_port:         LogicalPort"},{"line_number":116,"context_line":"        :param msg:             Packet in message"},{"line_number":117,"context_line":"        :type msg:              ryu.ofproto.ofproto_vX_parser.OFPPacketIn"},{"line_number":118,"context_line":"        :param src_network_id:  The source network of the packet"},{"line_number":119,"context_line":"        :type src_network_id:   Integer"},{"line_number":120,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_1165d6e1","line":117,"range":{"start_line":117,"start_character":53,"end_line":117,"end_character":54},"updated":"2017-09-25 12:57:11.000000000","message":"ditto","commit_id":"20482974a5930fc9e1b37c5e4693f793e7f8c2f9"}]}
