Skip to content

Commit

Permalink
Cherry pick to 202205 Adding COUNTER_MARGIN to Ingress drop counters …
Browse files Browse the repository at this point in the history
…for qos tests (#9896) (#10210)

Backport master branch PR #9896
  • Loading branch information
ansrajpu-git authored Oct 19, 2023
1 parent 82e873b commit 4adc032
Showing 1 changed file with 64 additions and 19 deletions.
83 changes: 64 additions & 19 deletions tests/saitests/py3/sai_qos_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -1410,9 +1410,16 @@ def runTest(self):
assert(recv_counters[pg] == recv_counters_base[pg]), \
'unexpectedly PFC counter increase, {}'.format(test_stage)
# recv port no ingress drop
# For dnx few extra ipv6 NS/RA pkt received from VM, adding to counter value
# & may give inconsistent test results
# Adding COUNTER_MARGIN to provide room to 2 pkt incase, extra traffic received
for cntr in ingress_counters:
assert(recv_counters[cntr] == recv_counters_base[cntr]), \
'unexpectedly RX drop counter increase, {}'.format(test_stage)
if platform_asic and platform_asic == "broadcom-dnx":
assert (recv_counters[cntr] <= recv_counters_base[cntr] + COUNTER_MARGIN),\
'unexpectedly RX drop counter increase, {}'.format(test_stage)
else:
assert(recv_counters[cntr] == recv_counters_base[cntr]),\
'unexpectedly RX drop counter increase, {}'.format(test_stage)
# xmit port no egress drop
for cntr in egress_counters:
assert(xmit_counters[cntr] == xmit_counters_base[cntr]), \
Expand All @@ -1435,9 +1442,16 @@ def runTest(self):
assert(recv_counters[pg] > recv_counters_base[pg]), \
'unexpectedly PFC counter not increase, {}'.format(test_stage)
# recv port no ingress drop
# For dnx few extra ipv6 NS/RA pkt received from VM, adding to counter value
# & may give inconsistent test results
# Adding COUNTER_MARGIN to provide room to 2 pkt incase, extra traffic received
for cntr in ingress_counters:
assert(recv_counters[cntr] == recv_counters_base[cntr]), \
'unexpectedly RX drop counter increase, {}'.format(test_stage)
if platform_asic and platform_asic == "broadcom-dnx":
assert (recv_counters[cntr] <= recv_counters_base[cntr] + COUNTER_MARGIN),\
'unexpectedly RX drop counter increase, {}'.format(test_stage)
else:
assert(recv_counters[cntr] == recv_counters_base[cntr]),\
'unexpectedly RX drop counter increase, {}'.format(test_stage)
# xmit port no egress drop
for cntr in egress_counters:
assert(xmit_counters[cntr] == xmit_counters_base[cntr]), \
Expand All @@ -1463,9 +1477,16 @@ def runTest(self):
assert(recv_counters[pg] > recv_counters_base[pg]), \
'unexpectedly PFC counter not increase, {}'.format(test_stage)
# recv port no ingress drop
# For dnx few extra ipv6 NS/RA pkt received from VM, adding to counter value
# & may give inconsistent test results
# Adding COUNTER_MARGIN to provide room to 2 pkt incase, extra traffic received
for cntr in ingress_counters:
assert(recv_counters[cntr] == recv_counters_base[cntr]), \
'unexpectedly RX drop counter increase, {}'.format(test_stage)
if platform_asic and platform_asic == "broadcom-dnx":
assert (recv_counters[cntr] <= recv_counters_base[cntr] + COUNTER_MARGIN),\
'unexpectedly RX drop counter increase, {}'.format(test_stage)
else:
assert(recv_counters[cntr] == recv_counters_base[cntr]),\
'unexpectedly RX drop counter increase, {}'.format(test_stage)
# xmit port no egress drop
for cntr in egress_counters:
assert(xmit_counters[cntr] == xmit_counters_base[cntr]), \
Expand All @@ -1490,15 +1511,18 @@ def runTest(self):
assert(recv_counters[pg] > recv_counters_base[pg]), \
'unexpectedly PFC counter not increase, {}'.format(test_stage)
# recv port ingress drop
if platform_asic and platform_asic == "broadcom-dnx":
logging.info ("On J2C+ don't support port level drop counters - so ignoring this step for now")
else:
# recv port ingress drop
for cntr in ingress_counters:
assert(recv_counters[cntr] > recv_counters_base[cntr]), 'unexpectedly RX drop counter not increase, {}'.format(test_stage)
# xmit port no egress drop
for cntr in egress_counters:
assert(xmit_counters[cntr] == xmit_counters_base[cntr]), 'unexpectedly TX drop counter increase, {}'.format(test_stage)
for cntr in ingress_counters:
if platform_asic and platform_asic == "broadcom-dnx":
if cntr == 1:
assert(recv_counters[cntr] > recv_counters_base[cntr]), 'unexpectedly RX drop counter ' \
'not increase, {}'.format(test_stage)
else:
assert(recv_counters[cntr] > recv_counters_base[cntr]), 'unexpectedly RX drop counter' \
' not increase, {}'.format(test_stage)
# xmit port no egress drop
for cntr in egress_counters:
assert(xmit_counters[cntr] == xmit_counters_base[cntr]),\
'unexpectedly TX drop counter increase, {}'.format(test_stage)

if '201811' not in sonic_version and 'mellanox' in asic_type:
pg_dropped_cntrs = sai_thrift_read_pg_drop_counters(
Expand Down Expand Up @@ -1882,6 +1906,7 @@ def runTest(self):
sonic_version = self.test_params['sonic_version']
router_mac = self.test_params['router_mac']
max_buffer_size = int(self.test_params['buffer_max_size'])
platform_asic = self.test_params['platform_asic']

# The pfc counter index starts from index 2 in sai_thrift_read_port_counters
pg = int(self.test_params['pg']) + 2
Expand Down Expand Up @@ -2174,8 +2199,18 @@ def runTest(self):
# recv port pfc
assert(recv_counters[pg] > recv_counters_base[pg]), 'unexpectedly not trigger PFC for PG {} (counter: {}), at step {} {}'.format(pg, port_counter_fields[pg], step_id, step_desc)
# recv port no ingress drop
# For dnx few extra ipv6 NS/RA pkt received from VM, adding to counter value
# & may give inconsistent test results
# Adding COUNTER_MARGIN to provide room to 2 pkt incase, extra traffic received
for cntr in ingress_counters:
assert(recv_counters[cntr] == recv_counters_base[cntr]), 'unexpectedly ingress drop on recv port (counter: {}), at step {} {}'.format(port_counter_fields[cntr], step_id, step_desc)
if platform_asic and platform_asic == "broadcom-dnx":
assert (recv_counters[cntr] <= recv_counters_base[cntr] + COUNTER_MARGIN), \
'unexpectedly ingress drop on recv port (counter: {}), at step {} {}'.format(
port_counter_fields[cntr], step_id, step_desc)
else:
assert(recv_counters[cntr] == recv_counters_base[cntr]),\
'unexpectedly ingress drop on recv port (counter: {}), at step {} {}'.format(
port_counter_fields[cntr], step_id, step_desc)
# xmit port no egress drop
for cntr in egress_counters:
assert(xmit_counters[cntr] == xmit_counters_base[cntr]), 'unexpectedly egress drop on xmit port 1 (counter: {}, at step {} {})'.format(port_counter_fields[cntr], step_id, step_desc)
Expand Down Expand Up @@ -3290,8 +3325,17 @@ def runTest(self):
# recv port no pfc
assert(recv_counters[pg] == recv_counters_base[pg])
# recv port no ingress drop
# For dnx few extra ipv6 NS/RA pkt received, adding to coutner value
# & may give inconsistent test results
# Adding COUNTER_MARGIN to provide room to 2 pkt incase, extra traffic received
for cntr in ingress_counters:
assert(recv_counters[cntr] == recv_counters_base[cntr])
if platform_asic and platform_asic == "broadcom-dnx":
if cntr == 1:
print("recv_counters_base: %d, recv_counters: %d" % (recv_counters_base[cntr],
recv_counters[cntr]), file=sys.stderr)
assert(recv_counters[cntr] <= recv_counters_base[cntr] + COUNTER_MARGIN)
else:
assert(recv_counters[cntr] == recv_counters_base[cntr])
# xmit port no egress drop
for cntr in egress_counters:
assert(xmit_counters[cntr] == xmit_counters_base[cntr])
Expand All @@ -3308,8 +3352,9 @@ def runTest(self):
assert(recv_counters[pg] == recv_counters_base[pg])
# recv port no ingress drop
for cntr in ingress_counters:
if platform_asic and platform_asic == "broadcom-dnx" and cntr == 1:
assert (recv_counters[cntr] > recv_counters_base[cntr])
if platform_asic and platform_asic == "broadcom-dnx":
if cntr == 1:
assert (recv_counters[cntr] > recv_counters_base[cntr])
else:
assert (recv_counters[cntr] == recv_counters_base[cntr])

Expand Down

0 comments on commit 4adc032

Please sign in to comment.