VULN_CHECK_I913V6 GiFdgZddlZddlddlZej j ZGddZdZ ie _ y)ethcardN)*cleZdZddgddgddgddgdd gd d Zd Zd ZdZdZdZdZ dZ dZ dZ dZ y)Nettool rii?) di i'autoFc ||_|jtj|d|jd|j d|j d|j tj|d|jd|jtj|d|jd|jy)Nz: speed z, full duplex z , autoneg z, link z: supports: autoneg z, modes z: advertises: autoneg ) _interfaceupdatelogdebugspeed full_duplexautoneglinksupported_autonegsupported_modesadvertised_autonegadvertised_modes)self interfaces 8/usr/lib/python3.12/site-packages/tuned/utils/nettool.py__init__zNettool.__init__s$/++-))9djjZ^ZjZjlplxlxz~{D{D EF))It?U?UW[WkWk lm))iAXAXZ^ZoZo pqctd|_d|_d|_d|_g|_d|_g|_d|_y)NrF)rrrrrrrrrs r! _clean_statuszNettool._clean_status"s?$*$$,$)$ $$!$r#cVd}|D]!}||j|d|drdndz }#|S)Nrr)_advertise_values)rmodesmodems r!_calculate_modezNettool._calculate_mode.s> $ a4 ! !!A$ 'ad ;;4  +r#c|j|k(ry|jsydtdd|jd|rdndgd k(S) NTFrethtool-sronoff close_fds)rrcallr)renables r!_set_autonegotiationzNettool._set_autonegotiation5sD \\V     dItT__iUZ[gkl llr#c j|jdsydtdd|jdd|zgdk(S) NTFrr.r/ advertisez0x%03xr2)r6r4r)rvalues r!_set_advertisezNettool._set_advertise>s: " "4 (  dItT__k8eCST`de eer#cTd}|jD]}|d|kDs |d}|dkDr|Sy)Nrr)r)rmaxr*s r! get_max_speedzNettool.get_max_speedDs; #""d 1gm47S# 1W : r#c|js |jsy|j|jdr|j yy)NFrT) _disabledrr:r(rr%s r! set_max_speedzNettool.set_max_speedNs> ^^411  //78;;=  r#c|js |jsyd}|jD]8}|dk(r ||ks||j|dz }||j|dz }:||j|jz}t j d|j||fz|j|r|jyy)NFrrrz)%s: set_speed(%d) - effective_mode 0x%03xT) r?rr(r,rrrrr:r)rrr*ameffective_modes r! set_speedzNettool.set_speedYs ^^411  $  " "bFlHEkD " "2 &q ))DD " "2 &q ))D # $..t/C/CDD.)) 74??ESa:b bc (;;=  r#c|jrytd|jgttdd}tddg|jtdd}|j d}|j d}|d k7rnt jd |jzt j|jd |jd d |jd|_y|jtjd}tjd}d}|jd D]}|jdrI|dd} | dk(rd}n:| dk(rd}n2| dk(rd}n*| dk(rd}n"| dk(rd}n| dk(rd}n| dk(rd }n | d!k(rd"}nd}~ ^|dk(r) |j|j!d|_d}|dk(r |d$k(|_d}|dk(r|d%k(xs|d&k(|_d}|dk(r |d%k(|_d}|dk(rh |jD]O} |j| j!dd'\} } |j*j-t/| | d$k(fQ~ ~ ~ 6|dk(r|d)k(|_d}I|d k(rm |d*k7re|jD]O} |j| j!dd'\} } |j2j-t/| | d$k(fQ~ ~ ~ |d"k(s|d)k(|_d}y#d#|_YUxYw#|j*j-d(YxYw#|j2j-d(Y$xYw)+Nr.T)stdoutstderrr3universal_newlinessedzs/^\s*//;s/:\s*/:\n/g)stdinrFrHr3rrz*%s: some errors were reported by 'ethtool'z:  z\nz(\d+)z(\d+)baseT/(Half|Full)wait:SpeedrDuplexduplexzAuto-negotiationrz Link detectedrzSupported link modesrzSupports auto-negotiationrzAdvertised link modesrzAdvertised auto-negotiationrrFullyesr0r)rTYesz Not reported)r?PopenrPIPErF communicaterwarningrreplacer&recompilesplitendswithmatchgrouprrrrrappendintrrr) r p_ethtoolp_filteroutputerrorsre_speedre_modestatelinesectionr+sds r!rzNettool.updatensj ^^ Y0 )E34   4(    !! $&  "1 %& r\;;;dooMN99&..u*E FG4>  ZZ !( JJ0 1' %ll4 d mmC3BiG'75 H he & &  O #VU * *4EE / /9L + +5GU 1 1;O5% ..&,,Q/TZ E v~D E EM1TT\DL E  DI E ""/jjl}}Q%%a*fq! !!CFAK#8: 1Q $$!U]D E ##0 zz|! a &&q+v1 ##c!fa6k%:< Aa %%"emD E!&TZ,/   .0 !!,/s&%L A%LA*L< LL9<MN)__name__ __module__ __qualname__r(r?r"r&r,r6r:r=r@rDrr#r!rr sm   %  f v-  r "mf  *`r#rc|tjvrt|tj|<tj|S)N)rlistr)r s r!rrs0W\\!#I.',,y Yr#) __all__ tuned.logstuned subprocessr[logsgetrrrrsrqr#r!rzs@ +  jjnnEEN  r#