MINI MINI MANI MO

Path : /usr/lib/python2.7/site-packages/tuned/plugins/
File Upload :
Current File : //usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyc

ó
©=[c@sddlmZddlTddlZddlmZddlmZddl	Z	ddl
Z
ejjƒZ
dZdejfd	„ƒYZdS(
i(tbase(t*iÿÿÿÿN(tethcard(tcommandstpumbagsdtNetTuningPlugincBsÖeZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z	e
d„ƒZe
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;tt|ƒj||Žd|_d|_tƒ|_dS(Ngš™™™™™©?i(tsuperRt__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/.*)tnetsdevices: %s(tTruet_devices_supportedtsett
_free_devicest_assigned_devicestretcompilet_hardware_inventorytget_devicestmatchtdevice_pathtaddtsys_nametlogtdebugtstr(Rtre_not_virtualtdevice((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt
_init_devicess	cCs&g|D]}|jjd|ƒ^qS(NR(Rt
get_device(Rtdevicestx((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(Rtinstance((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_instance_init's						cCs2|jdk	r.|jj|jƒd|_ndS(N(R-R1R+tdelete(RR2((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_instance_cleanup4scCs|j||ƒdS(N(t_instance_update_dynamic(RR2R ((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_instance_apply_dynamic9scCs®g|jj|ƒD]}t|ƒ^q}|dkr;dS||jkr]|j||ƒn|j|||ƒ|j||ƒ|j|}|j|}|ddkr|d|j	kr|d|j	krd|d<t
jd|ƒt|ƒj
dƒn^|ddkr_|ddks1|ddkr_d|d<t
jd|ƒt|ƒjƒnt
jd	||d|dfƒt
jd
||d|d|dfƒdS(Ntlevelitreadtwriteis%s: setting 100Mbpsids%s: setting max speeds %s load: read %0.2f, write %0.2fs$%s idle: read %d, write %d, level %d(R-tget_device_loadtintR1R/t_init_stats_and_idlet
_update_statst_update_idleR.R	RtinfoRt	set_speedt
set_max_speedR(RR2R tvaluetloadtstatstidle((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyR6<s&+

6
0
"cCsžidd6dd6dd6dd6dd6dd6dd6dd6dd	6dd
6dd6dd6dd
6dd6dd6dd6dd6dd6dd6dd6dd6dd6S(Nsadaptive-rxsadaptive-txsrx-usecss	rx-framessrx-usecs-irqs
rx-frames-irqstx-usecss	tx-framesstx-usecs-irqs
tx-frames-irqsstats-block-usecsspkt-rate-lowsrx-usecs-lows
rx-frames-lowstx-usecs-lows
tx-frames-lows
pkt-rate-highs
rx-usecs-highsrx-frames-highs
tx-usecs-highstx-frames-highssample-interval(R1(tcls((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_get_config_options_coalesceUs.cCsidd6dd6dd6S(Ntautonegtrxttx(R1(RG((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_get_config_options_pauseps
cCs idd6dd6dd6dd6S(NRJsrx-minisrx-jumboRK(R1(RG((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_get_config_options_ringvs
cCs5itd6dd6dd6dd6dd6dd6dd6S(NR&twake_on_lantnf_conntrack_hashsizetfeaturestcoalescetpausetring(RR1(RG((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_get_config_options}scCsm|jt|ƒjƒƒ}iddgd6d|dgd6|j|<idd6dd6dd	6|j|<dS(
NiitnewiitmaxR8R9R:(t_calc_speedRt
get_max_speedR/R.(RR2R t	max_speed((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyR=‰s,c
Cs|j|d|j|d<}||j|d<gt||ƒD]}|d|d^qA}||j|d<|j|d}gt||ƒD]}t|ƒ^q‘}	|	|j|d<t|dƒt|	dƒ|j|d<t|dƒt|	dƒ|j|d	<dS(
NRUtoldiitdiffRVR9iR:(R/tzipRVtfloat(
RR2R tnew_loadtold_loadtnew_oldR[told_max_loadtpairtmax_load((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyR>Žs .()cCs`xYddgD]K}|j|||jkrG|j||cd7<q
d|j||<q
WdS(NR9R:ii(R/RR.(RR2R t	operation((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyR? scCs_||jkr[|j|ddkr[d|j|d<tjd|ƒt|ƒjƒndS(NR8is%s: setting max speed(R.RR@RRB(RR2R ((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_instance_unapply_dynamic¨s&cCstd|dƒS(Ng333333ã?iig333333ƒ@g333333#A(R<(Rtspeed((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyRW®scCs¤ttjdd|ƒƒjƒ}t|ƒ}|ddkr^tjd|t|ƒfƒdS|dkrqtƒStt	t
|ddd…|ddd…ƒƒƒS(Ns (:\s*)|(\s+)|(\s*;\s*)|(\s*,\s*)t iisinvalid %s parameter: '%s'i(RRtsubtsplittlenRterrorR1tdicttlistR\(RRCtcontexttvtlv((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_parse_config_parameters·s!cCs|jjidd6dd6dd6dd6d	d
6dd6d
d6|ƒ}g|jdƒD]=}tt|ƒƒdkrVtjdt|ƒƒrV|^qV}t|ƒdkr¯dStgg|dD]}tjdt|ƒƒ^qÀD]}t|ƒdkrâ|^qâƒS(Nsadaptive-rx:sAdaptive RX:s

adaptive-tx:s\s+TX:srx-frames-low:s
rx-frame-low:srx-frames-high:srx-frame-high:stx-frames-low:s
tx-frame-low:stx-frames-high:stx-frame-high:slro:slarge-receive-offload:s
is
\[fixed\]$iis:\s*(	R
tmultiple_re_replaceRiRjRRtsearchR1Rl(RRCRotvltu((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_parse_device_parametersÄs	
ScCsdS(Ns,/sys/module/nf_conntrack/parameters/hashsize((R((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_nf_conntrack_hashsize_pathØsRNt
per_devicecCs‚|dkrdStjddt|ƒƒ}tjdtd|ƒsVtjdƒdS|s~|jj	dd|d|gƒn|S(	Nt0tds^[s]+$sIncorrect 'wake_on_lan' value.tethtools-stwol(
R1RRhRRt
WOL_VALUESRtwarnR
texecute(RRCR tsim((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_set_wake_on_lanÜs
"cCspd}yRtjdtd|jjd|gƒdtjƒ}|rW|jdƒ}nWntk
rknX|S(Ns.*Wake-on:\s*([s]+).*R{i(	R1RRR}R
RtStgrouptIOError(RR tignore_missingRCtm((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_get_wake_on_lanës6
ROcCsV|dkrdSt|ƒ}|dkrN|sJ|jj|jƒ|ƒn|SdSdS(Ni(R1R<R
t
write_to_fileRw(RRCR€thashsize((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_set_nf_conntrack_hashsizeöscCs8|jj|jƒƒ}t|ƒdkr4t|ƒSdS(Ni(R
t	read_fileRwRjR<R1(RRC((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_get_nf_conntrack_hashsizes
cCs—|dkrtSt|jƒƒ}i|jd6|jd6|jd6}t||ƒjƒƒ}|j|ƒs“tjd|t	||ƒfƒt
StS(NRPRQRRRSsunknown %s parameter(s): %s(RRtkeysRHRLRMtissubsetRRkRR0(RRnRztparamstsupported_gettert	supported((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_check_parameterss


!cCsÃ|jjidd6dd6dd6|ƒ}|jdƒd}g|D]+}|d	krDtjd
|ƒrD|^qD}tgg|D]}tjd|ƒ^q‚D]}t|ƒdkrž|^qžƒS(
NRIt
AutonegotiateRJtRXRKtTXs
its	\[fixed\]s:\s*i(R
RrRiRRsRlRj(RtstlR$((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_parse_pause_parameterss	
8cCsÞtjd|dtjƒ}|d}|jjidd6dd6dd	6d
d6|ƒ}|jdƒ}g|D]}|d
krl|^ql}gg|D]}tjd|ƒ^q”D]}t|ƒdkr°|^q°}t|ƒS(Ns^Current hardware settings:$tflagsiRJR”srx-minisRX Minisrx-jumbosRX JumboRKR•s
R–s:\s*i(RRit	MULTILINER
RrRjRl(RR—taR˜R$((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_parse_ring_parameters#s
	
%Jc
CsÚidd6dd6dd6dd6}||}|jjd	||gƒ\}}|d
kskt|ƒd
krodSi|jd6|jd6|jd6|jd6}||}||ƒ}	|dkrÖ|j||	ƒrÖdS|	S(Ns-cRQs-kRPs-aRRs-gRSR{i(R
RRjR1RvR™RR’(
RRnR tcontext2opttopttretRCtcontext2parsertparserRz((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_get_device_parameters0s"
!




cCsß|dkst|ƒdkr"dS|j||ƒ}|dksS|j||ƒrWdS|sÛtjd|t|ƒfƒidd6dd6dd6d	d
6}||}|jjd||g|jj	|ƒdd
gƒn|S(Nissetting %s: %ss-CRQs-KRPs-ARRs-GRSR{t	no_errorsiP(
R1RjRqR’RRRR
Rt	dict2list(RRnRCR R€RzRžRŸ((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_set_device_parameters@s"
5cCse|jd|d|ƒ}|r0|j||ƒ}|j||||ƒ}tgt|jƒƒD]}	|	d|kr^|	^q^ƒ}
t|ƒt|
ƒkrÝtjd|t	t|j
ƒƒƒt	t|jƒƒƒfƒtS|r|jj
|ƒ|jj
|
ƒkS|jj|dj|jj
|
ƒƒƒn1|sa|jj|ƒ}|j|||tƒndS(Ntcommand_nametdevice_nameis@unable to save previous %s, wanted to save: '%s', but read: '%s'Rg(t_storage_keyR£R¦RlRmtitemsRjRRkRRR0R
R¥t_storageRtjointgetR1(RRntstartRCR tverifytstorage_keytcdRztk_vtsdtoriginal_value((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_custom_parametersNs$		;	5"+RPcCs|jd||||ƒS(NRP(Rµ(RR®RCR R¯R…((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt	_featuresdsRQcCs|jd||||ƒS(NRQ(Rµ(RR®RCR R¯R…((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt	_coalescehsRRcCs|jd||||ƒS(NRR(Rµ(RR®RCR R¯R…((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_pauselsRScCs|jd||||ƒS(NRS(Rµ(RR®RCR R¯R…((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt_ringps(*t__name__t
__module__t__doc__RR!R%R3R5R7R6tclassmethodRHRLRMRTR=R>R?ReRWRqRvRwtcommand_setRRtcommand_getR0R‡RŠRŒR’R™RR£R¦Rµtcommand_customR¶R·R¸R¹(((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyR
sF				
										
		

		
	
			(R–Rt
decoratorst
tuned.logsttunedttuned.utils.nettoolRttuned.utils.commandsRtosRtlogsR­RR}tPluginR(((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_net.pyt<module>s


OHA YOOOO