)]}'
{"doc/source/contributor/internals/openvswitch_firewall.rst":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"3c400d09a1050ed7890ab4e38c79ae0c5a912a4d","unresolved":false,"context_lines":[{"line_number":207,"context_line":"for ingress traffic based on the network id and destination MAC address);"},{"line_number":208,"context_line":"``register 6`` contains a value identifying the network (which is also the"},{"line_number":209,"context_line":"OVSDB port tag) to isolate connections into separate conntrack zones. For"},{"line_number":210,"context_line":"vlan type networks, the physical vlan tag will be used to act as an extra"},{"line_number":211,"context_line":"match rule to do such identifying work too."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_8ce8c27c","line":210,"range":{"start_line":210,"start_character":33,"end_line":210,"end_character":37},"updated":"2019-06-18 19:24:37.000000000","message":"nit: VLAN","commit_id":"b5a36081e4b947a9a5e94e24c44f47a376a6885f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"3c400d09a1050ed7890ab4e38c79ae0c5a912a4d","unresolved":false,"context_lines":[{"line_number":207,"context_line":"for ingress traffic based on the network id and destination MAC address);"},{"line_number":208,"context_line":"``register 6`` contains a value identifying the network (which is also the"},{"line_number":209,"context_line":"OVSDB port tag) to isolate connections into separate conntrack zones. For"},{"line_number":210,"context_line":"vlan type networks, the physical vlan tag will be used to act as an extra"},{"line_number":211,"context_line":"match rule to do such identifying work too."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_ecf37e72","line":210,"range":{"start_line":210,"start_character":0,"end_line":210,"end_character":4},"updated":"2019-06-18 19:24:37.000000000","message":"nit: VLAN","commit_id":"b5a36081e4b947a9a5e94e24c44f47a376a6885f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"fc3723e0994a30f8ccb8ee8b2f3e75e5a5ca3569","unresolved":false,"context_lines":[{"line_number":207,"context_line":"for ingress traffic based on the network id and destination MAC address);"},{"line_number":208,"context_line":"``register 6`` contains a value identifying the network (which is also the"},{"line_number":209,"context_line":"OVSDB port tag) to isolate connections into separate conntrack zones. For"},{"line_number":210,"context_line":"vlan type networks, the physical vlan tag will be used to act as an extra"},{"line_number":211,"context_line":"match rule to do such identifying work too."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_a0334762","line":210,"range":{"start_line":210,"start_character":33,"end_line":210,"end_character":37},"in_reply_to":"9fb8cfa7_8ce8c27c","updated":"2019-06-18 23:38:26.000000000","message":"Done","commit_id":"b5a36081e4b947a9a5e94e24c44f47a376a6885f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"fc3723e0994a30f8ccb8ee8b2f3e75e5a5ca3569","unresolved":false,"context_lines":[{"line_number":207,"context_line":"for ingress traffic based on the network id and destination MAC address);"},{"line_number":208,"context_line":"``register 6`` contains a value identifying the network (which is also the"},{"line_number":209,"context_line":"OVSDB port tag) to isolate connections into separate conntrack zones. For"},{"line_number":210,"context_line":"vlan type networks, the physical vlan tag will be used to act as an extra"},{"line_number":211,"context_line":"match rule to do such identifying work too."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_c038bb3e","line":210,"range":{"start_line":210,"start_character":0,"end_line":210,"end_character":4},"in_reply_to":"9fb8cfa7_ecf37e72","updated":"2019-06-18 23:38:26.000000000","message":"Done","commit_id":"b5a36081e4b947a9a5e94e24c44f47a376a6885f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"3c400d09a1050ed7890ab4e38c79ae0c5a912a4d","unresolved":false,"context_lines":[{"line_number":208,"context_line":"``register 6`` contains a value identifying the network (which is also the"},{"line_number":209,"context_line":"OVSDB port tag) to isolate connections into separate conntrack zones. For"},{"line_number":210,"context_line":"vlan type networks, the physical vlan tag will be used to act as an extra"},{"line_number":211,"context_line":"match rule to do such identifying work too."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"::"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_aced868c","line":211,"range":{"start_line":211,"start_character":39,"end_line":211,"end_character":42},"updated":"2019-06-18 19:24:37.000000000","message":"s/as well","commit_id":"b5a36081e4b947a9a5e94e24c44f47a376a6885f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"fc3723e0994a30f8ccb8ee8b2f3e75e5a5ca3569","unresolved":false,"context_lines":[{"line_number":208,"context_line":"``register 6`` contains a value identifying the network (which is also the"},{"line_number":209,"context_line":"OVSDB port tag) to isolate connections into separate conntrack zones. For"},{"line_number":210,"context_line":"vlan type networks, the physical vlan tag will be used to act as an extra"},{"line_number":211,"context_line":"match rule to do such identifying work too."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"::"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_603d4f2b","line":211,"range":{"start_line":211,"start_character":39,"end_line":211,"end_character":42},"in_reply_to":"9fb8cfa7_aced868c","updated":"2019-06-18 23:38:26.000000000","message":"Done","commit_id":"b5a36081e4b947a9a5e94e24c44f47a376a6885f"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"091c7bc103a4f42151694dbdf48eee385452aa15","unresolved":false,"context_lines":[{"line_number":207,"context_line":"for ingress traffic based on the network id and destination MAC address);"},{"line_number":208,"context_line":"``register 6`` contains a value identifying the network (which is also the"},{"line_number":209,"context_line":"OVSDB port tag) to isolate connections into separate conntrack zones."},{"line_number":210,"context_line":"For VLAN type networks, the physical VLAN tag will be used to act as an extra"},{"line_number":211,"context_line":"match rule to do such identifying work as well."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fb8cfa7_b9e6c2af","line":210,"range":{"start_line":210,"start_character":4,"end_line":210,"end_character":22},"updated":"2019-07-02 10:34:52.000000000","message":"I\u0027m not English speaker but IMHO better would be \"VLAN networks\"","commit_id":"86bcc94ccca41f3fb13e23c8b5a9c69b267dad61"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"9bcb5952641816507cbe28bd6acf97e517d6a09a","unresolved":false,"context_lines":[{"line_number":207,"context_line":"for ingress traffic based on the network id and destination MAC address);"},{"line_number":208,"context_line":"``register 6`` contains a value identifying the network (which is also the"},{"line_number":209,"context_line":"OVSDB port tag) to isolate connections into separate conntrack zones."},{"line_number":210,"context_line":"For VLAN type networks, the physical VLAN tag will be used to act as an extra"},{"line_number":211,"context_line":"match rule to do such identifying work as well."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_7d5abb2a","line":210,"range":{"start_line":210,"start_character":4,"end_line":210,"end_character":22},"in_reply_to":"9fb8cfa7_b9e6c2af","updated":"2019-07-09 05:07:40.000000000","message":"Done","commit_id":"86bcc94ccca41f3fb13e23c8b5a9c69b267dad61"}],"neutron/agent/linux/openvswitch_firewall/firewall.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"3c400d09a1050ed7890ab4e38c79ae0c5a912a4d","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    :param bridge: OVSBridge instance where port is."},{"line_number":71,"context_line":"    :param port_name: Name of the port."},{"line_number":72,"context_line":"    \"\"\""},{"line_number":73,"context_line":"    other_config \u003d None"},{"line_number":74,"context_line":"    try:"},{"line_number":75,"context_line":"        other_config \u003d bridge.db_get_val("},{"line_number":76,"context_line":"            \u0027Port\u0027, port_name, \u0027other_config\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_4cd96af2","line":73,"updated":"2019-06-18 19:24:37.000000000","message":"Since other_config isn\u0027t used in the exception case, this isn\u0027t necessary.","commit_id":"b5a36081e4b947a9a5e94e24c44f47a376a6885f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"fc3723e0994a30f8ccb8ee8b2f3e75e5a5ca3569","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    :param bridge: OVSBridge instance where port is."},{"line_number":71,"context_line":"    :param port_name: Name of the port."},{"line_number":72,"context_line":"    \"\"\""},{"line_number":73,"context_line":"    other_config \u003d None"},{"line_number":74,"context_line":"    try:"},{"line_number":75,"context_line":"        other_config \u003d bridge.db_get_val("},{"line_number":76,"context_line":"            \u0027Port\u0027, port_name, \u0027other_config\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_803ac331","line":73,"in_reply_to":"9fb8cfa7_4cd96af2","updated":"2019-06-18 23:38:26.000000000","message":"Done","commit_id":"b5a36081e4b947a9a5e94e24c44f47a376a6885f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f6e8cf11137a53b6b6c530c1fc6dbe01c01e4895","unresolved":false,"context_lines":[{"line_number":738,"context_line":"            if port.segment_id:"},{"line_number":739,"context_line":"                self._add_flow("},{"line_number":740,"context_line":"                    table\u003dovs_consts.TRANSIENT_TABLE,"},{"line_number":741,"context_line":"                    priority\u003d90,"},{"line_number":742,"context_line":"                    dl_dst\u003dmac_addr,"},{"line_number":743,"context_line":"                    dl_vlan\u003d\u00270x%x\u0027 % port.segment_id,"},{"line_number":744,"context_line":"                    actions\u003d\u0027set_field:{:d}-\u003ereg{:d},\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_01a9ebdd","line":741,"updated":"2019-06-19 14:40:37.000000000","message":"I\u0027m not an expert on flows, but this priority is the same as below?\n\nI\u0027m also wondering if this is supposed to be if/else based on that.\n\nSorry, more questions than answers.","commit_id":"3e67b7633721e9635736194d814c70b030412b75"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"115d5d7f944a83f43b21d8c1cec54f192071b120","unresolved":false,"context_lines":[{"line_number":738,"context_line":"            if port.segment_id:"},{"line_number":739,"context_line":"                self._add_flow("},{"line_number":740,"context_line":"                    table\u003dovs_consts.TRANSIENT_TABLE,"},{"line_number":741,"context_line":"                    priority\u003d90,"},{"line_number":742,"context_line":"                    dl_dst\u003dmac_addr,"},{"line_number":743,"context_line":"                    dl_vlan\u003d\u00270x%x\u0027 % port.segment_id,"},{"line_number":744,"context_line":"                    actions\u003d\u0027set_field:{:d}-\u003ereg{:d},\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_c1099331","line":741,"in_reply_to":"9fb8cfa7_01a9ebdd","updated":"2019-06-19 15:48:56.000000000","message":"This priority is OK, since we have different match rules.\n\nNo, if/else must not be added here, it will break the floating IP traffic which from a flat/vlan/vxlan public network.","commit_id":"3e67b7633721e9635736194d814c70b030412b75"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f6e8cf11137a53b6b6c530c1fc6dbe01c01e4895","unresolved":false,"context_lines":[{"line_number":750,"context_line":"                                port.vlan_tag,"},{"line_number":751,"context_line":"                                ovsfw_consts.REG_NET,"},{"line_number":752,"context_line":"                                ovs_consts.BASE_INGRESS_TABLE),"},{"line_number":753,"context_line":"                )"},{"line_number":754,"context_line":""},{"line_number":755,"context_line":"            self._add_flow("},{"line_number":756,"context_line":"                table\u003dovs_consts.TRANSIENT_TABLE,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_815f1b0d","line":753,"updated":"2019-06-19 14:40:37.000000000","message":"Will this get deleted properly?  In delete_all_port_flows() I see a call to delete based on vlan_tag (for add just below this), but not for the segment_id.","commit_id":"3e67b7633721e9635736194d814c70b030412b75"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"23c2195a188aa0f88e99385e9817afe63fca2dfe","unresolved":false,"context_lines":[{"line_number":750,"context_line":"                                port.vlan_tag,"},{"line_number":751,"context_line":"                                ovsfw_consts.REG_NET,"},{"line_number":752,"context_line":"                                ovs_consts.BASE_INGRESS_TABLE),"},{"line_number":753,"context_line":"                )"},{"line_number":754,"context_line":""},{"line_number":755,"context_line":"            self._add_flow("},{"line_number":756,"context_line":"                table\u003dovs_consts.TRANSIENT_TABLE,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_f787b50e","line":753,"in_reply_to":"9fb8cfa7_815f1b0d","updated":"2019-06-19 16:15:05.000000000","message":"Nice catch, and done.","commit_id":"3e67b7633721e9635736194d814c70b030412b75"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"e37310953c01c0211f4a0f71a96923a36a8680e7","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        other_config \u003d bridge.db_get_val("},{"line_number":75,"context_line":"            \u0027Port\u0027, port_name, \u0027other_config\u0027)"},{"line_number":76,"context_line":"        network_type \u003d other_config.get(\u0027network_type\u0027)"},{"line_number":77,"context_line":"        if network_type and lib_const.TYPE_VLAN \u003d\u003d network_type:"},{"line_number":78,"context_line":"            return int(other_config[\u0027segmentation_id\u0027])"},{"line_number":79,"context_line":"    except (KeyError, TypeError, ValueError):"},{"line_number":80,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_8edf1fd5","line":77,"range":{"start_line":77,"start_character":11,"end_line":77,"end_character":28},"updated":"2019-06-21 11:16:01.000000000","message":"This is not needed, if network_type is None the following condition is False anyways","commit_id":"88f85408a524ce7956c7043b7cd11f0d847888ff"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"fc8a1a6b7367012a0388ec554641ef4b2805a3ed","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        other_config \u003d bridge.db_get_val("},{"line_number":75,"context_line":"            \u0027Port\u0027, port_name, \u0027other_config\u0027)"},{"line_number":76,"context_line":"        network_type \u003d other_config.get(\u0027network_type\u0027)"},{"line_number":77,"context_line":"        if network_type and lib_const.TYPE_VLAN \u003d\u003d network_type:"},{"line_number":78,"context_line":"            return int(other_config[\u0027segmentation_id\u0027])"},{"line_number":79,"context_line":"    except (KeyError, TypeError, ValueError):"},{"line_number":80,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_c67dee6e","line":77,"range":{"start_line":77,"start_character":11,"end_line":77,"end_character":28},"in_reply_to":"9fb8cfa7_8edf1fd5","updated":"2019-06-23 15:38:40.000000000","message":"Done","commit_id":"88f85408a524ce7956c7043b7cd11f0d847888ff"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"e37310953c01c0211f4a0f71a96923a36a8680e7","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        network_type \u003d other_config.get(\u0027network_type\u0027)"},{"line_number":77,"context_line":"        if network_type and lib_const.TYPE_VLAN \u003d\u003d network_type:"},{"line_number":78,"context_line":"            return int(other_config[\u0027segmentation_id\u0027])"},{"line_number":79,"context_line":"    except (KeyError, TypeError, ValueError):"},{"line_number":80,"context_line":"        pass"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_ce50b761","line":79,"range":{"start_line":79,"start_character":11,"end_line":79,"end_character":45},"updated":"2019-06-21 11:16:01.000000000","message":"Can\u0027t this shadow any relevant error?","commit_id":"88f85408a524ce7956c7043b7cd11f0d847888ff"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"fc8a1a6b7367012a0388ec554641ef4b2805a3ed","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        network_type \u003d other_config.get(\u0027network_type\u0027)"},{"line_number":77,"context_line":"        if network_type and lib_const.TYPE_VLAN \u003d\u003d network_type:"},{"line_number":78,"context_line":"            return int(other_config[\u0027segmentation_id\u0027])"},{"line_number":79,"context_line":"    except (KeyError, TypeError, ValueError):"},{"line_number":80,"context_line":"        pass"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_26872a64","line":79,"range":{"start_line":79,"start_character":11,"end_line":79,"end_character":45},"in_reply_to":"9fb8cfa7_3ebbb4c4","updated":"2019-06-23 15:38:40.000000000","message":"Done","commit_id":"88f85408a524ce7956c7043b7cd11f0d847888ff"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"8782102358543cbee164de82b3e532d485330516","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        network_type \u003d other_config.get(\u0027network_type\u0027)"},{"line_number":77,"context_line":"        if network_type and lib_const.TYPE_VLAN \u003d\u003d network_type:"},{"line_number":78,"context_line":"            return int(other_config[\u0027segmentation_id\u0027])"},{"line_number":79,"context_line":"    except (KeyError, TypeError, ValueError):"},{"line_number":80,"context_line":"        pass"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_3ebbb4c4","line":79,"range":{"start_line":79,"start_character":11,"end_line":79,"end_character":45},"in_reply_to":"9fb8cfa7_91450046","updated":"2019-06-22 09:46:34.000000000","message":"Do we need it really? if we would change L78 to:\n\n    return other_config.get(\u0027segmentation_id\u0027)\n\nit would not raise such exception. Where else can be raised something what You want to \"ignore\" here?","commit_id":"88f85408a524ce7956c7043b7cd11f0d847888ff"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"f07658f53698a87e40784db559b52ac9dd5e0aa7","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        network_type \u003d other_config.get(\u0027network_type\u0027)"},{"line_number":77,"context_line":"        if network_type and lib_const.TYPE_VLAN \u003d\u003d network_type:"},{"line_number":78,"context_line":"            return int(other_config[\u0027segmentation_id\u0027])"},{"line_number":79,"context_line":"    except (KeyError, TypeError, ValueError):"},{"line_number":80,"context_line":"        pass"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_91450046","line":79,"range":{"start_line":79,"start_character":11,"end_line":79,"end_character":45},"in_reply_to":"9fb8cfa7_ce50b761","updated":"2019-06-21 11:39:01.000000000","message":"TBH, I\u0027m not quite sure, since you are the original author of the OF firewall, maybe I can ask you?","commit_id":"88f85408a524ce7956c7043b7cd11f0d847888ff"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"fca811c2066b27e352527d210d567a112f6f1ab7","unresolved":false,"context_lines":[{"line_number":530,"context_line":""},{"line_number":531,"context_line":"    def _get_port_segmentation_id(self, port_name):"},{"line_number":532,"context_line":"        return get_segmentation_id_from_other_config("},{"line_number":533,"context_line":"            self.int_br.br, port_name)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def get_ofport(self, port):"},{"line_number":536,"context_line":"        port_id \u003d port[\u0027device\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_ce451717","line":533,"updated":"2019-06-21 10:55:47.000000000","message":"do You really need extra method for this?","commit_id":"88f85408a524ce7956c7043b7cd11f0d847888ff"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"f07658f53698a87e40784db559b52ac9dd5e0aa7","unresolved":false,"context_lines":[{"line_number":530,"context_line":""},{"line_number":531,"context_line":"    def _get_port_segmentation_id(self, port_name):"},{"line_number":532,"context_line":"        return get_segmentation_id_from_other_config("},{"line_number":533,"context_line":"            self.int_br.br, port_name)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def get_ofport(self, port):"},{"line_number":536,"context_line":"        port_id \u003d port[\u0027device\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_f16f9cc2","line":533,"in_reply_to":"9fb8cfa7_ce451717","updated":"2019-06-21 11:39:01.000000000","message":"make consistent with other functions.","commit_id":"88f85408a524ce7956c7043b7cd11f0d847888ff"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"8782102358543cbee164de82b3e532d485330516","unresolved":false,"context_lines":[{"line_number":530,"context_line":""},{"line_number":531,"context_line":"    def _get_port_segmentation_id(self, port_name):"},{"line_number":532,"context_line":"        return get_segmentation_id_from_other_config("},{"line_number":533,"context_line":"            self.int_br.br, port_name)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def get_ofport(self, port):"},{"line_number":536,"context_line":"        port_id \u003d port[\u0027device\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_deb138e3","line":533,"in_reply_to":"9fb8cfa7_f16f9cc2","updated":"2019-06-22 09:46:34.000000000","message":"ok","commit_id":"88f85408a524ce7956c7043b7cd11f0d847888ff"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"091c7bc103a4f42151694dbdf48eee385452aa15","unresolved":false,"context_lines":[{"line_number":735,"context_line":"        for mac_addr in port.all_allowed_macs:"},{"line_number":736,"context_line":"            # If the port segment_id is not None, the"},{"line_number":737,"context_line":"            # port\u0027s network type must be VLAN type."},{"line_number":738,"context_line":"            if port.segment_id:"},{"line_number":739,"context_line":"                self._add_flow("},{"line_number":740,"context_line":"                    table\u003dovs_consts.TRANSIENT_TABLE,"},{"line_number":741,"context_line":"                    priority\u003d90,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_b9b48283","line":738,"range":{"start_line":738,"start_character":15,"end_line":738,"end_character":30},"updated":"2019-07-02 10:34:52.000000000","message":"nit: should be\n\n    if port.segment_id is not None:\n\nif You want to check only if it\u0027s not None","commit_id":"86bcc94ccca41f3fb13e23c8b5a9c69b267dad61"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1039c2f1c9e00a4d00785e04fae872fa6a857579","unresolved":false,"context_lines":[{"line_number":735,"context_line":"        for mac_addr in port.all_allowed_macs:"},{"line_number":736,"context_line":"            # If the port segment_id is not None, the"},{"line_number":737,"context_line":"            # port\u0027s network type must be VLAN type."},{"line_number":738,"context_line":"            if port.segment_id:"},{"line_number":739,"context_line":"                self._add_flow("},{"line_number":740,"context_line":"                    table\u003dovs_consts.TRANSIENT_TABLE,"},{"line_number":741,"context_line":"                    priority\u003d90,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_9503cb73","line":738,"range":{"start_line":738,"start_character":15,"end_line":738,"end_character":30},"in_reply_to":"7faddb67_bd50330c","updated":"2019-07-09 09:26:12.000000000","message":"So comment above should be updated to reflect that IMO.","commit_id":"86bcc94ccca41f3fb13e23c8b5a9c69b267dad61"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"9bcb5952641816507cbe28bd6acf97e517d6a09a","unresolved":false,"context_lines":[{"line_number":735,"context_line":"        for mac_addr in port.all_allowed_macs:"},{"line_number":736,"context_line":"            # If the port segment_id is not None, the"},{"line_number":737,"context_line":"            # port\u0027s network type must be VLAN type."},{"line_number":738,"context_line":"            if port.segment_id:"},{"line_number":739,"context_line":"                self._add_flow("},{"line_number":740,"context_line":"                    table\u003dovs_consts.TRANSIENT_TABLE,"},{"line_number":741,"context_line":"                    priority\u003d90,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_bd50330c","line":738,"range":{"start_line":738,"start_character":15,"end_line":738,"end_character":30},"in_reply_to":"9fb8cfa7_b9b48283","updated":"2019-07-09 05:07:40.000000000","message":"0 should not be included.","commit_id":"86bcc94ccca41f3fb13e23c8b5a9c69b267dad61"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8239f51135bede300e12775f3e1c5bd642255e02","unresolved":false,"context_lines":[{"line_number":735,"context_line":""},{"line_number":736,"context_line":"        # Identify ingress flows"},{"line_number":737,"context_line":"        for mac_addr in port.all_allowed_macs:"},{"line_number":738,"context_line":"            # If the port segment_id is not None, the"},{"line_number":739,"context_line":"            # port\u0027s network type must be VLAN type."},{"line_number":740,"context_line":"            if port.segment_id:"},{"line_number":741,"context_line":"                self._add_flow("}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_7a0b967c","line":738,"range":{"start_line":738,"start_character":44,"end_line":738,"end_character":48},"updated":"2019-08-27 15:09:25.000000000","message":"s/None or zero\n\nThis was pointed out by Slawek in PS7.","commit_id":"ab3e7470dd3d201941c17fb0d1db3980152e32b8"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"4646fee23f0dfaeef6dd436d84db191804181828","unresolved":false,"context_lines":[{"line_number":735,"context_line":""},{"line_number":736,"context_line":"        # Identify ingress flows"},{"line_number":737,"context_line":"        for mac_addr in port.all_allowed_macs:"},{"line_number":738,"context_line":"            # If the port segment_id is not None, the"},{"line_number":739,"context_line":"            # port\u0027s network type must be VLAN type."},{"line_number":740,"context_line":"            if port.segment_id:"},{"line_number":741,"context_line":"                self._add_flow("}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_9cd76fef","line":738,"range":{"start_line":738,"start_character":44,"end_line":738,"end_character":48},"in_reply_to":"7faddb67_7a0b967c","updated":"2019-08-27 15:46:28.000000000","message":"Done","commit_id":"ab3e7470dd3d201941c17fb0d1db3980152e32b8"}],"neutron/tests/unit/agent/linux/openvswitch_firewall/test_firewall.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"a4088ccc4e7e330a87314c94eae7514ffeae0f48","unresolved":false,"context_lines":[{"line_number":577,"context_line":"                           ovsfw_consts.REG_NET,"},{"line_number":578,"context_line":"                           ovs_consts.BASE_INGRESS_TABLE)}"},{"line_number":579,"context_line":"        add_flow_call \u003d mock.call(**expected_calls)"},{"line_number":580,"context_line":"        self.mock_bridge.br.add_flow.assert_has_calls([add_flow_call])"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"    def test_prepare_port_filter_initialized_port(self):"},{"line_number":583,"context_line":"        port_dict \u003d {\u0027device\u0027: \u0027port-id\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_f2bb436f","line":580,"updated":"2019-06-19 17:17:52.000000000","message":"After finding the missing delete flows call, seems there should be a test for it.\n\nAlso, this test seems like it could test more as there are many calls to add_flow in this method.","commit_id":"387956626b8a3fe1b79fcca1a0bce67d89181c83"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"8cce4abd4cd776c72af82180f2f7a776a3393d22","unresolved":false,"context_lines":[{"line_number":577,"context_line":"                           ovsfw_consts.REG_NET,"},{"line_number":578,"context_line":"                           ovs_consts.BASE_INGRESS_TABLE)}"},{"line_number":579,"context_line":"        add_flow_call \u003d mock.call(**expected_calls)"},{"line_number":580,"context_line":"        self.mock_bridge.br.add_flow.assert_has_calls([add_flow_call])"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"    def test_prepare_port_filter_initialized_port(self):"},{"line_number":583,"context_line":"        port_dict \u003d {\u0027device\u0027: \u0027port-id\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_5dac8e34","line":580,"in_reply_to":"9fb8cfa7_f2bb436f","updated":"2019-06-20 14:30:29.000000000","message":"Done","commit_id":"387956626b8a3fe1b79fcca1a0bce67d89181c83"}],"releasenotes/notes/vlan-type-conntrack-direct-d3d544f8471ed4ff.yaml":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8239f51135bede300e12775f3e1c5bd642255e02","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add a new match rule based on physical VLAN tag for OpenFlow firewall"},{"line_number":5,"context_line":"    traffic identifying mechanism to the TRANSIENT table. This fixes the"},{"line_number":6,"context_line":"    distributed router east-west traffic between VLAN type networks."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7faddb67_3a92fe59","line":6,"updated":"2019-08-27 15:09:25.000000000","message":"If this has to be re-spun we should add a bug link here.\n\nFor more information, see bug `1831534 \u003chttps://bugs.launchpad.net/neutron/+bug/1831534\u003e`_.","commit_id":"ab3e7470dd3d201941c17fb0d1db3980152e32b8"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"4646fee23f0dfaeef6dd436d84db191804181828","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add a new match rule based on physical VLAN tag for OpenFlow firewall"},{"line_number":5,"context_line":"    traffic identifying mechanism to the TRANSIENT table. This fixes the"},{"line_number":6,"context_line":"    distributed router east-west traffic between VLAN type networks."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7faddb67_5cda571d","line":6,"in_reply_to":"7faddb67_3a92fe59","updated":"2019-08-27 15:46:28.000000000","message":"Done","commit_id":"ab3e7470dd3d201941c17fb0d1db3980152e32b8"}]}
