JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr O6ufjd?jd@jjdAdBCjjdDdECj!dFGj!dHGj!dIGj!dJGj!dKGj!dLGj#j%j'ycc}w)MNall_logsz/var/log/openvswitch/z/usr/local/var/log/openvswitch/z/ -t 5 get Open_vSwitch . other_config:dpdk-initstatusroutputz"true"c3@K|]}j|yw)N) is_installed).0pselfs @/usr/lib/python3/dist-packages/sos/report/plugins/openvswitch.py z$OpenVSwitch.setup..)s"Ft003Fs)z 6windgate-fpnuage-openvswitch OVS_LOGDIRz*.log)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/openvswitch OVS_DBDIRopenvswitch_daemon_logopenvswitch_server_log)z%/var/log/openvswitch/ovs-vswitchd.logz%/var/log/openvswitch/ovsdb-server.logzls -laZ /run/openvswitchzls -laZ /dev/hugepages/zls -laZ /dev/vfiozls -laZ /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 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_configopenvswitch_other_config)tagsz -t 5 showovs_vsctl_showr unitszopenvswitch-nonetworkz ovs-vswitchdz ovsdb-serverzovs-configurationzopenvswitch-ipsec) get_optioncollect_cmd_outputvctl startswith check_dpdkany check_6windrgetappend add_copy_spec path_join add_file_tagsadd_cmd_outputactldpctl add_journalcollect_ovs_infocollect_datapathcollect_ovs_bridge_info)rrlog_dirs dpdk_enabledld ovs_dbdirs` rsetupzOpenVSwitch.setups??:. $ -  ..yykH IK '1Q6G'1< 02r7+     x (    NN7 C NN-y 9 NN19 =  KK ,    t~~iC D ((    G &G  &G  G - G  %G  'G  %G  (G  'G  *G  'G yyk $G "yyk $#G &yyk $'G (yyk) *)G ,yyk (-G 0yyk )1G 4yyk '5G 8yyk+ ,9G <yyk &=G @yyk0 1AG Dyyk- .EG Hyyk* +IG Lyyk, -MG Pyyk: ;QG Ryyk; ?mG pzzl8 9qG tyyk> ?uG xyyk3 4yG |yyk9 :}G @yyk4 5AG Dyyk) *EG Fyyk (GG Hyyk/ 0IG Lyyk6 7MG G R yyk> ?+  - tyyk4!1  3 }- 67 ~. ~. 23 23   $$&m s;Q4cZgd}|jr|j||jdddddddd d |jd |jd d |jdd|jdddddddd|jdg|j ddD]}|jd|g|j d}|ddk(rX|d jD]A}tjd!|}|s|jd"}|jd#|gCy$y$y$)%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!)filtermanglerawnatzfpcmd nf4-rules zfp-cli fp-vswitch-portsrrrz^([\d]+):[\s]+([^\s]+)zfp-cli dpdk-cp-filter-budget N) r)r,r/r0r1r2r$ splitlinesrematchgroup)r files_6windtable port_listportmport port_names rr3zOpenVSwitch.collect_ovs_infosw ,      { +   )/))'.99+3499+\*99+34#::,h'(1("%&99+\*1! 4   #8  9; B##'7w%?$@A B //0IJI"a'%h/::<DHH%>EE$)KKN ++;I;G- (G c D|j|jd}|ddk(rz|djD]c}|j|jd||jd||jd||jd||jd |gey y ) z3 Gather the datapath information for each datapath z dpctl/dump-dpsrrrz 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)r$r0rAr/)rdp_list_resultdpss rr4zOpenVSwitch.collect_datapaths00DII;o1NO ( #q (%h/::< ##yyk6yyk!6se<yyk!:3%@yyk!9#?yyk!7u= %  )rKc|j|jd}|ddk7ry|djD]G}|j|jd||jd||jd||jd ||jd ||j d ||j d ||j d ||j d||j d||j d||j d|g |j ||j||jr`|j|jd|}|ddk(r8|djD]"}|j|jd|$|jsq|j|jd||jd||jd||jd||jd|g|j|jd|}|ddk(r>|djdd}|D]#}|j|jd|g%|j|jd|}|ddk(sb|djdd} | D]} |j|jd| |jd| |jd|d | |jd!|d | |jd"|d | |jd#|d | |jd$|d | |jd%|d | |jd&|d | |jd'|d | g Jy)(z; Gather additional output for each OVS bridge on the host. z -t 5 list-brrrNrz# bridge/dump-flows --offload-stats z dpif/show-dp-features z fdb/show z fdb/stats-show z mdb/show dump-flows  dump-ports-desc z dump-ports z queue-get-config z queue-stats  show dump-groups z -t 5 list-ifaces  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 ) r$r%rAr/r0ofctlget_flow_versions get_port_listr'exec_cmdr)split) rbr_list_resultbriiface_list_resultifacevrf_listvrfsvrf evpn_listevpnsevpns rr5z#OpenVSwitch.collect_ovs_bridge_infos,00DII;m1LM ( #q ( !(+668@ C   99+@F99+4SE:99+Zu-99+-cU399+Zu-::,l3%0::,/u5::,l3%0::,06::,mC51::,fSE*::,mC51 !   " "3 '   s #$(MMyyk!3C59%!%X.!3!28!se1TFK#yyk)?uAdVL#yyk)@QtfM#yyk)?uAdVL#yyk)E"e1TF,#yykSE4&A#yyk):3%qG -  g@ rKc gd}ddddddd}|j|jd }|j|jd |}g}|d jD]N}d |vs||jd dz|jd}|j ddj d}P|dgk(r|d r|d j} g} | D]U}d|vs|j d} | dj d} t t| ddt| dddz} W| D]} | |vs|j|| |D]}||vs|j|jd|d||jd|d||jd|d||jd|d||jd|d||jd|d|gy) z* Collect flow version of the given bridge ) OpenFlow10 OpenFlow11 OpenFlow12 OpenFlow13 OpenFlow14 OpenFlow15rgrhrirjrkrl)rUr@z -t 5 --versionz -t 5 list bridge r protocols[rU]"z, zOpenFlow versionszOpenFlow versions :rz -O rRrSz dump-group-stats rPz dump-tlv-map rQN) r$r%rAfindreplacer[rangeintr+r/rW)rbridge flow_versions ofp_versionsofp_ver_resultbr_info br_protosline br_protos_lnofp_version_range ver_rangever_spverprotocolflows rrXzOpenVSwitch.get_flow_versionsCsH   00DII;o1NO))yyk+F8 46 H%002 FDd"#DIIcN1$4TYYs^D (00b9??E  F  !9 .x 8 C C E I) 9&$.!ZZ(<=F )//#.C %c#a&"o&)#a&"oa&7!9I  9& =|+$$\(%;< = " Dy ##zzl$tfF6(;zzl$tfM&Bzzl$tf,>vhGzzl$tfLAzzl$tfN6(Czzl$tf,=fXF % rKc |j|jd|}|ddk(r|djD]}|j|jd||jd||jd||jd|d g|j sb|j|jd |y y ) z' Collect port list of the given bridge z -t 5 list-ports rrrz cfm/show z qos/show z bond/show z get Interface z optionsrTN)rZr%rAr/r0r')rr|port_list_resultrHs rrYzOpenVSwitch.get_port_lists==yyk*6( 35 H % *(2==? L##yykD62yykD62yykTF3yykh?%??''99+%CD6JL L +rKN)__name__ __module__ __qualname__ short_desc plugin_nameprofilesr0r%rWr1r'r)r:r3r4r5rXrYrKrr r sU)JK"H D D E EJKJ'XCJ GR=~LrKr ceZdZdZy)RedHatOpenVSwitch)r zopenvswitch[2-9].*zopenvswitch-dpdkznuage-openvswitch6windgate-fpN)rrrpackagesrrKrrrs  HrKrc&eZdZdZdZfdZxZS)DebianOpenVSwitch)zopenvswitch-switchr)zD/var/snap/openstack-hypervisor/common/etc/openvswitch/system-id.confcJ|jdrd|_|j|j|_|j|j|_|j|j|_|j|j |_t |y)Nzopenstack-hypervisorzopenstack-hypervisor.)r ovs_cmd_prer0r%rWr1superr:)r __class__s rr:zDebianOpenVSwitch.setups   3 46D ++,TYYK8DI++,TYYK8DI ,,-djj\:DJ ,,-djj\:DJ  rK)rrrrfilesr: __classcell__)rs@rrrs:H E  rKr) osrrBsos.report.pluginsrrrrr rrrrKrrsB OOEL&ELP  \  \<rK