a h@sNddlZddlZddlZddlmZddlmZeZGdddej j Z dS)N)ethcard)commandsc@sTeZdZeddZeddZeddZeddZed d Zed d Z d S) NetMonitorcCs\g}tdD]&\}}}|dr|ds||7}qt||_|D]}gd|j|<qDdS)Nz /sys/devicesz/netz /virtual/net)0rrr)oswalkendswithsetZ_available_devices_load)clsZ availablerootdirsfilesdevr>/usr/lib/python3.9/site-packages/tuned/monitors/monitor_net.py_init_available_devices s  z"NetMonitor._init_available_devicescCstd|dS)Ng333333#A)int)r Zspeedrrr _calcspeedszNetMonitor._calcspeedcCs ||_dSN)map_fce)r rrrr _set_dev_map szNetMonitor._set_dev_mapcCs(z ||WSty"|YS0dSr)rAttributeError)r rrrr_dev_map$s  zNetMonitor._dev_mapcCsLgd}t|D]6\}}tjd||d|dd|j||<qdS)N)Zrx_bytesZ rx_packetsZtx_bytesZ tx_packetsz/sys/class/net/z /statistics/r)Zerr_ret) enumeratecmdZ read_filerstripr )r rrifrrr _updateStat*szNetMonitor._updateStatcCs|jD]}||qdSr)Z_updating_devicesr )r Zdevicerrrupdate0s zNetMonitor.updateN) __name__ __module__ __qualname__ classmethodrrrrr r!rrrrr s     r) Ztuned.monitorsZtunedrreZtuned.utils.nettoolrZtuned.utils.commandsrrZmonitorsZMonitorrrrrrs