File: //lib/python3/dist-packages/sos/report/plugins/__pycache__/networking.cpython-38.pyc
U
��e�/ � @ sZ d dl mZmZmZmZmZmZ G dd� de�ZG dd� dee�ZG dd� deee�Z dS ) � )�Plugin�RedHatPlugin�UbuntuPlugin�DebianPlugin�SoSPredicate� PluginOptc s| e Zd ZdZdZdZdZeddde d�ed d
edd�ed
de dd�edddd�edddd�gZ
dZdZ� fdd�Z
� ZS )�
Networkingz,Network and networking devices configurationZ
networking)ZnetworkZhardware�systemzwww.example.com�
tracerouteFzcollect a traceroute to %s)�default�desc�namespace_pattern� zFSpecific namespace names or patterns to collect, whitespace delimited.)r Zval_typer �
namespacesNz0Number of namespaces to collect, 0 for unlimited�ethtool_namespacesTz;Toggle if ethtool commands should be run for each namespace�
eepromdumpz*Toggle collection of 'ethtool -e' for NICsz-WZacdgiklmPSTc s t t| ��� | jD ]}| �d| d| i� q| �ddd�� | �dddd d
ddd
ddddddg� | �ddddddg� | jdddd� | jddddgd� | �d � | jd!| j d"d#� | �d$d%d&| j d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6g� | �
d7��rN| �d8d9d:g� | �d;�}|d< d=k�rN|d> �� }|D ]}| �d?| � �q8d@}t
| dAgdB�}| j||dCdD� dE}t
| dFdGdHdIdJdKdLgdMdNidO�}| j||dCdD� dPdQ� | jD �} | jdRdQ� | D �dSdT� | jdUdVdWdXdYdZgdSdT� | �d[��rd\}
| �d]� | j|
dSdT� | �d^d_d`dag� | �db��r@| jdc| j ddde� | �df� dg}| �| �dh�| �di��}|�r�djdkdl�}
dmdkdl�}| j| t
| |
dn�do��r�t
| dkgdB�nd }| j| t
| |dn�do��r�t
| dkgdB�nd }|D �]}| jdp | }dq| }|| dr }| j|ds |d |d3 |d+ |d, |d- |dt |d!| j |d% |d&| j |d$ gdu|dv� | j|dw g||dudx� | j|dy g||dudx� |dE }| j|||dz� | �d{��r�| j|dU |d| |d} |d~ g|dS du|d� �q�| �d�d�d�d�d�d�d�d�dd�d�d"d�d�d��� d S )�Nzethtool -%s .*z ethool_%sZbondZhosts)z/proc/net/bonding/bond.*z
/etc/hostsz
/proc/net/z/etc/nsswitch.confz/etc/yp.confz/etc/inetd.confz/etc/xinetd.confz
/etc/xinetd.dz
/etc/host*�/etc/resolv.confz
/etc/network*z
/etc/dnsmasq*z!/sys/class/net/*/device/numa_nodez/sys/class/net/*/flagsz/sys/class/net/*/statistics/z
/etc/iproute2z/proc/net/rpc/use-gss-proxyz/proc/net/rpc/*/channelz/proc/net/rpc/*/flushz
/proc/net/cdpz/sys/net/cdpz/proc/net/eiconz
ip -o addrZip_addr)�root_symlinkZtagszip route show table allZip_routeZiproute_show_table_allZ
plotnetcfgznetstat %s -neopaZnetstat)r z
nstat -zas�
netstat -sznetstat %s -agnznetworkctl status -azip -6 route show table allzip -d route show cachezip -d -6 route show cachezip -4 rule listzip -6 rule listzip vrf show�
ip -s -d link�
ip -d addresszifenslave -azip mroute showz
ip maddr show�ip -s -s neigh showzip neigh show nud noarpzbiosdevname -dztc -s qdisc showz/sys/class/devlinkzdevlink dev param showzdevlink dev infozdevlink port showzdevlink devZstatusr �outputzdevlink dev eswitch show %szip -s macsec showZmacsec)�kmodsT)�predZchangeszss -peaonmiZtcp_diagZudp_diagZ inet_diagZ unix_diagZnetlink_diagZaf_packet_diagZxsk_diagr �all)r Zrequiredc S s g | ]}d | �qS )zethtool -%s� )�.0�optr r �?/usr/lib/python3/dist-packages/sos/report/plugins/networking.py�
<listcomp>� s z$Networking.setup.<locals>.<listcomp>c S s g | ]}|d �qS )z %(dev)sr )r Z_cmdr r r r � s Zethernet)�deviceszethtool %(dev)sz ethtool --phy-statistics %(dev)sz!ethtool --show-priv-flags %(dev)szethtool --show-eee %(dev)sztc -s filter show dev %(dev)sz%tc -s filter show dev %(dev)s ingressr zethtool -e %(dev)szwWARNING: collecting an eeprom dump is known to cause certain NIC drivers (e.g. bnx2x/tg3) to interrupt device operationzbridge -s -s -d link showzbridge -s -s -d -t fdb showzbridge -s -s -d -t mdb showzbridge -d vlan showr
z/bin/traceroute -n %s�d ��priorityzip netnszip netns exec r
r ziptables -VZ nf_tables)�cmdr zip6tables -V)Zcmd_outputs)r Znamespaced_networkz
namespaces/%s� zip -d address showz sysctl -a�2 )r$ �subdirz
iptables-save)r r( r$ zip6tables-save)r r( r zethtool -i %(dev)szethtool -k %(dev)szethtool -S %(dev)s)r! r$ r( ZethtoolZ ethtool_SZ ethtool_TZ ethtool_aZ ethtool_cZ ethtool_gZ ethtool_iZ ethtool_kZ
ip_neigh_showZ ip_s_linkZnetstat_agnZ netstat_s)zethtool [^-].*zethtool -S.*zethtool -T.*zethtool -a.*zethtool -c.*zethtool -g.*zethtool -i.*zethtool -k.*r r r znetstat.*-neopaz
netstat.*-agnr )�superr �setup�ethtool_shortoptsZadd_cmd_tagsZ
add_file_tags�
add_copy_specZadd_forbidden_path�add_cmd_output�ns_wideZ
path_isdirZcollect_cmd_output�
splitlinesr Zadd_device_cmd�
get_optionZ _log_warn�
trace_hostZget_network_namespacesZtest_predicater! )�selfr ZdevlinksZ
devlinks_listZdevlinkZip_macsec_show_cmdZmacsec_predZss_cmdZss_predZ_ecmdsr% Z
cmd_prefixr �coZco6Ziptables_with_nftZip6tables_with_nft� namespaceZ_devsZ_subdirZ
ns_cmd_prefix�� __class__r r r* + s�
������
���
�
��
����
��
�
���
���
� �
��� �
�zNetworking.setup)�__name__�
__module__�__qualname__Z
short_descZplugin_nameZprofilesr1 r �str�intZoption_listr. r+ r* �
__classcell__r r r5 r r
s. ������r c s e Zd ZdZ� fdd�Z� ZS )�RedHatNetworkingzrhn.redhat.comc sT z,| j j�d�}t|d d �dk r*d| _W n tk
r@ Y nX tt| ��� d S )Nz net-tools�versionr � z-T) ZpolicyZpackage_managerZpkg_by_namer; r. � Exceptionr) r= r* )r2 Znetstat_pkgr5 r r r* s
zRedHatNetworking.setup)r7 r8 r9 r1 r* r<