@@ -552,6 +552,12 @@ def parse_dpg(dpg, hname):
552
552
vdhcpserver_list = vintfdhcpservers .split (';' )
553
553
vlan_attributes ['dhcp_servers' ] = vdhcpserver_list
554
554
555
+ vintf_node = vintf .find (str (QName (ns , "Dhcpv6Relays" )))
556
+ if vintf_node is not None and vintf_node .text is not None :
557
+ vintfdhcpservers = vintf_node .text
558
+ vdhcpserver_list = vintfdhcpservers .split (';' )
559
+ vlan_attributes ['dhcpv6_servers' ] = vdhcpserver_list
560
+
555
561
vlanmac = vintf .find (str (QName (ns , "MacAddress" )))
556
562
if vlanmac is not None and vlanmac .text is not None :
557
563
vlan_attributes ['mac' ] = vlanmac .text
@@ -791,6 +797,7 @@ def parse_cpg(cpg, hname, local_devices=[]):
791
797
def parse_meta (meta , hname ):
792
798
syslog_servers = []
793
799
dhcp_servers = []
800
+ dhcpv6_servers = []
794
801
ntp_servers = []
795
802
tacacs_servers = []
796
803
mgmt_routes = []
@@ -835,7 +842,7 @@ def parse_meta(meta, hname):
835
842
kube_data ["enable" ] = value
836
843
elif name == "KubernetesServerIp" :
837
844
kube_data ["ip" ] = value
838
- return syslog_servers , dhcp_servers , ntp_servers , tacacs_servers , mgmt_routes , erspan_dst , deployment_id , region , cloudtype , resource_type , downstream_subrole , kube_data
845
+ return syslog_servers , dhcp_servers , dhcpv6_servers , ntp_servers , tacacs_servers , mgmt_routes , erspan_dst , deployment_id , region , cloudtype , resource_type , downstream_subrole , kube_data
839
846
840
847
841
848
def parse_linkmeta (meta , hname ):
@@ -1117,6 +1124,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
1117
1124
mux_cable_ports = {}
1118
1125
syslog_servers = []
1119
1126
dhcp_servers = []
1127
+ dhcpv6_servers = []
1120
1128
ntp_servers = []
1121
1129
tacacs_servers = []
1122
1130
mgmt_routes = []
@@ -1167,7 +1175,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
1167
1175
elif child .tag == str (QName (ns , "UngDec" )):
1168
1176
(u_neighbors , u_devices , _ , _ , _ , _ , _ , _ ) = parse_png (child , hostname , None )
1169
1177
elif child .tag == str (QName (ns , "MetadataDeclaration" )):
1170
- (syslog_servers , dhcp_servers , ntp_servers , tacacs_servers , mgmt_routes , erspan_dst , deployment_id , region , cloudtype , resource_type , downstream_subrole , kube_data ) = parse_meta (child , hostname )
1178
+ (syslog_servers , dhcp_servers , dhcpv6_servers , ntp_servers , tacacs_servers , mgmt_routes , erspan_dst , deployment_id , region , cloudtype , resource_type , downstream_subrole , kube_data ) = parse_meta (child , hostname )
1171
1179
elif child .tag == str (QName (ns , "LinkMetadataDeclaration" )):
1172
1180
linkmetas = parse_linkmeta (child , hostname )
1173
1181
elif child .tag == str (QName (ns , "DeviceInfos" )):
@@ -1491,6 +1499,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
1491
1499
results ['DEVICE_NEIGHBOR_METADATA' ] = { key :devices [key ] for key in devices if key in {device ['name' ] for device in neighbors .values ()} }
1492
1500
results ['SYSLOG_SERVER' ] = dict ((item , {}) for item in syslog_servers )
1493
1501
results ['DHCP_SERVER' ] = dict ((item , {}) for item in dhcp_servers )
1502
+ results ['DHCPv6_SERVER' ] = dict ((item , {}) for item in dhcpv6_servers )
1494
1503
results ['NTP_SERVER' ] = dict ((item , {}) for item in ntp_servers )
1495
1504
results ['TACPLUS_SERVER' ] = dict ((item , {'priority' : '1' , 'tcp_port' : '49' }) for item in tacacs_servers )
1496
1505
results ['ACL_TABLE' ] = filter_acl_table_bindings (acls , neighbors , pcs , sub_role )
0 commit comments