)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"c736f1da79fa790d6797a4f5f8af5aa65ade676c","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"neutron client code patch:"},{"line_number":21,"context_line":"https://review.openstack.org/#/c/286504"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I1c6f6410cbf79d4999a8ff3dddd6c88b2c222a43"},{"line_number":24,"context_line":"Partial-Bug: #1525059"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dab17558_80143b4d","line":22,"updated":"2016-05-16 07:31:40.000000000","message":"I think that this requires the following:\n1. DicImpact falg\n2. a release note\n3. A link to the BP","commit_id":"f4fa7306f658d3351b99e39c4b8609e1c44f9e4a"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"3bcc8d78b136631368697569d700d7d314a2b14d","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"neutron client code patch:"},{"line_number":21,"context_line":"https://review.openstack.org/#/c/286504"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I1c6f6410cbf79d4999a8ff3dddd6c88b2c222a43"},{"line_number":24,"context_line":"Partial-Bug: #1525059"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dab17558_3f943c35","line":22,"in_reply_to":"dab17558_80143b4d","updated":"2016-05-17 13:09:01.000000000","message":"Could you please give me an example of release note?\nThanks.","commit_id":"f4fa7306f658d3351b99e39c4b8609e1c44f9e4a"}],"neutron/agent/linux/ip_lib.py":[{"author":{"_account_id":10558,"name":"Dustin Lundquist","email":"dustin@null-ptr.net","username":"dlundquist"},"change_message_id":"f1270a30147f334cf72577d84c3d1653aab7967e","unresolved":false,"context_lines":[{"line_number":243,"context_line":"            cmd.extend([\u0027port\u0027, port[0], port[1]])"},{"line_number":244,"context_line":"        elif port:"},{"line_number":245,"context_line":"            raise n_exc.NetworkVxlanPortRangeError(vxlan_range\u003dport)"},{"line_number":246,"context_line":"        elif dstport:"},{"line_number":247,"context_line":"            cmd.extend([\u0027dstport\u0027, dstport])"},{"line_number":248,"context_line":"        self._as_root([], \u0027link\u0027, cmd)"},{"line_number":249,"context_line":"        return (IPDevice(name, namespace\u003dself.namespace))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_8ca62abf","line":246,"updated":"2016-06-17 18:04:39.000000000","message":"The iproute man page doesn\u0027t mention the dstport option, but https://www.kernel.org/doc/Documentation/networking/vxlan.txt does. Based on the man page port controls the source port, and based on the kernel documentation dstport overrides the kernel module parameter defining the destination port of the VXLAN overlay traffic. If so, dstport is not incompatible with port, so this should be `if dstport:`.","commit_id":"94a8066e6660816a6cc41a5c8fb11ef6de5fb936"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"f8f3bc448cb478782cb926e2c0210786a704c97c","unresolved":false,"context_lines":[{"line_number":243,"context_line":"            cmd.extend([\u0027port\u0027, port[0], port[1]])"},{"line_number":244,"context_line":"        elif port:"},{"line_number":245,"context_line":"            raise n_exc.NetworkVxlanPortRangeError(vxlan_range\u003dport)"},{"line_number":246,"context_line":"        elif dstport:"},{"line_number":247,"context_line":"            cmd.extend([\u0027dstport\u0027, dstport])"},{"line_number":248,"context_line":"        self._as_root([], \u0027link\u0027, cmd)"},{"line_number":249,"context_line":"        return (IPDevice(name, namespace\u003dself.namespace))"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_07425310","line":246,"in_reply_to":"7aa08908_8ca62abf","updated":"2016-06-23 02:46:59.000000000","message":"Will fix it.\n\nI found the patch adding dstport to iproute2 https://patchwork.ozlabs.org/patch/240208/.\nBut it doesn\u0027t include change for manpage.\nAnd this patch is submitted in 2013. I think most linux release has included this patch.","commit_id":"94a8066e6660816a6cc41a5c8fb11ef6de5fb936"}],"neutron/plugins/common/utils.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"c736f1da79fa790d6797a4f5f8af5aa65ade676c","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    return new_name"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"def get_ip_in_hex(ip_address):"},{"line_number":198,"context_line":"    try:"},{"line_number":199,"context_line":"        return \u0027%08x\u0027 % netaddr.IPAddress(ip_address, version\u003d4)"},{"line_number":200,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_c075a3cb","line":197,"updated":"2016-05-16 07:31:40.000000000","message":"i think that you should add in a 4 here","commit_id":"f4fa7306f658d3351b99e39c4b8609e1c44f9e4a"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"8e23f1aae05f82453530de360ac67d2f6c3a909f","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    return new_name"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"def get_ip_in_hex(ip_address):"},{"line_number":198,"context_line":"    try:"},{"line_number":199,"context_line":"        return \u0027%08x\u0027 % netaddr.IPAddress(ip_address, version\u003d4)"},{"line_number":200,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_952c7403","line":197,"in_reply_to":"bab6814e_41aab271","updated":"2016-05-26 05:45:05.000000000","message":"Thanks Brian \u0026 garyk.\n\nIPv6 address need to be considered. I will remove this API.\n\nBut I don\u0027t think I need move get_vxlan_vtep_device_name to this file. Reasons:\n1. there is similar API get_vxlan_device_name in linuxbridge_neutron_agent.py, I think it\u0027s better keep it there, or I need refactor more APIs in linuxbridge_neutron_agent.py.\n\n2. get_vxlan_vtep_device_name is not generic API, it\u0027s only used by linux bridge agent.","commit_id":"f4fa7306f658d3351b99e39c4b8609e1c44f9e4a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b9ff201cc8d606ecee364a1111d238d718b104b9","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    return new_name"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"def get_ip_in_hex(ip_address):"},{"line_number":198,"context_line":"    try:"},{"line_number":199,"context_line":"        return \u0027%08x\u0027 % netaddr.IPAddress(ip_address, version\u003d4)"},{"line_number":200,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_41aab271","line":197,"in_reply_to":"dab17558_69be1266","updated":"2016-05-24 14:55:40.000000000","message":"Hi Steve,\n\nSorry, missed your reply.\n\nI\u0027m thinking you should put get_tunnel_hash() here, maybe even get_tunnel_name() ?  That, and we just can\u0027t ignore IPv6 at this point in time.","commit_id":"f4fa7306f658d3351b99e39c4b8609e1c44f9e4a"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"3bcc8d78b136631368697569d700d7d314a2b14d","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    return new_name"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"def get_ip_in_hex(ip_address):"},{"line_number":198,"context_line":"    try:"},{"line_number":199,"context_line":"        return \u0027%08x\u0027 % netaddr.IPAddress(ip_address, version\u003d4)"},{"line_number":200,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_69be1266","line":197,"in_reply_to":"dab17558_9af91f83","updated":"2016-05-17 13:09:01.000000000","message":"Hi Brian,\n\nDo you want to move this function to some other places, and change the function name. Right?","commit_id":"f4fa7306f658d3351b99e39c4b8609e1c44f9e4a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7f8d80c9587f80db1d60699cf55f03e9ace817a4","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    return new_name"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"def get_ip_in_hex(ip_address):"},{"line_number":198,"context_line":"    try:"},{"line_number":199,"context_line":"        return \u0027%08x\u0027 % netaddr.IPAddress(ip_address, version\u003d4)"},{"line_number":200,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_9af91f83","line":197,"in_reply_to":"dab17558_c075a3cb","updated":"2016-05-16 20:09:06.000000000","message":"I just removed get_ip_in_hex() here: https://review.openstack.org/#/c/257335/\n\nLet\u0027s change the name to what it really is, and if we need to move things into a common place we can do it here.","commit_id":"f4fa7306f658d3351b99e39c4b8609e1c44f9e4a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"c736f1da79fa790d6797a4f5f8af5aa65ade676c","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        return \u0027%08x\u0027 % netaddr.IPAddress(ip_address, version\u003d4)"},{"line_number":200,"context_line":"    except Exception:"},{"line_number":201,"context_line":"        raise ValueError(_(\"Invalid IP address\"))"},{"line_number":202,"context_line":"    return"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_207f4fac","line":202,"updated":"2016-05-16 07:31:40.000000000","message":"no need for the return","commit_id":"f4fa7306f658d3351b99e39c4b8609e1c44f9e4a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a4bcd7cb5712f6669cd85b5a743c9615bdc8baa9","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        return \u0027%08x\u0027 % netaddr.IPAddress(ip_address, version\u003d4)"},{"line_number":200,"context_line":"    except Exception:"},{"line_number":201,"context_line":"        raise ValueError(_(\"Invalid IP address\"))"},{"line_number":202,"context_line":"    return"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_1a564629","line":202,"updated":"2016-05-29 12:33:57.000000000","message":"you do not need the return here","commit_id":"59880a7a0039dabce346b694031bb82372f701c7"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b33c84e93f40e66c5ec0100adae9d39c2b56f9d9","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self.max_index \u003d max_index"},{"line_number":201,"context_line":"        self.indexes \u003d []"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def find(self, key):"},{"line_number":204,"context_line":"        # First index"},{"line_number":205,"context_line":"        num \u003d 1"},{"line_number":206,"context_line":"        if len(self.indexes) \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_a7e5180a","line":203,"updated":"2016-06-12 18:17:02.000000000","message":"if there are a number of threads using this data structure could there be race conditions?","commit_id":"a8c2cbf737af9074d6d705e8a7b01b318d190a85"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"a44ef1efb4a6d18ee08c1ffffd62376379d98ffe","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self.max_index \u003d max_index"},{"line_number":201,"context_line":"        self.indexes \u003d []"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def find(self, key):"},{"line_number":204,"context_line":"        # First index"},{"line_number":205,"context_line":"        num \u003d 1"},{"line_number":206,"context_line":"        if len(self.indexes) \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_27b10f48","line":203,"in_reply_to":"7aa08908_a7e5180a","updated":"2016-06-13 13:25:52.000000000","message":"Thanks. \nWill add lock for race conditions.","commit_id":"a8c2cbf737af9074d6d705e8a7b01b318d190a85"}],"neutron/plugins/ml2/drivers/linuxbridge/agent/common/constants.py":[{"author":{"_account_id":10558,"name":"Dustin Lundquist","email":"dustin@null-ptr.net","username":"dlundquist"},"change_message_id":"f1270a30147f334cf72577d84c3d1653aab7967e","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"RESOURCE_ID_LENGTH \u003d 11"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"VXLAN_VTEPS_NUMBER_MAX \u003d 9999"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_cc9af261","line":27,"updated":"2016-06-17 18:04:39.000000000","message":"Can we include a comment with the reasoning for this (apparently arbitrary) limit?","commit_id":"94a8066e6660816a6cc41a5c8fb11ef6de5fb936"},{"author":{"_account_id":10558,"name":"Dustin Lundquist","email":"dustin@null-ptr.net","username":"dlundquist"},"change_message_id":"347acc1db77b6414660f7aef8a835d8af777c813","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"RESOURCE_ID_LENGTH \u003d 11"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"VXLAN_VTEPS_NUMBER_MAX \u003d 9999"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_63664452","line":27,"in_reply_to":"3aaa91ec_27e30f07","updated":"2016-06-24 17:54:25.000000000","message":"A comment to this effect would be great: # Limit VTEP IDs to 4 digits for IFNAMSIZ.","commit_id":"94a8066e6660816a6cc41a5c8fb11ef6de5fb936"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"998c31a2929d4ec4f8542f9687a635dc6aeb260a","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"RESOURCE_ID_LENGTH \u003d 11"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"VXLAN_VTEPS_NUMBER_MAX \u003d 9999"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_36c98179","line":27,"in_reply_to":"3aaa91ec_63664452","updated":"2016-08-04 04:27:43.000000000","message":"Will add it","commit_id":"94a8066e6660816a6cc41a5c8fb11ef6de5fb936"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"f8f3bc448cb478782cb926e2c0210786a704c97c","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"RESOURCE_ID_LENGTH \u003d 11"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"VXLAN_VTEPS_NUMBER_MAX \u003d 9999"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_27e30f07","line":27,"in_reply_to":"7aa08908_cc9af261","updated":"2016-06-23 02:46:59.000000000","message":"For a linux interface, its name must len is 15 printable characters. \nThe vtep interface name will be this format \"vx-yyyyy-xxxx\", yyyy is the VNI number, and its max value: 4194303.\nthe xxx is sequence number of the interface. \nSo the max length of \u0027xxxx\u0027 is 4 characters, it\u0027s 9999.","commit_id":"94a8066e6660816a6cc41a5c8fb11ef6de5fb936"}],"neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"c736f1da79fa790d6797a4f5f8af5aa65ade676c","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                            \"incorrect vxlan device name\"), vtep_ip)"},{"line_number":196,"context_line":"            return"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        if (int(segmentation_id) \u003c 0) or \\"},{"line_number":199,"context_line":"                (int(segmentation_id) \u003e p_const.MAX_VXLAN_VNI):"},{"line_number":200,"context_line":"            LOG.warning(_LW(\"Invalid Segmentation ID: %s, will lead to \""},{"line_number":201,"context_line":"                            \"incorrect vxlan device name\"), segmentation_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_c05c834d","line":198,"updated":"2016-05-16 07:31:40.000000000","message":"you have the brackets so there is no need for the \\","commit_id":"f4fa7306f658d3351b99e39c4b8609e1c44f9e4a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"c736f1da79fa790d6797a4f5f8af5aa65ade676c","unresolved":false,"context_lines":[{"line_number":201,"context_line":"                            \"incorrect vxlan device name\"), segmentation_id)"},{"line_number":202,"context_line":"            return"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        return VXLAN_VTEP_INTERFACE_PREFIX + str(segmentation_id) + \\"},{"line_number":205,"context_line":"            p_utils.get_ip_in_hex(vtep_ip)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    def get_vxlan_group(self, segmentation_id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_00532b3a","line":204,"updated":"2016-05-16 07:31:40.000000000","message":"please use brackets here so we do not need the \\","commit_id":"f4fa7306f658d3351b99e39c4b8609e1c44f9e4a"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"f610356f17c28832df24e06b718e18a17a807414","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    def get_vxlan_vtep_device_name(self, segmentation_id, vtep_ip):"},{"line_number":192,"context_line":"        # Because linux interface name max length is 15 printable characters"},{"line_number":193,"context_line":"        # BUT vxlan vtep tunnel must be distinguished by both VNI and VTEP IP"},{"line_number":194,"context_line":"        # Vxlan vtep interface will look like: vx-4194303-xxx"},{"line_number":195,"context_line":"        # 4194304 is max length of VNI, xxxx represent the unique index of"},{"line_number":196,"context_line":"        # same VNI."},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_a029438c","line":194,"updated":"2016-06-01 12:28:49.000000000","message":"xxxx","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"4f611d69b9cfe2a5c7411a235159bf71a5539a44","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    def get_vxlan_vtep_device_name(self, segmentation_id, vtep_ip):"},{"line_number":192,"context_line":"        # Because linux interface name max length is 15 printable characters"},{"line_number":193,"context_line":"        # BUT vxlan vtep tunnel must be distinguished by both VNI and VTEP IP"},{"line_number":194,"context_line":"        # Vxlan vtep interface will look like: vx-4194303-xxx"},{"line_number":195,"context_line":"        # 4194304 is max length of VNI, xxxx represent the unique index of"},{"line_number":196,"context_line":"        # same VNI."},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_21383a3d","line":194,"in_reply_to":"9abb7d3a_1601fa6a","updated":"2016-06-03 08:04:13.000000000","message":"Thanks. Will correct it.","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"1b4afdbb5731b247bad075129fcc95bd34bb318a","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    def get_vxlan_vtep_device_name(self, segmentation_id, vtep_ip):"},{"line_number":192,"context_line":"        # Because linux interface name max length is 15 printable characters"},{"line_number":193,"context_line":"        # BUT vxlan vtep tunnel must be distinguished by both VNI and VTEP IP"},{"line_number":194,"context_line":"        # Vxlan vtep interface will look like: vx-4194303-xxx"},{"line_number":195,"context_line":"        # 4194304 is max length of VNI, xxxx represent the unique index of"},{"line_number":196,"context_line":"        # same VNI."},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_1601fa6a","line":194,"in_reply_to":"9abb7d3a_9c2a362b","updated":"2016-06-03 07:44:47.000000000","message":"ok, in line 195 you use xxxx.\n\nlen(\"vx-4194303-xxx\") \u003d 14 --\u003e so you have one char left :)\n\nWhat\u0027s the reason for restricting the number of vteps to 999?","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"13048d370b0e2e6644bd47717bdb65d40e3d952c","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    def get_vxlan_vtep_device_name(self, segmentation_id, vtep_ip):"},{"line_number":192,"context_line":"        # Because linux interface name max length is 15 printable characters"},{"line_number":193,"context_line":"        # BUT vxlan vtep tunnel must be distinguished by both VNI and VTEP IP"},{"line_number":194,"context_line":"        # Vxlan vtep interface will look like: vx-4194303-xxx"},{"line_number":195,"context_line":"        # 4194304 is max length of VNI, xxxx represent the unique index of"},{"line_number":196,"context_line":"        # same VNI."},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_9c2a362b","line":194,"in_reply_to":"9abb7d3a_a029438c","updated":"2016-06-03 07:19:00.000000000","message":"I want to use \"xxx\" represents 3 digital.","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"f610356f17c28832df24e06b718e18a17a807414","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        # 4194304 is max length of VNI, xxxx represent the unique index of"},{"line_number":196,"context_line":"        # same VNI."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        if (int(segmentation_id) \u003c 0 or int(segmentation_id) \u003e"},{"line_number":199,"context_line":"            p_const.MAX_VXLAN_VNI):"},{"line_number":200,"context_line":"            LOG.warning(_LW(\"Invalid Segmentation ID: %s, will lead to \""},{"line_number":201,"context_line":"                            \"incorrect vxlan device name\"), segmentation_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_4cc4133f","line":198,"updated":"2016-06-01 12:28:49.000000000","message":"you could refactor this into a method is_valid_segmentation_id() or so, and use it here and in line 185","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"13048d370b0e2e6644bd47717bdb65d40e3d952c","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        # 4194304 is max length of VNI, xxxx represent the unique index of"},{"line_number":196,"context_line":"        # same VNI."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        if (int(segmentation_id) \u003c 0 or int(segmentation_id) \u003e"},{"line_number":199,"context_line":"            p_const.MAX_VXLAN_VNI):"},{"line_number":200,"context_line":"            LOG.warning(_LW(\"Invalid Segmentation ID: %s, will lead to \""},{"line_number":201,"context_line":"                            \"incorrect vxlan device name\"), segmentation_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_3c1a2a18","line":198,"in_reply_to":"9abb7d3a_4cc4133f","updated":"2016-06-03 07:19:00.000000000","message":"Will fix.","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"f610356f17c28832df24e06b718e18a17a807414","unresolved":false,"context_lines":[{"line_number":202,"context_line":"            return"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        # First vtep in this network"},{"line_number":205,"context_line":"        index \u003d 1"},{"line_number":206,"context_line":"        new_index \u003d {\u0027vtep_ip\u0027: vtep_ip, \u0027index\u0027: index}"},{"line_number":207,"context_line":"        segmentation_id \u003d str(segmentation_id)"},{"line_number":208,"context_line":"        if segmentation_id not in self.vxlan_vteps:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_36bf59ab","line":205,"updated":"2016-06-01 12:28:49.000000000","message":"Could we encapsulate this index logic into a separate class or so?","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"13048d370b0e2e6644bd47717bdb65d40e3d952c","unresolved":false,"context_lines":[{"line_number":202,"context_line":"            return"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        # First vtep in this network"},{"line_number":205,"context_line":"        index \u003d 1"},{"line_number":206,"context_line":"        new_index \u003d {\u0027vtep_ip\u0027: vtep_ip, \u0027index\u0027: index}"},{"line_number":207,"context_line":"        segmentation_id \u003d str(segmentation_id)"},{"line_number":208,"context_line":"        if segmentation_id not in self.vxlan_vteps:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_506d4a98","line":205,"in_reply_to":"9abb7d3a_36bf59ab","updated":"2016-06-03 07:19:00.000000000","message":"Will fix it","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"f610356f17c28832df24e06b718e18a17a807414","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        index \u003d 1"},{"line_number":206,"context_line":"        new_index \u003d {\u0027vtep_ip\u0027: vtep_ip, \u0027index\u0027: index}"},{"line_number":207,"context_line":"        segmentation_id \u003d str(segmentation_id)"},{"line_number":208,"context_line":"        if segmentation_id not in self.vxlan_vteps:"},{"line_number":209,"context_line":"            self.vxlan_vteps[segmentation_id] \u003d [new_index]"},{"line_number":210,"context_line":"            interface \u003d (VXLAN_VTEP_INTERFACE_PREFIX + str(segmentation_id) +"},{"line_number":211,"context_line":"                        \u0027-\u0027 + str(index))"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_947a7d86","line":208,"updated":"2016-06-01 12:28:49.000000000","message":"why is this a special case. Can\u0027t it be treated with line 241?","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"13048d370b0e2e6644bd47717bdb65d40e3d952c","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        index \u003d 1"},{"line_number":206,"context_line":"        new_index \u003d {\u0027vtep_ip\u0027: vtep_ip, \u0027index\u0027: index}"},{"line_number":207,"context_line":"        segmentation_id \u003d str(segmentation_id)"},{"line_number":208,"context_line":"        if segmentation_id not in self.vxlan_vteps:"},{"line_number":209,"context_line":"            self.vxlan_vteps[segmentation_id] \u003d [new_index]"},{"line_number":210,"context_line":"            interface \u003d (VXLAN_VTEP_INTERFACE_PREFIX + str(segmentation_id) +"},{"line_number":211,"context_line":"                        \u0027-\u0027 + str(index))"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_9067b2b6","line":208,"in_reply_to":"9abb7d3a_947a7d86","updated":"2016-06-03 07:19:00.000000000","message":"Will fix it","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"f610356f17c28832df24e06b718e18a17a807414","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                dup_vtep_ip \u003d True"},{"line_number":226,"context_line":"                break"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        # Find a free index"},{"line_number":229,"context_line":"        if not dup_vtep_ip:"},{"line_number":230,"context_line":"            for index in range(1, lconst.VXLAN_VTEPS_NUMBER_MAX):"},{"line_number":231,"context_line":"                used \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_d9c9dead","line":228,"updated":"2016-06-01 12:28:49.000000000","message":"What about implementing a IndexPool class, that encapsulates some of the logic here.\n\n  def getIndex()\n      \"\"\"\"returns a free index\"\"\"\n\n  def releaseIndex(index)\n      \"\"\"release a index back to the pool\"","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"13048d370b0e2e6644bd47717bdb65d40e3d952c","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                dup_vtep_ip \u003d True"},{"line_number":226,"context_line":"                break"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        # Find a free index"},{"line_number":229,"context_line":"        if not dup_vtep_ip:"},{"line_number":230,"context_line":"            for index in range(1, lconst.VXLAN_VTEPS_NUMBER_MAX):"},{"line_number":231,"context_line":"                used \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_10290238","line":228,"in_reply_to":"9abb7d3a_d9c9dead","updated":"2016-06-03 07:19:00.000000000","message":"Will fix it","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"f610356f17c28832df24e06b718e18a17a807414","unresolved":false,"context_lines":[{"line_number":291,"context_line":"            return"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        interfaces \u003d []"},{"line_number":294,"context_line":"        interfaces.append(interface)"},{"line_number":295,"context_line":"        for flooding_vtep in network_segment.flooding_vteps:"},{"line_number":296,"context_line":"            interface \u003d self.ensure_vxlan(segmentation_id, flooding_vtep)"},{"line_number":297,"context_line":"            if not interface:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_6cd63750","line":294,"updated":"2016-06-01 12:28:49.000000000","message":"why not adding the interface directly in 293?","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"13048d370b0e2e6644bd47717bdb65d40e3d952c","unresolved":false,"context_lines":[{"line_number":291,"context_line":"            return"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        interfaces \u003d []"},{"line_number":294,"context_line":"        interfaces.append(interface)"},{"line_number":295,"context_line":"        for flooding_vtep in network_segment.flooding_vteps:"},{"line_number":296,"context_line":"            interface \u003d self.ensure_vxlan(segmentation_id, flooding_vtep)"},{"line_number":297,"context_line":"            if not interface:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_10e0e2f9","line":294,"in_reply_to":"9abb7d3a_6cd63750","updated":"2016-06-03 07:19:00.000000000","message":"Will fix it","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"f610356f17c28832df24e06b718e18a17a807414","unresolved":false,"context_lines":[{"line_number":515,"context_line":"                      physical_network)"},{"line_number":516,"context_line":"            return"},{"line_number":517,"context_line":"        if network_type \u003d\u003d p_const.TYPE_FLAT:"},{"line_number":518,"context_line":"            flat_interface \u003d self.ensure_flat_bridge(network_id,"},{"line_number":519,"context_line":"                                                     physical_bridge,"},{"line_number":520,"context_line":"                                                     physical_interface)"},{"line_number":521,"context_line":"            return flat_interface"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_2cb42f33","line":518,"updated":"2016-06-01 12:28:49.000000000","message":"whole block is a unrelated change!","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"13048d370b0e2e6644bd47717bdb65d40e3d952c","unresolved":false,"context_lines":[{"line_number":515,"context_line":"                      physical_network)"},{"line_number":516,"context_line":"            return"},{"line_number":517,"context_line":"        if network_type \u003d\u003d p_const.TYPE_FLAT:"},{"line_number":518,"context_line":"            flat_interface \u003d self.ensure_flat_bridge(network_id,"},{"line_number":519,"context_line":"                                                     physical_bridge,"},{"line_number":520,"context_line":"                                                     physical_interface)"},{"line_number":521,"context_line":"            return flat_interface"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_b0ad968a","line":518,"in_reply_to":"9abb7d3a_2cb42f33","updated":"2016-06-03 07:19:00.000000000","message":"recover it","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"f610356f17c28832df24e06b718e18a17a807414","unresolved":false,"context_lines":[{"line_number":567,"context_line":"            self.ensure_local_bridge(network_id, bridge_name)"},{"line_number":568,"context_line":"        elif network_type \u003d\u003d p_const.TYPE_VXLAN:"},{"line_number":569,"context_line":"            phy_dev_names \u003d self.ensure_physical_in_bridge(network_id,"},{"line_number":570,"context_line":"                                                          network_segment)"},{"line_number":571,"context_line":"            if not phy_dev_names:"},{"line_number":572,"context_line":"                return False"},{"line_number":573,"context_line":"            for phy_dev_name in phy_dev_names:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_31012807","line":570,"updated":"2016-06-01 12:28:49.000000000","message":"nit: indentation","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"fe2033c986f409e11d8e99182eb2c19275ccba94","unresolved":false,"context_lines":[{"line_number":567,"context_line":"            self.ensure_local_bridge(network_id, bridge_name)"},{"line_number":568,"context_line":"        elif network_type \u003d\u003d p_const.TYPE_VXLAN:"},{"line_number":569,"context_line":"            phy_dev_names \u003d self.ensure_physical_in_bridge(network_id,"},{"line_number":570,"context_line":"                                                          network_segment)"},{"line_number":571,"context_line":"            if not phy_dev_names:"},{"line_number":572,"context_line":"                return False"},{"line_number":573,"context_line":"            for phy_dev_name in phy_dev_names:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_b69f4e5e","line":570,"in_reply_to":"9abb7d3a_10eaa2ac","updated":"2016-06-03 07:41:03.000000000","message":"just indent it by one more space :) If that\u0027s not working as it is too long, leave it as is, or move all the args into a new line\n\n  phy_dev_names \u003d self.ensure_physical_in_bridge(\n      network_id, network_segment)\n\nAnyhow, it\u0027s nothing of importance! Thanks!","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"13048d370b0e2e6644bd47717bdb65d40e3d952c","unresolved":false,"context_lines":[{"line_number":567,"context_line":"            self.ensure_local_bridge(network_id, bridge_name)"},{"line_number":568,"context_line":"        elif network_type \u003d\u003d p_const.TYPE_VXLAN:"},{"line_number":569,"context_line":"            phy_dev_names \u003d self.ensure_physical_in_bridge(network_id,"},{"line_number":570,"context_line":"                                                          network_segment)"},{"line_number":571,"context_line":"            if not phy_dev_names:"},{"line_number":572,"context_line":"                return False"},{"line_number":573,"context_line":"            for phy_dev_name in phy_dev_names:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_10eaa2ac","line":570,"in_reply_to":"9abb7d3a_31012807","updated":"2016-06-03 07:19:00.000000000","message":"what\u0027s your suggest?\nThanks.","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"4f611d69b9cfe2a5c7411a235159bf71a5539a44","unresolved":false,"context_lines":[{"line_number":567,"context_line":"            self.ensure_local_bridge(network_id, bridge_name)"},{"line_number":568,"context_line":"        elif network_type \u003d\u003d p_const.TYPE_VXLAN:"},{"line_number":569,"context_line":"            phy_dev_names \u003d self.ensure_physical_in_bridge(network_id,"},{"line_number":570,"context_line":"                                                          network_segment)"},{"line_number":571,"context_line":"            if not phy_dev_names:"},{"line_number":572,"context_line":"                return False"},{"line_number":573,"context_line":"            for phy_dev_name in phy_dev_names:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_c1f20e9a","line":570,"in_reply_to":"9abb7d3a_b69f4e5e","updated":"2016-06-03 08:04:13.000000000","message":"Thanks for your advise.","commit_id":"cf22d330b77bb8944b6963a8766228b5d2a831ee"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b33c84e93f40e66c5ec0100adae9d39c2b56f9d9","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            interface_id[:lconst.RESOURCE_ID_LENGTH]"},{"line_number":183,"context_line":"        return tap_device_name"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def validate_segmentation_id(self, segmentation_id):"},{"line_number":186,"context_line":"        if 0 \u003c\u003d int(segmentation_id) \u003c\u003d p_const.MAX_VXLAN_VNI:"},{"line_number":187,"context_line":"            return True"},{"line_number":188,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_8723bc57","line":185,"updated":"2016-06-12 18:17:02.000000000","message":"this should have a _ as its a local method","commit_id":"a8c2cbf737af9074d6d705e8a7b01b318d190a85"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"a44ef1efb4a6d18ee08c1ffffd62376379d98ffe","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            interface_id[:lconst.RESOURCE_ID_LENGTH]"},{"line_number":183,"context_line":"        return tap_device_name"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def validate_segmentation_id(self, segmentation_id):"},{"line_number":186,"context_line":"        if 0 \u003c\u003d int(segmentation_id) \u003c\u003d p_const.MAX_VXLAN_VNI:"},{"line_number":187,"context_line":"            return True"},{"line_number":188,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_e779c783","line":185,"in_reply_to":"7aa08908_8723bc57","updated":"2016-06-13 13:25:52.000000000","message":"Thanks.\nWill fix it","commit_id":"a8c2cbf737af9074d6d705e8a7b01b318d190a85"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b33c84e93f40e66c5ec0100adae9d39c2b56f9d9","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        return tap_device_name"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def validate_segmentation_id(self, segmentation_id):"},{"line_number":186,"context_line":"        if 0 \u003c\u003d int(segmentation_id) \u003c\u003d p_const.MAX_VXLAN_VNI:"},{"line_number":187,"context_line":"            return True"},{"line_number":188,"context_line":"        else:"},{"line_number":189,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_2732c8a7","line":186,"updated":"2016-06-12 18:17:02.000000000","message":"return (0 \u003c\u003d int(segmentation_id) \u003c\u003d p_const.MAX_VXLAN_VNI)","commit_id":"a8c2cbf737af9074d6d705e8a7b01b318d190a85"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"a44ef1efb4a6d18ee08c1ffffd62376379d98ffe","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        return tap_device_name"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def validate_segmentation_id(self, segmentation_id):"},{"line_number":186,"context_line":"        if 0 \u003c\u003d int(segmentation_id) \u003c\u003d p_const.MAX_VXLAN_VNI:"},{"line_number":187,"context_line":"            return True"},{"line_number":188,"context_line":"        else:"},{"line_number":189,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_c77e4b69","line":186,"in_reply_to":"7aa08908_2732c8a7","updated":"2016-06-13 13:25:52.000000000","message":"Thanks. \nWill fix it.","commit_id":"a8c2cbf737af9074d6d705e8a7b01b318d190a85"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b33c84e93f40e66c5ec0100adae9d39c2b56f9d9","unresolved":false,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        index \u003d self.vxlan_vteps[segmentation_id].find(vtep_ip)"},{"line_number":216,"context_line":"        if not index:"},{"line_number":217,"context_line":"            LOG.warning(_LW(\"VTEP number of Segmentation ID: %s reaches\""},{"line_number":218,"context_line":"                            \" the maximum\"), segmentation_id)"},{"line_number":219,"context_line":"            return"},{"line_number":220,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_07186c1d","line":217,"updated":"2016-06-12 18:17:02.000000000","message":"nit - please add the space at the end of the line","commit_id":"a8c2cbf737af9074d6d705e8a7b01b318d190a85"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"a44ef1efb4a6d18ee08c1ffffd62376379d98ffe","unresolved":false,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        index \u003d self.vxlan_vteps[segmentation_id].find(vtep_ip)"},{"line_number":216,"context_line":"        if not index:"},{"line_number":217,"context_line":"            LOG.warning(_LW(\"VTEP number of Segmentation ID: %s reaches\""},{"line_number":218,"context_line":"                            \" the maximum\"), segmentation_id)"},{"line_number":219,"context_line":"            return"},{"line_number":220,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_a7ea1f0d","line":217,"in_reply_to":"7aa08908_07186c1d","updated":"2016-06-13 13:25:52.000000000","message":"Thanks.\nWill fix it.","commit_id":"a8c2cbf737af9074d6d705e8a7b01b318d190a85"},{"author":{"_account_id":10558,"name":"Dustin Lundquist","email":"dustin@null-ptr.net","username":"dlundquist"},"change_message_id":"f1270a30147f334cf72577d84c3d1653aab7967e","unresolved":false,"context_lines":[{"line_number":59,"context_line":"BRIDGE_NAME_PREFIX \u003d \"brq\""},{"line_number":60,"context_line":"MAX_VLAN_POSTFIX_LEN \u003d 5"},{"line_number":61,"context_line":"VXLAN_INTERFACE_PREFIX \u003d \"vxlan-\""},{"line_number":62,"context_line":"VXLAN_VTEP_INTERFACE_PREFIX \u003d \"vx-\""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class LinuxBridgeManager(amb.CommonAgentManagerBase):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_0cc87a54","line":62,"updated":"2016-06-17 18:04:39.000000000","message":"This is confusing. The VXLAN interface is a VTEP, so this is a separate VTEP to remote (non-Neutron managed) VTEP.","commit_id":"94a8066e6660816a6cc41a5c8fb11ef6de5fb936"},{"author":{"_account_id":10558,"name":"Dustin Lundquist","email":"dustin@null-ptr.net","username":"dlundquist"},"change_message_id":"347acc1db77b6414660f7aef8a835d8af777c813","unresolved":false,"context_lines":[{"line_number":59,"context_line":"BRIDGE_NAME_PREFIX \u003d \"brq\""},{"line_number":60,"context_line":"MAX_VLAN_POSTFIX_LEN \u003d 5"},{"line_number":61,"context_line":"VXLAN_INTERFACE_PREFIX \u003d \"vxlan-\""},{"line_number":62,"context_line":"VXLAN_VTEP_INTERFACE_PREFIX \u003d \"vx-\""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class LinuxBridgeManager(amb.CommonAgentManagerBase):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_5b904c95","line":62,"in_reply_to":"3aaa91ec_27914f53","updated":"2016-06-24 17:54:25.000000000","message":"VTEP stands for VXLAN Tunnel Endpoint, so VXLAN_VTEP_ is a little redundant. I\u0027m still unclear here, since I would assume REMOTE_VTEP_INTERACE_PREFIX would refer to remote external VTEP interfaces, not the existing VTEP interfaces for connections between hypervisors.","commit_id":"94a8066e6660816a6cc41a5c8fb11ef6de5fb936"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"998c31a2929d4ec4f8542f9687a635dc6aeb260a","unresolved":false,"context_lines":[{"line_number":59,"context_line":"BRIDGE_NAME_PREFIX \u003d \"brq\""},{"line_number":60,"context_line":"MAX_VLAN_POSTFIX_LEN \u003d 5"},{"line_number":61,"context_line":"VXLAN_INTERFACE_PREFIX \u003d \"vxlan-\""},{"line_number":62,"context_line":"VXLAN_VTEP_INTERFACE_PREFIX \u003d \"vx-\""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class LinuxBridgeManager(amb.CommonAgentManagerBase):"}],"source_content_type":"text/x-python","patch_set":6,"id":"bacf61ea_734aeb84","line":62,"in_reply_to":"3aaa91ec_5b904c95","updated":"2016-08-04 04:27:43.000000000","message":"Change to \"VXLAN_UNICAST_INTERFACE_PREFIX\", it emphasis that this interface is unicast interface.","commit_id":"94a8066e6660816a6cc41a5c8fb11ef6de5fb936"},{"author":{"_account_id":17609,"name":"steve","email":"ruansx@cn.ibm.com","username":"steve.ruan"},"change_message_id":"f8f3bc448cb478782cb926e2c0210786a704c97c","unresolved":false,"context_lines":[{"line_number":59,"context_line":"BRIDGE_NAME_PREFIX \u003d \"brq\""},{"line_number":60,"context_line":"MAX_VLAN_POSTFIX_LEN \u003d 5"},{"line_number":61,"context_line":"VXLAN_INTERFACE_PREFIX \u003d \"vxlan-\""},{"line_number":62,"context_line":"VXLAN_VTEP_INTERFACE_PREFIX \u003d \"vx-\""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class LinuxBridgeManager(amb.CommonAgentManagerBase):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_27914f53","line":62,"in_reply_to":"7aa08908_0cc87a54","updated":"2016-06-23 02:46:59.000000000","message":"Change \"VXLAN_VTEP_INTERFACE_PREFIX\" to \"REMOTE_VTEP_INTERFACE_PREFIX\", is it reasonable?","commit_id":"94a8066e6660816a6cc41a5c8fb11ef6de5fb936"}]}
