)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"42700b580c0097661d29d460ed9ae37b2821076c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dima Kuznetsov \u003cdima.kuznetsov@toganetworks.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-07-17 15:23:01 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Dragonflow L3 flavor spec"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I4a2fc6ee7c16d7531a4293bd3886ad20224f17d8"},{"line_number":10,"context_line":"Partialy-Closes: #1698651"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1f1a1f67_69c71f66","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":6},"updated":"2017-07-17 13:23:18.000000000","message":"still wip?","commit_id":"08a05662bc6b13dc4172967459d563e9aff1d069"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"61f5c4c852b8bce27ea4c66e0f108c3807895a4e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dima Kuznetsov \u003cdima.kuznetsov@toganetworks.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-07-17 15:23:01 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Dragonflow L3 flavor spec"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I4a2fc6ee7c16d7531a4293bd3886ad20224f17d8"},{"line_number":10,"context_line":"Partialy-Closes: #1698651"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1f1a1f67_0e740dfd","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":6},"in_reply_to":"1f1a1f67_69c71f66","updated":"2017-07-18 10:46:41.000000000","message":"Removed","commit_id":"08a05662bc6b13dc4172967459d563e9aff1d069"}],"doc/source/specs/l3_flavor.rst":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"cdd60e75fa79b57d89bb62ba64a4ffcee674b974","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Dragonflow allows fully distributed L3 routing and source NATing. Those"},{"line_number":15,"context_line":"features attracted some attention in the community it might be benefitial to"},{"line_number":16,"context_line":"expose those independently of deploying Dragonflow as the main agent."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Proposed Change"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f201791_c5f5a658","line":17,"updated":"2017-06-28 07:35:51.000000000","message":"Could you add a bit more info on the use case? You can take a lot of text from Neutron\u0027s L3 flavours spec, but it would be helpful for people who don\u0027t know about it to familiarise.","commit_id":"f9cb7101703059bcc9abd6f317db410ac2d73446"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"81b1d4504a878e809183faaf2b3aa5f2abaab2d8","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Dragonflow allows fully distributed L3 routing and source NATing. Those"},{"line_number":15,"context_line":"features attracted some attention in the community it might be benefitial to"},{"line_number":16,"context_line":"expose those independently of deploying Dragonflow as the main agent."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Proposed Change"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_f636d5b4","line":17,"in_reply_to":"5f201791_c5f5a658","updated":"2017-07-13 07:19:51.000000000","message":"Will do","commit_id":"f9cb7101703059bcc9abd6f317db410ac2d73446"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"cdd60e75fa79b57d89bb62ba64a4ffcee674b974","unresolved":false,"context_lines":[{"line_number":23,"context_line":"deployments with other L2 agent types."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"In those deployments, each compute node will have to run a DF flavored L3 agent"},{"line_number":26,"context_line":"on top of an OVS bridge."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The system will have the following Dragonflow-related components:"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f201791_45251608","line":26,"updated":"2017-06-28 07:35:51.000000000","message":"Expand on this: DF flavoured L3 agent is actually a DF local controller with speciallised apps.","commit_id":"f9cb7101703059bcc9abd6f317db410ac2d73446"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"81b1d4504a878e809183faaf2b3aa5f2abaab2d8","unresolved":false,"context_lines":[{"line_number":23,"context_line":"deployments with other L2 agent types."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"In those deployments, each compute node will have to run a DF flavored L3 agent"},{"line_number":26,"context_line":"on top of an OVS bridge."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The system will have the following Dragonflow-related components:"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_b6405d09","line":26,"in_reply_to":"5f201791_45251608","updated":"2017-07-13 07:19:51.000000000","message":"Will do","commit_id":"f9cb7101703059bcc9abd6f317db410ac2d73446"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"cdd60e75fa79b57d89bb62ba64a4ffcee674b974","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  Very similar to present day L3 router plugin"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* L3 agent for each controll node"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"  An local-controller based service with a partial set of apps:"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f201791_25757afa","line":34,"range":{"start_line":34,"start_character":20,"end_line":34,"end_character":28},"updated":"2017-06-28 07:35:51.000000000","message":"You mean \u0027compute node\u0027?","commit_id":"f9cb7101703059bcc9abd6f317db410ac2d73446"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"81b1d4504a878e809183faaf2b3aa5f2abaab2d8","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  Very similar to present day L3 router plugin"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* L3 agent for each controll node"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"  An local-controller based service with a partial set of apps:"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_764ac527","line":34,"range":{"start_line":34,"start_character":20,"end_line":34,"end_character":28},"in_reply_to":"5f201791_25757afa","updated":"2017-07-13 07:19:51.000000000","message":"Yes","commit_id":"f9cb7101703059bcc9abd6f317db410ac2d73446"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"cdd60e75fa79b57d89bb62ba64a4ffcee674b974","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* L3 agent for each controll node"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"  An local-controller based service with a partial set of apps:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"  * L3"},{"line_number":39,"context_line":"  * NAT apps"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f201791_456ab619","line":36,"range":{"start_line":36,"start_character":0,"end_line":36,"end_character":63},"updated":"2017-06-28 07:35:51.000000000","message":"And then it would be clear that this is actually the compute-node-side L3 agent.","commit_id":"f9cb7101703059bcc9abd6f317db410ac2d73446"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"cdd60e75fa79b57d89bb62ba64a4ffcee674b974","unresolved":false,"context_lines":[{"line_number":44,"context_line":"* partial ML2 mech driver"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The last 2 points are agnostic and can be deployed in exactly the same manner."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"References"},{"line_number":49,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f201791_c59a4612","line":47,"updated":"2017-06-28 07:35:51.000000000","message":"It would help to have further low-level implementation details. What changes have to be done to the L3 app (best case scenario - None) and (chassis) SNAT app (same: best case scenario - None).\n\nWhat will the classification/dispatch app do? How will it classify? To where will it dispatch? In extension - how will this connect to existing L2 agents?","commit_id":"f9cb7101703059bcc9abd6f317db410ac2d73446"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"81b1d4504a878e809183faaf2b3aa5f2abaab2d8","unresolved":false,"context_lines":[{"line_number":44,"context_line":"* partial ML2 mech driver"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The last 2 points are agnostic and can be deployed in exactly the same manner."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"References"},{"line_number":49,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f1a1f67_f65ff5e2","line":47,"in_reply_to":"5f201791_c59a4612","updated":"2017-07-13 07:19:51.000000000","message":"Will elaborate further","commit_id":"f9cb7101703059bcc9abd6f317db410ac2d73446"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"1b2c476e5e7c3a47f6460f30823b54cd928b434e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"to implement part of the routers with one implementation, and the others with"},{"line_number":29,"context_line":"another. The new L3 plugin featured router flavors. Each router can be"},{"line_number":30,"context_line":"implemented by a specific flavor (driver), and 3rd parties can implement their"},{"line_number":31,"context_line":"functionality with within the bounds of a flavor, instead of a whole L3 plugin."},{"line_number":32,"context_line":"This allows deployment of routers with different implementations side-by-side."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"In Dragonflow\u0027s current architecture, we\u0027re currently implementing a whole L3"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_2cfdc2b0","line":31,"range":{"start_line":31,"start_character":14,"end_line":31,"end_character":25},"updated":"2017-07-17 06:37:58.000000000","message":"with is redundant","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"2e095438cc6724545acf1d9335ada1d1c95c34d2","unresolved":false,"context_lines":[{"line_number":28,"context_line":"to implement part of the routers with one implementation, and the others with"},{"line_number":29,"context_line":"another. The new L3 plugin featured router flavors. Each router can be"},{"line_number":30,"context_line":"implemented by a specific flavor (driver), and 3rd parties can implement their"},{"line_number":31,"context_line":"functionality with within the bounds of a flavor, instead of a whole L3 plugin."},{"line_number":32,"context_line":"This allows deployment of routers with different implementations side-by-side."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"In Dragonflow\u0027s current architecture, we\u0027re currently implementing a whole L3"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_b8058348","line":31,"range":{"start_line":31,"start_character":14,"end_line":31,"end_character":25},"in_reply_to":"1f1a1f67_2cfdc2b0","updated":"2017-07-17 12:21:44.000000000","message":"Done","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"1b2c476e5e7c3a47f6460f30823b54cd928b434e","unresolved":false,"context_lines":[{"line_number":31,"context_line":"functionality with within the bounds of a flavor, instead of a whole L3 plugin."},{"line_number":32,"context_line":"This allows deployment of routers with different implementations side-by-side."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"In Dragonflow\u0027s current architecture, we\u0027re currently implementing a whole L3"},{"line_number":35,"context_line":"plugin. And all routers run Dragonflow implementation. Since our L3 is"},{"line_number":36,"context_line":"implemented inside the integration bridge, is it not possible to use exteral L3"},{"line_number":37,"context_line":"implementation, nor it is possible to use DragonFlow\u0027s L3 implementation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_0c30c69e","line":34,"range":{"start_line":34,"start_character":16,"end_line":34,"end_character":54},"updated":"2017-07-17 06:37:58.000000000","message":"current/currently is redundant","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"2e095438cc6724545acf1d9335ada1d1c95c34d2","unresolved":false,"context_lines":[{"line_number":31,"context_line":"functionality with within the bounds of a flavor, instead of a whole L3 plugin."},{"line_number":32,"context_line":"This allows deployment of routers with different implementations side-by-side."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"In Dragonflow\u0027s current architecture, we\u0027re currently implementing a whole L3"},{"line_number":35,"context_line":"plugin. And all routers run Dragonflow implementation. Since our L3 is"},{"line_number":36,"context_line":"implemented inside the integration bridge, is it not possible to use exteral L3"},{"line_number":37,"context_line":"implementation, nor it is possible to use DragonFlow\u0027s L3 implementation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_9802c73c","line":34,"range":{"start_line":34,"start_character":16,"end_line":34,"end_character":54},"in_reply_to":"1f1a1f67_0c30c69e","updated":"2017-07-17 12:21:44.000000000","message":"Done","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"1b2c476e5e7c3a47f6460f30823b54cd928b434e","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"In Dragonflow\u0027s current architecture, we\u0027re currently implementing a whole L3"},{"line_number":35,"context_line":"plugin. And all routers run Dragonflow implementation. Since our L3 is"},{"line_number":36,"context_line":"implemented inside the integration bridge, is it not possible to use exteral L3"},{"line_number":37,"context_line":"implementation, nor it is possible to use DragonFlow\u0027s L3 implementation"},{"line_number":38,"context_line":"without Dragonflow controller."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"In order to support the latter (Dragonflow L3 + reference everything else)"},{"line_number":41,"context_line":"we\u0027ll need to create a Dragonflow L3 flavort and an L3 agent to implement it."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_8c23b656","line":38,"range":{"start_line":36,"start_character":23,"end_line":38,"end_character":30},"updated":"2017-07-17 06:37:58.000000000","message":"Maybe to rephrase that it is dependant on L2 provided by Df?","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"2e095438cc6724545acf1d9335ada1d1c95c34d2","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"In Dragonflow\u0027s current architecture, we\u0027re currently implementing a whole L3"},{"line_number":35,"context_line":"plugin. And all routers run Dragonflow implementation. Since our L3 is"},{"line_number":36,"context_line":"implemented inside the integration bridge, is it not possible to use exteral L3"},{"line_number":37,"context_line":"implementation, nor it is possible to use DragonFlow\u0027s L3 implementation"},{"line_number":38,"context_line":"without Dragonflow controller."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"In order to support the latter (Dragonflow L3 + reference everything else)"},{"line_number":41,"context_line":"we\u0027ll need to create a Dragonflow L3 flavort and an L3 agent to implement it."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_58f8af47","line":38,"range":{"start_line":36,"start_character":23,"end_line":38,"end_character":30},"in_reply_to":"1f1a1f67_8c23b656","updated":"2017-07-17 12:21:44.000000000","message":"Rephrased","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"1b2c476e5e7c3a47f6460f30823b54cd928b434e","unresolved":false,"context_lines":[{"line_number":37,"context_line":"implementation, nor it is possible to use DragonFlow\u0027s L3 implementation"},{"line_number":38,"context_line":"without Dragonflow controller."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"In order to support the latter (Dragonflow L3 + reference everything else)"},{"line_number":41,"context_line":"we\u0027ll need to create a Dragonflow L3 flavort and an L3 agent to implement it."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_6c205a49","line":40,"range":{"start_line":40,"start_character":48,"end_line":40,"end_character":57},"updated":"2017-07-17 06:37:58.000000000","message":"why reference only?","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"2e095438cc6724545acf1d9335ada1d1c95c34d2","unresolved":false,"context_lines":[{"line_number":37,"context_line":"implementation, nor it is possible to use DragonFlow\u0027s L3 implementation"},{"line_number":38,"context_line":"without Dragonflow controller."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"In order to support the latter (Dragonflow L3 + reference everything else)"},{"line_number":41,"context_line":"we\u0027ll need to create a Dragonflow L3 flavort and an L3 agent to implement it."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_d8ecbf90","line":40,"range":{"start_line":40,"start_character":48,"end_line":40,"end_character":57},"in_reply_to":"1f1a1f67_6c205a49","updated":"2017-07-17 12:21:44.000000000","message":"Elaborated in next PS","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"1b2c476e5e7c3a47f6460f30823b54cd928b434e","unresolved":false,"context_lines":[{"line_number":38,"context_line":"without Dragonflow controller."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"In order to support the latter (Dragonflow L3 + reference everything else)"},{"line_number":41,"context_line":"we\u0027ll need to create a Dragonflow L3 flavort and an L3 agent to implement it."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"The system components we\u0027ll need are:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_4c191e20","line":41,"range":{"start_line":41,"start_character":37,"end_line":41,"end_character":44},"updated":"2017-07-17 06:37:58.000000000","message":"typo","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"2e095438cc6724545acf1d9335ada1d1c95c34d2","unresolved":false,"context_lines":[{"line_number":38,"context_line":"without Dragonflow controller."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"In order to support the latter (Dragonflow L3 + reference everything else)"},{"line_number":41,"context_line":"we\u0027ll need to create a Dragonflow L3 flavort and an L3 agent to implement it."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"The system components we\u0027ll need are:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_18f7d761","line":41,"range":{"start_line":41,"start_character":37,"end_line":41,"end_character":44},"in_reply_to":"1f1a1f67_4c191e20","updated":"2017-07-17 12:21:44.000000000","message":"Done","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"1b2c476e5e7c3a47f6460f30823b54cd928b434e","unresolved":false,"context_lines":[{"line_number":44,"context_line":"The system components we\u0027ll need are:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* L3 flavor - for managing L3 models"},{"line_number":47,"context_line":"* ML2 mech driver - for getting info on other relevant models (e.g networks,"},{"line_number":48,"context_line":"  subnet, ports)."},{"line_number":49,"context_line":"* Northbound database / pubsub - to store Dragonflow models and send"},{"line_number":50,"context_line":"  notifications. (since etcd is a common service now, we can avoid deploying"},{"line_number":51,"context_line":"  anything else)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_ecd90a57","line":48,"range":{"start_line":47,"start_character":1,"end_line":48,"end_character":17},"updated":"2017-07-17 06:37:58.000000000","message":"why not existing ml2 mech driver? what exactly do you need from this mech driver?","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"2e095438cc6724545acf1d9335ada1d1c95c34d2","unresolved":false,"context_lines":[{"line_number":44,"context_line":"The system components we\u0027ll need are:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* L3 flavor - for managing L3 models"},{"line_number":47,"context_line":"* ML2 mech driver - for getting info on other relevant models (e.g networks,"},{"line_number":48,"context_line":"  subnet, ports)."},{"line_number":49,"context_line":"* Northbound database / pubsub - to store Dragonflow models and send"},{"line_number":50,"context_line":"  notifications. (since etcd is a common service now, we can avoid deploying"},{"line_number":51,"context_line":"  anything else)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_58df8fd5","line":48,"range":{"start_line":47,"start_character":1,"end_line":48,"end_character":17},"in_reply_to":"1f1a1f67_ecd90a57","updated":"2017-07-17 12:21:44.000000000","message":"We can use the existing ML2 mech driver, though we migh want a reduced version of it (e.g. we don\u0027t need sec groups)","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"1b2c476e5e7c3a47f6460f30823b54cd928b434e","unresolved":false,"context_lines":[{"line_number":55,"context_line":"   patches to the integration bridge."},{"line_number":56,"context_line":" * This agent will feature a reduced set of apps, relevant to the L3"},{"line_number":57,"context_line":"   functionality it has to provide: L3 routing/SNAT/Floating IPs"},{"line_number":58,"context_line":" * We will also need custom classification / dispatch, to handle packets coming"},{"line_number":59,"context_line":"   from and to integration brdige."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_4ceebeed","line":58,"range":{"start_line":58,"start_character":42,"end_line":58,"end_character":43},"updated":"2017-07-17 06:37:58.000000000","message":"unneeded","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"2e095438cc6724545acf1d9335ada1d1c95c34d2","unresolved":false,"context_lines":[{"line_number":55,"context_line":"   patches to the integration bridge."},{"line_number":56,"context_line":" * This agent will feature a reduced set of apps, relevant to the L3"},{"line_number":57,"context_line":"   functionality it has to provide: L3 routing/SNAT/Floating IPs"},{"line_number":58,"context_line":" * We will also need custom classification / dispatch, to handle packets coming"},{"line_number":59,"context_line":"   from and to integration brdige."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_389733ef","line":58,"range":{"start_line":58,"start_character":42,"end_line":58,"end_character":43},"in_reply_to":"1f1a1f67_4ceebeed","updated":"2017-07-17 12:21:44.000000000","message":"Done","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"1b2c476e5e7c3a47f6460f30823b54cd928b434e","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"In this implementation, our apps can stay relatively the same, as long as we"},{"line_number":91,"context_line":"provide them with an environemnt similar to Dragonflow\u0027s br-in (metadata/regs)"},{"line_number":92,"context_line":"We will need to adapt the customized classification/dispatch flows to fill in"},{"line_number":93,"context_line":"the relevant information."},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_8cd17626","line":91,"range":{"start_line":91,"start_character":57,"end_line":91,"end_character":62},"updated":"2017-07-17 06:37:58.000000000","message":"br-int","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"1b2c476e5e7c3a47f6460f30823b54cd928b434e","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"In this implementation, our apps can stay relatively the same, as long as we"},{"line_number":91,"context_line":"provide them with an environemnt similar to Dragonflow\u0027s br-in (metadata/regs)"},{"line_number":92,"context_line":"We will need to adapt the customized classification/dispatch flows to fill in"},{"line_number":93,"context_line":"the relevant information."},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_ccb3ee09","line":91,"range":{"start_line":91,"start_character":21,"end_line":91,"end_character":32},"updated":"2017-07-17 06:37:58.000000000","message":"typo","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"1b2c476e5e7c3a47f6460f30823b54cd928b434e","unresolved":false,"context_lines":[{"line_number":92,"context_line":"We will need to adapt the customized classification/dispatch flows to fill in"},{"line_number":93,"context_line":"the relevant information."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"In the reference implementation each router interface or gateway is a separate"},{"line_number":96,"context_line":"port because each one goes to a different network namespace. Since all our"},{"line_number":97,"context_line":"routers are now implemented in a single bridge, we don\u0027t need so many ports."},{"line_number":98,"context_line":"We can use packet_mark to pass the relevant data (e.g. what router interface"},{"line_number":99,"context_line":"we\u0027re accessing)."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"For chassis SNAT we\u0027ll need to add a patch port towards the external network"},{"line_number":102,"context_line":"bridge."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"References"},{"line_number":105,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f1a1f67_8c96164c","line":102,"range":{"start_line":95,"start_character":0,"end_line":102,"end_character":7},"updated":"2017-07-17 06:37:58.000000000","message":"maybe visual form can be useful here","commit_id":"253d6f61748889641db7866c7d6ecdde23ac09f8"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"42700b580c0097661d29d460ed9ae37b2821076c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"inside the integration bridge, it is healivy dependent on the Dragonflow L2"},{"line_number":37,"context_line":"implementation."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"In order to support the standalone Dragonflow L3 use-case, we\u0027ll need to createa Dragonflow L3 flavor and an L3 agent to implement it. The initial idea is"},{"line_number":40,"context_line":"to implement the interface to reference L2 implementation. The motivation"},{"line_number":41,"context_line":"behind supporting reference inteface is that it is standart enough to require"},{"line_number":42,"context_line":"3rd parties to use it when interfacing Dragonflow L3."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f1a1f67_699cbf69","line":39,"range":{"start_line":39,"start_character":73,"end_line":39,"end_character":80},"updated":"2017-07-17 13:23:18.000000000","message":"create a","commit_id":"08a05662bc6b13dc4172967459d563e9aff1d069"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"61f5c4c852b8bce27ea4c66e0f108c3807895a4e","unresolved":false,"context_lines":[{"line_number":36,"context_line":"inside the integration bridge, it is healivy dependent on the Dragonflow L2"},{"line_number":37,"context_line":"implementation."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"In order to support the standalone Dragonflow L3 use-case, we\u0027ll need to createa Dragonflow L3 flavor and an L3 agent to implement it. The initial idea is"},{"line_number":40,"context_line":"to implement the interface to reference L2 implementation. The motivation"},{"line_number":41,"context_line":"behind supporting reference inteface is that it is standart enough to require"},{"line_number":42,"context_line":"3rd parties to use it when interfacing Dragonflow L3."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f1a1f67_ee1b11c7","line":39,"range":{"start_line":39,"start_character":73,"end_line":39,"end_character":80},"in_reply_to":"1f1a1f67_699cbf69","updated":"2017-07-18 10:46:41.000000000","message":"Done","commit_id":"08a05662bc6b13dc4172967459d563e9aff1d069"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"42700b580c0097661d29d460ed9ae37b2821076c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"The system components we\u0027ll need are:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* L3 flavor - for managing L3 models"},{"line_number":47,"context_line":"* ML2 mech driver - for getting info on other relevant models (e.g networks,"},{"line_number":48,"context_line":"  subnet, ports)."},{"line_number":49,"context_line":"* Northbound database/pubsub - to store Dragonflow models and send"},{"line_number":50,"context_line":"  notifications. (since etcd is a common service now, we can avoid deploying"},{"line_number":51,"context_line":"  anything else)."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f1a1f67_29dfe70d","line":48,"range":{"start_line":47,"start_character":2,"end_line":48,"end_character":17},"updated":"2017-07-17 13:23:18.000000000","message":"I am still not convinced why. It is not needed by other flavors, so what is unique for DF. Can you please elaborate?","commit_id":"08a05662bc6b13dc4172967459d563e9aff1d069"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"61f5c4c852b8bce27ea4c66e0f108c3807895a4e","unresolved":false,"context_lines":[{"line_number":44,"context_line":"The system components we\u0027ll need are:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* L3 flavor - for managing L3 models"},{"line_number":47,"context_line":"* ML2 mech driver - for getting info on other relevant models (e.g networks,"},{"line_number":48,"context_line":"  subnet, ports)."},{"line_number":49,"context_line":"* Northbound database/pubsub - to store Dragonflow models and send"},{"line_number":50,"context_line":"  notifications. (since etcd is a common service now, we can avoid deploying"},{"line_number":51,"context_line":"  anything else)."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f1a1f67_2e6b491e","line":48,"range":{"start_line":47,"start_character":2,"end_line":48,"end_character":17},"in_reply_to":"1f1a1f67_29dfe70d","updated":"2017-07-18 10:46:41.000000000","message":"Expanded a little in next PS","commit_id":"08a05662bc6b13dc4172967459d563e9aff1d069"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"42700b580c0097661d29d460ed9ae37b2821076c","unresolved":false,"context_lines":[{"line_number":131,"context_line":"  |   br-int   |        |   br-l3   |        |   br-ex   |"},{"line_number":132,"context_line":"  |            +--------+           +--------+           |"},{"line_number":133,"context_line":"  +------------+        +-----------+        +-----------+"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"References"},{"line_number":136,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f1a1f67_c902b36f","line":134,"updated":"2017-07-17 13:23:18.000000000","message":"Very good visualization.","commit_id":"08a05662bc6b13dc4172967459d563e9aff1d069"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"b667736fe00f4d19a79ff3988b6414e968642bd8","unresolved":false,"context_lines":[{"line_number":45,"context_line":"The system components we\u0027ll need are:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* L3 flavor - for managing L3 models"},{"line_number":48,"context_line":"* ML2 mech driver - for getting info on other relevant models (e.g networks,"},{"line_number":49,"context_line":"  subnet, ports). In order to use the existing apps, we\u0027ll need DF models in"},{"line_number":50,"context_line":"  the northbound database, so a mech driver is needed to populate it."},{"line_number":51,"context_line":"* Northbound database/pubsub - to store Dragonflow models and send"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff346bd7_f1f4a65d","line":48,"range":{"start_line":48,"start_character":2,"end_line":48,"end_character":5},"updated":"2017-07-24 08:04:27.000000000","message":"ML3?","commit_id":"fee236fc5eb6dec81e06f2edd69156d0a5415ab6"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"a9db83d4d4d3a554c7245f0f978d800e3a359514","unresolved":false,"context_lines":[{"line_number":45,"context_line":"The system components we\u0027ll need are:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* L3 flavor - for managing L3 models"},{"line_number":48,"context_line":"* ML2 mech driver - for getting info on other relevant models (e.g networks,"},{"line_number":49,"context_line":"  subnet, ports). In order to use the existing apps, we\u0027ll need DF models in"},{"line_number":50,"context_line":"  the northbound database, so a mech driver is needed to populate it."},{"line_number":51,"context_line":"* Northbound database/pubsub - to store Dragonflow models and send"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff346bd7_546da096","line":48,"range":{"start_line":48,"start_character":2,"end_line":48,"end_character":5},"in_reply_to":"ff346bd7_f1f4a65d","updated":"2017-07-24 08:17:53.000000000","message":"Nope, DF L2 mech driver is still needed to collect Ports/Subnets/Networks into NB database.","commit_id":"fee236fc5eb6dec81e06f2edd69156d0a5415ab6"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"b667736fe00f4d19a79ff3988b6414e968642bd8","unresolved":false,"context_lines":[{"line_number":58,"context_line":" * This agent will feature a reduced set of apps, relevant to the L3"},{"line_number":59,"context_line":"   functionality it has to provide: L3 routing/SNAT/Floating IPs"},{"line_number":60,"context_line":" * We will also need custom classification/dispatch, to handle packets coming"},{"line_number":61,"context_line":"   from and to integration brdige."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"::"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff346bd7_b1605e34","line":61,"range":{"start_line":61,"start_character":27,"end_line":61,"end_character":33},"updated":"2017-07-24 08:04:27.000000000","message":"bridge","commit_id":"fee236fc5eb6dec81e06f2edd69156d0a5415ab6"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"a9db83d4d4d3a554c7245f0f978d800e3a359514","unresolved":false,"context_lines":[{"line_number":58,"context_line":" * This agent will feature a reduced set of apps, relevant to the L3"},{"line_number":59,"context_line":"   functionality it has to provide: L3 routing/SNAT/Floating IPs"},{"line_number":60,"context_line":" * We will also need custom classification/dispatch, to handle packets coming"},{"line_number":61,"context_line":"   from and to integration brdige."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"::"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff346bd7_346a1c80","line":61,"range":{"start_line":61,"start_character":27,"end_line":61,"end_character":33},"in_reply_to":"ff346bd7_b1605e34","updated":"2017-07-24 08:17:53.000000000","message":"Done","commit_id":"fee236fc5eb6dec81e06f2edd69156d0a5415ab6"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"06bb91229c8cbe8feae9934008cfe1d8dc7f0ab3","unresolved":false,"context_lines":[{"line_number":94,"context_line":"We will need to adapt the customized classification/dispatch flows to fill in"},{"line_number":95,"context_line":"the relevant information."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"In the reference implementation each router interface or gateway is a separate"},{"line_number":98,"context_line":"port because each one goes to a different network namespace. Since all our"},{"line_number":99,"context_line":"routers are now implemented in a single bridge, we don\u0027t need so many ports."},{"line_number":100,"context_line":"We can use packet_mark to pass the relevant data (e.g. what router interface"},{"line_number":101,"context_line":"we\u0027re accessing)."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"For chassis SNAT we\u0027ll need to add a patch port towards the external network"},{"line_number":104,"context_line":"bridge."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff346bd7_f4e382a3","line":101,"range":{"start_line":97,"start_character":0,"end_line":101,"end_character":17},"updated":"2017-07-23 08:49:37.000000000","message":"Does this require modification in the reference implementation? If so, maybe detecting by port rather than by pkt_mark is also an option (e.g. select using configuration, or two classification apps according to what the reference implementation allows).","commit_id":"fee236fc5eb6dec81e06f2edd69156d0a5415ab6"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"5c7a32408d14342e256048df75e819a17019175d","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"In Dragonflow\u0027s current architecture, we\u0027re implementing a whole L3 plugin."},{"line_number":35,"context_line":"Thus all routers run Dragonflow implementation. Since our L3 is implemented"},{"line_number":36,"context_line":"inside the integration bridge, it is healivy dependent on the Dragonflow L2"},{"line_number":37,"context_line":"implementation."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"In order to support the standalone Dragonflow L3 use-case, we\u0027ll need to create"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff346bd7_2da28aaf","line":36,"range":{"start_line":36,"start_character":37,"end_line":36,"end_character":44},"updated":"2017-07-25 23:39:14.000000000","message":"heavily","commit_id":"d75c4b9a0f9aa418203d420610808c595df50fec"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"5c7a32408d14342e256048df75e819a17019175d","unresolved":false,"context_lines":[{"line_number":39,"context_line":"In order to support the standalone Dragonflow L3 use-case, we\u0027ll need to create"},{"line_number":40,"context_line":"a Dragonflow L3 flavor and an L3 agent to implement it. The initial idea is"},{"line_number":41,"context_line":"to implement the interface to reference L2 implementation. The motivation"},{"line_number":42,"context_line":"behind supporting reference inteface is that it is standart enough to require"},{"line_number":43,"context_line":"3rd parties to use it when interfacing Dragonflow L3."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"The system components we\u0027ll need are:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff346bd7_0d8ea62d","line":42,"range":{"start_line":42,"start_character":51,"end_line":42,"end_character":59},"updated":"2017-07-25 23:39:14.000000000","message":"standard","commit_id":"d75c4b9a0f9aa418203d420610808c595df50fec"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"7a6f85cb1949f554f2949f9923c3edd9ad5c9649","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Dragonflow allows fully distributed L3 routing and source NATing. Those"},{"line_number":17,"context_line":"features attracted some attention in the community. In this spec we\u0027ll describe"},{"line_number":18,"context_line":"how Dragonflow\u0027s L3 capabilies can be used along-side Neutron\u0027s reference"},{"line_number":19,"context_line":"implementation."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f2577a7_39a90adf","line":19,"updated":"2017-09-08 22:04:57.000000000","message":"We should document which ML2 mech drivers our L3 Flavor will work with.\n\nI found this limitation:\n\nSupport for DVR is limited to the ML2 core plug-in and the Open vSwitch (OVS) mechanism driver. Other back ends are not supported.\n\nDocumented here: https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/11/html/networking_guide/sec-dvr","commit_id":"4f6789fb46f9bbb85b76cb3992aef60bf0500dc5"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"5a2190526d48ea16b9839fac8c9ca0fb2ba246c5","unresolved":false,"context_lines":[{"line_number":39,"context_line":"In order to support the standalone Dragonflow L3 use-case, we\u0027ll need to create"},{"line_number":40,"context_line":"a Dragonflow L3 flavor and an L3 agent to implement it. The initial idea is"},{"line_number":41,"context_line":"to implement the interface to reference L2 implementation. The motivation"},{"line_number":42,"context_line":"behind supporting reference inteface is that it is standart enough to require"},{"line_number":43,"context_line":"3rd parties to use it when interfacing Dragonflow L3."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"The system components we\u0027ll need are:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f2577a7_8213e8b8","line":42,"updated":"2017-09-08 21:40:43.000000000","message":"standard","commit_id":"4f6789fb46f9bbb85b76cb3992aef60bf0500dc5"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"5a2190526d48ea16b9839fac8c9ca0fb2ba246c5","unresolved":false,"context_lines":[{"line_number":98,"context_line":"port because each one goes to a different network namespace. Since all our"},{"line_number":99,"context_line":"routers are now implemented in a single bridge, we don\u0027t need so many ports."},{"line_number":100,"context_line":"We can use packet_mark to pass the relevant data (e.g. what router interface"},{"line_number":101,"context_line":"we\u0027re accessing)."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"For chassis SNAT we\u0027ll need to add a patch port towards the external network"},{"line_number":104,"context_line":"bridge."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f2577a7_d949e660","line":101,"updated":"2017-09-08 21:40:43.000000000","message":"Can you provide any details about work we may have to do upstream in Neutron reference implementation to enable our solution? For example, how do we:\n- add the patch-ports to br-int managed by a different L2 agent?\n- and get the L2 agent to set up appropriate flows so as to forward appropriately marked traffic via the patch-ports?\n\nI\u0027m not familiar with how DVR gets its namespaces hooked up on every compute... I assume we will have similarities. Is there a local interface to interact with the L2 agent?","commit_id":"4f6789fb46f9bbb85b76cb3992aef60bf0500dc5"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"0123c79f57eee99d36ba490fb4f60adef3ccf839","unresolved":false,"context_lines":[{"line_number":98,"context_line":"port because each one goes to a different network namespace. Since all our"},{"line_number":99,"context_line":"routers are now implemented in a single bridge, we don\u0027t need so many ports."},{"line_number":100,"context_line":"We can use packet_mark to pass the relevant data (e.g. what router interface"},{"line_number":101,"context_line":"we\u0027re accessing)."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"For chassis SNAT we\u0027ll need to add a patch port towards the external network"},{"line_number":104,"context_line":"bridge."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f2577a7_3987cada","line":101,"in_reply_to":"5f2577a7_b99a9a6b","updated":"2017-09-08 22:18:52.000000000","message":"Sorry for all the spam!\n\nThis might be helpful - a way for external code to manage OVS flows without stepping on L2 agent\u0027s toes:\nhttps://specs.openstack.org/openstack/neutron-specs/specs/mitaka/l2-agent-extensions-agent-api.html\n\n\nFor example, here\u0027s how TAPaaS manages its flows in OVS:\nhttps://github.com/openstack/tap-as-a-service/commit/33b116ee7ef1e8cf88256fa1f130847951e32b49","commit_id":"4f6789fb46f9bbb85b76cb3992aef60bf0500dc5"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"7a6f85cb1949f554f2949f9923c3edd9ad5c9649","unresolved":false,"context_lines":[{"line_number":98,"context_line":"port because each one goes to a different network namespace. Since all our"},{"line_number":99,"context_line":"routers are now implemented in a single bridge, we don\u0027t need so many ports."},{"line_number":100,"context_line":"We can use packet_mark to pass the relevant data (e.g. what router interface"},{"line_number":101,"context_line":"we\u0027re accessing)."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"For chassis SNAT we\u0027ll need to add a patch port towards the external network"},{"line_number":104,"context_line":"bridge."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f2577a7_b99a9a6b","line":101,"in_reply_to":"5f2577a7_d949e660","updated":"2017-09-08 22:04:57.000000000","message":"According to this document the L2 agent was modified in very specific ways to conform to DVR:\nhttps://wiki.openstack.org/wiki/Neutron/DVR_L2_Agent\n\nWe might be able to re-use that, but it would expect a patch-port per router (rather than one for all routers).\n\nCurious to hear your take on this and whether you\u0027ll propose patches upstream to make the L2 agent\u0027s \"enable_distributed_routing\" behavior more flexible.","commit_id":"4f6789fb46f9bbb85b76cb3992aef60bf0500dc5"}]}
