From e0efbc1e141191e4f532464a1783c90309a0b51c Mon Sep 17 00:00:00 2001
From: Lawrence Lee <lawlee@microsoft.com>
Date: Sun, 14 Feb 2021 12:43:49 -0800
Subject: [PATCH] [swss]: Clear MUX-related state DB tables on start (#6759)

* Add *MUX_CABLE_TABLE* to set of tables to clear on SWSS start, which
will clear HW_MUX_CABLE_TABLE and MUX_CABLE_TABLE
* Order swss to start before pmon to ensure that DBs are cleared before
xcvrd (running inside pmon) starts and re-populates the tables

Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
---
 files/build_templates/per_namespace/swss.service.j2 | 2 +-
 files/scripts/swss.sh                               | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/files/build_templates/per_namespace/swss.service.j2 b/files/build_templates/per_namespace/swss.service.j2
index 352d1593a6..8ac19037ff 100644
--- a/files/build_templates/per_namespace/swss.service.j2
+++ b/files/build_templates/per_namespace/swss.service.j2
@@ -12,7 +12,7 @@ Requires=opennsl-modules.service
 Requires=updategraph.service
 After=updategraph.service
 After=interfaces-config.service
-Before=ntp-config.service
+Before=ntp-config.service pmon.service
 StartLimitIntervalSec=1200
 StartLimitBurst=3
 
diff --git a/files/scripts/swss.sh b/files/scripts/swss.sh
index 1c54aefb0c..bde64fb53c 100755
--- a/files/scripts/swss.sh
+++ b/files/scripts/swss.sh
@@ -147,7 +147,7 @@ start() {
         $SONIC_DB_CLI ASIC_DB FLUSHDB
         $SONIC_DB_CLI COUNTERS_DB FLUSHDB
         $SONIC_DB_CLI FLEX_COUNTER_DB FLUSHDB
-        clean_up_tables STATE_DB "'PORT_TABLE*', 'MGMT_PORT_TABLE*', 'VLAN_TABLE*', 'VLAN_MEMBER_TABLE*', 'LAG_TABLE*', 'LAG_MEMBER_TABLE*', 'INTERFACE_TABLE*', 'MIRROR_SESSION*', 'VRF_TABLE*', 'FDB_TABLE*', 'FG_ROUTE_TABLE*', 'BUFFER_POOL*', 'BUFFER_PROFILE*'"
+        clean_up_tables STATE_DB "'PORT_TABLE*', 'MGMT_PORT_TABLE*', 'VLAN_TABLE*', 'VLAN_MEMBER_TABLE*', 'LAG_TABLE*', 'LAG_MEMBER_TABLE*', 'INTERFACE_TABLE*', 'MIRROR_SESSION*', 'VRF_TABLE*', 'FDB_TABLE*', 'FG_ROUTE_TABLE*', 'BUFFER_POOL*', 'BUFFER_PROFILE*', '*MUX_CABLE_TABLE*'"
     fi
 
     # start service docker