Skip to content

Commit 8b6aea1

Browse files
mykolafliat-grozovik
authored andcommitted
[intfstat] add intfstat script to output RIF counters (sonic-net#439)
* [intfstat] 'add show interface counters rif' Signed-off-by: Mykola Faryma <[email protected]> * [rif counters] add unittests Signed-off-by: Mykola Faryma <[email protected]> * [setup] add test dependencies packages(mock, mockredipy) Signed-off-by: Mykola Faryma <[email protected]> * [intfstat] add alias mode support Signed-off-by: Mykola Faryma <[email protected]>
1 parent b44b462 commit 8b6aea1

File tree

14 files changed

+844
-84
lines changed

14 files changed

+844
-84
lines changed

clear/main.py

+9
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,15 @@ def counters():
182182
command = "portstat -c"
183183
run_command(command)
184184

185+
@cli.command()
186+
@click.argument('interface', metavar='<interface_name>', required=False, type=str)
187+
def rifcounters(interface):
188+
"""Clear RIF counters"""
189+
command = "intfstat -c"
190+
if interface is not None:
191+
command = "intfstat -i {} -c".format(interface)
192+
run_command(command)
193+
185194
@cli.command()
186195
def queuecounters():
187196
"""Clear queue counters"""

counterpoll/main.py

+37
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,40 @@ def disable():
7676
port_info['FLEX_COUNTER_STATUS'] = 'disable'
7777
configdb.mod_entry("FLEX_COUNTER_TABLE", "PORT", port_info)
7878

79+
# RIF counter commands
80+
@cli.group()
81+
def rif():
82+
""" RIF counter commands """
83+
84+
@rif.command()
85+
@click.argument('poll_interval')
86+
def interval(poll_interval):
87+
""" Set rif counter query interval """
88+
configdb = swsssdk.ConfigDBConnector()
89+
configdb.connect()
90+
rif_info = {}
91+
if poll_interval is not None:
92+
rif_info['POLL_INTERVAL'] = poll_interval
93+
configdb.mod_entry("FLEX_COUNTER_TABLE", "RIF", rif_info)
94+
95+
@rif.command()
96+
def enable():
97+
""" Enable rif counter query """
98+
configdb = swsssdk.ConfigDBConnector()
99+
configdb.connect()
100+
rif_info = {}
101+
rif_info['FLEX_COUNTER_STATUS'] = 'enable'
102+
configdb.mod_entry("FLEX_COUNTER_TABLE", "RIF", rif_info)
103+
104+
@rif.command()
105+
def disable():
106+
""" Disable rif counter query """
107+
configdb = swsssdk.ConfigDBConnector()
108+
configdb.connect()
109+
rif_info = {}
110+
rif_info['FLEX_COUNTER_STATUS'] = 'disable'
111+
configdb.mod_entry("FLEX_COUNTER_TABLE", "RIF", rif_info)
112+
79113
# Watermark counter commands
80114
@cli.group()
81115
def watermark():
@@ -122,6 +156,7 @@ def show():
122156
configdb.connect()
123157
queue_info = configdb.get_entry('FLEX_COUNTER_TABLE', 'QUEUE')
124158
port_info = configdb.get_entry('FLEX_COUNTER_TABLE', 'PORT')
159+
rif_info = configdb.get_entry('FLEX_COUNTER_TABLE', 'RIF')
125160
queue_wm_info = configdb.get_entry('FLEX_COUNTER_TABLE', 'QUEUE_WATERMARK')
126161
pg_wm_info = configdb.get_entry('FLEX_COUNTER_TABLE', 'PG_WATERMARK')
127162

@@ -131,6 +166,8 @@ def show():
131166
data.append(["QUEUE_STAT", queue_info["POLL_INTERVAL"] if 'POLL_INTERVAL' in queue_info else 'default (10000)', queue_info["FLEX_COUNTER_STATUS"] if 'FLEX_COUNTER_STATUS' in queue_info else 'disable' ])
132167
if port_info:
133168
data.append(["PORT_STAT", port_info["POLL_INTERVAL"] if 'POLL_INTERVAL' in port_info else 'default (1000)', port_info["FLEX_COUNTER_STATUS"] if 'FLEX_COUNTER_STATUS' in port_info else 'disable'])
169+
if rif_info:
170+
data.append(["RIF_STAT", rif_info["POLL_INTERVAL"] if 'POLL_INTERVAL' in rif_info else 'default (1000)', rif_info["FLEX_COUNTER_STATUS"] if 'FLEX_COUNTER_STATUS' in rif_info else 'disable'])
134171
if queue_wm_info:
135172
data.append(["QUEUE_WATERMARK_STAT", queue_wm_info["POLL_INTERVAL"] if 'POLL_INTERVAL' in queue_wm_info else 'default (1000)', queue_wm_info["FLEX_COUNTER_STATUS"] if 'FLEX_COUNTER_STATUS' in queue_wm_info else 'disable' ])
136173
if pg_wm_info:

0 commit comments

Comments
 (0)