File: //lib/python3/dist-packages/sos/report/plugins/__pycache__/networking.cpython-310.pyc
o
([Qhp9 � @ sr d dl mZmZmZmZmZmZ d dlmZ d dl m
Z
G dd� de�ZG dd� dee�ZG dd � d eee�Z
d
S )� )�Plugin�RedHatPlugin�UbuntuPlugin�DebianPlugin�SoSPredicate� PluginOpt)�UbuntuPolicy)�DebianPolicyc s� e Zd ZdZdZdZdZeddde� �d�ed d
edd�ed
de dd�edddd�edddd�gZ
dZg d�ZdZ
� fdd�Zdd� Zdd� Zdd� Z� ZS ) �
Networkingz,Network and networking devices configuration�
networking)�network�hardware�systemzwww.example.com�
tracerouteFzcollect a traceroute to )�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)�tcp_diag�udp_diag� inet_diag� unix_diag�netlink_diag�af_packet_diag�xsk_diag�acdgiklmPSTc s� t � �� | �ddd�� | �g d�� | �g d�� | jdddd� | jd d
d
dgd� | �d� | jd
| j� d�dd� | �dddd
| j� d�dddddddddddd d!d"d#d$d%d&g� | �d'�r�| �g d(�� | �d)�}|d* d+kr�|d, � � }|D ]J� | �d-� � �d.� � �d/� � �d0� � �g� g }| �d1� � ��}|d* d+kr�|d, � � D ]}|�
d2�r�|�|�� d3 � q�| �� fd4d5�|D �� q}d6}t
| d7gd8�}| j||d9d:� | �� | �� d S );N�bond�hosts)z/proc/net/bonding/bond.*z
/etc/hosts)z
/etc/dnsmasq*z
/etc/host*z/etc/inetd.confz
/etc/iproute2z
/etc/network*z/etc/nsswitch.conf�/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/var/lib/lldpad/)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�tagszip route show table all�ip_route�iproute_show_table_all�
plotnetcfgznetstat � -neopa�netstat)r$ z
nstat -zas�
netstat -sz
netstat -s -6� -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 showznmstatectl showz nmstatectl show --running-configz/sys/class/devlink)zdevlink dev param showzdevlink dev infozdevlink port showzdevlink sb showzdevlink sb pool showzdevlink sb port pool showzdevlink sb tc bind showzdevlink -s -v trap showzdevlink dev�statusr �outputzdevlink dev eswitch show zdevlink sb occupancy snapshot zdevlink sb occupancy show zdevlink -v resource show �devlink dpipe table show �name� c s g | ]
}d � � d|� ��qS )r2 z name � )�.0�dname��devlinkr5 �?/usr/lib/python3/dist-packages/sos/report/plugins/networking.py�
<listcomp>� s ��z$Networking.setup.<locals>.<listcomp>zip -s macsec show�macsec��kmodsT��pred�changes)�super�setup�
add_file_tags�
add_copy_spec�add_forbidden_path�add_cmd_output�ns_wide�
path_isdir�collect_cmd_output�
splitlines�
startswith�append�splitr �collect_ss_ip_ethtool_info�collect_bridge_info)�self�devlinks�
devlinks_list�
dev_tables�dpipe�tableln�ip_macsec_show_cmd�macsec_pred�� __class__r8 r: rC 1 s�
���
��
��
���zNetworking.setupc
C sF | j D ]}| �d|� d�d|� �i� q| �dddddd d
d�� dS )
z% Command tags for ip/ethtool/netstat � ethtool -z .*�ethool_�ethtoolr# �
ip_neigh_show� ip_s_linkr* �netstat_agn� netstat_s)zethtool [^-].*r. r/ r- znetstat.*-neopaz
netstat.*-agnr+ N)�ethtool_shortopts�add_cmd_tags)rQ �optr5 r5 r: �add_command_tags� s
��zNetworking.add_command_tagsc C s | � g d�� 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)rG �rQ r5 r5 r: rP � s zNetworking.collect_bridge_infoc C s� d}t | | jddid�}| j||dd� | �d� dd � | jD �}| jd
d � |D �dd� | jg d
�dd� | �d�rId}| �d� | j|dd� | �d�rY| jd| j� �dd� | �d� d}| �| �d�| �d��}|�r=ddd�}ddd�}| j | t | |d�d�r�t | dgd�nd } | j | t | |d�d�r�t | dgd�nd }
|D ]�}| j
d! | }d"|� �}
|| d# }| j|� d$�|� d%�|� d&�|� d'�|� d(�|� d)�|� d*�|� d+| j� d,�|� d-�|� d+| j� d.�|� d/�gd0|
d1� | j|d2 g| |
d0d3� | j|d4 g|
|
d0d3� |d }| j|||
d5� | �d6��r<| j|� d7�|� d8�|� d9�|� d:�|� d;�g|d d0|
d<� q�| �� d S )=z( Collect ss, ip and ethtool cmd outputs zss -peaonmir>