diff --git a/orchagent/port_rates.lua b/orchagent/port_rates.lua index d7b8b8e4b14..917e7458e19 100644 --- a/orchagent/port_rates.lua +++ b/orchagent/port_rates.lua @@ -200,6 +200,10 @@ local function compute_rate(port) local fec_corr_bits_last = redis.call('HGET', rates_table_name .. ':' .. port, 'SAI_PORT_STAT_IF_FEC_CORRECTED_BITS_last') local fec_uncorr_frames_last = redis.call('HGET', rates_table_name .. ':' .. port, 'SAI_PORT_STAT_IF_FEC_NOT_CORRECTABLE_FARMES_last') + -- Initialize to 0 if last counter values does not exist (during first boot for eg) + fec_corr_bits_last = tonumber(fec_corr_bits_last) or 0 + fec_uncorr_frames_last = tonumber(fec_uncorr_frames_last) or 0 + local serdes_rate_total = lanes_count * serdes_speed * delta / 1000 fec_corr_bits_ber_new = (fec_corr_bits - fec_corr_bits_last) / serdes_rate_total @@ -207,7 +211,6 @@ local function compute_rate(port) else logit("FEC counters or lane info not found on " .. port) end - else redis.call('HSET', state_table, 'INIT_DONE', 'COUNTERS_LAST') end