)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"1d68a2e34c6391bfd4f92f9bdc369d52526b5087","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"d08f9286_b4678d93","updated":"2021-10-27 14:41:44.000000000","message":"one point to discuss","commit_id":"c771422a6a58d379054221523c5ea452603591c9"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"f5fb4327478d6712a7ecb5832e5a20e5f0c44a0e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"e9a24957_516234e4","updated":"2021-11-05 02:52:28.000000000","message":"Adding a new example [1] for the side effect of the development process because of such movement. -1 for the long reason of [2].\n\n[1] https://review.opendev.org/c/openstack/neutron/+/815102/11/neutron/plugins/ml2/drivers/openvswitch/agent/common/constants.py\n[2] https://review.opendev.org/c/openstack/neutron-lib/+/807224/2//COMMIT_MSG#9","commit_id":"970a58ef0647fb448c5a5455eccf350c282d4406"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"22d9b5efcedba94b1f36c2506f9cad37886c9baf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"057066fb_5cc6de2b","updated":"2021-11-15 17:03:17.000000000","message":"Please check the neutron-meeting log where we discussed this topic last time:\nhttps://meetings.opendev.org/meetings/networking/2021/networking.2021-11-09-14.00.log.html#l-83","commit_id":"970a58ef0647fb448c5a5455eccf350c282d4406"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"dbf1c564f20ef852a65db5e95494e03f763f7ccf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"53d87277_03e3649a","updated":"2021-11-12 10:01:06.000000000","message":"So according to [1], the initial purpose of neutron-lib is still present: to host all constants (in this case OVS) to be used by any project.\n\n[1]https://meetings.opendev.org/meetings/networking/2021/networking.2021-11-09-14.00.log.html#l-83","commit_id":"970a58ef0647fb448c5a5455eccf350c282d4406"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b57637e82e56efc276e4465f8f0d5e3bb157f0e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"055cc221_b328b929","updated":"2021-11-05 08:09:36.000000000","message":"We have this patch and https://review.opendev.org/c/openstack/neutron-lib/+/807224/2/neutron_lib/constants.py.\n\nPlease, bring those movements to Neutron drivers meeting to decide what to do. We need to stop any possible clash.","commit_id":"970a58ef0647fb448c5a5455eccf350c282d4406"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0371fc3c1815a93b41ec71d820ee7f71abf81bce","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"02cef333_ea20313e","updated":"2021-11-12 10:01:15.000000000","message":"recheck","commit_id":"970a58ef0647fb448c5a5455eccf350c282d4406"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a2bf38561ffa5f3b8466c8bce4af394c58970627","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"e37249e0_c6fff02e","in_reply_to":"055cc221_b328b929","updated":"2021-11-05 08:17:13.000000000","message":"For reference we had some discussion on one of the team-meetings:\nhttps://meetings.opendev.org/meetings/networking/2021/networking.2021-09-07-14.00.log.html#l-185","commit_id":"970a58ef0647fb448c5a5455eccf350c282d4406"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1faf35715994fdc0a80c8f89eeb4a2df4cd053c7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"42e434a7_6c5ffa72","in_reply_to":"e37249e0_c6fff02e","updated":"2021-11-05 08:35:03.000000000","message":"Thx. It just reminded me that I should move those constants in neutron-lib to some separate constants file. I will do that and then I will update this patch to use already new constants file in neutron. So -W for now.","commit_id":"970a58ef0647fb448c5a5455eccf350c282d4406"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"7ee210aa0c666f4099105105fd46e08dbcb41b1a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"2e58e741_134162bc","updated":"2022-03-24 00:51:59.000000000","message":"Hi, could you please wait a bit while for the packet rate limit patch [1]? It uses the constants from the ovs_constants. And it is almost ready. Thanks in advance.\n\n\n[1] https://review.opendev.org/c/openstack/neutron/+/816800/12/neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_int.py#496","commit_id":"013b0582c5e04d7441f3e16f6fb30f6ad95f348b"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"4d4b2fc8a870a29141a27e6281aeaf2f63b49b29","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"5887df9c_9835c0fd","in_reply_to":"2e58e741_134162bc","updated":"2022-06-17 14:40:51.000000000","message":"^ is merged, i rebased over that accordingly","commit_id":"013b0582c5e04d7441f3e16f6fb30f6ad95f348b"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"e04e50274affee3d5c28ada99480631c02b3f3a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"c43412cd_49b185e1","updated":"2022-06-17 14:38:11.000000000","message":"recheck pyroute2 fix merged","commit_id":"a22d6d6a95246875de9f2a7d1bda1f762bfef846"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"714af2f25164e9ee295b17ae4df145b6580574ce","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"8c2196bf_fc04f9b8","updated":"2022-06-21 16:11:39.000000000","message":"recheck test_agent_updated_at_use_nb_cfg_timestamp needs bug if not already known","commit_id":"a22d6d6a95246875de9f2a7d1bda1f762bfef846"}],"neutron/agent/common/ovs_lib.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"6ffaac0f692c041ad216ff2422db8fecd69ecb9c","unresolved":true,"context_lines":[{"line_number":21,"context_line":"import time"},{"line_number":22,"context_line":"import uuid"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from neutron_lib import constants as p_const"},{"line_number":25,"context_line":"from neutron_lib import exceptions"},{"line_number":26,"context_line":"from neutron_lib.services.qos import constants as qos_constants"},{"line_number":27,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":7,"id":"5118b1e9_35296627","line":24,"range":{"start_line":24,"start_character":37,"end_line":24,"end_character":44},"updated":"2021-08-05 07:36:47.000000000","message":"unrelated: why p_const, what does p_ mean? lib_const is more clear imo","commit_id":"0ac3e7a7b6f5baae843e1a8ce5f172141a21a726"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"7f9e71d1e58ed28187045f8a88ad0226284222d0","unresolved":true,"context_lines":[{"line_number":21,"context_line":"import time"},{"line_number":22,"context_line":"import uuid"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from neutron_lib import constants as p_const"},{"line_number":25,"context_line":"from neutron_lib import exceptions"},{"line_number":26,"context_line":"from neutron_lib.services.qos import constants as qos_constants"},{"line_number":27,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":7,"id":"cd439c92_c9b1ac29","line":24,"range":{"start_line":24,"start_character":37,"end_line":24,"end_character":44},"in_reply_to":"5118b1e9_35296627","updated":"2021-08-09 14:16:58.000000000","message":"I had the same in mind when reaching this...","commit_id":"0ac3e7a7b6f5baae843e1a8ce5f172141a21a726"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"aa84a61c53ca6c0a25572000eb6c162e5c068053","unresolved":true,"context_lines":[{"line_number":72,"context_line":"CTRL_RATE_LIMIT_MIN \u003d 100"},{"line_number":73,"context_line":"CTRL_BURST_LIMIT_MIN \u003d 25"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"# TODO(slaweq): move this to neutron_lib.p_const"},{"line_number":76,"context_line":"TYPE_GRE_IP6 \u003d \u0027ip6gre\u0027"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"4600006e_c89f023b","line":75,"range":{"start_line":75,"start_character":41,"end_line":75,"end_character":48},"updated":"2021-08-09 14:16:20.000000000","message":"nit: It seems accidental","commit_id":"8a8e49b42a0d3672ed7c10d93452be054cf24bd6"}],"neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_int.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d84ae4d93d80c9649cfdebb95c4b5e6e4f4e14f1","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                           br_dvr_process.OVSDVRInterfaceMixin):"},{"line_number":47,"context_line":"    \"\"\"openvswitch agent br-int specific logic.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    of_tables \u003d lib_consts.INT_BR_ALL_TABLES"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def setup_default_table(self, enable_openflow_dhcp\u003dFalse,"},{"line_number":52,"context_line":"                            enable_dhcpv6\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9cf3ae54_27843869","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":44},"updated":"2021-09-03 00:56:38.000000000","message":"It\u0027s better to do not touch with this list since it is only used by neutron [1].\n\n[1]https://codesearch.openstack.org/?q\u003dINT_BR_ALL_TABLES\u0026i\u003dnope\u0026literal\u003dnope\u0026files\u003d\u0026excludeFiles\u003d\u0026repos\u003d","commit_id":"4d1ef5cab958e0559b1b8f39472df8286c050ca6"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"933fc256f3200908907c7175682d8348e7a0a68b","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                           br_dvr_process.OVSDVRInterfaceMixin):"},{"line_number":47,"context_line":"    \"\"\"openvswitch agent br-int specific logic.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    of_tables \u003d lib_consts.INT_BR_ALL_TABLES"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def setup_default_table(self, enable_openflow_dhcp\u003dFalse,"},{"line_number":52,"context_line":"                            enable_dhcpv6\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff76a918_03199b74","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":44},"in_reply_to":"323bf115_53458fa3","updated":"2021-09-07 07:49:26.000000000","message":"I don\u0027t agree with that point. IMO those constants should be in neutron-lib as they can be used by other projects as well. And also e.g. stadium projects may introduce new constants for own tables there thus having all in single place (similar like api-def) will help to keep it sane. See e.g. BAGPIPE_FLOOD_TO_TUN_BROADCAST constant - this is perfect example of such additional table used by stadium project which is added to that list. And currently to keep this value only for this project it has to be added to neutron so networking-bagpipe project will have to depend on neutron to use it. And our goal should be to reduce such dependencies on neutron for stadium projects and keep them dependent on neutron-lib.\nSo IMO all those constants (especially those which defines tables) should go to neutron-lib.","commit_id":"4d1ef5cab958e0559b1b8f39472df8286c050ca6"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"6870ed8d2937345d6c79f83ef928b7c491c5c2b3","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                           br_dvr_process.OVSDVRInterfaceMixin):"},{"line_number":47,"context_line":"    \"\"\"openvswitch agent br-int specific logic.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    of_tables \u003d lib_consts.INT_BR_ALL_TABLES"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def setup_default_table(self, enable_openflow_dhcp\u003dFalse,"},{"line_number":52,"context_line":"                            enable_dhcpv6\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":9,"id":"323bf115_53458fa3","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":44},"in_reply_to":"9cf3ae54_27843869","updated":"2021-09-03 02:41:26.000000000","message":"Keeping the list to neutron, neutron-lib is going to remove this list:\nhttps://review.opendev.org/c/openstack/neutron-lib/+/807224","commit_id":"4d1ef5cab958e0559b1b8f39472df8286c050ca6"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"67faf9056f492b552139de1c9c8ef19c4be6e43e","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                           br_dvr_process.OVSDVRInterfaceMixin):"},{"line_number":47,"context_line":"    \"\"\"openvswitch agent br-int specific logic.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    of_tables \u003d lib_consts.INT_BR_ALL_TABLES"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def setup_default_table(self, enable_openflow_dhcp\u003dFalse,"},{"line_number":52,"context_line":"                            enable_dhcpv6\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":10,"id":"10234dff_558f28e4","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":44},"updated":"2021-09-07 09:09:50.000000000","message":"These *_ALL_LISTs are for neutron only. Any projects want similar list, construct it in their own place. Since, this list is used for Neutron to clean stale flows during restart.","commit_id":"01f036e0ba613ad5d4dc63e2333614b4cecea782"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"382945083404e588b678692f897ee9482ba814cf","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                           br_dvr_process.OVSDVRInterfaceMixin):"},{"line_number":47,"context_line":"    \"\"\"openvswitch agent br-int specific logic.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    of_tables \u003d lib_consts.INT_BR_ALL_TABLES"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def setup_default_table(self, enable_openflow_dhcp\u003dFalse,"},{"line_number":52,"context_line":"                            enable_dhcpv6\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":10,"id":"8b3e129d_7b948c8a","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":44},"in_reply_to":"10234dff_558f28e4","updated":"2021-10-12 12:31:03.000000000","message":"ok, let\u0027s simply remove that tuple INT_BR_ALL_TABLES from constants module and define it here as it\u0027s the only place where it is used. Would that work for You?","commit_id":"01f036e0ba613ad5d4dc63e2333614b4cecea782"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b71343bd68b25821d5382e536a01fa08db269637","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                           br_dvr_process.OVSDVRInterfaceMixin):"},{"line_number":47,"context_line":"    \"\"\"openvswitch agent br-int specific logic.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    of_tables \u003d lib_consts.INT_BR_ALL_TABLES"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def setup_default_table(self, enable_openflow_dhcp\u003dFalse,"},{"line_number":52,"context_line":"                            enable_dhcpv6\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":10,"id":"59f444f4_55d32ec6","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":44},"in_reply_to":"8b3e129d_7b948c8a","updated":"2021-10-12 15:50:32.000000000","message":"Thanks, it should be fine.  I also did some work related:\nhttps://review.opendev.org/c/openstack/neutron/+/807977\nhttps://review.opendev.org/c/openstack/neutron-lib/+/807224\n\nSo instead of moving the list here, this can still be done like this:\n\nfrom neutron.plugins.ml2.drivers.openvswitch.agent.common import constants\nof_tables \u003d constants.INT_BR_ALL_TABLES","commit_id":"01f036e0ba613ad5d4dc63e2333614b4cecea782"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b71343bd68b25821d5382e536a01fa08db269637","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                           br_dvr_process.OVSDVRInterfaceMixin):"},{"line_number":47,"context_line":"    \"\"\"openvswitch agent br-int specific logic.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    of_tables \u003d (lib_consts.LOCAL_SWITCHING,"},{"line_number":50,"context_line":"                 lib_consts.DVR_TO_SRC_MAC,"},{"line_number":51,"context_line":"                 lib_consts.DVR_TO_SRC_MAC_PHYSICAL,"},{"line_number":52,"context_line":"                 lib_consts.CANARY_TABLE,"},{"line_number":53,"context_line":"                 lib_consts.ARP_SPOOF_TABLE,"},{"line_number":54,"context_line":"                 lib_consts.MAC_SPOOF_TABLE,"},{"line_number":55,"context_line":"                 lib_consts.LOCAL_MAC_DIRECT,"},{"line_number":56,"context_line":"                 lib_consts.TRANSIENT_TABLE,"},{"line_number":57,"context_line":"                 lib_consts.TRANSIENT_EGRESS_TABLE,"},{"line_number":58,"context_line":"                 lib_consts.BASE_EGRESS_TABLE,"},{"line_number":59,"context_line":"                 lib_consts.RULES_EGRESS_TABLE,"},{"line_number":60,"context_line":"                 lib_consts.ACCEPT_OR_INGRESS_TABLE,"},{"line_number":61,"context_line":"                 lib_consts.DHCP_IPV4_TABLE,"},{"line_number":62,"context_line":"                 lib_consts.DHCP_IPV6_TABLE,"},{"line_number":63,"context_line":"                 lib_consts.BASE_INGRESS_TABLE,"},{"line_number":64,"context_line":"                 lib_consts.RULES_INGRESS_TABLE,"},{"line_number":65,"context_line":"                 lib_consts.ACCEPTED_EGRESS_TRAFFIC_TABLE,"},{"line_number":66,"context_line":"                 lib_consts.ACCEPTED_INGRESS_TRAFFIC_TABLE,"},{"line_number":67,"context_line":"                 lib_consts.DROPPED_TRAFFIC_TABLE)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def setup_default_table(self, enable_openflow_dhcp\u003dFalse,"},{"line_number":70,"context_line":"                            enable_dhcpv6\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":11,"id":"0402e123_5800751e","line":67,"range":{"start_line":49,"start_character":4,"end_line":67,"end_character":50},"updated":"2021-10-12 15:50:32.000000000","message":"I also did some work related:\nhttps://review.opendev.org/c/openstack/neutron/+/807977\nhttps://review.opendev.org/c/openstack/neutron-lib/+/807224\n\nSo instead of moving the list here, this can leave it as it is. These lines can be not changed.\n\nfrom neutron.plugins.ml2.drivers.openvswitch.agent.common import constants\nof_tables \u003d constants.INT_BR_ALL_TABLES","commit_id":"c771422a6a58d379054221523c5ea452603591c9"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"1d68a2e34c6391bfd4f92f9bdc369d52526b5087","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                           br_dvr_process.OVSDVRInterfaceMixin):"},{"line_number":47,"context_line":"    \"\"\"openvswitch agent br-int specific logic.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    of_tables \u003d (lib_consts.LOCAL_SWITCHING,"},{"line_number":50,"context_line":"                 lib_consts.DVR_TO_SRC_MAC,"},{"line_number":51,"context_line":"                 lib_consts.DVR_TO_SRC_MAC_PHYSICAL,"},{"line_number":52,"context_line":"                 lib_consts.CANARY_TABLE,"},{"line_number":53,"context_line":"                 lib_consts.ARP_SPOOF_TABLE,"},{"line_number":54,"context_line":"                 lib_consts.MAC_SPOOF_TABLE,"},{"line_number":55,"context_line":"                 lib_consts.LOCAL_MAC_DIRECT,"},{"line_number":56,"context_line":"                 lib_consts.TRANSIENT_TABLE,"},{"line_number":57,"context_line":"                 lib_consts.TRANSIENT_EGRESS_TABLE,"},{"line_number":58,"context_line":"                 lib_consts.BASE_EGRESS_TABLE,"},{"line_number":59,"context_line":"                 lib_consts.RULES_EGRESS_TABLE,"},{"line_number":60,"context_line":"                 lib_consts.ACCEPT_OR_INGRESS_TABLE,"},{"line_number":61,"context_line":"                 lib_consts.DHCP_IPV4_TABLE,"},{"line_number":62,"context_line":"                 lib_consts.DHCP_IPV6_TABLE,"},{"line_number":63,"context_line":"                 lib_consts.BASE_INGRESS_TABLE,"},{"line_number":64,"context_line":"                 lib_consts.RULES_INGRESS_TABLE,"},{"line_number":65,"context_line":"                 lib_consts.ACCEPTED_EGRESS_TRAFFIC_TABLE,"},{"line_number":66,"context_line":"                 lib_consts.ACCEPTED_INGRESS_TRAFFIC_TABLE,"},{"line_number":67,"context_line":"                 lib_consts.DROPPED_TRAFFIC_TABLE)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def setup_default_table(self, enable_openflow_dhcp\u003dFalse,"},{"line_number":70,"context_line":"                            enable_dhcpv6\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":11,"id":"41ae240e_35fcd1b2","line":67,"range":{"start_line":49,"start_character":4,"end_line":67,"end_character":50},"updated":"2021-10-27 14:41:44.000000000","message":"the problem I see here is that when adding new table constant one can simply forget (or even don\u0027t know) that it should be added here as well, especially if it needs to be done in different repos..","commit_id":"c771422a6a58d379054221523c5ea452603591c9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"6f8421049f122b51bef1cc8a3cda3fa4be351bb0","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                           br_dvr_process.OVSDVRInterfaceMixin):"},{"line_number":47,"context_line":"    \"\"\"openvswitch agent br-int specific logic.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    of_tables \u003d (lib_consts.LOCAL_SWITCHING,"},{"line_number":50,"context_line":"                 lib_consts.DVR_TO_SRC_MAC,"},{"line_number":51,"context_line":"                 lib_consts.DVR_TO_SRC_MAC_PHYSICAL,"},{"line_number":52,"context_line":"                 lib_consts.CANARY_TABLE,"},{"line_number":53,"context_line":"                 lib_consts.ARP_SPOOF_TABLE,"},{"line_number":54,"context_line":"                 lib_consts.MAC_SPOOF_TABLE,"},{"line_number":55,"context_line":"                 lib_consts.LOCAL_MAC_DIRECT,"},{"line_number":56,"context_line":"                 lib_consts.TRANSIENT_TABLE,"},{"line_number":57,"context_line":"                 lib_consts.TRANSIENT_EGRESS_TABLE,"},{"line_number":58,"context_line":"                 lib_consts.BASE_EGRESS_TABLE,"},{"line_number":59,"context_line":"                 lib_consts.RULES_EGRESS_TABLE,"},{"line_number":60,"context_line":"                 lib_consts.ACCEPT_OR_INGRESS_TABLE,"},{"line_number":61,"context_line":"                 lib_consts.DHCP_IPV4_TABLE,"},{"line_number":62,"context_line":"                 lib_consts.DHCP_IPV6_TABLE,"},{"line_number":63,"context_line":"                 lib_consts.BASE_INGRESS_TABLE,"},{"line_number":64,"context_line":"                 lib_consts.RULES_INGRESS_TABLE,"},{"line_number":65,"context_line":"                 lib_consts.ACCEPTED_EGRESS_TRAFFIC_TABLE,"},{"line_number":66,"context_line":"                 lib_consts.ACCEPTED_INGRESS_TRAFFIC_TABLE,"},{"line_number":67,"context_line":"                 lib_consts.DROPPED_TRAFFIC_TABLE)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def setup_default_table(self, enable_openflow_dhcp\u003dFalse,"},{"line_number":70,"context_line":"                            enable_dhcpv6\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":11,"id":"16151587_a41dbf43","line":67,"range":{"start_line":49,"start_character":4,"end_line":67,"end_character":50},"in_reply_to":"0402e123_5800751e","updated":"2021-10-27 14:19:34.000000000","message":"But what\u0027s the point of keeping constant list of those values if it\u0027s used only in one place?","commit_id":"c771422a6a58d379054221523c5ea452603591c9"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a500d5484bc4072cb0f55fc435562ad9a557e94a","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                           br_dvr_process.OVSDVRInterfaceMixin):"},{"line_number":47,"context_line":"    \"\"\"openvswitch agent br-int specific logic.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    of_tables \u003d (lib_consts.LOCAL_SWITCHING,"},{"line_number":50,"context_line":"                 lib_consts.DVR_TO_SRC_MAC,"},{"line_number":51,"context_line":"                 lib_consts.DVR_TO_SRC_MAC_PHYSICAL,"},{"line_number":52,"context_line":"                 lib_consts.CANARY_TABLE,"},{"line_number":53,"context_line":"                 lib_consts.ARP_SPOOF_TABLE,"},{"line_number":54,"context_line":"                 lib_consts.MAC_SPOOF_TABLE,"},{"line_number":55,"context_line":"                 lib_consts.LOCAL_MAC_DIRECT,"},{"line_number":56,"context_line":"                 lib_consts.TRANSIENT_TABLE,"},{"line_number":57,"context_line":"                 lib_consts.TRANSIENT_EGRESS_TABLE,"},{"line_number":58,"context_line":"                 lib_consts.BASE_EGRESS_TABLE,"},{"line_number":59,"context_line":"                 lib_consts.RULES_EGRESS_TABLE,"},{"line_number":60,"context_line":"                 lib_consts.ACCEPT_OR_INGRESS_TABLE,"},{"line_number":61,"context_line":"                 lib_consts.DHCP_IPV4_TABLE,"},{"line_number":62,"context_line":"                 lib_consts.DHCP_IPV6_TABLE,"},{"line_number":63,"context_line":"                 lib_consts.BASE_INGRESS_TABLE,"},{"line_number":64,"context_line":"                 lib_consts.RULES_INGRESS_TABLE,"},{"line_number":65,"context_line":"                 lib_consts.ACCEPTED_EGRESS_TRAFFIC_TABLE,"},{"line_number":66,"context_line":"                 lib_consts.ACCEPTED_INGRESS_TRAFFIC_TABLE,"},{"line_number":67,"context_line":"                 lib_consts.DROPPED_TRAFFIC_TABLE)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def setup_default_table(self, enable_openflow_dhcp\u003dFalse,"},{"line_number":70,"context_line":"                            enable_dhcpv6\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":11,"id":"8de7dcf3_7b1c2360","line":67,"range":{"start_line":49,"start_character":4,"end_line":67,"end_character":50},"in_reply_to":"16151587_a41dbf43","updated":"2021-10-27 14:34:47.000000000","message":"ok, so you moved this list here to remove the neutron constants file https://review.opendev.org/c/openstack/neutron/+/797121/","commit_id":"c771422a6a58d379054221523c5ea452603591c9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"50df467f4b03c7bd48bec7dcc4f64800c6bd9156","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                           br_dvr_process.OVSDVRInterfaceMixin):"},{"line_number":47,"context_line":"    \"\"\"openvswitch agent br-int specific logic.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    of_tables \u003d (lib_consts.LOCAL_SWITCHING,"},{"line_number":50,"context_line":"                 lib_consts.DVR_TO_SRC_MAC,"},{"line_number":51,"context_line":"                 lib_consts.DVR_TO_SRC_MAC_PHYSICAL,"},{"line_number":52,"context_line":"                 lib_consts.CANARY_TABLE,"},{"line_number":53,"context_line":"                 lib_consts.ARP_SPOOF_TABLE,"},{"line_number":54,"context_line":"                 lib_consts.MAC_SPOOF_TABLE,"},{"line_number":55,"context_line":"                 lib_consts.LOCAL_MAC_DIRECT,"},{"line_number":56,"context_line":"                 lib_consts.TRANSIENT_TABLE,"},{"line_number":57,"context_line":"                 lib_consts.TRANSIENT_EGRESS_TABLE,"},{"line_number":58,"context_line":"                 lib_consts.BASE_EGRESS_TABLE,"},{"line_number":59,"context_line":"                 lib_consts.RULES_EGRESS_TABLE,"},{"line_number":60,"context_line":"                 lib_consts.ACCEPT_OR_INGRESS_TABLE,"},{"line_number":61,"context_line":"                 lib_consts.DHCP_IPV4_TABLE,"},{"line_number":62,"context_line":"                 lib_consts.DHCP_IPV6_TABLE,"},{"line_number":63,"context_line":"                 lib_consts.BASE_INGRESS_TABLE,"},{"line_number":64,"context_line":"                 lib_consts.RULES_INGRESS_TABLE,"},{"line_number":65,"context_line":"                 lib_consts.ACCEPTED_EGRESS_TRAFFIC_TABLE,"},{"line_number":66,"context_line":"                 lib_consts.ACCEPTED_INGRESS_TRAFFIC_TABLE,"},{"line_number":67,"context_line":"                 lib_consts.DROPPED_TRAFFIC_TABLE)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def setup_default_table(self, enable_openflow_dhcp\u003dFalse,"},{"line_number":70,"context_line":"                            enable_dhcpv6\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":11,"id":"d40df985_db43e6ec","line":67,"range":{"start_line":49,"start_character":4,"end_line":67,"end_character":50},"in_reply_to":"220a2eaf_3702fe97","updated":"2021-11-04 16:36:01.000000000","message":"IMO Oleg has very good point that keeping things in different places may cause problems and forgeting about it in the future.\nAccording to Liu\u0027s concern about development speed it shouldn\u0027t be any problem as You can always temporary do something like:\n\n    of_tables \u003d lib_const.INT_BR_ALL_TABLES + [MY_NEW_TABLE_CONSTANT]","commit_id":"c771422a6a58d379054221523c5ea452603591c9"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"e20bd155645e6dd4fce987fa0d8b69dc7ec53f14","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                           br_dvr_process.OVSDVRInterfaceMixin):"},{"line_number":47,"context_line":"    \"\"\"openvswitch agent br-int specific logic.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    of_tables \u003d (lib_consts.LOCAL_SWITCHING,"},{"line_number":50,"context_line":"                 lib_consts.DVR_TO_SRC_MAC,"},{"line_number":51,"context_line":"                 lib_consts.DVR_TO_SRC_MAC_PHYSICAL,"},{"line_number":52,"context_line":"                 lib_consts.CANARY_TABLE,"},{"line_number":53,"context_line":"                 lib_consts.ARP_SPOOF_TABLE,"},{"line_number":54,"context_line":"                 lib_consts.MAC_SPOOF_TABLE,"},{"line_number":55,"context_line":"                 lib_consts.LOCAL_MAC_DIRECT,"},{"line_number":56,"context_line":"                 lib_consts.TRANSIENT_TABLE,"},{"line_number":57,"context_line":"                 lib_consts.TRANSIENT_EGRESS_TABLE,"},{"line_number":58,"context_line":"                 lib_consts.BASE_EGRESS_TABLE,"},{"line_number":59,"context_line":"                 lib_consts.RULES_EGRESS_TABLE,"},{"line_number":60,"context_line":"                 lib_consts.ACCEPT_OR_INGRESS_TABLE,"},{"line_number":61,"context_line":"                 lib_consts.DHCP_IPV4_TABLE,"},{"line_number":62,"context_line":"                 lib_consts.DHCP_IPV6_TABLE,"},{"line_number":63,"context_line":"                 lib_consts.BASE_INGRESS_TABLE,"},{"line_number":64,"context_line":"                 lib_consts.RULES_INGRESS_TABLE,"},{"line_number":65,"context_line":"                 lib_consts.ACCEPTED_EGRESS_TRAFFIC_TABLE,"},{"line_number":66,"context_line":"                 lib_consts.ACCEPTED_INGRESS_TRAFFIC_TABLE,"},{"line_number":67,"context_line":"                 lib_consts.DROPPED_TRAFFIC_TABLE)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def setup_default_table(self, enable_openflow_dhcp\u003dFalse,"},{"line_number":70,"context_line":"                            enable_dhcpv6\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":11,"id":"220a2eaf_3702fe97","line":67,"range":{"start_line":49,"start_character":4,"end_line":67,"end_character":50},"in_reply_to":"41ae240e_35fcd1b2","updated":"2021-10-28 03:19:18.000000000","message":"This seems like a bogus question. No matter where such BR_ALL_TABLES lives, people can forget to add new entry to it. The reason is not where the BR_ALL_TABLES resides, it is people who have no enough backgrounds to acquire the detail. But people can forget anything, so upstream needs code reviewers. Anyone who adds new tables for ovs-bridges to make neutron ovs-bridges doing stale flows clean-up during restart, so those must take strong reposibility to tell ovs-bridges new tables are added to their BR_ALL_TABLES. Otherwise, do not touch anything related to neutron ovs-bridges. So, forget things must not happen. In another view, add a new table to BR_ALL_TABLES, but do nothing in real bridge code. This should never happen as well. People has no backgroud, just add new tables to BR_ALL_TABLES, because they JUST saw that other tables are in that list. But it is not used in neutron. So how to prevent that?\n\nAnd remember, the main real cause of \"to do things in different repos..\" is because such constants file movement. I am against such move, especially when the entries are used only by Neutron itself.\n\nSo here, to make things simple, this line can still be \"of_tables \u003d constants.INT_BR_ALL_TABLES\". Let \"_ALL_TABLES\" lists stay where it is. New tables can still be added there, and move to neutron-lib someday. Or when so other project real needs it, do a move work.\n\n[1] https://review.opendev.org/c/openstack/neutron/+/807977/1/neutron/plugins/ml2/drivers/openvswitch/agent/common/constants.py#90","commit_id":"c771422a6a58d379054221523c5ea452603591c9"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"3e45f2456a5ecd227d14301b2fe2d070dab5f37b","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                           br_dvr_process.OVSDVRInterfaceMixin):"},{"line_number":47,"context_line":"    \"\"\"openvswitch agent br-int specific logic.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    of_tables \u003d (lib_consts.LOCAL_SWITCHING,"},{"line_number":50,"context_line":"                 lib_consts.DVR_TO_SRC_MAC,"},{"line_number":51,"context_line":"                 lib_consts.DVR_TO_SRC_MAC_PHYSICAL,"},{"line_number":52,"context_line":"                 lib_consts.CANARY_TABLE,"},{"line_number":53,"context_line":"                 lib_consts.ARP_SPOOF_TABLE,"},{"line_number":54,"context_line":"                 lib_consts.MAC_SPOOF_TABLE,"},{"line_number":55,"context_line":"                 lib_consts.LOCAL_MAC_DIRECT,"},{"line_number":56,"context_line":"                 lib_consts.TRANSIENT_TABLE,"},{"line_number":57,"context_line":"                 lib_consts.TRANSIENT_EGRESS_TABLE,"},{"line_number":58,"context_line":"                 lib_consts.BASE_EGRESS_TABLE,"},{"line_number":59,"context_line":"                 lib_consts.RULES_EGRESS_TABLE,"},{"line_number":60,"context_line":"                 lib_consts.ACCEPT_OR_INGRESS_TABLE,"},{"line_number":61,"context_line":"                 lib_consts.DHCP_IPV4_TABLE,"},{"line_number":62,"context_line":"                 lib_consts.DHCP_IPV6_TABLE,"},{"line_number":63,"context_line":"                 lib_consts.BASE_INGRESS_TABLE,"},{"line_number":64,"context_line":"                 lib_consts.RULES_INGRESS_TABLE,"},{"line_number":65,"context_line":"                 lib_consts.ACCEPTED_EGRESS_TRAFFIC_TABLE,"},{"line_number":66,"context_line":"                 lib_consts.ACCEPTED_INGRESS_TRAFFIC_TABLE,"},{"line_number":67,"context_line":"                 lib_consts.DROPPED_TRAFFIC_TABLE)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def setup_default_table(self, enable_openflow_dhcp\u003dFalse,"},{"line_number":70,"context_line":"                            enable_dhcpv6\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":11,"id":"aa770164_5cb85f51","line":67,"range":{"start_line":49,"start_character":4,"end_line":67,"end_character":50},"in_reply_to":"6c1f3574_459f0037","updated":"2021-11-09 14:55:28.000000000","message":"I think we should agree if we want to avoid conflicts among table numbers (for br-int, br-tun and br-phys) between networking projects. If such conflicts are possible then we should care - and I think it\u0027s clear that we need to store table ID constants in neutron-lib.\n\nDo we know if such conflict already exists? Or maybe not a conflict but just some networking project adding new table to br-int/tun/phys?","commit_id":"c771422a6a58d379054221523c5ea452603591c9"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"dcf2eed82bdeb435fdd9f220d791673a7aaeb7c0","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                           br_dvr_process.OVSDVRInterfaceMixin):"},{"line_number":47,"context_line":"    \"\"\"openvswitch agent br-int specific logic.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    of_tables \u003d (lib_consts.LOCAL_SWITCHING,"},{"line_number":50,"context_line":"                 lib_consts.DVR_TO_SRC_MAC,"},{"line_number":51,"context_line":"                 lib_consts.DVR_TO_SRC_MAC_PHYSICAL,"},{"line_number":52,"context_line":"                 lib_consts.CANARY_TABLE,"},{"line_number":53,"context_line":"                 lib_consts.ARP_SPOOF_TABLE,"},{"line_number":54,"context_line":"                 lib_consts.MAC_SPOOF_TABLE,"},{"line_number":55,"context_line":"                 lib_consts.LOCAL_MAC_DIRECT,"},{"line_number":56,"context_line":"                 lib_consts.TRANSIENT_TABLE,"},{"line_number":57,"context_line":"                 lib_consts.TRANSIENT_EGRESS_TABLE,"},{"line_number":58,"context_line":"                 lib_consts.BASE_EGRESS_TABLE,"},{"line_number":59,"context_line":"                 lib_consts.RULES_EGRESS_TABLE,"},{"line_number":60,"context_line":"                 lib_consts.ACCEPT_OR_INGRESS_TABLE,"},{"line_number":61,"context_line":"                 lib_consts.DHCP_IPV4_TABLE,"},{"line_number":62,"context_line":"                 lib_consts.DHCP_IPV6_TABLE,"},{"line_number":63,"context_line":"                 lib_consts.BASE_INGRESS_TABLE,"},{"line_number":64,"context_line":"                 lib_consts.RULES_INGRESS_TABLE,"},{"line_number":65,"context_line":"                 lib_consts.ACCEPTED_EGRESS_TRAFFIC_TABLE,"},{"line_number":66,"context_line":"                 lib_consts.ACCEPTED_INGRESS_TRAFFIC_TABLE,"},{"line_number":67,"context_line":"                 lib_consts.DROPPED_TRAFFIC_TABLE)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def setup_default_table(self, enable_openflow_dhcp\u003dFalse,"},{"line_number":70,"context_line":"                            enable_dhcpv6\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":11,"id":"6c1f3574_459f0037","line":67,"range":{"start_line":49,"start_character":4,"end_line":67,"end_character":50},"in_reply_to":"b3256ea6_38b7041b","updated":"2021-11-09 08:56:38.000000000","message":"I\u0027m doing that movement for a TODO [1] of qos constants. But you can not prevent people add new code to that TODO [2] list. It is a side effect of \"rehome work of qos constants\". I can see an endless loop of such work. Some constants are moved to neutron-lib, some added back, some new constants are added to Neutron with TODO, moving, waiting for a release of neutron-lib...loop...\n\nAgain, my only suggestion is we should leave Neutron used only constants in Neutron side. If some projects really need it, they take responsiblities for doing the movement works.\n\n[1] https://review.opendev.org/c/openstack/neutron/+/804380/6\n[2] https://review.opendev.org/c/openstack/neutron/+/803045/15/neutron/services/qos/constants.py","commit_id":"c771422a6a58d379054221523c5ea452603591c9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1faf35715994fdc0a80c8f89eeb4a2df4cd053c7","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                           br_dvr_process.OVSDVRInterfaceMixin):"},{"line_number":47,"context_line":"    \"\"\"openvswitch agent br-int specific logic.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    of_tables \u003d (lib_consts.LOCAL_SWITCHING,"},{"line_number":50,"context_line":"                 lib_consts.DVR_TO_SRC_MAC,"},{"line_number":51,"context_line":"                 lib_consts.DVR_TO_SRC_MAC_PHYSICAL,"},{"line_number":52,"context_line":"                 lib_consts.CANARY_TABLE,"},{"line_number":53,"context_line":"                 lib_consts.ARP_SPOOF_TABLE,"},{"line_number":54,"context_line":"                 lib_consts.MAC_SPOOF_TABLE,"},{"line_number":55,"context_line":"                 lib_consts.LOCAL_MAC_DIRECT,"},{"line_number":56,"context_line":"                 lib_consts.TRANSIENT_TABLE,"},{"line_number":57,"context_line":"                 lib_consts.TRANSIENT_EGRESS_TABLE,"},{"line_number":58,"context_line":"                 lib_consts.BASE_EGRESS_TABLE,"},{"line_number":59,"context_line":"                 lib_consts.RULES_EGRESS_TABLE,"},{"line_number":60,"context_line":"                 lib_consts.ACCEPT_OR_INGRESS_TABLE,"},{"line_number":61,"context_line":"                 lib_consts.DHCP_IPV4_TABLE,"},{"line_number":62,"context_line":"                 lib_consts.DHCP_IPV6_TABLE,"},{"line_number":63,"context_line":"                 lib_consts.BASE_INGRESS_TABLE,"},{"line_number":64,"context_line":"                 lib_consts.RULES_INGRESS_TABLE,"},{"line_number":65,"context_line":"                 lib_consts.ACCEPTED_EGRESS_TRAFFIC_TABLE,"},{"line_number":66,"context_line":"                 lib_consts.ACCEPTED_INGRESS_TRAFFIC_TABLE,"},{"line_number":67,"context_line":"                 lib_consts.DROPPED_TRAFFIC_TABLE)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def setup_default_table(self, enable_openflow_dhcp\u003dFalse,"},{"line_number":70,"context_line":"                            enable_dhcpv6\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":11,"id":"b3256ea6_38b7041b","line":67,"range":{"start_line":49,"start_character":4,"end_line":67,"end_character":50},"in_reply_to":"cc87d974_09649e64","updated":"2021-11-05 08:35:03.000000000","message":"IMO the best way to avoid colision long term is to keep all in neutron-lib. Otherwise we will be out of sync at some point for sure.\nSolution with adding new tables in neutron, which I suggested above is just a workaround to speed up development sometimes, when it\u0027s needed. Of course it should be added with \"TODO\" note to rehome such new constant to neutron-lib. We are doing that for other things as well and it works just fine IMO.","commit_id":"c771422a6a58d379054221523c5ea452603591c9"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d7b4bb79d9fcb0cd76501e241b7954855b1dc915","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                           br_dvr_process.OVSDVRInterfaceMixin):"},{"line_number":47,"context_line":"    \"\"\"openvswitch agent br-int specific logic.\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    of_tables \u003d (lib_consts.LOCAL_SWITCHING,"},{"line_number":50,"context_line":"                 lib_consts.DVR_TO_SRC_MAC,"},{"line_number":51,"context_line":"                 lib_consts.DVR_TO_SRC_MAC_PHYSICAL,"},{"line_number":52,"context_line":"                 lib_consts.CANARY_TABLE,"},{"line_number":53,"context_line":"                 lib_consts.ARP_SPOOF_TABLE,"},{"line_number":54,"context_line":"                 lib_consts.MAC_SPOOF_TABLE,"},{"line_number":55,"context_line":"                 lib_consts.LOCAL_MAC_DIRECT,"},{"line_number":56,"context_line":"                 lib_consts.TRANSIENT_TABLE,"},{"line_number":57,"context_line":"                 lib_consts.TRANSIENT_EGRESS_TABLE,"},{"line_number":58,"context_line":"                 lib_consts.BASE_EGRESS_TABLE,"},{"line_number":59,"context_line":"                 lib_consts.RULES_EGRESS_TABLE,"},{"line_number":60,"context_line":"                 lib_consts.ACCEPT_OR_INGRESS_TABLE,"},{"line_number":61,"context_line":"                 lib_consts.DHCP_IPV4_TABLE,"},{"line_number":62,"context_line":"                 lib_consts.DHCP_IPV6_TABLE,"},{"line_number":63,"context_line":"                 lib_consts.BASE_INGRESS_TABLE,"},{"line_number":64,"context_line":"                 lib_consts.RULES_INGRESS_TABLE,"},{"line_number":65,"context_line":"                 lib_consts.ACCEPTED_EGRESS_TRAFFIC_TABLE,"},{"line_number":66,"context_line":"                 lib_consts.ACCEPTED_INGRESS_TRAFFIC_TABLE,"},{"line_number":67,"context_line":"                 lib_consts.DROPPED_TRAFFIC_TABLE)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def setup_default_table(self, enable_openflow_dhcp\u003dFalse,"},{"line_number":70,"context_line":"                            enable_dhcpv6\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":11,"id":"cc87d974_09649e64","line":67,"range":{"start_line":49,"start_character":4,"end_line":67,"end_character":50},"in_reply_to":"d40df985_db43e6ec","updated":"2021-11-05 02:26:30.000000000","message":"How to prevent this:\n\"\"\"\nPeople has no backgroud, just add new tables to BR_ALL_TABLES, because they JUST saw that other tables are in that list. But it is not used in neutron.\n\"\"\"\n\nYou do this work here:\nof_tables \u003d lib_const.INT_BR_ALL_TABLES + [MY_NEW_TABLE_CONSTANT]\n\nThey extend INT_BR_ALL_TABLES in neutron-lib.\n\nIf there is a collision of table id, the problem is more serious.","commit_id":"c771422a6a58d379054221523c5ea452603591c9"}],"neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_phys.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d84ae4d93d80c9649cfdebb95c4b5e6e4f4e14f1","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    # Used by OVSDVRProcessMixin"},{"line_number":30,"context_line":"    dvr_process_table_id \u003d constants.DVR_PROCESS_PHYSICAL"},{"line_number":31,"context_line":"    dvr_process_next_table_id \u003d constants.LOCAL_VLAN_TRANSLATION"},{"line_number":32,"context_line":"    of_tables \u003d constants.PHY_BR_ALL_TABLES"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def setup_default_table(self):"},{"line_number":35,"context_line":"        self.install_normal()"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba61c23f_7547f774","line":32,"range":{"start_line":32,"start_character":4,"end_line":32,"end_character":43},"updated":"2021-09-03 00:56:38.000000000","message":"ditto","commit_id":"4d1ef5cab958e0559b1b8f39472df8286c050ca6"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"67faf9056f492b552139de1c9c8ef19c4be6e43e","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    # Used by OVSDVRProcessMixin"},{"line_number":30,"context_line":"    dvr_process_table_id \u003d constants.DVR_PROCESS_PHYSICAL"},{"line_number":31,"context_line":"    dvr_process_next_table_id \u003d constants.LOCAL_VLAN_TRANSLATION"},{"line_number":32,"context_line":"    of_tables \u003d constants.PHY_BR_ALL_TABLES"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def setup_default_table(self):"},{"line_number":35,"context_line":"        self.install_normal()"}],"source_content_type":"text/x-python","patch_set":10,"id":"c61d4ac5_c071d6d1","line":32,"range":{"start_line":32,"start_character":16,"end_line":32,"end_character":43},"updated":"2021-09-07 09:09:50.000000000","message":"ditto","commit_id":"01f036e0ba613ad5d4dc63e2333614b4cecea782"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"382945083404e588b678692f897ee9482ba814cf","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    # Used by OVSDVRProcessMixin"},{"line_number":30,"context_line":"    dvr_process_table_id \u003d constants.DVR_PROCESS_PHYSICAL"},{"line_number":31,"context_line":"    dvr_process_next_table_id \u003d constants.LOCAL_VLAN_TRANSLATION"},{"line_number":32,"context_line":"    of_tables \u003d constants.PHY_BR_ALL_TABLES"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def setup_default_table(self):"},{"line_number":35,"context_line":"        self.install_normal()"}],"source_content_type":"text/x-python","patch_set":10,"id":"a617094c_3bb7355b","line":32,"range":{"start_line":32,"start_character":16,"end_line":32,"end_character":43},"in_reply_to":"c61d4ac5_c071d6d1","updated":"2021-10-12 12:31:03.000000000","message":"same here","commit_id":"01f036e0ba613ad5d4dc63e2333614b4cecea782"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"1d68a2e34c6391bfd4f92f9bdc369d52526b5087","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    # Used by OVSDVRProcessMixin"},{"line_number":30,"context_line":"    dvr_process_table_id \u003d constants.DVR_PROCESS_PHYSICAL"},{"line_number":31,"context_line":"    dvr_process_next_table_id \u003d constants.LOCAL_VLAN_TRANSLATION"},{"line_number":32,"context_line":"    of_tables \u003d (constants.LOCAL_SWITCHING,"},{"line_number":33,"context_line":"                 constants.DVR_PROCESS_PHYSICAL,"},{"line_number":34,"context_line":"                 constants.LOCAL_VLAN_TRANSLATION,"},{"line_number":35,"context_line":"                 constants.DVR_NOT_LEARN_PHYSICAL)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setup_default_table(self):"},{"line_number":38,"context_line":"        self.install_normal()"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"fca757b1_92fc5746","line":36,"range":{"start_line":32,"start_character":4,"end_line":36,"end_character":0},"updated":"2021-10-27 14:41:44.000000000","message":"ditto","commit_id":"c771422a6a58d379054221523c5ea452603591c9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"50df467f4b03c7bd48bec7dcc4f64800c6bd9156","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    # Used by OVSDVRProcessMixin"},{"line_number":30,"context_line":"    dvr_process_table_id \u003d constants.DVR_PROCESS_PHYSICAL"},{"line_number":31,"context_line":"    dvr_process_next_table_id \u003d constants.LOCAL_VLAN_TRANSLATION"},{"line_number":32,"context_line":"    of_tables \u003d (constants.LOCAL_SWITCHING,"},{"line_number":33,"context_line":"                 constants.DVR_PROCESS_PHYSICAL,"},{"line_number":34,"context_line":"                 constants.LOCAL_VLAN_TRANSLATION,"},{"line_number":35,"context_line":"                 constants.DVR_NOT_LEARN_PHYSICAL)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setup_default_table(self):"},{"line_number":38,"context_line":"        self.install_normal()"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3e717afa_4dc6d0a7","line":36,"range":{"start_line":32,"start_character":4,"end_line":36,"end_character":0},"in_reply_to":"fca757b1_92fc5746","updated":"2021-11-04 16:36:01.000000000","message":"I agree with Your point Oleg. I got back to use list from neutron_lib in all 3 files.","commit_id":"c771422a6a58d379054221523c5ea452603591c9"}],"neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_tun.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d84ae4d93d80c9649cfdebb95c4b5e6e4f4e14f1","unresolved":true,"context_lines":[{"line_number":32,"context_line":"    # Used by OVSDVRProcessMixin"},{"line_number":33,"context_line":"    dvr_process_table_id \u003d constants.DVR_PROCESS"},{"line_number":34,"context_line":"    dvr_process_next_table_id \u003d constants.PATCH_LV_TO_TUN"},{"line_number":35,"context_line":"    of_tables \u003d constants.TUN_BR_ALL_TABLES"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setup_default_table(self, patch_int_ofport, arp_responder_enabled):"},{"line_number":38,"context_line":"        (dp, ofp, ofpp) \u003d self._get_dp()"}],"source_content_type":"text/x-python","patch_set":9,"id":"9ab949ad_727ecc52","line":35,"range":{"start_line":35,"start_character":4,"end_line":35,"end_character":43},"updated":"2021-09-03 00:56:38.000000000","message":"ditto","commit_id":"4d1ef5cab958e0559b1b8f39472df8286c050ca6"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"67faf9056f492b552139de1c9c8ef19c4be6e43e","unresolved":true,"context_lines":[{"line_number":32,"context_line":"    # Used by OVSDVRProcessMixin"},{"line_number":33,"context_line":"    dvr_process_table_id \u003d constants.DVR_PROCESS"},{"line_number":34,"context_line":"    dvr_process_next_table_id \u003d constants.PATCH_LV_TO_TUN"},{"line_number":35,"context_line":"    of_tables \u003d constants.TUN_BR_ALL_TABLES"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setup_default_table(self, patch_int_ofport, arp_responder_enabled):"},{"line_number":38,"context_line":"        (dp, ofp, ofpp) \u003d self._get_dp()"}],"source_content_type":"text/x-python","patch_set":10,"id":"c870d75d_45db32d1","line":35,"range":{"start_line":35,"start_character":16,"end_line":35,"end_character":43},"updated":"2021-09-07 09:09:50.000000000","message":"ditto","commit_id":"01f036e0ba613ad5d4dc63e2333614b4cecea782"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"382945083404e588b678692f897ee9482ba814cf","unresolved":true,"context_lines":[{"line_number":32,"context_line":"    # Used by OVSDVRProcessMixin"},{"line_number":33,"context_line":"    dvr_process_table_id \u003d constants.DVR_PROCESS"},{"line_number":34,"context_line":"    dvr_process_next_table_id \u003d constants.PATCH_LV_TO_TUN"},{"line_number":35,"context_line":"    of_tables \u003d constants.TUN_BR_ALL_TABLES"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setup_default_table(self, patch_int_ofport, arp_responder_enabled):"},{"line_number":38,"context_line":"        (dp, ofp, ofpp) \u003d self._get_dp()"}],"source_content_type":"text/x-python","patch_set":10,"id":"13236813_85daa314","line":35,"range":{"start_line":35,"start_character":16,"end_line":35,"end_character":43},"in_reply_to":"c870d75d_45db32d1","updated":"2021-10-12 12:31:03.000000000","message":"and here","commit_id":"01f036e0ba613ad5d4dc63e2333614b4cecea782"}]}
