1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-06-21 00:19:42 +02:00

ethtool - convert units

This commit is contained in:
Kelly Brazil
2024-03-08 16:39:23 -08:00
parent 5ac36befe2
commit 83fa32f615
5 changed files with 131 additions and 14 deletions

View File

@ -161,6 +161,7 @@ Examples:
"br_margin_min": "0%" "br_margin_min": "0%"
} }
""" """
import re
from typing import List, Dict from typing import List, Dict
from jc.jc_types import JSONDictType from jc.jc_types import JSONDictType
import jc.utils import jc.utils
@ -202,6 +203,39 @@ def _process(proc_data: JSONDictType) -> JSONDictType:
if key in proc_data: if key in proc_data:
proc_data[key] = jc.utils.convert_to_bool(proc_data[key]) proc_data[key] = jc.utils.convert_to_bool(proc_data[key])
# find and convert units
# "0.0468 mW / -13.30 dBm" or "-40.00 degrees C / -40.00 degrees F"
degrees_re = re.compile(r'(?P<deg_c>.*?) degrees C \/ (?P<deg_f>.*?) degrees F')
power_re = re.compile(r'(?P<pow_mw>.*?) mW \/ (?P<pow_dbm>.*?) dBm')
for key, val in proc_data.copy().items():
if isinstance(val, str):
degrees_match = re.match(degrees_re, val)
if degrees_match:
degrees_dict = degrees_match.groupdict()
proc_data[key + '_celsius'] = float(degrees_dict['deg_c'])
proc_data[key + '_farenheit'] = float(degrees_dict['deg_f'])
del proc_data[key]
continue
power_match = re.match(power_re, val)
if power_match:
power_dict = power_match.groupdict()
proc_data[key + '_mw'] = float(power_dict['pow_mw'])
proc_data[key + '_dbm'] = float(power_dict['pow_dbm'])
del proc_data[key]
continue
if val.endswith(' V'):
proc_data[key + '_v'] = jc.utils.convert_to_float(val)
del proc_data[key]
continue
if val.endswith(' mA'):
proc_data[key + '_ma'] = jc.utils.convert_to_float(val)
del proc_data[key]
continue
return proc_data return proc_data
@ -304,18 +338,21 @@ def _parse_default(data: str) -> JSONDictType:
val = val.strip() val = val.strip()
raw_output[key] = val raw_output[key] = val
if supported_ports: list_vals = [
raw_output['supported_ports'] = supported_ports (supported_ports, 'supported_ports'),
if supported_link_modes: (supported_link_modes, 'supported_link_modes'),
raw_output['supported_link_modes'] = supported_link_modes (supported_fec_modes, 'supported_fec_modes'),
if supported_fec_modes: (advertised_link_modes, 'advertised_link_modes'),
raw_output['supported_fec_modes'] = supported_fec_modes (advertised_fec_modes, 'advertised_fec_modes'),
if advertised_link_modes: (current_message_level, 'current_message_level')
raw_output['advertised_link_modes'] = advertised_link_modes ]
if advertised_fec_modes:
raw_output['advertised_fec_modes'] = advertised_fec_modes for obj_list, obj_key in list_vals:
if current_message_level: if raw_output.get(obj_key, '').lower() == 'not reported':
raw_output['current_message_level'] = current_message_level raw_output[obj_key] = []
else:
if obj_list:
raw_output[obj_key] = obj_list
return raw_output return raw_output

View File

@ -1 +1 @@
{"name":"enp0s3","supported_pause_frame_use":"No","supports_auto_negotiation":true,"supported_fec_modes":"Not reported","advertised_pause_frame_use":false,"advertised_auto_negotiation":true,"advertised_fec_modes":"Not reported","speed":"1000Mb/s","duplex":"Full","port":"Twisted Pair","phyad":"0","transceiver":"internal","auto_negotiation":false,"mdi_x":"off (auto)","supports_wake_on":"umbg","wake_on":"d","link_detected":true,"supported_ports":["TP"],"supported_link_modes":["10baseT/Half","10baseT/Full","100baseT/Half","100baseT/Full","1000baseT/Full"],"advertised_link_modes":["10baseT/Half","10baseT/Full","100baseT/Half","100baseT/Full","1000baseT/Full"],"current_message_level":["0x00000007 (7)","drv probe link"],"speed_bps":1000000000} {"name":"enp0s3","supported_pause_frame_use":"No","supports_auto_negotiation":true,"supported_fec_modes":[],"advertised_pause_frame_use":false,"advertised_auto_negotiation":true,"advertised_fec_modes":[],"speed":"1000Mb/s","duplex":"Full","port":"Twisted Pair","phyad":"0","transceiver":"internal","auto_negotiation":false,"mdi_x":"off (auto)","supports_wake_on":"umbg","wake_on":"d","link_detected":true,"supported_ports":["TP"],"supported_link_modes":["10baseT/Half","10baseT/Full","100baseT/Half","100baseT/Full","1000baseT/Full"],"advertised_link_modes":["10baseT/Half","10baseT/Full","100baseT/Half","100baseT/Full","1000baseT/Full"],"current_message_level":["0x00000007 (7)","drv probe link"],"speed_bps":1000000000}

View File

@ -1 +1 @@
{"name":"enp1s0","supported_pause_frame_use":"Symmetric Receive-only","supports_auto_negotiation":true,"supported_fec_modes":"Not reported","advertised_pause_frame_use":false,"advertised_auto_negotiation":true,"advertised_fec_modes":"Not reported","speed":"40000Mb/s","duplex":"Full","auto_negotiation":false,"port":"FIBRE","phyad":"0","transceiver":"internal","supports_wake_on":"d","wake_on":"d","link_detected":true,"supported_ports":["FIBRE"],"supported_link_modes":["10000baseKX4/Full","40000baseCR4/Full","40000baseSR4/Full","56000baseCR4/Full","56000baseSR4/Full","1000baseX/Full","10000baseCR/Full","10000baseSR/Full"],"advertised_link_modes":["10000baseKX4/Full","40000baseCR4/Full","40000baseSR4/Full","1000baseX/Full","10000baseCR/Full","10000baseSR/Full"],"current_message_level":["0x00000014 (20)","link ifdown"],"speed_bps":40000000000} {"name":"enp1s0","supported_pause_frame_use":"Symmetric Receive-only","supports_auto_negotiation":true,"supported_fec_modes":[],"advertised_pause_frame_use":false,"advertised_auto_negotiation":true,"advertised_fec_modes":[],"speed":"40000Mb/s","duplex":"Full","auto_negotiation":false,"port":"FIBRE","phyad":"0","transceiver":"internal","supports_wake_on":"d","wake_on":"d","link_detected":true,"supported_ports":["FIBRE"],"supported_link_modes":["10000baseKX4/Full","40000baseCR4/Full","40000baseSR4/Full","56000baseCR4/Full","56000baseSR4/Full","1000baseX/Full","10000baseCR/Full","10000baseSR/Full"],"advertised_link_modes":["10000baseKX4/Full","40000baseCR4/Full","40000baseSR4/Full","1000baseX/Full","10000baseCR/Full","10000baseSR/Full"],"current_message_level":["0x00000014 (20)","link ifdown"],"speed_bps":40000000000}

View File

@ -0,0 +1 @@
{"identifier":"0x03 (SFP)","extended_identifier":"0x04 (GBIC/SFP defined by 2-wire interface ID)","connector":"0x07 (LC)","transceiver_codes":"0x20 0x00 0x00 0x00 0x44 0x40 0x00 0x00 0x03","transceiver_type":["10G Ethernet: 10G Base-LR","FC: short distance (S)","FC: Shortwave laser, linear Rx (SA)","FC: Shortwave laser w/o OFC (SN)","Extended: 100G Base-LR4 or 25GBase-LR"],"encoding":"0x03 (NRZ)","br_nominal":"25750MBd","rate_identifier":"0x00 (unspecified)","length_smf_km":"10km","length_smf":"10000m","length_50um":"0m","length_62_5um":"0m","length_copper":"0m","length_om3":"0m","laser_wavelength":"1310nm","vendor_name":"EDGE","vendor_oui":"00:1b:21","vendor_pn":"SFP-10/25GLR-31","vendor_rev":"1A","option_values":"0x08 0x1a","option":["RX_LOS implemented","TX_FAULT implemented","TX_DISABLE implemented","Retimer or CDR implemented"],"br_margin_max":"0%","br_margin_min":"0%","vendor_sn":"EO11111111111","date_code":"230619","optical_diagnostics_support":"Yes","alarm_warning_flags_implemented":"Yes","laser_bias_current_high_alarm":"Off","laser_bias_current_low_alarm":"Off","laser_bias_current_high_warning":"Off","laser_bias_current_low_warning":"Off","laser_output_power_high_alarm":"Off","laser_output_power_low_alarm":"Off","laser_output_power_high_warning":"Off","laser_output_power_low_warning":"Off","module_temperature_high_alarm":"Off","module_temperature_low_alarm":"Off","module_temperature_high_warning":"Off","module_temperature_low_warning":"Off","module_voltage_high_alarm":"Off","module_voltage_low_alarm":"Off","module_voltage_high_warning":"Off","module_voltage_low_warning":"Off","laser_rx_power_high_alarm":"Off","laser_rx_power_low_alarm":"On","laser_rx_power_high_warning":"Off","laser_rx_power_low_warning":"On","laser_bias_current_ma":51.494,"laser_output_power_mw":0.8183,"laser_output_power_dbm":-0.87,"receiver_signal_average_optical_power_mw":0.0001,"receiver_signal_average_optical_power_dbm":-40.0,"module_temperature_celsius":34.99,"module_temperature_farenheit":94.99,"module_voltage_v":3.2995,"laser_bias_current_high_alarm_threshold_ma":110.0,"laser_bias_current_low_alarm_threshold_ma":1.0,"laser_bias_current_high_warning_threshold_ma":100.0,"laser_bias_current_low_warning_threshold_ma":1.0,"laser_output_power_high_alarm_threshold_mw":3.1623,"laser_output_power_high_alarm_threshold_dbm":5.0,"laser_output_power_low_alarm_threshold_mw":0.1,"laser_output_power_low_alarm_threshold_dbm":-10.0,"laser_output_power_high_warning_threshold_mw":1.5849,"laser_output_power_high_warning_threshold_dbm":2.0,"laser_output_power_low_warning_threshold_mw":0.1995,"laser_output_power_low_warning_threshold_dbm":-7.0,"module_temperature_high_alarm_threshold_celsius":95.0,"module_temperature_high_alarm_threshold_farenheit":203.0,"module_temperature_low_alarm_threshold_celsius":-50.0,"module_temperature_low_alarm_threshold_farenheit":-58.0,"module_temperature_high_warning_threshold_celsius":85.0,"module_temperature_high_warning_threshold_farenheit":185.0,"module_temperature_low_warning_threshold_celsius":-40.0,"module_temperature_low_warning_threshold_farenheit":-40.0,"module_voltage_high_alarm_threshold_v":3.63,"module_voltage_low_alarm_threshold_v":2.97,"module_voltage_high_warning_threshold_v":3.465,"module_voltage_low_warning_threshold_v":3.135,"laser_rx_power_high_alarm_threshold_mw":3.1623,"laser_rx_power_high_alarm_threshold_dbm":5.0,"laser_rx_power_low_alarm_threshold_mw":0.0234,"laser_rx_power_low_alarm_threshold_dbm":-16.31,"laser_rx_power_high_warning_threshold_mw":1.5849,"laser_rx_power_high_warning_threshold_dbm":2.0,"laser_rx_power_low_warning_threshold_mw":0.0468,"laser_rx_power_low_warning_threshold_dbm":-13.3}

View File

@ -0,0 +1,79 @@
Identifier : 0x03 (SFP)
Extended identifier : 0x04 (GBIC/SFP defined by 2-wire interface ID)
Connector : 0x07 (LC)
Transceiver codes : 0x20 0x00 0x00 0x00 0x44 0x40 0x00 0x00 0x03
Transceiver type : 10G Ethernet: 10G Base-LR
Transceiver type : FC: short distance (S)
Transceiver type : FC: Shortwave laser, linear Rx (SA)
Transceiver type : FC: Shortwave laser w/o OFC (SN)
Transceiver type : Extended: 100G Base-LR4 or 25GBase-LR
Encoding : 0x03 (NRZ)
BR, Nominal : 25750MBd
Rate identifier : 0x00 (unspecified)
Length (SMF,km) : 10km
Length (SMF) : 10000m
Length (50um) : 0m
Length (62.5um) : 0m
Length (Copper) : 0m
Length (OM3) : 0m
Laser wavelength : 1310nm
Vendor name : EDGE
Vendor OUI : 00:1b:21
Vendor PN : SFP-10/25GLR-31
Vendor rev : 1A
Option values : 0x08 0x1a
Option : RX_LOS implemented
Option : TX_FAULT implemented
Option : TX_DISABLE implemented
Option : Retimer or CDR implemented
BR margin, max : 0%
BR margin, min : 0%
Vendor SN : EO11111111111
Date code : 230619
Optical diagnostics support : Yes
Laser bias current : 51.494 mA
Laser output power : 0.8183 mW / -0.87 dBm
Receiver signal average optical power : 0.0001 mW / -40.00 dBm
Module temperature : 34.99 degrees C / 94.99 degrees F
Module voltage : 3.2995 V
Alarm/warning flags implemented : Yes
Laser bias current high alarm : Off
Laser bias current low alarm : Off
Laser bias current high warning : Off
Laser bias current low warning : Off
Laser output power high alarm : Off
Laser output power low alarm : Off
Laser output power high warning : Off
Laser output power low warning : Off
Module temperature high alarm : Off
Module temperature low alarm : Off
Module temperature high warning : Off
Module temperature low warning : Off
Module voltage high alarm : Off
Module voltage low alarm : Off
Module voltage high warning : Off
Module voltage low warning : Off
Laser rx power high alarm : Off
Laser rx power low alarm : On
Laser rx power high warning : Off
Laser rx power low warning : On
Laser bias current high alarm threshold : 110.000 mA
Laser bias current low alarm threshold : 1.000 mA
Laser bias current high warning threshold : 100.000 mA
Laser bias current low warning threshold : 1.000 mA
Laser output power high alarm threshold : 3.1623 mW / 5.00 dBm
Laser output power low alarm threshold : 0.1000 mW / -10.00 dBm
Laser output power high warning threshold : 1.5849 mW / 2.00 dBm
Laser output power low warning threshold : 0.1995 mW / -7.00 dBm
Module temperature high alarm threshold : 95.00 degrees C / 203.00 degrees F
Module temperature low alarm threshold : -50.00 degrees C / -58.00 degrees F
Module temperature high warning threshold : 85.00 degrees C / 185.00 degrees F
Module temperature low warning threshold : -40.00 degrees C / -40.00 degrees F
Module voltage high alarm threshold : 3.6300 V
Module voltage low alarm threshold : 2.9700 V
Module voltage high warning threshold : 3.4650 V
Module voltage low warning threshold : 3.1350 V
Laser rx power high alarm threshold : 3.1623 mW / 5.00 dBm
Laser rx power low alarm threshold : 0.0234 mW / -16.31 dBm
Laser rx power high warning threshold : 1.5849 mW / 2.00 dBm
Laser rx power low warning threshold : 0.0468 mW / -13.30 dBm