)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a6ea01682bdf443bc1c6a3c545992bb00d13ef2c","unresolved":false,"context_lines":[{"line_number":11,"context_line":"combination of DSCP and ECN bits. ECN bits are always inherited"},{"line_number":12,"context_line":"during encapsulation."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"DocImpact: new configuration options"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ia59753ded73cd23019605668e60cfbc8841e803d"},{"line_number":17,"context_line":"Related-Bug: #1692951"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f2577a7_39697420","line":14,"updated":"2017-09-15 14:14:23.000000000","message":"The same as in patch for LB: I now think that DocImpact is not necessary here; Docs should be updated in this patch","commit_id":"9a6df2ac31803de684643bd9f0e5564fd809b422"}],"doc/source/admin/config-qos.rst":[{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"f4f56c4d429974002bcca17820febce9e9fe1c1c","unresolved":false,"context_lines":[{"line_number":123,"context_line":"   QoS currently works with ml2 only (SR-IOV, Open vSwitch, and linuxbridge"},{"line_number":124,"context_line":"   are drivers that are enabled for QoS in Mitaka release)."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"DSCP marking on outer header for overlay networks"},{"line_number":127,"context_line":"-------------------------------------------------"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"When using overlay networks (e.g., VxLAN), the DSCP marking rule only"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf57530f_3a557f51","line":126,"range":{"start_line":126,"start_character":0,"end_line":126,"end_character":49},"updated":"2017-09-20 11:35:55.000000000","message":"This is the same as for the LB review: https://review.openstack.org/#/c/501271/8/doc/source/admin/config-qos.rst\n\nMany lines can be merged between the two reviews","commit_id":"374e70dd556983d5ef0c061a25542ae8ab35e1a8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a12fe4b847f98eaaea37fa65c4b3e45fb1645b79","unresolved":false,"context_lines":[{"line_number":123,"context_line":"   QoS currently works with ml2 only (SR-IOV, Open vSwitch, and linuxbridge"},{"line_number":124,"context_line":"   are drivers that are enabled for QoS in Mitaka release)."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"DSCP marking on outer header for overlay networks"},{"line_number":127,"context_line":"-------------------------------------------------"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"When using overlay networks (e.g., VxLAN), the DSCP marking rule only"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f515b1d_a1635edc","line":126,"range":{"start_line":126,"start_character":0,"end_line":126,"end_character":49},"in_reply_to":"bf57530f_3a557f51","updated":"2017-09-24 15:16:23.000000000","message":"+1","commit_id":"374e70dd556983d5ef0c061a25542ae8ab35e1a8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2f096122d1e2605653c4fe827c9506e93e33fb38","unresolved":false,"context_lines":[{"line_number":158,"context_line":"   is overwritten."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"For the linuxbridge agent, these changes should be made in"},{"line_number":161,"context_line":"``/etc/neutron/plugins/ml2/openvswitch_agent.ini``."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Trusted projects policy.json configuration"},{"line_number":164,"context_line":"------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_93cc7c35","line":161,"updated":"2017-10-02 19:18:32.000000000","message":"sorry but I probably don\u0027t understand. Why openvswitch_agent.ini file should be used for linuxbridge agent? It would probably break some packages (like in Ubuntu), no?","commit_id":"93e2388313070afeb23e0765ba9ae3d31896ba8d"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"421cfd4d01eb51384e34674516f3b8dbc60cc0b0","unresolved":false,"context_lines":[{"line_number":158,"context_line":"   is overwritten."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"For the linuxbridge agent, these changes should be made in"},{"line_number":161,"context_line":"``/etc/neutron/plugins/ml2/openvswitch_agent.ini``."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Trusted projects policy.json configuration"},{"line_number":164,"context_line":"------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_2d843cd2","line":161,"in_reply_to":"7f515b1d_93cc7c35","updated":"2017-10-03 07:22:35.000000000","message":"Oups! That\u0027s just an 11 letters typo. Thanks.","commit_id":"93e2388313070afeb23e0765ba9ae3d31896ba8d"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"e0648e6c71ec45f9b48c21fb4ea13eb05d22db7c","unresolved":false,"context_lines":[{"line_number":133,"context_line":"For the openvswitch agent:"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"#. In order to set the DSCP value of the outer header, modify the ``tos``"},{"line_number":136,"context_line":"   configuration option in ``/etc/neutron/plugins/ml2/openvswitch_agent.ini``:"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"   .. code-block:: ini"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_89889dc6","line":136,"range":{"start_line":136,"start_character":54,"end_line":136,"end_character":71},"updated":"2017-10-10 19:50:00.000000000","message":"This comment applies to the whole file.\nIsn\u0027t this filename dependent on the agent being used (e.g. could be \u0027linuxbridge_agent.ini\u0027 or other)?\n\nShould this be reworded like we did in: https://review.openstack.org/#/c/510191/","commit_id":"111e03381ae13cd37d84726fb1abec89e4a346b2"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"19346a0f65f7fc52ad2b6ae4c2d6bff09d631327","unresolved":false,"context_lines":[{"line_number":133,"context_line":"For the openvswitch agent:"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"#. In order to set the DSCP value of the outer header, modify the ``tos``"},{"line_number":136,"context_line":"   configuration option in ``/etc/neutron/plugins/ml2/openvswitch_agent.ini``:"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"   .. code-block:: ini"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"5f4e5783_bdcca589","line":136,"range":{"start_line":136,"start_character":54,"end_line":136,"end_character":71},"in_reply_to":"5f4e5783_89889dc6","updated":"2017-10-11 07:50:16.000000000","message":"Yes, at the end I specify that for the linuxbridge agent, it should be linuxbridge_agent.ini","commit_id":"111e03381ae13cd37d84726fb1abec89e4a346b2"}],"neutron/agent/common/ovs_lib.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a6ea01682bdf443bc1c6a3c545992bb00d13ef2c","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                        vxlan_udp_port\u003dp_const.VXLAN_UDP_PORT,"},{"line_number":468,"context_line":"                        dont_fragment\u003dTrue,"},{"line_number":469,"context_line":"                        tunnel_csum\u003dFalse,"},{"line_number":470,"context_line":"                        tos\u003d0):"},{"line_number":471,"context_line":"        attrs \u003d [(\u0027type\u0027, tunnel_type)]"},{"line_number":472,"context_line":"        # TODO(twilson) This is an OrderedDict solely to make a test happy"},{"line_number":473,"context_line":"        options \u003d collections.OrderedDict()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_195a3882","line":470,"updated":"2017-09-15 14:14:23.000000000","message":"Why default is 0 rather than None?","commit_id":"9a6df2ac31803de684643bd9f0e5564fd809b422"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ea508468d7e5b385e07e9b661e9228422665652c","unresolved":false,"context_lines":[{"line_number":484,"context_line":"        options[\u0027out_key\u0027] \u003d \u0027flow\u0027"},{"line_number":485,"context_line":"        if tunnel_csum:"},{"line_number":486,"context_line":"            options[\u0027csum\u0027] \u003d str(tunnel_csum).lower()"},{"line_number":487,"context_line":"        if tos:"},{"line_number":488,"context_line":"            options[\u0027tos\u0027] \u003d str(tos)"},{"line_number":489,"context_line":"        attrs.append((\u0027options\u0027, options))"},{"line_number":490,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_75580055","line":487,"updated":"2017-09-18 11:04:49.000000000","message":"@Ali: If You will do it as Rodolfo suggested than 0 as default value has more sense for me :)","commit_id":"9a6df2ac31803de684643bd9f0e5564fd809b422"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"29c6dde3ca17feb5e40aa4e027f3efe017559621","unresolved":false,"context_lines":[{"line_number":484,"context_line":"        options[\u0027out_key\u0027] \u003d \u0027flow\u0027"},{"line_number":485,"context_line":"        if tunnel_csum:"},{"line_number":486,"context_line":"            options[\u0027csum\u0027] \u003d str(tunnel_csum).lower()"},{"line_number":487,"context_line":"        if tos:"},{"line_number":488,"context_line":"            options[\u0027tos\u0027] \u003d str(tos)"},{"line_number":489,"context_line":"        attrs.append((\u0027options\u0027, options))"},{"line_number":490,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_a7cd1f32","line":487,"range":{"start_line":487,"start_character":8,"end_line":487,"end_character":14},"updated":"2017-09-18 08:38:16.000000000","message":"If the default value is 0, you\u0027ll exit this condition.\n\nDo you really need this branch? You can directly assign\n  options[\u0027tos\u0027] \u003d str(tos)","commit_id":"9a6df2ac31803de684643bd9f0e5564fd809b422"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"22a478a45148454c7aee3f0c95f115de038fc080","unresolved":false,"context_lines":[{"line_number":484,"context_line":"        options[\u0027out_key\u0027] \u003d \u0027flow\u0027"},{"line_number":485,"context_line":"        if tunnel_csum:"},{"line_number":486,"context_line":"            options[\u0027csum\u0027] \u003d str(tunnel_csum).lower()"},{"line_number":487,"context_line":"        if tos:"},{"line_number":488,"context_line":"            options[\u0027tos\u0027] \u003d str(tos)"},{"line_number":489,"context_line":"        attrs.append((\u0027options\u0027, options))"},{"line_number":490,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_ddd47ceb","line":487,"range":{"start_line":487,"start_character":8,"end_line":487,"end_character":14},"in_reply_to":"5f2577a7_a7cd1f32","updated":"2017-09-18 09:57:21.000000000","message":"The intention was to leave the previous behavior without tos. But you are right, OVS doesn\u0027t add tos option to the tunnel port parameters if tos\u003d0.\n\nIf I change the default value to None rather than 0 as Slawek suggeted, I will have to leave the condition.","commit_id":"9a6df2ac31803de684643bd9f0e5564fd809b422"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"f4f56c4d429974002bcca17820febce9e9fe1c1c","unresolved":false,"context_lines":[{"line_number":484,"context_line":"        options[\u0027out_key\u0027] \u003d \u0027flow\u0027"},{"line_number":485,"context_line":"        if tunnel_csum:"},{"line_number":486,"context_line":"            options[\u0027csum\u0027] \u003d str(tunnel_csum).lower()"},{"line_number":487,"context_line":"        if tos:"},{"line_number":488,"context_line":"            options[\u0027tos\u0027] \u003d str(tos)"},{"line_number":489,"context_line":"        attrs.append((\u0027options\u0027, options))"},{"line_number":490,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bf57530f_3acfbf80","line":487,"range":{"start_line":487,"start_character":0,"end_line":487,"end_character":15},"updated":"2017-09-20 11:35:55.000000000","message":"I left this condition because I tested with a default value of tos\u003d0, and OVS adds in the interface options an ugly tos\u003d\"0\" that does nothing. It behaves as if the option wasn\u0027t there. So with the condition I leave the previous behavior, without tos.","commit_id":"374e70dd556983d5ef0c061a25542ae8ab35e1a8"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"12a3b19c7196cbf930578149a382604e7591116e","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                        vxlan_udp_port\u003dp_const.VXLAN_UDP_PORT,"},{"line_number":468,"context_line":"                        dont_fragment\u003dTrue,"},{"line_number":469,"context_line":"                        tunnel_csum\u003dFalse,"},{"line_number":470,"context_line":"                        dscp\u003dNone):"},{"line_number":471,"context_line":"        attrs \u003d [(\u0027type\u0027, tunnel_type)]"},{"line_number":472,"context_line":"        # TODO(twilson) This is an OrderedDict solely to make a test happy"},{"line_number":473,"context_line":"        options \u003d collections.OrderedDict()"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f4b6375_5bf3b909","line":470,"range":{"start_line":470,"start_character":24,"end_line":470,"end_character":28},"updated":"2017-11-07 17:22:41.000000000","message":"rename to tos, if the dscp has already been bit shifted then this is the tos not dscp","commit_id":"9e4a99cf437063cba64db4347f2b0a9aa8f042fd"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"b386c8e8b5504d333a3e0d1abc639bd6a8466608","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                        vxlan_udp_port\u003dp_const.VXLAN_UDP_PORT,"},{"line_number":468,"context_line":"                        dont_fragment\u003dTrue,"},{"line_number":469,"context_line":"                        tunnel_csum\u003dFalse,"},{"line_number":470,"context_line":"                        dscp\u003dNone):"},{"line_number":471,"context_line":"        attrs \u003d [(\u0027type\u0027, tunnel_type)]"},{"line_number":472,"context_line":"        # TODO(twilson) This is an OrderedDict solely to make a test happy"},{"line_number":473,"context_line":"        options \u003d collections.OrderedDict()"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f4b6375_a4d722ef","line":470,"range":{"start_line":470,"start_character":24,"end_line":470,"end_character":28},"in_reply_to":"3f4b6375_5bf3b909","updated":"2017-11-08 09:12:23.000000000","message":"Right, done everywhere.","commit_id":"9e4a99cf437063cba64db4347f2b0a9aa8f042fd"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"12a3b19c7196cbf930578149a382604e7591116e","unresolved":false,"context_lines":[{"line_number":485,"context_line":"        if tunnel_csum:"},{"line_number":486,"context_line":"            options[\u0027csum\u0027] \u003d str(tunnel_csum).lower()"},{"line_number":487,"context_line":"        if dscp:"},{"line_number":488,"context_line":"            options[\u0027tos\u0027] \u003d str(dscp)"},{"line_number":489,"context_line":"        attrs.append((\u0027options\u0027, options))"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"        return self.add_port(port_name, *attrs)"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f4b6375_fbe38532","line":488,"range":{"start_line":488,"start_character":33,"end_line":488,"end_character":37},"updated":"2017-11-07 17:22:41.000000000","message":"ditto","commit_id":"9e4a99cf437063cba64db4347f2b0a9aa8f042fd"}],"neutron/conf/plugins/ml2/drivers/agent.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0469e99d386c0f130a3e3a9fbc836953b4b4ee4b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"               help\u003d_(\"The TOS value to use for outer headers during tunnel \""},{"line_number":31,"context_line":"                      \"encapsulation. TOS is made of DSCP and ECN \""},{"line_number":32,"context_line":"                      \"bits. ECN is always inherited and must be zero, \""},{"line_number":33,"context_line":"                      \"otherwise the right DSCP mark won\u0027t be applied.\")),"},{"line_number":34,"context_line":"    cfg.BoolOpt(\u0027tos_inherit\u0027, default\u003dFalse,"},{"line_number":35,"context_line":"                help\u003d_(\"If set to true, the TOS value of tunnel \""},{"line_number":36,"context_line":"                       \"interfaces is overwritten and set to inherit. \""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_002e0cfa","line":33,"updated":"2017-09-29 20:59:19.000000000","message":"maybe You should add min/max values for validation? I suppose that e.g. \"-100\" is not good value for tos, right?","commit_id":"bfa6a0b7ad3691b2dcbe4c14cc9e0a28cb7bec02"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"ef9a83bf2f30c64f40d758e46b6d8e3627cdd979","unresolved":false,"context_lines":[{"line_number":30,"context_line":"               help\u003d_(\"The TOS value to use for outer headers during tunnel \""},{"line_number":31,"context_line":"                      \"encapsulation. TOS is made of DSCP and ECN \""},{"line_number":32,"context_line":"                      \"bits. ECN is always inherited and must be zero, \""},{"line_number":33,"context_line":"                      \"otherwise the right DSCP mark won\u0027t be applied.\")),"},{"line_number":34,"context_line":"    cfg.BoolOpt(\u0027tos_inherit\u0027, default\u003dFalse,"},{"line_number":35,"context_line":"                help\u003d_(\"If set to true, the TOS value of tunnel \""},{"line_number":36,"context_line":"                       \"interfaces is overwritten and set to inherit. \""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_dcee9120","line":33,"in_reply_to":"7f515b1d_002e0cfa","updated":"2017-10-02 09:00:47.000000000","message":"Ok","commit_id":"bfa6a0b7ad3691b2dcbe4c14cc9e0a28cb7bec02"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"359be67445d868047b9b059f788165f21d2e5313","unresolved":false,"context_lines":[{"line_number":26,"context_line":"               help\u003d_(\"Set new timeout in seconds for new rpc calls after \""},{"line_number":27,"context_line":"                      \"agent receives SIGTERM. If value is set to 0, rpc \""},{"line_number":28,"context_line":"                      \"timeout won\u0027t be changed\")),"},{"line_number":29,"context_line":"    cfg.IntOpt(\u0027tos\u0027, min\u003d0, max\u003d252,"},{"line_number":30,"context_line":"               help\u003d_(\"The TOS value to use for outer headers during tunnel \""},{"line_number":31,"context_line":"                      \"encapsulation. TOS is made of DSCP and ECN \""},{"line_number":32,"context_line":"                      \"bits. ECN is always inherited and must be zero, \""}],"source_content_type":"text/x-python","patch_set":9,"id":"5f4e5783_edfdbd3a","line":29,"range":{"start_line":29,"start_character":33,"end_line":29,"end_character":36},"updated":"2017-10-11 16:14:53.000000000","message":"It might be easier to validate the input if we take in the dscp value minus the ecn value (i.e. take in a value from 0-63 and multiply it by 4/bit shift by 2 internally).\nFrom my understanding, there are only a couple of dozen valid dscp marks, should these be noted or just accept any value?","commit_id":"6bb470f0d34ccadfe81d521d73f2cf27d0ebda61"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"d28b4a012fe6bcf3750864ebce698ac13953a146","unresolved":false,"context_lines":[{"line_number":30,"context_line":"               help\u003d_(\"The TOS value to use for outer headers during tunnel \""},{"line_number":31,"context_line":"                      \"encapsulation. TOS is made of DSCP and ECN \""},{"line_number":32,"context_line":"                      \"bits. ECN is always inherited and must be zero, \""},{"line_number":33,"context_line":"                      \"otherwise the right DSCP mark won\u0027t be applied.\")),"},{"line_number":34,"context_line":"    cfg.BoolOpt(\u0027tos_inherit\u0027, default\u003dFalse,"},{"line_number":35,"context_line":"                help\u003d_(\"If set to true, the TOS value of tunnel \""},{"line_number":36,"context_line":"                       \"interfaces is overwritten and set to inherit. \""}],"source_content_type":"text/x-python","patch_set":9,"id":"5f4e5783_a5106801","line":33,"updated":"2017-10-17 16:15:03.000000000","message":"I think that it is important to offer compatibility with old configs still having \u0027tos\u0027 under \u0027vxlan\u0027. I think this can be achieved by adding deprecated_group\u003d\u0027vxlan\u0027 in this definition.  This would need to be tested though.","commit_id":"6bb470f0d34ccadfe81d521d73f2cf27d0ebda61"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"7bfc753525cc492e072ba5de118e60dbfac7cac6","unresolved":false,"context_lines":[{"line_number":27,"context_line":"                      \"agent receives SIGTERM. If value is set to 0, rpc \""},{"line_number":28,"context_line":"                      \"timeout won\u0027t be changed\")),"},{"line_number":29,"context_line":"    cfg.IntOpt(\u0027dscp\u0027, min\u003d0, max\u003d63,"},{"line_number":30,"context_line":"               deprecated_name\u003d\u0027tos\u0027, deprecated_group\u003d\u0027vxlan\u0027,"},{"line_number":31,"context_line":"               help\u003d_(\"The DSCP value to use for outer headers during tunnel \""},{"line_number":32,"context_line":"                      \"encapsulation.\")),"},{"line_number":33,"context_line":"    cfg.BoolOpt(\u0027dscp_inherit\u0027, default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_3d31dfed","line":30,"range":{"start_line":30,"start_character":14,"end_line":30,"end_character":63},"updated":"2017-10-30 12:31:57.000000000","message":"As discussed live minutes ago, doing this may result in admins wrongly thinking that renaming the option in their config is sufficient, hidding the fact that the value also has to be converted (/4).","commit_id":"3f2111c146d4a363838653bc5a800c51cd885ad8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8c5abe964000fd9eff369dce5bd515c054c82ae3","unresolved":false,"context_lines":[{"line_number":30,"context_line":"               help\u003d_(\"The DSCP value to use for outer headers during tunnel \""},{"line_number":31,"context_line":"                      \"encapsulation.\")),"},{"line_number":32,"context_line":"    cfg.BoolOpt(\u0027dscp_inherit\u0027, default\u003dFalse,"},{"line_number":33,"context_line":"                help\u003d_(\"If set to true, the DSCP value of tunnel \""},{"line_number":34,"context_line":"                       \"interfaces is overwritten and set to inherit. \""},{"line_number":35,"context_line":"                       \"The DSCP value of the inner header is then \""},{"line_number":36,"context_line":"                       \"copied to the outer header.\")),"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f485f77_e0ed64f0","line":33,"range":{"start_line":33,"start_character":34,"end_line":33,"end_character":38},"updated":"2017-11-16 12:01:44.000000000","message":"True","commit_id":"c378a1cb663da805997d0b3bd267076613c1e052"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b11337f0d4ad49821d819cfb59aa24294b2161e4","unresolved":false,"context_lines":[{"line_number":30,"context_line":"               help\u003d_(\"The DSCP value to use for outer headers during tunnel \""},{"line_number":31,"context_line":"                      \"encapsulation.\")),"},{"line_number":32,"context_line":"    cfg.BoolOpt(\u0027dscp_inherit\u0027, default\u003dFalse,"},{"line_number":33,"context_line":"                help\u003d_(\"If set to true, the DSCP value of tunnel \""},{"line_number":34,"context_line":"                       \"interfaces is overwritten and set to inherit. \""},{"line_number":35,"context_line":"                       \"The DSCP value of the inner header is then \""},{"line_number":36,"context_line":"                       \"copied to the outer header.\")),"}],"source_content_type":"text/x-python","patch_set":18,"id":"7f96bb07_7154cc21","line":33,"range":{"start_line":33,"start_character":34,"end_line":33,"end_character":38},"updated":"2018-01-16 15:11:56.000000000","message":"True","commit_id":"ac4cac8de970c08c177c1286c7b690ec376987bd"}],"neutron/conf/plugins/ml2/drivers/linuxbridge.py":[{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"d28b4a012fe6bcf3750864ebce698ac13953a146","unresolved":false,"context_lines":[{"line_number":28,"context_line":"                       \"agent is managed by ml2 plugin using linuxbridge \""},{"line_number":29,"context_line":"                       \"mechanism driver\")),"},{"line_number":30,"context_line":"    cfg.IntOpt(\u0027ttl\u0027,"},{"line_number":31,"context_line":"               help\u003d_(\"TTL for vxlan interface protocol packets.\")),"},{"line_number":32,"context_line":"    cfg.StrOpt(\u0027vxlan_group\u0027, default\u003dDEFAULT_VXLAN_GROUP,"},{"line_number":33,"context_line":"               help\u003d_(\"Multicast group(s) for vxlan interface. A range of \""},{"line_number":34,"context_line":"                      \"group addresses may be specified by using CIDR \""},{"line_number":35,"context_line":"                      \"notation. Specifying a range allows different VNIs to \""}],"source_content_type":"text/x-python","patch_set":9,"id":"5f4e5783_a5f4e8f1","line":32,"range":{"start_line":31,"start_character":4,"end_line":32,"end_character":5},"updated":"2017-10-17 16:15:03.000000000","message":"We need to offer some form of backward compat with configurations that define tos. (see comment on previous file)","commit_id":"6bb470f0d34ccadfe81d521d73f2cf27d0ebda61"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"1dff31cebfc3f841930b44e75b241fd22e63b9b5","unresolved":false,"context_lines":[{"line_number":28,"context_line":"                       \"agent is managed by ml2 plugin using linuxbridge \""},{"line_number":29,"context_line":"                       \"mechanism driver\")),"},{"line_number":30,"context_line":"    cfg.IntOpt(\u0027ttl\u0027,"},{"line_number":31,"context_line":"               help\u003d_(\"TTL for vxlan interface protocol packets.\")),"},{"line_number":32,"context_line":"    cfg.StrOpt(\u0027vxlan_group\u0027, default\u003dDEFAULT_VXLAN_GROUP,"},{"line_number":33,"context_line":"               help\u003d_(\"Multicast group(s) for vxlan interface. A range of \""},{"line_number":34,"context_line":"                      \"group addresses may be specified by using CIDR \""},{"line_number":35,"context_line":"                      \"notation. Specifying a range allows different VNIs to \""}],"source_content_type":"text/x-python","patch_set":10,"id":"3f4b6375_6954d321","line":32,"range":{"start_line":31,"start_character":68,"end_line":32,"end_character":4},"updated":"2017-10-24 09:48:27.000000000","message":"I think we really need a smooth deprecation path for \u0027tos\u0027: supporting the option with an explicit target removal timeframe (e.g. S-release ?).\n\nThe documentation for \u0027tos\u0027 will need to state that if both \u0027tos\u0027 and \u0027dscp\u0027 are provided, \u0027dscp\u0027 takes precedence. And the linuxbridge code will need to be adjusted to take into account both values.","commit_id":"2f2315970ab33b28ce2900028da891934251572a"}],"neutron/conf/plugins/ml2/drivers/ovs_conf.py":[{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"b72fa4df4964b8c2a61e6440c2f7b7843d854fbf","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                help\u003d_(\"The TOS value to use for outer headers during tunnel \""},{"line_number":118,"context_line":"                       \"encapsulation. Can be set to inherit to copy the \""},{"line_number":119,"context_line":"                       \"inner header TOS value. TOS is made of DSCP and ECN \""},{"line_number":120,"context_line":"                       \"bits. ECN is always inherited and must be zero.\")),"},{"line_number":121,"context_line":"    cfg.IntOpt(\u0027veth_mtu\u0027, default\u003d9000,"},{"line_number":122,"context_line":"               help\u003d_(\"MTU size of veth interfaces\")),"},{"line_number":123,"context_line":"    cfg.BoolOpt(\u0027l2_population\u0027, default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_2c6941f8","line":120,"range":{"start_line":120,"start_character":30,"end_line":120,"end_character":70},"updated":"2017-09-07 03:53:03.000000000","message":"You mean the ECN bits in the TOS, right?","commit_id":"74bdda7b015c9bd232f5088d7e43d7a454a25b3d"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"2a5efc4f44af167fcc06092007676a8db020c8b6","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                help\u003d_(\"The TOS value to use for outer headers during tunnel \""},{"line_number":118,"context_line":"                       \"encapsulation. Can be set to inherit to copy the \""},{"line_number":119,"context_line":"                       \"inner header TOS value. TOS is made of DSCP and ECN \""},{"line_number":120,"context_line":"                       \"bits. ECN is always inherited and must be zero.\")),"},{"line_number":121,"context_line":"    cfg.IntOpt(\u0027veth_mtu\u0027, default\u003d9000,"},{"line_number":122,"context_line":"               help\u003d_(\"MTU size of veth interfaces\")),"},{"line_number":123,"context_line":"    cfg.BoolOpt(\u0027l2_population\u0027, default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_9b1f4907","line":120,"range":{"start_line":120,"start_character":30,"end_line":120,"end_character":70},"in_reply_to":"7f287b81_2c6941f8","updated":"2017-09-07 08:36:45.000000000","message":"Yes indeed, it\u0027s from http://openvswitch.org/support/dist-docs/ovs-vswitchd.conf.db.5.html in the options:tos of VxLAN tunnels","commit_id":"74bdda7b015c9bd232f5088d7e43d7a454a25b3d"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a6ea01682bdf443bc1c6a3c545992bb00d13ef2c","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    cfg.IntOpt(\u0027tos\u0027, default\u003d0,"},{"line_number":117,"context_line":"               help\u003d_(\"The TOS value to use for outer headers during tunnel \""},{"line_number":118,"context_line":"                      \"encapsulation. TOS is made of DSCP and ECN \""},{"line_number":119,"context_line":"                      \"bits. ECN is always inherited and must be zero.\")),"},{"line_number":120,"context_line":"    cfg.BoolOpt(\u0027tos_inherit\u0027, default\u003dFalse,"},{"line_number":121,"context_line":"               help\u003d_(\"If set to true, the TOS value of vxlan \""},{"line_number":122,"context_line":"                      \"interfaces is overwritten and set to inherit. \""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_f95e4c74","line":119,"updated":"2017-09-15 14:14:23.000000000","message":"Maybe word of explanation that if set to 0 than it will be not used would be usefull?","commit_id":"9a6df2ac31803de684643bd9f0e5564fd809b422"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"29c6dde3ca17feb5e40aa4e027f3efe017559621","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    cfg.IntOpt(\u0027tos\u0027, default\u003d0,"},{"line_number":117,"context_line":"               help\u003d_(\"The TOS value to use for outer headers during tunnel \""},{"line_number":118,"context_line":"                      \"encapsulation. TOS is made of DSCP and ECN \""},{"line_number":119,"context_line":"                      \"bits. ECN is always inherited and must be zero.\")),"},{"line_number":120,"context_line":"    cfg.BoolOpt(\u0027tos_inherit\u0027, default\u003dFalse,"},{"line_number":121,"context_line":"               help\u003d_(\"If set to true, the TOS value of vxlan \""},{"line_number":122,"context_line":"                      \"interfaces is overwritten and set to inherit. \""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_879c630e","line":119,"range":{"start_line":119,"start_character":29,"end_line":119,"end_character":69},"updated":"2017-09-18 08:38:16.000000000","message":"Why? Actually there is a RFE to be able to set those bits.","commit_id":"9a6df2ac31803de684643bd9f0e5564fd809b422"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"22a478a45148454c7aee3f0c95f115de038fc080","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    cfg.IntOpt(\u0027tos\u0027, default\u003d0,"},{"line_number":117,"context_line":"               help\u003d_(\"The TOS value to use for outer headers during tunnel \""},{"line_number":118,"context_line":"                      \"encapsulation. TOS is made of DSCP and ECN \""},{"line_number":119,"context_line":"                      \"bits. ECN is always inherited and must be zero.\")),"},{"line_number":120,"context_line":"    cfg.BoolOpt(\u0027tos_inherit\u0027, default\u003dFalse,"},{"line_number":121,"context_line":"               help\u003d_(\"If set to true, the TOS value of vxlan \""},{"line_number":122,"context_line":"                      \"interfaces is overwritten and set to inherit. \""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_ddc35c56","line":119,"range":{"start_line":119,"start_character":29,"end_line":119,"end_character":69},"in_reply_to":"5f2577a7_879c630e","updated":"2017-09-18 09:57:21.000000000","message":"This is an OVS behavior. If ECN is not set to zero in the tos option of OVS tunnel ports, OVS will not set or inherit the DSCP part. I should include this warning in the next patch set.\n\nYes I follow the RFE to set the ECN bits, but it should be applied to the inner header rather than the outer header, while this tos option is exclusive to the outer header.","commit_id":"9a6df2ac31803de684643bd9f0e5564fd809b422"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"29c6dde3ca17feb5e40aa4e027f3efe017559621","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                      \"interfaces is overwritten and set to inherit. \""},{"line_number":123,"context_line":"                      \"The TOS value of the inner header is then \""},{"line_number":124,"context_line":"                      \"copied to the outer header. TOS is made of DSCP \""},{"line_number":125,"context_line":"                      \" and ECN bits. ECN is always inherited.\")),"},{"line_number":126,"context_line":"    cfg.IntOpt(\u0027veth_mtu\u0027, default\u003d9000,"},{"line_number":127,"context_line":"               help\u003d_(\"MTU size of veth interfaces\")),"},{"line_number":128,"context_line":"    cfg.BoolOpt(\u0027l2_population\u0027, default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_478afbbe","line":125,"range":{"start_line":125,"start_character":38,"end_line":125,"end_character":61},"updated":"2017-09-18 08:38:16.000000000","message":"ECN is part of TOS. If you inherit the TOS value, ECN is implicitly inherited within.","commit_id":"9a6df2ac31803de684643bd9f0e5564fd809b422"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a6ea01682bdf443bc1c6a3c545992bb00d13ef2c","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                      \"interfaces is overwritten and set to inherit. \""},{"line_number":123,"context_line":"                      \"The TOS value of the inner header is then \""},{"line_number":124,"context_line":"                      \"copied to the outer header. TOS is made of DSCP \""},{"line_number":125,"context_line":"                      \" and ECN bits. ECN is always inherited.\")),"},{"line_number":126,"context_line":"    cfg.IntOpt(\u0027veth_mtu\u0027, default\u003d9000,"},{"line_number":127,"context_line":"               help\u003d_(\"MTU size of veth interfaces\")),"},{"line_number":128,"context_line":"    cfg.BoolOpt(\u0027l2_population\u0027, default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_d9571058","line":125,"updated":"2017-09-15 14:14:23.000000000","message":"nit: extra space at the beginning of line is not necessary","commit_id":"9a6df2ac31803de684643bd9f0e5564fd809b422"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"22a478a45148454c7aee3f0c95f115de038fc080","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                      \"interfaces is overwritten and set to inherit. \""},{"line_number":123,"context_line":"                      \"The TOS value of the inner header is then \""},{"line_number":124,"context_line":"                      \"copied to the outer header. TOS is made of DSCP \""},{"line_number":125,"context_line":"                      \" and ECN bits. ECN is always inherited.\")),"},{"line_number":126,"context_line":"    cfg.IntOpt(\u0027veth_mtu\u0027, default\u003d9000,"},{"line_number":127,"context_line":"               help\u003d_(\"MTU size of veth interfaces\")),"},{"line_number":128,"context_line":"    cfg.BoolOpt(\u0027l2_population\u0027, default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_fd6a987e","line":125,"range":{"start_line":125,"start_character":38,"end_line":125,"end_character":61},"in_reply_to":"5f2577a7_478afbbe","updated":"2017-09-18 09:57:21.000000000","message":"ECN is inherited with the implementation of RFC 6040 in the linux kernel since 3.7: http://elixir.free-electrons.com/linux/latest/source/include/net/inet_ecn.h#L166\n\nThis will happen even if TOS is not set to inherit.","commit_id":"9a6df2ac31803de684643bd9f0e5564fd809b422"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a12fe4b847f98eaaea37fa65c4b3e45fb1645b79","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                      \"interfaces is overwritten and set to inherit. \""},{"line_number":124,"context_line":"                      \"The TOS value of the inner header is then \""},{"line_number":125,"context_line":"                      \"copied to the outer header. TOS is made of DSCP \""},{"line_number":126,"context_line":"                      \"and ECN bits. ECN is always inherited.\")),"},{"line_number":127,"context_line":"    cfg.IntOpt(\u0027veth_mtu\u0027, default\u003d9000,"},{"line_number":128,"context_line":"               help\u003d_(\"MTU size of veth interfaces\")),"},{"line_number":129,"context_line":"    cfg.BoolOpt(\u0027l2_population\u0027, default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_619b26c9","line":126,"updated":"2017-09-24 15:16:23.000000000","message":"maybe those two options could be \"merged\" with linuxbridge agent options to not duplicate them in two places? I think that those options are the same for both agents, no?","commit_id":"374e70dd556983d5ef0c061a25542ae8ab35e1a8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"5f28221fd49c222cfd58d97fca9ba2dafb3e1e13","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                      \"interfaces is overwritten and set to inherit. \""},{"line_number":124,"context_line":"                      \"The TOS value of the inner header is then \""},{"line_number":125,"context_line":"                      \"copied to the outer header. TOS is made of DSCP \""},{"line_number":126,"context_line":"                      \"and ECN bits. ECN is always inherited.\")),"},{"line_number":127,"context_line":"    cfg.IntOpt(\u0027veth_mtu\u0027, default\u003d9000,"},{"line_number":128,"context_line":"               help\u003d_(\"MTU size of veth interfaces\")),"},{"line_number":129,"context_line":"    cfg.BoolOpt(\u0027l2_population\u0027, default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_0ecc9633","line":126,"in_reply_to":"7f515b1d_38dd5c14","updated":"2017-09-25 10:45:17.000000000","message":"so to not break LB option maybe You can do something like deprecate old LB option and propose new for both agents? then in LB agent maybe some short warning in case if both would be set or something like that? What You think about it?","commit_id":"374e70dd556983d5ef0c061a25542ae8ab35e1a8"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"55344fc7d013ed7de2e72c930eb1f212f4825b1d","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                      \"interfaces is overwritten and set to inherit. \""},{"line_number":124,"context_line":"                      \"The TOS value of the inner header is then \""},{"line_number":125,"context_line":"                      \"copied to the outer header. TOS is made of DSCP \""},{"line_number":126,"context_line":"                      \"and ECN bits. ECN is always inherited.\")),"},{"line_number":127,"context_line":"    cfg.IntOpt(\u0027veth_mtu\u0027, default\u003d9000,"},{"line_number":128,"context_line":"               help\u003d_(\"MTU size of veth interfaces\")),"},{"line_number":129,"context_line":"    cfg.BoolOpt(\u0027l2_population\u0027, default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_38dd5c14","line":126,"in_reply_to":"7f515b1d_619b26c9","updated":"2017-09-25 10:24:38.000000000","message":"Yes it was proposed by @Thomas. I think it breaks previous configurations on LB but it\u0027s ok I guess for TOS. I should put them both in the common agent options.","commit_id":"374e70dd556983d5ef0c061a25542ae8ab35e1a8"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"3dded2906b59f051cfaeef488f2fa87fde670c20","unresolved":false,"context_lines":[{"line_number":97,"context_line":"]"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"agent_opts \u003d ["},{"line_number":100,"context_line":"    cfg.IntOpt(\u0027polling_interval\u0027, default\u003d2,"},{"line_number":101,"context_line":"               help\u003d_(\"The number of seconds the agent will wait between \""},{"line_number":102,"context_line":"                      \"polling for local device changes.\")),"},{"line_number":103,"context_line":"    cfg.BoolOpt(\u0027minimize_polling\u0027,"},{"line_number":104,"context_line":"                default\u003dTrue,"},{"line_number":105,"context_line":"                help\u003d_(\"Minimize polling by monitoring ovsdb for interface \""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_53174ea5","side":"PARENT","line":102,"range":{"start_line":100,"start_character":0,"end_line":102,"end_character":60},"updated":"2017-09-29 08:23:00.000000000","message":"Removed this and \u0027quitting_rpc_timeout\u0027 because they were already existing in the agent conf","commit_id":"8d0f284c2f271436598e2904b3552a6568445c7d"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0469e99d386c0f130a3e3a9fbc836953b4b4ee4b","unresolved":false,"context_lines":[{"line_number":97,"context_line":"]"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"agent_opts \u003d ["},{"line_number":100,"context_line":"    cfg.IntOpt(\u0027polling_interval\u0027, default\u003d2,"},{"line_number":101,"context_line":"               help\u003d_(\"The number of seconds the agent will wait between \""},{"line_number":102,"context_line":"                      \"polling for local device changes.\")),"},{"line_number":103,"context_line":"    cfg.BoolOpt(\u0027minimize_polling\u0027,"},{"line_number":104,"context_line":"                default\u003dTrue,"},{"line_number":105,"context_line":"                help\u003d_(\"Minimize polling by monitoring ovsdb for interface \""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_60cee05a","side":"PARENT","line":102,"range":{"start_line":100,"start_character":0,"end_line":102,"end_character":60},"in_reply_to":"7f515b1d_53174ea5","updated":"2017-09-29 20:59:19.000000000","message":"but how it\u0027s related to this patch?","commit_id":"8d0f284c2f271436598e2904b3552a6568445c7d"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"ef9a83bf2f30c64f40d758e46b6d8e3627cdd979","unresolved":false,"context_lines":[{"line_number":97,"context_line":"]"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"agent_opts \u003d ["},{"line_number":100,"context_line":"    cfg.IntOpt(\u0027polling_interval\u0027, default\u003d2,"},{"line_number":101,"context_line":"               help\u003d_(\"The number of seconds the agent will wait between \""},{"line_number":102,"context_line":"                      \"polling for local device changes.\")),"},{"line_number":103,"context_line":"    cfg.BoolOpt(\u0027minimize_polling\u0027,"},{"line_number":104,"context_line":"                default\u003dTrue,"},{"line_number":105,"context_line":"                help\u003d_(\"Minimize polling by monitoring ovsdb for interface \""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_7c279dcb","side":"PARENT","line":102,"range":{"start_line":100,"start_character":0,"end_line":102,"end_character":60},"in_reply_to":"7f515b1d_60cee05a","updated":"2017-10-02 09:00:47.000000000","message":"To make tos and tos_inherit common between OVS and LB, I have put them in the agent configuration file. OVS is redefining polling_interval and quitting_rpc_timeout which are already present in the agent conf, so I removed them from here which I thought was the right thing to do.","commit_id":"8d0f284c2f271436598e2904b3552a6568445c7d"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0469e99d386c0f130a3e3a9fbc836953b4b4ee4b","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    cfg.IntOpt(\u0027quitting_rpc_timeout\u0027, default\u003d10,"},{"line_number":133,"context_line":"               help\u003d_(\"Set new timeout in seconds for new rpc calls after \""},{"line_number":134,"context_line":"                      \"agent receives SIGTERM. If value is set to 0, rpc \""},{"line_number":135,"context_line":"                      \"timeout won\u0027t be changed\")),"},{"line_number":136,"context_line":"    cfg.BoolOpt(\u0027drop_flows_on_start\u0027, default\u003dFalse,"},{"line_number":137,"context_line":"                help\u003d_(\"Reset flow table on start. Setting this to True will \""},{"line_number":138,"context_line":"                       \"cause brief traffic interruption.\")),"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_40d9a41f","side":"PARENT","line":135,"updated":"2017-09-29 20:59:19.000000000","message":"same question here","commit_id":"8d0f284c2f271436598e2904b3552a6568445c7d"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"d28b4a012fe6bcf3750864ebce698ac13953a146","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5f4e5783_85ce8c60","updated":"2017-10-17 16:15:03.000000000","message":"It seems that these changes should not be part of this change, isn\u0027t it ? (If they are required, then they would better be placed in a separate change)","commit_id":"6bb470f0d34ccadfe81d521d73f2cf27d0ebda61"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"d82268acaecd216de0e280d330587c79b8bead56","unresolved":false,"context_lines":[{"line_number":98,"context_line":"agent_opts \u003d ["},{"line_number":99,"context_line":"    cfg.IntOpt(\u0027polling_interval\u0027, default\u003d2,"},{"line_number":100,"context_line":"               help\u003d_(\"The number of seconds the agent will wait between \""},{"line_number":101,"context_line":"                      \"polling for local device changes.\")),"},{"line_number":102,"context_line":"    cfg.BoolOpt(\u0027minimize_polling\u0027,"},{"line_number":103,"context_line":"                default\u003dTrue,"},{"line_number":104,"context_line":"                help\u003d_(\"Minimize polling by monitoring ovsdb for interface \""}],"source_content_type":"text/x-python","patch_set":10,"id":"3f4b6375_dd902f4d","side":"PARENT","line":101,"updated":"2017-10-23 20:39:51.000000000","message":"Is this related to this patch?","commit_id":"1b3f982914d82494c63ac4fee405bf4972d2db32"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"1dff31cebfc3f841930b44e75b241fd22e63b9b5","unresolved":false,"context_lines":[{"line_number":98,"context_line":"agent_opts \u003d ["},{"line_number":99,"context_line":"    cfg.IntOpt(\u0027polling_interval\u0027, default\u003d2,"},{"line_number":100,"context_line":"               help\u003d_(\"The number of seconds the agent will wait between \""},{"line_number":101,"context_line":"                      \"polling for local device changes.\")),"},{"line_number":102,"context_line":"    cfg.BoolOpt(\u0027minimize_polling\u0027,"},{"line_number":103,"context_line":"                default\u003dTrue,"},{"line_number":104,"context_line":"                help\u003d_(\"Minimize polling by monitoring ovsdb for interface \""}],"source_content_type":"text/x-python","patch_set":10,"id":"3f4b6375_0c07ad1a","side":"PARENT","line":101,"in_reply_to":"3f4b6375_4030cbe8","updated":"2017-10-24 09:48:27.000000000","message":"Sounds reasonable.","commit_id":"1b3f982914d82494c63ac4fee405bf4972d2db32"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"5810ac67b4a2b92f042d8054e0a8a5809019ac9a","unresolved":false,"context_lines":[{"line_number":98,"context_line":"agent_opts \u003d ["},{"line_number":99,"context_line":"    cfg.IntOpt(\u0027polling_interval\u0027, default\u003d2,"},{"line_number":100,"context_line":"               help\u003d_(\"The number of seconds the agent will wait between \""},{"line_number":101,"context_line":"                      \"polling for local device changes.\")),"},{"line_number":102,"context_line":"    cfg.BoolOpt(\u0027minimize_polling\u0027,"},{"line_number":103,"context_line":"                default\u003dTrue,"},{"line_number":104,"context_line":"                help\u003d_(\"Minimize polling by monitoring ovsdb for interface \""}],"source_content_type":"text/x-python","patch_set":10,"id":"3f4b6375_4030cbe8","side":"PARENT","line":101,"in_reply_to":"3f4b6375_dd902f4d","updated":"2017-10-24 08:11:15.000000000","message":"In order to merge OVS and LB patches so that they use the same options, I used to common configuration file: neutron/conf/plugins/ml2/drivers/agent.py\n\nThis file was already used by linuxbridge, while OVS didn\u0027t and redefined the variables \"polling_interval\" and \"quitting_rpc_timeout\" in neutron/conf/plugins/ml2/drivers/ovs_conf.py\n\nI didn\u0027t think that having OVS call twice the same variables in two different files was I good idea, so I removed them from here, as they already existed in neutron/conf/plugins/ml2/drivers/agent.py","commit_id":"1b3f982914d82494c63ac4fee405bf4972d2db32"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"d82268acaecd216de0e280d330587c79b8bead56","unresolved":false,"context_lines":[{"line_number":131,"context_line":"    cfg.IntOpt(\u0027quitting_rpc_timeout\u0027, default\u003d10,"},{"line_number":132,"context_line":"               help\u003d_(\"Set new timeout in seconds for new rpc calls after \""},{"line_number":133,"context_line":"                      \"agent receives SIGTERM. If value is set to 0, rpc \""},{"line_number":134,"context_line":"                      \"timeout won\u0027t be changed\")),"},{"line_number":135,"context_line":"    cfg.BoolOpt(\u0027drop_flows_on_start\u0027, default\u003dFalse,"},{"line_number":136,"context_line":"                help\u003d_(\"Reset flow table on start. Setting this to True will \""},{"line_number":137,"context_line":"                       \"cause brief traffic interruption.\")),"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f4b6375_bd81f3fd","side":"PARENT","line":134,"updated":"2017-10-23 20:39:51.000000000","message":"Is this related to this patch?","commit_id":"1b3f982914d82494c63ac4fee405bf4972d2db32"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8c5abe964000fd9eff369dce5bd515c054c82ae3","unresolved":false,"context_lines":[{"line_number":96,"context_line":"]"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"agent_opts \u003d ["},{"line_number":99,"context_line":"    cfg.IntOpt(\u0027polling_interval\u0027, default\u003d2,"},{"line_number":100,"context_line":"               help\u003d_(\"The number of seconds the agent will wait between \""},{"line_number":101,"context_line":"                      \"polling for local device changes.\")),"},{"line_number":102,"context_line":"    cfg.BoolOpt(\u0027minimize_polling\u0027,"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f485f77_a0a2ccac","side":"PARENT","line":99,"updated":"2017-11-16 12:01:44.000000000","message":"not clear why these are being deleted - this looks unrelated ot the patch","commit_id":"1b3f982914d82494c63ac4fee405bf4972d2db32"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"54da511d313d450e803e1b3ac940a499c5feb40e","unresolved":false,"context_lines":[{"line_number":96,"context_line":"]"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"agent_opts \u003d ["},{"line_number":99,"context_line":"    cfg.IntOpt(\u0027polling_interval\u0027, default\u003d2,"},{"line_number":100,"context_line":"               help\u003d_(\"The number of seconds the agent will wait between \""},{"line_number":101,"context_line":"                      \"polling for local device changes.\")),"},{"line_number":102,"context_line":"    cfg.BoolOpt(\u0027minimize_polling\u0027,"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f485f77_ab63cd41","side":"PARENT","line":99,"in_reply_to":"1f485f77_a0a2ccac","updated":"2017-11-16 12:33:43.000000000","message":"In order to have a common implementation of DSCP for OVS and LB so that they use the same options as people suggested, I used to common agent configuration file: neutron/conf/plugins/ml2/drivers/agent.py\n\nThis file was already used by linuxbridge, while OVS didn\u0027t and redefined the variables \"polling_interval\" and \"quitting_rpc_timeout\" in neutron/conf/plugins/ml2/drivers/ovs_conf.py\n\nI didn\u0027t think that having OVS call twice the same variables in two different files was I good idea, so I removed them from here, as they already existed in neutron/conf/plugins/ml2/drivers/agent.py, which is now called also by OVS.","commit_id":"1b3f982914d82494c63ac4fee405bf4972d2db32"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8c5abe964000fd9eff369dce5bd515c054c82ae3","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                       \"outgoing IP packet carrying GRE/VXLAN tunnel.\")),"},{"line_number":129,"context_line":"    cfg.BoolOpt(\u0027enable_distributed_routing\u0027, default\u003dFalse,"},{"line_number":130,"context_line":"                help\u003d_(\"Make the l2 agent run in DVR mode.\")),"},{"line_number":131,"context_line":"    cfg.IntOpt(\u0027quitting_rpc_timeout\u0027, default\u003d10,"},{"line_number":132,"context_line":"               help\u003d_(\"Set new timeout in seconds for new rpc calls after \""},{"line_number":133,"context_line":"                      \"agent receives SIGTERM. If value is set to 0, rpc \""},{"line_number":134,"context_line":"                      \"timeout won\u0027t be changed\")),"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f485f77_40ad5899","side":"PARENT","line":131,"updated":"2017-11-16 12:01:44.000000000","message":"ditto","commit_id":"1b3f982914d82494c63ac4fee405bf4972d2db32"}],"neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py":[{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"f57a3fdd2b0359e95286f077e2c65ae677bf9670","unresolved":false,"context_lines":[{"line_number":321,"context_line":"                    \u0027ttl\u0027: cfg.CONF.VXLAN.ttl}"},{"line_number":322,"context_line":"            if cfg.CONF.AGENT.dscp_inherit:"},{"line_number":323,"context_line":"                args[\u0027tos\u0027] \u003d \u0027inherit\u0027"},{"line_number":324,"context_line":"            elif cfg.CONF.AGENT.dscp and not cfg.CONF.VXLAN.tos:"},{"line_number":325,"context_line":"                args[\u0027tos\u0027] \u003d int(cfg.CONF.AGENT.dscp) \u003c\u003c 2"},{"line_number":326,"context_line":"            else:"},{"line_number":327,"context_line":"                args[\u0027tos\u0027] \u003d cfg.CONF.VXLAN.tos"},{"line_number":328,"context_line":"            if self.vxlan_mode \u003d\u003d lconst.VXLAN_MCAST:"},{"line_number":329,"context_line":"                args[\u0027group\u0027] \u003d self.get_vxlan_group(segmentation_id)"},{"line_number":330,"context_line":"            if cfg.CONF.VXLAN.l2_population:"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_e31650a8","line":327,"range":{"start_line":324,"start_character":37,"end_line":327,"end_character":48},"updated":"2017-10-26 15:14:50.000000000","message":"The dscp option replaces the tos option as it is a more precise value. Indeed, the TOS \u003d DSCP \u003c\u003c 2 | ECN. ECN is not settable, so only the DSCP is set through the previous TOS value. To keep backward compatibility as suggested, at least for a while, the tos option is still supported until deletion in future releases. Making \"tos\" the deprecated name of \"dscp\" as suggested makes the dscp option take tos option value if dscp is not set, so it is not possible to know whether the dscp was set independently or by copying tos. As they are not exactly the same value, it follows that the truth table has one line with two results: if tos and dscp are both set, it might be that dscp is independently set so the result should be dscp\u003c\u003c2, and it might also be that dscp was set through tos so the result is tos, and we can\u0027t decide. Finally, to be compatible with previous configurations and as TOS encompasses the DSCP, the tos has the higher priority and is the default value if dscp is not set.","commit_id":"3f2111c146d4a363838653bc5a800c51cd885ad8"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"7bfc753525cc492e072ba5de118e60dbfac7cac6","unresolved":false,"context_lines":[{"line_number":321,"context_line":"                    \u0027ttl\u0027: cfg.CONF.VXLAN.ttl}"},{"line_number":322,"context_line":"            if cfg.CONF.AGENT.dscp_inherit:"},{"line_number":323,"context_line":"                args[\u0027tos\u0027] \u003d \u0027inherit\u0027"},{"line_number":324,"context_line":"            elif cfg.CONF.AGENT.dscp and not cfg.CONF.VXLAN.tos:"},{"line_number":325,"context_line":"                args[\u0027tos\u0027] \u003d int(cfg.CONF.AGENT.dscp) \u003c\u003c 2"},{"line_number":326,"context_line":"            else:"},{"line_number":327,"context_line":"                args[\u0027tos\u0027] \u003d cfg.CONF.VXLAN.tos"},{"line_number":328,"context_line":"            if self.vxlan_mode \u003d\u003d lconst.VXLAN_MCAST:"},{"line_number":329,"context_line":"                args[\u0027group\u0027] \u003d self.get_vxlan_group(segmentation_id)"},{"line_number":330,"context_line":"            if cfg.CONF.VXLAN.l2_population:"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_1d750399","line":327,"range":{"start_line":324,"start_character":37,"end_line":327,"end_character":48},"in_reply_to":"3f4b6375_e31650a8","updated":"2017-10-30 12:31:57.000000000","message":"As discussed moments ago, the right behavior when both dscp and tos are set is to take dscp into account and log a warning. \n\nAs you explain, this issn\u0027t implementable if  (deprecated_name\u003d\u0027tos\u0027, deprecated_group\u003d\u0027vxlan\u0027) are set for the dscp option because if this is in place, you can\u0027t distinguish between \u0027tos is set directly\u0027 and \u0027tos is set via dscp + deprecated_*\u0027.\n\nIf you remove (deprecated_name\u003d\u0027tos\u0027, deprecated_group\u003d\u0027vxlan\u0027), then the right behavior when both option are set, can be implemented.","commit_id":"3f2111c146d4a363838653bc5a800c51cd885ad8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"facb9f7ef0ad613d4126c7e7c6e1c4c9d095fe0f","unresolved":false,"context_lines":[{"line_number":320,"context_line":"                    \u0027dstport\u0027: cfg.CONF.VXLAN.udp_dstport,"},{"line_number":321,"context_line":"                    \u0027ttl\u0027: cfg.CONF.VXLAN.ttl}"},{"line_number":322,"context_line":"            if cfg.CONF.AGENT.dscp_inherit:"},{"line_number":323,"context_line":"                args[\u0027tos\u0027] \u003d \u0027inherit\u0027"},{"line_number":324,"context_line":"            elif cfg.CONF.AGENT.dscp and not cfg.CONF.VXLAN.tos:"},{"line_number":325,"context_line":"                args[\u0027tos\u0027] \u003d int(cfg.CONF.AGENT.dscp) \u003c\u003c 2"},{"line_number":326,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f4b6375_fe7808c4","line":323,"updated":"2017-10-27 15:03:33.000000000","message":"nit: You are using this string \"inherit\" in many places, maybe You could change it to constant defined in one place and reused?","commit_id":"cd64f4637680a466ae54e99f9cda398003a43baf"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0f49d9b0df8501b66ec865287065a42e4d922f50","unresolved":false,"context_lines":[{"line_number":320,"context_line":"                    \u0027dstport\u0027: cfg.CONF.VXLAN.udp_dstport,"},{"line_number":321,"context_line":"                    \u0027ttl\u0027: cfg.CONF.VXLAN.ttl}"},{"line_number":322,"context_line":"            if cfg.CONF.AGENT.dscp_inherit:"},{"line_number":323,"context_line":"                args[\u0027tos\u0027] \u003d \u0027inherit\u0027"},{"line_number":324,"context_line":"            elif cfg.CONF.AGENT.dscp and not cfg.CONF.VXLAN.tos:"},{"line_number":325,"context_line":"                args[\u0027tos\u0027] \u003d int(cfg.CONF.AGENT.dscp) \u003c\u003c 2"},{"line_number":326,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f4b6375_e6c2cc33","line":323,"in_reply_to":"3f4b6375_7e1c1877","updated":"2017-11-07 18:32:25.000000000","message":"ok, maybe it can be like that for now","commit_id":"cd64f4637680a466ae54e99f9cda398003a43baf"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"6c52e322bf7e2f7fb50b5ac2185deef5de0232a0","unresolved":false,"context_lines":[{"line_number":320,"context_line":"                    \u0027dstport\u0027: cfg.CONF.VXLAN.udp_dstport,"},{"line_number":321,"context_line":"                    \u0027ttl\u0027: cfg.CONF.VXLAN.ttl}"},{"line_number":322,"context_line":"            if cfg.CONF.AGENT.dscp_inherit:"},{"line_number":323,"context_line":"                args[\u0027tos\u0027] \u003d \u0027inherit\u0027"},{"line_number":324,"context_line":"            elif cfg.CONF.AGENT.dscp and not cfg.CONF.VXLAN.tos:"},{"line_number":325,"context_line":"                args[\u0027tos\u0027] \u003d int(cfg.CONF.AGENT.dscp) \u003c\u003c 2"},{"line_number":326,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f4b6375_7e1c1877","line":323,"in_reply_to":"3f4b6375_fe7808c4","updated":"2017-10-27 15:06:21.000000000","message":"Well, recently, all constants were deleted from neutron and used from neutron_lib, so I would need to add the constant in neutron_lib before I can add it here.","commit_id":"cd64f4637680a466ae54e99f9cda398003a43baf"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"a2602a02b8527a12d7d83f3aa4925dbdf7e9384c","unresolved":false,"context_lines":[{"line_number":319,"context_line":"                                cfg.CONF.VXLAN.udp_srcport_max),"},{"line_number":320,"context_line":"                    \u0027dstport\u0027: cfg.CONF.VXLAN.udp_dstport,"},{"line_number":321,"context_line":"                    \u0027ttl\u0027: cfg.CONF.VXLAN.ttl}"},{"line_number":322,"context_line":"            if cfg.CONF.VXLAN.tos:"},{"line_number":323,"context_line":"                args[\u0027tos\u0027] \u003d cfg.CONF.VXLAN.tos"},{"line_number":324,"context_line":"                LOG.warning(\u0027Option tos in group VXLAN is set and takes \u0027"},{"line_number":325,"context_line":"                            \u0027precedence, but it is deprecated and will be \u0027"},{"line_number":326,"context_line":"                            \u0027deleted in a future release. Please use options \u0027"},{"line_number":327,"context_line":"                            \u0027dscp and dscp_inherit in group AGENT instead.\u0027)"},{"line_number":328,"context_line":"            elif cfg.CONF.AGENT.dscp_inherit:"},{"line_number":329,"context_line":"                args[\u0027tos\u0027] \u003d \u0027inherit\u0027"},{"line_number":330,"context_line":"            elif cfg.CONF.AGENT.dscp:"}],"source_content_type":"text/x-python","patch_set":14,"id":"3f4b6375_05e24930","line":327,"range":{"start_line":322,"start_character":1,"end_line":327,"end_character":76},"updated":"2017-10-30 14:24:56.000000000","message":"To keep a strict backward compatibility with old configs, the tos has precedence unless it is undefined.","commit_id":"3a628b1b59ab128798da3908febf706ee7291c64"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"ffd8817d3e9870cd7ab05e7847f7eea4be66175a","unresolved":false,"context_lines":[{"line_number":319,"context_line":"                                cfg.CONF.VXLAN.udp_srcport_max),"},{"line_number":320,"context_line":"                    \u0027dstport\u0027: cfg.CONF.VXLAN.udp_dstport,"},{"line_number":321,"context_line":"                    \u0027ttl\u0027: cfg.CONF.VXLAN.ttl}"},{"line_number":322,"context_line":"            if cfg.CONF.VXLAN.tos:"},{"line_number":323,"context_line":"                args[\u0027tos\u0027] \u003d cfg.CONF.VXLAN.tos"},{"line_number":324,"context_line":"                LOG.warning(\u0027Option tos in group VXLAN is set and takes \u0027"},{"line_number":325,"context_line":"                            \u0027precedence, but it is deprecated and will be \u0027"},{"line_number":326,"context_line":"                            \u0027deleted in a future release. Please use options \u0027"},{"line_number":327,"context_line":"                            \u0027dscp and dscp_inherit in group AGENT instead.\u0027)"},{"line_number":328,"context_line":"            elif cfg.CONF.AGENT.dscp_inherit:"},{"line_number":329,"context_line":"                args[\u0027tos\u0027] \u003d \u0027inherit\u0027"},{"line_number":330,"context_line":"            elif cfg.CONF.AGENT.dscp:"}],"source_content_type":"text/x-python","patch_set":14,"id":"3f4b6375_54f58d82","line":327,"range":{"start_line":322,"start_character":1,"end_line":327,"end_character":76},"in_reply_to":"3f4b6375_05e24930","updated":"2017-10-30 17:16:22.000000000","message":"Agreed that this behavior (tos taking precedence if set while dscp is set as well) is correct/conservative.\n\nBut I think we should raise this warning only if \u0027dscp\u0027 or \u0027dscp_inherit\u0027 is also set. If none of these is set, the existing/automated warning for a deprecated option is enough, and the \"takes precedences\" is incorrect.","commit_id":"3a628b1b59ab128798da3908febf706ee7291c64"}],"neutron/plugins/ml2/drivers/openvswitch/agent/common/config.py":[{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"3dded2906b59f051cfaeef488f2fa87fde670c20","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from neutron.conf.plugins.ml2.drivers import agent"},{"line_number":19,"context_line":"from neutron.conf.plugins.ml2.drivers import ovs_conf"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"agent.register_agent_opts()"},{"line_number":22,"context_line":"ovs_conf.register_ovs_agent_opts()"},{"line_number":23,"context_line":"config.register_agent_state_opts_helper(cfg.CONF)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_b325620b","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":27},"updated":"2017-09-29 08:23:00.000000000","message":"Added the common tos config options between OVS and LB: https://review.openstack.org/#/c/501271/9 and removed the redundant options from ovs_conf","commit_id":"bfa6a0b7ad3691b2dcbe4c14cc9e0a28cb7bec02"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0469e99d386c0f130a3e3a9fbc836953b4b4ee4b","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from neutron.conf.plugins.ml2.drivers import agent"},{"line_number":19,"context_line":"from neutron.conf.plugins.ml2.drivers import ovs_conf"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"agent.register_agent_opts()"},{"line_number":22,"context_line":"ovs_conf.register_ovs_agent_opts()"},{"line_number":23,"context_line":"config.register_agent_state_opts_helper(cfg.CONF)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_c0feb469","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":27},"in_reply_to":"7f515b1d_b325620b","updated":"2017-09-29 20:59:19.000000000","message":"hmm, I\u0027m not sure but maybe it should be done in separate patch first?","commit_id":"bfa6a0b7ad3691b2dcbe4c14cc9e0a28cb7bec02"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"ef9a83bf2f30c64f40d758e46b6d8e3627cdd979","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from neutron.conf.plugins.ml2.drivers import agent"},{"line_number":19,"context_line":"from neutron.conf.plugins.ml2.drivers import ovs_conf"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"agent.register_agent_opts()"},{"line_number":22,"context_line":"ovs_conf.register_ovs_agent_opts()"},{"line_number":23,"context_line":"config.register_agent_state_opts_helper(cfg.CONF)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_dc9a1112","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":27},"in_reply_to":"7f515b1d_c0feb469","updated":"2017-10-02 09:00:47.000000000","message":"Wouldn\u0027t need an explicit justification, sending back to this review? At least here the need is explicit.","commit_id":"bfa6a0b7ad3691b2dcbe4c14cc9e0a28cb7bec02"}],"neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"29c6dde3ca17feb5e40aa4e027f3efe017559621","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        self.vxlan_udp_port \u003d agent_conf.vxlan_udp_port"},{"line_number":195,"context_line":"        self.dont_fragment \u003d agent_conf.dont_fragment"},{"line_number":196,"context_line":"        self.tunnel_csum \u003d agent_conf.tunnel_csum"},{"line_number":197,"context_line":"        self.tos \u003d (\u0027inherit\u0027 if agent_conf.tos_inherit"},{"line_number":198,"context_line":"                    else agent_conf.tos)"},{"line_number":199,"context_line":"        self.tun_br \u003d None"},{"line_number":200,"context_line":"        self.patch_int_ofport \u003d constants.OFPORT_INVALID"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_072cf3a9","line":197,"range":{"start_line":197,"start_character":21,"end_line":197,"end_character":28},"updated":"2017-09-18 08:38:16.000000000","message":"As Slawek pointed out in https://review.openstack.org/#/c/501271/, this should be a constant","commit_id":"9a6df2ac31803de684643bd9f0e5564fd809b422"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"22a478a45148454c7aee3f0c95f115de038fc080","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        self.vxlan_udp_port \u003d agent_conf.vxlan_udp_port"},{"line_number":195,"context_line":"        self.dont_fragment \u003d agent_conf.dont_fragment"},{"line_number":196,"context_line":"        self.tunnel_csum \u003d agent_conf.tunnel_csum"},{"line_number":197,"context_line":"        self.tos \u003d (\u0027inherit\u0027 if agent_conf.tos_inherit"},{"line_number":198,"context_line":"                    else agent_conf.tos)"},{"line_number":199,"context_line":"        self.tun_br \u003d None"},{"line_number":200,"context_line":"        self.patch_int_ofport \u003d constants.OFPORT_INVALID"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_bd2c1002","line":197,"range":{"start_line":197,"start_character":21,"end_line":197,"end_character":28},"in_reply_to":"5f2577a7_072cf3a9","updated":"2017-09-18 09:57:21.000000000","message":"Thanks, I will try to be the closest to the LB implementation in the next patch set.","commit_id":"9a6df2ac31803de684643bd9f0e5564fd809b422"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"359be67445d868047b9b059f788165f21d2e5313","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        self.vxlan_udp_port \u003d agent_conf.vxlan_udp_port"},{"line_number":197,"context_line":"        self.dont_fragment \u003d agent_conf.dont_fragment"},{"line_number":198,"context_line":"        self.tunnel_csum \u003d agent_conf.tunnel_csum"},{"line_number":199,"context_line":"        self.tos \u003d (p_const.TUNNEL_TOS_INHERIT"},{"line_number":200,"context_line":"                    if agent_conf.tos_inherit"},{"line_number":201,"context_line":"                    else agent_conf.tos)"},{"line_number":202,"context_line":"        self.tun_br \u003d None"},{"line_number":203,"context_line":"        self.patch_int_ofport \u003d constants.OFPORT_INVALID"},{"line_number":204,"context_line":"        self.patch_tun_ofport \u003d constants.OFPORT_INVALID"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f4e5783_8d4f6991","line":201,"range":{"start_line":199,"start_character":19,"end_line":201,"end_character":40},"updated":"2017-10-11 16:14:53.000000000","message":"Is this correct for OvS?\nargs[\u0027tos\u0027] \u003d \"inherit\" if tos_inherit(True/False) else tos(0 -\u003e252 and has no default value)","commit_id":"6bb470f0d34ccadfe81d521d73f2cf27d0ebda61"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"d28b4a012fe6bcf3750864ebce698ac13953a146","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        self.vxlan_udp_port \u003d agent_conf.vxlan_udp_port"},{"line_number":197,"context_line":"        self.dont_fragment \u003d agent_conf.dont_fragment"},{"line_number":198,"context_line":"        self.tunnel_csum \u003d agent_conf.tunnel_csum"},{"line_number":199,"context_line":"        self.tos \u003d (p_const.TUNNEL_TOS_INHERIT"},{"line_number":200,"context_line":"                    if agent_conf.tos_inherit"},{"line_number":201,"context_line":"                    else agent_conf.tos)"},{"line_number":202,"context_line":"        self.tun_br \u003d None"},{"line_number":203,"context_line":"        self.patch_int_ofport \u003d constants.OFPORT_INVALID"},{"line_number":204,"context_line":"        self.patch_tun_ofport \u003d constants.OFPORT_INVALID"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f4e5783_05f3bc75","line":201,"range":{"start_line":199,"start_character":19,"end_line":201,"end_character":40},"in_reply_to":"5f4e5783_8d4f6991","updated":"2017-10-17 16:15:03.000000000","message":"(looks correct to me)","commit_id":"6bb470f0d34ccadfe81d521d73f2cf27d0ebda61"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"359be67445d868047b9b059f788165f21d2e5313","unresolved":false,"context_lines":[{"line_number":1461,"context_line":"                                    tunnel_type,"},{"line_number":1462,"context_line":"                                    self.vxlan_udp_port,"},{"line_number":1463,"context_line":"                                    self.dont_fragment,"},{"line_number":1464,"context_line":"                                    self.tunnel_csum,"},{"line_number":1465,"context_line":"                                    self.tos)"},{"line_number":1466,"context_line":"        if ofport \u003d\u003d ovs_lib.INVALID_OFPORT:"},{"line_number":1467,"context_line":"            LOG.error(\"Failed to set-up %(type)s tunnel port to %(ip)s\","},{"line_number":1468,"context_line":"                      {\u0027type\u0027: tunnel_type, \u0027ip\u0027: remote_ip})"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f4e5783_30db2eee","line":1465,"range":{"start_line":1464,"start_character":52,"end_line":1465,"end_character":44},"updated":"2017-10-11 16:14:53.000000000","message":"add_tunnel_port does not take tos as an argument.\nThis seems to be a gap in test coverage.","commit_id":"6bb470f0d34ccadfe81d521d73f2cf27d0ebda61"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"2f77c02a1b1810a2d065019fbce7d80712a83c5f","unresolved":false,"context_lines":[{"line_number":1461,"context_line":"                                    tunnel_type,"},{"line_number":1462,"context_line":"                                    self.vxlan_udp_port,"},{"line_number":1463,"context_line":"                                    self.dont_fragment,"},{"line_number":1464,"context_line":"                                    self.tunnel_csum,"},{"line_number":1465,"context_line":"                                    self.tos)"},{"line_number":1466,"context_line":"        if ofport \u003d\u003d ovs_lib.INVALID_OFPORT:"},{"line_number":1467,"context_line":"            LOG.error(\"Failed to set-up %(type)s tunnel port to %(ip)s\","},{"line_number":1468,"context_line":"                      {\u0027type\u0027: tunnel_type, \u0027ip\u0027: remote_ip})"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f4e5783_b38f2822","line":1465,"range":{"start_line":1464,"start_character":52,"end_line":1465,"end_character":44},"in_reply_to":"5f4e5783_30db2eee","updated":"2017-10-11 16:35:20.000000000","message":"My mistake! Opened that part of the patch in another tab and didn\u0027t notice it!","commit_id":"6bb470f0d34ccadfe81d521d73f2cf27d0ebda61"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"12a3b19c7196cbf930578149a382604e7591116e","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        self.vxlan_udp_port \u003d agent_conf.vxlan_udp_port"},{"line_number":196,"context_line":"        self.dont_fragment \u003d agent_conf.dont_fragment"},{"line_number":197,"context_line":"        self.tunnel_csum \u003d agent_conf.tunnel_csum"},{"line_number":198,"context_line":"        self.dscp \u003d (\u0027inherit\u0027"},{"line_number":199,"context_line":"                     if agent_conf.dscp_inherit"},{"line_number":200,"context_line":"                     else (int(agent_conf.dscp) \u003c\u003c 2"},{"line_number":201,"context_line":"                           if agent_conf.dscp"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f4b6375_fbbca506","line":198,"range":{"start_line":198,"start_character":13,"end_line":198,"end_character":17},"updated":"2017-11-07 17:22:41.000000000","message":"ditto from ovs_lib, if the value has been bit shifted it should be called tos.","commit_id":"9e4a99cf437063cba64db4347f2b0a9aa8f042fd"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"02b75d75d246131ac0c470244f65b7bcdc18c37f","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        self.vxlan_udp_port \u003d agent_conf.vxlan_udp_port"},{"line_number":196,"context_line":"        self.dont_fragment \u003d agent_conf.dont_fragment"},{"line_number":197,"context_line":"        self.tunnel_csum \u003d agent_conf.tunnel_csum"},{"line_number":198,"context_line":"        self.dscp \u003d (\u0027inherit\u0027"},{"line_number":199,"context_line":"                     if agent_conf.dscp_inherit"},{"line_number":200,"context_line":"                     else (int(agent_conf.dscp) \u003c\u003c 2"},{"line_number":201,"context_line":"                           if agent_conf.dscp"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f4b6375_a719647b","line":198,"range":{"start_line":198,"start_character":13,"end_line":198,"end_character":17},"in_reply_to":"3f4b6375_04483685","updated":"2017-11-08 09:33:52.000000000","message":"Yes it is. I changed to self.tos in the latest PS.","commit_id":"9e4a99cf437063cba64db4347f2b0a9aa8f042fd"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"d94123991d34e9389c97eb6ecd216cd99c49c087","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        self.vxlan_udp_port \u003d agent_conf.vxlan_udp_port"},{"line_number":196,"context_line":"        self.dont_fragment \u003d agent_conf.dont_fragment"},{"line_number":197,"context_line":"        self.tunnel_csum \u003d agent_conf.tunnel_csum"},{"line_number":198,"context_line":"        self.dscp \u003d (\u0027inherit\u0027"},{"line_number":199,"context_line":"                     if agent_conf.dscp_inherit"},{"line_number":200,"context_line":"                     else (int(agent_conf.dscp) \u003c\u003c 2"},{"line_number":201,"context_line":"                           if agent_conf.dscp"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f4b6375_04483685","line":198,"range":{"start_line":198,"start_character":13,"end_line":198,"end_character":17},"in_reply_to":"3f4b6375_8c51f910","updated":"2017-11-08 09:31:16.000000000","message":"This is being assigned the bit shifted value isn\u0027t it?","commit_id":"9e4a99cf437063cba64db4347f2b0a9aa8f042fd"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"4d5ca94a241af65c1893197781c98505b8bddcf2","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        self.vxlan_udp_port \u003d agent_conf.vxlan_udp_port"},{"line_number":196,"context_line":"        self.dont_fragment \u003d agent_conf.dont_fragment"},{"line_number":197,"context_line":"        self.tunnel_csum \u003d agent_conf.tunnel_csum"},{"line_number":198,"context_line":"        self.dscp \u003d (\u0027inherit\u0027"},{"line_number":199,"context_line":"                     if agent_conf.dscp_inherit"},{"line_number":200,"context_line":"                     else (int(agent_conf.dscp) \u003c\u003c 2"},{"line_number":201,"context_line":"                           if agent_conf.dscp"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f4b6375_8c51f910","line":198,"range":{"start_line":198,"start_character":13,"end_line":198,"end_character":17},"in_reply_to":"3f4b6375_fbbca506","updated":"2017-11-07 20:04:07.000000000","message":"I think that here the value hasn\u0027t been shifted (done at L200)","commit_id":"9e4a99cf437063cba64db4347f2b0a9aa8f042fd"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"12a3b19c7196cbf930578149a382604e7591116e","unresolved":false,"context_lines":[{"line_number":1463,"context_line":"                                    self.vxlan_udp_port,"},{"line_number":1464,"context_line":"                                    self.dont_fragment,"},{"line_number":1465,"context_line":"                                    self.tunnel_csum,"},{"line_number":1466,"context_line":"                                    self.dscp)"},{"line_number":1467,"context_line":"        if ofport \u003d\u003d ovs_lib.INVALID_OFPORT:"},{"line_number":1468,"context_line":"            LOG.error(\"Failed to set-up %(type)s tunnel port to %(ip)s\","},{"line_number":1469,"context_line":"                      {\u0027type\u0027: tunnel_type, \u0027ip\u0027: remote_ip})"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f4b6375_dbb7a920","line":1466,"range":{"start_line":1466,"start_character":36,"end_line":1466,"end_character":45},"updated":"2017-11-07 17:22:41.000000000","message":"ditto","commit_id":"9e4a99cf437063cba64db4347f2b0a9aa8f042fd"}],"neutron/tests/functional/agent/test_ovs_lib.py":[{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"f4f56c4d429974002bcca17820febce9e9fe1c1c","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def _test_add_tunnel_port(self, attrs):"},{"line_number":198,"context_line":"        port_name \u003d utils.get_rand_device_name(net_helpers.PORT_PREFIX)"},{"line_number":199,"context_line":"        self.br.add_tunnel_port(port_name, attrs[\u0027remote_ip\u0027],"},{"line_number":200,"context_line":"                                attrs[\u0027local_ip\u0027])"},{"line_number":201,"context_line":"        self.assertEqual(\u0027gre\u0027,"},{"line_number":202,"context_line":"                         self.ovs.db_get_val(\u0027Interface\u0027, port_name, \u0027type\u0027))"},{"line_number":203,"context_line":"        options \u003d self.ovs.db_get_val(\u0027Interface\u0027, port_name, \u0027options\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf57530f_daa8a378","line":200,"range":{"start_line":199,"start_character":1,"end_line":200,"end_character":50},"updated":"2017-09-20 11:35:55.000000000","message":"This does not set or allow to set the other interface options so...","commit_id":"374e70dd556983d5ef0c061a25542ae8ab35e1a8"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"f4f56c4d429974002bcca17820febce9e9fe1c1c","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        self.assertEqual(\u0027gre\u0027,"},{"line_number":202,"context_line":"                         self.ovs.db_get_val(\u0027Interface\u0027, port_name, \u0027type\u0027))"},{"line_number":203,"context_line":"        options \u003d self.ovs.db_get_val(\u0027Interface\u0027, port_name, \u0027options\u0027)"},{"line_number":204,"context_line":"        for attr, val in attrs.items():"},{"line_number":205,"context_line":"            self.assertEqual(val, options[attr])"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    def test_add_tunnel_port_ipv4(self):"},{"line_number":208,"context_line":"        attrs \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf57530f_9ae10bd4","line":205,"range":{"start_line":204,"start_character":0,"end_line":205,"end_character":48},"updated":"2017-09-20 11:35:55.000000000","message":"...this can\u0027t really check if they are set on the interface. It can only check that the default values are on.","commit_id":"374e70dd556983d5ef0c061a25542ae8ab35e1a8"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"f4f56c4d429974002bcca17820febce9e9fe1c1c","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        }"},{"line_number":219,"context_line":"        self._test_add_tunnel_port(attrs)"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    def _test_add_tunnel_port_tos(self, attrs):"},{"line_number":222,"context_line":"        port_name \u003d utils.get_rand_device_name(net_helpers.PORT_PREFIX)"},{"line_number":223,"context_line":"        self.br.add_tunnel_port(port_name, attrs[\u0027remote_ip\u0027],"},{"line_number":224,"context_line":"                                attrs[\u0027local_ip\u0027], tos\u003dattrs[\u0027tos\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf57530f_fa9da766","line":221,"range":{"start_line":221,"start_character":8,"end_line":221,"end_character":29},"updated":"2017-09-20 11:35:55.000000000","message":"I didn\u0027t want to change the method in line 197, as it would have other impacts, but I could.","commit_id":"374e70dd556983d5ef0c061a25542ae8ab35e1a8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a12fe4b847f98eaaea37fa65c4b3e45fb1645b79","unresolved":false,"context_lines":[{"line_number":234,"context_line":"            \u0027local_ip\u0027: self.get_test_net_address(2),"},{"line_number":235,"context_line":"            \u0027tos\u0027: \u002744\u0027,"},{"line_number":236,"context_line":"        }"},{"line_number":237,"context_line":"        self._test_add_tunnel_port_tos(attrs)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    def test_add_patch_port(self):"},{"line_number":240,"context_line":"        local \u003d utils.get_rand_device_name(net_helpers.PORT_PREFIX)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_21a52e05","line":237,"updated":"2017-09-24 15:16:23.000000000","message":"do You really need additional method _test_add_tunnel_port_tos() if You are using it only in one place?","commit_id":"374e70dd556983d5ef0c061a25542ae8ab35e1a8"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"55344fc7d013ed7de2e72c930eb1f212f4825b1d","unresolved":false,"context_lines":[{"line_number":234,"context_line":"            \u0027local_ip\u0027: self.get_test_net_address(2),"},{"line_number":235,"context_line":"            \u0027tos\u0027: \u002744\u0027,"},{"line_number":236,"context_line":"        }"},{"line_number":237,"context_line":"        self._test_add_tunnel_port_tos(attrs)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    def test_add_patch_port(self):"},{"line_number":240,"context_line":"        local \u003d utils.get_rand_device_name(net_helpers.PORT_PREFIX)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_18c3c0ef","line":237,"in_reply_to":"7f515b1d_21a52e05","updated":"2017-09-25 10:24:38.000000000","message":"Well I was thinking that this could be extended to test other options. But it\u0027s true that I don\u0027t need it. I\u0027ll make one method out of it.","commit_id":"374e70dd556983d5ef0c061a25542ae8ab35e1a8"}],"neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_tunnel.py":[{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"3dded2906b59f051cfaeef488f2fa87fde670c20","unresolved":false,"context_lines":[{"line_number":525,"context_line":"        self.mock_tun_bridge.add_tunnel_port.return_value \u003d tunnel_port"},{"line_number":526,"context_line":"        self.mock_tun_bridge_expected +\u003d ["},{"line_number":527,"context_line":"            mock.call.add_tunnel_port(\u0027gre-0a000a01\u0027, \u002710.0.10.1\u0027, \u002710.0.0.1\u0027,"},{"line_number":528,"context_line":"                                      \u0027gre\u0027, 4789, True, False, None),"},{"line_number":529,"context_line":"            mock.call.setup_tunnel_port(\u0027gre\u0027, tunnel_port),"},{"line_number":530,"context_line":"        ]"},{"line_number":531,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_d36fbe28","line":528,"range":{"start_line":528,"start_character":62,"end_line":528,"end_character":68},"updated":"2017-09-29 08:23:00.000000000","message":"The tos default value","commit_id":"bfa6a0b7ad3691b2dcbe4c14cc9e0a28cb7bec02"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"d28b4a012fe6bcf3750864ebce698ac13953a146","unresolved":false,"context_lines":[{"line_number":527,"context_line":"        self.mock_tun_bridge.add_tunnel_port.return_value \u003d tunnel_port"},{"line_number":528,"context_line":"        self.mock_tun_bridge_expected +\u003d ["},{"line_number":529,"context_line":"            mock.call.add_tunnel_port(\u0027gre-0a000a01\u0027, \u002710.0.10.1\u0027, \u002710.0.0.1\u0027,"},{"line_number":530,"context_line":"                                      \u0027gre\u0027, 4789, True, False, None),"},{"line_number":531,"context_line":"            mock.call.setup_tunnel_port(\u0027gre\u0027, tunnel_port),"},{"line_number":532,"context_line":"        ]"},{"line_number":533,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5f4e5783_e089ae74","line":530,"range":{"start_line":530,"start_character":62,"end_line":530,"end_character":70},"updated":"2017-10-17 16:15:03.000000000","message":"needed ?\n(this arg has a default which is None)","commit_id":"6bb470f0d34ccadfe81d521d73f2cf27d0ebda61"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"f57a3fdd2b0359e95286f077e2c65ae677bf9670","unresolved":false,"context_lines":[{"line_number":526,"context_line":"        self.mock_tun_bridge.add_tunnel_port.return_value \u003d tunnel_port"},{"line_number":527,"context_line":"        self.mock_tun_bridge_expected +\u003d ["},{"line_number":528,"context_line":"            mock.call.add_tunnel_port(\u0027gre-0a000a01\u0027, \u002710.0.10.1\u0027, \u002710.0.0.1\u0027,"},{"line_number":529,"context_line":"                                      \u0027gre\u0027, 4789, True, False, None),"},{"line_number":530,"context_line":"            mock.call.setup_tunnel_port(\u0027gre\u0027, tunnel_port),"},{"line_number":531,"context_line":"        ]"},{"line_number":532,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_83a0bc43","line":529,"range":{"start_line":529,"start_character":62,"end_line":529,"end_character":68},"updated":"2017-10-26 15:14:50.000000000","message":"@Thomas: It tests calls so if the expected call doesn\u0027t have all arguments, the test against the actual call, which will have them as \"tos\" has a default value, will fail.","commit_id":"3f2111c146d4a363838653bc5a800c51cd885ad8"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"7bfc753525cc492e072ba5de118e60dbfac7cac6","unresolved":false,"context_lines":[{"line_number":526,"context_line":"        self.mock_tun_bridge.add_tunnel_port.return_value \u003d tunnel_port"},{"line_number":527,"context_line":"        self.mock_tun_bridge_expected +\u003d ["},{"line_number":528,"context_line":"            mock.call.add_tunnel_port(\u0027gre-0a000a01\u0027, \u002710.0.10.1\u0027, \u002710.0.0.1\u0027,"},{"line_number":529,"context_line":"                                      \u0027gre\u0027, 4789, True, False, None),"},{"line_number":530,"context_line":"            mock.call.setup_tunnel_port(\u0027gre\u0027, tunnel_port),"},{"line_number":531,"context_line":"        ]"},{"line_number":532,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_a9db994c","line":529,"in_reply_to":"3f4b6375_83a0bc43","updated":"2017-10-30 12:31:57.000000000","message":"Right, my mistake...","commit_id":"3f2111c146d4a363838653bc5a800c51cd885ad8"}],"releasenotes/notes/add-tos-for-OVS-tunneling-03e28fe7c2f34e86.yaml":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ea508468d7e5b385e07e9b661e9228422665652c","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - The TOS value for outer headers in OVS tunnel ports can now be"},{"line_number":4,"context_line":"    set through a configuration option \"tos\". The TOS value is made of"},{"line_number":5,"context_line":"    DSCP and ECN bits. ECN is always inherited from the inner header"},{"line_number":6,"context_line":"    and must be zero."},{"line_number":7,"context_line":"  - DSCP can also be inherited from the inner header through a new"},{"line_number":8,"context_line":"    boolean configuration option \"tos_inherit\". Setting this option to"},{"line_number":9,"context_line":"    true overwrites the value in \"tos\" configuration option."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5f2577a7_5553c439","line":6,"updated":"2017-09-18 11:04:49.000000000","message":"ECN must be zero if it\u0027s configured by user or it is always 0 even if value set by user has different values?","commit_id":"9a6df2ac31803de684643bd9f0e5564fd809b422"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"9c798135143a369fd632e91fe98f3e5e60438303","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - The TOS value for outer headers in OVS tunnel ports can now be"},{"line_number":4,"context_line":"    set through a configuration option \"tos\". The TOS value is made of"},{"line_number":5,"context_line":"    DSCP and ECN bits. ECN is always inherited from the inner header"},{"line_number":6,"context_line":"    and must be zero."},{"line_number":7,"context_line":"  - DSCP can also be inherited from the inner header through a new"},{"line_number":8,"context_line":"    boolean configuration option \"tos_inherit\". Setting this option to"},{"line_number":9,"context_line":"    true overwrites the value in \"tos\" configuration option."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5f2577a7_58ed39b5","line":6,"in_reply_to":"5f2577a7_5553c439","updated":"2017-09-18 11:52:45.000000000","message":"The user can only configure the inner header value, while this TOS value affects the outer header. The ECN value of the outer header is always inherited from the inner header, that\u0027s why the ECN part of the TOS value of the outer header must be zero. Otherwise, OVS won\u0027t apply the TOS value to the outer header.","commit_id":"9a6df2ac31803de684643bd9f0e5564fd809b422"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0469e99d386c0f130a3e3a9fbc836953b4b4ee4b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - The TOS value for outer headers in OVS tunnel ports can now be"},{"line_number":4,"context_line":"    set through a configuration option \"tos\". The TOS value is made of"},{"line_number":5,"context_line":"    DSCP and ECN bits. ECN is always inherited from the inner header"},{"line_number":6,"context_line":"    and must be zero."},{"line_number":7,"context_line":"  - DSCP can also be inherited from the inner header through a new"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"7f515b1d_8041dcab","line":4,"range":{"start_line":4,"start_character":39,"end_line":4,"end_character":44},"updated":"2017-09-29 20:59:19.000000000","message":"it should be probably ``tos`` instead of \"tos\"","commit_id":"bfa6a0b7ad3691b2dcbe4c14cc9e0a28cb7bec02"},{"author":{"_account_id":26504,"name":"Ali Sanhaji","email":"ali.sanhaji@orange.com","username":"alisanhaji"},"change_message_id":"ef9a83bf2f30c64f40d758e46b6d8e3627cdd979","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - The TOS value for outer headers in OVS tunnel ports can now be"},{"line_number":4,"context_line":"    set through a configuration option \"tos\". The TOS value is made of"},{"line_number":5,"context_line":"    DSCP and ECN bits. ECN is always inherited from the inner header"},{"line_number":6,"context_line":"    and must be zero."},{"line_number":7,"context_line":"  - DSCP can also be inherited from the inner header through a new"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"7f515b1d_5c8621bb","line":4,"range":{"start_line":4,"start_character":39,"end_line":4,"end_character":44},"in_reply_to":"7f515b1d_8041dcab","updated":"2017-10-02 09:00:47.000000000","message":"Ok","commit_id":"bfa6a0b7ad3691b2dcbe4c14cc9e0a28cb7bec02"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0469e99d386c0f130a3e3a9fbc836953b4b4ee4b","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    DSCP and ECN bits. ECN is always inherited from the inner header"},{"line_number":6,"context_line":"    and must be zero."},{"line_number":7,"context_line":"  - DSCP can also be inherited from the inner header through a new"},{"line_number":8,"context_line":"    boolean configuration option \"tos_inherit\". Setting this option to"},{"line_number":9,"context_line":"    true overwrites the value in \"tos\" configuration option."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"7f515b1d_603ca02e","line":8,"range":{"start_line":8,"start_character":33,"end_line":8,"end_character":46},"updated":"2017-09-29 20:59:19.000000000","message":"ditto","commit_id":"bfa6a0b7ad3691b2dcbe4c14cc9e0a28cb7bec02"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0469e99d386c0f130a3e3a9fbc836953b4b4ee4b","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    and must be zero."},{"line_number":7,"context_line":"  - DSCP can also be inherited from the inner header through a new"},{"line_number":8,"context_line":"    boolean configuration option \"tos_inherit\". Setting this option to"},{"line_number":9,"context_line":"    true overwrites the value in \"tos\" configuration option."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"7f515b1d_204228ac","line":9,"range":{"start_line":9,"start_character":33,"end_line":9,"end_character":38},"updated":"2017-09-29 20:59:19.000000000","message":"ditto","commit_id":"bfa6a0b7ad3691b2dcbe4c14cc9e0a28cb7bec02"}],"releasenotes/notes/add-tos-for-tunneling-03e28fe7c2f34e86.yaml":[{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"d28b4a012fe6bcf3750864ebce698ac13953a146","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - The TOS value for outer headers in openvswitch tunnel ports can now be"},{"line_number":4,"context_line":"    set through a configuration option ``tos``. Linuxbridge already had this"},{"line_number":5,"context_line":"    capability. The TOS value is made of DSCP and ECN bits. ECN is always"},{"line_number":6,"context_line":"    inherited from the inner header and must be zero."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5f4e5783_342f1089","line":3,"range":{"start_line":3,"start_character":51,"end_line":3,"end_character":57},"updated":"2017-10-17 16:15:03.000000000","message":"\"overlay tunnel ports\"","commit_id":"6bb470f0d34ccadfe81d521d73f2cf27d0ebda61"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"d28b4a012fe6bcf3750864ebce698ac13953a146","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - The TOS value for outer headers in openvswitch tunnel ports can now be"},{"line_number":4,"context_line":"    set through a configuration option ``tos``. Linuxbridge already had this"},{"line_number":5,"context_line":"    capability. The TOS value is made of DSCP and ECN bits. ECN is always"},{"line_number":6,"context_line":"    inherited from the inner header and must be zero."},{"line_number":7,"context_line":"  - DSCP can also be inherited from the inner header through a new"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5f4e5783_0063aab3","line":4,"range":{"start_line":4,"start_character":8,"end_line":4,"end_character":46},"updated":"2017-10-17 16:15:03.000000000","message":"suggestion: \"through the ``tos`` configuration option, for both OVS and linuxbridge agents\"","commit_id":"6bb470f0d34ccadfe81d521d73f2cf27d0ebda61"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"d28b4a012fe6bcf3750864ebce698ac13953a146","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - The TOS value for outer headers in openvswitch tunnel ports can now be"},{"line_number":4,"context_line":"    set through a configuration option ``tos``. Linuxbridge already had this"},{"line_number":5,"context_line":"    capability. The TOS value is made of DSCP and ECN bits. ECN is always"},{"line_number":6,"context_line":"    inherited from the inner header and must be zero."},{"line_number":7,"context_line":"  - DSCP can also be inherited from the inner header through a new"},{"line_number":8,"context_line":"    boolean configuration option ``tos_inherit`` for both openvswitch and"},{"line_number":9,"context_line":"    linuxbridge. Setting this option to true overwrites the value in ``tos``"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5f4e5783_65cdd083","line":6,"range":{"start_line":6,"start_character":40,"end_line":6,"end_character":52},"updated":"2017-10-17 16:15:03.000000000","message":"The code does not actually checks for that ?\nShouldn\u0027t it do so ?","commit_id":"6bb470f0d34ccadfe81d521d73f2cf27d0ebda61"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"d28b4a012fe6bcf3750864ebce698ac13953a146","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    inherited from the inner header and must be zero."},{"line_number":7,"context_line":"  - DSCP can also be inherited from the inner header through a new"},{"line_number":8,"context_line":"    boolean configuration option ``tos_inherit`` for both openvswitch and"},{"line_number":9,"context_line":"    linuxbridge. Setting this option to true overwrites the value in ``tos``"},{"line_number":10,"context_line":"    configuration option."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5f4e5783_2598f872","line":10,"range":{"start_line":9,"start_character":17,"end_line":10,"end_character":25},"updated":"2017-10-17 16:15:03.000000000","message":"\"If this option is set to true, then the value of ``tos`` will be ignored\" ?","commit_id":"6bb470f0d34ccadfe81d521d73f2cf27d0ebda61"}]}
