@@ -332,35 +332,40 @@ def _add_port_configurations(
332332 # Override with NetBox data if available
333333 # - Always use explicitly set NetBox speed (overrides port config)
334334 # - Use derived speed (from port type) only if port config has no speed
335+ # Note: NetBox stores speed in kbps, SONiC expects Mbps (divide by 1000)
335336 if port_name in netbox_interfaces :
336337 netbox_speed = netbox_interfaces [port_name ]["speed" ]
337338 speed_explicit = netbox_interfaces [port_name ].get ("speed_explicit" , False )
338339 if netbox_speed :
340+ # Convert NetBox speed (kbps) to SONiC speed (Mbps)
341+ sonic_speed = str (int (netbox_speed ) // 1000 )
339342 if speed_explicit :
340343 # Explicitly set speed in NetBox always takes precedence
341- if str ( netbox_speed ) != str (port_speed ):
344+ if sonic_speed != str (port_speed ):
342345 logger .info (
343- f"Using explicit NetBox speed { netbox_speed } for port { port_name } "
346+ f"Using explicit NetBox speed { netbox_speed } kbps -> { sonic_speed } Mbps for port { port_name } "
344347 f"(overriding port config speed: { port_speed } )"
345348 )
346- port_speed = str ( netbox_speed )
349+ port_speed = sonic_speed
347350 elif not port_speed or port_speed == "0" :
348351 # Derived speed (from port type) only used if port config has no speed
349352 logger .info (
350- f"Using derived NetBox speed { netbox_speed } for port { port_name } "
353+ f"Using derived NetBox speed { netbox_speed } kbps -> { sonic_speed } Mbps for port { port_name } "
351354 f"(hardware config had: { port_speed } )"
352355 )
353- port_speed = str ( netbox_speed )
356+ port_speed = sonic_speed
354357
355358 if port_name in breakout_info ["breakout_ports" ]:
356359 # Get the master port to determine original speed and lanes
357360 master_port = breakout_info ["breakout_ports" ][port_name ]["master" ]
358361
359362 # Override with individual breakout port speed from NetBox if available
360363 if port_name in netbox_interfaces and netbox_interfaces [port_name ]["speed" ]:
361- port_speed = str (netbox_interfaces [port_name ]["speed" ])
364+ # Convert NetBox speed (kbps) to SONiC speed (Mbps)
365+ netbox_speed = netbox_interfaces [port_name ]["speed" ]
366+ port_speed = str (int (netbox_speed ) // 1000 )
362367 logger .debug (
363- f"Using NetBox speed { port_speed } for breakout port { port_name } "
368+ f"Using NetBox speed { netbox_speed } kbps -> { port_speed } Mbps for breakout port { port_name } "
364369 )
365370 elif master_port in breakout_info ["breakout_cfgs" ]:
366371 # Fallback to extracting speed from breakout mode
0 commit comments