)]}'
{"neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"12d9db9d004bea6e61596545fe44c6ada7b51291","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            try:"},{"line_number":349,"context_line":"                if mtu:"},{"line_number":350,"context_line":"                    phys_dev_mtu \u003d ip_lib.get_device_mtu(self.local_int)"},{"line_number":351,"context_line":"                    max_mtu \u003d phys_dev_mtu - constants.VXLAN_ENCAP_OVERHEAD"},{"line_number":352,"context_line":"                    if mtu \u003e max_mtu:"},{"line_number":353,"context_line":"                        LOG.error(\"Provided MTU value %(mtu)s for VNI \""},{"line_number":354,"context_line":"                                  \"%(segmentation_id)s is too high. \""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f9dbf25_5d5e0ee7","line":351,"updated":"2018-02-27 18:19:52.000000000","message":"I\u0027m not sure it was correct using this constant as it doesn\u0027t take into account the IP overhead - that needs to be based on the local_ip value of the tunnel endpoint.  See, for example, what this devstack patch does:\n\nhttps://review.openstack.org/#/c/343041/14/devstack-vm-gate.sh","commit_id":"db5fb02b11f143f0ac8c07e16a2cccfaa27215c2"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0388a14aa5647ed1a4b614055189a8425ffe4ca7","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            try:"},{"line_number":349,"context_line":"                if mtu:"},{"line_number":350,"context_line":"                    phys_dev_mtu \u003d ip_lib.get_device_mtu(self.local_int)"},{"line_number":351,"context_line":"                    max_mtu \u003d phys_dev_mtu - constants.VXLAN_ENCAP_OVERHEAD"},{"line_number":352,"context_line":"                    if mtu \u003e max_mtu:"},{"line_number":353,"context_line":"                        LOG.error(\"Provided MTU value %(mtu)s for VNI \""},{"line_number":354,"context_line":"                                  \"%(segmentation_id)s is too high. \""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f9dbf25_b3941eea","line":351,"in_reply_to":"1f9dbf25_5d5e0ee7","updated":"2018-02-28 09:05:32.000000000","message":"Ok, so I should check if local_ip is IPv4 or IPv6 and based on that use 50 or 70 bytes as vxlan overhead, right?\nBut then shouldn\u0027t we maybe change constants.VXLAN_ENCAP_OVERHEAD to be 70 bytes (as or IPv6) as it is used e.g. in vxlan type driver in ml2 to calculate mtu for network? Now it is always 50 bytes so if on agent tunnel is done with IPv6 then packets will be fragmented and performance will be very poor for such network, am I right?","commit_id":"db5fb02b11f143f0ac8c07e16a2cccfaa27215c2"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2c4775652200f4ea1344a988d6d6376ce39b16e0","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            try:"},{"line_number":349,"context_line":"                if mtu:"},{"line_number":350,"context_line":"                    phys_dev_mtu \u003d ip_lib.get_device_mtu(self.local_int)"},{"line_number":351,"context_line":"                    max_mtu \u003d phys_dev_mtu - constants.VXLAN_ENCAP_OVERHEAD"},{"line_number":352,"context_line":"                    if mtu \u003e max_mtu:"},{"line_number":353,"context_line":"                        LOG.error(\"Provided MTU value %(mtu)s for VNI \""},{"line_number":354,"context_line":"                                  \"%(segmentation_id)s is too high. \""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f9dbf25_cd600c36","line":351,"in_reply_to":"1f9dbf25_b3941eea","updated":"2018-03-01 15:08:53.000000000","message":"If the endpoint is IPv6 it should make the overhead 70 and mtu should be 1430.  I thought we actually did this correctly already in _TunnelTypeDriverBase.get_mtu():\n\n    version \u003d cfg.CONF.ml2.overlay_ip_version                               \n    ip_header_length \u003d p_const.IP_HEADER_LENGTH[version]\n\nthen the type_vxlan code returns 30, which is added to that.\n\nThe constant should stay 30 since it\u0027s just the VXLAN overhead.","commit_id":"db5fb02b11f143f0ac8c07e16a2cccfaa27215c2"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1845a785b20cbdde5560ed3bf91cdc8c10e5dfef","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            try:"},{"line_number":349,"context_line":"                if mtu:"},{"line_number":350,"context_line":"                    phys_dev_mtu \u003d ip_lib.get_device_mtu(self.local_int)"},{"line_number":351,"context_line":"                    max_mtu \u003d phys_dev_mtu - constants.VXLAN_ENCAP_OVERHEAD"},{"line_number":352,"context_line":"                    if mtu \u003e max_mtu:"},{"line_number":353,"context_line":"                        LOG.error(\"Provided MTU value %(mtu)s for VNI \""},{"line_number":354,"context_line":"                                  \"%(segmentation_id)s is too high. \""}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_07403535","line":351,"in_reply_to":"1f9dbf25_cd600c36","updated":"2018-03-07 13:22:22.000000000","message":"so I checked it once again and indeed it is done fine in TunnelTypeDriverBase.get_mtu() so it is stored properly for network in neutron\u0027s db.\nProblem is that this is based on cfg.CONF.ml2.overlay_ip_version which is set on neutron-server node and not on compute/network nodes. Based on this setting neutron knows what is IP overlay for mtu.\n\nBut here problem is that we know this mtu calculated by neutron and we need to compare it with real mtu of physical device. And we don\u0027t know what IP version will be used for establish tunnels as it might be done later with fdb_add.\n\nI think that maybe after patch https://review.openstack.org/#/c/548617/5 will be merged I will be able to change logic here little bit and something like:\n\ntry:\n        int_vxlan.link.set_mtu(mtu)\nexcept NetlinkError:\n        if e.code \u003d\u003d errno.EINVAL:\n            LOG.error(\"Provided MTU.....\")\n\nI can\u0027t do it like that now as currently ip_lib raises only exception with message as string and it has always Return code \u003d 2","commit_id":"db5fb02b11f143f0ac8c07e16a2cccfaa27215c2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"84d07b943a031c91535dce332b17116589f46662","unresolved":false,"context_lines":[{"line_number":360,"context_line":"                                   \u0027dev\u0027: self.local_int,"},{"line_number":361,"context_line":"                                   \u0027phys_mtu\u0027: phys_dev_mtu,"},{"line_number":362,"context_line":"                                   \u0027max_mtu\u0027: max_mtu})"},{"line_number":363,"context_line":"                        return None"},{"line_number":364,"context_line":"                int_vxlan \u003d self.ip.add_vxlan(interface, segmentation_id,"},{"line_number":365,"context_line":"                                              **args)"},{"line_number":366,"context_line":"                if mtu:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_397aa6f0","line":363,"range":{"start_line":363,"start_character":31,"end_line":363,"end_character":35},"updated":"2018-02-21 16:22:01.000000000","message":"by default None is always returned. So you do not need to specifically do this","commit_id":"db5fb02b11f143f0ac8c07e16a2cccfaa27215c2"}]}
