)]}'
{"doc/source/specs/lbaas2.rst":[{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"3a9fa88547db2c0b32e143baec8a918e052ba371","unresolved":false,"context_lines":[{"line_number":93,"context_line":"The relation between Load Balancers and Listeners is many-to-many. This"},{"line_number":94,"context_line":"means that a Load Balancer (IP) can be assigned several endpoints"},{"line_number":95,"context_line":"(e.g. TCP, UDP, multiple ports). This also means listeners (endpoints)"},{"line_number":96,"context_line":"can be reused."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Listeners also have a TLS field embedding a TLS object. This object"},{"line_number":99,"context_line":"is used to allow Listeners (and Load Balancers) to terminate TLS"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_508526ce","line":96,"updated":"2017-08-14 15:41:50.000000000","message":"Don\u0027t sure that i got it - \nEach listener has it\u0027s pool - if listener can be reuse it\u0027s mean that traffic that reached 2 different load-balancers can reach to the same pool?  \n(as the the pool reused..)","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"a85eb6389cf7557e09f7f6a926906de9c82139cd","unresolved":false,"context_lines":[{"line_number":93,"context_line":"The relation between Load Balancers and Listeners is many-to-many. This"},{"line_number":94,"context_line":"means that a Load Balancer (IP) can be assigned several endpoints"},{"line_number":95,"context_line":"(e.g. TCP, UDP, multiple ports). This also means listeners (endpoints)"},{"line_number":96,"context_line":"can be reused."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Listeners also have a TLS field embedding a TLS object. This object"},{"line_number":99,"context_line":"is used to allow Listeners (and Load Balancers) to terminate TLS"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_ee48b62d","line":96,"in_reply_to":"9f436f4f_508526ce","updated":"2017-08-15 12:30:24.000000000","message":"This is wrong. The relationship isn\u0027t many-to-many. I misunderstood the API. I\u0027ll revise.","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"17ce5e49e48d67d45f97468b0f09cac03ebdc271","unresolved":false,"context_lines":[{"line_number":94,"context_line":"means that a Load Balancer (IP) can be assigned several endpoints"},{"line_number":95,"context_line":"(e.g. TCP, UDP, multiple ports). This also means listeners (endpoints)"},{"line_number":96,"context_line":"can be reused."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Listeners also have a TLS field embedding a TLS object. This object"},{"line_number":99,"context_line":"is used to allow Listeners (and Load Balancers) to terminate TLS"},{"line_number":100,"context_line":"communication."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_841a38c9","line":97,"updated":"2017-08-14 13:11:58.000000000","message":"some link to the LB model entities can be helpful","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"a85eb6389cf7557e09f7f6a926906de9c82139cd","unresolved":false,"context_lines":[{"line_number":94,"context_line":"means that a Load Balancer (IP) can be assigned several endpoints"},{"line_number":95,"context_line":"(e.g. TCP, UDP, multiple ports). This also means listeners (endpoints)"},{"line_number":96,"context_line":"can be reused."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Listeners also have a TLS field embedding a TLS object. This object"},{"line_number":99,"context_line":"is used to allow Listeners (and Load Balancers) to terminate TLS"},{"line_number":100,"context_line":"communication."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_3a870565","line":97,"in_reply_to":"9f436f4f_841a38c9","updated":"2017-08-15 12:30:24.000000000","message":"Done","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"17ce5e49e48d67d45f97468b0f09cac03ebdc271","unresolved":false,"context_lines":[{"line_number":110,"context_line":"+-----------+--------------------------+-------------------------------------+"},{"line_number":111,"context_line":"| Name      | Type                     | Description                         |"},{"line_number":112,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":113,"context_line":"| id        | String                   |                                     |"},{"line_number":114,"context_line":"+-----------+--------------------------+-------------------------------------+"},{"line_number":115,"context_line":"| topic     | String                   |                                     |"},{"line_number":116,"context_line":"+-----------+--------------------------+-------------------------------------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_24294ce5","line":113,"range":{"start_line":113,"start_character":43,"end_line":113,"end_character":70},"updated":"2017-08-14 13:11:58.000000000","message":"please add description to each field","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"a85eb6389cf7557e09f7f6a926906de9c82139cd","unresolved":false,"context_lines":[{"line_number":110,"context_line":"+-----------+--------------------------+-------------------------------------+"},{"line_number":111,"context_line":"| Name      | Type                     | Description                         |"},{"line_number":112,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":113,"context_line":"| id        | String                   |                                     |"},{"line_number":114,"context_line":"+-----------+--------------------------+-------------------------------------+"},{"line_number":115,"context_line":"| topic     | String                   |                                     |"},{"line_number":116,"context_line":"+-----------+--------------------------+-------------------------------------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_1a8a0169","line":113,"range":{"start_line":113,"start_character":43,"end_line":113,"end_character":70},"in_reply_to":"9f436f4f_24294ce5","updated":"2017-08-15 12:30:24.000000000","message":"Done","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"17ce5e49e48d67d45f97468b0f09cac03ebdc271","unresolved":false,"context_lines":[{"line_number":136,"context_line":"on the packet are needed to accept the packet for load-balancing. It also"},{"line_number":137,"context_line":"states how the packet needs to be modified (e.g. port number changes)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Need to support protocls tcp, udp, icmp, null (raw?), and http (at least)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"TLS"},{"line_number":142,"context_line":"~~~"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_648074c0","line":139,"range":{"start_line":139,"start_character":16,"end_line":139,"end_character":24},"updated":"2017-08-14 13:11:58.000000000","message":"protocols","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"a85eb6389cf7557e09f7f6a926906de9c82139cd","unresolved":false,"context_lines":[{"line_number":136,"context_line":"on the packet are needed to accept the packet for load-balancing. It also"},{"line_number":137,"context_line":"states how the packet needs to be modified (e.g. port number changes)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Need to support protocls tcp, udp, icmp, null (raw?), and http (at least)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"TLS"},{"line_number":142,"context_line":"~~~"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_da7fd963","line":139,"range":{"start_line":139,"start_character":16,"end_line":139,"end_character":24},"in_reply_to":"9f436f4f_648074c0","updated":"2017-08-15 12:30:24.000000000","message":"Done","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"17ce5e49e48d67d45f97468b0f09cac03ebdc271","unresolved":false,"context_lines":[{"line_number":137,"context_line":"states how the packet needs to be modified (e.g. port number changes)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Need to support protocls tcp, udp, icmp, null (raw?), and http (at least)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"TLS"},{"line_number":142,"context_line":"~~~"},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_847fd8de","line":140,"updated":"2017-08-14 13:11:58.000000000","message":"please add table as with other objects","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"a85eb6389cf7557e09f7f6a926906de9c82139cd","unresolved":false,"context_lines":[{"line_number":137,"context_line":"states how the packet needs to be modified (e.g. port number changes)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Need to support protocls tcp, udp, icmp, null (raw?), and http (at least)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"TLS"},{"line_number":142,"context_line":"~~~"},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_ba9ad5b5","line":140,"in_reply_to":"9f436f4f_847fd8de","updated":"2017-08-15 12:30:24.000000000","message":"Done","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"17ce5e49e48d67d45f97468b0f09cac03ebdc271","unresolved":false,"context_lines":[{"line_number":247,"context_line":"| timeout      | Integer                        |                       |"},{"line_number":248,"context_line":"+--------------+--------------------------------+-----------------------+"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"How to implement? Assume HAProxy, how to connect to vswitch with proper"},{"line_number":251,"context_line":"information? (pkt_mark, which should be enough to contain enough info, or encode"},{"line_number":252,"context_line":"on IP, like in metadata)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"Health Monitor Method"},{"line_number":255,"context_line":"~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_84cd9832","line":252,"range":{"start_line":250,"start_character":0,"end_line":252,"end_character":24},"updated":"2017-08-14 13:11:58.000000000","message":"why is this in the model description section?","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"a85eb6389cf7557e09f7f6a926906de9c82139cd","unresolved":false,"context_lines":[{"line_number":247,"context_line":"| timeout      | Integer                        |                       |"},{"line_number":248,"context_line":"+--------------+--------------------------------+-----------------------+"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"How to implement? Assume HAProxy, how to connect to vswitch with proper"},{"line_number":251,"context_line":"information? (pkt_mark, which should be enough to contain enough info, or encode"},{"line_number":252,"context_line":"on IP, like in metadata)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"Health Monitor Method"},{"line_number":255,"context_line":"~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_8e612aac","line":252,"range":{"start_line":250,"start_character":0,"end_line":252,"end_character":24},"in_reply_to":"9f436f4f_84cd9832","updated":"2017-08-15 12:30:24.000000000","message":"Should have been removed.","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"3a9fa88547db2c0b32e143baec8a918e052ba371","unresolved":false,"context_lines":[{"line_number":255,"context_line":"~~~~~~~~~~~~~~~~~~~~~"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"This object states how the health monitor checking is done: e.g. ICMP echo,"},{"line_number":258,"context_line":"or an HTTP request."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"To be subclassed by: HTTP, ICMP"},{"line_number":261,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_d0a59648","line":258,"updated":"2017-08-14 15:41:50.000000000","message":"How http-url will be determine ? \n(we assume that is / - or it\u0027s something that configurable by the user?)","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"a85eb6389cf7557e09f7f6a926906de9c82139cd","unresolved":false,"context_lines":[{"line_number":255,"context_line":"~~~~~~~~~~~~~~~~~~~~~"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"This object states how the health monitor checking is done: e.g. ICMP echo,"},{"line_number":258,"context_line":"or an HTTP request."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"To be subclassed by: HTTP, ICMP"},{"line_number":261,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_4e57c2cb","line":258,"in_reply_to":"9f436f4f_d0a59648","updated":"2017-08-15 12:30:24.000000000","message":"This is given by the API. API default is \u0027/\u0027. In DF API there is no default - it must be specified explicitly. But when using Neutron API, we will inherit that default.","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"3a9fa88547db2c0b32e143baec8a918e052ba371","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"In some cases, OpenFlow is not powerful enough to handle the Endpoint, e.g."},{"line_number":280,"context_line":"an endpoint for a specific HTTP request URL. In this case, the packet will"},{"line_number":281,"context_line":"be uploaded to the controller."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"When a listener is added, a new flow is created to match the endpoint,"},{"line_number":284,"context_line":"and divert it to the correct Group or Bundle (see below)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_844eb36c","line":281,"updated":"2017-08-14 15:41:50.000000000","message":"Isn\u0027t it\u0027s can be Little bit heavy for the controller?(it\u0027s a web-scale traffic..)","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"a85eb6389cf7557e09f7f6a926906de9c82139cd","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"In some cases, OpenFlow is not powerful enough to handle the Endpoint, e.g."},{"line_number":280,"context_line":"an endpoint for a specific HTTP request URL. In this case, the packet will"},{"line_number":281,"context_line":"be uploaded to the controller."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"When a listener is added, a new flow is created to match the endpoint,"},{"line_number":284,"context_line":"and divert it to the correct Group or Bundle (see below)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_9ada7175","line":281,"in_reply_to":"9f436f4f_844eb36c","updated":"2017-08-15 12:30:24.000000000","message":"Done","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"17ce5e49e48d67d45f97468b0f09cac03ebdc271","unresolved":false,"context_lines":[{"line_number":281,"context_line":"be uploaded to the controller."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"When a listener is added, a new flow is created to match the endpoint,"},{"line_number":284,"context_line":"and divert it to the correct Group or Bundle (see below)."},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"The listener\u0027s flow will be added after the security groups table. This"},{"line_number":287,"context_line":"is to allow security group policies to take effect on Load Balancer"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_c4f72059","line":284,"range":{"start_line":284,"start_character":46,"end_line":284,"end_character":55},"updated":"2017-08-14 13:11:58.000000000","message":"Please make an explicit pointer","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"a85eb6389cf7557e09f7f6a926906de9c82139cd","unresolved":false,"context_lines":[{"line_number":281,"context_line":"be uploaded to the controller."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"When a listener is added, a new flow is created to match the endpoint,"},{"line_number":284,"context_line":"and divert it to the correct Group or Bundle (see below)."},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"The listener\u0027s flow will be added after the security groups table. This"},{"line_number":287,"context_line":"is to allow security group policies to take effect on Load Balancer"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_bace5560","line":284,"range":{"start_line":284,"start_character":46,"end_line":284,"end_character":55},"in_reply_to":"9f436f4f_c4f72059","updated":"2017-08-15 12:30:24.000000000","message":"Done","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"17ce5e49e48d67d45f97468b0f09cac03ebdc271","unresolved":false,"context_lines":[{"line_number":290,"context_line":"When a pool is added, a new Group or Bundle is created (see below)."},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"When a pool member is added, it is added to the relevant Group or Bundle"},{"line_number":293,"context_line":"(see below)."},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"Session persistence will be handled by `learn` flows. When a new session is"},{"line_number":296,"context_line":"detected, a new flow will be installed. This allows the `session_persistence`"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_a4bf7c5f","line":293,"range":{"start_line":293,"start_character":5,"end_line":293,"end_character":10},"updated":"2017-08-14 13:11:58.000000000","message":"ditto","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"a85eb6389cf7557e09f7f6a926906de9c82139cd","unresolved":false,"context_lines":[{"line_number":290,"context_line":"When a pool is added, a new Group or Bundle is created (see below)."},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"When a pool member is added, it is added to the relevant Group or Bundle"},{"line_number":293,"context_line":"(see below)."},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"Session persistence will be handled by `learn` flows. When a new session is"},{"line_number":296,"context_line":"detected, a new flow will be installed. This allows the `session_persistence`"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_9ac9515a","line":293,"range":{"start_line":293,"start_character":5,"end_line":293,"end_character":10},"in_reply_to":"9f436f4f_a4bf7c5f","updated":"2017-08-15 12:30:24.000000000","message":"Done","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"3a9fa88547db2c0b32e143baec8a918e052ba371","unresolved":false,"context_lines":[{"line_number":292,"context_line":"When a pool member is added, it is added to the relevant Group or Bundle"},{"line_number":293,"context_line":"(see below)."},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"Session persistence will be handled by `learn` flows. When a new session is"},{"line_number":296,"context_line":"detected, a new flow will be installed. This allows the `session_persistence`"},{"line_number":297,"context_line":"method `SOURCE_IP` to be used. Other methods will require sending the packet"},{"line_number":298,"context_line":"to the controller, or to a service connected via a port."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_a4d417ea","line":295,"updated":"2017-08-14 15:41:50.000000000","message":"maybe it\u0027s can achieved by using selection-algorithm of 5-tuple hash (I think dima count on that in the SFC implementation .. )","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"a85eb6389cf7557e09f7f6a926906de9c82139cd","unresolved":false,"context_lines":[{"line_number":292,"context_line":"When a pool member is added, it is added to the relevant Group or Bundle"},{"line_number":293,"context_line":"(see below)."},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"Session persistence will be handled by `learn` flows. When a new session is"},{"line_number":296,"context_line":"detected, a new flow will be installed. This allows the `session_persistence`"},{"line_number":297,"context_line":"method `SOURCE_IP` to be used. Other methods will require sending the packet"},{"line_number":298,"context_line":"to the controller, or to a service connected via a port."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_daeb5975","line":295,"in_reply_to":"9f436f4f_84c8f321","updated":"2017-08-15 12:30:24.000000000","message":"Expanded.","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"eec93a0cc847efeeece4e5c0193b3376847e25cb","unresolved":false,"context_lines":[{"line_number":292,"context_line":"When a pool member is added, it is added to the relevant Group or Bundle"},{"line_number":293,"context_line":"(see below)."},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"Session persistence will be handled by `learn` flows. When a new session is"},{"line_number":296,"context_line":"detected, a new flow will be installed. This allows the `session_persistence`"},{"line_number":297,"context_line":"method `SOURCE_IP` to be used. Other methods will require sending the packet"},{"line_number":298,"context_line":"to the controller, or to a service connected via a port."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_84c8f321","line":295,"in_reply_to":"9f436f4f_a4d417ea","updated":"2017-08-14 15:43:40.000000000","message":"(selection-alogrithem between the buckets in the group .. )","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"17ce5e49e48d67d45f97468b0f09cac03ebdc271","unresolved":false,"context_lines":[{"line_number":306,"context_line":""},{"line_number":307,"context_line":"The health monitor will be connected to the OVS bridge with a single"},{"line_number":308,"context_line":"interface.  It will send relevant packets to ports by encoding their"},{"line_number":309,"context_line":"unique ID onto the destination IP address (128.0.0.0 | \u003cunique key\u003e). (See"},{"line_number":310,"context_line":"below)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"Option 1: Groups"},{"line_number":313,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_c48cc0d8","line":310,"range":{"start_line":309,"start_character":72,"end_line":310,"end_character":6},"updated":"2017-08-14 13:11:58.000000000","message":"ditto","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"a85eb6389cf7557e09f7f6a926906de9c82139cd","unresolved":false,"context_lines":[{"line_number":306,"context_line":""},{"line_number":307,"context_line":"The health monitor will be connected to the OVS bridge with a single"},{"line_number":308,"context_line":"interface.  It will send relevant packets to ports by encoding their"},{"line_number":309,"context_line":"unique ID onto the destination IP address (128.0.0.0 | \u003cunique key\u003e). (See"},{"line_number":310,"context_line":"below)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"Option 1: Groups"},{"line_number":313,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f436f4f_ba065551","line":310,"range":{"start_line":309,"start_character":72,"end_line":310,"end_character":6},"in_reply_to":"9f436f4f_c48cc0d8","updated":"2017-08-15 12:30:24.000000000","message":"Done","commit_id":"9e4ec97bcf3c40f37799f8198e46880c2aa4aed5"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"82010f638492e14609380191fa96b60268c29f2b","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad RFE:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://bugs.launchpad.net/dragonflow/+bug/example-id"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implement support for Load Balancer as a Service for both L4 (LBaaS v2) and"},{"line_number":16,"context_line":"L7 (Octavia) load balancing."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f436f4f_c464174c","line":13,"range":{"start_line":13,"start_character":37,"end_line":13,"end_character":53},"updated":"2017-11-19 11:16:21.000000000","message":"please update","commit_id":"dd31cee37eb21d255d2e703f7214ebd76375d560"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"82010f638492e14609380191fa96b60268c29f2b","unresolved":false,"context_lines":[{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Load balancing enables OpenStack tenants to load-balance their traffic between"},{"line_number":22,"context_line":"ports."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The Dragonflow implementation should be fully distributed. Therefore, load"},{"line_number":25,"context_line":"balancing decisions are made on the source compute node."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f436f4f_845e0f74","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":6},"updated":"2017-11-19 11:16:21.000000000","message":"instances, ports is too low abstraction IMHO.","commit_id":"dd31cee37eb21d255d2e703f7214ebd76375d560"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"82010f638492e14609380191fa96b60268c29f2b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"ports."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The Dragonflow implementation should be fully distributed. Therefore, load"},{"line_number":25,"context_line":"balancing decisions are made on the source compute node."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"The implementation should also support interoperability with external"},{"line_number":28,"context_line":"load-balancer mechanisms, e.g. Octavia."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f436f4f_c4c9b725","line":25,"range":{"start_line":25,"start_character":19,"end_line":25,"end_character":23},"updated":"2017-11-19 11:16:21.000000000","message":"should be (we are still in the problem definition section)","commit_id":"dd31cee37eb21d255d2e703f7214ebd76375d560"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"82010f638492e14609380191fa96b60268c29f2b","unresolved":false,"context_lines":[{"line_number":24,"context_line":"The Dragonflow implementation should be fully distributed. Therefore, load"},{"line_number":25,"context_line":"balancing decisions are made on the source compute node."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"The implementation should also support interoperability with external"},{"line_number":28,"context_line":"load-balancer mechanisms, e.g. Octavia."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Terminology"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f436f4f_a4d0f3ca","line":28,"range":{"start_line":27,"start_character":31,"end_line":28,"end_character":24},"updated":"2017-11-19 11:16:21.000000000","message":"please elaborate what does it mean","commit_id":"dd31cee37eb21d255d2e703f7214ebd76375d560"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"82010f638492e14609380191fa96b60268c29f2b","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"::"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"   Compute Node"},{"line_number":44,"context_line":"  +--------------------------------------------------+"},{"line_number":45,"context_line":"  |             Load-Balancer                        |"},{"line_number":46,"context_line":"  |                   +                              |"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f436f4f_c4f2d76f","line":43,"range":{"start_line":43,"start_character":2,"end_line":43,"end_character":15},"updated":"2017-11-19 11:16:21.000000000","message":"Node 1","commit_id":"dd31cee37eb21d255d2e703f7214ebd76375d560"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"82010f638492e14609380191fa96b60268c29f2b","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                      |"},{"line_number":56,"context_line":"                      |"},{"line_number":57,"context_line":"                      |Tunnelled Network"},{"line_number":58,"context_line":"   Compute Node       |"},{"line_number":59,"context_line":"  +--------------------------------------------------+"},{"line_number":60,"context_line":"  |                   |                              |"},{"line_number":61,"context_line":"  |                   |        +--------+  +-------+ |"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f436f4f_84eccf8f","line":58,"range":{"start_line":58,"start_character":3,"end_line":58,"end_character":15},"updated":"2017-11-19 11:16:21.000000000","message":"Node 2","commit_id":"dd31cee37eb21d255d2e703f7214ebd76375d560"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"82010f638492e14609380191fa96b60268c29f2b","unresolved":false,"context_lines":[{"line_number":68,"context_line":"  +--------------------------------------------------+"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Client is a logical port. It can be a VM, vlan trunk, or any other device"},{"line_number":71,"context_line":"that has a Neutron port."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Member 1, Member 2, and Member 3 are all pool members of the same pool."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f436f4f_e4195b88","line":71,"range":{"start_line":71,"start_character":22,"end_line":71,"end_character":24},"updated":"2017-11-19 11:16:21.000000000","message":"Worth to show the VIP too and explain its representation in the model","commit_id":"dd31cee37eb21d255d2e703f7214ebd76375d560"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"82010f638492e14609380191fa96b60268c29f2b","unresolved":false,"context_lines":[{"line_number":80,"context_line":"ip_dst, and the network ID (metadata register)."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"A Health-Check service will check the health of each member of every pool."},{"line_number":83,"context_line":"There will be a single Health-Check instance (at most O(1)) per compute"},{"line_number":84,"context_line":"node.  The Health-Check service will encode the destination member\u0027s"},{"line_number":85,"context_line":"identifier (the port\u0027s unique key) into the IP destination address"},{"line_number":86,"context_line":"(much like the metadata service)."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f436f4f_9f089628","line":83,"range":{"start_line":83,"start_character":60,"end_line":83,"end_character":71},"updated":"2017-11-19 11:16:21.000000000","message":"So Health Check service is 1 to many with regards to LB instances?","commit_id":"dd31cee37eb21d255d2e703f7214ebd76375d560"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad RFE:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://bugs.launchpad.net/dragonflow/+bug/example-id"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implement support for Load Balancer as a Service for both L4 (LBaaS v2) and"},{"line_number":16,"context_line":"L7 (Octavia) load balancing."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_66f0f2ca","line":13,"range":{"start_line":13,"start_character":38,"end_line":13,"end_character":53},"updated":"2017-08-23 11:10:12.000000000","message":"please update","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad RFE:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://bugs.launchpad.net/dragonflow/+bug/example-id"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implement support for Load Balancer as a Service for both L4 (LBaaS v2) and"},{"line_number":16,"context_line":"L7 (Octavia) load balancing."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_db96fc3e","line":13,"range":{"start_line":13,"start_character":38,"end_line":13,"end_character":53},"in_reply_to":"7f287b81_66f0f2ca","updated":"2017-09-19 06:20:37.000000000","message":"Done","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"3f88d3cd078f4665461756170cb377586a9641d7","unresolved":false,"context_lines":[{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Load balancing enables OpenStack tenants to load-balance their traffic between"},{"line_number":22,"context_line":"ports."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The Dragonflow implementation should be fully distributed. Therefore, load"},{"line_number":25,"context_line":"balancing decisions are made on the source compute node."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_3fca9e6c","line":22,"updated":"2017-08-25 18:05:07.000000000","message":"Can you provide some information about how Dragonflow environments do load-balancing today - e.g. using another driver? Does the default/HA-proxy-based LBaaS work? Does Octavia work?\n\nIs this spec\u0027s goal therefore to provide a DF-based distributed L4 load-balancer without breaking Octavia compatibility? Or is it to also provide a L7 load-balancer in the Octavia framework?","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Load balancing enables OpenStack tenants to load-balance their traffic between"},{"line_number":22,"context_line":"ports."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The Dragonflow implementation should be fully distributed. Therefore, load"},{"line_number":25,"context_line":"balancing decisions are made on the source compute node."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_5e6b1a84","line":22,"in_reply_to":"7f287b81_3fca9e6c","updated":"2017-09-19 06:20:37.000000000","message":"No. It is out-of-scope. Mostly it works because of the logical port abstraction.","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":22,"context_line":"ports."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The Dragonflow implementation should be fully distributed. Therefore, load"},{"line_number":25,"context_line":"balancing decisions are made on the source compute node."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"The implementation should also support interoperability with external"},{"line_number":28,"context_line":"load-balancer mechanisms, e.g. Octavia."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_26bc2adb","line":25,"range":{"start_line":25,"start_character":20,"end_line":25,"end_character":23},"updated":"2017-08-23 11:10:12.000000000","message":"should be (we are still in the problem definition section)","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":22,"context_line":"ports."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The Dragonflow implementation should be fully distributed. Therefore, load"},{"line_number":25,"context_line":"balancing decisions are made on the source compute node."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"The implementation should also support interoperability with external"},{"line_number":28,"context_line":"load-balancer mechanisms, e.g. Octavia."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_bb9b3064","line":25,"range":{"start_line":25,"start_character":20,"end_line":25,"end_character":23},"in_reply_to":"7f287b81_26bc2adb","updated":"2017-09-19 06:20:37.000000000","message":"Done","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":24,"context_line":"The Dragonflow implementation should be fully distributed. Therefore, load"},{"line_number":25,"context_line":"balancing decisions are made on the source compute node."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"The implementation should also support interoperability with external"},{"line_number":28,"context_line":"load-balancer mechanisms, e.g. Octavia."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Terminology"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_a6cffa7d","line":28,"range":{"start_line":27,"start_character":31,"end_line":28,"end_character":24},"updated":"2017-08-23 11:10:12.000000000","message":"please elaborate what does it mean","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":24,"context_line":"The Dragonflow implementation should be fully distributed. Therefore, load"},{"line_number":25,"context_line":"balancing decisions are made on the source compute node."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"The implementation should also support interoperability with external"},{"line_number":28,"context_line":"load-balancer mechanisms, e.g. Octavia."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Terminology"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_3e684e85","line":28,"range":{"start_line":27,"start_character":31,"end_line":28,"end_character":24},"in_reply_to":"7f287b81_9fae3296","updated":"2017-09-19 06:20:37.000000000","message":"Done","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"3f88d3cd078f4665461756170cb377586a9641d7","unresolved":false,"context_lines":[{"line_number":24,"context_line":"The Dragonflow implementation should be fully distributed. Therefore, load"},{"line_number":25,"context_line":"balancing decisions are made on the source compute node."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"The implementation should also support interoperability with external"},{"line_number":28,"context_line":"load-balancer mechanisms, e.g. Octavia."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Terminology"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_9fae3296","line":28,"range":{"start_line":27,"start_character":31,"end_line":28,"end_character":24},"in_reply_to":"7f287b81_a6cffa7d","updated":"2017-08-25 18:05:07.000000000","message":"Does DF interoperate with external LB mechanisms today? Is your point that we will add interoperability or just avoid breaking it?","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"::"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"   Compute Node"},{"line_number":44,"context_line":"  +--------------------------------------------------+"},{"line_number":45,"context_line":"  |             Load-Balancer                        |"},{"line_number":46,"context_line":"  |                   +                              |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_46c6166a","line":43,"range":{"start_line":43,"start_character":11,"end_line":43,"end_character":15},"updated":"2017-08-23 11:10:12.000000000","message":"Node 1","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"::"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"   Compute Node"},{"line_number":44,"context_line":"  +--------------------------------------------------+"},{"line_number":45,"context_line":"  |             Load-Balancer                        |"},{"line_number":46,"context_line":"  |                   +                              |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_9ba4f4a7","line":43,"range":{"start_line":43,"start_character":11,"end_line":43,"end_character":15},"in_reply_to":"7f287b81_46c6166a","updated":"2017-09-19 06:20:37.000000000","message":"Done","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                      |"},{"line_number":56,"context_line":"                      |"},{"line_number":57,"context_line":"                      |Tunnelled Network"},{"line_number":58,"context_line":"   Compute Node       |"},{"line_number":59,"context_line":"  +--------------------------------------------------+"},{"line_number":60,"context_line":"  |                   |                              |"},{"line_number":61,"context_line":"  |                   |        +--------+  +-------+ |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_06a6cec2","line":58,"range":{"start_line":58,"start_character":11,"end_line":58,"end_character":15},"updated":"2017-08-23 11:10:12.000000000","message":"Node 2","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                      |"},{"line_number":56,"context_line":"                      |"},{"line_number":57,"context_line":"                      |Tunnelled Network"},{"line_number":58,"context_line":"   Compute Node       |"},{"line_number":59,"context_line":"  +--------------------------------------------------+"},{"line_number":60,"context_line":"  |                   |                              |"},{"line_number":61,"context_line":"  |                   |        +--------+  +-------+ |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_7ba14894","line":58,"range":{"start_line":58,"start_character":11,"end_line":58,"end_character":15},"in_reply_to":"7f287b81_06a6cec2","updated":"2017-09-19 06:20:37.000000000","message":"Done","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":80,"context_line":"ip_dst, and the network ID (metadata register)."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"A Health-Check service will check the health of each member of every pool."},{"line_number":83,"context_line":"There will be a single Health-Check instance (at most O(1)) per compute"},{"line_number":84,"context_line":"node.  The Health-Check service will encode the destination member\u0027s"},{"line_number":85,"context_line":"identifier (the port\u0027s unique key) into the IP destination address"},{"line_number":86,"context_line":"(much like the metadata service)."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_e69e2206","line":83,"range":{"start_line":83,"start_character":60,"end_line":83,"end_character":71},"updated":"2017-08-23 11:10:12.000000000","message":"So Health Check service is 1 to many with regards to LB instances?","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":80,"context_line":"ip_dst, and the network ID (metadata register)."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"A Health-Check service will check the health of each member of every pool."},{"line_number":83,"context_line":"There will be a single Health-Check instance (at most O(1)) per compute"},{"line_number":84,"context_line":"node.  The Health-Check service will encode the destination member\u0027s"},{"line_number":85,"context_line":"identifier (the port\u0027s unique key) into the IP destination address"},{"line_number":86,"context_line":"(much like the metadata service)."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_dbe4bce2","line":83,"range":{"start_line":83,"start_character":60,"end_line":83,"end_character":71},"in_reply_to":"7f287b81_e69e2206","updated":"2017-09-19 06:20:37.000000000","message":"1-to-many for all pool members, regardless of which LB instance the pool member belongs.","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":86,"context_line":"(much like the metadata service)."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The Load Balancer object listens on its IP, and listeners. Listener"},{"line_number":89,"context_line":"objects listen on a specific protocol and features. Each Listener has"},{"line_number":90,"context_line":"an Endpoint which decides on which protocol to listen, and on some"},{"line_number":91,"context_line":"protocol-specific filters."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Listeners also have a TLS field embedding a TLS object. This object"},{"line_number":94,"context_line":"is used to allow Listeners (and Load Balancers) to terminate TLS"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_06680ef3","line":91,"range":{"start_line":89,"start_character":52,"end_line":91,"end_character":26},"updated":"2017-08-23 11:10:12.000000000","message":"Can you please elaborate?","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":86,"context_line":"(much like the metadata service)."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The Load Balancer object listens on its IP, and listeners. Listener"},{"line_number":89,"context_line":"objects listen on a specific protocol and features. Each Listener has"},{"line_number":90,"context_line":"an Endpoint which decides on which protocol to listen, and on some"},{"line_number":91,"context_line":"protocol-specific filters."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Listeners also have a TLS field embedding a TLS object. This object"},{"line_number":94,"context_line":"is used to allow Listeners (and Load Balancers) to terminate TLS"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_5bd8cc1c","line":91,"range":{"start_line":89,"start_character":52,"end_line":91,"end_character":26},"in_reply_to":"7f287b81_06680ef3","updated":"2017-09-19 06:20:37.000000000","message":"Added an example.","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The Neutron API and objects can be found here [3]_."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"TODO l7 policies"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Models"},{"line_number":102,"context_line":"------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_6680f28c","line":99,"range":{"start_line":99,"start_character":0,"end_line":99,"end_character":16},"updated":"2017-08-23 11:10:12.000000000","message":"Should this go into the models?","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The Neutron API and objects can be found here [3]_."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"TODO l7 policies"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Models"},{"line_number":102,"context_line":"------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_7bcf0856","line":99,"range":{"start_line":99,"start_character":0,"end_line":99,"end_character":16},"in_reply_to":"7f287b81_6680f28c","updated":"2017-09-19 06:20:37.000000000","message":"Removed.","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":117,"context_line":"+-----------+--------------------------+-------------------------------------+"},{"line_number":118,"context_line":"| listeners | ReferenceList\u003cListener\u003e  | On what protocols/ports to listen?  |"},{"line_number":119,"context_line":"+-----------+--------------------------+-------------------------------------+"},{"line_number":120,"context_line":"| network   | Reference\u003cLogicalNetwork\u003e| On what network us the VIP?         |"},{"line_number":121,"context_line":"+-----------+--------------------------+-------------------------------------+"},{"line_number":122,"context_line":"| subnet    | Reference\u003cSubnet\u003e        | On what subnet is the VIP?          |"},{"line_number":123,"context_line":"+-----------+--------------------------+-------------------------------------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_611c5c6a","line":120,"range":{"start_line":120,"start_character":57,"end_line":120,"end_character":59},"updated":"2017-08-23 11:10:12.000000000","message":"is","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":117,"context_line":"+-----------+--------------------------+-------------------------------------+"},{"line_number":118,"context_line":"| listeners | ReferenceList\u003cListener\u003e  | On what protocols/ports to listen?  |"},{"line_number":119,"context_line":"+-----------+--------------------------+-------------------------------------+"},{"line_number":120,"context_line":"| network   | Reference\u003cLogicalNetwork\u003e| On what network us the VIP?         |"},{"line_number":121,"context_line":"+-----------+--------------------------+-------------------------------------+"},{"line_number":122,"context_line":"| subnet    | Reference\u003cSubnet\u003e        | On what subnet is the VIP?          |"},{"line_number":123,"context_line":"+-----------+--------------------------+-------------------------------------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_3bd500e6","line":120,"range":{"start_line":120,"start_character":57,"end_line":120,"end_character":59},"in_reply_to":"7f287b81_611c5c6a","updated":"2017-09-19 06:20:37.000000000","message":"Done","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Endpoint"},{"line_number":130,"context_line":"~~~~~~~~"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"This object represents an endpont location. This states to what conditions"},{"line_number":133,"context_line":"on the packet are needed to accept the packet for load-balancing. It also"},{"line_number":134,"context_line":"states how the packet needs to be modified (e.g. port number changes)"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_413280f3","line":132,"range":{"start_line":132,"start_character":56,"end_line":132,"end_character":58},"updated":"2017-08-23 11:10:12.000000000","message":"no need","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Endpoint"},{"line_number":130,"context_line":"~~~~~~~~"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"This object represents an endpont location. This states to what conditions"},{"line_number":133,"context_line":"on the packet are needed to accept the packet for load-balancing. It also"},{"line_number":134,"context_line":"states how the packet needs to be modified (e.g. port number changes)"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_1b080490","line":132,"range":{"start_line":132,"start_character":56,"end_line":132,"end_character":58},"in_reply_to":"7f287b81_413280f3","updated":"2017-09-19 06:20:37.000000000","message":"Done","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"3f88d3cd078f4665461756170cb377586a9641d7","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"The Endpoint object should support both L4 and L7 match and action policies."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Need to support protcols tcp, udp, icmp, null (raw?), and http (at least)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"TCP or UDP Endpoint:"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_42c0ed7b","line":138,"updated":"2017-08-25 18:05:07.000000000","message":"I\u0027m not familiar with the null/raw protocol... Is this a stateless load-balancer that forwards the packet to a back-end based without modifying any headers (I could imagine that being useful to load-balance between service functions in a port-pair-group). What is the LB algorithm (e.g. what fields are hashed) in that case?","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"The Endpoint object should support both L4 and L7 match and action policies."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Need to support protcols tcp, udp, icmp, null (raw?), and http (at least)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"TCP or UDP Endpoint:"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_fb0c18a6","line":138,"in_reply_to":"7f287b81_42c0ed7b","updated":"2017-09-19 06:20:37.000000000","message":"The endpoint states on what the packet is matched. The hashing is an orthogonal feature.\n\nThe \u0027raw\u0027 protocol allows the describe a match rule where: The data in the bytes starting at location \u0027n\u0027 will have the value x.","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"3f88d3cd078f4665461756170cb377586a9641d7","unresolved":false,"context_lines":[{"line_number":425,"context_line":""},{"line_number":426,"context_line":"Implementation"},{"line_number":427,"context_line":"--------------"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"The load balancer application only implements the \u0027Dragonflow\u0027 LBaaS"},{"line_number":430,"context_line":"provider."},{"line_number":431,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_c235fd47","line":428,"updated":"2017-08-25 18:05:07.000000000","message":"I was expecting to see a discussion of the Neutron/LBaaS driver here. Does that belong here or is there a separate Neutron-Dragonflow project?\n\nIn the discussion below, I guess Dragonflow only learns about models when the Dragonflow backend is configured as the default driver, or if the user explicitly requests it?","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":425,"context_line":""},{"line_number":426,"context_line":"Implementation"},{"line_number":427,"context_line":"--------------"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"The load balancer application only implements the \u0027Dragonflow\u0027 LBaaS"},{"line_number":430,"context_line":"provider."},{"line_number":431,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_1e6232af","line":428,"in_reply_to":"7f287b81_c235fd47","updated":"2017-09-19 06:20:37.000000000","message":"Done. Although there isn\u0027t a discussion. We will intercept (like a service plugin) the API calls from Neutron, and translate them to API calls to Dragonflow NB models.","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":433,"context_line":""},{"line_number":434,"context_line":"The load balancer application will listen to all events here."},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"When a load-balancer is created or updated, and ARP, ND, and ICMP"},{"line_number":437,"context_line":"responders (where relevant, and if configured) are created."},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"Load balancing will be done by the OVS bridge, using OpenFlow Groups or"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_41bcc004","line":436,"range":{"start_line":436,"start_character":44,"end_line":436,"end_character":47},"updated":"2017-08-23 11:10:12.000000000","message":"an","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":433,"context_line":""},{"line_number":434,"context_line":"The load balancer application will listen to all events here."},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"When a load-balancer is created or updated, and ARP, ND, and ICMP"},{"line_number":437,"context_line":"responders (where relevant, and if configured) are created."},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"Load balancing will be done by the OVS bridge, using OpenFlow Groups or"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_dbe71cac","line":436,"range":{"start_line":436,"start_character":44,"end_line":436,"end_character":47},"in_reply_to":"7f287b81_41bcc004","updated":"2017-09-19 06:20:37.000000000","message":"Done","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"3f88d3cd078f4665461756170cb377586a9641d7","unresolved":false,"context_lines":[{"line_number":442,"context_line":""},{"line_number":443,"context_line":"In some cases, OpenFlow is not powerful enough to handle the Endpoint, e.g."},{"line_number":444,"context_line":"an endpoint for a specific HTTP request URL. In this case, the packet will"},{"line_number":445,"context_line":"be uploaded to the controller, or passed to an external handler via an lport."},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"When a listener is added, a new flow is created to match the endpoint,"},{"line_number":448,"context_line":"and divert it to the correct Group or Bundle (see options_)."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_c25cdd7f","line":445,"updated":"2017-08-25 18:05:07.000000000","message":"OpenFlow can\u0027t terminate HTTP/HTTPS requests (and header re-writing). It seems to me that in all these cases, if you pass the packet to the controller, then you have to pass the entire flow through the controller (with the controller proxying between two different connections). The external handler seems much more performant (and avoids re-implementing an L7 load-balancer in Dragonflow.\n\nWill you provide more details about L7 load-balancing, or is it left to a future phase?","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":442,"context_line":""},{"line_number":443,"context_line":"In some cases, OpenFlow is not powerful enough to handle the Endpoint, e.g."},{"line_number":444,"context_line":"an endpoint for a specific HTTP request URL. In this case, the packet will"},{"line_number":445,"context_line":"be uploaded to the controller, or passed to an external handler via an lport."},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"When a listener is added, a new flow is created to match the endpoint,"},{"line_number":448,"context_line":"and divert it to the correct Group or Bundle (see options_)."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_9b051449","line":445,"in_reply_to":"7f287b81_c25cdd7f","updated":"2017-09-19 06:20:37.000000000","message":"This was planned to be left for a future phase, when such a service is designed and written","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":466,"context_line":"The first packet of such a connection will be sent to the controller, which"},{"line_number":467,"context_line":"will install a flow for the entire TCP (or UDP) session."},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"This implementation will add a health monitor service. It will be similar"},{"line_number":470,"context_line":"to existing services (e.g. bgp). It will listen for events on the health"},{"line_number":471,"context_line":"monitor table."},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"When a health monitor is created, updated, or deleted, the health monitor"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_619e9c64","line":470,"range":{"start_line":469,"start_character":55,"end_line":470,"end_character":31},"updated":"2017-08-23 11:10:12.000000000","message":"Can you please elaborate?","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":466,"context_line":"The first packet of such a connection will be sent to the controller, which"},{"line_number":467,"context_line":"will install a flow for the entire TCP (or UDP) session."},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"This implementation will add a health monitor service. It will be similar"},{"line_number":470,"context_line":"to existing services (e.g. bgp). It will listen for events on the health"},{"line_number":471,"context_line":"monitor table."},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"When a health monitor is created, updated, or deleted, the health monitor"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_5e52fadf","line":470,"range":{"start_line":469,"start_character":55,"end_line":470,"end_character":31},"in_reply_to":"7f287b81_619e9c64","updated":"2017-09-19 06:20:37.000000000","message":"Done","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":469,"context_line":"This implementation will add a health monitor service. It will be similar"},{"line_number":470,"context_line":"to existing services (e.g. bgp). It will listen for events on the health"},{"line_number":471,"context_line":"monitor table."},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"When a health monitor is created, updated, or deleted, the health monitor"},{"line_number":474,"context_line":"service will update itself with the relevant configuration."},{"line_number":475,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_c19d505a","line":472,"updated":"2017-08-23 11:10:12.000000000","message":"Envisioning integration with Octavia, what is the plan? Do you consider to reuse some parts, like health monitor or have all parts supported by DF?","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":490,"context_line":"Every pool is a group. Every member of a pool is given a bucket in"},{"line_number":491,"context_line":"the group."},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"This option may not be supported, since we use OpenFlow 1.3"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"Option 2: Bundle"},{"line_number":496,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_41a96079","line":493,"range":{"start_line":493,"start_character":0,"end_line":493,"end_character":59},"updated":"2017-08-23 11:10:12.000000000","message":"Under which conditions this option is supported?","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":490,"context_line":"Every pool is a group. Every member of a pool is given a bucket in"},{"line_number":491,"context_line":"the group."},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"This option may not be supported, since we use OpenFlow 1.3"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"Option 2: Bundle"},{"line_number":496,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_5bfb2c46","line":493,"range":{"start_line":493,"start_character":0,"end_line":493,"end_character":59},"in_reply_to":"7f287b81_41a96079","updated":"2017-09-19 06:20:37.000000000","message":"When we use OpenFlow 1.5, and when the implementation supports it (I think OVS has rudimentry support)","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":502,"context_line":"eth_dst, ip_src, ip_dst, and ip_proto for ipv4, and ipv6_src, ipv6_dst for"},{"line_number":503,"context_line":"ipv6)."},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"It will load the lports unique id (which will be given as if it is an ofport)"},{"line_number":506,"context_line":"into reg7."},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"Packets will then be dispatched in the standard method in Dragonflow."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_01bd98b6","line":505,"range":{"start_line":505,"start_character":16,"end_line":505,"end_character":23},"updated":"2017-08-23 11:10:12.000000000","message":"please elaborate what lports","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":502,"context_line":"eth_dst, ip_src, ip_dst, and ip_proto for ipv4, and ipv6_src, ipv6_dst for"},{"line_number":503,"context_line":"ipv6)."},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"It will load the lports unique id (which will be given as if it is an ofport)"},{"line_number":506,"context_line":"into reg7."},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"Packets will then be dispatched in the standard method in Dragonflow."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_3bf86047","line":505,"range":{"start_line":505,"start_character":16,"end_line":505,"end_character":23},"in_reply_to":"7f287b81_01bd98b6","updated":"2017-09-19 06:20:37.000000000","message":"Done","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":514,"context_line":"(default 30 seconds). This means flows will be deleted after 30 seconds of"},{"line_number":515,"context_line":"inactivity."},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"Health Monitor"},{"line_number":518,"context_line":"--------------"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"The health monitor will use a single instance of HA proxy per compute node."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_21f09467","line":517,"range":{"start_line":517,"start_character":0,"end_line":517,"end_character":14},"updated":"2017-08-23 11:10:12.000000000","message":"Why this is not subsection under implementation?","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":514,"context_line":"(default 30 seconds). This means flows will be deleted after 30 seconds of"},{"line_number":515,"context_line":"inactivity."},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"Health Monitor"},{"line_number":518,"context_line":"--------------"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"The health monitor will use a single instance of HA proxy per compute node."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_1b97e4ee","line":517,"range":{"start_line":517,"start_character":0,"end_line":517,"end_character":14},"in_reply_to":"7f287b81_21f09467","updated":"2017-09-19 06:20:37.000000000","message":"Done","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":517,"context_line":"Health Monitor"},{"line_number":518,"context_line":"--------------"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"The health monitor will use a single instance of HA proxy per compute node."},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"The HA proxy instance will send probes to peers using their unique_key encoded"},{"line_number":523,"context_line":"in the IP destination field. The eth_dst address may also be spoofed to skip"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_e1e60ce9","line":520,"range":{"start_line":520,"start_character":29,"end_line":520,"end_character":75},"updated":"2017-08-23 11:10:12.000000000","message":"on BM or in VM?","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":517,"context_line":"Health Monitor"},{"line_number":518,"context_line":"--------------"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"The health monitor will use a single instance of HA proxy per compute node."},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"The HA proxy instance will send probes to peers using their unique_key encoded"},{"line_number":523,"context_line":"in the IP destination field. The eth_dst address may also be spoofed to skip"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_fb9bf814","line":520,"range":{"start_line":520,"start_character":29,"end_line":520,"end_character":75},"in_reply_to":"7f287b81_e1e60ce9","updated":"2017-09-19 06:20:37.000000000","message":"Not specified. Could also be in a namespace, or container.\n\nCould also be our own binary, wrapping HA proxy libraries to support additional protocols.","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":526,"context_line":"The OVS bridge will detect packets coming from the HA proxy. The LBaaS application"},{"line_number":527,"context_line":"will install flows which update the layer 2 (eth_dst, eth_src), layer 3 (ip_dst, ip_src),"},{"line_number":528,"context_line":"and metadata registers (metadata, reg6, reg7), and send the packet to the"},{"line_number":529,"context_line":"destination member."},{"line_number":530,"context_line":""},{"line_number":531,"context_line":"Handling Multiple Datatypes"},{"line_number":532,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_61f33ca0","line":529,"updated":"2017-08-23 11:10:12.000000000","message":"maybe DHCP to provide HM with the IP?","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":526,"context_line":"The OVS bridge will detect packets coming from the HA proxy. The LBaaS application"},{"line_number":527,"context_line":"will install flows which update the layer 2 (eth_dst, eth_src), layer 3 (ip_dst, ip_src),"},{"line_number":528,"context_line":"and metadata registers (metadata, reg6, reg7), and send the packet to the"},{"line_number":529,"context_line":"destination member."},{"line_number":530,"context_line":""},{"line_number":531,"context_line":"Handling Multiple Datatypes"},{"line_number":532,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_db9cbc0f","line":529,"in_reply_to":"7f287b81_61f33ca0","updated":"2017-09-19 06:20:37.000000000","message":"HM doesn\u0027t need an IP, pre se. The IPAM provides an IP, but it is only added to the packet in the OVS bridge with the flows described here.","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":528,"context_line":"and metadata registers (metadata, reg6, reg7), and send the packet to the"},{"line_number":529,"context_line":"destination member."},{"line_number":530,"context_line":""},{"line_number":531,"context_line":"Handling Multiple Datatypes"},{"line_number":532,"context_line":"---------------------------"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"This spec requires the model framework to support a form of ploymorphism, e.g."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_81006836","line":531,"range":{"start_line":531,"start_character":0,"end_line":531,"end_character":27},"updated":"2017-08-23 11:10:12.000000000","message":"This can be also subsection under implementation","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":528,"context_line":"and metadata registers (metadata, reg6, reg7), and send the packet to the"},{"line_number":529,"context_line":"destination member."},{"line_number":530,"context_line":""},{"line_number":531,"context_line":"Handling Multiple Datatypes"},{"line_number":532,"context_line":"---------------------------"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"This spec requires the model framework to support a form of ploymorphism, e.g."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_bba1f048","line":531,"range":{"start_line":531,"start_character":0,"end_line":531,"end_character":27},"in_reply_to":"7f287b81_81006836","updated":"2017-09-19 06:20:37.000000000","message":"This is a general RFC.","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":531,"context_line":"Handling Multiple Datatypes"},{"line_number":532,"context_line":"---------------------------"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"This spec requires the model framework to support a form of ploymorphism, e.g."},{"line_number":535,"context_line":"multiple types of health monitor methods, or multiple types of endpoints."},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"There are two methods to support this:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_212bf4eb","line":534,"range":{"start_line":534,"start_character":60,"end_line":534,"end_character":72},"updated":"2017-08-23 11:10:12.000000000","message":"typo","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":531,"context_line":"Handling Multiple Datatypes"},{"line_number":532,"context_line":"---------------------------"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"This spec requires the model framework to support a form of ploymorphism, e.g."},{"line_number":535,"context_line":"multiple types of health monitor methods, or multiple types of endpoints."},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"There are two methods to support this:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_fe3d268f","line":534,"range":{"start_line":534,"start_character":60,"end_line":534,"end_character":72},"in_reply_to":"7f287b81_212bf4eb","updated":"2017-09-19 06:20:37.000000000","message":"Done","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"58890cf7ef9d2b4bfa7c2578482f1485ad8138dd","unresolved":false,"context_lines":[{"line_number":534,"context_line":"This spec requires the model framework to support a form of ploymorphism, e.g."},{"line_number":535,"context_line":"multiple types of health monitor methods, or multiple types of endpoints."},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"There are two methods to support this:"},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"1. Union type"},{"line_number":540,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_c112f0b1","line":537,"range":{"start_line":537,"start_character":6,"end_line":537,"end_character":37},"updated":"2017-08-23 11:10:12.000000000","message":"You may have slit to the drivers per method, so the proper one will be loaded and used. The driver should implement the agreed API.","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":534,"context_line":"This spec requires the model framework to support a form of ploymorphism, e.g."},{"line_number":535,"context_line":"multiple types of health monitor methods, or multiple types of endpoints."},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"There are two methods to support this:"},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"1. Union type"},{"line_number":540,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f287b81_3eba8e09","line":537,"range":{"start_line":537,"start_character":6,"end_line":537,"end_character":37},"in_reply_to":"7f287b81_c112f0b1","updated":"2017-09-19 06:20:37.000000000","message":"Not sure I understand.\n\nThis is a general discussion about polymorphism in dragonflow NB model. It is here since this is the first feature that actually needs it. (Flow classification somehow managed to side-step the issue).","commit_id":"552ef0a192b48974a93609848fac27b8bd999316"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"7de8e933a1f45ffbb63b44fb2551fdccfb3a6303","unresolved":false,"context_lines":[{"line_number":13,"context_line":"https://bugs.launchpad.net/dragonflow/+bug/1710784"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implement support for Load Balancer as a Service for both L4 (LBaaS v2) and"},{"line_number":16,"context_line":"L7 (Octavia) load balancing."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem Description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f2577a7_dc3799e3","line":16,"updated":"2017-09-08 18:54:27.000000000","message":"For an SDN, beyond simple interoperability, support for Neutron LBaaS usually means providing a backend driver. Support for Octavia usually means providing an Amphora driver.\n\nAs far as I can tell, this spec aims to implement the Octavia v2 API (reference #3) entirely in Dragonflow.\n\nIf so, can you clarify this in the introduction?\n\nI would also like to see a section that discusses why you choose to forego all the infrastructure provided by the upstream LBaaS v2 API and Octavia. For example, you want to reduce the number of run-time components even if that reduces run-time choices.","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"7b2fc569b79f3fed4dc1c280e83c51010e9774b5","unresolved":false,"context_lines":[{"line_number":13,"context_line":"https://bugs.launchpad.net/dragonflow/+bug/1710784"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implement support for Load Balancer as a Service for both L4 (LBaaS v2) and"},{"line_number":16,"context_line":"L7 (Octavia) load balancing."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem Description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f2577a7_1552dc3b","line":16,"in_reply_to":"5f2577a7_dc3799e3","updated":"2017-09-18 11:26:45.000000000","message":"Done","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"7de8e933a1f45ffbb63b44fb2551fdccfb3a6303","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implement support for Load Balancer as a Service for both L4 (LBaaS v2) and"},{"line_number":16,"context_line":"L7 (Octavia) load balancing."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem Description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\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":5,"id":"5f2577a7_fc93755b","line":17,"updated":"2017-09-08 18:54:27.000000000","message":"It might also be worth pointing out that Octavia\u0027s API is a superset of LBaaS v2 and point to your reference #3.","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"7b2fc569b79f3fed4dc1c280e83c51010e9774b5","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implement support for Load Balancer as a Service for both L4 (LBaaS v2) and"},{"line_number":16,"context_line":"L7 (Octavia) load balancing."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem Description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\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":5,"id":"5f2577a7_f544f075","line":17,"in_reply_to":"5f2577a7_fc93755b","updated":"2017-09-18 11:26:45.000000000","message":"I\u0027m not sure where to add that, or if its relevant.","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"ef491d15edda83d68b936917d4397f5005445c2e","unresolved":false,"context_lines":[{"line_number":22,"context_line":"ports."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The Dragonflow implementation should be fully distributed. Therefore, load"},{"line_number":25,"context_line":"balancing decisions should be made on the source compute node."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Currently, Dragonflow should support HA proxy and Octavia implementation."},{"line_number":28,"context_line":"Any work done implementing this spec should not break that support."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f287b81_20c07950","line":25,"updated":"2017-09-04 10:39:58.000000000","message":"nit  :source-compute-node is relevant just for traffic that reached from VM, maybe add reference also traffic that arrived from DNAT/provider","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"5719ea63a29cb36c358eb83ead69ccd178561276","unresolved":false,"context_lines":[{"line_number":22,"context_line":"ports."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The Dragonflow implementation should be fully distributed. Therefore, load"},{"line_number":25,"context_line":"balancing decisions should be made on the source compute node."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Currently, Dragonflow should support HA proxy and Octavia implementation."},{"line_number":28,"context_line":"Any work done implementing this spec should not break that support."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f287b81_c35f71e3","line":25,"in_reply_to":"7f287b81_20c07950","updated":"2017-09-05 02:19:07.000000000","message":"Good point.","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"7de8e933a1f45ffbb63b44fb2551fdccfb3a6303","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Additionally, if there are load balancers provided both by Dragonflow and"},{"line_number":30,"context_line":"by e.g. Octavia, both should work after this spec is implemented. Therefore,"},{"line_number":31,"context_line":"the implementation of this feature should only handle load-balancers which"},{"line_number":32,"context_line":"have Dragonflow as a provider."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Terminology"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f2577a7_416ce207","line":32,"updated":"2017-09-08 18:54:27.000000000","message":"Can you clarify what you mean by \"not break that support\" and \"both should work after this spec is implemented.\"\n\nWill DF environments where DF load-balancing is enabled also support other load-balancing implementations at run-time? Both LBaaS v2 and Octavia are run-time multi-vendor.","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"7de8e933a1f45ffbb63b44fb2551fdccfb3a6303","unresolved":false,"context_lines":[{"line_number":89,"context_line":"identifier (the port\u0027s unique key) into the IP destination address"},{"line_number":90,"context_line":"(much like the metadata service)."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"The Load Balancer object listens on its IP, and listeners. Listener"},{"line_number":93,"context_line":"objects listen on a specific protocol and features. Each Listener has"},{"line_number":94,"context_line":"an Endpoint which decides on which protocol to listen, and on some"},{"line_number":95,"context_line":"protocol-specific filters. For example, HTTP endpoints may listen"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f2577a7_415bc286","line":92,"updated":"2017-09-08 18:54:27.000000000","message":"Can we remove \", and listeners.\"\n\nAlternatively, \", and routes to listeners.\" or something like that.","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"7b2fc569b79f3fed4dc1c280e83c51010e9774b5","unresolved":false,"context_lines":[{"line_number":89,"context_line":"identifier (the port\u0027s unique key) into the IP destination address"},{"line_number":90,"context_line":"(much like the metadata service)."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"The Load Balancer object listens on its IP, and listeners. Listener"},{"line_number":93,"context_line":"objects listen on a specific protocol and features. Each Listener has"},{"line_number":94,"context_line":"an Endpoint which decides on which protocol to listen, and on some"},{"line_number":95,"context_line":"protocol-specific filters. For example, HTTP endpoints may listen"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f2577a7_15209cab","line":92,"in_reply_to":"5f2577a7_415bc286","updated":"2017-09-18 11:26:45.000000000","message":"The listener provides the Endpoint, which provides the UDP/TCP port, or l7 endpoint to which the packet should be sent. Listening on the IP is not enough, it has to be the entire connection specifier. This is explained in this paragraph.","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"ef491d15edda83d68b936917d4397f5005445c2e","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Listeners also have a TLS field embedding a TLS object. This object"},{"line_number":99,"context_line":"is used to allow Listeners (and Load Balancers) to terminate TLS"},{"line_number":100,"context_line":"communication."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"The Neutron API and objects can be found here [3]_."},{"line_number":103,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f287b81_b6f713d5","line":100,"updated":"2017-09-04 10:39:58.000000000","message":"1. Is that a full connection proxy (e.g  terminate the connection against the client and open connection against the member).\n2. How it\u0027s will configured with keys/certificate for terminating to connection?","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"7de8e933a1f45ffbb63b44fb2551fdccfb3a6303","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Listeners also have a TLS field embedding a TLS object. This object"},{"line_number":99,"context_line":"is used to allow Listeners (and Load Balancers) to terminate TLS"},{"line_number":100,"context_line":"communication."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"The Neutron API and objects can be found here [3]_."},{"line_number":103,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f2577a7_7cef8587","line":100,"in_reply_to":"7f287b81_23e195fd","updated":"2017-09-08 18:54:27.000000000","message":"The implementation section does not have any detail about how TLS is supported. Will Dragonflow interact with the TLS container (i.e. Barbican)? How are the secrets retrieved and used in Dragonflow\u0027s L7 load-balancing?","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"5719ea63a29cb36c358eb83ead69ccd178561276","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Listeners also have a TLS field embedding a TLS object. This object"},{"line_number":99,"context_line":"is used to allow Listeners (and Load Balancers) to terminate TLS"},{"line_number":100,"context_line":"communication."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"The Neutron API and objects can be found here [3]_."},{"line_number":103,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f287b81_23e195fd","line":100,"in_reply_to":"7f287b81_b6f713d5","updated":"2017-09-05 02:19:07.000000000","message":"1. Anything supported by the underlying protocol. e.g. full connection proxy, or man in the middle attach with an approved certificate.\n\n2. Will specify.","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"ef491d15edda83d68b936917d4397f5005445c2e","unresolved":false,"context_lines":[{"line_number":375,"context_line":"+-----------+--------------------------+--------------------------------------------------------------------+"},{"line_number":376,"context_line":"| endpoint  | Embed\u003cEndpoint\u003e          | The endpoint the member listens on. Used for translation if needed |"},{"line_number":377,"context_line":"+-----------+--------------------------+--------------------------------------------------------------------+"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"Open questions: Replace address/subnet with lport?"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"Health Monitor"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f287b81_e07031df","line":378,"updated":"2017-09-04 10:39:58.000000000","message":"Maybe field for status ? (field that updated by the health-monitor).","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"5719ea63a29cb36c358eb83ead69ccd178561276","unresolved":false,"context_lines":[{"line_number":375,"context_line":"+-----------+--------------------------+--------------------------------------------------------------------+"},{"line_number":376,"context_line":"| endpoint  | Embed\u003cEndpoint\u003e          | The endpoint the member listens on. Used for translation if needed |"},{"line_number":377,"context_line":"+-----------+--------------------------+--------------------------------------------------------------------+"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"Open questions: Replace address/subnet with lport?"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"Health Monitor"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f287b81_e3670db7","line":378,"in_reply_to":"7f287b81_e07031df","updated":"2017-09-05 02:19:07.000000000","message":"I\u0027ll add a status model. Configuration and status should not share the same model","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"ef491d15edda83d68b936917d4397f5005445c2e","unresolved":false,"context_lines":[{"line_number":377,"context_line":"+-----------+--------------------------+--------------------------------------------------------------------+"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"Open questions: Replace address/subnet with lport?"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"Health Monitor"},{"line_number":382,"context_line":"~~~~~~~~~~~~~~"},{"line_number":383,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f287b81_20507932","line":380,"updated":"2017-09-04 10:39:58.000000000","message":"I think that it\u0027s will be good idea , as you need to know if this pool-member is local for decide if it\u0027s need to be checked by the local health-monitor.","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"7de8e933a1f45ffbb63b44fb2551fdccfb3a6303","unresolved":false,"context_lines":[{"line_number":448,"context_line":""},{"line_number":449,"context_line":"Dragonflow will provide an LBaaS service plugin, which will intercept LBaaS"},{"line_number":450,"context_line":"API calls, and translate them to Dragonflow Northbound database updates, as"},{"line_number":451,"context_line":"described in the models above."},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"The load balancer application only implements the \u0027Dragonflow\u0027 LBaaS"},{"line_number":454,"context_line":"provider."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f2577a7_a1e02698","line":451,"updated":"2017-09-08 18:54:27.000000000","message":"Will the LBaaS service plugin actually \"intercept\" the API calls - in the sense that you don\u0027t need to run Neutron LBaaS and Octavia API components are completely redundant?\n\nProviding an LBaaS v2 driver allows run-time choice but doesn\u0027t capture L7 capabilities.\n\nProviding an Octavia Amphora driver doesn\u0027t quite fit Dragonflow\u0027s distributed implementation.\n\nStill, can\u0027t we find another way to enable DF load-balancing while still providing run-time choice?","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"7b2fc569b79f3fed4dc1c280e83c51010e9774b5","unresolved":false,"context_lines":[{"line_number":448,"context_line":""},{"line_number":449,"context_line":"Dragonflow will provide an LBaaS service plugin, which will intercept LBaaS"},{"line_number":450,"context_line":"API calls, and translate them to Dragonflow Northbound database updates, as"},{"line_number":451,"context_line":"described in the models above."},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"The load balancer application only implements the \u0027Dragonflow\u0027 LBaaS"},{"line_number":454,"context_line":"provider."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f2577a7_78b7d53b","line":451,"in_reply_to":"5f2577a7_a1e02698","updated":"2017-09-18 11:26:45.000000000","message":"The driver only handles the API. I changed intercept to \u0027receive\u0027","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"7de8e933a1f45ffbb63b44fb2551fdccfb3a6303","unresolved":false,"context_lines":[{"line_number":460,"context_line":"When a load-balancer is created or updated, an ARP, ND, and ICMP"},{"line_number":461,"context_line":"responders (where relevant, and if configured) are created."},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"Load balancing will be done by the OVS bridge, using OpenFlow Groups or"},{"line_number":464,"context_line":"OpenFlow bundles (see options_). Optionally, the packet will be passed to"},{"line_number":465,"context_line":"the Load Balancer\u0027s logical port."},{"line_number":466,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f2577a7_3c345d4a","line":463,"updated":"2017-09-08 18:54:27.000000000","message":"OVS can only implement L4 load-balancing, right?","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"7b2fc569b79f3fed4dc1c280e83c51010e9774b5","unresolved":false,"context_lines":[{"line_number":460,"context_line":"When a load-balancer is created or updated, an ARP, ND, and ICMP"},{"line_number":461,"context_line":"responders (where relevant, and if configured) are created."},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"Load balancing will be done by the OVS bridge, using OpenFlow Groups or"},{"line_number":464,"context_line":"OpenFlow bundles (see options_). Optionally, the packet will be passed to"},{"line_number":465,"context_line":"the Load Balancer\u0027s logical port."},{"line_number":466,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f2577a7_38870d65","line":463,"in_reply_to":"5f2577a7_3c345d4a","updated":"2017-09-18 11:26:45.000000000","message":"Yes.","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"7de8e933a1f45ffbb63b44fb2551fdccfb3a6303","unresolved":false,"context_lines":[{"line_number":462,"context_line":""},{"line_number":463,"context_line":"Load balancing will be done by the OVS bridge, using OpenFlow Groups or"},{"line_number":464,"context_line":"OpenFlow bundles (see options_). Optionally, the packet will be passed to"},{"line_number":465,"context_line":"the Load Balancer\u0027s logical port."},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"In some cases, OpenFlow is not powerful enough to handle the Endpoint, e.g."},{"line_number":468,"context_line":"an endpoint for a specific HTTP request URL. In this case, the packet will"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f2577a7_5c0a898a","line":465,"updated":"2017-09-08 18:54:27.000000000","message":"That doesn\u0027t seem to be optional for L7. And you need something to do the connection termination/setup.","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"7b2fc569b79f3fed4dc1c280e83c51010e9774b5","unresolved":false,"context_lines":[{"line_number":462,"context_line":""},{"line_number":463,"context_line":"Load balancing will be done by the OVS bridge, using OpenFlow Groups or"},{"line_number":464,"context_line":"OpenFlow bundles (see options_). Optionally, the packet will be passed to"},{"line_number":465,"context_line":"the Load Balancer\u0027s logical port."},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"In some cases, OpenFlow is not powerful enough to handle the Endpoint, e.g."},{"line_number":468,"context_line":"an endpoint for a specific HTTP request URL. In this case, the packet will"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f2577a7_188a1169","line":465,"in_reply_to":"5f2577a7_5c0a898a","updated":"2017-09-18 11:26:45.000000000","message":"See next paragraph :)","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":11731,"name":"Pino de Candia","email":"giuseppe.decandia@gmail.com","username":"Pino"},"change_message_id":"7de8e933a1f45ffbb63b44fb2551fdccfb3a6303","unresolved":false,"context_lines":[{"line_number":466,"context_line":""},{"line_number":467,"context_line":"In some cases, OpenFlow is not powerful enough to handle the Endpoint, e.g."},{"line_number":468,"context_line":"an endpoint for a specific HTTP request URL. In this case, the packet will"},{"line_number":469,"context_line":"be uploaded to the controller, or passed to an external handler via an lport."},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"When a listener is added, a new flow is created to match the endpoint,"},{"line_number":472,"context_line":"and divert it to the correct Group or Bundle (see options_)."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f2577a7_1c12c1b2","line":469,"updated":"2017-09-08 18:54:27.000000000","message":"That\u0027s very vague. The whole spec is very vague on the L7 implementation - why not explicitly make this spec about L4 load-balancing and leave L7 out of scope?","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"7b2fc569b79f3fed4dc1c280e83c51010e9774b5","unresolved":false,"context_lines":[{"line_number":466,"context_line":""},{"line_number":467,"context_line":"In some cases, OpenFlow is not powerful enough to handle the Endpoint, e.g."},{"line_number":468,"context_line":"an endpoint for a specific HTTP request URL. In this case, the packet will"},{"line_number":469,"context_line":"be uploaded to the controller, or passed to an external handler via an lport."},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"When a listener is added, a new flow is created to match the endpoint,"},{"line_number":472,"context_line":"and divert it to the correct Group or Bundle (see options_)."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f2577a7_d87fe963","line":469,"in_reply_to":"5f2577a7_1c12c1b2","updated":"2017-09-18 11:26:45.000000000","message":"I\u0027ll admit I left this as a general idea. I\u0027ll try to flesh it out some.","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"ef491d15edda83d68b936917d4397f5005445c2e","unresolved":false,"context_lines":[{"line_number":481,"context_line":"(see options_)."},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"Session persistence will be handled by `learn` flows. When a new session is"},{"line_number":484,"context_line":"detected, a new flow will be installed. This allows the `session_persistence`"},{"line_number":485,"context_line":"method `SOURCE_IP` to be used. Other methods will require sending the packet"},{"line_number":486,"context_line":"to the controller, or to a service connected via a port."},{"line_number":487,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f287b81_9bc1e283","line":484,"updated":"2017-09-04 10:39:58.000000000","message":"Didn\u0027t sure that i understanding why flow per session needed here..","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"002cee7e655f296a4b2487b767d76164c7f6c1e5","unresolved":false,"context_lines":[{"line_number":481,"context_line":"(see options_)."},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"Session persistence will be handled by `learn` flows. When a new session is"},{"line_number":484,"context_line":"detected, a new flow will be installed. This allows the `session_persistence`"},{"line_number":485,"context_line":"method `SOURCE_IP` to be used. Other methods will require sending the packet"},{"line_number":486,"context_line":"to the controller, or to a service connected via a port."},{"line_number":487,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f2577a7_bb62d708","line":484,"in_reply_to":"7f287b81_4321414d","updated":"2017-09-18 13:03:18.000000000","message":"Don\u0027t sure that\u0027s good idea to allow session-persistence   with nod-deterministic alg, it\u0027s sounds like two many flows ..","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"5719ea63a29cb36c358eb83ead69ccd178561276","unresolved":false,"context_lines":[{"line_number":481,"context_line":"(see options_)."},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"Session persistence will be handled by `learn` flows. When a new session is"},{"line_number":484,"context_line":"detected, a new flow will be installed. This allows the `session_persistence`"},{"line_number":485,"context_line":"method `SOURCE_IP` to be used. Other methods will require sending the packet"},{"line_number":486,"context_line":"to the controller, or to a service connected via a port."},{"line_number":487,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f287b81_4321414d","line":484,"in_reply_to":"7f287b81_9bc1e283","updated":"2017-09-05 02:19:07.000000000","message":"In case bucket selection is not deterministic (e.g. round robin).","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"ef491d15edda83d68b936917d4397f5005445c2e","unresolved":false,"context_lines":[{"line_number":501,"context_line":"The health monitor will be connected to the OVS bridge with a single"},{"line_number":502,"context_line":"interface.  It will send relevant packets to ports by encoding their"},{"line_number":503,"context_line":"unique ID onto the destination IP address (128.0.0.0 | \u003cunique key\u003e). (See"},{"line_number":504,"context_line":"options_)"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":".. _options:"},{"line_number":507,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f287b81_db440a1e","line":504,"updated":"2017-09-04 10:39:58.000000000","message":"what happened when health monitor identify poll-member as down?","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"5719ea63a29cb36c358eb83ead69ccd178561276","unresolved":false,"context_lines":[{"line_number":501,"context_line":"The health monitor will be connected to the OVS bridge with a single"},{"line_number":502,"context_line":"interface.  It will send relevant packets to ports by encoding their"},{"line_number":503,"context_line":"unique ID onto the destination IP address (128.0.0.0 | \u003cunique key\u003e). (See"},{"line_number":504,"context_line":"options_)"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":".. _options:"},{"line_number":507,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f287b81_031b391b","line":504,"in_reply_to":"7f287b81_db440a1e","updated":"2017-09-05 02:19:07.000000000","message":"It should update the Neutron API/NB DB/ DF controller.\n\nWill update with specifics.","commit_id":"a6f3cfbc098223131bb6006afc1c2bfb0a2463bc"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"e13f8eaccfbe231a59debb53e1152aaa497f3f7a","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Load Balancer as a Service"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad RFE:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://bugs.launchpad.net/dragonflow/+bug/1710784"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff5d4b2f_aaa7e44f","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":38},"updated":"2017-09-19 15:01:19.000000000","message":"I think this can be removed","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"d5e43803105cc4ec8a1afcfc8ab1aaf1d94f61e7","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Load Balancer as a Service"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad RFE:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://bugs.launchpad.net/dragonflow/+bug/1710784"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_d35e29e5","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":38},"in_reply_to":"ff5d4b2f_aaa7e44f","updated":"2017-09-25 09:48:15.000000000","message":"Done","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"e13f8eaccfbe231a59debb53e1152aaa497f3f7a","unresolved":false,"context_lines":[{"line_number":149,"context_line":"Endpoint"},{"line_number":150,"context_line":"~~~~~~~~"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"This object represents an endpont location. This states what conditions"},{"line_number":153,"context_line":"on the packet are needed to accept the packet for load-balancing. It also"},{"line_number":154,"context_line":"states how the packet needs to be modified (e.g. port number changes)"},{"line_number":155,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff5d4b2f_7699d51d","line":152,"range":{"start_line":152,"start_character":26,"end_line":152,"end_character":33},"updated":"2017-09-19 15:01:19.000000000","message":"endpoint","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"d5e43803105cc4ec8a1afcfc8ab1aaf1d94f61e7","unresolved":false,"context_lines":[{"line_number":149,"context_line":"Endpoint"},{"line_number":150,"context_line":"~~~~~~~~"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"This object represents an endpont location. This states what conditions"},{"line_number":153,"context_line":"on the packet are needed to accept the packet for load-balancing. It also"},{"line_number":154,"context_line":"states how the packet needs to be modified (e.g. port number changes)"},{"line_number":155,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_736d3597","line":152,"range":{"start_line":152,"start_character":26,"end_line":152,"end_character":33},"in_reply_to":"ff5d4b2f_7699d51d","updated":"2017-09-25 09:48:15.000000000","message":"Done","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"e13f8eaccfbe231a59debb53e1152aaa497f3f7a","unresolved":false,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":"The Endpoint object should support both L4 and L7 match and action policies."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Need to support protcols tcp, udp, icmp, null (raw?), and http (at least)"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"TCP or UDP Endpoint:"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff5d4b2f_f6adc531","line":158,"range":{"start_line":158,"start_character":16,"end_line":158,"end_character":24},"updated":"2017-09-19 15:01:19.000000000","message":"protocols","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"d5e43803105cc4ec8a1afcfc8ab1aaf1d94f61e7","unresolved":false,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":"The Endpoint object should support both L4 and L7 match and action policies."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Need to support protcols tcp, udp, icmp, null (raw?), and http (at least)"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"TCP or UDP Endpoint:"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_d313c90c","line":158,"range":{"start_line":158,"start_character":16,"end_line":158,"end_character":24},"in_reply_to":"ff5d4b2f_f6adc531","updated":"2017-09-25 09:48:15.000000000","message":"Done","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"e13f8eaccfbe231a59debb53e1152aaa497f3f7a","unresolved":false,"context_lines":[{"line_number":391,"context_line":"| endpoint  | Embed\u003cEndpoint\u003e          | The endpoint the member listens on. Used for translation if needed |"},{"line_number":392,"context_line":"+-----------+--------------------------+--------------------------------------------------------------------+"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"Open questions: Replace address/subnet with lport?"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"Health Monitor"},{"line_number":397,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff5d4b2f_980917df","line":394,"updated":"2017-09-19 15:01:19.000000000","message":"Could be nice, but do we support non-lport objects anywhere else in dragonflow?","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"d5e43803105cc4ec8a1afcfc8ab1aaf1d94f61e7","unresolved":false,"context_lines":[{"line_number":391,"context_line":"| endpoint  | Embed\u003cEndpoint\u003e          | The endpoint the member listens on. Used for translation if needed |"},{"line_number":392,"context_line":"+-----------+--------------------------+--------------------------------------------------------------------+"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"Open questions: Replace address/subnet with lport?"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"Health Monitor"},{"line_number":397,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_d32ce948","line":394,"in_reply_to":"ff5d4b2f_980917df","updated":"2017-09-25 09:48:15.000000000","message":"This was actually implemented. PoolMember is now assigned an lport, not an ip/subnet pair. Will remove.","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"e13f8eaccfbe231a59debb53e1152aaa497f3f7a","unresolved":false,"context_lines":[{"line_number":431,"context_line":"| method       | Enum (PING)                    | Must be PING                      |"},{"line_number":432,"context_line":"+--------------+--------------------------------+-----------------------------------+"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"This method pings the pool member. It is not availabel via the Neutron API."},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"TCP method:"},{"line_number":437,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff5d4b2f_98935750","line":434,"range":{"start_line":434,"start_character":45,"end_line":434,"end_character":54},"updated":"2017-09-19 15:01:19.000000000","message":"available","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"d5e43803105cc4ec8a1afcfc8ab1aaf1d94f61e7","unresolved":false,"context_lines":[{"line_number":431,"context_line":"| method       | Enum (PING)                    | Must be PING                      |"},{"line_number":432,"context_line":"+--------------+--------------------------------+-----------------------------------+"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"This method pings the pool member. It is not availabel via the Neutron API."},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"TCP method:"},{"line_number":437,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_931e710a","line":434,"range":{"start_line":434,"start_character":45,"end_line":434,"end_character":54},"in_reply_to":"ff5d4b2f_98935750","updated":"2017-09-25 09:48:15.000000000","message":"Done","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"e13f8eaccfbe231a59debb53e1152aaa497f3f7a","unresolved":false,"context_lines":[{"line_number":538,"context_line":"options_)"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":".. _options:"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"Option 1: Groups"},{"line_number":543,"context_line":"~~~~~~~~~~~~~~~~"},{"line_number":544,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff5d4b2f_3b734583","line":541,"updated":"2017-09-19 15:01:19.000000000","message":"Option 1 seems better to me, but I think that it might be better to use something which is supported :)","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"7e3f4b348bb47f962885f09c9123718b6e14c1a9","unresolved":false,"context_lines":[{"line_number":587,"context_line":"If it matches an endpoint, the endpoint actions will be applied. That is, a"},{"line_number":588,"context_line":"pool member will be selected, and the relevant packet mangling will be done."},{"line_number":589,"context_line":"If a proxy is needed, the packet will be forwarded there, and the proxy will"},{"line_number":590,"context_line":"forward it to the pool member."},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"Option 2: External Port"},{"line_number":593,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f2577a7_7ee57d37","line":590,"updated":"2017-09-18 13:03:11.000000000","message":"I think that option 2 is better - as sessions can be open very frequently , and it\u0027s required from the controller to handle massive amount of traffic ..","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":587,"context_line":"If it matches an endpoint, the endpoint actions will be applied. That is, a"},{"line_number":588,"context_line":"pool member will be selected, and the relevant packet mangling will be done."},{"line_number":589,"context_line":"If a proxy is needed, the packet will be forwarded there, and the proxy will"},{"line_number":590,"context_line":"forward it to the pool member."},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"Option 2: External Port"},{"line_number":593,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff5d4b2f_938d867d","line":590,"in_reply_to":"5f2577a7_7ee57d37","updated":"2017-09-19 06:20:37.000000000","message":"Agreed.","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"e13f8eaccfbe231a59debb53e1152aaa497f3f7a","unresolved":false,"context_lines":[{"line_number":587,"context_line":"If it matches an endpoint, the endpoint actions will be applied. That is, a"},{"line_number":588,"context_line":"pool member will be selected, and the relevant packet mangling will be done."},{"line_number":589,"context_line":"If a proxy is needed, the packet will be forwarded there, and the proxy will"},{"line_number":590,"context_line":"forward it to the pool member."},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"Option 2: External Port"},{"line_number":593,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff5d4b2f_7b83fd05","line":590,"in_reply_to":"ff5d4b2f_938d867d","updated":"2017-09-19 15:01:19.000000000","message":"+1","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"7e3f4b348bb47f962885f09c9123718b6e14c1a9","unresolved":false,"context_lines":[{"line_number":597,"context_line":"terminating the connection if needed, and acting as a proxy."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"This service will have to have access to the NB DB for some of the necessary"},{"line_number":600,"context_line":"information."},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"In some cases, l4 traffic will also be passed to this service, in case"},{"line_number":603,"context_line":"load-balancing algorithms not supported by OVS are used."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f2577a7_9e714979","line":600,"updated":"2017-09-18 13:03:11.000000000","message":"Maybe the controller should pass the inforamtion to the app. \n(like \"NB DB\" -\u003e controller -\u003e ovs , \nso here \"NB DB\" -\u003e contrker -\u003e l7-lbass-forwading-plane)","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"5f8a8a74838a99b0e00e70b6ca14706e8720b4e0","unresolved":false,"context_lines":[{"line_number":597,"context_line":"terminating the connection if needed, and acting as a proxy."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"This service will have to have access to the NB DB for some of the necessary"},{"line_number":600,"context_line":"information."},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"In some cases, l4 traffic will also be passed to this service, in case"},{"line_number":603,"context_line":"load-balancing algorithms not supported by OVS are used."}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f485f77_b9e7cce4","line":600,"in_reply_to":"1f485f77_1bea5d0e","updated":"2017-11-15 10:36:53.000000000","message":"I think we agreed that we need a control-app with access to NB-db (inside or out side df-controller ) , that manages \nby data-plane-app(HA-proxy or something else .. ). \nMy concern was that the from the current version of the spec is sound like that the data-plane-app should have access to NB-api.","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"e75fdbc94fabcf49b51355495e919f5236405e1c","unresolved":false,"context_lines":[{"line_number":597,"context_line":"terminating the connection if needed, and acting as a proxy."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"This service will have to have access to the NB DB for some of the necessary"},{"line_number":600,"context_line":"information."},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"In some cases, l4 traffic will also be passed to this service, in case"},{"line_number":603,"context_line":"load-balancing algorithms not supported by OVS are used."}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f485f77_1bea5d0e","line":600,"in_reply_to":"1f485f77_42b829c7","updated":"2017-11-15 04:40:18.000000000","message":"The metadata is, but bgp isn\u0027t. In any case, both applications have an additional service to handle some of the load (transparent proxy for metadata, bgp speaker for bgp).","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"1c52be27d43a28567152436304760c55e7c0023b","unresolved":false,"context_lines":[{"line_number":597,"context_line":"terminating the connection if needed, and acting as a proxy."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"This service will have to have access to the NB DB for some of the necessary"},{"line_number":600,"context_line":"information."},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"In some cases, l4 traffic will also be passed to this service, in case"},{"line_number":603,"context_line":"load-balancing algorithms not supported by OVS are used."}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f485f77_7ba0c890","line":600,"in_reply_to":"1f485f77_b9e7cce4","updated":"2017-11-19 09:45:23.000000000","message":"From a software engineering point, that\u0027s true. Allowing the data-plane-app direct access to NB-api is an optimization (which inherently breaks correct software engineering).\n\nAlternatively, we might be able to do away with the data-plane-app and use HA proxy directly, and have the controller-app (which must exist anyway) programme the HA proxy and be done with it (I think this would be the best option, but I\u0027m still reading on HA proxy or other monitoring software).","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"98912438c8ac1447f5d813e89f083986e8da3370","unresolved":false,"context_lines":[{"line_number":597,"context_line":"terminating the connection if needed, and acting as a proxy."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"This service will have to have access to the NB DB for some of the necessary"},{"line_number":600,"context_line":"information."},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"In some cases, l4 traffic will also be passed to this service, in case"},{"line_number":603,"context_line":"load-balancing algorithms not supported by OVS are used."}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f485f77_42b829c7","line":600,"in_reply_to":"3f4b6375_ba716e47","updated":"2017-11-13 09:34:54.000000000","message":"I don\u0027t sure that i understood the discussion till the end\n , isn\u0027t the metadata and bgp are apps that runs inside the controller ?","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":597,"context_line":"terminating the connection if needed, and acting as a proxy."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"This service will have to have access to the NB DB for some of the necessary"},{"line_number":600,"context_line":"information."},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"In some cases, l4 traffic will also be passed to this service, in case"},{"line_number":603,"context_line":"load-balancing algorithms not supported by OVS are used."}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff5d4b2f_33f25a08","line":600,"in_reply_to":"5f2577a7_9e714979","updated":"2017-09-19 06:20:37.000000000","message":"In theory, the app can access the NB DB directly. I think that would be best.","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"3d8fad568355cf5951b8ee381e0d927265e3dff6","unresolved":false,"context_lines":[{"line_number":597,"context_line":"terminating the connection if needed, and acting as a proxy."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"This service will have to have access to the NB DB for some of the necessary"},{"line_number":600,"context_line":"information."},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"In some cases, l4 traffic will also be passed to this service, in case"},{"line_number":603,"context_line":"load-balancing algorithms not supported by OVS are used."}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_c71d1810","line":600,"in_reply_to":"7f515b1d_73ac158c","updated":"2017-09-26 12:11:29.000000000","message":"Well i assume that the service behind the policy will should be kind of a load-blancer/proxy , i think that should be standalone app for this purpose  (Whether if we choose to implement one , or to take one on the shelf -like HA-poxy). \nAnd I think that the best place for controlling this app is from the controller.","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"8235274dc05755f9e1b8a3d65d4552e1f9c437f1","unresolved":false,"context_lines":[{"line_number":597,"context_line":"terminating the connection if needed, and acting as a proxy."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"This service will have to have access to the NB DB for some of the necessary"},{"line_number":600,"context_line":"information."},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"In some cases, l4 traffic will also be passed to this service, in case"},{"line_number":603,"context_line":"load-balancing algorithms not supported by OVS are used."}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_cac983ac","line":600,"in_reply_to":"7f515b1d_c71d1810","updated":"2017-09-27 05:03:31.000000000","message":"Yes, that makes sense. I\u0027ll update.","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"bf90d1ff2b8361de332854c54b48ff9139dce31a","unresolved":false,"context_lines":[{"line_number":597,"context_line":"terminating the connection if needed, and acting as a proxy."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"This service will have to have access to the NB DB for some of the necessary"},{"line_number":600,"context_line":"information."},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"In some cases, l4 traffic will also be passed to this service, in case"},{"line_number":603,"context_line":"load-balancing algorithms not supported by OVS are used."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f4b6375_ba716e47","line":600,"in_reply_to":"7f515b1d_cac983ac","updated":"2017-11-08 20:58:45.000000000","message":"I would like to revisit this discussion.\n\nFrom a software design point of view, yes, it is better that the DF controller controls the LoadBalancer service which is external to the OVS switch.\n\nHowever, implementing this adds overhead in two main points:\n\n1. It means there\u0027s another stop for the information before reaching its final destination.\n\n2. We will have to somehow write this way of the controller updating the LoadBalancer service.\n\nSince the NB API is already available, already accessed by other services (e.g. BGP, metadata), and cuts the middle man, I think having the LoadBalancer service access NB API directly (where possible and relevant) is the more correct way to go about things.\n\nLastly, it also depends how much in-process control we have over HA proxy.","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"d5e43803105cc4ec8a1afcfc8ab1aaf1d94f61e7","unresolved":false,"context_lines":[{"line_number":597,"context_line":"terminating the connection if needed, and acting as a proxy."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"This service will have to have access to the NB DB for some of the necessary"},{"line_number":600,"context_line":"information."},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"In some cases, l4 traffic will also be passed to this service, in case"},{"line_number":603,"context_line":"load-balancing algorithms not supported by OVS are used."}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_73ac158c","line":600,"in_reply_to":"7f515b1d_f8710fe2","updated":"2017-09-25 09:48:15.000000000","message":"The NB api contains information pertaining to the forwarding decision (pool members, member selection algorithm, etc.). Why not cut the middle man, and pull the info directly from the NB DB?","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"c053e6831ededa4944a413d9bfecdf3bc40ef0ab","unresolved":false,"context_lines":[{"line_number":597,"context_line":"terminating the connection if needed, and acting as a proxy."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"This service will have to have access to the NB DB for some of the necessary"},{"line_number":600,"context_line":"information."},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"In some cases, l4 traffic will also be passed to this service, in case"},{"line_number":603,"context_line":"load-balancing algorithms not supported by OVS are used."}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_f8710fe2","line":600,"in_reply_to":"ff5d4b2f_33f25a08","updated":"2017-09-24 08:12:48.000000000","message":"In my view  - this proxy is part of the Data-plane (like the ovs) , all the decisions that derived from the NB-api are part of the control-plane(like the df-local-controller). So i think that also in the LBAAS the controller should get all the decisions and the data-plane should deal only with forwarding decision.","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"7e3f4b348bb47f962885f09c9123718b6e14c1a9","unresolved":false,"context_lines":[{"line_number":623,"context_line":"The OVS bridge will detect packets coming from the HA proxy. The LBaaS application"},{"line_number":624,"context_line":"will install flows which update the layer 2 (eth_dst, eth_src), layer 3 (ip_dst, ip_src),"},{"line_number":625,"context_line":"and metadata registers (metadata, reg6, reg7), and send the packet to the"},{"line_number":626,"context_line":"destination member."},{"line_number":627,"context_line":""},{"line_number":628,"context_line":"Handling Multiple Datatypes"},{"line_number":629,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f2577a7_9ef6e9d6","line":626,"updated":"2017-09-18 13:03:11.000000000","message":"when memeber detected as done , \ndose it\u0027s stop to receive packets?","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3f1597f7b25925d49dcee70d97974c88f2f79304","unresolved":false,"context_lines":[{"line_number":623,"context_line":"The OVS bridge will detect packets coming from the HA proxy. The LBaaS application"},{"line_number":624,"context_line":"will install flows which update the layer 2 (eth_dst, eth_src), layer 3 (ip_dst, ip_src),"},{"line_number":625,"context_line":"and metadata registers (metadata, reg6, reg7), and send the packet to the"},{"line_number":626,"context_line":"destination member."},{"line_number":627,"context_line":""},{"line_number":628,"context_line":"Handling Multiple Datatypes"},{"line_number":629,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff5d4b2f_73d1f257","line":626,"in_reply_to":"5f2577a7_9ef6e9d6","updated":"2017-09-19 06:20:37.000000000","message":"Sorry, not sure I understand?","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"d5e43803105cc4ec8a1afcfc8ab1aaf1d94f61e7","unresolved":false,"context_lines":[{"line_number":623,"context_line":"The OVS bridge will detect packets coming from the HA proxy. The LBaaS application"},{"line_number":624,"context_line":"will install flows which update the layer 2 (eth_dst, eth_src), layer 3 (ip_dst, ip_src),"},{"line_number":625,"context_line":"and metadata registers (metadata, reg6, reg7), and send the packet to the"},{"line_number":626,"context_line":"destination member."},{"line_number":627,"context_line":""},{"line_number":628,"context_line":"Handling Multiple Datatypes"},{"line_number":629,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_53c6b969","line":626,"in_reply_to":"7f515b1d_d88893c7","updated":"2017-09-25 09:48:15.000000000","message":"Yes. Will add.","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"c053e6831ededa4944a413d9bfecdf3bc40ef0ab","unresolved":false,"context_lines":[{"line_number":623,"context_line":"The OVS bridge will detect packets coming from the HA proxy. The LBaaS application"},{"line_number":624,"context_line":"will install flows which update the layer 2 (eth_dst, eth_src), layer 3 (ip_dst, ip_src),"},{"line_number":625,"context_line":"and metadata registers (metadata, reg6, reg7), and send the packet to the"},{"line_number":626,"context_line":"destination member."},{"line_number":627,"context_line":""},{"line_number":628,"context_line":"Handling Multiple Datatypes"},{"line_number":629,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_d88893c7","line":626,"in_reply_to":"ff5d4b2f_73d1f257","updated":"2017-09-24 08:12:48.000000000","message":"When the health-monitor detected that a pool-member/endpoint  is down , is it\u0027s removed from the pool?\n(does the LBASS prevent down nodes from receiving new connections ? )","commit_id":"cbf2e50e9cd255b3ce8dd909229baf0253b5ca74"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"82010f638492e14609380191fa96b60268c29f2b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Proposed Change"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The following diagram shows a schematic of a client VM connecting to a load-"},{"line_number":51,"context_line":"balanced service."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f485f77_ff2ee389","line":50,"range":{"start_line":50,"start_character":45,"end_line":50,"end_character":54},"updated":"2017-11-19 11:16:21.000000000","message":"Client can be places on the different machine, right?","commit_id":"765b961595990f227a3bd326003053cd6ffa2a18"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"5b1b05b41b04a3d7af1aa353fab1ed341d413406","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Proposed Change"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The following diagram shows a schematic of a client VM connecting to a load-"},{"line_number":51,"context_line":"balanced service."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f485f77_22f2249b","line":50,"range":{"start_line":50,"start_character":45,"end_line":50,"end_character":54},"in_reply_to":"1f485f77_c22d9095","updated":"2017-11-19 15:36:55.000000000","message":"Client can be on 3rd machine with no member at all, the diagram may give a wrong impression","commit_id":"765b961595990f227a3bd326003053cd6ffa2a18"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"ef501f1f0461d3f9c2da6fdc15e6dc820855c287","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Proposed Change"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The following diagram shows a schematic of a client VM connecting to a load-"},{"line_number":51,"context_line":"balanced service."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f485f77_c22d9095","line":50,"range":{"start_line":50,"start_character":45,"end_line":50,"end_character":54},"in_reply_to":"1f485f77_ff2ee389","updated":"2017-11-19 14:15:04.000000000","message":"Yes. Hence the \u0027Compute Node 2\u0027 part of the example below.","commit_id":"765b961595990f227a3bd326003053cd6ffa2a18"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"82010f638492e14609380191fa96b60268c29f2b","unresolved":false,"context_lines":[{"line_number":258,"context_line":"An endpoint for the raw protocol accepts a packet only if the raw data at"},{"line_number":259,"context_line":"\u003clocation\u003e equals \u003cvalue\u003e."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"Open question: Do we want to extend this to support simple regex?"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"TLS"},{"line_number":264,"context_line":"~~~"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f485f77_5f43b742","line":261,"range":{"start_line":261,"start_character":44,"end_line":261,"end_character":64},"updated":"2017-11-19 11:16:21.000000000","message":"it is more of a usability question, right? I guess we may need to check if such requirement was suggested for Octavia.","commit_id":"765b961595990f227a3bd326003053cd6ffa2a18"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"5b1b05b41b04a3d7af1aa353fab1ed341d413406","unresolved":false,"context_lines":[{"line_number":258,"context_line":"An endpoint for the raw protocol accepts a packet only if the raw data at"},{"line_number":259,"context_line":"\u003clocation\u003e equals \u003cvalue\u003e."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"Open question: Do we want to extend this to support simple regex?"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"TLS"},{"line_number":264,"context_line":"~~~"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f485f77_02ede8b5","line":261,"range":{"start_line":261,"start_character":44,"end_line":261,"end_character":64},"in_reply_to":"1f485f77_4239a0d4","updated":"2017-11-19 15:36:55.000000000","message":"You will need an API to set it up","commit_id":"765b961595990f227a3bd326003053cd6ffa2a18"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"ef501f1f0461d3f9c2da6fdc15e6dc820855c287","unresolved":false,"context_lines":[{"line_number":258,"context_line":"An endpoint for the raw protocol accepts a packet only if the raw data at"},{"line_number":259,"context_line":"\u003clocation\u003e equals \u003cvalue\u003e."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"Open question: Do we want to extend this to support simple regex?"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"TLS"},{"line_number":264,"context_line":"~~~"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f485f77_4239a0d4","line":261,"range":{"start_line":261,"start_character":44,"end_line":261,"end_character":64},"in_reply_to":"1f485f77_5f43b742","updated":"2017-11-19 14:15:04.000000000","message":"I think this was a request from @apuimedo. I don\u0027t think Octavia have \u0027raw\u0027 protocol. He did not mention regex in his requirements, but the whole discussion was informal.","commit_id":"765b961595990f227a3bd326003053cd6ffa2a18"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"82010f638492e14609380191fa96b60268c29f2b","unresolved":false,"context_lines":[{"line_number":479,"context_line":"API calls, and translate them to Dragonflow Northbound database updates, as"},{"line_number":480,"context_line":"described in the models above."},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"The load balancer application only implements the \u0027Dragonflow\u0027 LBaaS"},{"line_number":483,"context_line":"provider."},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"The load balancer functionality is implemented with an LBaaS application."},{"line_number":486,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f485f77_5f6cd7cc","line":483,"range":{"start_line":482,"start_character":63,"end_line":483,"end_character":9},"updated":"2017-11-19 11:16:21.000000000","message":"this should be resolved at Neutron/octavia level by invoking appropriate driver of the requested provider. Is there anything to take care by Dragonflow?","commit_id":"765b961595990f227a3bd326003053cd6ffa2a18"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"5b1b05b41b04a3d7af1aa353fab1ed341d413406","unresolved":false,"context_lines":[{"line_number":479,"context_line":"API calls, and translate them to Dragonflow Northbound database updates, as"},{"line_number":480,"context_line":"described in the models above."},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"The load balancer application only implements the \u0027Dragonflow\u0027 LBaaS"},{"line_number":483,"context_line":"provider."},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"The load balancer functionality is implemented with an LBaaS application."},{"line_number":486,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f485f77_82367850","line":483,"range":{"start_line":482,"start_character":63,"end_line":483,"end_character":9},"in_reply_to":"1f485f77_223464dd","updated":"2017-11-19 15:36:55.000000000","message":"then maybe rephrase, imho in its current state it more confuses than helps","commit_id":"765b961595990f227a3bd326003053cd6ffa2a18"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"ef501f1f0461d3f9c2da6fdc15e6dc820855c287","unresolved":false,"context_lines":[{"line_number":479,"context_line":"API calls, and translate them to Dragonflow Northbound database updates, as"},{"line_number":480,"context_line":"described in the models above."},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"The load balancer application only implements the \u0027Dragonflow\u0027 LBaaS"},{"line_number":483,"context_line":"provider."},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"The load balancer functionality is implemented with an LBaaS application."},{"line_number":486,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f485f77_223464dd","line":483,"range":{"start_line":482,"start_character":63,"end_line":483,"end_character":9},"in_reply_to":"1f485f77_5f6cd7cc","updated":"2017-11-19 14:15:04.000000000","message":"The service plugin (in Neutron) should know to ignore non-\u0027Dragonflow\u0027 providers. This is the meaning of this sentence.","commit_id":"765b961595990f227a3bd326003053cd6ffa2a18"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"82010f638492e14609380191fa96b60268c29f2b","unresolved":false,"context_lines":[{"line_number":494,"context_line":"the Load Balancer\u0027s logical port."},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"In some cases, OpenFlow is not powerful enough to handle the Endpoint, e.g."},{"line_number":497,"context_line":"an endpoint for a specific HTTP request URL. In this case, the packet will"},{"line_number":498,"context_line":"be uploaded to the controller, or passed to an external handler via an lport."},{"line_number":499,"context_line":"See below (l7_)for more details on these options."},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"When a listener is added, a new flow is created to match the endpoint,"},{"line_number":502,"context_line":"and divert it to the correct Group or Bundle (see options_)."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f485f77_ff5ca319","line":499,"range":{"start_line":497,"start_character":45,"end_line":499,"end_character":49},"updated":"2017-11-19 11:16:21.000000000","message":"Please state the decided option, seems you already have a flavor choice in the follow-up sections","commit_id":"765b961595990f227a3bd326003053cd6ffa2a18"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"5b1b05b41b04a3d7af1aa353fab1ed341d413406","unresolved":false,"context_lines":[{"line_number":496,"context_line":"In some cases, OpenFlow is not powerful enough to handle the Endpoint, e.g."},{"line_number":497,"context_line":"an endpoint for a specific HTTP request URL. In this case, the packet will"},{"line_number":498,"context_line":"be uploaded to the controller, or passed to an external handler via an lport."},{"line_number":499,"context_line":"See below (l7_)for more details on these options."},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"When a listener is added, a new flow is created to match the endpoint,"},{"line_number":502,"context_line":"and divert it to the correct Group or Bundle (see options_)."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f485f77_62413ca9","line":499,"range":{"start_line":499,"start_character":41,"end_line":499,"end_character":48},"updated":"2017-11-19 15:36:55.000000000","message":"link?","commit_id":"765b961595990f227a3bd326003053cd6ffa2a18"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"ef501f1f0461d3f9c2da6fdc15e6dc820855c287","unresolved":false,"context_lines":[{"line_number":494,"context_line":"the Load Balancer\u0027s logical port."},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"In some cases, OpenFlow is not powerful enough to handle the Endpoint, e.g."},{"line_number":497,"context_line":"an endpoint for a specific HTTP request URL. In this case, the packet will"},{"line_number":498,"context_line":"be uploaded to the controller, or passed to an external handler via an lport."},{"line_number":499,"context_line":"See below (l7_)for more details on these options."},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"When a listener is added, a new flow is created to match the endpoint,"},{"line_number":502,"context_line":"and divert it to the correct Group or Bundle (see options_)."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f485f77_a255f4fb","line":499,"range":{"start_line":497,"start_character":45,"end_line":499,"end_character":49},"in_reply_to":"1f485f77_ff5ca319","updated":"2017-11-19 14:15:04.000000000","message":"I\u0027d rather limit this discussion outside of the relevant section. Otherwise it would be difficult to re-align in case of changes.","commit_id":"765b961595990f227a3bd326003053cd6ffa2a18"}]}
