@@ -915,72 +915,6 @@ def test_chassis_system_lag_id_allocator_del_id(self, vct):
915915
916916 break
917917
918- def test_chassis_add_remove_ports (self , vct ):
919- """Test removing and adding a port in a VOQ chassis.
920-
921- Test validates that when a port is created the port is removed from the default vlan.
922- """
923- dvss = vct .dvss
924- for name in dvss .keys ():
925- dvs = dvss [name ]
926- buffer_model .enable_dynamic_buffer (dvs .get_config_db (), dvs .runcmd )
927-
928- config_db = dvs .get_config_db ()
929- app_db = dvs .get_app_db ()
930- asic_db = dvs .get_asic_db ()
931- metatbl = config_db .get_entry ("DEVICE_METADATA" , "localhost" )
932- cfg_switch_type = metatbl .get ("switch_type" )
933- cfg_hostname = metatbl .get ("hostname" )
934- cfg_asic_name = metatbl .get ("asic_name" )
935-
936- if cfg_switch_type == "voq" :
937- num_ports = len (asic_db .get_keys ("ASIC_STATE:SAI_OBJECT_TYPE_PORT" ))
938- # Get the port info we'll flap
939- port = config_db .get_keys ('PORT' )[0 ]
940- port_info = config_db .get_entry ("PORT" , port )
941- system_port = cfg_hostname + "|" + cfg_asic_name + "|" + port
942-
943- # Remove port's other configs
944- pgs = config_db .get_keys ('BUFFER_PG' )
945- buf_queues = config_db .get_keys ('BUFFER_QUEUE' )
946- queues = config_db .get_keys ('QUEUE' )
947-
948- for key in pgs :
949- if port in key :
950- config_db .delete_entry ('BUFFER_PG' , key )
951- app_db .wait_for_deleted_entry ('BUFFER_PG_TABLE' , key )
952-
953- for key in buf_queues :
954- if port in key :
955- config_db .delete_entry ('BUFFER_QUEUE' , key )
956- app_db .wait_for_deleted_entry ('BUFFER_QUEUE_TABLE' , key )
957-
958- for key in queues :
959- if system_port in key :
960- config_db .delete_entry ('QUEUE' , key )
961- app_db .wait_for_deleted_entry ('QUEUE_TABLE' , key )
962-
963- # Remove port
964- config_db .delete_entry ('PORT' , port )
965- app_db .wait_for_deleted_entry ('PORT_TABLE' , port )
966- num = asic_db .wait_for_n_keys ("ASIC_STATE:SAI_OBJECT_TYPE_PORT" ,
967- num_ports )
968- assert len (num ) == num_ports
969-
970- # Create port
971- config_db .update_entry ("PORT" , port , port_info )
972- app_db .wait_for_entry ("PORT_TABLE" , port )
973- num = asic_db .wait_for_n_keys ("ASIC_STATE:SAI_OBJECT_TYPE_PORT" ,
974- num_ports )
975- assert len (num ) == num_ports
976-
977- # Check that we see the logs for removing default vlan
978- _ , logSeen = dvs .runcmd ( [ "sh" , "-c" ,
979- "awk STARTFILE/ENDFILE /var/log/syslog | grep 'removeDefaultVlanMembers: Remove 32 VLAN members from default VLAN' | wc -l" ] )
980- assert logSeen .strip () == "1"
981-
982- buffer_model .disable_dynamic_buffer (dvs )
983-
984918 def test_voq_egress_queue_counter (self , vct ):
985919 if vct is None :
986920 return
@@ -1048,6 +982,78 @@ def test_chassis_wred_profile_on_system_ports(self, vct):
1048982 # Total number of logs = (No of system ports * No of lossless priorities) - No of lossless priorities for CPU ports
1049983 assert logSeen .strip () == str (len (system_ports )* 2 - 2 )
1050984
985+ def test_chassis_add_remove_ports (self , vct ):
986+ """Test removing and adding a port in a VOQ chassis.
987+
988+ Test validates that when a port is created the port is removed from the default vlan.
989+ """
990+ dvss = vct .dvss
991+ for name in dvss .keys ():
992+ dvs = dvss [name ]
993+ buffer_model .enable_dynamic_buffer (dvs .get_config_db (), dvs .runcmd )
994+
995+ config_db = dvs .get_config_db ()
996+ app_db = dvs .get_app_db ()
997+ asic_db = dvs .get_asic_db ()
998+ metatbl = config_db .get_entry ("DEVICE_METADATA" , "localhost" )
999+ cfg_switch_type = metatbl .get ("switch_type" )
1000+ cfg_hostname = metatbl .get ("hostname" )
1001+ cfg_asic_name = metatbl .get ("asic_name" )
1002+
1003+ if cfg_switch_type == "voq" :
1004+ num_ports = len (asic_db .get_keys ("ASIC_STATE:SAI_OBJECT_TYPE_PORT" ))
1005+ # Get the port info we'll flap
1006+ port = config_db .get_keys ('PORT' )[0 ]
1007+ port_info = config_db .get_entry ("PORT" , port )
1008+ system_port = cfg_hostname + "|" + cfg_asic_name + "|" + port
1009+
1010+ # Remove port's other configs
1011+ pgs = config_db .get_keys ('BUFFER_PG' )
1012+ buf_queues = config_db .get_keys ('BUFFER_QUEUE' )
1013+ queues = config_db .get_keys ('QUEUE' )
1014+ for key in pgs :
1015+ if port in key :
1016+ config_db .delete_entry ('BUFFER_PG' , key )
1017+ app_db .wait_for_deleted_entry ('BUFFER_PG_TABLE' , key )
1018+
1019+ for key in buf_queues :
1020+ if port in key :
1021+ config_db .delete_entry ('BUFFER_QUEUE' , key )
1022+ app_db .wait_for_deleted_entry ('BUFFER_QUEUE_TABLE' , key )
1023+
1024+ queue_info = {}
1025+ for key in queues :
1026+ if system_port in key :
1027+ queue_info [key ] = config_db .get_entry ("QUEUE" , key )
1028+ config_db .delete_entry ('QUEUE' , key )
1029+ config_db .wait_for_deleted_entry ('QUEUE_TABLE' , key )
1030+
1031+ # Remove port
1032+ config_db .delete_entry ('PORT' , port )
1033+ app_db .wait_for_deleted_entry ('PORT_TABLE' , port )
1034+ num = asic_db .wait_for_n_keys ("ASIC_STATE:SAI_OBJECT_TYPE_PORT" ,
1035+ num_ports )
1036+ assert len (num ) == num_ports
1037+
1038+ # Create port
1039+ config_db .update_entry ("PORT" , port , port_info )
1040+ app_db .wait_for_entry ("PORT_TABLE" , port )
1041+ num = asic_db .wait_for_n_keys ("ASIC_STATE:SAI_OBJECT_TYPE_PORT" ,
1042+ num_ports )
1043+ assert len (num ) == num_ports
1044+
1045+ if len (queue_info ):
1046+ for key , value in queue_info .items ():
1047+ config_db .update_entry ("QUEUE" , key , value )
1048+ config_db .wait_for_entry ("QUEUE" , key )
1049+
1050+ # Check that we see the logs for removing default vlan
1051+ _ , logSeen = dvs .runcmd ( [ "sh" , "-c" ,
1052+ "awk STARTFILE/ENDFILE /var/log/syslog | grep 'removeDefaultVlanMembers: Remove 32 VLAN members from default VLAN' | wc -l" ] )
1053+ assert logSeen .strip () == "1"
1054+
1055+ buffer_model .disable_dynamic_buffer (dvs )
1056+
10511057 def test_chassis_system_intf_status (self , vct ):
10521058 dvs = self .get_sup_dvs (vct )
10531059 chassis_app_db = DVSDatabase (swsscommon .CHASSIS_APP_DB , dvs .redis_chassis_sock )
0 commit comments