Current File : //usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/openvswitch.cpython-312.pyc
�

-�_gE��x�ddlmZddlZddlmZmZmZmZGd�de�ZGd�dee�Z	Gd�d	eee�Z
y)
�)�environN)�Plugin�RedHatPlugin�DebianPlugin�UbuntuPluginc�T�eZdZdZdZdZdZdZdZdZ	dZ
dZd	�Zd
�Z
d�Zd�Zd
�Zd�Zy)�OpenVSwitchzOpenVSwitch networking�openvswitch)�network�virtz
ovs-appctlz	ovs-vsctlz	ovs-ofctlz	ovs-dpctlFc	�	���jd�}ddg}�j�j�d��}|ddk(xr|djd��_t�fd	�d
D���_tjd�r$|jtjd��|s0�j|D�cgc]}�j|d���c}�n�j|��jgd
���j�jdd��jdd��jdd�g�tjd�}|r!�j�j|d���jddd���jgd���jgd�d�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�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�j�d>�d?�@��j�j�dA�dB�@��j#dC�D��j#dE�D��j#dF�D��j#dG�D��j#dH�D��j#dI�D��j%��j'��j)�ycc}w)JN�all_logsz/var/log/openvswitch/z/usr/local/var/log/openvswitch/z/ -t 5 get Open_vSwitch . other_config:dpdk-init�statusr�outputz"true"c3�@�K�|]}�j|����y�w)N)�is_installed)�.0�p�selfs  ��@/usr/lib/python3/dist-packages/sos/report/plugins/openvswitch.py�	<genexpr>z$OpenVSwitch.setup.<locals>.<genexpr>)s"�����F��t�0�0��3�F�s�)z6windgate-fp�nuage-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_DBDIR�openvswitch_daemon_log�openvswitch_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 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_config�openvswitch_other_config)�tagsz
 -t 5 show�ovs_vsctl_showr
��unitszopenvswitch-nonetworkzovs-vswitchdzovsdb-serverzovs-configurationzopenvswitch-ipsec)�
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)rr�log_dirs�dpdk_enabled�ld�	ovs_dbdirs`     r�setupzOpenVSwitch.setups�����?�?�:�.��
$�-�
��
�.�.��y�y�k�H�I�K��'��1�Q�6�G�'��1�<�<�X�F�	
���F�D�F�F����;�;�|�$��O�O�G�K�K��5�6�����6>� �02����r�7�+� �
�
���x�(����
�	�	
����N�N�7��C��N�N�-�y�9��N�N�1�9�=�
�	�
�K�K��,�	�����t�~�~�i��C�D����(�(�	
�	�	
���
�	�	
���B
�$�B
�
'�B
�
%�	B
�

(�B
�
'�
B
�
*�B
�
'�B
��y�y�k��$�B
��y�y�k��$�B
��y�y�k��$�B
��y�y�k�)�*�B
�"�y�y�k��(�#B
�&�y�y�k��)�'B
�*�y�y�k��'�+B
�.�y�y�k�+�,�/B
�2�y�y�k��&�3B
�6�y�y�k�0�1�7B
�:�y�y�k�-�.�;B
�>�y�y�k�*�+�?B
�B�y�y�k�,�-�CB
�F�y�y�k�:�;�GB
�H�y�y�k�;�<�IB
�J�y�y�k�2�3�KB
�N�y�y�k�4�5�OB
�R�y�y�k�3�4�SB
�V�y�y�k�.�/�WB
�Z�y�y�k�;�<�[B
�\�y�y�k�9�:�]B
�^�y�y�k�<�=�_B
�b�z�z�l�>�?�cB
�f�z�z�l�8�9�gB
�j�y�y�k�>�?�kB
�n�y�y�k�3�4�oB
�r�y�y�k�9�:�sB
�v�y�y�k�4�5�wB
�z�y�y�k�)�*�{B
�|�y�y�k��(�}B
�~�y�y�k�/�0�B
�B�y�y�k�6�7�CB
�B	�H	
����y�y�k�>�?�+�	�	-�
	
���t�y�y�k��4�!1�	�	3�	
���}��-����6��7����~��.����~��.����2��3����2��3����������$�$�&��q s�;Q?c�Z�gd�}|j�r|j|�|jdddddddd	d
|j�d�|j�d�d
|j�d�d|j�d�ddddddd|j�d�g�|jd��dD]}|jd|��g��|j
d�}|ddk(rX|d j�D]A}tjd!|�}|s�|jd"�}|jd#|��g��Cy$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!)�filter�mangle�raw�natzfpcmd nf4-rules zfp-cli fp-vswitch-portsrrrz^([\d]+):[\s]+([^\s]+)�zfp-cli dpdk-cp-filter-budget N)r)r,r0r1r2r3r$�
splitlines�re�match�group)r�files_6wind�table�	port_list�port�mport�	port_names       rr4zOpenVSwitch.collect_ovs_info�sw��
��,������{�+����)�/��)�)��'��.��9�9�+�3�4��9�9�+�\�*���9�9�+�3�4�#��:�:�,�h�'�(�1�(�"�%�&���9�9�+�\�*�1!�
�4
���#8��9�;�
B���#�#�'7��w�%?�$@�A�
B�
�/�/�0I�J�I���"�a�'�%�h�/�:�:�<��D��H�H�%>��E�E��$)�K�K��N�	��+�+�;�I�;�G�-��	�(�G�c
�D�|j|j�d��}|ddk(rz|dj�D]c}|j|j�d|��|j�d|��|j�d|��|j�d|��|j�d	|��g��ey
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$r1rBr0)r�dp_list_result�dpss   rr5zOpenVSwitch.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�=�%��
�)rLc��|j|j�d��}|ddk7ry|dj�D�]G}|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|�|jr`|j|j�d|���}|ddk(r8|dj�D]"}|j|j�d|����$|js��q|j|j�d|��|j�d|��|j�d|��|j�d|��|j�d|��g�|j|j�d|���}|ddk(r>|dj�dd}|D]#}|j|j�d|��g��%|j|j�d|���}|ddk(s��b|dj�dd}	|	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
�����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%rBr0r1�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           rr6z#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�������#�#��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�a�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@	rLc
��gd�}ddddddd�}|j|j�d	��}|j|j�d
|���}g}|dj�D]N}d|vs�||jd
�dz|jd�}|j	dd�jd�}�P|dgk(r�|dr�|dj�}	g}
|	D]U}d|vs�|jd�}|djd�}t
t|dd�t|dd�dz�}
�W|
D]}
|
|vs�|j||
��|D]�}||vs�|j|j�d|�d|��|j�d|�d|��|j�d|�d|��|j�d|�d|��|j�d|�d|��|j�d|�d|��g���y) z* Collect flow version of the given bridge )�
OpenFlow10�
OpenFlow11�
OpenFlow12�
OpenFlow13�
OpenFlow14�
OpenFlow15rhrirjrkrlrm)rVrA����z -t 5 --versionz -t 5 list bridge r�	protocols�[rV�]�"�z, zOpenFlow versionszOpenFlow versions �:r�z -O rSrTz dump-group-stats rQz dump-tlv-map rRN)r$r%rB�find�replacer\�range�intr+r0rX)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               rrYzOpenVSwitch.get_flow_versionsEsH��
�
�������

���0�0�D�I�I�;�o�1N�O���)�)��y�y�k�+�F�8�4�6���	��H�%�0�0�2�	F�D��d�"�#�D�I�I�c�N�1�$4�T�Y�Y�s�^�D��(�0�0��b�9�?�?��E�	�	F�������!9� .�x� 8� C� C� E���I�)�
9��&�$�.�!�Z�Z�(<�=�F� ��)�/�/�#�.�C� %�c�#�a�&�"�o�&)�#�a�&�"�o�a�&7�!9�I�	
9�&�
=���|�+��$�$�\�(�%;�<�
=�
"�		�D��y� ��#�#��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�
%��		rLc
��|j|j�d|���}|ddk(r�|dj�D]�}|j|j�d|��|j�d|��|j�d|��|j�d|�d	�g�|j
s�b|j|j�d
|�����yy)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 optionsrUN)r[r%rBr0r1r')rr}�port_list_resultrIs    rrZzOpenVSwitch.get_port_list�s����=�=��y�y�k�*�6�(�3�5���H�%��*�(��2�=�=�?�

L���#�#��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�

L�+rLN)�__name__�
__module__�__qualname__�
short_desc�plugin_name�profilesr1r%rXr2r'r)r;r4r5r6rYrZ�rLrr	r	sU��)�J��K�"�H��D��D��E��E��J��K�L'�\C�J�G�R=�~LrLr	c��eZdZdZy)�RedHatOpenVSwitch)r
zopenvswitch[2-9].*zopenvswitch-dpdkznuage-openvswitch6windgate-fpN)r�r�r��packagesr�rLrr�r��s	�� �HrLr�c�&��eZdZdZdZ�fd�Z�xZS)�DebianOpenVSwitch)zopenvswitch-switchr)zD/var/snap/openstack-hypervisor/common/etc/openvswitch/system-id.confc�J��|jd�r�d|_|j�|j��|_|j�|j��|_|j�|j��|_|j�|j
��|_t�|��y)Nzopenstack-hypervisorzopenstack-hypervisor.)r�ovs_cmd_prer1r%rXr2�superr;)r�	__class__s �rr;zDebianOpenVSwitch.setup�s�������3�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)r�r�r�r��filesr;�
__classcell__)r�s@rr�r��s���:�H�
�E��rLr�)�osrrC�sos.report.pluginsrrrrr	r�r�r�rLr�<module>r�sB���	�O�O�GL�&�GL�T ��\� ���\�<�rL