@@ -169,9 +169,11 @@ def get_loopback_addr(ip_ver):
169
169
def get_vlan_interfaces ():
170
170
vlan_info = config_db .get_table ('VLAN' )
171
171
vlan_interfaces = []
172
-
172
+ vlan_intfs = config_db .get_table ('VLAN_INTERFACE' )
173
+ # Skip L2 VLANs
173
174
for vlan_name in vlan_info :
174
- vlan_interfaces .append (vlan_name )
175
+ if vlan_name in vlan_intfs :
176
+ vlan_interfaces .append (vlan_name )
175
177
176
178
return vlan_interfaces
177
179
@@ -502,6 +504,14 @@ def reset_mirror_tunnel():
502
504
# Set vxlan tunnel
503
505
#
504
506
507
+ def check_existing_tunnel ():
508
+ vxlan_tunnel = config_db .get_table ('VXLAN_TUNNEL' )
509
+ if len (vxlan_tunnel ):
510
+ global VXLAN_TUNNEL_NAME
511
+ VXLAN_TUNNEL_NAME = list (vxlan_tunnel .keys ())[0 ]
512
+ return True
513
+ return False
514
+
505
515
def add_vxlan_tunnel (dst_ipv4_addr ):
506
516
vxlan_tunnel_info = {
507
517
'src_ip' : get_loopback_addr (4 ),
@@ -517,12 +527,12 @@ def add_vxlan_tunnel_map():
517
527
'vni' : get_vlan_interface_vxlan_id (vlan_intf_name ),
518
528
'vlan' : vlan_intf_name
519
529
}
520
-
521
530
config_db .set_entry ('VXLAN_TUNNEL_MAP' , (VXLAN_TUNNEL_NAME , VXLAN_TUNNEL_MAP_PREFIX + str (index )), vxlan_tunnel_map_info )
522
531
523
532
524
533
def set_vxlan_tunnel (ferret_server_ip ):
525
- add_vxlan_tunnel (ferret_server_ip )
534
+ if not check_existing_tunnel ():
535
+ add_vxlan_tunnel (ferret_server_ip )
526
536
add_vxlan_tunnel_map ()
527
537
log .log_info ('Finish setting vxlan tunnel; Ferret: {}' .format (ferret_server_ip ))
528
538
0 commit comments