Skip to content

Commit

Permalink
addressed review comments.
Browse files Browse the repository at this point in the history
  • Loading branch information
mohan-selvaraj committed Nov 3, 2021
1 parent a073d93 commit 37b41f0
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 52 deletions.
76 changes: 32 additions & 44 deletions config/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -632,7 +632,7 @@ def _clear_cbf():
for cbf_table in CBF_TABLE_NAMES:
config_db.delete_table(cbf_table)


#API to validate the interface passed for storm-control configuration
def storm_control_interface_validate(port_name):
if get_interface_naming_mode() == "alias":
port_name = interface_alias_to_name(None, port_name)
Expand All @@ -650,35 +650,29 @@ def storm_control_interface_validate(port_name):

return True

def storm_control_bps_validate(bps):
# if bps not in range(0,100000000001):
# click.echo("bps value must be in range 0-100000000000")
# return False
return True

#API to configure the PORT_STORM_CONTROL table
def storm_control_set_entry(port_name, kbps, storm_type):

if storm_control_interface_validate(port_name) is False:
return False

if storm_control_bps_validate(kbps) is False:
return False

#Validate kbps value
config_db = ConfigDBConnector()
config_db.connect()
key = port_name + '|' + storm_type
entry = config_db.get_entry('PORT_STORM_CONTROL',key)
entry = config_db.get_entry('PORT_STORM_CONTROL', key)

if len(entry) == 0:
config_db.set_entry('PORT_STORM_CONTROL', key, {'kbps':kbps})
else:
kbps_value = int(entry.get('kbps',0))
click.echo("Existing value of bps %d"%(kbps_value))
click.echo("Existing value of kbps %d" %(kbps_value))
if kbps_value != kbps:
config_db.mod_entry('PORT_STORM_CONTROL',key,{'kbps':kbps})
config_db.mod_entry('PORT_STORM_CONTROL', key, {'kbps':kbps})

return True

#API to remove an entry from PORT_STORM_CONTROL table
def storm_control_delete_entry(port_name, storm_type):

if storm_control_interface_validate(port_name) is False:
Expand All @@ -687,14 +681,14 @@ def storm_control_delete_entry(port_name, storm_type):
config_db = ConfigDBConnector()
config_db.connect()
key = port_name + '|' + storm_type
entry = config_db.get_entry('PORT_STORM_CONTROL',key)
entry = config_db.get_entry('PORT_STORM_CONTROL', key)

if len(entry) == 0:
click.echo("%s storm-control not enabled on interface %s"%(storm_type, port_name))
click.echo("%s storm-control not enabled on interface %s" %(storm_type, port_name))
return False
else:
config_db.set_entry('PORT_STORM_CONTROL',key,None)
click.echo("deleted %s storm-control from interface %s"%(storm_type, port_name))
config_db.set_entry('PORT_STORM_CONTROL', key, None)
click.echo("deleted %s storm-control from interface %s" %(storm_type, port_name))

return True

Expand Down Expand Up @@ -5402,22 +5396,20 @@ def broadcast():
pass

@broadcast.command('add')
@click.argument('port_name',metavar='<port_name>', required=True)
@click.argument('kbps',metavar='<kbps_value>', required=True, type=click.IntRange(0,100000000))
@click.argument('port_name', metavar='<port_name>', required=True)
@click.argument('kbps', metavar='<kbps_value>', required=True, type=click.IntRange(0,100000000))
@click.pass_context
def add_broadcast_storm(ctx,port_name,kbps):
print"add broadcast storm-control"
def add_broadcast_storm(ctx, port_name, kbps):
click.echo("add broadcast storm-control")

if storm_control_set_entry(port_name, kbps, 'broadcast') is False:
ctx.fail("Unable to add broadcast storm-control")

@broadcast.command('del')
@click.argument('port_name',metavar='<port_name>', required=True)
#@click.argument('bps',metavar='<bps_value>', required=True, type=int)
@click.argument('port_name', metavar='<port_name>', required=True)
@click.pass_context
#def del_broadcast_storm(ctx,port_name,bps):
def del_broadcast_storm(ctx,port_name):
print"del broadcast storm-control"
def del_broadcast_storm(ctx, port_name):
click.echo("del broadcast storm-control")

if storm_control_delete_entry(port_name, 'broadcast') is False:
ctx.fail("Unable to delete broadcast storm-control")
Expand All @@ -5428,22 +5420,20 @@ def unknown_unicast():
pass

@unknown_unicast.command('add')
@click.argument('port_name',metavar='<port_name>', required=True)
@click.argument('kbps',metavar='<kbps_value>', required=True, type=click.IntRange(0,100000000))
@click.argument('port_name', metavar='<port_name>', required=True)
@click.argument('kbps', metavar='<kbps_value>', required=True, type=click.IntRange(0,100000000))
@click.pass_context
def add_unknown_unicast_storm(ctx,port_name,kbps):
print"add unknown-unicast storm-control"
def add_unknown_unicast_storm(ctx, port_name, kbps):
click.echo("add unknown-unicast storm-control")

if storm_control_set_entry(port_name, kbps, 'unknown-unicast') is False:
ctx.fail("Unable to add unknown-unicast storm-control")

@unknown_unicast.command('del')
@click.argument('port_name',metavar='<port_name>', required=True)
#@click.argument('bps',metavar='<bps_value>', required=True, type=int)
@click.argument('port_name', metavar='<port_name>', required=True)
@click.pass_context
#def del_unknown_unicast_storm(ctx,port_name,bps):
def del_unknown_unicast_storm(ctx,port_name):
print"del unknown-unicast storm-control"
def del_unknown_unicast_storm(ctx, port_name):
click.echo("del unknown-unicast storm-control")

if storm_control_delete_entry(port_name, 'unknown-unicast') is False:
ctx.fail("Unable to delete unknown-unicast storm-control")
Expand All @@ -5454,22 +5444,20 @@ def unknown_multicast():
pass

@unknown_multicast.command('add')
@click.argument('port_name',metavar='<port_name>', required=True)
@click.argument('kbps',metavar='<kbps_value>', required=True, type=click.IntRange(0,100000000))
@click.argument('port_name', metavar='<port_name>', required=True)
@click.argument('kbps', metavar='<kbps_value>', required=True, type=click.IntRange(0,100000000))
@click.pass_context
def add_unknown_multicast_storm(ctx,port_name,kbps):
print"add unknown-multicast storm-control"
def add_unknown_multicast_storm(ctx, port_name, kbps):
click.echo("add unknown-multicast storm-control")

if storm_control_set_entry(port_name, kbps, 'unknown-multicast') is False:
ctx.fail("Unable to add unknown-multicast storm-control")

@unknown_multicast.command('del')
@click.argument('port_name',metavar='<port_name>', required=True)
#@click.argument('bps',metavar='<bps_value>', required=True, type=int)
@click.argument('port_name', metavar='<port_name>', required=True)
@click.pass_context
#def del_unknown_multicast_storm(ctx,port_name,bps):
def del_unknown_multicast_storm(ctx,port_name):
print"del unknown-multicast storm-control"
def del_unknown_multicast_storm(ctx, port_name):
click.echo("del unknown-multicast storm-control")

if storm_control_delete_entry(port_name, 'unknown-multicast') is False:
ctx.fail("Unable to delete unknown-multicast storm-control")
Expand Down
14 changes: 6 additions & 8 deletions show/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -311,9 +311,10 @@ def is_mgmt_vrf_enabled(ctx):
def storm_control():
""" show storm-control """
pass

@storm_control.command('all')
def storm_control_all():
""" Show storm-control """
""" Show storm-control for all interfaces"""

header = ['Interface Name', 'Storm Type', 'Rate (kbps)']
body = []
Expand All @@ -335,19 +336,16 @@ def storm_control_all():
#interface_name, storm_type = storm_key.split(':')
data = config_db.get_entry('PORT_STORM_CONTROL', storm_key)

if not data:
return

kbps = data['kbps']

body.append([interface_name, storm_type, kbps])
if data:
kbps = data['kbps']
body.append([interface_name, storm_type, kbps])

click.echo(tabulate(body, header, tablefmt="grid"))

@storm_control.command('interface')
@click.argument('interfacename', required=True)
def storm_control_interface(interfacename):
""" Show storm-control """
""" Show storm-control for an interface"""

storm_type_list = ['broadcast','unknown-unicast','unknown-multicast']

Expand Down

0 comments on commit 37b41f0

Please sign in to comment.