@@ -319,6 +319,31 @@ def generate_default_route_entries(filename):
319319 with open (filename , 'w' ) as fp :
320320 json .dump (default_routes_output , fp , indent = 2 , separators = (',' , ': ' ))
321321
322+ def generate_media_config (filename ):
323+ db = SonicV2Connector (host = '127.0.0.1' )
324+ db .connect (db .APPL_DB , False ) # Make one attempt only
325+ media_config = []
326+ port_serdes_keys = ["preemphasis" , "idriver" , "ipredriver" , "pre1" , "pre2" , "pre3" , "main" , "post1" , "post2" , "post3" ,"attn" ]
327+ keys = db .keys (db .APPL_DB , 'PORT_TABLE:*' )
328+ keys = [] if keys is None else keys
329+ for key in keys :
330+ entry = db .get_all (db .APPL_DB , key )
331+ media_attributes = {}
332+ for attr in entry .keys ():
333+ if attr in port_serdes_keys :
334+ media_attributes [attr ] = entry [attr ]
335+ obj = {
336+ '%s' % (key ) : media_attributes ,
337+ 'OP' : 'SET'
338+ }
339+ media_config .append (obj )
340+
341+ db .close (db .APPL_DB )
342+
343+ with open (filename , 'w' ) as fp :
344+ json .dump (media_config , fp , indent = 2 , separators = (',' , ': ' ))
345+
346+ return media_config
322347
323348def main ():
324349 parser = argparse .ArgumentParser ()
@@ -331,6 +356,7 @@ def main():
331356 all_available_macs , map_mac_ip_per_vlan = generate_fdb_entries (root_dir + '/fdb.json' )
332357 neighbor_entries = generate_neighbor_entries (root_dir + '/arp.json' , all_available_macs )
333358 generate_default_route_entries (root_dir + '/default_routes.json' )
359+ generate_media_config (root_dir + '/media_config.json' )
334360 send_garp_nd (neighbor_entries , map_mac_ip_per_vlan )
335361 return 0
336362
0 commit comments