@@ -224,6 +224,12 @@ def parse_dpg(dpg, hname):
224
224
vdhcpserver_list = vintfdhcpservers .split (';' )
225
225
vlan_attributes ['dhcp_servers' ] = vdhcpserver_list
226
226
227
+ vintf_node = vintf .find (str (QName (ns , "Dhcpv6Relays" )))
228
+ if vintf_node is not None and vintf_node .text is not None :
229
+ vintfdhcpservers = vintf_node .text
230
+ vdhcpserver_list = vintfdhcpservers .split (';' )
231
+ vlan_attributes ['dhcpv6_servers' ] = vdhcpserver_list
232
+
227
233
sonic_vlan_name = "Vlan%s" % vlanid
228
234
if sonic_vlan_name != vintfname :
229
235
vlan_attributes ['alias' ] = vintfname
@@ -393,6 +399,7 @@ def parse_cpg(cpg, hname):
393
399
def parse_meta (meta , hname ):
394
400
syslog_servers = []
395
401
dhcp_servers = []
402
+ dhcpv6_servers = []
396
403
ntp_servers = []
397
404
tacacs_servers = []
398
405
mgmt_routes = []
@@ -420,7 +427,7 @@ def parse_meta(meta, hname):
420
427
erspan_dst = value_group
421
428
elif name == "DeploymentId" :
422
429
deployment_id = value
423
- return syslog_servers , dhcp_servers , ntp_servers , tacacs_servers , mgmt_routes , erspan_dst , deployment_id
430
+ return syslog_servers , dhcp_servers , dhcpv6_servers , ntp_servers , tacacs_servers , mgmt_routes , erspan_dst , deployment_id
424
431
425
432
426
433
def parse_linkmeta (meta , hname ):
@@ -538,6 +545,7 @@ def parse_xml(filename, platform=None, port_config_file=None):
538
545
console_ports = {}
539
546
syslog_servers = []
540
547
dhcp_servers = []
548
+ dhcpv6_servers = []
541
549
ntp_servers = []
542
550
tacacs_servers = []
543
551
mgmt_routes = []
@@ -569,7 +577,7 @@ def parse_xml(filename, platform=None, port_config_file=None):
569
577
elif child .tag == str (QName (ns , "UngDec" )):
570
578
(u_neighbors , u_devices , _ , _ , _ , _ , _ , _ ) = parse_png (child , hostname )
571
579
elif child .tag == str (QName (ns , "MetadataDeclaration" )):
572
- (syslog_servers , dhcp_servers , ntp_servers , tacacs_servers , mgmt_routes , erspan_dst , deployment_id ) = parse_meta (child , hostname )
580
+ (syslog_servers , dhcp_servers , dhcpv6_servers , ntp_servers , tacacs_servers , mgmt_routes , erspan_dst , deployment_id ) = parse_meta (child , hostname )
573
581
elif child .tag == str (QName (ns , "LinkMetadataDeclaration" )):
574
582
linkmetas = parse_linkmeta (child , hostname )
575
583
elif child .tag == str (QName (ns , "DeviceInfos" )):
@@ -735,6 +743,7 @@ def parse_xml(filename, platform=None, port_config_file=None):
735
743
results ['DEVICE_NEIGHBOR_METADATA' ] = { key :devices [key ] for key in devices if key .lower () != hostname .lower () }
736
744
results ['SYSLOG_SERVER' ] = dict ((item , {}) for item in syslog_servers )
737
745
results ['DHCP_SERVER' ] = dict ((item , {}) for item in dhcp_servers )
746
+ results ['DHCPv6_SERVER' ] = dict ((item , {}) for item in dhcpv6_servers )
738
747
results ['NTP_SERVER' ] = dict ((item , {}) for item in ntp_servers )
739
748
results ['TACPLUS_SERVER' ] = dict ((item , {'priority' : '1' , 'tcp_port' : '49' }) for item in tacacs_servers )
740
749
0 commit comments