3 Ü““iÞEã@sfddlmZddlZddlmZmZmZmZGdd„deƒZGdd„deeƒZ Gdd „d eeeƒZ dS) é)ÚenvironN)ÚPluginÚ RedHatPluginÚ DebianPluginÚ UbuntuPluginc@s`eZdZdZdZdZdZdZdZdZ d Z d Z d d „Z d d „Z dd„Zdd„Zdd„Zdd„ZdS)Ú OpenVSwitchzOpenVSwitch networkingÚ openvswitchÚnetworkÚvirtz ovs-appctlz ovs-vsctlz ovs-ofctlz ovs-dpctlFc*sˆjdƒ}ddg}ˆjˆj›dƒ}|ddko<|djdƒˆ_t‡fd d „dSDƒƒˆ_tjd ƒrr|j tjd ƒƒ|sˆj ‡fdd„|Dƒƒn ˆj |ƒˆj dddgƒˆj ˆj ddƒˆj ddƒˆj ddƒgƒtjdƒ}|ròˆj ˆj |dƒƒˆj dddœƒˆj ddddgƒˆjdd d!d"d#d$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@ˆj›dAˆj›dBˆj›dCˆj›dDˆj›dEˆj›dFg(ƒˆjˆj›dGdHdIˆjˆj›dJdKdIˆjdLdMˆjdNdMˆjdOdMˆjdPdMˆjdQdMˆjdRdMˆjƒˆjƒˆjƒdS)TNÚ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|]}ˆj|ƒVqdS)N)Ú is_installed)Ú.0Úp)Úself©ú!/usr/lib/python3.6/openvswitch.pyú )sz$OpenVSwitch.setup..ú 6windgate-fpúnuage-openvswitchZ OVS_LOGDIRcsg|]}ˆj|dƒ‘qS)z*.log)Ú path_join)rZld)rrrú 1sz%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.logz/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 -vz 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)Ztagsz -t 5 showZovs_vsctl_showr)Úunitszopenvswitch-nonetworkz ovs-vswitchdz ovsdb-serverzovs-configurationzopenvswitch-ipsec)rr)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_dbdirr)rrÚsetups²                                                 zOpenVSwitch.setupcCs&ddddddddd d d d d ddddddg}|jr"|j|ƒ|jddddddddd|j›d|j›dd|j›d d!|j›d"d#d$d%d&d'd(d)|j›d*gƒ|jd+d,xd:D]}|jd1|›gƒq®W|jd2ƒ}|d3d4kr"x@|d5jƒD]0}tj d6|ƒ}|rî|j d7ƒ}|jd8|›gƒqîWd9S);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-showz upcall/showz 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-accelerator)rÚfilterÚmangleÚrawÚnatzfpcmd nf4-rules zfp-cli fp-vswitch-portsr rr z^([\d]+):[\s]+([^\s]+)ézfp-cli dpdk-cp-filter-budget N)r+r,r-r.) rr"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|j›dƒ}|ddkr„xd|djƒD]T}|j|j›d|›|j›d|›|j›d|›|j›d|›|j›d |›gƒq,Wd 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|j›dƒ}|ddkr"dSxø|djƒD]æ}|j|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|ƒ|j|ƒ|jrX|j |j›d|›ƒ}|ddkrXx,|djƒD]}|j|j›d|›ƒq8W|j r2|j|j›d|›|j›d|›|j›d|›|j›d|›|j›d|›gƒ|j|j›d|›ƒ}|ddkr|dj ƒdd…}x&|D]}|j|j›d|›gƒqìW|j|j›d|›ƒ}|ddkr2|dj ƒdd…} xÔ| D]Ì} |j|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 ƒqJWq2WdS)(z; Gather additional output for each OVS bridge on the host. z -t 5 list-brr rNr z# bridge/dump-flows --offload-stats z dpif/show-dp-features z fdb/show z fdb/stats-show z mdb/show z dump-flows z dump-ports-desc z dump-ports z queue-get-config z queue-stats z show z dump-groups z -t 5 list-ifaces z netdev-dpdk/get-mempool-info z evpn/vip-list-show z bridge/dump-conntracks-summary z! bridge/acl-table ingress/egress z bridge/acl-table z ofproto/show z vrf/list éz vrf/route-table z evpn/list z evpn/mac-table z evpn/arp-table z evpn/dump-flows ú z evpn/dhcp-pool-show z evpn/dhcp-relay-show z evpn/dhcp-static-show z evpn/dhcp-table-show z evpn/proxy-arp-filter-list z evpn/show z port/dscp-table ) rrr0r#r$ÚofctlÚget_flow_versionsÚ get_port_listrÚexec_cmdrÚsplit) rZbr_list_resultZbriZiface_list_resultZifaceZvrf_listZvrfsZvrfZ evpn_listZevpnsZevpnrrrr)þsp      z#OpenVSwitch.collect_ovs_bridge_infocCsþddddddg}dddddddœ}|j|j›dƒ}|j|j›d |›ƒ}g}xJ|d jƒD]:}d |kr\||jd ƒd |jdƒ…}|jddƒjdƒ}q\W|dgkoª|d r6|d jƒ} g} xN| D]F}d|krÄ|jdƒ} | d jdƒ} tt| ddƒt| d dƒd ƒ} qÄWx&| D]} | |kr|j|| ƒqWxÂ|D]º}||kr<|j |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ƒq s