ó ±2öYc@sŒddlZddlTddlZddlmZddlmZddlZddl Z ej j ƒZ dZ dejfd„ƒYZdS(iÿÿÿÿN(t*(tethcard(tcommandstpumbagsdtNetTuningPlugincBsÖeZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z e d„ƒZ e d „ƒZ e d „ƒZ e d „ƒZd „Zd „Zd„Zd„Zd„Zd„Zd„Ze d„ƒZeddeƒd„ƒZedƒed„ƒZedƒd„ƒZedƒd„ƒZd„Zd„Z d„Z!d„Z"d„Z#d „Z$e%d!deƒd"„ƒZ&e%d#deƒd$„ƒZ'e%d%deƒd&„ƒZ(e%d'deƒd(„ƒZ)RS()s, Plugin for ethernet card options tuning. cOs>t|j|ƒj||Žd|_d|_tƒ|_dS(Ngš™™™™™©?i(tsupert __class__t__init__t_load_smallestt _level_stepsRt_cmd(tselftargstkwargs((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyRs  cCs“t|_tƒ|_tƒ|_tjdƒ}xB|jjdƒD].}|j |j ƒrC|jj |j ƒqCqCWt jdt|jƒƒdS(Ns(?!.*/virtual/.*)tnets devices: %s(tTruet_devices_supportedtsett _free_devicest_assigned_devicestretcompilet_hardware_inventoryt get_devicestmatcht device_pathtaddtsys_nametlogtdebugtstr(R tre_not_virtualtdevice((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt _init_devicess   cst‡fd†|ƒS(Ncsˆjjd|ƒS(NR(Rt get_device(tx(R (s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt%s(tmap(R tdevices((R s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_get_device_objects$scCs€t|_|j|jdƒrXt|_|jjd|jƒ|_i|_ i|_ n$t |_d|_d|_ d|_ dS(NtdynamicR( Rt_has_static_tuningt _option_booltoptionst_has_dynamic_tuningt_monitors_repositorytcreateR&t _load_monitort_idlet_statstFalsetNone(R tinstance((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_instance_init's       cCs2|jdk r.|jj|jƒd|_ndS(N(R/R3R-tdelete(R R4((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_instance_cleanup4scCs|j||ƒdS(N(t_instance_update_dynamic(R R4R ((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_instance_apply_dynamic9sc Cs¡td„|jj|ƒƒ}|dkr.dS||jkrP|j||ƒn|j|||ƒ|j||ƒ|j|}|j|}|ddkrô|d|j krô|d|j krôd|d(t _calc_speedRt get_max_speedR1R0(R R4R t max_speed((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyR@‰s,cCsð|j|d|j|d<}||j|d(R1R%tziptfloat(R R4R tnew_loadtold_loadR^t old_max_loadtmax_load((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyRAŽs )cCs`xYddgD]K}|j|||jkrG|j||cd7ii(R1RR0(R R4R t operation((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyRB scCs_||jkr[|j|ddkr[d|j|ds