HEX
Server: Apache/2.4.62 (Unix) OpenSSL/1.1.1k
System: Linux ns565604.ip-54-39-133.net 4.18.0-553.50.1.el8_10.x86_64 #1 SMP Tue Apr 15 08:09:22 EDT 2025 x86_64
User: greer489 (1034)
PHP: 8.3.19
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/sos/report/plugins/__pycache__/networking.cpython-36.pyc
3

-�_g�6�@sZddlmZmZmZmZmZmZGdd�de�ZGdd�dee�ZGdd�deee�Z	dS)	�)�Plugin�RedHatPlugin�UbuntuPlugin�DebianPlugin�SoSPredicate�	PluginOptc	s�eZdZdZdZd(ZdZeddd	e��d
�edded
d�edde	dd�edddd
�edddd
�gZ
dZdddddddgZdZ
�fd d!�Zd"d#�Zd$d%�Zd&d'�Z�ZS))�
Networkingz,Network and networking devices configurationZ
networking�network�hardware�systemzwww.example.com�
tracerouteFzcollect a traceroute to )�default�descznamespace-pattern�zFSpecific namespace names or patterns to collect, whitespace delimited.)r
Zval_typer�
namespacesNz0Number of namespaces to collect, 0 for unlimitedzethtool-namespacesTz;Toggle if ethtool commands should be run for each namespace�
eepromdumpz*Toggle collection of 'ethtool -e' for NICsz-W�tcp_diag�udp_diag�	inet_diag�	unix_diag�netlink_diag�af_packet_diag�xsk_diagZacdgiklmPSTcst�j�|jddd��|jdddddd	d
ddd
dddddg�|jddddddg�|jdddd�|jddddgd�|jd�|jd |j�d!�d"d#�|jd$d%d |j�d&�d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8g�|jd9��r�|jd:d;d<d=d>d?d@dAg�|jdB�}|dCdDk�r�|dEj	�}x�|D]��|jdF���dG���dH���dI���g�g}|jdJ����}|dCdDk�r,x4|dEj	�D]$}|j
dK��r�|j|j�dL��q�W|j�fdMdN�|D���q,WdO}t
|dPgdQ�}|j||dRdS�|j�|j�dS)TNZbondZhosts)z/proc/net/bonding/bond.*z
/etc/hostsz
/etc/dnsmasq*z
/etc/host*z/etc/inetd.confz
/etc/iproute2z
/etc/network*z/etc/nsswitch.confz/etc/resolv.confz/etc/xinetd.confz
/etc/xinetd.dz/etc/yp.confz
/proc/net/z!/sys/class/net/*/device/numa_nodez/sys/class/net/*/flagsz/sys/class/net/*/statistics/z
/etc/nmstate/z/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 addr�ip_addr)�root_symlinkZtagszip route show table allZip_routeZiproute_show_table_allZ
plotnetcfgznetstat z -neopa�netstat)rz
nstat -zasz
netstat -sz -agnznetworkctl status -azip -6 route show table allzip -d route show cachezip -d -6 route show cachezip -4 rule listzip -6 rule listzip vrf showz
ip -s -d linkz
ip -d addresszifenslave -azip mroute showz
ip maddr showzip -s -s neigh showzip neigh show nud noarpzbiosdevname -dztc -s qdisc showznmstatectl showz nmstatectl show --running-configz/sys/class/devlinkzdevlink dev param showzdevlink dev infozdevlink port showzdevlink sb showzdevlink sb pool showzdevlink sb port pool showzdevlink sb tc bind showzdevlink -s -v trap showzdevlink devZstatusr�outputzdevlink dev eswitch show zdevlink sb occupancy snapshot zdevlink sb occupancy show zdevlink -v resource show zdevlink dpipe table show �name�csg|]}d��d|���qS)zdevlink dpipe table show z name �)�.0Zdname)�devlinkr� /usr/lib/python3.6/networking.py�
<listcomp>�sz$Networking.setup.<locals>.<listcomp>zip -s macsec showZmacsec)�kmodsT)�pred�changes)�super�setupZ
add_file_tags�
add_copy_specZadd_forbidden_path�add_cmd_output�ns_wideZ
path_isdirZcollect_cmd_output�
splitlines�
startswith�append�splitr�collect_ss_ip_ethtool_info�collect_bridge_info)�selfZdevlinksZ
devlinks_listZ
dev_tablesZdpipeZtablelnZip_macsec_show_cmdZmacsec_pred)�	__class__)r!r"r(/s�





zNetworking.setupc	CsJx*|jD] }|jd|�d�d|��i�qW|jdddddd	d
d��dS)
z% Command tags for ip/ethtool/netstat z	ethtool -z .*Zethool_ZethtoolrZ
ip_neigh_showZ	ip_s_linkrZnetstat_agnZ	netstat_s)zethtool [^-].*z
ip -d addresszip -s -s neigh showz
ip -s -d linkznetstat.*-neopaz
netstat.*-agnz
netstat -sN)�ethtool_shortoptsZadd_cmd_tags)r2�optrrr"�add_command_tags�szNetworking.add_command_tagscCs|jddddg�dS)zf Collect information about bridges (some data already collected via
        "ip .." commands)
        zbridge -s -s -d link showzbridge -s -s -d -t fdb showzbridge -s -s -d -t mdb showzbridge -d vlan showN)r*)r2rrr"r1�s
zNetworking.collect_bridge_infocCs�d}t||jddid�}|j||dd�dd�|jD�}|jd	d�|D�d
d�|jdd
ddddgd
d�|jd�r�d}|jd�|j|d
d�|jd�r�|jd|j��dd�|jd�d}|j|jd�|jd��}|�r�ddd�}d dd�}|j	|t||d!�d"��rt|dgd#�nd$}	|j	|t||d!�d"��r@t|dgd#�nd$}
�x>|D�]4}|j
d%|}d&|��}
||d'}|j|�d(�|�d)�|�d*�|�d+�|�d,�|�d-�|�d.�|�d/|j�d0�|�d1�|�d/|j�d2�|�d3�gd4|
d5�|j|d6g|	|
d4d7�|j|d8g|
|
d4d7�|d}|j|||
d9�|jd:��rL|j|�d;�|�d<�|�d=�|�d>�|�d?�g|d
d4|
d@��qLW|j�d$S)Az( Collect ss, ip and ethtool cmd outputs zss -peaonmir$�all)r$ZrequiredT)r%r&cSsg|]}d|���qS)z	ethtool -r)r r5rrr"r#�sz9Networking.collect_ss_ip_ethtool_info.<locals>.<listcomp>cSsg|]}|d�qS)z %(dev)sr)r Z_cmdrrr"r#�sZethernet)�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 ingressrzethtool -e %(dev)szwWARNING: collecting an eeprom dump is known to cause certain NIC drivers (e.g. bnx2x/tg3) to interrupt device operationrz/bin/traceroute -n �d)�priorityzip netnszip netns exec znamespace-patternrziptables -VZ	nf_tables)�cmdrzip6tables -V)Zcmd_outputs)r%)r$NZnamespaced_networkznamespaces/� z ip -d address showz ip route show table allz ip -s -s neigh showz ip -4 rule listz ip -6 rule listz ip vrf showz
 sysctl -az	 netstat z -neopaz netstat -sz -agnz nstat -zas�2)r:�subdirz
iptables-save)r%r>r:zip6tables-save)r%r>zethtool-namespacesz ethtool %(dev)sz ethtool -i %(dev)sz ethtool -k %(dev)sz ethtool -S %(dev)sz ethtool -m %(dev)s)r8r:r>)
r�ss_kmodsr*r4Zadd_device_cmdZ
get_optionZ	_log_warn�
trace_hostZget_network_namespacesZtest_predicater8r+r6)r2Zss_cmdZss_predZ_ecmdsr;Z
cmd_prefixrZcoutZco6Ziptables_with_nftZip6tables_with_nft�	namespaceZ_devsZ_subdirZ
ns_cmd_prefixrrr"r0�s�





  



z%Networking.collect_ss_ip_ethtool_info)r	r
r)�__name__�
__module__�__qualname__Z
short_descZplugin_nameZprofilesr@r�str�intZoption_listr+r?r4r(r6r1r0�
__classcell__rr)r3r"r
s,

srcs(eZdZdZ�fdd�Zdd�Z�ZS)�RedHatNetworkingzrhn.redhat.comcsPy,|jjjd�}t|dd�dkr*d|_Wntk
r@YnXt�j�dS)Nz	net-tools�versionr�z-T)�policyZpackage_managerZpkg_by_namerFr+�	Exceptionr'r()r2Znetstat_pkg)r3rr"r(+s
zRedHatNetworking.setupcCs|jddd�dS)Nz/etc/nmstatez3(\s+(mka-cak|private-key-password|psk|password):).*z	\1 ******)�do_path_regex_sub)r2rrr"�postproc8szRedHatNetworking.postproc)rBrCrDr@r(rNrGrr)r3r"rH(s
rHcs(eZdZdZ�fdd�Zdd�Z�ZS)�UbuntuNetworkingzarchive.ubuntu.comc	sRddddddddd	g	}|jj�d
kr*||_t�j�|jddd
dddddg�dS)NrrrrrrrZ
mptcp_diagZraw_diagg
ףp=
6@z/etc/netplan/*.yamlz/etc/network/interfacesz/etc/network/interfaces.dz/etc/resolv.confz/etc/resolvconfz/lib/netplan/*.yamlz/run/netplan/*.yamlz/run/systemd/network)rKZdist_versionr?r'r(r))r2Zubuntu_jammy_and_after_ss_kmods)r3rr"r(Ds"
zUbuntuNetworking.setupcCs|jddd�dS)Nz/etc/netplanz(\s+password:).*z	\1 ******)rM)r2rrr"rN\szUbuntuNetworking.postproc)rBrCrDr@r(rNrGrr)r3r"rOAsrON)
Zsos.report.pluginsrrrrrrrrHrOrrrr"�<module>	s