)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"137d8ab4c4fe2ee7e17776912bb2d2acd54fafba","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-06-01 16:22:54 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Propagate bridge update notification request"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ie89b04ef6e396a379f675d1da567889326ce51f5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9abb7d3a_c9610b07","line":8,"updated":"2016-06-01 13:34:38.000000000","message":"Please also add a more elaborate explanation of what this patch is supposed to do.","commit_id":"0b847ec1e631d7e7e58e0d6b1c1ba9e03123d91a"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"ec7b0cf0bfbba8e91421e800d7e1d5df3dc67cae","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Propagate bridge update notification request"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Make sure that when br-ex mac address is changed we rewrite"},{"line_number":10,"context_line":"related openflow rules."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ie89b04ef6e396a379f675d1da567889326ce51f5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9abb7d3a_811f9c08","line":9,"range":{"start_line":9,"start_character":20,"end_line":9,"end_character":48},"updated":"2016-06-02 12:22:46.000000000","message":"I just wonder why br-ex mac address is changed.","commit_id":"7d23fbf39d0bd2784a5d6b484feadde04f52df9e"}],"dragonflow/controller/dnat_app.py":[{"author":{"_account_id":20298,"name":"feipeng","email":"feipeng1@huawei.com","username":"feipeng"},"change_message_id":"7b1b0f6fb76e7b930179aadc8700896008b98181","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            return"},{"line_number":89,"context_line":"        if interface.mac_in_use[0] \u003d\u003d \u002700:00:00:00:00:00\u0027:"},{"line_number":90,"context_line":"            return"},{"line_number":91,"context_line":"        return interface.mac_in_use[0]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def _wait_for_external_network_bridge_mac(self):"},{"line_number":94,"context_line":"        mac \u003d self._check_for_external_network_bridge_mac()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_5059ca5a","line":91,"range":{"start_line":91,"start_character":14,"end_line":91,"end_character":38},"updated":"2016-06-03 07:14:27.000000000","message":"yuli, use this mac as destmac ,seem not right ? maybe should use external router gateway mac","commit_id":"7d23fbf39d0bd2784a5d6b484feadde04f52df9e"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"60576d74d9073caf0fb8e9bc7d3ff7ce51bdaef7","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            return"},{"line_number":89,"context_line":"        if interface.mac_in_use[0] \u003d\u003d \u002700:00:00:00:00:00\u0027:"},{"line_number":90,"context_line":"            return"},{"line_number":91,"context_line":"        return interface.mac_in_use[0]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def _wait_for_external_network_bridge_mac(self):"},{"line_number":94,"context_line":"        mac \u003d self._check_for_external_network_bridge_mac()"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_f12aace6","line":91,"range":{"start_line":91,"start_character":14,"end_line":91,"end_character":38},"in_reply_to":"7aa08908_1c9e7756","updated":"2016-06-06 02:13:19.000000000","message":"So, we rely on the host namespace to route all the external traffic via br-ex. And the br-ex mac is considered as distributed router gateway mac for this host. Am I right? I also checked the spec of dnat. It seems the current implementation is not aligned with the spec.\n\nPart 6 in Egress section:\nhttps://github.com/openstack/dragonflow/blob/master/doc/source/specs/distributed_dnat.rst\n\nMaybe it is just my misunderstanding.","commit_id":"7d23fbf39d0bd2784a5d6b484feadde04f52df9e"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"fd68ca1d7464249016363e3770a4a0baa700f406","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            return"},{"line_number":89,"context_line":"        if interface.mac_in_use[0] \u003d\u003d \u002700:00:00:00:00:00\u0027:"},{"line_number":90,"context_line":"            return"},{"line_number":91,"context_line":"        return interface.mac_in_use[0]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def _wait_for_external_network_bridge_mac(self):"},{"line_number":94,"context_line":"        mac \u003d self._check_for_external_network_bridge_mac()"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_7399561f","line":91,"range":{"start_line":91,"start_character":14,"end_line":91,"end_character":38},"in_reply_to":"7aa08908_f12aace6","updated":"2016-06-07 09:07:22.000000000","message":"@Ma Li, yes, you are right. The implementation has been changed. Now, dnat depends on host\u0027s routing function.","commit_id":"7d23fbf39d0bd2784a5d6b484feadde04f52df9e"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"2601ebe1548ec59413d5d578ed00547a682fa316","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            return"},{"line_number":89,"context_line":"        if interface.mac_in_use[0] \u003d\u003d \u002700:00:00:00:00:00\u0027:"},{"line_number":90,"context_line":"            return"},{"line_number":91,"context_line":"        return interface.mac_in_use[0]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def _wait_for_external_network_bridge_mac(self):"},{"line_number":94,"context_line":"        mac \u003d self._check_for_external_network_bridge_mac()"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_df42cb0f","line":91,"range":{"start_line":91,"start_character":14,"end_line":91,"end_character":38},"in_reply_to":"7aa08908_f12aace6","updated":"2016-06-07 09:18:50.000000000","message":"Yes it was modified to include L2 networking  for the FIPs on the public network or for bar metal on the public net \n\nThe br-ex is set to be \"NORMAL\" switch by default so it will act as a learning switch for the Public network and will use the Linux host machine to route to the next hop","commit_id":"7d23fbf39d0bd2784a5d6b484feadde04f52df9e"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"be2509ccfb64085288d61a0871cb05a831edf879","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            return"},{"line_number":89,"context_line":"        if interface.mac_in_use[0] \u003d\u003d \u002700:00:00:00:00:00\u0027:"},{"line_number":90,"context_line":"            return"},{"line_number":91,"context_line":"        return interface.mac_in_use[0]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def _wait_for_external_network_bridge_mac(self):"},{"line_number":94,"context_line":"        mac \u003d self._check_for_external_network_bridge_mac()"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_1c9e7756","line":91,"range":{"start_line":91,"start_character":14,"end_line":91,"end_character":38},"in_reply_to":"9abb7d3a_5059ca5a","updated":"2016-06-05 07:49:41.000000000","message":"@feipeng, using the bridge\u0027s mac means that br-ex will re-route the packet using the Linux network stack. br-ex will choose the best router according to the routing table. This means that if there is not 1 default gateway, or the peer should be routed directly or via a secondary gateway, the code to do that is already implemented in the Linux network stack, and br-ex will use it.","commit_id":"7d23fbf39d0bd2784a5d6b484feadde04f52df9e"}],"dragonflow/controller/topology.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"137d8ab4c4fe2ee7e17776912bb2d2acd54fafba","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        self._bridge_port_updated(ovs_port)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def _bridge_port_updated(self, ovs_port):"},{"line_number":162,"context_line":"        ovs_port_id \u003d ovs_port.get_id()"},{"line_number":163,"context_line":"        try:"},{"line_number":164,"context_line":"            self.controller.bridge_port_updated(ovs_port)"},{"line_number":165,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_09fcb33c","line":162,"range":{"start_line":162,"start_character":0,"end_line":162,"end_character":39},"updated":"2016-06-01 13:34:38.000000000","message":"Where is this variable used?","commit_id":"0b847ec1e631d7e7e58e0d6b1c1ba9e03123d91a"}],"dragonflow/db/drivers/ovsdb_vswitch_impl.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"137d8ab4c4fe2ee7e17776912bb2d2acd54fafba","unresolved":false,"context_lines":[{"line_number":409,"context_line":"        self.idl \u003d idl"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"    def _is_handle_interface_update(self, interface):"},{"line_number":412,"context_line":"        if (interface.type !\u003d constants.OVS_VM_INTERFACE and"},{"line_number":413,"context_line":"           interface.type !\u003d constants.OVS_BRIDGE_INTERFACE):"},{"line_number":414,"context_line":"            return False"},{"line_number":415,"context_line":"        if interface.name.startswith(\u0027qg\u0027):"},{"line_number":416,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_e97b2fbc","line":413,"range":{"start_line":412,"start_character":0,"end_line":413,"end_character":61},"updated":"2016-06-01 13:34:38.000000000","message":"nit: Consider keeping a list of filtered types, and test if interface.type is in that list. I think it will be easier to maintain.","commit_id":"0b847ec1e631d7e7e58e0d6b1c1ba9e03123d91a"}]}
