Skip to content

Commit

Permalink
Adding COUNTER_MARGIN to Ingress drop counters for qos tests (sonic-n…
Browse files Browse the repository at this point in the history
…et#9896)

* Qos_LossyQueueTest fix_adding COUNTER MARGIN

* Adding COUNTER_MARGIN to qos PFCXonTest

* Adding COUNTER_MARGIN to qos PFCTest

* Flake8 fixes

* testQosSaiPFCXoffLimit updated with correct check

* Conditional check corrected for LossyQueueTest

* flake8 fix
  • Loading branch information
ansrajpu-git authored and mssonicbld committed Oct 19, 2023
1 parent c27145e commit 103ec5e
Showing 1 changed file with 63 additions and 24 deletions.
87 changes: 63 additions & 24 deletions tests/saitests/py3/sai_qos_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -1199,9 +1199,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 @@ -1226,9 +1233,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 @@ -1254,9 +1268,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 @@ -1281,18 +1302,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 @@ -1727,6 +1748,7 @@ def runTest(self):
ecn = int(self.test_params['ecn'])
sonic_version = self.test_params['sonic_version']
router_mac = self.test_params['router_mac']
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 @@ -2001,10 +2023,18 @@ def runTest(self):
'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]),\
Expand Down Expand Up @@ -3216,8 +3246,16 @@ 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:
if platform_asic and platform_asic == "broadcom-dnx" and cntr == 1:
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:
Expand All @@ -3237,8 +3275,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 103ec5e

Please sign in to comment.