File: //proc/1233/cwd/usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/ebpf.cpython-310.pyc
o
i��d� � @ 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 tool�ebpf)�system�kernel�network�
namespacesNz0Number of namespaces to collect, 0 for unlimited)�default�val_type�descc
C �~ g }zt �|�}W n ty$ } z| �d| � |W Y d }~S d }~ww tt|��D ]}d|| v r<|�|| d � q+|S )Nz-Could not parse bpftool prog list as JSON: %s�id��json�loads� Exception� _log_info�range�len�append)�self� prog_json�out� prog_data�e�item� r �9/usr/lib/python3/dist-packages/sos/report/plugins/ebpf.py�get_bpftool_prog_ids � ���zEbpf.get_bpftool_prog_idsc
C r )Nz,Could not parse bpftool map list as JSON: %sr r )r �map_jsonr �map_datar r r r r �get_bpftool_map_ids$ r! zEbpf.get_bpftool_map_idsc
C s� | � d�}| �|d �D ]}dD ]}| �d||f � qq| � d�}| �|d �D ] }| �d| � q)| �g d�� d}| �d �}| j|d
�D ]}|| d } | �| d � qGd S )
Nzbpftool -j prog list�output)�xlated�jitedzbpftool 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
)�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_prefixr r r �setup0 s"