@@ -59,6 +59,7 @@ PORT_OPER_STATUS_FIELD = "oper_status"
5959PORT_ADMIN_STATUS_FIELD = "admin_status"
6060PORT_STATUS_VALUE_UP = 'UP'
6161PORT_STATUS_VALUE_DOWN = 'DOWN'
62+ PORT_SPEED_FIELD = "speed"
6263
6364PORT_STATE_UP = 'U'
6465PORT_STATE_DOWN = 'D'
@@ -100,6 +101,19 @@ class Portstat(object):
100101 cnstat_dict [port ] = get_counters (counter_port_name_map [port ])
101102 return cnstat_dict
102103
104+ def get_port_speed (self , port_name ):
105+ """
106+ Get the port speed
107+ """
108+ # Get speed from APPL_DB
109+ full_table_id = PORT_STATUS_TABLE_PREFIX + port_name
110+ speed = self .db .get (self .db .APPL_DB , full_table_id , PORT_SPEED_FIELD )
111+ if speed is None :
112+ speed = PORT_RATE
113+ else :
114+ speed = int (speed )/ 1000
115+ return speed
116+
103117 def get_port_state (self , port_name ):
104118 """
105119 Get the port state
@@ -137,34 +151,34 @@ class Portstat(object):
137151 old_cntr = cnstat_old_dict .get (key )
138152 else :
139153 old_cntr = NStats ._make ([0 ] * BUCKET_NUM )
140-
154+ port_speed = self . get_port_speed ( key )
141155 if print_all :
142156 table .append ((key , self .get_port_state (key ),
143157 ns_diff (cntr .rx_ok , old_cntr .rx_ok ),
144158 ns_brate (cntr .rx_byt , old_cntr .rx_byt , time_gap ),
145159 ns_prate (cntr .rx_ok , old_cntr .rx_ok , time_gap ),
146- ns_util (cntr .rx_byt , old_cntr .rx_byt , time_gap ),
160+ ns_util (cntr .rx_byt , old_cntr .rx_byt , time_gap , port_speed ),
147161 ns_diff (cntr .rx_err , old_cntr .rx_err ),
148162 ns_diff (cntr .rx_drop , old_cntr .rx_drop ),
149163 ns_diff (cntr .rx_ovr , old_cntr .rx_ovr ),
150164 ns_diff (cntr .tx_ok , old_cntr .tx_ok ),
151165 ns_brate (cntr .tx_byt , old_cntr .tx_byt , time_gap ),
152166 ns_prate (cntr .tx_ok , old_cntr .tx_ok , time_gap ),
153- ns_util (cntr .tx_byt , old_cntr .tx_byt , time_gap ),
167+ ns_util (cntr .tx_byt , old_cntr .tx_byt , time_gap , port_speed ),
154168 ns_diff (cntr .tx_err , old_cntr .tx_err ),
155169 ns_diff (cntr .tx_drop , old_cntr .tx_drop ),
156170 ns_diff (cntr .tx_ovr , old_cntr .tx_ovr )))
157171 else :
158172 table .append ((key , self .get_port_state (key ),
159173 ns_diff (cntr .rx_ok , old_cntr .rx_ok ),
160174 ns_brate (cntr .rx_byt , old_cntr .rx_byt , time_gap ),
161- ns_util (cntr .rx_byt , old_cntr .rx_byt , time_gap ),
175+ ns_util (cntr .rx_byt , old_cntr .rx_byt , time_gap , port_speed ),
162176 ns_diff (cntr .rx_err , old_cntr .rx_err ),
163177 ns_diff (cntr .rx_drop , old_cntr .rx_drop ),
164178 ns_diff (cntr .rx_ovr , old_cntr .rx_ovr ),
165179 ns_diff (cntr .tx_ok , old_cntr .tx_ok ),
166180 ns_brate (cntr .tx_byt , old_cntr .tx_byt , time_gap ),
167- ns_util (cntr .tx_byt , old_cntr .tx_byt , time_gap ),
181+ ns_util (cntr .tx_byt , old_cntr .tx_byt , time_gap , port_speed ),
168182 ns_diff (cntr .tx_err , old_cntr .tx_err ),
169183 ns_diff (cntr .tx_drop , old_cntr .tx_drop ),
170184 ns_diff (cntr .tx_ovr , old_cntr .tx_ovr )))
0 commit comments