+
    Û1jBF  ã                   óz   € ^ RI Ht ^ RIt^ RIHtHtHtHt  ! R R]4      t ! R R]]4      t	 ! R R	]]]4      t
R# )
é    )ÚenvironN)ÚPluginÚRedHatPluginÚDebianPluginÚUbuntuPluginc                   óh   a € ] tR t^t o RtRtRtRtRtRt	Rt
RtRtR tR	 tR
 tR tR tR tRtV tR# )ÚOpenVSwitchzOpenVSwitch networkingÚopenvswitchz
ovs-appctlz	ovs-vsctlz	ovs-ofctlz	ovs-dpctlFc           	     óÞ	  a € S P                  R 4      pRR.pS P                  S P                   R24      pVR,          ^ 8H  ;'       d    VR,          P                  R4      S n        \
        ;QJ d    V 3R lRK 4       F  '       g   K   RM	  R	M! V 3R lRK 4       4      S n        \        P                  ! R
4      '       d&   VP                  \        P                  ! R
4      4       V'       g3   S P                  V Uu. uF  pS P                  VR4      NK  	  up4       MS P                  V4       S P                  . RLO4       S P                  S P                  RR4      S P                  RR4      S P                  RR4      .4       \        P                  ! R4      pV'       d"   S P                  S P                  VR4      4       S P                  RRRR/4       S P                  . RMO4       S P                  . RNRNRNRNRNRNRNS P                   R2NS P                   R2NS P                   R2NS P                   R2NS P                   R 2NS P                   R!2NS P                   R"2NS P                   R#2NS P                   R$2NS P                   R%2NS P                   R&2NS P                   R'2NS P                   R(2NS P                   R)2NS P                   R*2NS P                   R+2NS P                   R,2NS P                   R-2NS P                   R.2NS P                   R/2NS P                   R02NS P                   R12NS P                   R22NS P                   R32NS P                    R42NS P                    R52NS P                   R62NS P                   R72NS P                   R82NS P                   R92NS P                   R:2NS P                   R;2NS P                   R<2NS P                   R=2N4       S P                  S P                   R>2R?R@7       S P                  S P                   RA2RBR@7       S P#                  RCRD7       S P#                  RERD7       S P#                  RFRD7       S P#                  RGRD7       S P#                  RHRD7       S P#                  RIRD7       S P%                  4        S P'                  4        S P)                  4        RJ# u upi )NÚall_logsz/var/log/openvswitch/z/usr/local/var/log/openvswitch/z/ -t 5 get Open_vSwitch . other_config:dpdk-initÚstatusÚoutputz"true"c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5i)N)Úis_installed)Ú.0ÚpÚselfs   & €Ú@/usr/lib/python3/dist-packages/sos/report/plugins/openvswitch.pyÚ	<genexpr>Ú$OpenVSwitch.setup.<locals>.<genexpr>)   s'   øé € ð FÙDð 9:˜t×0Ñ0°×3Ð3ÛDùs   ƒ!TFÚ
OVS_LOGDIRz*.logz/usr/local/etc/openvswitchzconf.dbz/etc/openvswitchz/var/lib/openvswitchÚ	OVS_DBDIRz%/var/log/openvswitch/ovs-vswitchd.logÚopenvswitch_daemon_logz%/var/log/openvswitch/ovsdb-server.logÚopenvswitch_server_logzdpdk_nic_bind --statuszdpdk-devbind.py --statuszdriverctl list-deviceszdriverctl -v list-deviceszdriverctl list-overrideszdriverctl -v list-overrideszdriverctl 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	 bfd/showz! 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_configÚopenvswitch_other_config)Útagsz
 -t 5 showÚovs_vsctl_showr
   ©Úunitszopenvswitch-nonetworkzovs-vswitchdzovsdb-serverzovs-configurationzopenvswitch-ipsecN)z6windgate-fpúnuage-openvswitch)z!/run/openvswitch/ovsdb-server.pidz!/run/openvswitch/ovs-vswitchd.pidz&/run/openvswitch/ovs-monitor-ipsec.pid)z/run/openvswitchz/dev/hugepages/z	/dev/vfioz/var/lib/vhost_sockets)Ú
get_optionÚcollect_cmd_outputÚvctlÚ
startswithÚ
check_dpdkÚanyÚcheck_6windr   ÚgetÚappendÚadd_copy_specÚ	path_joinÚadd_file_tagsÚadd_dir_listingÚadd_cmd_outputÚactlÚdpctlÚadd_journalÚcollect_ovs_infoÚcollect_datapathÚcollect_ovs_bridge_info)r   r   Úlog_dirsÚdpdk_enabledÚldÚ	ovs_dbdirs   f     r   ÚsetupÚOpenVSwitch.setup   s<  ø€ à—?‘? :Ó.ˆð $Ø-ð
ˆð
 ×.Ñ.Ø�y‰yˆkÐHÐIóKˆà'¨Õ1°QÑ6÷ Gð GØ'¨Õ1×<Ñ<¸XÓFð 	Œç›3ô FÙDóFŸ3Ÿ3š3ô FÙDóFó FˆÔô �;Š;�|×$Ò$Ø�O‰OœGŸKšK¨Ó5Ô6çØ×ÑÙ6>ó Ù6>°�—‘˜r 7Ö+±hñ õ ð ×Ñ˜xÔ(à×Ñò 
ô 	ð 	×ÑØ�N‰NÐ7¸ÓCØ�N‰NÐ-¨yÓ9Ø�N‰NÐ1°9Ó=ð
ô 	ô
 —K’K Ó,ˆ	ßØ×Ñ˜tŸ~™~¨i¸ÓCÔDà×ÑØ3Ø(Ø3Ø(ð	
ô 	ð 	×Ñò 
ô 	ð 	×Ñð F
à$ðF
ð 'ðF
ð %ð	F
ð
 (ðF
ð 'ðF
ð *ðF
ð 'ðF
ð �y‰yˆk˜Ð$ðF
ð �y‰yˆk˜Ð$ðF
ð �y‰yˆk˜Ð$ðF
ð �y‰yˆkÐ)Ð*ðF
ð" �y‰yˆk˜Ð(ð#F
ð& �y‰yˆk˜Ð)ð'F
ð* �y‰yˆk˜Ð'ð+F
ð. �y‰yˆkÐ+Ð,ð/F
ð2 �y‰yˆk˜Ð&ð3F
ð6 �y‰yˆkÐ0Ð1ð7F
ð: �y‰yˆkÐ+Ð,ð;F
ð> �y‰yˆkÐ-Ð.ð?F
ðB �y‰yˆkÐ*Ð+ðCF
ðF �y‰yˆkÐ,Ð-ðGF
ðJ �y‰yˆk˜Ð#ðKF
ðN �y‰yˆkÐ:Ð;ðOF
ðP �y‰yˆkÐ;Ð<ðQF
ðR �y‰yˆkÐ2Ð3ðSF
ðV �y‰yˆkÐ4Ð5ðWF
ðZ �y‰yˆkÐ3Ð4ð[F
ð^ �y‰yˆkÐ.Ð/ð_F
ðb �y‰yˆkÐ;Ð<ðcF
ðd �y‰yˆkÐ9Ð:ðeF
ðf �y‰yˆkÐ<Ð=ðgF
ðj �z‰zˆlÐ>Ð?ðkF
ðn �z‰zˆlÐ8Ð9ðoF
ðr �y‰yˆkÐ>Ð?ðsF
ðv �y‰yˆkÐ3Ð4ðwF
ðz �y‰yˆkÐ9Ð:ð{F
ð~ �y‰yˆkÐ4Ð5ðF
ðB �y‰yˆkÐ)Ð*ðCF
ðD �y‰yˆk˜Ð(ðEF
ðF �y‰yˆkÐ/Ð0ðGF
ðJ �y‰yˆkÐ6Ð7ðKF
ô F	ðP 	×ÑØ�y‰yˆkÐ>Ð?Ø+ð 	ô 	-ð
 	×Ñ˜tŸy™y˜k¨Ð4Ø!1ð 	ô 	3ð 	×Ñ˜}ÐÔ-Ø×ÑÐ6ÐÔ7Ø×Ñ˜~ÐÔ.Ø×Ñ˜~ÐÔ.Ø×ÑÐ2ÐÔ3Ø×ÑÐ2ÐÔ3Ø×ÑÔØ×ÑÔØ×$Ñ$Ö&ùòy s   Ã=S*c                ó˜  € . R!OpV P                   '       Ed3   V P                  V4       V P                  RRRRRRRRR	V P                   R
2V P                   R2RV P                   R2RV P                   R2RRRRRRRV P                   R2.4       V P                  RR7       R" F  pV P                  RV 2.4       K  	  V P                  R4      pVR,          ^ 8X  dh   VR,          P                  4        FJ  p\        P                  ! RV4      pV'       g   K$  VP                  ^4      pV P                  RV 2.4       KL  	  R # R # R # )#zCollect output of OVS commands zfp-cli fp-vswitch-statszfp-cli dpdk-core-port-mappingzfp-cpu-usagezfp-cli fp-vswitch-maskszfp-cli fp-vswitch-flowszfp-shmem-dpvizfp-cli stats non-zerozfp-cli statszfp-cli dpdk-cp-filter-budgetz vm/port-detailed-showr   zfp-cli nfct4z vm/port-vip-list-showzfp-shmem-ports -sz show -szfpcmd fp-vswitch-flowszfp-cli fp-vswitch-ports percorezfp-cli dpdk-debug-poolzfp-cli dump-sizezfp-cli conf runtimezfp-cli conf compiledzfp-cli ifacez memory/showzvirtual-acceleratorr   zfpcmd nf4-rules zfp-cli fp-vswitch-portsr   r   z^([\d]+):[\s]+([^\s]+)zfp-cli dpdk-cp-filter-budget N)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.env)ÚfilterÚmangleÚrawÚnat)r(   r+   r/   r0   r1   r2   r#   Ú
splitlinesÚreÚmatchÚgroup)r   Úfiles_6windÚtableÚ	port_listÚportÚmportÚ	port_names   &      r   r3   ÚOpenVSwitch.collect_ovs_info®   sp  € ò
ˆð, ××ÑØ×Ñ˜{Ô+Ø×Ñà)Ø/ØØ)Ø)ØØ'ØØ.Ø—9‘9�+Ð3Ð4Ø—9‘9�+˜\Ð*ØØ—9‘9�+Ð3Ð4Ø#Ø—:‘:�,˜hÐ'Ø(Ø1Ø(Ø"Ø%Ø&ØØ—9‘9�+˜\Ð*ð1!ô ð4 ×ÑÐ#8ÐÔ9Û;�Ø×#Ñ#Ð'7¸°wÐ%?Ð$@ÖAñ <ð
 ×/Ñ/Ð0IÓJˆIØ˜Õ" aÔ'Ø% hÕ/×:Ñ:Ö<�DÜŸHšHÐ%>ÀÓE�Eß‘uØ$)§K¡K°£N˜	Ø×+Ñ+Ø;¸I¸;ÐGð-ö ó	 =ñ (ñG ó    c           
     ó`  € V P                  V P                   R24      pVR,          ^ 8X  d‚   VR,          P                  4        Fd  pV P                  V P                   RV 2V P                   RV 2V P                   RV 2V P                   RV 2V P                   RV 2.4       Kf  	  R	# R	# )
z2Gather the datapath information for each datapath z dpctl/dump-dpsr   r   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)r#   r0   rA   r/   )r   Údp_list_resultÚdpss   &  r   r4   ÚOpenVSwitch.collect_datapathó   s¸   € à×0Ñ0°D·I±I°;¸oÐ1NÓOˆØ˜(Õ# qÔ(Ø% hÕ/×:Ñ:Ö<�Ø×#Ñ#Ø—y‘y�k °°Ð6Ø—y‘y�kÐ!6°s°eÐ<Ø—y‘y�kÐ!:¸3¸%Ð@Ø—y‘y�kÐ!9¸#¸Ð?Ø—y‘y�kÐ!7¸°uÐ=ð%ö ó =ñ )rL   c                óž  € V P                  V P                   R24      pVR,          ^ 8w  d   R# VR,          P                  4        EF‚  pV P                  V P                   RV 2V P                   RV 2V P                   RV 2V P                   RV 2V P                   R	V 2V P
                   R
V 2V P
                   RV 2V P
                   RV 2V P
                   RV 2V P
                   RV 2V P
                   RV 2V P
                   RV 2.4       V P                  V4       V P                  V4       V P                  '       dm   V P                  V P                   RV 24      pVR,          ^ 8X  d?   VR,          P                  4        F#  pV P                  V P                   RV 24       K%  	  V P                  '       g   EKŠ  V P                  V P                   RV 2V P                   RV 2V P                   RV 2V P                   RV 2V P                   RV 2.4       V P                  V P                   RV 24      pVR,          ^ 8X  dI   VR,          P                  4       R,          pV F$  pV P                  V P                   RV 2.4       K&  	  V P                  V P                   RV 24      pVR,          ^ 8X  g   EK’  VR,          P                  4       R,          p	V	 FÌ  p
V P                  V P                   RV
 2V P                   RV
 2V P                   RV RV
 2V P                   R V RV
 2V P                   R!V RV
 2V P                   R"V RV
 2V P                   R#V RV
 2V P                   R$V RV
 2V P                   R%V RV
 2V P                   R&V RV
 2.
4       KÎ  	  EK…  	  R# )'z:Gather additional output for each OVS bridge on the host. z -t 5 list-brr   Nr   z# 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 :é   NNz 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$   rA   r/   r0   ÚofctlÚget_flow_versionsÚget_port_listr&   Úexec_cmdr(   Úsplit)r   Úbr_list_resultÚbriÚiface_list_resultÚifaceÚvrf_listÚvrfsÚvrfÚ	evpn_listÚevpnsÚevpns   &          r   r5   Ú#OpenVSwitch.collect_ovs_bridge_info   s  € ð ×0Ñ0°D·I±I°;¸mÐ1LÓMˆØ˜(Õ# qÔ(Ùà! (Õ+×6Ñ6×8ˆCØ×ÑØ—9‘9�+Ð@ÀÀÐFØ—9‘9�+Ð4°S°EÐ:Ø—9‘9�+˜Z¨ uÐ-Ø—9‘9�+Ð-¨c¨UÐ3Ø—9‘9�+˜Z¨ uÐ-Ø—:‘:�,˜l¨3¨%Ð0Ø—:‘:�,Ð/°¨uÐ5Ø—:‘:�,˜l¨3¨%Ð0Ø—:‘:�,Ð0°°Ð6Ø—:‘:�,˜m¨C¨5Ð1Ø—:‘:�,˜f S EÐ*Ø—:‘:�,˜m¨C¨5Ð1ð!ô ð ×"Ñ" 3Ô'à×Ñ˜sÔ#à��ˆØ$(§M¡MØ—y‘y�kÐ!3°C°5Ð9ó%Ð!ð % XÕ.°!Ô3Ø!2°8Õ!<×!GÑ!GÖ!I˜Ø×+Ñ+Ø#Ÿy™y˜kÐ)GÈÀwÐOöñ "Jð ××ÓØ×#Ñ#Ø—y‘y�kÐ!5°c°UÐ;Ø—y‘y�kÐ!AÀ#ÀÐGØ—y‘y�kÐ!BÀ3À%ÐHØ—y‘y�kÐ!3°C°5Ð9Ø—y‘y�k °¨uÐ5ð%ô ð  ×2Ñ2Ø—y‘y�k ¨C¨5Ð1ó3�à˜HÕ%¨Ô*Ø# HÕ-×3Ñ3Ó5°bÕ9�DÛ#˜Ø×+Ñ+Ø#Ÿy™y˜kÐ):¸3¸%Ð@ð-ö ñ  $ð
 !×3Ñ3Ø—y‘y�k ¨S¨EÐ2ó4�	à˜XÕ&¨!×+Ø% hÕ/×5Ñ5Ó7¸Õ;�EÛ %˜Ø×+Ñ+Ø#Ÿy™y˜kÐ)9¸$¸Ð@Ø#Ÿy™y˜kÐ)9¸$¸Ð@Ø#Ÿy™y˜kÐ):¸3¸%¸qÀÀÐGØ#Ÿy™y˜kÐ)>¸s¸eÀ1ÀTÀFÐKØ#Ÿy™y˜kÐ)?À¸uÀAÀdÀVÐLØ#Ÿy™y˜kÐ)@ÀÀÀQÀtÀfÐMØ#Ÿy™y˜kÐ)?À¸uÀAÀdÀVÐLØ#Ÿy™y˜kÐ)EØ"˜e 1 T Fð,à#Ÿy™y˜k¨°S°E¸¸4¸&ÐAØ#Ÿy™y˜kÐ):¸3¸%¸qÀÀÐGð-ö ô !&óg 9rL   c                ó�  € . ROp^R^R^R^R^R^R/pV P                  V P                   R24      pV P                  V P                   RV 24      p. pVR	,          P                  4        FV  pR
V9   g   K  WwP	                  R4      ^,           VP	                  R4       pVP                  RR4      P                  R4      pKX  	  VR.8X  dÁ   VR	,          '       d²   VR	,          P                  4       p	. p
V	 Fj  pRV9   g   K  VP                  R4      pV^,          P                  R4      p\        \        V^ ,          ^4      \        V^,          ^4      ^,           4      p
Kl  	  V
 F"  pWÓ9   g   K  VP                  W=,          4       K$  	  V F´  pWæ9   g   K  V P                  V P                   RV RV 2V P                   RV RV 2V P                   RV RV 2V P                   RV RV 2V P                   RV RV 2V P                   RV RV 2V P                   RV RV 2V P                   RV RV 2.4       K¶  	  R# )z)Collect flow version of the given bridge Ú
OpenFlow10Ú
OpenFlow11Ú
OpenFlow12Ú
OpenFlow13Ú
OpenFlow14Ú
OpenFlow15z -t 5 --versionz -t 5 list bridge r   Ú	protocolsÚ[Ú]Ú"Ú z, zOpenFlow versionszOpenFlow versions Ú:z -O rT   rU   z dump-group-stats rR   z dump-tlv-map rS   z dump-meters z meter-stats N)rj   rk   rl   rm   rn   ro   )r#   rY   r$   rA   ÚfindÚreplacer]   ÚrangeÚintr*   r/   )r   ÚbridgeÚflow_versionsÚofp_versionsÚofp_ver_resultÚbr_infoÚ	br_protosÚlineÚbr_protos_lnÚofp_version_rangeÚ	ver_rangeÚver_spÚverÚprotocolÚflows   &&             r   rZ   ÚOpenVSwitch.get_flow_versionsI  sl  € ò
ˆð �,Ø�,Ø�,Ø�,Ø�,Ø�,ð
ˆð ×0Ñ0Ø�z‰zˆl˜/Ð*ó,ˆð ×)Ñ)Ø�y‰yˆkÐ+¨F¨8Ð4ó6ˆð ˆ	Ø˜HÕ%×0Ñ0Ö2ˆDØ˜dÖ"Ø#§I¡I¨c£N°1Õ$4°T·Y±Y¸s³^ÐD�Ø(×0Ñ0°°bÓ9×?Ñ?ÀÓE’	ñ 3ð ˜˜Ô °×!9Ô!9Ø .¨xÕ 8× CÑ CÓ EÐØˆIã)�Ø&¨$Ö.Ø!ŸZ™ZÐ(<Ó=�FØ  �)Ÿ/™/¨#Ó.�CÜ %¤c¨#¨a­&°"£oÜ&)¨#¨a­&°"£o°aÕ&7ó!9’Iñ	 *ó &�ØÖ+Ø×$Ñ$ \Õ%;Ö<ñ &ó
 "ˆDØÖ Ø×#Ñ#Ø—z‘z�l $ t f¨F°6°(Ð;Ø—z‘z�l $ t f¨M¸&¸ÐBØ—z‘z�l $ t fÐ,>¸v¸hÐGØ—z‘z�l $ t f¨L¸¸ÐAØ—z‘z�l $ t f¨N¸6¸(ÐCØ—z‘z�l $ t fÐ,=¸f¸XÐFØ—z‘z�l $ t f¨M¸&¸ÐBØ—z‘z�l $ t f¨M¸&¸ÐBð	%ö 	ó "rL   c           
     ó®  € V P                  V P                   RV 24      pVR,          ^ 8X  d§   VR,          P                  4        F‰  pV P                  V P                   RV 2V P                   RV 2V P                   RV 2V P                   RV R2.4       V P
                  '       g   Ki  V P                  V P                   R	V 24       K‹  	  R
# R
# )z&Collect port list of the given bridge z -t 5 list-ports r   r   z
 cfm/show z
 qos/show z bond/show z get Interface z optionsrV   N)r\   r$   rA   r/   r0   r&   )r   rz   Úport_list_resultrH   s   &&  r   r[   ÚOpenVSwitch.get_port_list‹  sÝ   € àŸ=™=Ø�y‰yˆkÐ*¨6¨(Ð3ó5Ðð ˜HÕ%¨Ô*Ø(¨Õ2×=Ñ=Ö?�Ø×#Ñ#Ø—y‘y�k ¨D¨6Ð2Ø—y‘y�k ¨D¨6Ð2ð —y‘y�k ¨T¨FÐ3à—y‘y�k °°°hÐ?ð%ô ð —?—?’?Ø×'Ñ'ØŸ9™9˜+Ð%CÀDÀ6ÐJöLó @ñ +rL   )r(   r&   N)ÚnetworkÚvirt)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú
short_descÚplugin_nameÚprofilesr0   r$   rY   r1   r&   r(   r:   r3   r4   r5   rZ   r[   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r	   r	      s_   ø‡ € à)€JØ€KØ"€HØ€DØ€DØ€EØ€EØ€JØ€KòP'òdCòJòGòR@÷DLð LrL   r	   c                   ó   € ] tR tRtRtRtR# )ÚRedHatOpenVSwitchi¡  © N)r
   zopenvswitch[2-9].*zopenvswitch-dpdkznuage-openvswitch6windgate-fp)rŽ   r�   r�   r‘   Úpackagesr•   rš   rL   r   r™   r™   ¡  s	   † ð „HrL   r™   c                   ó:   a a€ ] tR tRt oRtRtV 3R ltRtVtV ;t	# )ÚDebianOpenVSwitchi¨  c                óX  <€ V P                  R 4      '       d„   RV n        V P                   V P                   2V n        V P                   V P                   2V n        V P                   V P                   2V n        V P                   V P
                   2V n        \        SV `  4        R# )zopenstack-hypervisorzopenstack-hypervisor.N)r   Úovs_cmd_prer0   r$   rY   r1   Úsuperr:   )r   Ú	__class__s   &€r   r:   ÚDebianOpenVSwitch.setup°  s’   ø€ à×ÑÐ3×4Ò4à6ˆDÔà×+Ñ+Ð,¨T¯Y©Y¨KÐ8ˆDŒIØ×+Ñ+Ð,¨T¯Y©Y¨KÐ8ˆDŒIØ ×,Ñ,Ð-¨d¯j©j¨\Ð:ˆDŒJØ ×,Ñ,Ð-¨d¯j©j¨\Ð:ˆDŒJä‰‰ŽrL   )r0   r1   rY   rŸ   r$   )zopenvswitch-switchr!   )zD/var/snap/openstack-hypervisor/common/etc/openvswitch/system-id.conf)
rŽ   r�   r�   r‘   r›   Úfilesr:   r•   r–   Ú__classcell__)r¡   r—   s   @@r   r�   r�   ¨  s   ù‡ € à:€Hð€E÷õ rL   r�   )Úosr   rB   Úsos.report.pluginsr   r   r   r   r	   r™   r�   rš   rL   r   Ú<module>r§      sB   ðõ Û 	ß OÓ OôNL�&ô NLôb ˜ \ô  ô˜ \°<ö rL   