)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"aa6e4c688da714b8ef3cce35665fcc16abda0150","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"VXLAN multicast groups distribution in linuxbridge"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Enable creation of VXLANs with different multicast addresses allocated by VNI-address mappings."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-Bug: #1579068"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3aaa91ec_a6cd735f","line":9,"updated":"2016-06-28 04:35:37.000000000","message":"There is a guidence for the commit message, pls see the following link.\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"ea53fb233f006970cad206e70036b986ac297b5e"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"5233cebaac4178604217b95bea3c90eb4dcb206c","unresolved":false,"context_lines":[{"line_number":12,"context_line":"not flood whole network when managing routers between more datacenters"},{"line_number":13,"context_line":"and can not use L2population because VXLAN points to external device."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"DocImpact"},{"line_number":16,"context_line":"Closes-Bug: #1579068"},{"line_number":17,"context_line":"Change-Id: I24f272ccd6d61d9fa7ea3b6f256fabd381f5434a"},{"line_number":18,"context_line":"Signed-off-by: Jiri Kotlin \u003cjiri.kotlin@ultimum.io\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":27,"id":"da36d5c6_5e7be37a","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":9},"updated":"2017-02-24 18:50:02.000000000","message":"DocImpact should have a description of what to do, see http://lists.openstack.org/pipermail/openstack-dev/2015-November/080294.html","commit_id":"e1ba63cc085aaeb8b50973035a55779e57ce5f9c"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"c63ce31563e470c0d1b62a229cf431fdaedd5c92","unresolved":false,"context_lines":[{"line_number":12,"context_line":"not flood whole network when managing routers between more datacenters"},{"line_number":13,"context_line":"and can not use L2population because VXLAN points to external device."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"DocImpact"},{"line_number":16,"context_line":"Closes-Bug: #1579068"},{"line_number":17,"context_line":"Change-Id: I24f272ccd6d61d9fa7ea3b6f256fabd381f5434a"},{"line_number":18,"context_line":"Signed-off-by: Jiri Kotlin \u003cjiri.kotlin@ultimum.io\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":27,"id":"9ff52f3f_25879ada","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":9},"in_reply_to":"da36d5c6_5e7be37a","updated":"2017-04-12 23:54:18.000000000","message":"Done","commit_id":"e1ba63cc085aaeb8b50973035a55779e57ce5f9c"}],"neutron/conf/plugins/ml2/drivers/linuxbridge.py":[{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"5233cebaac4178604217b95bea3c90eb4dcb206c","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                help\u003d_(\"Optional comma-separated list of \""},{"line_number":64,"context_line":"                       \"\u003cmulticast address\u003e:\u003cvni_min\u003e:\u003cvni_max\u003e triples \""},{"line_number":65,"context_line":"                       \"describing how to assign address to \""},{"line_number":66,"context_line":"                       \"VXLAN according its VNI ID.\")),"},{"line_number":67,"context_line":"]"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"bridge_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":27,"id":"da36d5c6_a323e854","line":66,"range":{"start_line":66,"start_character":30,"end_line":66,"end_character":39},"updated":"2017-02-24 18:50:02.000000000","message":"according to","commit_id":"e1ba63cc085aaeb8b50973035a55779e57ce5f9c"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"c63ce31563e470c0d1b62a229cf431fdaedd5c92","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                help\u003d_(\"Optional comma-separated list of \""},{"line_number":64,"context_line":"                       \"\u003cmulticast address\u003e:\u003cvni_min\u003e:\u003cvni_max\u003e triples \""},{"line_number":65,"context_line":"                       \"describing how to assign address to \""},{"line_number":66,"context_line":"                       \"VXLAN according its VNI ID.\")),"},{"line_number":67,"context_line":"]"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"bridge_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":27,"id":"9ff52f3f_682c5799","line":66,"range":{"start_line":66,"start_character":30,"end_line":66,"end_character":39},"in_reply_to":"da36d5c6_a323e854","updated":"2017-04-12 23:54:18.000000000","message":"Done","commit_id":"e1ba63cc085aaeb8b50973035a55779e57ce5f9c"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"642528665177f4efb215f8cf9c72a1c7075f9598","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                default\u003d[],"},{"line_number":63,"context_line":"                help\u003d_(\"Optional comma-separated list of \""},{"line_number":64,"context_line":"                       \"\u003cmulticast address\u003e:\u003cvni_min\u003e:\u003cvni_max\u003e triples \""},{"line_number":65,"context_line":"                       \"describing how to assign address to \""},{"line_number":66,"context_line":"                       \"VXLAN according to its VNI ID.\")),"},{"line_number":67,"context_line":"]"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"5ff73747_4075c7f9","line":65,"range":{"start_line":65,"start_character":49,"end_line":65,"end_character":59},"updated":"2017-05-03 13:28:08.000000000","message":"s/an address to a\n\nalthough it seemed like it should be plural?","commit_id":"0eb0db85360163a063f90386c9ff631e833ddfe9"}],"neutron/plugins/ml2/drivers/linuxbridge/agent/common/config.py":[{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"aa6e4c688da714b8ef3cce35665fcc16abda0150","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                       \"fully compatible with the allowed-address-pairs \""},{"line_number":54,"context_line":"                       \"extension.\")"},{"line_number":55,"context_line":"                ),"},{"line_number":56,"context_line":"    cfg.MultiOpt(\u0027multicast_ranges\u0027,"},{"line_number":57,"context_line":"                 item_type\u003dtypes.Dict(),"},{"line_number":58,"context_line":"                 help\u003d_(\"Comma-separated list of \""},{"line_number":59,"context_line":"                        \"\u003cmulticast address\u003e:\u003cvni_min\u003e:\u003cvni_max\u003e triples \""},{"line_number":60,"context_line":"                        \"describing how to assign address to \""},{"line_number":61,"context_line":"                        \"VXLAN according its VNI ID.\")),"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_e61c9bc3","line":58,"range":{"start_line":56,"start_character":0,"end_line":58,"end_character":50},"updated":"2016-06-28 04:35:37.000000000","message":"I think this could be cfg.ListOpt with default value []","commit_id":"ea53fb233f006970cad206e70036b986ac297b5e"},{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"64feaca50fc6bc8c21b7777ca0b1e50f09ec844d","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                ),"},{"line_number":61,"context_line":"    cfg.ListOpt(\u0027multicast_ranges\u0027,"},{"line_number":62,"context_line":"                default\u003d[],"},{"line_number":63,"context_line":"                help\u003d_(\"Comma-separated list of \""},{"line_number":64,"context_line":"                       \"\u003cmulticast address\u003e:\u003cvni_min\u003e:\u003cvni_max\u003e triples \""},{"line_number":65,"context_line":"                       \"describing how to assign address to \""},{"line_number":66,"context_line":"                       \"VXLAN according its VNI ID.\")),"}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_1fad189b","line":63,"updated":"2016-07-12 17:07:40.000000000","message":"Optional comma-separated list of","commit_id":"2c73b9456718e1db5dfa41fe37b011e7612c5e88"}],"neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py":[{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"aa6e4c688da714b8ef3cce35665fcc16abda0150","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        try:"},{"line_number":194,"context_line":"            mcast_addr \u003d None"},{"line_number":195,"context_line":"            for ranges in multicast_ranges:"},{"line_number":196,"context_line":"                for addr, range in six.iteritems(ranges):"},{"line_number":197,"context_line":"                    range \u003d range.split(\":\")"},{"line_number":198,"context_line":"                    if int(range[0]) \u003c\u003d segmentation_id \u003c\u003d int(range[len(range) - 1]):"},{"line_number":199,"context_line":"                        mcast_addr \u003d addr"},{"line_number":200,"context_line":"                        break"},{"line_number":201,"context_line":"            net \u003d netaddr.IPNetwork(mcast_addr)"},{"line_number":202,"context_line":"        except (IndexError, TypeError):"},{"line_number":203,"context_line":"            net \u003d netaddr.IPNetwork(cfg.CONF.VXLAN.vxlan_group)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_2664e347","line":200,"range":{"start_line":196,"start_character":0,"end_line":200,"end_character":29},"updated":"2016-06-28 04:35:37.000000000","message":"More or less, I think you can reuse neutron.plugins.common.utils.parse_network_vlan_ranges","commit_id":"ea53fb233f006970cad206e70036b986ac297b5e"},{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"57020abdb37d2ee2a3d1f7cad0582c4d7634593c","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def get_vxlan_group(self, segmentation_id):"},{"line_number":191,"context_line":"        mcast_addr \u003d None"},{"line_number":192,"context_line":"        for range in cfg.CONF.VXLAN.multicast_ranges:"},{"line_number":193,"context_line":"            if \u0027:\u0027 in range:"},{"line_number":194,"context_line":"                try:"},{"line_number":195,"context_line":"                    addr, vxlan_min, vxlan_max \u003d range.split(\u0027:\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_a63790e1","line":192,"updated":"2016-06-30 17:08:30.000000000","message":"This code needs unit testing.","commit_id":"68086d7520e070ff781a7d192758a372b7dd6bf1"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"5233cebaac4178604217b95bea3c90eb4dcb206c","unresolved":false,"context_lines":[{"line_number":188,"context_line":"    def get_vxlan_group(self, segmentation_id):"},{"line_number":189,"context_line":"        mcast_addr \u003d None"},{"line_number":190,"context_line":"        for range in cfg.CONF.VXLAN.multicast_ranges:"},{"line_number":191,"context_line":"            if \u0027:\u0027 in range:"},{"line_number":192,"context_line":"                try:"},{"line_number":193,"context_line":"                    addr, vxlan_min, vxlan_max \u003d range.split(\u0027:\u0027)"},{"line_number":194,"context_line":"                    if int(vxlan_min) \u003c\u003d segmentation_id \u003c\u003d int(vxlan_max):"}],"source_content_type":"text/x-python","patch_set":27,"id":"da36d5c6_9e6b9bb6","line":191,"range":{"start_line":191,"start_character":12,"end_line":191,"end_character":28},"updated":"2017-02-24 18:50:02.000000000","message":"No need to check for this because the ValueError will be thrown anyway when the code is not able to unpack the list.","commit_id":"e1ba63cc085aaeb8b50973035a55779e57ce5f9c"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"c63ce31563e470c0d1b62a229cf431fdaedd5c92","unresolved":false,"context_lines":[{"line_number":188,"context_line":"    def get_vxlan_group(self, segmentation_id):"},{"line_number":189,"context_line":"        mcast_addr \u003d None"},{"line_number":190,"context_line":"        for range in cfg.CONF.VXLAN.multicast_ranges:"},{"line_number":191,"context_line":"            if \u0027:\u0027 in range:"},{"line_number":192,"context_line":"                try:"},{"line_number":193,"context_line":"                    addr, vxlan_min, vxlan_max \u003d range.split(\u0027:\u0027)"},{"line_number":194,"context_line":"                    if int(vxlan_min) \u003c\u003d segmentation_id \u003c\u003d int(vxlan_max):"}],"source_content_type":"text/x-python","patch_set":27,"id":"9ff52f3f_4821939f","line":191,"range":{"start_line":191,"start_character":12,"end_line":191,"end_character":28},"in_reply_to":"da36d5c6_9e6b9bb6","updated":"2017-04-12 23:54:18.000000000","message":"Done","commit_id":"e1ba63cc085aaeb8b50973035a55779e57ce5f9c"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"1f424fc621cf15330dc2c2bd8c6f840dae543c88","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                    if int(vxlan_min) \u003c\u003d segmentation_id \u003c\u003d int(vxlan_max):"},{"line_number":195,"context_line":"                        mcast_addr \u003d addr"},{"line_number":196,"context_line":"                        break"},{"line_number":197,"context_line":"                except ValueError:"},{"line_number":198,"context_line":"                    pass"},{"line_number":199,"context_line":"        if mcast_addr:"},{"line_number":200,"context_line":"            net \u003d netaddr.IPNetwork(mcast_addr)"}],"source_content_type":"text/x-python","patch_set":27,"id":"fa31d9ce_d5dee90f","line":197,"updated":"2017-02-14 23:55:45.000000000","message":"I don\u0027t like that we hide that an option value is incorrectly formatted. IMO, we should parse/check it during LB-agent init.","commit_id":"e1ba63cc085aaeb8b50973035a55779e57ce5f9c"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"c63ce31563e470c0d1b62a229cf431fdaedd5c92","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                    if int(vxlan_min) \u003c\u003d segmentation_id \u003c\u003d int(vxlan_max):"},{"line_number":195,"context_line":"                        mcast_addr \u003d addr"},{"line_number":196,"context_line":"                        break"},{"line_number":197,"context_line":"                except ValueError:"},{"line_number":198,"context_line":"                    pass"},{"line_number":199,"context_line":"        if mcast_addr:"},{"line_number":200,"context_line":"            net \u003d netaddr.IPNetwork(mcast_addr)"}],"source_content_type":"text/x-python","patch_set":27,"id":"9ff52f3f_083b8bd1","line":197,"in_reply_to":"fa31d9ce_d5dee90f","updated":"2017-04-12 23:54:18.000000000","message":"Done","commit_id":"e1ba63cc085aaeb8b50973035a55779e57ce5f9c"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"5233cebaac4178604217b95bea3c90eb4dcb206c","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                        mcast_addr \u003d addr"},{"line_number":196,"context_line":"                        break"},{"line_number":197,"context_line":"                except ValueError:"},{"line_number":198,"context_line":"                    pass"},{"line_number":199,"context_line":"        if mcast_addr:"},{"line_number":200,"context_line":"            net \u003d netaddr.IPNetwork(mcast_addr)"},{"line_number":201,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":27,"id":"da36d5c6_232e18fb","line":198,"range":{"start_line":198,"start_character":20,"end_line":198,"end_character":24},"updated":"2017-02-24 18:50:02.000000000","message":"Logging the exception here would be a good idea. If someone misconfigured the option, they will at least be able to see why in the logs. Similar to what is on line 185","commit_id":"e1ba63cc085aaeb8b50973035a55779e57ce5f9c"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"c63ce31563e470c0d1b62a229cf431fdaedd5c92","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                        mcast_addr \u003d addr"},{"line_number":196,"context_line":"                        break"},{"line_number":197,"context_line":"                except ValueError:"},{"line_number":198,"context_line":"                    pass"},{"line_number":199,"context_line":"        if mcast_addr:"},{"line_number":200,"context_line":"            net \u003d netaddr.IPNetwork(mcast_addr)"},{"line_number":201,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":27,"id":"9ff52f3f_e83747e3","line":198,"range":{"start_line":198,"start_character":20,"end_line":198,"end_character":24},"in_reply_to":"da36d5c6_232e18fb","updated":"2017-04-12 23:54:18.000000000","message":"will validate at startup","commit_id":"e1ba63cc085aaeb8b50973035a55779e57ce5f9c"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"2fee5520a1f41e8a95ce1f4e1053bceab5c933ec","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                sys.exit(1)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    @staticmethod"},{"line_number":102,"context_line":"    def _is_valid_multicast_range(mrange):"},{"line_number":103,"context_line":"        try:"},{"line_number":104,"context_line":"            addr, vxlan_min, vxlan_max \u003d mrange.split(\u0027:\u0027)"},{"line_number":105,"context_line":"            if int(vxlan_min) \u003e int(vxlan_max):"}],"source_content_type":"text/x-python","patch_set":29,"id":"df140735_f5c25ce9","line":102,"updated":"2017-05-29 20:53:40.000000000","message":"Yes","commit_id":"0eb0db85360163a063f90386c9ff631e833ddfe9"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"35baf4bbff39514c2d6f8262fd8a25ed36e016ed","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                sys.exit(1)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    @staticmethod"},{"line_number":102,"context_line":"    def _is_valid_multicast_range(mrange):"},{"line_number":103,"context_line":"        try:"},{"line_number":104,"context_line":"            addr, vxlan_min, vxlan_max \u003d mrange.split(\u0027:\u0027)"},{"line_number":105,"context_line":"            if int(vxlan_min) \u003e int(vxlan_max):"}],"source_content_type":"text/x-python","patch_set":29,"id":"7ffa3b31_cc673eb7","line":102,"updated":"2017-04-21 07:39:58.000000000","message":"question: Don\u0027t we need IP version check we do for vxlan_group at L.130-131?","commit_id":"0eb0db85360163a063f90386c9ff631e833ddfe9"}],"neutron/tests/unit/plugins/ml2/drivers/linuxbridge/agent/test_linuxbridge_neutron_agent.py":[{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"581cf71a1ac927805356961e60e7559cea78cdc9","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        self.assertEqual(\u0027239.1.2.0\u0027, self.lbm.get_vxlan_group(vn_id))"},{"line_number":222,"context_line":"        vn_id \u003d 257"},{"line_number":223,"context_line":"        self.assertEqual(\u0027239.1.2.1\u0027, self.lbm.get_vxlan_group(vn_id))"},{"line_number":224,"context_line":"        cfg.CONF.set_override(\u0027multicast_ranges\u0027,"},{"line_number":225,"context_line":"                              (\u0027224.0.0.10:300:315\u0027,"},{"line_number":226,"context_line":"                               \u0027225.0.0.15:400:600\u0027), \u0027VXLAN\u0027)"},{"line_number":227,"context_line":"        vn_id \u003d 300"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_ad4fcbbc","line":224,"updated":"2016-07-11 14:08:17.000000000","message":"No don\u0027t add it here, please create *a new unit test* that tests this.","commit_id":"2f82a95108298c9ebb5eac37e758cc1e171b9245"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"5233cebaac4178604217b95bea3c90eb4dcb206c","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        vn_id \u003d 257"},{"line_number":223,"context_line":"        self.assertEqual(\u0027239.1.2.1\u0027, self.lbm.get_vxlan_group(vn_id))"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    def test_get_multicast_address(self):"},{"line_number":226,"context_line":"        cfg.CONF.set_override(\u0027multicast_ranges\u0027,"},{"line_number":227,"context_line":"                              (\u0027224.0.0.10:300:315\u0027,"},{"line_number":228,"context_line":"                               \u0027225.0.0.15:400:600\u0027), \u0027VXLAN\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"da36d5c6_63d010ca","line":225,"range":{"start_line":225,"start_character":8,"end_line":225,"end_character":34},"updated":"2017-02-24 18:50:02.000000000","message":"test_get_vxlan_group_with_multicast_address would be more clear to what your testing.","commit_id":"e1ba63cc085aaeb8b50973035a55779e57ce5f9c"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"c63ce31563e470c0d1b62a229cf431fdaedd5c92","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        vn_id \u003d 257"},{"line_number":223,"context_line":"        self.assertEqual(\u0027239.1.2.1\u0027, self.lbm.get_vxlan_group(vn_id))"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    def test_get_multicast_address(self):"},{"line_number":226,"context_line":"        cfg.CONF.set_override(\u0027multicast_ranges\u0027,"},{"line_number":227,"context_line":"                              (\u0027224.0.0.10:300:315\u0027,"},{"line_number":228,"context_line":"                               \u0027225.0.0.15:400:600\u0027), \u0027VXLAN\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"9ff52f3f_a8313fef","line":225,"range":{"start_line":225,"start_character":8,"end_line":225,"end_character":34},"in_reply_to":"da36d5c6_63d010ca","updated":"2017-04-12 23:54:18.000000000","message":"Done","commit_id":"e1ba63cc085aaeb8b50973035a55779e57ce5f9c"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"5233cebaac4178604217b95bea3c90eb4dcb206c","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        self.assertEqual(\u0027225.0.0.15\u0027, self.lbm.get_vxlan_group(vn_id))"},{"line_number":233,"context_line":"        vn_id \u003d 315"},{"line_number":234,"context_line":"        self.assertEqual(\u0027224.0.0.10\u0027, self.lbm.get_vxlan_group(vn_id))"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def test_get_vxlan_group_with_ipv6(self):"},{"line_number":237,"context_line":"        cfg.CONF.set_override(\u0027local_ip\u0027, LOCAL_IPV6, \u0027VXLAN\u0027)"},{"line_number":238,"context_line":"        self.lbm.local_ip \u003d LOCAL_IPV6"}],"source_content_type":"text/x-python","patch_set":27,"id":"da36d5c6_431eac70","line":235,"updated":"2017-02-24 18:50:02.000000000","message":"should we add another case where vn_id is out of the multicast ranges?","commit_id":"e1ba63cc085aaeb8b50973035a55779e57ce5f9c"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"c63ce31563e470c0d1b62a229cf431fdaedd5c92","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        self.assertEqual(\u0027225.0.0.15\u0027, self.lbm.get_vxlan_group(vn_id))"},{"line_number":233,"context_line":"        vn_id \u003d 315"},{"line_number":234,"context_line":"        self.assertEqual(\u0027224.0.0.10\u0027, self.lbm.get_vxlan_group(vn_id))"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def test_get_vxlan_group_with_ipv6(self):"},{"line_number":237,"context_line":"        cfg.CONF.set_override(\u0027local_ip\u0027, LOCAL_IPV6, \u0027VXLAN\u0027)"},{"line_number":238,"context_line":"        self.lbm.local_ip \u003d LOCAL_IPV6"}],"source_content_type":"text/x-python","patch_set":27,"id":"9ff52f3f_486f53c5","line":235,"in_reply_to":"da36d5c6_431eac70","updated":"2017-04-12 23:54:18.000000000","message":"Done","commit_id":"e1ba63cc085aaeb8b50973035a55779e57ce5f9c"}],"releasenotes/notes/vxlan-multicast-groups-distribution-linuxbridge-9337019c961c01a7.yaml":[{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"981fed41d5e4784bc482ec39a6d292d6e69a15c9","unresolved":false,"context_lines":[{"line_number":5,"context_line":"features:"},{"line_number":6,"context_line":"  - The ability to control vni-multicast address"},{"line_number":7,"context_line":"    distribution in linuxbridge agent via new config"},{"line_number":8,"context_line":"    option - multicast_range."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"1aa78d24_da5286dd","line":8,"updated":"2016-07-12 15:11:30.000000000","message":"Please provide an example configuration.","commit_id":"64e19095350dcfd69b8d0e209cf8c9dcf16e4bfd"},{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"5ee79b69d7a41a311b5d88f70e7e5487caba4692","unresolved":false,"context_lines":[{"line_number":9,"context_line":"other:"},{"line_number":10,"context_line":"  - Example configuration in ml2_conf.ini under the"},{"line_number":11,"context_line":"    `[vxlan]` config. section"},{"line_number":12,"context_line":"    multicast_ranges \u003d 224.0.0.10:10:90,225.0.0.15:100:900"},{"line_number":13,"context_line":"  - RFE `\u003chttps://bugs.launchpad.net/neutron/+bug/1579068\u003e`"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"1aa78d24_a35a7728","line":12,"updated":"2016-07-14 17:02:21.000000000","message":"Can you at least say \"For VNI #10 through #90, the multicast group 224.0.0.0.10 will be used, and for 100 through 900 225.0.0.15 will be used\" \n\nOtherwise this has zero context and will leave an operator confused.","commit_id":"c3b45e073403a514a8211a97b83b801a528dbfea"},{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"5ee79b69d7a41a311b5d88f70e7e5487caba4692","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  - Example configuration in ml2_conf.ini under the"},{"line_number":11,"context_line":"    `[vxlan]` config. section"},{"line_number":12,"context_line":"    multicast_ranges \u003d 224.0.0.10:10:90,225.0.0.15:100:900"},{"line_number":13,"context_line":"  - RFE `\u003chttps://bugs.launchpad.net/neutron/+bug/1579068\u003e`"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"1aa78d24_03126b58","line":13,"updated":"2016-07-14 17:02:21.000000000","message":"This gets rendered as a separate bullet point, and doesn\u0027t really associate correctly.\n\nhttp://docs-draft.openstack.org/79/333379/19/check/gate-neutron-releasenotes/7b5b73c//releasenotes/build/html/unreleased.html#other-notes","commit_id":"c3b45e073403a514a8211a97b83b801a528dbfea"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"c1558bf61b34589ac606d110f8f7e6b7d8285521","unresolved":false,"context_lines":[{"line_number":6,"context_line":"  - The ability to control vni-multicast address"},{"line_number":7,"context_line":"    distribution in linuxbridge agent via new config"},{"line_number":8,"context_line":"    option - multicast_range."},{"line_number":9,"context_line":"other:"},{"line_number":10,"context_line":"  - Example configuration of `multicast_range` in"},{"line_number":11,"context_line":"    ml2_conf.ini under the `[vxlan]` config. section"},{"line_number":12,"context_line":"    multicast_ranges \u003d 224.0.0.10:10:90,225.0.0.15:100:900"}],"source_content_type":"text/x-yaml","patch_set":27,"id":"da36d5c6_cb9fd363","line":9,"updated":"2017-02-27 21:27:39.000000000","message":"This should be multicast_ranges: https://review.openstack.org/#/c/333379/27/neutron/conf/plugins/ml2/drivers/linuxbridge.py@61","commit_id":"e1ba63cc085aaeb8b50973035a55779e57ce5f9c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"c1558bf61b34589ac606d110f8f7e6b7d8285521","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    distribution in linuxbridge agent via new config"},{"line_number":8,"context_line":"    option - multicast_range."},{"line_number":9,"context_line":"other:"},{"line_number":10,"context_line":"  - Example configuration of `multicast_range` in"},{"line_number":11,"context_line":"    ml2_conf.ini under the `[vxlan]` config. section"},{"line_number":12,"context_line":"    multicast_ranges \u003d 224.0.0.10:10:90,225.0.0.15:100:900"},{"line_number":13,"context_line":"    For VNI between 10 and 90, the multicast address"}],"source_content_type":"text/x-yaml","patch_set":27,"id":"da36d5c6_2baf8f95","line":10,"range":{"start_line":10,"start_character":30,"end_line":10,"end_character":45},"updated":"2017-02-27 21:27:39.000000000","message":"ditto","commit_id":"e1ba63cc085aaeb8b50973035a55779e57ce5f9c"}]}
