+
    "liu5  c                   sL   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt]P                  P                  ]P                  ! ]
4      P                  4       P                  P                  4       4       ^ RIHt ^ RIHtHt R tR tR tR t/ 3R ltR	 tR
 t]R8X  d
   ]! 4        R# R# )i    N)	YnlFamily)
schema_dirspec_dirc                s   V P                  V4      pVP                  R4       \        V4      ^ 8X  d%   \        RV 24       \        P
                  ! ^4       ^ pV\        V4      8  d   W%,          pV^,           \        V4      8  d&   \        RV R24       \        P
                  ! ^4       Wd9  d(   \        RV RV 24       \        P
                  ! ^4       W%^,           ,          pV^,          pWsV&   K  R# )zJ
Verify and convert command-line arguments to the ynl-compatible request.
headerzno attributes, expected: zexpected value for 'Z'zinvalid attribute 'z', expected: N)Zoperation_do_attributesZremovelenprintsysexit)ynlop_nameargsreqZvalid_attrsZiattrZvals   &&&&    2/usr/lib/python3.14/site-packages/pyynl/ethtool.pyargs_to_reqr      s     --g6Kx 
4yA~)+78	A
c$i-wq5CI)$r23HHQK"(n[MJKHHQKQ3i	QD	     c                s   \        V4      ^ 8X  d4   \        V .\        V P                  4       V P                  4       4      O5!  # V Fq  p Vw  r4pT P	                  TR4      pTR8X  d   T'       d   RMRpM2TR8X  g   \        T\        4      '       d   T'       d   RMRpMTf   R	MTp\        T R
T 24       Ks  	  R#    Tw  r4Rp Lx; i)zi
Pretty-print a set of fields from the reply. desc specifies the
fields and the optional type (bool/yn).
ZintNynyesnoboolonoffzn/a: )r   print_fieldZzipkeysgetZ
isinstancer   r   )replyZdescspecZfieldnameZtpvalues   &*     r   r   r   +   s    
 4yA~5C3uzz|UZZ\#BCC	"OE
 		%&:"EE6\Zt44!DuE"]EEb ! 	KEBs   
B==Cc                s   \         P                  ! R4      pVP                  4        UUu. uF*  w  r4V'       g   K  VP                  V4      '       g   K(  VNK,  	  ppp\	        V  RRP                  V4       24       R# u uppi )z7
Print out the speed-like strings from the value dict.
z[0-9]+base[^/]+/.+r    N)reZcompileitemsZmatchr   join)r   r   Zspeed_rekvspeeds   &&    r   print_speedr%   D   sb     zz/0H!KKMFMDAQa8>>!3DaaMEF	TF"SXXe_%
&' Gs   A>A>A>c                sv    RRVP                   //p\        WVP                  V4       V P                  W#4       R# )z3
Prepare request header, parse arguments and doit.
r   dev-nameN)devicer   r
   Zdo)r   r
   r	   r   s   &&& r   doitr(   L   s:    
 	
dkk
C dii-FF7r   c                s   V P                  VR/ /V,          4      pV'       g   / # V F  pVR,          R,          VP                  8X  g   K$  VP                  '       d;   \        P                  ! 4       P                  V4       \
        P                  ! ^ 4       VP                  RR4       Vu # 	  \        RVP                   24       \
        P                  ! ^4       R# )zi
Prepare request header, parse arguments and dumpit (filtering out the
devices we're not interested in).
r   r&   NzNot supported for device )	Zdumpr'   jsonpprintPrettyPrinterr   r   Zpopr   )r   r
   r	   Zextrar   Zmsgs   &&&&  r   dumpitr,   Y   s    
 HHW".67E	x=$3yyy$$&--c2GGHd#J  
%dkk]
34HHQKr   c                s    / pRV 9  d   \        4       # RV R,          9  d   \        4       # V R,          R,           F2  pVR,          R8X  d   K  VR,          pVP                  RR4      pWAV&   K4  	  V# )z7
Convert ynl-formatted bitmask to a dict of bit=value.
bitsbitr    r   F)Zdictr   )r   Zretr.   r   r   s   &    r   bits_to_dictr0   m   sw     CTvDL vF|E""v;"6{'D	 # Jr   c                  s.   \         P                  ! R R7      p V P                  R\         P                  R7       V P                  R\         P                  R7       V P                  R\         P                  R7       V P                  R\         P                  R7       V P                  R\         P                  R7       V P                  RR	\         P                  R7       V P                  R
R\         P                  R7       V P                  RR\         P                  R7       V P                  RR\         P                  R7       V P                  RR\         P                  R7       V P                  RR\         P                  R7       V P                  RR\         P                  R7       V P                  RR\         P                  R7       V P                  RR\         P                  R7       V P                  RR\         P                  R7       V P                  RR\         P                  R7       V P                  RR\         P                  R7       V P                  R R \        R!7       V P                  R"R"\        R#R$7       V P                  4       s\        P                  P                  \        P                  P                  \        P                  ^ ,          4      4      p\        P                  P                  \        4       R%4      p\        P                  P                  \        4       R&4      p\!        W#4      p\        P"                  '       d   \%        R'4       R(# \        P&                  '       d   \)        V\        R)4      # \        P*                  '       d   \)        V\        R*4      # \        P,                  '       d   \)        V\        R+4      # \        P.                  '       d   \%        R'4       R(# \        P0                  '       d   \)        V\        R,4      # \        P2                  '       d   \)        V\        R-4      # \        P4                  '       d/   \7        \9        V\        R.4      R/,          4      p\;        V4       R(# \        P<                  '       d   \9        V\        R04      p\7        VR1,          4      p\7        VR2,          4      pR3V9   d>   VR3,          '       d   R3MR4p	R5V9   d   VR5,          '       d   V	R6,           p	MV	R7,           p	MR8p	\%        R9V	 24       \;        VR4       \?        R:V4       \?        R;V4       R(# \        P@                  '       d    \;        \9        V\        R<4      RRR4       R(# \        PB                  '       d   \;        \9        V\        R>4      4       R(# \        PD                  '       d   \9        V\        R?4      p
\7        V
R@,          4      p\7        V
RA,          4      PG                  4       p\7        V
R5,          4      PG                  4       p\7        V
RB,          4      PG                  4       p\I        V4       FD  pRCpW9   d   RDpREpW9  g   W9   d   RFpREpW9   d   W9   d   RGpMRHp\%        V RIV V V 24       KF  	  R(# \        PJ                  '       de   \9        V\        RJ4      p
\%        RK\        PL                   RL24       \%        RM4       \;        V
RRRR4       \%        RO4       \;        V
RRRR4       R(# \        PN                  '       ds   \9        V\        RJ4      p
\%        RP\        PL                   RL24       \%        RM4       \;        V
RRRR4       \%        RO4       \;        V
RRRR4       \;        V
RRR4       R(# \        PP                  '       d   \%        RQ4       \9        V\        RR4      p\R        PT                  ! 4       PS                  V4       RSRT^RURVRWRXRYRZ////p\9        V\        R[V4      p\R        PT                  ! 4       PS                  V4       R(# \        PV                  '       Ed   R\R/R]//p\9        V\        R^V4      p\%        R_\        PL                   RL24       \%        R`4       \7        VRa,          4       Uu. uF  p\%        RbV 24      NK  	   p\%        RcVPY                  RdRe4       24       RfV9   d:   \%        Rg4       \7        VRf,          4       Uu. uF  p\%        RbV 24      NK  	   pM\%        Rh4       RiV9   d:   \%        Rj4       \7        VRi,          4       Uu. uF  p\%        RbV 24      NK  	   pM\%        Rk4       R]V9   dU   VR],          '       dF   \%        Rl4       VR],          P[                  4        UUu. uF  w  pp\%        RbV RIV 24      NK  	   ppR(# \%        Rm\        PL                   RL24       \9        V\        Rn4      p\7        VRo,          4      pRpV Uu. uF  pVPY                  VRt4      '       g   K  VNK!  	  pp\%        RuRvP                  V4       Rw24       \?        RxV4       \;        VR4       \;        VR4       RpV Uu. uF  pVPY                  VRt4      '       g   K  VNK!  	  ppRvP                  V4      p\]        V4      ^ 8X  d   Rzp\%        R{V 24       R|pVR},          ^ 8  d   VR},          R~8  d   VR},           R2p\%        RV 24       ^ R^R/p V PY                  VR,          R(4      p!V!'       g   RVR,           R2p!\%        RV! 24       RCp"VPY                  R=^ 4      ^ 8w  d   RDp"\%        RV" 24       ^ R^Rp^Rr^Rs^Rq^R^Ry/p\9        V\        R4      p#\%        RVPY                  V#R,          RN4       24       \;        V#R4       ^ R^R/p$\%        RV$PY                  V#R,          R4       24       ^RC^RD/p%V%PY                  V#R,          R(4      p&V&'       d   V&R,           p&MV%PY                  V#R,          R4      p&\%        RV& 24       \9        V\        R4      p'\7        V'PY                  R. 4      4      PG                  4       p(\%        RRvP                  V(4       24       \9        V\        R4      p)^ R^R/p*V*PY                  V)R,          R4      p+\%        RV+ 24       R(# u upi u upi u upi u uppi u upi u upi )zethtool wannabe)Zdescriptionz--json)Zactionz--show-priv-flagsz--set-priv-flagsz
--show-eeez	--set-eeez-az--show-pausez-Az--set-pausez-cz--show-coalescez-Cz--set-coalescez-gz--show-ringz-Gz
--set-ringz-kz--show-featuresz-Kz--set-featuresz-lz--show-channelsz-Lz--set-channelsz-Tz--show-time-stampingz-Sz--statisticsr'   )metavartyper
   Z*)r1   r2   Znargszethtool.yamlzgenetlink-legacy.yamlznot implementedNzeee-setz	pause-setzcoalesce-setzchannels-setz	rings-setzprivflags-getflagszeee-getz
modes-oursz
modes-peerZenabledZdisabledactivez	 - activez - inactiveznot supportedzEEE status: zAdvertised EEE link modesz&Link partner advertised EEE link modesz	pause-getautonegzcoalesce-getzfeatures-getZhwZwantedZnochanger   r   r/   z [fixed]z [requested on]z [requested off]r   zchannels-getzChannel parameters for Z:zPre-set maximums:OtherzCurrent hardware settings:zRing parameters for zNIC statistics:z
strset-getZgroupsZsizer-   r.   r   zeth-macr   Tz	stats-getr   Zstatsz
tsinfo-getzTime stamping parameters for zCapabilities:ZtimestampingZ	zPTP Hardware Clock: z	phc-indexZnoneztx-typesz"Hardware Transmit Timestamp Modes:z'Hardware Transmit Timestamp Modes: nonez
rx-filterszHardware Receive Filter Modes:z#Hardware Receive Filter Modes: nonezStatistics:zSettings for zlinkmodes-getoursAUIBNCMIIFIBREFzSupported ports: [ r   z ]zSupported link modesNonezNot reportedzSupported FEC modes: zUnknown!r$   l    zMb/szSpeed: ZHalfZFullduplexz
Unknown! (Z)zDuplex: zAuto-negotiation: zTwisted PairzDirectly Attached Copperzlinkinfo-getzPort: ZportZInternalZExternalzTransceiver: transceiverZUnknownztp-mdix-ctrlz	 (forced)ztp-mdixzUnknown (auto)zMDI-X: z	debug-getmsgmaskzCurrent message level: zlinkstate-getr   r   ZlinkZunknownzLink detected: )ztx-lpi-timerzTx LPI)r5   ZAutonegotiater   )rxRXr   )txTXr   )zrx-maxrA   )ztx-maxrC   )z	other-maxr6   )zcombined-maxCombined)zrx-countrA   )ztx-countrC   )zother-countr6   )zcombined-countrD   )zrx-mini-maxRX Mini)zrx-jumbo-maxRX Jumbo)r@   rA   )zrx-minirE   )zrx-jumborF   )rB   rC   )z
rx-buf-lenz
RX Buf Len)zcqe-sizezCQE Size)ztx-pushzTX Pushr   )ZTPr8   r9   r:   r;   Z	Backplane)ZPausezSupported pause frame user   )ZAutonegzSupports auto-negotiationr   )r<   ZPSZBASERZLLRS)ZphyaddrZPHYAD)/argparseZArgumentParserZadd_argumentZBooleanOptionalActionZstrZ
parse_argsr
   ospathZdirnameZabspathr   Zargvr!   r   r   r    Zset_priv_flagsr   Zset_eeer(   Z	set_pauseZset_coalesceZset_featuresZset_channelsZset_ringZshow_priv_flagsr0   r,   r   Zshow_eeer%   Z
show_pauseZshow_coalesceZshow_featuresr   ZsortedZshow_channelsr'   Z	show_ringZ
statisticsr*   r+   Zshow_time_stampingr   r    r   ),ZparserZscript_abs_dirr   Zschemar   r3   Zeeer7   ZpeerZstatusr   Z	availableZ	requestedr4   Znever_changedZfr   Zfixedr   ZstrsetZrspZtsinfor#   r"   Z	linkmodesZsupported_portsZpZportsZsupported_fecZfecZfec_strr$   Zduplex_modesr=   r5   Zlinkinfor>   Z	mdix_ctrlZmdixZdebugr?   Z	linkstateZdetected_statesZdetecteds,                                               r   mainrJ   ~   sj   $$1BCF
)G)GH
+H4R4RS
*83Q3QR
X-K-KL
H,J,JK
nX5S5ST
mH4R4RS
/8V8VW
.x7U7UV
mH4R4RS
l83Q3QR
/8V8VW
.x7U7UV
/8V8VW
.x7U7UV
4X=[=[\
nX5S5ST (=
SDDWW__RWW__SXXa[%ABN77<<
N3DWW\\*,(?@F
D
!C |||Cy))~~~C{++C~.. C~..}}}C{++VC?HIE}}}S$	*C-.C-."%i..YjF33x==+--/$FVH%&C34/6<dCF3k24$$	& 	F3n56sD.1 t-	 x1668	eHo.335$U:%67<<>	"AE{E!Q%7"C~;+C,CQCr%u-.! #$ 	sD.1'}A67!#E"(		* 	*,E$*		, 	~~~sD.1$T[[M34!#E&(		 	*,E"$		 	E($*	,
 	! T<0%%f- A Iw6	
  S$S1%%c*
W
 T<5-dkk]!<=o".vn/E"FG"FQA3x"FG$VZZV%D$EFG67&26*3E&FG&FURs8_&FG;<6!23&26,3G&HI&HURs8_&HI78f- .4Wo.C.C.EF.EdaURs"QC=!.EF	M$++a
()sD/2I	&)*DHO(?ADHHQ,>aaE?	0
34&-BCDE4M$
;}!E(:AA}C
;hhsmG
3x1} 	!'
+,EA)G"4z"AW%&d+	GE7
 vvL i148Fi12!4	HVH
G}}Y"a'	wi
() ~uuwu)&E c40H	F599Xf-w78
9:./ zzK 
M+//(=*A9MN
OP utI ==.148Dk!}}Xi02BC	GD6
3k*E599Y3499;G	#CHHW$5#6
78sD/2ItuO
 ""9V#4i@H	OH:
&'Q 	H H J G @ <s0   2s8s=t:t"ttt0tZ__main__)rG   r)   Zpathlibr*   r   r   rH   rI   ZappendZPathZ__file__ZresolveZparentZas_posixZlibr    Zclir   r   r   r   r%   r(   r,   r0   rJ   Z__name__) r   r   <module>rK      s        
 	 	 X&..077@@B C  $6"2( (* ("}(~	 zF r   