Sindbad~EG File Manager
3
�f] � @ s2 d dl Z d dlmZmZmZ G dd� dee�ZdS )� N)�Plugin�IndependentPlugin� PluginOptc @ sB e Zd ZdZdZdZeddedd �gZd
d� Z dd
� Z
dd� ZdS )�Ebpfz eBPF toolZebpf�system�kernel�network�
namespacesNz0Number of namespaces to collect, 0 for unlimited)�defaultZval_typeZdescc C sr g }yt j|�}W n. tk
r@ } z| jd| � |S d}~X nX x*t|�D ]\}}d|krL|j|d � qLW |S )z! Collect the list of program IDs z$Couldn't parse bpftool prog list: %sN�id)�json�loads� Exception� _log_info� enumerate�append)�selfZ prog_json�outZ prog_data�err�_�item� r �/usr/lib/python3.6/ebpf.py�get_bpftool_prog_ids s zEbpf.get_bpftool_prog_idsc C sr g }yt j|�}W n. tk
r@ } z| jd| � |S d}~X nX x*t|�D ]\}}d|krL|j|d � qLW |S )z Collect the list of mapIDs z$Could not parse bpftool map list: %sNr )r r
r r r r )r Zmap_jsonr Zmap_datar r r r r r �get_bpftool_map_ids% s zEbpf.get_bpftool_map_idsc
C s� | j d�}x6| j|d �D ]$}xdD ]}| jd||f � q$W qW | j d�}x$| j|d �D ]}| jd| � q\W | jdd d
ddg� d
}| jd�}x.| j|d�D ]}|| d } | j| d � q�W d S )Nzbpftool -j prog list�output�xlated�jitedzbpftool prog dump %s id %szbpftool -j map listzbpftool map dump id %szbpftool prog listzbpftool map listzbpftool cgroup treezbpftool net listzbpftool struct_ops dumpzip netns exec r )Zns_max� )r 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 �setup2 s&