def del_vxlan_map_range(db, vxlan_name, vlan_start, vlan_end, vni_start): """Del Range of vlan-vni mappings""" ctx = click.get_current_context() if clicommon.is_vlanid_in_range(vlan_start) is False: ctx.fail(" Invalid Vlan Id , Valid Range : 1 to 4094 ") if clicommon.is_vlanid_in_range(vlan_end) is False: ctx.fail(" Invalid Vlan Id , Valid Range : 1 to 4094 ") if (vlan_start > vlan_end): ctx.fail("vlan_end should be greater or equal to vlan_start") if clicommon.vni_id_is_valid(vni_start) is False: ctx.fail( "Invalid VNI {}. Valid range [1 to 16777215].".format(vni_start)) if clicommon.vni_id_is_valid(vni_start + vlan_end - vlan_start) is False: ctx.fail("Invalid VNI End {}. Valid range [1 to 16777215].".format( vni_start)) if len(db.cfgdb.get_entry('VXLAN_TUNNEL', vxlan_name)) == 0: ctx.fail("VTEP {} not configured".format(vxlan_name)) vlan_end = vlan_end + 1 for vid in range(vlan_start, vlan_end): vlan_name = 'Vlan{}'.format(vid) vnid = vni_start + vid - vlan_start vni_name = '{}'.format(vnid) if clicommon.is_vni_vrf_mapped(db, vni_name) is False: print("Skipping Vlan {} VNI {} mapped delete. ".format( vlan_name, vni_name)) continue mapname = vxlan_name + '|' + 'map_' + vni_name + '_' + vlan_name db.cfgdb.set_entry('VXLAN_TUNNEL_MAP', mapname, None)
def del_vxlan_map(db, vxlan_name, vlan, vni): """Del VLAN-VNI map entry""" ctx = click.get_current_context() if not vlan.isdigit(): ctx.fail("Invalid vlan {}. Only valid vlan is accepted".format(vni)) if clicommon.is_vlanid_in_range(int(vlan)) is False: ctx.fail(" Invalid Vlan Id , Valid Range : 1 to 4094 ") if not vni.isdigit(): ctx.fail("Invalid VNI {}. Only valid VNI is accepted".format(vni)) if clicommon.vni_id_is_valid(int(vni)) is False: ctx.fail("Invalid VNI {}. Valid range [1 to 16777215].".format(vni)) if len(db.cfgdb.get_entry('VXLAN_TUNNEL', vxlan_name)) == 0: ctx.fail("VTEP {} not configured".format(vxlan_name)) found = 0 vrf_table = db.cfgdb.get_table('VRF') vrf_keys = vrf_table.keys() if vrf_keys is not None: for vrf_key in vrf_keys: if ('vni' in vrf_table[vrf_key] and vrf_table[vrf_key]['vni'] == vni): found = 1 break if (found == 1): ctx.fail("VNI mapped to vrf {}, Please remove VRF VNI mapping".format( vrf_key)) mapname = vxlan_name + '|' + 'map_' + vni + '_' + vlan db.cfgdb.set_entry('VXLAN_TUNNEL_MAP', mapname, None) mapname = vxlan_name + '|' + 'map_' + vni + '_Vlan' + vlan db.cfgdb.set_entry('VXLAN_TUNNEL_MAP', mapname, None)
def add_vxlan_map(db, vxlan_name, vlan, vni): """Add VLAN-VNI map entry""" ctx = click.get_current_context() if not vlan.isdigit(): ctx.fail("Invalid vlan {}. Only valid vlan is accepted".format(vni)) if clicommon.is_vlanid_in_range(int(vlan)) is False: ctx.fail(" Invalid Vlan Id , Valid Range : 1 to 4094 ") if not vni.isdigit(): ctx.fail("Invalid VNI {}. Only valid VNI is accepted".format(vni)) if clicommon.vni_id_is_valid(int(vni)) is False: ctx.fail("Invalid VNI {}. Valid range [1 to 16777215].".format(vni)) vlan_name = "Vlan" + vlan if len(db.cfgdb.get_entry('VXLAN_TUNNEL', vxlan_name)) == 0: ctx.fail("VTEP {} not configured".format(vxlan_name)) if len(db.cfgdb.get_entry('VLAN', vlan_name)) == 0: ctx.fail("{} not configured".format(vlan_name)) vxlan_table = db.cfgdb.get_table('VXLAN_TUNNEL_MAP') vxlan_keys = vxlan_table.keys() if vxlan_keys is not None: for key in vxlan_keys: if (vxlan_table[key]['vlan'] == vlan_name): ctx.fail(" Vlan Id already mapped ") if (vxlan_table[key]['vni'] == vni): ctx.fail(" VNI Id already mapped ") fvs = {'vni': vni, 'vlan': vlan_name} mapname = vxlan_name + '|' + 'map_' + vni + '_' + vlan_name db.cfgdb.set_entry('VXLAN_TUNNEL_MAP', mapname, fvs)
def add_vxlan_map_range(db, vxlan_name, vlan_start, vlan_end, vni_start): """Add Range of vlan-vni mappings""" ctx = click.get_current_context() if clicommon.is_vlanid_in_range(vlan_start) is False: ctx.fail(" Invalid Vlan Id , Valid Range : 1 to 4094 ") if clicommon.is_vlanid_in_range(vlan_end) is False: ctx.fail(" Invalid Vlan Id , Valid Range : 1 to 4094 ") if (vlan_start > vlan_end): ctx.fail("vlan_end should be greater or equal to vlan_start") if clicommon.vni_id_is_valid(vni_start) is False: ctx.fail( "Invalid VNI {}. Valid range [1 to 16777215].".format(vni_start)) if clicommon.vni_id_is_valid(vni_start + vlan_end - vlan_start) is False: ctx.fail("Invalid VNI End {}. Valid range [1 to 16777215].".format( vni_start)) if len(db.cfgdb.get_entry('VXLAN_TUNNEL', vxlan_name)) == 0: ctx.fail("VTEP {} not configured".format(vxlan_name)) vlan_end = vlan_end + 1 vxlan_table = db.cfgdb.get_table('VXLAN_TUNNEL_MAP') vxlan_keys = vxlan_table.keys() for vid in range(vlan_start, vlan_end): vlan_name = 'Vlan{}'.format(vid) vnid = vni_start + vid - vlan_start vni_name = '{}'.format(vnid) match_found = 'no' if len(db.cfgdb.get_entry('VLAN', vlan_name)) == 0: click.echo("{} not configured".format(vlan_name)) continue if vxlan_keys is not None: for key in vxlan_keys: if (vxlan_table[key]['vlan'] == vlan_name): print(vlan_name + " already mapped") match_found = 'yes' break if (vxlan_table[key]['vni'] == vni_name): print("VNI:" + vni_name + " already mapped ") match_found = 'yes' break if (match_found == 'yes'): continue fvs = {'vni': vni_name, 'vlan': vlan_name} mapname = vxlan_name + '|' + 'map_' + vni_name + '_' + vlan_name db.cfgdb.set_entry('VXLAN_TUNNEL_MAP', mapname, fvs)