)]}'
{"doc/source/user/feature-classification/feature-matrix-pool.ini":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"95dd60bc784df97b183ed952e82bcbc140ac868b","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"[operation.lb_algorithm.SOURCE_IP_PORT]"},{"line_number":71,"context_line":"title\u003dlb_algorithm - SOURCE_IP_PORT"},{"line_number":72,"context_line":"notes\u003dThe pool will direct connections to the member server based on a has of the source IP and Port."},{"line_number":73,"context_line":"cli\u003dopenstack loadbalancer pool create --lb-algorithm SOURCE_IP_PORT --listener \u003clistener\u003e"},{"line_number":74,"context_line":"driver.amphora\u003dmissing"},{"line_number":75,"context_line":"driver.ovn\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":7,"id":"7faddb67_4d9ff401","line":72,"range":{"start_line":72,"start_character":71,"end_line":72,"end_character":74},"updated":"2019-08-28 08:27:23.000000000","message":"\"hash\" (BTW there\u0027s the same typo in SOURCE_IP section)","commit_id":"97b2835bac6a3a7d1d1e098f66cdf92f0aa42e56"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"cae48324a9b8d726568ae3a84ed8224899d52667","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"[operation.lb_algorithm.SOURCE_IP_PORT]"},{"line_number":71,"context_line":"title\u003dlb_algorithm - SOURCE_IP_PORT"},{"line_number":72,"context_line":"notes\u003dThe pool will direct connections to the member server based on a has of the source IP and Port."},{"line_number":73,"context_line":"cli\u003dopenstack loadbalancer pool create --lb-algorithm SOURCE_IP_PORT --listener \u003clistener\u003e"},{"line_number":74,"context_line":"driver.amphora\u003dmissing"},{"line_number":75,"context_line":"driver.ovn\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":7,"id":"7faddb67_6e79352d","line":72,"range":{"start_line":72,"start_character":71,"end_line":72,"end_character":74},"in_reply_to":"7faddb67_4d9ff401","updated":"2019-09-03 13:17:32.000000000","message":"Thanks!","commit_id":"97b2835bac6a3a7d1d1e098f66cdf92f0aa42e56"}],"octavia/api/root_controller.py":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"95dd60bc784df97b183ed952e82bcbc140ac868b","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        self._add_a_version(versions, \u0027v2.9\u0027, \u0027v2\u0027, \u0027SUPPORTED\u0027,"},{"line_number":80,"context_line":"                            \u00272019-03-04T00:00:00Z\u0027, host_url)"},{"line_number":81,"context_line":"        # Healthmonitor host header"},{"line_number":82,"context_line":"        self._add_a_version(versions, \u0027v2.10\u0027, \u0027v2\u0027, \u0027CURRENT\u0027,"},{"line_number":83,"context_line":"                            \u00272019-03-05T00:00:00Z\u0027, host_url)"},{"line_number":84,"context_line":"        # SOURCE_IP_PORT algorithm"},{"line_number":85,"context_line":"        self._add_a_version(versions, \u0027v2.11\u0027, \u0027v2\u0027, \u0027CURRENT\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_ad8f88cb","line":82,"range":{"start_line":82,"start_character":54,"end_line":82,"end_character":61},"updated":"2019-08-28 08:27:23.000000000","message":"it should be updated to \u0027SUPPORTED\u0027","commit_id":"97b2835bac6a3a7d1d1e098f66cdf92f0aa42e56"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"cae48324a9b8d726568ae3a84ed8224899d52667","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        self._add_a_version(versions, \u0027v2.9\u0027, \u0027v2\u0027, \u0027SUPPORTED\u0027,"},{"line_number":80,"context_line":"                            \u00272019-03-04T00:00:00Z\u0027, host_url)"},{"line_number":81,"context_line":"        # Healthmonitor host header"},{"line_number":82,"context_line":"        self._add_a_version(versions, \u0027v2.10\u0027, \u0027v2\u0027, \u0027CURRENT\u0027,"},{"line_number":83,"context_line":"                            \u00272019-03-05T00:00:00Z\u0027, host_url)"},{"line_number":84,"context_line":"        # SOURCE_IP_PORT algorithm"},{"line_number":85,"context_line":"        self._add_a_version(versions, \u0027v2.11\u0027, \u0027v2\u0027, \u0027CURRENT\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_0ea761aa","line":82,"range":{"start_line":82,"start_character":54,"end_line":82,"end_character":61},"in_reply_to":"7faddb67_ad8f88cb","updated":"2019-09-03 13:17:32.000000000","message":"ack thanks","commit_id":"97b2835bac6a3a7d1d1e098f66cdf92f0aa42e56"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"59d067114a66134fc6eadc54af1ccf288146c20d","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                            \u00272019-09-11T00:00:00Z\u0027, host_url)"},{"line_number":90,"context_line":"        # SOURCE_IP_PORT algorithm"},{"line_number":91,"context_line":"        self._add_a_version(versions, \u0027v2.13\u0027, \u0027v2\u0027, \u0027CURRENT\u0027,"},{"line_number":92,"context_line":"                            \u00272019-08-06T00:00:00Z\u0027, host_url)"},{"line_number":93,"context_line":"        return {\u0027versions\u0027: versions}"}],"source_content_type":"text/x-python","patch_set":15,"id":"5faad753_7fbfb360","line":92,"range":{"start_line":92,"start_character":34,"end_line":92,"end_character":39},"updated":"2019-09-13 15:18:04.000000000","message":"Not sure it matters the timestamp is older than the previous v2.12 version.","commit_id":"dbdc8a48f62b07b4ad83ae2aa2215ffc2d2ec885"}],"octavia/common/constants.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e353c98197e2826672ab1f81d7d38c56fded312d","unresolved":false,"context_lines":[{"line_number":119,"context_line":"# \u0027SOURCE_IP\u0027"},{"line_number":120,"context_line":"LB_ALGORITHM_SOURCE_IP \u003d lib_consts.LB_ALGORITHM_SOURCE_IP"},{"line_number":121,"context_line":"# \u0027SOURCE_IP_PORT\u0027"},{"line_number":122,"context_line":"LB_ALGORITHM_SOURCE_IP_PORT \u003d lib_consts.LB_ALGORITHM_SOURCE_IP_PORT"},{"line_number":123,"context_line":"SUPPORTED_LB_ALGORITHMS \u003d lib_consts.SUPPORTED_LB_ALGORITHMS"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"# \u0027operating_status\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_78cba6a4","line":122,"updated":"2019-07-25 15:25:38.000000000","message":"I don\u0027t think this is necessary as there is no legacy code using this algorithm.","commit_id":"816bb970eb6e3edf6ba5da2876c69ec5532d20a6"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"d3bad663b8943d4784d5b2ed4f5d0b2f64be6b80","unresolved":false,"context_lines":[{"line_number":119,"context_line":"# \u0027SOURCE_IP\u0027"},{"line_number":120,"context_line":"LB_ALGORITHM_SOURCE_IP \u003d lib_consts.LB_ALGORITHM_SOURCE_IP"},{"line_number":121,"context_line":"# \u0027SOURCE_IP_PORT\u0027"},{"line_number":122,"context_line":"LB_ALGORITHM_SOURCE_IP_PORT \u003d lib_consts.LB_ALGORITHM_SOURCE_IP_PORT"},{"line_number":123,"context_line":"SUPPORTED_LB_ALGORITHMS \u003d lib_consts.SUPPORTED_LB_ALGORITHMS"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"# \u0027operating_status\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_969186f4","line":122,"in_reply_to":"7faddb67_78cba6a4","updated":"2019-07-26 11:47:10.000000000","message":"You\u0027re right. Its not necessary. Deleted it :)","commit_id":"816bb970eb6e3edf6ba5da2876c69ec5532d20a6"}],"octavia/db/migration/alembic_migrations/versions/dcf88e59aae4_add_lb_algorithm_source_ip_port.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e353c98197e2826672ab1f81d7d38c56fded312d","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    result \u003d conn.execute(stmt)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    for row in result:"},{"line_number":51,"context_line":"        stmt \u003d pool_table.update().values(lb_algorithm\u003d\u0027SOURCE_IP_PORT\u0027).where("},{"line_number":52,"context_line":"            pool_table.c.id \u003d\u003d row[0])"},{"line_number":53,"context_line":"        op.execute(stmt)"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_98430214","line":51,"updated":"2019-07-25 15:25:38.000000000","message":"This troubles me a bit as users would see a change that they didn\u0027t make. Do we really need to do this?","commit_id":"816bb970eb6e3edf6ba5da2876c69ec5532d20a6"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"d3bad663b8943d4784d5b2ed4f5d0b2f64be6b80","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    result \u003d conn.execute(stmt)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    for row in result:"},{"line_number":51,"context_line":"        stmt \u003d pool_table.update().values(lb_algorithm\u003d\u0027SOURCE_IP_PORT\u0027).where("},{"line_number":52,"context_line":"            pool_table.c.id \u003d\u003d row[0])"},{"line_number":53,"context_line":"        op.execute(stmt)"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_310bfc24","line":51,"in_reply_to":"7faddb67_98430214","updated":"2019-07-26 11:47:10.000000000","message":"In OVN driver we validate if actually algorithm is supported by driver or not:\nhttps://github.com/openstack/networking-ovn/blob/master/networking_ovn/octavia/ovn_driver.py#L1602\nWe do it during pool_create and pool_update.\n\nSo if we\u0027re going to move the name from ROUND_RODIN to SOURCE_IP_PORT in provider driver we need to also update already created pools. Why?\nPotentially customer could create another pool and will be forced to use SOURCE_IP_PORT. In the list there could be pools with SOURCE_IP_PORT and with ROUND_ROBIN, but in fact we would support only SOURCE_IP_PORT. That\u0027s confusing :(\n\nFor me better would be to do this name change in the DB during upgrade and leave proper release note that actually algorithm used in OVN is not ROUND_ROBIN at all and we need to change the name of it.","commit_id":"816bb970eb6e3edf6ba5da2876c69ec5532d20a6"}],"releasenotes/notes/add-lb-algorithm-source-ip-port-ff86433143e43136.yaml":[{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"1093d7c6e7539ca0dd0e89f9ed0316b003be6b88","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    It is supported only by OVN provider driver."},{"line_number":6,"context_line":"upgrade:"},{"line_number":7,"context_line":"  - |"},{"line_number":8,"context_line":"    All listeners configured under OVN provider driver are"},{"line_number":9,"context_line":"    automatically migrated to SOURCE_IP_PORT algorithm."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7faddb67_1b9168f2","line":8,"range":{"start_line":8,"start_character":8,"end_line":8,"end_character":17},"updated":"2019-07-24 09:19:37.000000000","message":"s/listeners/pools/\n\nI\u0027ll change it, but first lets wait for CI results.","commit_id":"3912ed20be9707d53b827731874b99849e3cef5c"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e353c98197e2826672ab1f81d7d38c56fded312d","unresolved":false,"context_lines":[{"line_number":6,"context_line":"upgrade:"},{"line_number":7,"context_line":"  - |"},{"line_number":8,"context_line":"    All pools configured under OVN provider driver are"},{"line_number":9,"context_line":"    automatically migrated to SOURCE_IP_PORT algorithm."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"7faddb67_f86c769d","line":9,"updated":"2019-07-25 15:25:38.000000000","message":"We should call out why this is changing if we do it. The release notes should reflect that the previous round-robin was not actually working.","commit_id":"816bb970eb6e3edf6ba5da2876c69ec5532d20a6"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"d3bad663b8943d4784d5b2ed4f5d0b2f64be6b80","unresolved":false,"context_lines":[{"line_number":6,"context_line":"upgrade:"},{"line_number":7,"context_line":"  - |"},{"line_number":8,"context_line":"    All pools configured under OVN provider driver are"},{"line_number":9,"context_line":"    automatically migrated to SOURCE_IP_PORT algorithm."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"7faddb67_911bd071","line":9,"in_reply_to":"7faddb67_f86c769d","updated":"2019-07-26 11:47:10.000000000","message":"Ok, I\u0027ll leave a more detailed info here.","commit_id":"816bb970eb6e3edf6ba5da2876c69ec5532d20a6"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"aed98f5279b88828722c27b456a9d0e75a1debd7","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    New Load Balancing algorithm SOURCE_IP_PORT has been added."},{"line_number":5,"context_line":"    It is supported only by OVN provider driver."},{"line_number":6,"context_line":"upgrade:"},{"line_number":7,"context_line":"  - |"},{"line_number":8,"context_line":"    All listeners configured under OVN provider driver are"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7faddb67_431d9c75","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":48},"updated":"2019-08-27 09:56:14.000000000","message":"It might be supported by other provider drivers as well. Please consider removing this.","commit_id":"eee38136e8adf285f6565300fc89792523e9732c"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"cae48324a9b8d726568ae3a84ed8224899d52667","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    New Load Balancing algorithm SOURCE_IP_PORT has been added."},{"line_number":5,"context_line":"    It is supported only by OVN provider driver."},{"line_number":6,"context_line":"upgrade:"},{"line_number":7,"context_line":"  - |"},{"line_number":8,"context_line":"    All listeners configured under OVN provider driver are"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7faddb67_aedc0d45","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":48},"in_reply_to":"7faddb67_431d9c75","updated":"2019-09-03 13:17:32.000000000","message":"Ok","commit_id":"eee38136e8adf285f6565300fc89792523e9732c"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"aed98f5279b88828722c27b456a9d0e75a1debd7","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    It is supported only by OVN provider driver."},{"line_number":6,"context_line":"upgrade:"},{"line_number":7,"context_line":"  - |"},{"line_number":8,"context_line":"    All listeners configured under OVN provider driver are"},{"line_number":9,"context_line":"    automatically migrated to SOURCE_IP_PORT algorithm."},{"line_number":10,"context_line":"    Previously algorithm was named as ROUND_ROBIN, but in"},{"line_number":11,"context_line":"    fact it was not working like ROUND_ROBIN. After"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7faddb67_230bc02b","line":8,"range":{"start_line":8,"start_character":8,"end_line":8,"end_character":17},"updated":"2019-08-27 09:56:14.000000000","message":"pools","commit_id":"eee38136e8adf285f6565300fc89792523e9732c"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"cae48324a9b8d726568ae3a84ed8224899d52667","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    It is supported only by OVN provider driver."},{"line_number":6,"context_line":"upgrade:"},{"line_number":7,"context_line":"  - |"},{"line_number":8,"context_line":"    All listeners configured under OVN provider driver are"},{"line_number":9,"context_line":"    automatically migrated to SOURCE_IP_PORT algorithm."},{"line_number":10,"context_line":"    Previously algorithm was named as ROUND_ROBIN, but in"},{"line_number":11,"context_line":"    fact it was not working like ROUND_ROBIN. After"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7faddb67_4ee55909","line":8,"range":{"start_line":8,"start_character":8,"end_line":8,"end_character":17},"in_reply_to":"7faddb67_230bc02b","updated":"2019-09-03 13:17:32.000000000","message":"thanks for the catch, done","commit_id":"eee38136e8adf285f6565300fc89792523e9732c"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"aed98f5279b88828722c27b456a9d0e75a1debd7","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    investigating, it was observed that core OVN actually"},{"line_number":13,"context_line":"    utilizes a 5 Tuple Hash/RSS Hash in DPDK/Kernel as a Load"},{"line_number":14,"context_line":"    Balancing algorithm. The 5 Tuple Hash has Source IP, Destination"},{"line_number":15,"context_line":"    IP, Protocol, Source Port, Destination Port and a basis value."},{"line_number":16,"context_line":"    To reflect this the name was changed to SOURCE_IP_PORT."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7faddb67_b5fcc70c","line":15,"range":{"start_line":15,"start_character":48,"end_line":15,"end_character":51},"updated":"2019-08-27 09:56:14.000000000","message":"\"as\"?","commit_id":"eee38136e8adf285f6565300fc89792523e9732c"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"cae48324a9b8d726568ae3a84ed8224899d52667","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    investigating, it was observed that core OVN actually"},{"line_number":13,"context_line":"    utilizes a 5 Tuple Hash/RSS Hash in DPDK/Kernel as a Load"},{"line_number":14,"context_line":"    Balancing algorithm. The 5 Tuple Hash has Source IP, Destination"},{"line_number":15,"context_line":"    IP, Protocol, Source Port, Destination Port and a basis value."},{"line_number":16,"context_line":"    To reflect this the name was changed to SOURCE_IP_PORT."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7faddb67_6e90554f","line":15,"range":{"start_line":15,"start_character":48,"end_line":15,"end_character":51},"in_reply_to":"7faddb67_b5fcc70c","updated":"2019-09-03 13:17:32.000000000","message":"5 tuple hash contains Source IP, Destination IP, Protocol, Source Port, Destination Port and value set here:\nhttps://github.com/openvswitch/ovs/blob/74286173f4d7f51f78e9db09b07a6d4d65263252/lib/flow.c#L2255\n\nDon\u0027t ask me why. I\u0027ll remove \u0027and a basis value\u0027 from the comment here, due it is not worth to be mentioned.","commit_id":"eee38136e8adf285f6565300fc89792523e9732c"}]}
