Skip to content

Commit 0665d6f

Browse files
authored
VxLAN Tunnel Counters and Rates implementation (sonic-net#1748)
* Vxlan Tunnel counters implementation
1 parent 80a10dc commit 0665d6f

File tree

7 files changed

+526
-0
lines changed

7 files changed

+526
-0
lines changed

clear/main.py

+6
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,12 @@ def dropcounters():
193193
command = "dropstat -c clear"
194194
run_command(command)
195195

196+
@cli.command()
197+
def tunnelcounters():
198+
"""Clear Tunnel counters"""
199+
command = "tunnelstat -c"
200+
run_command(command)
201+
196202
#
197203
# 'clear watermarks
198204
#

counterpoll/main.py

+36
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,39 @@ def disable():
241241
configdb.mod_entry("FLEX_COUNTER_TABLE", "PG_WATERMARK", fc_info)
242242
configdb.mod_entry("FLEX_COUNTER_TABLE", BUFFER_POOL_WATERMARK, fc_info)
243243

244+
# Tunnel counter commands
245+
@cli.group()
246+
def tunnel():
247+
""" Tunnel counter commands """
248+
249+
@tunnel.command()
250+
@click.argument('poll_interval', type=click.IntRange(100, 30000))
251+
def interval(poll_interval):
252+
""" Set tunnel counter query interval """
253+
configdb = ConfigDBConnector()
254+
configdb.connect()
255+
tunnel_info = {}
256+
tunnel_info['POLL_INTERVAL'] = poll_interval
257+
configdb.mod_entry("FLEX_COUNTER_TABLE", "TUNNEL", tunnel_info)
258+
259+
@tunnel.command()
260+
def enable():
261+
""" Enable tunnel counter query """
262+
configdb = ConfigDBConnector()
263+
configdb.connect()
264+
tunnel_info = {}
265+
tunnel_info['FLEX_COUNTER_STATUS'] = ENABLE
266+
configdb.mod_entry("FLEX_COUNTER_TABLE", "TUNNEL", tunnel_info)
267+
268+
@tunnel.command()
269+
def disable():
270+
""" Disable tunnel counter query """
271+
configdb = ConfigDBConnector()
272+
configdb.connect()
273+
tunnel_info = {}
274+
tunnel_info['FLEX_COUNTER_STATUS'] = DISABLE
275+
configdb.mod_entry("FLEX_COUNTER_TABLE", "TUNNEL", tunnel_info)
276+
244277
@cli.command()
245278
def show():
246279
""" Show the counter configuration """
@@ -254,6 +287,7 @@ def show():
254287
pg_wm_info = configdb.get_entry('FLEX_COUNTER_TABLE', 'PG_WATERMARK')
255288
pg_drop_info = configdb.get_entry('FLEX_COUNTER_TABLE', PG_DROP)
256289
buffer_pool_wm_info = configdb.get_entry('FLEX_COUNTER_TABLE', BUFFER_POOL_WATERMARK)
290+
tunnel_info = configdb.get_entry('FLEX_COUNTER_TABLE', 'TUNNEL')
257291

258292
header = ("Type", "Interval (in ms)", "Status")
259293
data = []
@@ -273,6 +307,8 @@ def show():
273307
data.append(['PG_DROP_STAT', pg_drop_info.get("POLL_INTERVAL", DEFLT_10_SEC), pg_drop_info.get("FLEX_COUNTER_STATUS", DISABLE)])
274308
if buffer_pool_wm_info:
275309
data.append(["BUFFER_POOL_WATERMARK_STAT", buffer_pool_wm_info.get("POLL_INTERVAL", DEFLT_10_SEC), buffer_pool_wm_info.get("FLEX_COUNTER_STATUS", DISABLE)])
310+
if tunnel_info:
311+
data.append(["TUNNEL_STAT", rif_info.get("POLL_INTERVAL", DEFLT_10_SEC), rif_info.get("FLEX_COUNTER_STATUS", DISABLE)])
276312

277313
click.echo(tabulate(data, headers=header, tablefmt="simple", missingval=""))
278314

0 commit comments

Comments
 (0)