)]}'
{"doc/source/specs/logical_port_locality.rst":[{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c908531ff28955344406938ec7c9afdefd883c51","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Problem Description"},{"line_number":13,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"In the current implementation, a local controller sees all lports as either"},{"line_number":16,"context_line":"local or remote, where a local lport is bound to some tap device (via ofport)"},{"line_number":17,"context_line":"and a remote lport is bound to some tap device on a remote machine (via the"},{"line_number":18,"context_line":"ofport of an appropirate tunnel port)."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_96a9e1e0","line":15,"range":{"start_line":15,"start_character":50,"end_line":15,"end_character":54},"updated":"2017-07-13 07:19:46.000000000","message":"caches?","commit_id":"28e78b6f7bc3b997fae9c29c814e1ca78676c160"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"b3252aeb17c91c7c3a3519c6f647ba78a6a8a1b3","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Problem Description"},{"line_number":13,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"In the current implementation, a local controller sees all lports as either"},{"line_number":16,"context_line":"local or remote, where a local lport is bound to some tap device (via ofport)"},{"line_number":17,"context_line":"and a remote lport is bound to some tap device on a remote machine (via the"},{"line_number":18,"context_line":"ofport of an appropirate tunnel port)."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_d6cbd91b","line":15,"range":{"start_line":15,"start_character":50,"end_line":15,"end_character":54},"in_reply_to":"1f1a1f67_96a9e1e0","updated":"2017-07-13 07:37:54.000000000","message":"Caches, and tracks changes of\nWill update","commit_id":"28e78b6f7bc3b997fae9c29c814e1ca78676c160"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c908531ff28955344406938ec7c9afdefd883c51","unresolved":false,"context_lines":[{"line_number":13,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"In the current implementation, a local controller sees all lports as either"},{"line_number":16,"context_line":"local or remote, where a local lport is bound to some tap device (via ofport)"},{"line_number":17,"context_line":"and a remote lport is bound to some tap device on a remote machine (via the"},{"line_number":18,"context_line":"ofport of an appropirate tunnel port)."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_f675b599","line":16,"range":{"start_line":16,"start_character":54,"end_line":16,"end_character":57},"updated":"2017-07-13 07:19:46.000000000","message":"can be veth for container","commit_id":"28e78b6f7bc3b997fae9c29c814e1ca78676c160"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"b3252aeb17c91c7c3a3519c6f647ba78a6a8a1b3","unresolved":false,"context_lines":[{"line_number":13,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"In the current implementation, a local controller sees all lports as either"},{"line_number":16,"context_line":"local or remote, where a local lport is bound to some tap device (via ofport)"},{"line_number":17,"context_line":"and a remote lport is bound to some tap device on a remote machine (via the"},{"line_number":18,"context_line":"ofport of an appropirate tunnel port)."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_f61375b7","line":16,"range":{"start_line":16,"start_character":54,"end_line":16,"end_character":57},"in_reply_to":"1f1a1f67_f675b599","updated":"2017-07-13 07:37:54.000000000","message":"Will change to a neutral description","commit_id":"28e78b6f7bc3b997fae9c29c814e1ca78676c160"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c908531ff28955344406938ec7c9afdefd883c51","unresolved":false,"context_lines":[{"line_number":34,"context_line":"We will split the ports into 3 categories:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* Local - traffic to those ports is handled by local node exclusively (except"},{"line_number":37,"context_line":"  for optimizations like ARP responding), other hosts will forward traffic of"},{"line_number":38,"context_line":"  bound to this port to the local"},{"line_number":39,"context_line":"* Remote - those ports are local to another node, and their traffic should be"},{"line_number":40,"context_line":"  forwarded."},{"line_number":41,"context_line":"* Distributed - those ports are not bound to a specific node, and each node"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_f6e81517","line":38,"range":{"start_line":37,"start_character":54,"end_line":38,"end_character":33},"updated":"2017-07-13 07:19:46.000000000","message":"can you please rephrase?","commit_id":"28e78b6f7bc3b997fae9c29c814e1ca78676c160"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"b3252aeb17c91c7c3a3519c6f647ba78a6a8a1b3","unresolved":false,"context_lines":[{"line_number":34,"context_line":"We will split the ports into 3 categories:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* Local - traffic to those ports is handled by local node exclusively (except"},{"line_number":37,"context_line":"  for optimizations like ARP responding), other hosts will forward traffic of"},{"line_number":38,"context_line":"  bound to this port to the local"},{"line_number":39,"context_line":"* Remote - those ports are local to another node, and their traffic should be"},{"line_number":40,"context_line":"  forwarded."},{"line_number":41,"context_line":"* Distributed - those ports are not bound to a specific node, and each node"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_76276514","line":38,"range":{"start_line":37,"start_character":54,"end_line":38,"end_character":33},"in_reply_to":"1f1a1f67_f6e81517","updated":"2017-07-13 07:37:54.000000000","message":"Yes, sorry.","commit_id":"28e78b6f7bc3b997fae9c29c814e1ca78676c160"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c908531ff28955344406938ec7c9afdefd883c51","unresolved":false,"context_lines":[{"line_number":36,"context_line":"* Local - traffic to those ports is handled by local node exclusively (except"},{"line_number":37,"context_line":"  for optimizations like ARP responding), other hosts will forward traffic of"},{"line_number":38,"context_line":"  bound to this port to the local"},{"line_number":39,"context_line":"* Remote - those ports are local to another node, and their traffic should be"},{"line_number":40,"context_line":"  forwarded."},{"line_number":41,"context_line":"* Distributed - those ports are not bound to a specific node, and each node"},{"line_number":42,"context_line":"  can handle their traffic locally"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_56d90981","line":40,"range":{"start_line":39,"start_character":50,"end_line":40,"end_character":12},"updated":"2017-07-13 07:19:46.000000000","message":"isn\u0027t it up to the app to decide?","commit_id":"28e78b6f7bc3b997fae9c29c814e1ca78676c160"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"b3252aeb17c91c7c3a3519c6f647ba78a6a8a1b3","unresolved":false,"context_lines":[{"line_number":36,"context_line":"* Local - traffic to those ports is handled by local node exclusively (except"},{"line_number":37,"context_line":"  for optimizations like ARP responding), other hosts will forward traffic of"},{"line_number":38,"context_line":"  bound to this port to the local"},{"line_number":39,"context_line":"* Remote - those ports are local to another node, and their traffic should be"},{"line_number":40,"context_line":"  forwarded."},{"line_number":41,"context_line":"* Distributed - those ports are not bound to a specific node, and each node"},{"line_number":42,"context_line":"  can handle their traffic locally"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_f661353b","line":40,"range":{"start_line":39,"start_character":50,"end_line":40,"end_character":12},"in_reply_to":"1f1a1f67_56d90981","updated":"2017-07-13 07:37:54.000000000","message":"If an app can handle the traffic locally, it wouldn\u0027t have to be classified as remote","commit_id":"28e78b6f7bc3b997fae9c29c814e1ca78676c160"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c908531ff28955344406938ec7c9afdefd883c51","unresolved":false,"context_lines":[{"line_number":50,"context_line":" * Floating ports whose FIP is bound to a local port"},{"line_number":51,"context_line":" * ... and other rules we\u0027ll require for future apps."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Remove ports:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":" * Like above, but when chassis is not local"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_36bfadfc","line":53,"range":{"start_line":53,"start_character":2,"end_line":53,"end_character":8},"updated":"2017-07-13 07:19:46.000000000","message":"remote","commit_id":"28e78b6f7bc3b997fae9c29c814e1ca78676c160"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"b3252aeb17c91c7c3a3519c6f647ba78a6a8a1b3","unresolved":false,"context_lines":[{"line_number":50,"context_line":" * Floating ports whose FIP is bound to a local port"},{"line_number":51,"context_line":" * ... and other rules we\u0027ll require for future apps."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Remove ports:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":" * Like above, but when chassis is not local"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_364fadbe","line":53,"range":{"start_line":53,"start_character":2,"end_line":53,"end_character":8},"in_reply_to":"1f1a1f67_36bfadfc","updated":"2017-07-13 07:37:54.000000000","message":"yes","commit_id":"28e78b6f7bc3b997fae9c29c814e1ca78676c160"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c908531ff28955344406938ec7c9afdefd883c51","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Distributed ports:"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":" * Router interfaces and gateways"},{"line_number":60,"context_line":" * DHCP ports"},{"line_number":61,"context_line":" * etc..."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"We should note that we don\u0027t have to classify all ports into those three"},{"line_number":64,"context_line":"categories, we can ignore the ports that are not relevant to any of the apps."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_9645611a","line":61,"range":{"start_line":59,"start_character":1,"end_line":61,"end_character":9},"updated":"2017-07-13 07:19:46.000000000","message":"Maybe \u0027all the rest\u0027, e.g.","commit_id":"28e78b6f7bc3b997fae9c29c814e1ca78676c160"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"b3252aeb17c91c7c3a3519c6f647ba78a6a8a1b3","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Distributed ports:"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":" * Router interfaces and gateways"},{"line_number":60,"context_line":" * DHCP ports"},{"line_number":61,"context_line":" * etc..."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"We should note that we don\u0027t have to classify all ports into those three"},{"line_number":64,"context_line":"categories, we can ignore the ports that are not relevant to any of the apps."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_9660c134","line":61,"range":{"start_line":59,"start_character":1,"end_line":61,"end_character":9},"in_reply_to":"1f1a1f67_9645611a","updated":"2017-07-13 07:37:54.000000000","message":"As stated later on, I think we should classify only ports we care about.","commit_id":"28e78b6f7bc3b997fae9c29c814e1ca78676c160"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c908531ff28955344406938ec7c9afdefd883c51","unresolved":false,"context_lines":[{"line_number":61,"context_line":" * etc..."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"We should note that we don\u0027t have to classify all ports into those three"},{"line_number":64,"context_line":"categories, we can ignore the ports that are not relevant to any of the apps."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"We should add (now or in future) a way to allow 3rd party code to customize"},{"line_number":67,"context_line":"the classification in case our own rules don\u0027t fit the 3rd party apps."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_5647c91e","line":64,"range":{"start_line":64,"start_character":11,"end_line":64,"end_character":14},"updated":"2017-07-13 07:19:46.000000000","message":"we \u003dapp?","commit_id":"28e78b6f7bc3b997fae9c29c814e1ca78676c160"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"b3252aeb17c91c7c3a3519c6f647ba78a6a8a1b3","unresolved":false,"context_lines":[{"line_number":61,"context_line":" * etc..."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"We should note that we don\u0027t have to classify all ports into those three"},{"line_number":64,"context_line":"categories, we can ignore the ports that are not relevant to any of the apps."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"We should add (now or in future) a way to allow 3rd party code to customize"},{"line_number":67,"context_line":"the classification in case our own rules don\u0027t fit the 3rd party apps."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_b6ff3d66","line":64,"range":{"start_line":64,"start_character":11,"end_line":64,"end_character":14},"in_reply_to":"1f1a1f67_5647c91e","updated":"2017-07-13 07:37:54.000000000","message":"The controller","commit_id":"28e78b6f7bc3b997fae9c29c814e1ca78676c160"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"c908531ff28955344406938ec7c9afdefd883c51","unresolved":false,"context_lines":[{"line_number":64,"context_line":"categories, we can ignore the ports that are not relevant to any of the apps."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"We should add (now or in future) a way to allow 3rd party code to customize"},{"line_number":67,"context_line":"the classification in case our own rules don\u0027t fit the 3rd party apps."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"References"},{"line_number":70,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_165151d9","line":67,"range":{"start_line":67,"start_character":27,"end_line":67,"end_character":30},"updated":"2017-07-13 07:19:46.000000000","message":"DF","commit_id":"28e78b6f7bc3b997fae9c29c814e1ca78676c160"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"b3252aeb17c91c7c3a3519c6f647ba78a6a8a1b3","unresolved":false,"context_lines":[{"line_number":64,"context_line":"categories, we can ignore the ports that are not relevant to any of the apps."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"We should add (now or in future) a way to allow 3rd party code to customize"},{"line_number":67,"context_line":"the classification in case our own rules don\u0027t fit the 3rd party apps."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"References"},{"line_number":70,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_76f9a57e","line":67,"range":{"start_line":67,"start_character":27,"end_line":67,"end_character":30},"in_reply_to":"1f1a1f67_165151d9","updated":"2017-07-13 07:37:54.000000000","message":"Will change","commit_id":"28e78b6f7bc3b997fae9c29c814e1ca78676c160"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"e41c6e475e7c58f1f4f0d8a1bcb6cf0dfee2614d","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Proposed Change"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"During the writing of this spec, there\u0027s an effort to remove ofport from"},{"line_number":30,"context_line":"logical ports, we can utilize this to change the notion of locality for logical"},{"line_number":31,"context_line":"ports [1]_."},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f1a1f67_b9f28e05","line":29,"updated":"2017-07-13 07:52:39.000000000","message":"Maybe also introduce here the new-events for virtual-ports?","commit_id":"8c62495404e2790cf4eece6422622c075fc1d566"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"3045aa032e6b5b6c4393713534877c4e4b7bbe47","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Proposed Change"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"During the writing of this spec, there\u0027s an effort to remove ofport from"},{"line_number":30,"context_line":"logical ports, we can utilize this to change the notion of locality for logical"},{"line_number":31,"context_line":"ports [1]_."},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f1a1f67_f95fe6e2","line":29,"in_reply_to":"1f1a1f67_b9f28e05","updated":"2017-07-13 07:57:04.000000000","message":"Sure","commit_id":"8c62495404e2790cf4eece6422622c075fc1d566"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"96783c03b5dd729ec9a2428b85307de8c67ed6d6","unresolved":false,"context_lines":[{"line_number":41,"context_line":"* Distributed - those ports are not bound to a specific node, and each node"},{"line_number":42,"context_line":"  can handle their traffic locally."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"The classification will be done at each local controller, by a set of rules:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* Local ports:"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f1a1f67_0a2b62eb","line":44,"range":{"start_line":44,"start_character":58,"end_line":44,"end_character":75},"updated":"2017-07-13 09:26:45.000000000","message":"I have some reservations about this approach:\n\nFirst of all, if we\u0027re doing it for lport only, we\u0027re keeping lport specific logic inside the local controller.\n\nBut there\u0027s also another issue. For a floating IP port, we\u0027ll get a port event when it is created, at this point, it will not be regarded as local since there\u0027s no floating IP referencing it yet. The port will become local only when Floating IP is associated (on its creation or update).\n\nSame goes with trunk as its subports...","commit_id":"8c62495404e2790cf4eece6422622c075fc1d566"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"8f3c581ded99aa96f568d95c89bfde8ba396b296","unresolved":false,"context_lines":[{"line_number":48,"context_line":" * All compute ports with bound ofport (and chassis \u003d local node)"},{"line_number":49,"context_line":" * Trunk subports whose parent port is local"},{"line_number":50,"context_line":" * Floating ports whose FIP is bound to a local port"},{"line_number":51,"context_line":" * ... and other rules we\u0027ll require for future apps."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Remote ports:"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f1a1f67_f42fedf3","line":51,"updated":"2017-07-13 08:41:09.000000000","message":"Applications should be able to extend these three lists. i.e. df controller can handle the first case, but the second and third case should be added by the trunk port app and the dnat app.\n\nL3 and DHCP should add the rules to identify their lports as distributed.","commit_id":"8c62495404e2790cf4eece6422622c075fc1d566"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"8f3c581ded99aa96f568d95c89bfde8ba396b296","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"We should note that we don\u0027t have to classify all ports into those three"},{"line_number":64,"context_line":"categories, the controller can ignore the ports that are not relevant to any"},{"line_number":65,"context_line":"of the apps. To decide on the relevance, we should add (now or in future) a way"},{"line_number":66,"context_line":"to allow customization of the rules above. Both for 3rd party apps, and our own"},{"line_number":67,"context_line":"apps (no need to check trunk subports if trunk app is not loaded)."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f1a1f67_d45bd184","line":65,"range":{"start_line":65,"start_character":56,"end_line":65,"end_character":59},"updated":"2017-07-13 08:41:09.000000000","message":"I think this should be an integral part of the change.","commit_id":"8c62495404e2790cf4eece6422622c075fc1d566"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"34eac581abeb21c5ff1ec602781fdeedcef26488","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"We should note that we don\u0027t have to classify all ports into those three"},{"line_number":64,"context_line":"categories, the controller can ignore the ports that are not relevant to any"},{"line_number":65,"context_line":"of the apps. To decide on the relevance, we should add (now or in future) a way"},{"line_number":66,"context_line":"to allow customization of the rules above. Both for 3rd party apps, and our own"},{"line_number":67,"context_line":"apps (no need to check trunk subports if trunk app is not loaded)."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f1a1f67_d46cf109","line":65,"range":{"start_line":65,"start_character":56,"end_line":65,"end_character":59},"in_reply_to":"1f1a1f67_d45bd184","updated":"2017-07-13 08:48:01.000000000","message":"+1\nIt will be very helpful for future apps","commit_id":"8c62495404e2790cf4eece6422622c075fc1d566"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"479c8b06cac961ed71bdcdf96bb91b38edbbccbe","unresolved":false,"context_lines":[{"line_number":41,"context_line":"* Distributed - those ports are not bound to a specific node, and each node"},{"line_number":42,"context_line":"  can handle their traffic locally."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"The classification will be done by apps, each responsible for notifying changes"},{"line_number":45,"context_line":"of relevant ports:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* Classification app"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1f1a1f67_89a89f1f","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":79},"updated":"2017-07-13 10:22:10.000000000","message":"So if I understand correctly, DF controller only fires an lport_create/update/deleted event, and applications fire derived events such as local_port_..., remote_port_..., etc.?\n\nThis idea could work well, but I think it warrants more than a half-sentence.","commit_id":"9fb7ed446cd77ee9278a2de5780a3265e592e2a2"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"6c19ff85150e989e3530e46dc682ccf57bbd0327","unresolved":false,"context_lines":[{"line_number":41,"context_line":"* Distributed - those ports are not bound to a specific node, and each node"},{"line_number":42,"context_line":"  can handle their traffic locally."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"The classification will be done by apps, each responsible for notifying changes"},{"line_number":45,"context_line":"of relevant ports:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* Classification app"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1f1a1f67_0f46cf24","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":79},"in_reply_to":"1f1a1f67_89a89f1f","updated":"2017-07-13 11:03:39.000000000","message":"Yes, this will as well eliminate the df controller special lport treatment.\n\nI\u0027ll add more details on this.","commit_id":"9fb7ed446cd77ee9278a2de5780a3265e592e2a2"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"2b1c6a12ca4fc8a8983af259ce7b22129936a7b9","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"This leaves us with classifying remote ports that have a chassis assigned"},{"line_number":77,"context_line":"(others handled by local apps), we can do this in a dedicated app (preferable?)"},{"line_number":78,"context_line":"or in the controller code."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"References"},{"line_number":81,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1f1a1f67_c5831d04","line":78,"updated":"2017-07-13 09:47:51.000000000","message":"Alternatively, this can be done by classification app.","commit_id":"9fb7ed446cd77ee9278a2de5780a3265e592e2a2"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"6c19ff85150e989e3530e46dc682ccf57bbd0327","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"This leaves us with classifying remote ports that have a chassis assigned"},{"line_number":77,"context_line":"(others handled by local apps), we can do this in a dedicated app (preferable?)"},{"line_number":78,"context_line":"or in the controller code."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"References"},{"line_number":81,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1f1a1f67_af6d9b99","line":78,"in_reply_to":"1f1a1f67_299f4b04","updated":"2017-07-13 11:03:39.000000000","message":"This can be done, we should see how migration app comes into play here as well.","commit_id":"9fb7ed446cd77ee9278a2de5780a3265e592e2a2"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"479c8b06cac961ed71bdcdf96bb91b38edbbccbe","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"This leaves us with classifying remote ports that have a chassis assigned"},{"line_number":77,"context_line":"(others handled by local apps), we can do this in a dedicated app (preferable?)"},{"line_number":78,"context_line":"or in the controller code."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"References"},{"line_number":81,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1f1a1f67_299f4b04","line":78,"in_reply_to":"1f1a1f67_c5831d04","updated":"2017-07-13 10:22:10.000000000","message":"Or by the tunneling app, or by the provider network app","commit_id":"9fb7ed446cd77ee9278a2de5780a3265e592e2a2"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"e742792b9908d917b896b830a18fcff6e3139d67","unresolved":false,"context_lines":[{"line_number":33,"context_line":"We will split the ports into 3 categories:"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"* Local - traffic to those ports is handled by local node exclusively (except"},{"line_number":36,"context_line":"  for optimizations like ARP responding). When a remote node has a packet for"},{"line_number":37,"context_line":"  a local port on current node, it will forward it to the current node."},{"line_number":38,"context_line":"* Remote - those ports are local to another node. When a local node has a"},{"line_number":39,"context_line":"  packet bound for a remote port, it will forward it to the relevant remote"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1f1a1f67_a34ff4bb","line":36,"range":{"start_line":36,"start_character":50,"end_line":36,"end_character":55},"updated":"2017-07-13 13:04:14.000000000","message":"some?","commit_id":"6bce2ff1cdf37378a857765d72b6d6f887644c4b"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3a9086b24ee78d550ed8b6f53a7bf1e4304a625b","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  can handle their traffic locally."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"The classification will be done by apps, each responsible for notifying changes"},{"line_number":45,"context_line":"of to locality of a specific port. The controller code will only emit created/"},{"line_number":46,"context_line":"updated/deleted events, as it does for all other models."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* Classification app"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1f1a1f67_834518b6","line":45,"range":{"start_line":45,"start_character":3,"end_line":45,"end_character":5},"updated":"2017-07-13 13:01:20.000000000","message":"type: the ?","commit_id":"6bce2ff1cdf37378a857765d72b6d6f887644c4b"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"43752ce19296727542411eb048e98d05878f82be","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  can handle their traffic locally."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"The classification will be done by apps, each responsible for notifying changes"},{"line_number":45,"context_line":"of to locality of a specific port. The controller code will only emit created/"},{"line_number":46,"context_line":"updated/deleted events, as it does for all other models."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* Classification app"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1f1a1f67_c3d790bf","line":45,"range":{"start_line":45,"start_character":3,"end_line":45,"end_character":5},"in_reply_to":"1f1a1f67_834518b6","updated":"2017-07-13 13:03:46.000000000","message":"Yes, will fix","commit_id":"6bce2ff1cdf37378a857765d72b6d6f887644c4b"}],"doc/source/specs/virtual_lports.rst":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"2e07ac20baa637b72b33620e699c04c1970b963f","unresolved":false,"context_lines":[{"line_number":22,"context_line":"interfaces, and FIP ports. This forces any consumer of those ports to fetch"},{"line_number":23,"context_line":"them without the help of built-in syncing and change notification facilites."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Proposed Change"},{"line_number":26,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"I propose to introduce a concept of virtual ports, ports not bound to any tap"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f1d235d_2ed5b8e5","line":25,"updated":"2017-07-04 14:40:34.000000000","message":"Following our discussion, we should review this behaviour in general. Where do we really need to differentiate local/remote/virtual ports? Can\u0027t this be resolved in application logical?","commit_id":"f41cfe94119cf469b671e42e7134fcd581bf2628"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"2e07ac20baa637b72b33620e699c04c1970b963f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"I propose to introduce a concept of virtual ports, ports not bound to any tap"},{"line_number":29,"context_line":"or chassis. Each app will treat (or ignore) the virtual ports as it sees fit."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"The classification will be as follows:"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* All ports bound to a local chassis are local"},{"line_number":34,"context_line":"* All ports bound to any other chassis are remote"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f1d235d_4ec35439","line":31,"updated":"2017-07-04 14:40:34.000000000","message":"Following our discussion - should we take the ports \u0027owner\u0027 into account as well?","commit_id":"f41cfe94119cf469b671e42e7134fcd581bf2628"}]}
