File: //lib/python3.9/site-packages/sos/report/plugins/__pycache__/ebpf.cpython-39.opt-1.pyc
a
^��c� � @ s2 d dl mZmZmZ d dlZG dd� dee�ZdS )� )�Plugin�IndependentPlugin� PluginOptNc @ sB e Zd ZdZdZdZeddedd�gZdd � Z d
d� Z
dd
� ZdS )�Ebpfz eBPF toolZebpf)�systemZkernelZnetwork�
namespacesNz0Number of namespaces to collect, 0 for unlimited)�defaultZval_typeZdescc
C s~ g }zt �|�}W n6 tyH } z| �d| � |W Y d }~S d }~0 0 tt|��D ]"}d|| v rV|�|| d � qV|S )Nz-Could not parse bpftool prog list as JSON: %s�id��json�loads� ExceptionZ _log_info�range�len�append)�selfZ prog_json�outZ prog_data�e�item� r �;/usr/lib/python3.9/site-packages/sos/report/plugins/ebpf.py�get_bpftool_prog_ids s zEbpf.get_bpftool_prog_idsc
C s~ g }zt �|�}W n6 tyH } z| �d| � |W Y d }~S d }~0 0 tt|��D ]"}d|| v rV|�|| d � qV|S )Nz,Could not parse bpftool map list as JSON: %sr r
)r Zmap_jsonr Zmap_datar r r r r �get_bpftool_map_ids$ s zEbpf.get_bpftool_map_idsc
C s� | � d�}| �|d �D ] }dD ]}| �d||f � q q| � d�}| �|d �D ]}| �d| � qR| �g d�� d}| �d �}| j|d
�D ]}|| d } | �| d � q�d S )
Nzbpftool -j prog list�output)ZxlatedZjitedzbpftool prog dump %s id %szbpftool -j map listzbpftool map dump id %s)zbpftool prog listzbpftool map listzbpftool cgroup tree�bpftool net listzbpftool struct_ops dumpzip netns exec r )Zns_max� r )Zcollect_cmd_outputr Zadd_cmd_outputr Z
get_optionZget_network_namespaces)
r ZprogsZprog_idZdumpcmd�mapsZmap_idZ
cmd_prefixZnsps� namespaceZ
ns_cmd_prefixr r r �setup0 s
�
z
Ebpf.setup)�__name__�
__module__�__qualname__Z
short_descZplugin_nameZprofilesr �intZoption_listr r r r r r r r
s ��r )Zsos.report.pluginsr r r r r r r r r �<module> s