Current File : //usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/networking.cpython-312.pyc
�

-�_g�6��l�ddlmZmZmZmZmZmZGd�de�ZGd�dee�ZGd�deee�Z	y)	�)�Plugin�RedHatPlugin�UbuntuPlugin�DebianPlugin�SoSPredicate�	PluginOptc	����eZdZdZdZdZdZeddde����ed	d
ed��ed
de	d��eddd��eddd��gZ
dZgd�ZdZ
�fd�Zd�Zd�Zd�Z�xZS)�
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�X��t�
|��|jddd��|jgd��|j	gd��|jddd��|jd	d
d
dg��|jd�|jd
|j�d�d��|jddd
|j�d�ddddddddddddd d!d"d#d$d%g�|jd&�r�|jgd'��|jd(�}|d)d*k(r�|d+j�}|D]�}|jd,|��d-|��d.|��d/|��g�g}|jd0|���}|d)d*k(s�C|d+j�D]6}|jd1�s�|j|j�d2��8|j|D�cgc]
}d0|�d3|����c}���d4}t|d5g�6�}	|j||	d7�8�|j�|j�ycc}w)9N�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/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 -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 addresszifenslave -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 zdevlink dpipe table show �name�z name 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�devlink�
dev_tables�dpipe�tableln�dname�ip_macsec_show_cmd�macsec_pred�	__class__s          ��?/usr/lib/python3/dist-packages/sos/report/plugins/networking.pyr<zNetworking.setup/s����
��
�����(.�!�
�	�
	
���
�	�$	
���	!
�		�	
���L�y�!*�	�	,����5�J�",�.F�!G�	�	I����L�)����h�t�|�|�n�G�<�)2�	�	4�	
������t�|�|�n�E�*�"�(�$�'���������!�%����.�+
�	�0�?�?�/�0����	!�	
��.�.�}�=�H���!�Q�&� (�� 2� =� =� ?�
�,��G��'�'�3�G�9�=�8��	�B�4�W�I�>�3�G�9�=�	)��"$�J� �3�3�3�G�9�=��E��X��!�+�',�X��'A�'A�'C�F�G�&�1�1�&�9� *� 1� 1�'�-�-�/�!�2D� E�F��+�+�)3�-� %�8��y��u�g�N�-���.1��"�4��z�:�����.�[�$��O��'�'�)�� � �"��-s�
H'
c
��|jD]}|jd|�d�d|��i��|jdddddd	d
d��y)
z% Command tags for ip/ethtool/netstat �	ethtool -z .*�ethool_�ethtoolr$�
ip_neigh_show�	ip_s_linkr+�netstat_agn�	netstat_s)zethtool [^-].*r/r0r.znetstat.*-neopaz
netstat.*-agnr,N)�ethtool_shortopts�add_cmd_tags)rJ�opts  rU�add_command_tagszNetworking.add_command_tags�sh���)�)�	�C�����C�5��$���u�o��
�	�
	
���'�&�#2�(�(�*�%�
�	�c�*�|jgd��y)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@�rJs rUrIzNetworking.collect_bridge_info�s��	
���
�	rbc��d}t||jddi��}|j||d��|jD�cgc]}d|����	}}|j	|D�cgc]}|dz��	c}d	�
�|j	gd�d	�
�|jd�r&d
}|j
d�|j	|d	�
�|jd�r |jd|j��d��|jd�d}|j|jd�|jd��}|�rqddd�}	ddd�}
|j|t||	����rt|dg��nd}|j|t||
����rt|dg��nd}|D�]}
|jd|
}d |
��}||
zd!z}|j|�d"�|�d#�|�d$�|�d%�|�d&�|�d'�|�d(�|�d)|j�d*�|�d+�|�d)|j�d,�|�d-�gd.|�/�|j|d0zg||d.�1�|j|d2zg||d.�1�|dz}|j|||�3�|jd4�s��|j	|�d5�|�d6�|�d7�|�d8�|�d9�g|d	d.|�:���|j�ycc}wcc}w);z( Collect ss, ip and ethtool cmd outputs zss -peaonmir7�all)r7�requiredTr8rWz %(dev)s�ethernet)�devices)zethtool %(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 operationrz/bin/traceroute -n �d)�priorityzip netnszip netns exec rrziptables -V�	nf_tables)�cmdr2zip6tables -V)�cmd_outputs)r9r6N�namespaced_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 r*z netstat -sr-z nstat -zas�2)rk�subdirz
iptables-save)r9rrrkzip6tables-save)r9rrrz ethtool %(dev)sz ethtool -i %(dev)sz ethtool -k %(dev)sz ethtool -S %(dev)sz ethtool -m %(dev)s)rirkrr)
r�ss_kmodsr@r^�add_device_cmd�
get_option�	_log_warn�
trace_host�get_network_namespaces�test_predicaterirAra)rJ�ss_cmd�ss_predr`�_ecmds�_cmdrm�
cmd_prefixr�cout�co6�iptables_with_nft�ip6tables_with_nft�	namespace�_devs�_subdir�
ns_cmd_prefixs                 rUrHz%Networking.collect_ss_ip_ethtool_info�s������t�4�=�=�)0�%�(8�:�����F��$��?�04�/E�/E�F��I�c�U�#�F��F����*0�
�"&�D�:��
��	�	�	
���
��	�	��?�?�<�(�&�C��N�N�8�
9�
����Z��8��?�?�<�(����"5�d�o�o�5F� G�),�
 �
.�
	
���J�'�%�
��0�0���� 3�4�����-�/�
��)�K�@�D�(�K�@�C�$(�$7�$7��&2�4�T�&J�%8�%L�".�d�;�-�!H�'+�
�
&*�%8�%8��'3�D�c�'J�&9�&L�#/�t�K�=�"I�(,�
�
(�+
O�	����%9�:�9�E��'�	�{�3�� *�Y� 6�� <�
��#�#�$�o�%8�9�$�o�%=�>�$�o�%9�:�$�o�%5�6�$�o�%5�6�$�o�\�2�$�o�Z�0�$�o�Y�t�|�|�n�G�D�$�o�[�1�$�o�Y�t�|�|�n�E�B�$�o�[�1�%��w�$�0��#�#�]�_�%D�$E�):�+2�-/�$�1��#�#�]�5E�%E�$F�);�+2�-/�$�1�
'��6���#�#�F���#�I��?�?�#7�8��'�'�(�/�)9�:�(�/�)<�=�(�/�)<�=�(�/�)<�=�(�/�)<�=�)� %�Z�0�2�g�
(�O�K+
O�Z	
�����}G��
s�J6�J;)�__name__�
__module__�__qualname__�
short_desc�plugin_name�profilesrwr�str�int�option_listrArsr^r<rarIrH�
__classcell__�rTs@rUr
r

s����?�J��K�0�H�"�J�	�,��1�*��>�	@��%�r�C�0�	2�	�,��s�I�	K��&��$�	&�	�,��C�	E�
�K� �G�>�H�
&��q#�f�"	�g rbr
c�(��eZdZdZ�fd�Zd�Z�xZS)�RedHatNetworkingzrhn.redhat.comc����	|jjjd�}t|dd�dkrd|_t�|��y#t
$rY�wxYw)Nz	net-tools�versionr�z-T)�policy�package_manager�pkg_by_namer�rA�	Exceptionr;r<)rJ�netstat_pkgrTs  �rUr<zRedHatNetworking.setup+s_���	��+�+�5�5�A�A�+�N�K��;�y�)�!�,�-��1�#���
	��
���	�	��	�s�AA�	A�Ac�*�|jddd�y)Nz/etc/nmstatez3(\s+(mka-cak|private-key-password|psk|password):).*�	\1 ******��do_path_regex_subrds rU�postproczRedHatNetworking.postproc8s������B��	
rb�r�r�r�rwr<r�r�r�s@rUr�r�(s���!�J��
rbr�c�(��eZdZdZ�fd�Zd�Z�xZS)�UbuntuNetworkingzarchive.ubuntu.comc���gd�}|jj�dk\r||_t�|��|jgd��y)N)	rrrrrrr�
mptcp_diag�raw_diagg
ףp=
6@)z/etc/netplan/*.yamlz/etc/network/interfacesz/etc/network/interfaces.dr#z/etc/resolvconfz/lib/netplan/*.yamlz/run/netplan/*.yamlz/run/systemd/network)r��dist_versionrsr;r<r>)rJ�ubuntu_jammy_and_after_ss_kmodsrTs  �rUr<zUbuntuNetworking.setupDsE���+7�'��;�;�#�#�%��.�;�D�M�
��
�����	
�		rbc�*�|jddd�y)Nz/etc/netplanz(\s+password:).*r�r�rds rUr�zUbuntuNetworking.postproc\s��������	
rbr�r�s@rUr�r�As���%�J��0
rbr�N)
�sos.report.pluginsrrrrrrr
r�r��rbrU�<module>r�s>��G�G�X ��X �v
�z�<�
�2!
�z�<��!
rb