a Ö>ļhŽEć@sfddlmZddlZddlmZmZmZmZGdd„deƒZGdd„deeƒZ Gdd „d eeeƒZ dS) é)ŚenvironN)ŚPluginŚ RedHatPluginŚ DebianPluginŚ UbuntuPluginc@s`eZdZdZdZdZdZdZdZdZ dZ dZ d d „Z d d „Z d d„Zdd„Zdd„Zdd„ZdS)Ś OpenVSwitchzOpenVSwitch networkingŚ openvswitch)ŚnetworkZvirtz ovs-appctlz ovs-vsctlz ovs-ofctlz ovs-dpctlFc+sˆ d”}ddg}ˆ ˆj›d”}|ddko<|d d”ˆ_t‡fd d „d Dƒƒˆ_t d ”rr|  t d ””|sˆ  ‡fd d„|Dƒ”n ˆ  |”ˆ  gd¢”ˆ  ˆ  dd”ˆ  dd”ˆ  dd”g”t d”}|ršˆ  ˆ  |d””ˆ  dddœ”ˆ  gd¢”ˆ dddddddˆj›d ˆj›d!ˆj›d"ˆj›d#ˆj›d$ˆj›d%ˆj›d&ˆj›d'ˆj›d(ˆj›d)ˆj›d*ˆj›d+ˆj›d,ˆj›d-ˆj›d.ˆj›d/ˆj›d0ˆj›d1ˆj›d2ˆj›d3ˆj›d4ˆj›d5ˆj›d6ˆj›d7ˆj›d8ˆj›d9ˆj›d:ˆj›d;ˆj›d<ˆj›d=ˆj›d>ˆj›d?ˆj›d@g(”ˆjˆj›dAdBdCˆjˆj›dDdEdCˆjdFdGˆjdHdGˆjdIdGˆjdJdGˆjdKdGˆjdLdGˆ ”ˆ ”ˆ ”dS)MNŚall_logsz/var/log/openvswitch/z/usr/local/var/log/openvswitch/z/ -t 5 get Open_vSwitch . other_config:dpdk-initŚstatusrŚoutputz"true"c3s|]}ˆ |”VqdS)N)Ś is_installed)Ś.0Śp©Śself©śB/usr/lib/python3.9/site-packages/sos/report/plugins/openvswitch.pyŚ )óz$OpenVSwitch.setup..)z 6windgate-fpśnuage-openvswitchZ OVS_LOGDIRcsg|]}ˆ |d”‘qS)z*.log)Ś path_join)rZldrrrŚ 0sz%OpenVSwitch.setup..)z!/run/openvswitch/ovsdb-server.pidz!/run/openvswitch/ovs-vswitchd.pidz&/run/openvswitch/ovs-monitor-ipsec.pidz/usr/local/etc/openvswitchzconf.dbz/etc/openvswitchz/var/lib/openvswitchZ OVS_DBDIRZopenvswitch_daemon_logZopenvswitch_server_log)z%/var/log/openvswitch/ovs-vswitchd.logz%/var/log/openvswitch/ovsdb-server.log)z/run/openvswitchz/dev/hugepages/z /dev/vfioz/var/lib/vhost_socketszdpdk_nic_bind --statuszdpdk-devbind.py --statuszdriverctl list-deviceszdriverctl -v list-deviceszdriverctl list-overrideszdriverctl -v list-overrideszdriverctl list-persistedz bond/listz bond/showz lacp/showz lacp/show-statsz coverage/showz ovs/route/showz tnl/arp/showz tnl/ports/show -vś upcall/showz -t 5 list Open_vSwitchz -t 5 list managerz -t 5 list interfacez -t 5 list bridgez -t 5 list datapathz! dpif-netdev/pmd-rxq-show -secs 5z" dpif-netdev/pmd-rxq-show -secs 30z dpif-netdev/pmd-rxq-showz dpif-netdev/pmd-stats-showz dpif-netdev/pmd-perf-showz ofproto/list-tunnelsz" -t ovs-monitor-ipsec tunnels/showz -t ovs-monitor-ipsec xfrm/statez# -t ovs-monitor-ipsec xfrm/policiesz$ dump-flows --name -m type=offloadedz dump-flows --name -m type=ovsz% dpif-netdev/subtable-lookup-prio-getz dpif-netdev/dpif-impl-getz dpif-netdev/miniflow-parser-getz dpif-netdev/pmd-sleep-showz dpdk/lcore-listz dpdk/log-listz dpdk/get-malloc-statsz netdev-dpdk/get-mempool-infoz% -t 5 get Open_vSwitch . other_configZopenvswitch_other_config)Śtagsz -t 5 showZovs_vsctl_showr©Zunitszopenvswitch-nonetworkz ovs-vswitchdz ovsdb-serverzovs-configurationzopenvswitch-ipsec)Z get_optionŚcollect_cmd_outputŚvctlŚ startswithŚ check_dpdkŚanyŚ check_6windrŚgetŚappendŚ add_copy_specrZ add_file_tagsZadd_dir_listingŚadd_cmd_outputŚactlŚdpctlŚ add_journalŚcollect_ovs_infoŚcollect_datapathŚcollect_ovs_bridge_info)rr Zlog_dirsZ dpdk_enabledZ ovs_dbdirrrrŚsetupsø ž ’  ’ ’  ’     ż ü                                 ½F ž’      zOpenVSwitch.setupcCsųgd¢}|jrō| |”| dddddddd d |j›d |j›d d |j›dd|j›dddddddd|j›dg”|jdddD]}| d|›g”qˆ| d”}|ddkrō|d  ”D]0}t  d!|”}|rĀ|  d"”}| d#|›g”qĀd$S)%z Collect output of OVS commands )z?/etc/systemd/system/multi-user.target.wants/openvswitch.servicez./etc/sysctl.d/60-6wind-system-auto-reboot.confz/etc/openvswitch/system-id.confz/etc/openvswitch/*.dbz*/etc/ld.so.conf.d/linux-fp-sync-fptun.confz$/etc/NetworkManager/conf.d/fpn0.confz/etc/default/openvswitchz/etc/logrotate.d/openvswitchz/etc/linux-fp-sync.envz/etc/fp-daemons.envz/etc/fp-vdev.iniz /etc/fpm.envz/etc/6WINDGate/fp.configz/etc/6WINDGate/fpnsdk.configz/etc/dms.d/fp-dms.confz/etc/dms.d/fpmd-dms.confz/etc/dms.d/fpsd-dms.confz/etc/fast-path.envz/etc/fps-fp.envzfp-cli fp-vswitch-statszfp-cli dpdk-core-port-mappingz fp-cpu-usagezfp-cli fp-vswitch-maskszfp-cli fp-vswitch-flowsz fp-shmem-dpvizfp-cli stats non-zeroz fp-cli statszfp-cli dpdk-cp-filter-budgetz vm/port-detailed-showrz fp-cli nfct4z vm/port-vip-list-showzfp-shmem-ports -sz show -szfpcmd fp-vswitch-flowszfp-cli fp-vswitch-ports percorezfp-cli dpdk-debug-poolzfp-cli dump-sizezfp-cli conf runtimezfp-cli conf compiledz fp-cli ifacez memory/showzvirtual-acceleratorr)ŚfilterZmangleŚrawZnatzfpcmd nf4-rules zfp-cli fp-vswitch-portsr rr z^([\d]+):[\s]+([^\s]+)ézfp-cli dpdk-cp-filter-budget N) r!r$r%r&r'r(rŚ splitlinesŚreŚmatchŚgroup)rZ files_6windŚtableZ port_listŚportZmportZ port_namerrrr)¬sP      č     ’zOpenVSwitch.collect_ovs_infoc Cs„| |j›d”}|ddkr€|d ”D]T}| |j›d|›|j›d|›|j›d|›|j›d|›|j›d |›g”q*d S) z3 Gather the datapath information for each datapath z dpctl/dump-dpsr rr z dpctl/show -s z dpctl/dump-flows -m z dpctl/dump-conntrack -m z dpctl/ct-stats-show -m z dpctl/ipf-get-status N)rr&r0r%)rZdp_list_resultZdpsrrrr*ńs ūzOpenVSwitch.collect_datapathc Cs| |j›d”}|ddkr"dS|d ”D]Ś}| |j›d|›|j›d|›|j›d|›|j›d |›|j›d |›|j›d |›|j›d |›|j›d |›|j›d|›|j›d|›|j›d|›|j›d|›g ”| |”| |”|jrP|  |j›d|›”}|ddkrP|d ”D]}| |j›d|›”q2|j r.| |j›d|›|j›d|›|j›d|›|j›d|›|j›d|›g”| |j›d|›”}|ddkr|d  ”dd…}|D]}| |j›d|›g”qā| |j›d|›”}|ddkr.|d  ”dd…} | D]Ģ} | |j›d| ›|j›d| ›|j›d|›d | ›|j›d!|›d | ›|j›d"|›d | ›|j›d#|›d | ›|j›d$|›d | ›|j›d%|›d | ›|j›d&|›d | ›|j›d'|›d | ›g ”qGsT ś ’  ’  ųzOpenVSwitch.get_flow_versionsc Cs˜| |j›d|›”}|ddkr”|d ”D]d}| |j›d|›|j›d|›|j›d|›|j›d|›d g”|jr.| |j›d |›”q.d S) z' Collect port list of the given bridge z -t 5 list-ports r rr z cfm/show z qos/show z bond/show z get Interface z optionsr:N)r@rr0r%r&r)rrVZport_list_resultr5rrrr?ˆs’ ł ’zOpenVSwitch.get_port_listN)Ś__name__Ś __module__Ś __qualname__Z short_descZ plugin_nameZprofilesr&rr=r'rr!r,r)r*r+r>r?rrrrrs E IArc@seZdZdZdS)ŚRedHatOpenVSwitch)rzopenvswitch[2-9].*zopenvswitch-dpdkznuage-openvswitch6windgate-fpN)rXrYrZŚpackagesrrrrr[žsr[cs$eZdZdZdZ‡fdd„Z‡ZS)ŚDebianOpenVSwitch)zopenvswitch-switchr)zD/var/snap/openstack-hypervisor/common/etc/openvswitch/system-id.confcsf| d”rXd|_|j›|j›|_|j›|j›|_|j›|j›|_|j›|j›|_tƒ ”dS)Nzopenstack-hypervisorzopenstack-hypervisor.)r Z ovs_cmd_prer&rr=r'Śsuperr,r©Ś __class__rrr,­s zDebianOpenVSwitch.setup)rXrYrZr\Śfilesr,Ś __classcell__rrr_rr]„sr]) Śosrr1Zsos.report.pluginsrrrrrr[r]rrrrŚ s