Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 @@ -1408,9 +1408,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 @@ -1433,9 +1440,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 @@ -1461,9 +1475,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 @@ -1488,15 +1509,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 @@ -1880,6 +1904,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 @@ -2172,8 +2197,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 @@ -3288,8 +3323,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 @@ -3306,8 +3350,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