+
     GiF  c                   s    R .t ^ RIt^ RI5 ^ RIt]P
                  P                  4       t ! R R4      tR t	/ ]	n
        R# )ethcardN)Z*c                   s   a  ] tR t^	t o ^
^^.^d^^.R^^ .R^ R.R^ R.R^?/tRtR tR	 tR
 tR t	R t
R tR tR tR tRtV tR# )Nettool  i	  i   i'  i   autoFc                s   Wn         V P                  4        \        P                  V: R V P                  : RV P
                  : RV P                  : RV P                  : 2	4       \        P                  V: RV P                  : RV P                  : 24       \        P                  V: RV P                  : RV P                  : 24       R# )z: speed z, full duplex z
, autoneg z, link z: supports: autoneg z, modes z: advertises: autoneg N)
_interfaceupdatelogdebugspeedfull_duplexautoneglinksupported_autonegsupported_modesadvertised_autonegadvertised_modes)self	interface   &&8/usr/lib/python3.14/site-packages/tuned/utils/nettool.py__init__ZNettool.__init__   s    /++-))9djjZ^ZjZjlplxlxz~  {D  {D  E  F))It?U?UW[WkWklm))iAXAXZ^ZoZopq    c                sv    ^ V n         RV n        RV n        RV n        . V n        RV n        . V n        RV n        R# )    FN)r   r	   r
   r   r   r   r   r   r      &r   _clean_statusZNettool._clean_status"   s?    $*$$,$)$ $$!$r   c                s    ^ pV F;  pY P                   V^ ,          ,          V^,          '       d   ^M^ ,          ,          pK=  	  V# )r   )_advertise_values)r   Zmodesmodems   &&  r   _calculate_modeZNettool._calculate_mode.   s>    	
$a!!!A$'add;;4  
+r   c                s    V P                   V8X  d   R # V P                  '       g   R# ^ \        RRV P                  RV'       d   RMR.R R7      8H  # )TFethtool-sr
   onZoff	close_fds)r
   r   callr   )r   Zenabler   r   _set_autonegotiationZNettool._set_autonegotiation5   sG    	\\V
				
	
dItT__iUZ[gkl	llr   c           	     s    V P                  R 4      '       g   R# ^ \        RRV P                  RRV,          .R R7      8H  # )TFr   r   Z	advertisez0x%03xr!   )r$   r#   r   )r   Zvaluer   r   _set_advertiseZNettool._set_advertise>   s=    		"	"4	(	(
	
dItT__k8eCST`de	eer   c                st    ^ pV P                    F  pV^ ,          V8  g   K  V^ ,          pK  	  V^ 8  d   V# R# )r   r   )r   )r   Zmaxr   s   &  r   get_max_speedZNettool.get_max_speedD   s;    	#""d
1gm47S # 	1W
:
r   c                s    V P                   '       g   V P                  '       g   R # V P                  V P                  R,          4      '       d   V P	                  4        R# R # )Fr   T)	_disabledr   r%   r   r   r   r   r   set_max_speedZNettool.set_max_speedN   sF    	^^^4111
 
//788;;=

r   c                s   V P                   '       g   V P                  '       g   R # ^ pV P                   FT  pVR8X  d   K  W18:  g   K  W P                  V,          ^ ,          ,          pW P                  V,          ^,          ,          pKV  	  W P                  V P                  4      ,          p\
        P                  RV P                  W3,          4       V P                  V4      '       d   V P                  4        R# R # )Fr   z)%s: set_speed(%d) - effective_mode 0x%03xT)
r'   r   r   r   r   r   r   r   r%   r   )r   r   r   ZamZeffective_modes   &&   r   	set_speedZNettool.set_speedY   s    	^^^4111
	
$""bFlHk""2&q))D""2&q))D	 # ..t/C/CDD.))74??E:bbc	((;;=

r   c                st   V P                   '       d   R # \        RV P                  .\        \        RRR7      p\        RR.VP                  \        RRR7      pVP                  4       ^ ,          pVP                  4       ^,          pVR8w  dv   \        P                  RV P                  ,          4       \        P                  V P                  : R	VP                  R
R4      : 24       V P                  4        RV n         R # V P                  4        \        P                  ! R4      p\        P                  ! R4      pRpVP                  R
4       EF
  pVP                  R4      '       d[   VR R& p	V	R8X  d   RpMHV	R8X  d   RpM>V	R8X  d   RpM4V	R8X  d   RpM*V	R8X  d   RpM V	R8X  d   RpMV	R8X  d   RpMV	R8X  d   RpMRp?	Ku  VR8X  d+    VP                  V4      P!                  ^4      V n        RpK  VR8X  d   VR!8H  V n        RpK  VR8X  d   VR"8H  ;'       g    VR#8H  V n        RpK  VR8X  d   VR"8H  V n        RpK  VR8X  dk    VP                  4        FO  p
VP                  V
4      P!                  ^^4      w  rV P*                  P-                  \/        V4      VR!8H  34       KQ  	  ?
??EKc  VR8X  d   VR$8H  V n        RpEKy  VR8X  du    VR%8w  dj   VP                  4        FO  p
VP                  V
4      P!                  ^^4      w  rV P2                  P-                  \/        V4      VR!8H  34       KQ  	  ?
??EK  EK  VR8X  g   EK  VR$8H  V n        RpEK  	  R #    R T n         EL{; i   T P*                  P-                  R'4        EKA  ; i   T P2                  P-                  R'4        EKe  ; i)(Nr   T)stdoutZstderrr"   universal_newlinesZsedzs/^\s*//;s/:\s*/:\n/g)Zstdinr*   r+   r"   Z z*%s: some errors were reported by 'ethtool'z: Z
z\nz(\d+)z(\d+)baseT/(Half|Full)ZwaitZ:ZSpeedr   ZDuplexZduplexzAuto-negotiationr
   zLink detectedr   zSupported link modesr   zSupports auto-negotiationr   zAdvertised link modesr   zAdvertised auto-negotiationr   r   ZFullZyesr    ZYeszNot reportedi)r   T)r'   ZPopenr   ZPIPEr*   Zcommunicater   Zwarningr   Zreplacer   reZcompileZsplitZendswithZmatchZgroupr   r	   r
   r   r   ZappendZintr   r   r   )r   Z	p_ethtoolZp_filterZoutputZerrorsZre_speedZre_modeZstateZlineZsectionr   ZsZds   &            r   r   ZNettool.updaten   sx   	^^^	 Y0) E34


4(
 !!$&  "1%&r\;;;dooMN99&..u*EFG4>	 ZZ!(JJ01'
%ll4 d
mmC3BiG'75	H	he	&	&		O	#VU	*	*4EE	/	/9L	+	+5GU	1	1;O5%..&,,Q/TZ Ev~DEEM11TT\DLEDIE""/jjl}}Q%%a*fq
!!CFAK#8:  
1Q
 	$$!U]DE##0zz|!a &&q+v##c!fa6k%:<  Aa	 	 	%%"emDE !&TZ,/	  ..0	!!,//s&   %M#A&M2A-N#	M/2NN7)
r'   r   r   r   r
   r	   r   r   r   r   N)Z__name__Z
__module__Z__qualname__Z__firstlineno__r   r'   r   r   r   r$   r%   r&   r(   r)   r   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r   	   s      %5%	1fAv-5 r
"mf	*` `r   r   c                 s    V \         P                  9   g   \        V 4      \         P                  V &   \         P                  V ,          # )N)r    listr   )r   r   r   r    r       s0    W\\!#I.',,yYr   )Z__all__Z
tuned.logsZtunedZ
subprocessr,   ZlogsZgetr   r   r    r-   ) r   r   <module>r.      s@   +   	jjnnE EN  r   