
    ~ g8                         S SK JrJrJrJrJrJr  S SKJr  S SK	J
r
   " S S\5      r " S S\\5      r " S S	\\\5      rg
)    )PluginRedHatPluginUbuntuPluginDebianPluginSoSPredicate	PluginOpt)UbuntuPolicy)DebianPolicyc            
          ^  \ rS rSrSrSrSrSr\" SSS\ 3S	9\" S
S\	SS9\" SS\
SS9\" SSSS	9\" SSSS	9/rSr/ SQrSrU 4S jrS rS rS rSrU =r$ )
Networking   z,Network and networking devices configuration
networking)networkhardwaresystemzwww.example.com
tracerouteFzcollect 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                 d  > [         T
U ]  5         U R                  SSS.5        U R                  / SQ5        U R	                  / SQ5        U R                  SSSS9  U R                  S	S
S
S/S9  U R                  S5        U R                  SU R                   S3SS9  U R                  SSSU R                   S3SSSSSSSSSSSSS S!S"S#S$S%/5        U R                  S&5      (       Ga  U R                  / S'Q5        U R                  S(5      nUS)   S*:X  a  US+   R                  5       nU H  nU R                  S,U 3S-U 3S.U 3S/U 3/5        / nU R                  S0U 35      nUS)   S*:X  d  ME  US+   R                  5        H=  nUR                  S15      (       d  M  UR                  UR                  5       S2   5        M?     U R                  U Vs/ s H  nS0U S3U 3PM     sn5        M     S4n[        U S5/S69n	U R                  XS7S89  U R                  5         U R                  5         g s  snf )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tagszip route show table allip_routeiproute_show_table_all
plotnetcfgznetstat  -neopanetstat)r(   z
nstat -zas
netstat -s -agnznetworkctl status -azip -6 route show table allzip -d route show cachezip -d -6 route show cachezip -4 rule listzip -6 rule listzip vrf showip -s -d linkip -d addresszifenslave -azip mroute showzip maddr showip -s -s neigh showzip neigh show nud noarpzbiosdevname -dztc -s qdisc showznmstatectl showz nmstatectl show --running-configz/sys/class/devlink)zdevlink dev param showzdevlink dev infozdevlink port showzdevlink sb showzdevlink sb pool showzdevlink sb port pool showzdevlink sb tc bind showzdevlink -s -v trap showzdevlink devstatusr   outputzdevlink dev eswitch show zdevlink sb occupancy snapshot zdevlink sb occupancy show zdevlink -v resource show zdevlink dpipe table show name   z name zip -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?   Networking.setup1   s   (.!
 	
 	 
 	$ 	 	!
 		 	Ly!* 	 	,5J",.F!G 	 	IL)ht||nG<)2 	 	4 	t||nE*"($'!%.+
 	0 ??/00 	! 	 ..}=H!Q& ( 2 = = ?,G''3G9=8	B4WI>3G9=	)  "$J 333G9=E X!+',X'A'A'CG&11&99 * 1 1'--/!2D E (D ++)3-)3 8yugN)3-   -. 1"4z:.$O'')  "-s   H-
c           
          U R                    H  nU R                  SU S3SU 305        M     U R                  SSSSSS	S
S.5        g)z$Command tags for ip/ethtool/netstat 	ethtool -z .*ethool_ethtoolr'   ip_neigh_show	ip_s_linkr.   netstat_agn	netstat_s)zethtool [^-].*r2   r3   r1   znetstat.*-neopaznetstat.*-agnr/   N)ethtool_shortoptsadd_cmd_tags)rM   opts     rX   add_command_tagsNetworking.add_command_tags   sc    ))CC5$uo  *
 	'&#2((*%
 	    c                 *    U R                  / SQ5        g)zUCollect information about bridges (some data already collected via
"ip .." commands)
)zbridge -s -s -d link showzbridge -s -s -d -t fdb showzbridge -s -s -d -t mdb showzbridge -d vlan showN)rC   rM   s    rX   rL   Networking.collect_bridge_info   s     	 
 	rg   c                 V   Sn[        X R                  SS0S9nU R                  XSS9  U R                   Vs/ s H  nSU 3PM
     nnU R	                  U Vs/ s H  oUS-   PM	     snS	S
9  U R	                  / SQS	S
9  U R                  S5      (       a#  SnU R                  S5        U R	                  US	S
9  U R                  S5      (       a  U R                  SU R                   3SS9  U R                  S5        SnU R                  U R                  S5      U R                  S5      5      nU(       Ga\  SSS.n	SSS.n
U R                  U [        X	S9S9(       a  [        U S/S9OSnU R                  U [        X
S9S9(       a  [        U S/S9OSnU H  nU R                  S   U   nS U 3nX}-   S!-   nU R                  U S"3U S#3U S$3U S%3U S&3U S'3U S(3U S)U R                   S*3U S+3U S)U R                   S,3U S-3/S.US/9  U R                  US0-   /UUS.S19  U R                  US2-   /UUS.S19  US-   nU R                  XUS39  U R                  S45      (       d  M  U R	                  U S53U S63U S73U S83U S93/US	   S.US:9  M     U R                  5         gs  snf s  snf );z'Collect ss, ip and ethtool cmd outputs zss -peaonmir:   all)r:   requiredTr;   r[   z %(dev)sethernet)devices)zethtool %(dev)sz ethtool --phy-statistics %(dev)sz!ethtool --show-priv-flags %(dev)szethtool --show-eee %(dev)sztc -s filter show dev %(dev)sz%tc -s filter show dev %(dev)s ingressr   zethtool -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   )priorityzip netnszip netns exec r   r   ziptables -V	nf_tables)cmdr5   zip6tables -V)cmd_outputs)r<   r9   Nnamespaced_networkznamespaces/ 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 -sr0   z nstat -zas2   )rq   subdirziptables-save)r<   rx   rq   zip6tables-save)r<   rx   r   z ethtool %(dev)sz ethtool -i %(dev)sz ethtool -k %(dev)sz ethtool -S %(dev)sz ethtool -m %(dev)s)ro   rq   rx   )r   ss_kmodsrC   rb   add_device_cmd
get_option	_log_warn
trace_hostget_network_namespacestest_predicatero   rD   re   )rM   ss_cmdss_predrd   _ecmds_cmdrs   
cmd_prefixr   coutco6iptables_with_nftip6tables_with_nft	namespace_devs_subdirns_cmd_prefixs                    rX   rK   %Networking.collect_ss_ip_ethtool_info   s   t==)0%(8:F$? 04/E/EF/EIcU#/EF*0
*0$:&
 	 	 	 
  	 	 ??<((&CNN 8 9 Z8??<(("5doo5F G),   .
 	J'%
00 34-/
  )K@D(K@C$($7$7&24&J %8 %L ".d;-!H '+ 
 &*%8%8'3D'J &9 &L #/tK="I (, 
 (	%9:9E'	{3 * 6 <##$o%89$o%=>$o%9:$o%56$o%56$o\2$oZ0$oYt||nGD$o[1$oYt||nEB$o[1% w $ 0 ##]_%D$E):+2-/ $ 1 ##]5E%E$F);+2-/ $ 1
 '6 ##F#I ??#788 ''(/)9:(/)<=(/)<=(/)<=(/)<=)  %Z02g ( OK (Z 	} G
s   J!J& )__name__
__module____qualname____firstlineno__
short_descplugin_nameprofilesr}   r   strintoption_listrD   ry   rb   r?   re   rL   rK   __static_attributes____classcell__rW   s   @rX   r   r      s    ?JK0H"J 	,1*>	@%rC0	2 	,sI	K&$	& 	,C	EK  G>H
 &q#f"	g  g rg   r   c                   2   ^  \ rS rSrSrU 4S jrS rSrU =r$ )RedHatNetworkingi*  zrhn.redhat.comc                    >  U R                   R                  R                  S5      n[        US   S   5      S:  a  SU l        [        TU ]  5         g ! [
         a     Nf = f)Nz	net-toolsversionr      z-T)policypackage_managerpkg_by_namer   rD   	Exceptionr>   r?   )rM   netstat_pkgrW   s     rX   r?   RedHatNetworking.setup-  s_    	++55AA+NK;y)!,-1#
 		  		s   AA 
A A c                 *    U R                  SSS5        g )Nz/etc/nmstatez3(\s+(mka-cak|private-key-password|psk|password):).*	\1 ******do_path_regex_subri   s    rX   postprocRedHatNetworking.postproc:  s    B	
rg   )rD   	r   r   r   r   r}   r?   r   r   r   r   s   @rX   r   r   *  s    !J
 
rg   r   c                   2   ^  \ rS rSrSrU 4S jrS rSrU =r$ )UbuntuNetworkingiC  zarchive.ubuntu.comc                   > / SQn[        U R                  [        5      (       a*  U R                  R                  5       S:  a  US/-   U l        OH[        U R                  [
        5      (       a)  U R                  R                  5       S:  a  US/-   U l        [        TU ]  5         U R                  / SQ5        U R                  / SQ5        g )N)r    r   
mptcp_diagr   raw_diagr   r   r   g
ףp=
6@r!      
vsock_diag)z/etc/netplan/*.yamlz/etc/network/interfacesz/etc/network/interfaces.dr&   z/etc/resolvconfz/lib/netplan/*.yamlz/run/netplan/*.yamlz/run/systemd/network)/etc/netplanz/lib/netplanz/run/netplan)

isinstancer   r	   dist_versionry   r
   r>   r?   rA   add_dir_listing)rM   common_ss_kmodsrW   s     rX   r?   UbuntuNetworking.setupF  s    ( t{{L11((*e3+zl:DMl33((*b0+|n<DM 	
 		 	 
 	rg   c                 *    U R                  SSS5        g )Nr   z(\s+password:).*r   r   ri   s    rX   r   UbuntuNetworking.postproch  s    	
rg   )ry   r   r   s   @rX   r   r   C  s    %J D
 
rg   r   N)sos.report.pluginsr   r   r   r   r   r   sos.policies.distros.ubuntur	   sos.policies.distros.debianr
   r   r   r   r   rg   rX   <module>r      sD   G G 4 4X  X v
z< 
2+
z< +
rg   