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

-�_gq��8�ddlZddlmZmZmZGd�dee�Zy)�N)�Plugin�IndependentPlugin�	PluginOptc�H�eZdZdZdZdZdZedded��gZ	d	�Z
d
�Zd�Zy)�Ebpfz	eBPF tool�ebpf)�system�kernel�network)�bpftool�
namespacesNz0Number of namespaces to collect, 0 for unlimited)�default�val_type�descc���g}	tj|�}t	|�D]\}}d|vs�|j|d�� |S#t$r }|jd|���|cYd}~Sd}~wwxYw)z! Collect the list of program IDs z"Couldn't parse bpftool prog list: N�id��json�loads�	Exception�	_log_info�	enumerate�append)�self�	prog_json�out�	prog_data�err�_�items       �9/usr/lib/python3/dist-packages/sos/report/plugins/ebpf.py�get_bpftool_prog_idszEbpf.get_bpftool_prog_idss}����	��
�
�9�-�I�!��+�	'�G�A�t��t�|��
�
�4��:�&�	'��
��
�	��N�N�?��u�E�F��J��	���A�	A0�A+�%A0�+A0c���g}	tj|�}t	|�D]\}}d|vs�|j|d�� |S#t$r }|jd|���|cYd}~Sd}~wwxYw)z Collect the list of mapIDs z"Could not parse bpftool map list: Nrr)r�map_jsonr�map_datarrr s       r!�get_bpftool_map_idszEbpf.get_bpftool_map_ids&s}����	��z�z�(�+�H�!��*�	'�G�A�t��t�|��
�
�4��:�&�	'��
��
�	��N�N�?��u�E�F��J��	�r#c���|jd�}|j|d�D] }dD]}|jd|�d|�����"|jd�}|j|d�D]}|jd|����|jgd��d	}|j	d
�}|j|��D]}||zdz}	|j|	d
z�� y)Nzbpftool -j prog list�output)�xlated�jitedzbpftool prog dump z id zbpftool -j map listzbpftool map dump id )zbpftool prog listzbpftool map listzbpftool cgroup tree�bpftool net listzbpftool struct_ops dumpzip netns exec r
)�ns_max� r,)�collect_cmd_outputr"�add_cmd_outputr'�
get_option�get_network_namespaces)
r�progs�prog_id�dumpcmd�maps�map_id�
cmd_prefix�nsps�	namespace�
ns_cmd_prefixs
          r!�setupz
Ebpf.setup3s���'�'�(>�?���0�0��x��A�	2�G�.�
2���#�#�&8��	��'.�i�%1�2�
2�	2�
�&�&�'<�=���.�.�t�H�~�>�	A�F����"6�v�h� ?�@�	A�	
���
�	�&�
����|�,���4�4�D�4�A�	D�I�&��2�S�8�M����
�0B� B�C�	D�)
�__name__�
__module__�__qualname__�
short_desc�plugin_name�profiles�commandsr�int�option_listr"r'r<�r=r!rr
sA���J��K�.�H��H�	�,��s�I�	K��K�
��Dr=r)r�sos.report.pluginsrrrrrGr=r!�<module>rIs#���C�C�ED�6�$�EDr=