Ë
    i©¹dñ  ã                   ó8   — d dl mZmZmZ d dlZ G d„ dee«      Zy)é    )ÚPluginÚIndependentPluginÚ	PluginOptNc                   óD   — e Zd ZdZdZdZ edded¬«      gZd„ Z	d	„ Z
d
„ Zy)ÚEbpfz	eBPF toolÚebpf)ÚsystemÚkernelÚnetworkÚ
namespacesNz0Number of namespaces to collect, 0 for unlimited)ÚdefaultÚval_typeÚdescc                 óþ   — g }	 t        j                  |«      }t	        t        |«      «      D ]!  }d||   v sŒ|j                  ||   d   «       Œ# |S # t        $ r }| j                  d|z  «       |cY d }~S d }~ww xY w)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Úitems         ú9/usr/lib/python3/dist-packages/sos/report/plugins/ebpf.pyÚget_bpftool_prog_idszEbpf.get_bpftool_prog_ids   s…   € Øˆð	ÜŸ
™
 9Ó-ˆIô œ#˜i›.Ó)ò 	2ˆDØ�y ‘Ò&Ø—
‘
˜9 T™?¨4Ñ0Õ1ð	2ð ˆ
øô ò 	Ø�N‰NÐJÈQÑNÔOØ�Jûð	úó   „A Á	A<ÁA7Á1A<Á7A<c                 óþ   — g }	 t        j                  |«      }t	        t        |«      «      D ]!  }d||   v sŒ|j                  ||   d   «       Œ# |S # t        $ r }| j                  d|z  «       |cY d }~S d }~ww xY w)Nz,Could not parse bpftool map list as JSON: %sr   r   )r   Úmap_jsonr   Úmap_datar   r   s         r    Úget_bpftool_map_idszEbpf.get_bpftool_map_ids$   s…   € Øˆð	Ü—z‘z (Ó+ˆHô œ#˜h›-Ó(ò 	1ˆDØ�x ‘~Ò%Ø—
‘
˜8 D™>¨$Ñ/Õ0ð	1ð ˆ
øô ò 	Ø�N‰NÐIÈAÑMÔNØ�Jûð	úr"   c                 óÂ  — | j                  d«      }| j                  |d   «      D ]   }dD ]  }| j                  d|›d|›�«       Œ Œ" | j                  d«      }| j                  |d   «      D ]  }| j                  d|z  «       Œ | j                  g d¢«       d	}| j	                  d
«      }| j                  |¬«      D ]  }||z   dz   }	| j                  |	dz   «       Œ  y )Nzbpftool -j prog listÚoutput)ÚxlatedÚjitedzbpftool prog dump z id zbpftool -j map listzbpftool map dump id %s)zbpftool prog listzbpftool map listzbpftool cgroup treeúbpftool net listzbpftool struct_ops dumpzip 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.setup0   s  € à×'Ñ'Ð(>Ó?ˆØ×0Ñ0°°x±ÓAò 	8ˆGØ.ò 8�Ø×#Ò#Ú%,©gð%7õ 8ñ8ð	8ð
 ×&Ñ&Ð'<Ó=ˆØ×.Ñ.¨t°H©~Ó>ò 	CˆFØ×ÑÐ 8¸6Ñ AÕBð	Cð 	×Ñò 
ô 	ð &ˆ
Ø�‰˜|Ó,ˆØ×4Ñ4¸DÐ4ÓAò 	DˆIØ&¨Ñ2°SÑ8ˆMØ×Ñ Ð0BÑ BÕCñ	Dó    )Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesr   ÚintÚoption_listr!   r&   r;   © r<   r    r   r      s<   „ à€JØ€KØ.€Hñ 	�,¨°sØIô	Kð€Kò

ò
óDr<   r   )Úsos.report.pluginsr   r   r   r   r   rE   r<   r    ú<module>rG      s$   ð÷ DÑ CÛ ôBDˆ6Ð$õ BDr<   