HEX
Server: LiteSpeed
System: Linux srv146.niagahoster.com 4.18.0-553.30.1.lve.el8.x86_64 #1 SMP Tue Dec 3 01:21:19 UTC 2024 x86_64
User: kodi1989 (1633)
PHP: 8.1.34
Disabled: symlink,shell_exec,exec,popen,system,dl,passthru,escapeshellarg,escapeshellcmd,show_source,pcntl_exec
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/pyroute2/ethtool/__pycache__/ethtool.cpython-37.pyc
B

��f�=�@sbddlZddlmZddlmZmZddlmZmZm	Z	m
Z
mZmZm
Z
ddlmZmZddlmZddlmZmZed�jZed�jZe�e�Zed	d
�ZGdd�de�ZGd
d�de�Z Gdd�de�Z!Gdd�dedd��Z"Gdd�dedd��Z#Gdd�dedd��Z$Gdd�dedd��Z%Gdd�dedd ��Z&Gd!d"�d"ed"d#��Z'Gd$d%�d%�Z(dS)&�N)�
namedtuple)�c_uint16�c_uint32)�LINK_DUPLEX_NAMES�LINK_PORT_NAMES�LINK_TP_MDI_NAMES�LINK_TRANSCEIVER_NAMES�LinkModeBits_by_index�LMBTypeMode�LMBTypePort)�
WAKE_NAMES�IoctlEthtool)�NetlinkError)�	NlEthtool�ethtool_rings_msg����EthtoolBitsetBit)�index�name�enable�setc@seZdZdS)�UseIoctlN)�__name__�
__module__�__qualname__�rr�I/opt/alt/python37/lib/python3.7/site-packages/pyroute2/ethtool/ethtool.pyrsrc@s$eZdZedd��Zedd��ZdS)�EthtoolCoalescecCsdd�|��D�S)NcSsi|]\}}t|�|�qSr)�int)�.0r�valuerrr�
<dictcomp>#sz.EthtoolCoalesce.from_ioctl.<locals>.<dictcomp>)�items)�ioctl_coalescerrr�
from_ioctl!szEthtoolCoalesce.from_ioctlcCs.x(|��D]\}}|||kr
|||<q
WdS)N)r")r#�coalescerr rrr�to_ioctl%szEthtoolCoalesce.to_ioctlN)rrr�staticmethodr$r&rrrrr src@seZdZdZdd�ZdS)�EthtoolFeature)rrrr�	availablecCs"||_||_||_||_||_dS)N)rrrrr))�selfrrrrr)rrr�__init__/s
zEthtoolFeature.__init__N)rrr�	__slots__r+rrrrr(,sr(c@s$eZdZedd��Zedd��ZdS)�EthtoolFeaturescCs|dd�|D��S)NcSs(i|] \}}}}}t|||||�|�qSr)r()rrrr)rrrrrr!;sz.EthtoolFeatures.from_ioctl.<locals>.<dictcomp>r)�cls�featuresrrrr$8szEthtoolFeatures.from_ioctlcCs:x4|j��D]&}||j}|j|kr&q|j||j<qWdS)N)r/�valuesrr)�ioctl_featuresZeth_features�featurerrrrr&As


zEthtoolFeatures.to_ioctlN)rrr�classmethodr$r'r&rrrrr-7s	r-)r/c@s$eZdZedd��Zedd��ZdS)�EthtoolWakeOnLancCs||d�d�}i}x\|�d�dD]J}|d}|�d�}|�d�}|�d�}t|||d	kr^d	nd
dd�||<q"Wt|dd�S)
NrZETHTOOL_A_WOL_MODES�ETHTOOL_A_BITSET_BITS�attrs��ETHTOOL_A_BITSET_BIT_INDEX�ETHTOOL_A_BITSET_BIT_NAME�ETHTOOL_A_BITSET_BIT_VALUETF)r)�modes�sopass)�get_attrrr4)r.Znl_wolZ	wol_modes�moderrrrrr�from_netlinkKs


"zEthtoolWakeOnLan.from_netlinkcCsNi}x<t��D]0\}}|j|@rt|||j|@dkdd�||<qWt|dd�S)Nr)r)r;r<)rr"�	supportedrZwoloptsr4)r.�wol_modeZdict_wol_modes�	bit_indexrrrrr$Ys
zEthtoolWakeOnLan.from_ioctlN)rrrr3r?r$rrrrr4Jsr4ZEthtoolWolMode)r;r<c@s$eZdZedd��Zedd��ZdS)�EthtoolStringBitc
Cs�|d}t�}xl|�d�dD]Z}|d}|�d�}|�d�}x8|dD],}|d}|�|||�d�|�d�d	��qHWqW|S)
NrZETHTOOL_A_STRSET_STRINGSETSr6r7ZETHTOOL_A_STRINGSET_IDZETHTOOL_A_STRINGSET_STRINGSZETHTOOL_A_STRING_INDEXZETHTOOL_A_STRING_VALUE)rrr)rr=�add)r.Znl_string_setsZethtool_strings_set�iZset_idrrrr?js



zEthtoolStringBit.from_netlinkcs�fdd�t|�D�S)Ncs$h|]\}}�|d|d|��qS)� r)rrE�string)r.rr�	<setcomp>�sz.EthtoolStringBit.from_ioctl.<locals>.<setcomp>)�	enumerate)r.Zstring_setsr)r.rr$�s
zEthtoolStringBit.from_ioctlN)rrrr3r?r$rrrrrCgsrC)rrrcs4eZdZ�fdd�Zedd��Zedd��Z�ZS)�EthtoolLinkInfocsJt�|d�}t�|d�}t�|d�}t�|d�}tt|��||||||�S)N)r�getrr�superrJ�__new__)r.�port�phyaddr�tp_mdix�tp_mdix_ctrl�transceiver)�	__class__rrrM�s
zEthtoolLinkInfo.__new__cCs||j|j|j|j|jd�S)N)rNrOrPrQrR)rNZphy_addressZeth_tp_mdixZeth_tp_mdix_ctrlrR)r.�
link_settingsrrrr$�szEthtoolLinkInfo.from_ioctlcCs8|d}||�d�|�d�|�d�|�d�|�d�d�S)NrZETHTOOL_A_LINKINFO_PORTZETHTOOL_A_LINKINFO_PHYADDRZETHTOOL_A_LINKINFO_TP_MDIXZETHTOOL_A_LINKINFO_TP_MDIX_CTRZETHTOOL_A_LINKINFO_TRANSCEIVER)rNrOrPrQrR)r=)r.�nl_link_moderrrr?�szEthtoolLinkInfo.from_netlink)rrrrMr3r$r?�
__classcell__rr)rSrrJ�s

rJ)rNrOrPrQrRcs4eZdZ�fdd�Zedd��Zedd��Z�ZS)�EthtoolLinkModecsF|dks|tks|tkrd}t�|d�}tt|��|||t|�||�S)Nr)�INT32MINUS_UINT32�INT16MINUS_UINT16rrKrLrWrM�bool)r.�speed�duplex�autoneg�supported_ports�supported_modes)rSrrrM�s
zEthtoolLinkMode.__new__c	Csvt�|�\}}}t�|�}g}g}x:|D]2}|jtkrD|�|j�q(|jtkr(|�|j�q(W||j|j	|j
||d�S)N)r[r\r]r^r_)r
Zget_link_mode_masksZget_link_mode_bits�typer�appendrr
r[r\r])	r.rTZ
map_supportedZmap_advertisingZmap_lp_advertisingZbits_supportedr^r_�bitrrrr$�s



zEthtoolLinkMode.from_ioctlc	Cs�|d}g}g}x�|�d��d�dD]�}|d}|�d�}|�d�}|�d�}|d	k	rZq&t|}|j|kr~t�d
|j|�q&|jtkr�|�|j�q&|jtkr&|�|j�q&W||�d�|�d�|�d
�||d�S)NrZETHTOOL_A_LINKMODES_OURSr5r6r7r8r9r:Tz0Bit name is not the same as the target: %s <> %sZETHTOOL_A_LINKMODES_SPEEDZETHTOOL_A_LINKMODES_DUPLEXZETHTOOL_A_LINKMODES_AUTONEG)r[r\r]r^r_)	r=r	r�log�errorr`rrar
)	r.rUr^r_Z
bitset_bitrBZbit_nameZ	bit_valuerbrrrr?�s:





zEthtoolLinkMode.from_netlink)rrrrMr3r$r?rVrr)rSrrW�s
rW)r[r\r]r^r_csbeZdZddddddddd	d
ddd
ddd�Zd�fdd�	Zedd��Zdd�Zedd��Z�Z	S)�EthtoolRingsZETHTOOL_A_RINGS_RX_MAXZETHTOOL_A_RINGS_RX_MINI_MAXZETHTOOL_A_RINGS_RX_JUMBO_MAXZETHTOOL_A_RINGS_TX_MAXZETHTOOL_A_RINGS_RXZETHTOOL_A_RINGS_RX_MINIZETHTOOL_A_RINGS_RX_JUMBOZETHTOOL_A_RINGS_TXZETHTOOL_A_RINGS_RX_BUF_LENZETHTOOL_A_RINGS_TCP_DATA_SPLITZETHTOOL_A_RINGS_CQE_SIZEZETHTOOL_A_RINGS_TX_PUSHZETHTOOL_A_RINGS_RX_PUSHZETHTOOL_A_RINGS_TX_PUSH_BUF_LENZ#ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX)�rx_max�rx_mini_max�rx_jumbo_max�tx_max�rx�rx_mini�rx_jumbo�tx�
rx_buf_len�tcp_data_split�cqe_size�tx_push�rx_push�tx_push_buf_len�tx_push_buf_len_maxNcs.tt|��||||||||||	|
|||
||�S)N)rLrerM)r.rfrgrhrirjrkrlrmrnrorprqrrrsrt)rSrrrM*s"
zEthtoolRings.__new__cs&�d�|f�fdd�|j��D��S)Nrcsi|]\}}��|�|�qSr)r=)r�cls_attr�netlink_attr)�nl_ringsrrr!Ssz-EthtoolRings.from_netlink.<locals>.<dictcomp>)�nl_attributs_dictr")r.rwr)rwrr?Os
zEthtoolRings.from_netlinkcCsFt�}x:|j��D],\}}t||�}|dk	r|d�||f�qW|S)Nr6)rrxr"�getattrra)r*Znl_rings_attrsrurv�attrrrr�
to_netlinkYs
zEthtoolRings.to_netlinkcCst|�}|�d�|f|�S)N�cmd)�dict�pop)r.�ioctl_ringsrrrr$as
zEthtoolRings.from_ioctl)NNNNNNNNNNNNNNN)
rrrrxrMr3r?r{r$rVrr)rSrresB
re)rfrgrhrirjrkrlrmrnrorprqrrrsrtc@s�eZdZdd�Zdd�Zdd�Zdd�Zd d
d�Zd!dd
�Zd"dd�Z	dd�Z
d#dd�Zd$dd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd	S)%�EthtoolcCs(t�|_t�|_d|j_|j��|_dS)N�debug)r
�_with_ioctlr�_with_nlZmodule_err_levelZis_nlethtool_in_kernel�_is_nl_working)r*rrrr+iszEthtool.__init__cCs|S)Nr)r*rrr�	__enter__oszEthtool.__enter__cCs|��dS)N)�close)r*�exc_type�	exc_value�	tracebackrrr�__exit__rszEthtool.__exit__cOsF|dkr|j}|dkrt��y
|||�Stk
r@t��YnXdS)NF)r�rr)r*�f�with_netlink�args�kwargsrrr�_nl_execus
zEthtool._nl_execNcCsZy |�|jj||�}t�|�}Wn4tk
rT|j�|�|j��}t�	|�}YnX|S)N)
r�r�Zget_linkmoderWr?rr��
change_ifname�get_link_settingsr$)r*�ifnamer�Z	link_moderTrrr�
get_link_mode�s
zEthtool.get_link_modecCsZy |�|jj||�}t�|�}Wn4tk
rT|j�|�|j��}t�	|�}YnX|S)N)
r�r�Zget_linkinforJr?rr�r�r�r$)r*r�r�Z	link_inforTrrr�
get_link_info�s
zEthtool.get_link_infocCsRy|�|jj||�}t�|�Stk
rL|j�|�|j��}t�|�SXdS)N)	r�r�Z
get_stringsetrCr?rr�r�r$)r*r�r�Z
stringsetsrrr�get_strings_set�s

zEthtool.get_strings_setcCsj|j}|dkr>y|j�|�}t�|�Stk
r<d}YnX|dkrf|j�|�|j��}t�|�SdS)NTF)	r�r��get_wolr4r?rr�r�r$)r*r�Z
nl_workingZwolrArrrr��s


zEthtool.get_wolcCsZy |�|jj||�}t�|�}Wn4tk
rT|j�|�|j��}t�|�}YnX|S)N)	r�r��	get_ringsrer?rr�r�r$)r*r�r��ringsZ
rings_inforrrr��s
zEthtool.get_ringscKs�y&tf|���}|�|jj|||�Wnltk
r�|j�|�|j��}x4|�	�D](\}}||�
�krV|||krV|||<qVW|j�|�YnXdS)N)rer{r�r��	set_ringsrr�r�r�r"�keys)r*r�r�r�r�rrr rrrr��s
zEthtool.set_ringscCs|j�|�t�|j���S)N)r�r�r-r$�get_features)r*r�rrrr��szEthtool.get_featurescCs2|j�|�|j��}t�||�|j�|�dS)N)r�r�r�r-r&�set_features)r*r�r/r1rrrr��s
zEthtool.set_featurescCs|j�|�t�|j���S)N)r�r�rr$�get_coalesce)r*r�rrrr��szEthtool.get_coalescecCs2|j�|�|j��}t�||�|j�|�dS)N)r�r�r�rr&�set_coalesce)r*r�r%r#rrrr��s
zEthtool.set_coalescecCs|j��|j��dS)N)r�r�r�)r*rrrr��s
z
Ethtool.close)N)N)N)N)N)rrrr+r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr�hs





r�))�logging�collectionsr�ctypesrrZpyroute2.ethtool.commonrrrrr	r
rZpyroute2.ethtool.ioctlrr
Zpyroute2.netlink.exceptionsrZ pyroute2.netlink.generic.ethtoolrrr rXrY�	getLoggerrrcr�	Exceptionr�objectrr(r-r4rCrJrWrer�rrrr�<module>s>$	



 
'
M
b