o id @s2ddlmZmZmZddlZGdddeeZdS))PluginIndependentPlugin PluginOptNc@sBeZdZdZdZdZeddeddgZdd Z d d Z d d Z dS)Ebpfz eBPF toolebpf)systemkernelnetwork namespacesNz0Number of namespaces to collect, 0 for unlimited)defaultval_typedescc C~g}zt|}Wnty$}z|d||WYd}~Sd}~wwtt|D]}d||vr<|||dq+|S)Nz-Could not parse bpftool prog list as JSON: %sidjsonloads Exception _log_inforangelenappend)self prog_jsonout prog_dataeitemr9/usr/lib/python3/dist-packages/sos/report/plugins/ebpf.pyget_bpftool_prog_ids zEbpf.get_bpftool_prog_idsc Cr)Nz,Could not parse bpftool map list as JSON: %srr)rmap_jsonrmap_datarrrrrget_bpftool_map_ids$r!zEbpf.get_bpftool_map_idsc Cs|d}||dD]}dD] }|d||fqq |d}||dD] }|d|q)|gdd}|d }|j|d D]}||d } || d qGdS) Nzbpftool -j prog listoutput)xlatedjitedzbpftool prog dump %s id %szbpftool -j map listzbpftool map dump id %s)zbpftool prog listzbpftool map listzbpftool cgroup treebpftool net listzbpftool struct_ops dumpzip netns exec r )ns_max r()collect_cmd_outputr add_cmd_outputr$ get_optionget_network_namespaces) rprogsprog_iddumpcmdmapsmap_id cmd_prefixnsps namespace ns_cmd_prefixrrrsetup0s"    z Ebpf.setup) __name__ __module__ __qualname__ short_desc plugin_nameprofilesrint option_listr r$r8rrrrr s r)sos.report.pluginsrrrrrrrrrs