File: //usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/networking.cpython-310.pyc
o
���b�+ � @ 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 configuration�
networking)�network�hardware�systemzwww.example.com�
tracerouteFzcollect a traceroute to %s)�default�desc�namespace_pattern� zFSpecific namespace names or patterns to collect, whitespace delimited.)r �val_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-W�acdgiklmPSTc s� t t| ��� | jD ]
}| �d| d| i� q
| �ddd�� | �g d�� | �g d�� | jdd d d
� | jdddd
� | �d
� | jd| j dd� | �ddd| j ddddddddddddd d!d"d#d$g� | �
d%�r�| �g d&�� | �d'�}|d( d)kr�|d* �� }|D ] }| �d+| � q�d,}t
| d-gd.�}| j||d/d0� d1}t
| g d2�d3d4id5�}| j||d/d0� d6d7� | jD �} | jd8d7� | D �d9d:� | jg d;�d9d:� | �d<�r�d=}
| �d>� | j|
d9d:� | �g d?�� | �d@�r�| jdA| j dBdC� | �dD� dE}| �| �dF�| �dG��}|�rHdHdIdJ�}
dKdIdJ�}| j| t
| |
dL�dM��r1t
| dIgd.�nd }| j| t
| |dL�dM��rFt
| dIgd.�nd }|D ]�}| jdN | }dO| }|| dP }| j|dQ |d |d! |d |d |d |d| j |d |d| j |d g
dR|dS� | j|dT g||dRdU� | j|dV g||dRdU� |d1 }| j|||dW� | �dX��r�| j|dY |dZ |d[ |d\ g|d9 dR|d]� �qJd S )^Nzethtool -%s .*z ethool_%s�bond�hosts)z/proc/net/bonding/bond.*z
/etc/hosts)z
/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/iproute2)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_symlink�tagszroute -n�route�
plotnetcfgznetstat %s -neopa�netstat)r z
nstat -zasz
netstat -sznetstat %s -agnznetworkctl status -azip route show table allzip -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 addresszifenslave -azip mroute showz
ip maddr showzip -s -s neigh showzip neigh show nud noarpzbiosdevname -dztc -s qdisc showz/sys/class/devlink)zdevlink dev param showzdevlink dev infozdevlink port showzdevlink dev�statusr �outputzdevlink dev eswitch show %szip -s macsec show�macsec)�kmodsT)�pred�changeszss -peaonmi)�tcp_diag�udp_diag� inet_diag� unix_diag�netlink_diag�af_packet_diag�xsk_diagr# �all)r# �requiredc 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/ )r0 �_cmdr/ r/ r2 r3 � s ��ethernet)�devices)�ethtool %(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 operation)zbridge -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 -V� nf_tables)�cmdr! zip6tables -V)�cmd_outputs)r$ �namespaced_networkz
namespaces/%s� zip -d address show�2 )r: �subdirz
iptables-save)r$ rA r: zip6tables-save)r$ rA r r7 zethtool -i %(dev)szethtool -k %(dev)szethtool -S %(dev)s)r6 r: rA )�superr �setup�ethtool_shortopts�add_cmd_tags�
add_file_tags�
add_copy_spec�add_forbidden_path�add_cmd_output�ns_wide�
path_isdir�collect_cmd_output�
splitlinesr �add_device_cmd�
get_option� _log_warn�
trace_host�get_network_namespaces�test_predicater6 )�selfr1 �devlinks�
devlinks_list�devlink�ip_macsec_show_cmd�macsec_pred�ss_cmd�ss_pred�_ecmdsr<