From 62e8e68dd5a53ef71582c33146685b655d32628c Mon Sep 17 00:00:00 2001 From: h3xduck Date: Fri, 27 May 2022 20:56:36 -0400 Subject: [PATCH] Almost finished with SotA section. libbpf remains too get llvm and some functionality explained. --- docs/bibliography/bibliography.bib | 25 +++++- docs/document.aux | 33 ++++++-- docs/document.bbl | 116 ++++++++++++++++++++++++--- docs/document.bcf | 4 + docs/document.blg | 124 +++++++++++++++-------------- docs/document.log | 82 ++++++++++--------- docs/document.out | 16 ++-- docs/document.pdf | Bin 661173 -> 676250 bytes docs/document.synctex.gz | Bin 187162 -> 209246 bytes docs/document.tex | 60 ++++++++++++-- docs/document.toc | 22 +++-- docs/pdfa.xmpi | 8 +- 12 files changed, 353 insertions(+), 137 deletions(-) diff --git a/docs/bibliography/bibliography.bib b/docs/bibliography/bibliography.bib index e53f1c7..041eb23 100644 --- a/docs/bibliography/bibliography.bib +++ b/docs/bibliography/bibliography.bib @@ -310,6 +310,30 @@ title={Linux kernel source tree}, url={https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/pkt_cls.h}, indextitle={index : kernel/git/torvalds/linux.git} +}, + +@manual{tp_kernel, + title={Using the Linux Kernel Tracepoints}, + url={https://www.kernel.org/doc/html/latest/trace/tracepoints.html}, + author={Mathieu Desnoyers} +}, + +@manual{kprobe_manual, + title={Kernel Probes (Kprobes)}, + author={Jim Keniston, Prasanna S Panchamukhi, Masami Hiramatsu}, + url={https://www.kernel.org/doc/html/latest/trace/kprobes.html} +}, + +@online{kallsyms_kernel, + title={kallsyms: new /proc/kallmodsyms with builtin modules and symbol sizes}, + author={Nick Alcock}, + date={2021-06-06}, + url={https://lwn.net/Articles/862021/} +}, + +@online{bcc_github, + title={BPF Compiler Collection (BCC)}, + url={https://github.com/iovisor/bcc} } @@ -320,4 +344,3 @@ - diff --git a/docs/document.aux b/docs/document.aux index 928ec32..1b774b7 100644 --- a/docs/document.aux +++ b/docs/document.aux @@ -107,6 +107,7 @@ \@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {2.6}{\ignorespaces Shortest path in the CFG described in the example of figure \ref {fig:bpf_tcpdump_example} that a packet needs to follow to be accepted by the BPF filter set with \textit {tcpdump}.\relax }}{11}{figure.caption.13}\protected@file@percent } \newlabel{fig:tcpdump_ex_sol}{{2.6}{11}{Shortest path in the CFG described in the example of figure \ref {fig:bpf_tcpdump_example} that a packet needs to follow to be accepted by the BPF filter set with \textit {tcpdump}.\relax }{figure.caption.13}{}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2.2}Analysis of modern eBPF}{11}{section.2.2}\protected@file@percent } +\newlabel{section:modern_ebpf}{{2.2}{11}{Analysis of modern eBPF}{section.2.2}{}} \abx@aux@cite{brendan_gregg_bpf_book} \abx@aux@segm{0}{0}{brendan_gregg_bpf_book} \abx@aux@cite{brendan_gregg_bpf_book} @@ -218,22 +219,36 @@ \@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\contentsline {table}{\numberline {2.11}{\ignorespaces Table showing relevant XDP-exclusive eBPF helpers.\relax }}{20}{table.caption.25}\protected@file@percent } \newlabel{table:xdp_helpers}{{2.11}{20}{Table showing relevant XDP-exclusive eBPF helpers.\relax }{table.caption.25}{}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.2}Traffic Control}{20}{subsection.2.3.2}\protected@file@percent } +\abx@aux@cite{tp_kernel} +\abx@aux@segm{0}{0}{tp_kernel} \@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\contentsline {table}{\numberline {2.12}{\ignorespaces Table showing TC relevant return values. Full list can be consulted at \cite {tc_ret_list_complete}.\relax }}{21}{table.caption.26}\protected@file@percent } \newlabel{table:tc_actions}{{2.12}{21}{Table showing TC relevant return values. Full list can be consulted at \cite {tc_ret_list_complete}.\relax }{table.caption.26}{}} \@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\contentsline {table}{\numberline {2.13}{\ignorespaces Table showing relevant TC-exclusive eBPF helpers.\relax }}{21}{table.caption.27}\protected@file@percent } \newlabel{table:tc_helpers}{{2.13}{21}{Table showing relevant TC-exclusive eBPF helpers.\relax }{table.caption.27}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2.4}Developing eBPF programs}{21}{section.2.4}\protected@file@percent } -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {3}Methods??}{22}{chapter.3}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.3}Tracepoints}{21}{subsection.2.3.3}\protected@file@percent } +\abx@aux@cite{kprobe_manual} +\abx@aux@segm{0}{0}{kprobe_manual} +\abx@aux@cite{kallsyms_kernel} +\abx@aux@segm{0}{0}{kallsyms_kernel} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.4}Kprobes}{22}{subsection.2.3.4}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.5}Uprobes}{22}{subsection.2.3.5}\protected@file@percent } +\abx@aux@cite{bcc_github} +\abx@aux@segm{0}{0}{bcc_github} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2.4}Developing eBPF programs}{23}{section.2.4}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.1}BCC}{23}{subsection.2.4.1}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.2}Bpftool}{23}{subsection.2.4.2}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.3}Libbpf}{24}{subsection.2.4.3}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {3}Methods??}{25}{chapter.3}\protected@file@percent } \@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {4}Results}{23}{chapter.4}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {4}Results}{26}{chapter.4}\protected@file@percent } \@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {5}Conclusion and future work}{24}{chapter.5}\protected@file@percent } +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {5}Conclusion and future work}{27}{chapter.5}\protected@file@percent } \@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{Bibliography}{25}{chapter.5}\protected@file@percent } -\abx@aux@read@bbl@mdfivesum{D22502BFD1AA9A775C1BCD405EB9F4D6} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{Bibliography}{28}{chapter.5}\protected@file@percent } +\abx@aux@read@bbl@mdfivesum{928E85D2BF178C374F78AAE7687D8F1B} \abx@aux@refcontextdefaultsdone \abx@aux@defaultrefcontext{0}{ransomware_pwc}{none/global//global/global} \abx@aux@defaultrefcontext{0}{rootkit_ptsecurity}{none/global//global/global} @@ -279,5 +294,9 @@ \abx@aux@defaultrefcontext{0}{tc_docs_complete}{none/global//global/global} \abx@aux@defaultrefcontext{0}{tc_direct_action}{none/global//global/global} \abx@aux@defaultrefcontext{0}{tc_ret_list_complete}{none/global//global/global} +\abx@aux@defaultrefcontext{0}{tp_kernel}{none/global//global/global} +\abx@aux@defaultrefcontext{0}{kprobe_manual}{none/global//global/global} +\abx@aux@defaultrefcontext{0}{kallsyms_kernel}{none/global//global/global} +\abx@aux@defaultrefcontext{0}{bcc_github}{none/global//global/global} \ttl@finishall -\gdef \@abspage@last{45} +\gdef \@abspage@last{48} diff --git a/docs/document.bbl b/docs/document.bbl index ae6741b..619cfc8 100644 --- a/docs/document.bbl +++ b/docs/document.bbl @@ -152,8 +152,8 @@ \strng{authorbibnamehash}{5142e68c748eb70cb619b21160eb7f72} \strng{authornamehash}{5142e68c748eb70cb619b21160eb7f72} \strng{authorfullhash}{5142e68c748eb70cb619b21160eb7f72} - \field{sortinit}{1} - \field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba} + \field{sortinit}{2} + \field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed} \field{labelnamesource}{author} \field{eventtitle}{Evil eBPF Practical Abuses of an In-Kernel Bytecode Runtime} \verb{urlraw} @@ -402,8 +402,8 @@ \strng{authornamehash}{b74c2671072cf5a1a1400dc035240dfd} \strng{authorfullhash}{b74c2671072cf5a1a1400dc035240dfd} \field{extraname}{4} - \field{sortinit}{2} - \field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed} + \field{sortinit}{3} + \field{sortinithash}{a37a8ef248a93c322189792c34fc68c9} \field{labelnamesource}{author} \field{labeltitlesource}{title} \field{day}{19} @@ -523,8 +523,8 @@ \endverb \endentry \entry{ebpf_inst_set}{manual}{} - \field{sortinit}{3} - \field{sortinithash}{a37a8ef248a93c322189792c34fc68c9} + \field{sortinit}{4} + \field{sortinithash}{e071e0bcb44634fab398d68ad04e69f4} \field{labeltitlesource}{title} \field{title}{eBPF instruction set} \verb{urlraw} @@ -687,8 +687,8 @@ \endverb \endentry \entry{jit_enable_setting}{manual}{} - \field{sortinit}{4} - \field{sortinithash}{e071e0bcb44634fab398d68ad04e69f4} + \field{sortinit}{5} + \field{sortinithash}{5dd416adbafacc8226114bc0202d5fdd} \field{labeltitlesource}{title} \field{title}{bpf\_jit\_enable} \verb{urlraw} @@ -941,8 +941,8 @@ \strng{authorbibnamehash}{6f963077bb5e5f5e471047d2f4a2e4e7} \strng{authornamehash}{6f963077bb5e5f5e471047d2f4a2e4e7} \strng{authorfullhash}{6f963077bb5e5f5e471047d2f4a2e4e7} - \field{sortinit}{6} - \field{sortinithash}{7851c86048328b027313775d8fbd2131} + \field{sortinit}{7} + \field{sortinithash}{f615fb9c6fba11c6f962fb3fd599810e} \field{labelnamesource}{author} \field{labeltitlesource}{title} \field{day}{1} @@ -1000,6 +1000,102 @@ \verb https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/pkt_cls.h \endverb \endentry + \entry{tp_kernel}{manual}{} + \name{author}{1}{}{% + {{hash=5233bec95aa14fa3942f60f8fc369f5a}{% + family={Desnoyers}, + familyi={D\bibinitperiod}, + given={Mathieu}, + giveni={M\bibinitperiod}}}% + } + \strng{namehash}{5233bec95aa14fa3942f60f8fc369f5a} + \strng{fullhash}{5233bec95aa14fa3942f60f8fc369f5a} + \strng{bibnamehash}{5233bec95aa14fa3942f60f8fc369f5a} + \strng{authorbibnamehash}{5233bec95aa14fa3942f60f8fc369f5a} + \strng{authornamehash}{5233bec95aa14fa3942f60f8fc369f5a} + \strng{authorfullhash}{5233bec95aa14fa3942f60f8fc369f5a} + \field{sortinit}{7} + \field{sortinithash}{f615fb9c6fba11c6f962fb3fd599810e} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{title}{Using the Linux Kernel Tracepoints} + \verb{urlraw} + \verb https://www.kernel.org/doc/html/latest/trace/tracepoints.html + \endverb + \verb{url} + \verb https://www.kernel.org/doc/html/latest/trace/tracepoints.html + \endverb + \endentry + \entry{kprobe_manual}{manual}{} + \name{author}{1}{}{% + {{hash=2cc2b9c9c507513d2985e72f46781aec}{% + family={Jim\bibnamedelima Keniston}, + familyi={J\bibinitperiod\bibinitdelim K\bibinitperiod}, + given={Masami\bibnamedelima Hiramatsu}, + giveni={M\bibinitperiod\bibinitdelim H\bibinitperiod}, + suffix={Prasanna\bibnamedelimb S\bibnamedelima Panchamukhi}, + suffixi={P\bibinitperiod\bibinitdelim S\bibinitperiod\bibinitdelim P\bibinitperiod}}}% + } + \strng{namehash}{2cc2b9c9c507513d2985e72f46781aec} + \strng{fullhash}{2cc2b9c9c507513d2985e72f46781aec} + \strng{bibnamehash}{2cc2b9c9c507513d2985e72f46781aec} + \strng{authorbibnamehash}{2cc2b9c9c507513d2985e72f46781aec} + \strng{authornamehash}{2cc2b9c9c507513d2985e72f46781aec} + \strng{authorfullhash}{2cc2b9c9c507513d2985e72f46781aec} + \field{sortinit}{7} + \field{sortinithash}{f615fb9c6fba11c6f962fb3fd599810e} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{title}{Kernel Probes (Kprobes)} + \verb{urlraw} + \verb https://www.kernel.org/doc/html/latest/trace/kprobes.html + \endverb + \verb{url} + \verb https://www.kernel.org/doc/html/latest/trace/kprobes.html + \endverb + \endentry + \entry{kallsyms_kernel}{online}{} + \name{author}{1}{}{% + {{hash=d92b805bd53ec71a9ed691daf3c00fcc}{% + family={Alcock}, + familyi={A\bibinitperiod}, + given={Nick}, + giveni={N\bibinitperiod}}}% + } + \strng{namehash}{d92b805bd53ec71a9ed691daf3c00fcc} + \strng{fullhash}{d92b805bd53ec71a9ed691daf3c00fcc} + \strng{bibnamehash}{d92b805bd53ec71a9ed691daf3c00fcc} + \strng{authorbibnamehash}{d92b805bd53ec71a9ed691daf3c00fcc} + \strng{authornamehash}{d92b805bd53ec71a9ed691daf3c00fcc} + \strng{authorfullhash}{d92b805bd53ec71a9ed691daf3c00fcc} + \field{sortinit}{7} + \field{sortinithash}{f615fb9c6fba11c6f962fb3fd599810e} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{day}{6} + \field{month}{6} + \field{title}{kallsyms: new /proc/kallmodsyms with builtin modules and symbol sizes} + \field{year}{2021} + \field{dateera}{ce} + \verb{urlraw} + \verb https://lwn.net/Articles/862021/ + \endverb + \verb{url} + \verb https://lwn.net/Articles/862021/ + \endverb + \endentry + \entry{bcc_github}{online}{} + \field{sortinit}{7} + \field{sortinithash}{f615fb9c6fba11c6f962fb3fd599810e} + \field{labeltitlesource}{title} + \field{title}{BPF Compiler Collection (BCC)} + \verb{urlraw} + \verb https://github.com/iovisor/bcc + \endverb + \verb{url} + \verb https://github.com/iovisor/bcc + \endverb + \endentry \enddatalist \endrefsection \endinput diff --git a/docs/document.bcf b/docs/document.bcf index 9fb1826..695a44b 100644 --- a/docs/document.bcf +++ b/docs/document.bcf @@ -2409,6 +2409,10 @@ tc_direct_action tc_ret_list_complete tc_ret_list_complete + tp_kernel + kprobe_manual + kallsyms_kernel + bcc_github diff --git a/docs/document.blg b/docs/document.blg index b8c265d..b837efd 100644 --- a/docs/document.blg +++ b/docs/document.blg @@ -1,62 +1,66 @@ [0] Config.pm:311> INFO - This is Biber 2.16 [0] Config.pm:314> INFO - Logfile is 'document.blg' -[60] biber:340> INFO - === Thu May 26, 2022, 21:27:57 -[75] Biber.pm:415> INFO - Reading 'document.bcf' -[148] Biber.pm:952> INFO - Found 44 citekeys in bib section 0 -[164] Biber.pm:4340> INFO - Processing section 0 -[174] Biber.pm:4531> INFO - Looking for bibtex format file 'bibliography/bibliography.bib' for section 0 -[176] bibtex.pm:1689> INFO - LaTeX decoding ... -[194] bibtex.pm:1494> INFO - Found BibTeX data source 'bibliography/bibliography.bib' -[292] Utils.pm:384> WARN - Entry 'ebpf_bounded_loops' (bibliography/bibliography.bib): Invalid format '2019-06-31' of date field 'date' - ignoring -[315] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 9, warning: 1 characters of junk seen at toplevel -[315] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 15, warning: 1 characters of junk seen at toplevel -[315] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 22, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 28, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 35, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 42, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 50, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 58, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 65, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 70, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 77, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 85, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 94, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 103, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 112, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 121, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 127, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 132, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 137, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 142, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 153, warning: 1 characters of junk seen at toplevel -[316] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 158, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 164, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 170, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 175, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 184, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 191, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 199, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 206, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 215, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 224, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 233, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 239, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 244, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 249, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 256, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 261, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 266, warning: 1 characters of junk seen at toplevel -[317] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 271, warning: 1 characters of junk seen at toplevel -[318] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 276, warning: 1 characters of junk seen at toplevel -[318] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 283, warning: 1 characters of junk seen at toplevel -[318] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 288, warning: 1 characters of junk seen at toplevel -[318] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 295, warning: 1 characters of junk seen at toplevel -[318] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 302, warning: 1 characters of junk seen at toplevel -[318] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_04am/f4d088b3f9f145b5c3058da33afd57d4_151633.utf8, line 309, warning: 1 characters of junk seen at toplevel -[348] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'variable = shifted' with 'variable = non-ignorable' -[349] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'normalization = NFD' with 'normalization = prenormalized' -[349] Biber.pm:4168> INFO - Sorting list 'none/global//global/global' of type 'entry' with template 'none' and locale 'en-US' -[349] Biber.pm:4174> INFO - No sort tailoring available for locale 'en-US' -[375] bbl.pm:654> INFO - Writing 'document.bbl' with encoding 'UTF-8' -[385] bbl.pm:757> INFO - Output to document.bbl -[386] Biber.pm:128> INFO - WARNINGS: 46 +[66] biber:340> INFO - === Fri May 27, 2022, 19:34:53 +[82] Biber.pm:415> INFO - Reading 'document.bcf' +[155] Biber.pm:952> INFO - Found 48 citekeys in bib section 0 +[169] Biber.pm:4340> INFO - Processing section 0 +[180] Biber.pm:4531> INFO - Looking for bibtex format file 'bibliography/bibliography.bib' for section 0 +[182] bibtex.pm:1689> INFO - LaTeX decoding ... +[202] bibtex.pm:1494> INFO - Found BibTeX data source 'bibliography/bibliography.bib' +[307] Utils.pm:384> WARN - Entry 'ebpf_bounded_loops' (bibliography/bibliography.bib): Invalid format '2019-06-31' of date field 'date' - ignoring +[339] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 9, warning: 1 characters of junk seen at toplevel +[339] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 15, warning: 1 characters of junk seen at toplevel +[339] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 22, warning: 1 characters of junk seen at toplevel +[339] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 28, warning: 1 characters of junk seen at toplevel +[339] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 35, warning: 1 characters of junk seen at toplevel +[339] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 42, warning: 1 characters of junk seen at toplevel +[339] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 50, warning: 1 characters of junk seen at toplevel +[339] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 58, warning: 1 characters of junk seen at toplevel +[339] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 65, warning: 1 characters of junk seen at toplevel +[339] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 70, warning: 1 characters of junk seen at toplevel +[339] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 77, warning: 1 characters of junk seen at toplevel +[339] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 85, warning: 1 characters of junk seen at toplevel +[339] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 94, warning: 1 characters of junk seen at toplevel +[339] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 103, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 112, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 121, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 127, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 132, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 137, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 142, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 153, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 158, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 164, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 170, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 175, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 184, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 191, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 199, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 206, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 215, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 224, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 233, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 239, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 244, warning: 1 characters of junk seen at toplevel +[340] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 249, warning: 1 characters of junk seen at toplevel +[341] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 256, warning: 1 characters of junk seen at toplevel +[341] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 261, warning: 1 characters of junk seen at toplevel +[341] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 266, warning: 1 characters of junk seen at toplevel +[341] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 271, warning: 1 characters of junk seen at toplevel +[341] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 276, warning: 1 characters of junk seen at toplevel +[341] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 283, warning: 1 characters of junk seen at toplevel +[341] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 288, warning: 1 characters of junk seen at toplevel +[341] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 295, warning: 1 characters of junk seen at toplevel +[341] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 302, warning: 1 characters of junk seen at toplevel +[341] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 309, warning: 1 characters of junk seen at toplevel +[341] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 315, warning: 1 characters of junk seen at toplevel +[341] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 321, warning: 1 characters of junk seen at toplevel +[341] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 327, warning: 1 characters of junk seen at toplevel +[341] Utils.pm:384> WARN - BibTeX subsystem: /tmp/biber_tmp_pgMm/f4d088b3f9f145b5c3058da33afd57d4_162505.utf8, line 334, warning: 1 characters of junk seen at toplevel +[375] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'variable = shifted' with 'variable = non-ignorable' +[375] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'normalization = NFD' with 'normalization = prenormalized' +[376] Biber.pm:4168> INFO - Sorting list 'none/global//global/global' of type 'entry' with template 'none' and locale 'en-US' +[376] Biber.pm:4174> INFO - No sort tailoring available for locale 'en-US' +[404] bbl.pm:654> INFO - Writing 'document.bbl' with encoding 'UTF-8' +[416] bbl.pm:757> INFO - Output to document.bbl +[416] Biber.pm:128> INFO - WARNINGS: 50 diff --git a/docs/document.log b/docs/document.log index bb59af9..bd02b80 100644 --- a/docs/document.log +++ b/docs/document.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) (preloaded format=pdflatex 2022.4.27) 26 MAY 2022 21:44 +This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) (preloaded format=pdflatex 2022.4.27) 27 MAY 2022 20:55 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -1096,7 +1096,7 @@ File: t1txss.fd 2000/12/15 v3.1 ) LaTeX Font Info: Font shape `T1/txss/m/n' will be (Font) scaled to size 11.39996pt on input line 186. - + File: images//Portada_Logo.png Graphic file (type png) Package pdftex.def Info: images//Portada_Logo.png used on input line 190. @@ -1109,7 +1109,7 @@ LaTeX Font Info: Font shape `T1/txss/m/n' will be (Font) scaled to size 23.63593pt on input line 201. LaTeX Font Info: Font shape `T1/txss/m/n' will be (Font) scaled to size 19.70294pt on input line 205. - + File: images/creativecommons.png Graphic file (type png) Package pdftex.def Info: images/creativecommons.png used on input line 215. @@ -1220,7 +1220,7 @@ Chapter 2. LaTeX Warning: Reference `section:analysis_offensive_capabilities' on page 5 un defined on input line 412. - + File: images//classic_bpf.jpg Graphic file (type jpg) Package pdftex.def Info: images//classic_bpf.jpg used on input line 426. @@ -1228,36 +1228,36 @@ Package pdftex.def Info: images//classic_bpf.jpg used on input line 426. [5 ] [6 <./images//classic_bpf.jpg>] - + File: images//cbpf_prog.jpg Graphic file (type jpg) Package pdftex.def Info: images//cbpf_prog.jpg used on input line 453. (pdftex.def) Requested size: 227.62204pt x 254.80415pt. [7 <./images/cBPF_prog.jpg>] - + File: images//bpf_instructions.png Graphic file (type png) Package pdftex.def Info: images//bpf_instructions.png used on input line 493. (pdftex.def) Requested size: 227.62204pt x 283.99998pt. [8 <./images//bpf_instructions.png>] - + File: images//bpf_address_mode.png Graphic file (type png) Package pdftex.def Info: images//bpf_address_mode.png used on input line 509. (pdftex.def) Requested size: 227.62204pt x 171.19905pt. [9 <./images//bpf_address_mode.png>] - + File: images//tcpdump_example.png Graphic file (type png) Package pdftex.def Info: images//tcpdump_example.png used on input line 524. (pdftex.def) Requested size: 284.52756pt x 241.82869pt. - + File: images//cBPF_prog_ex_sol.png Graphic file (type png) Package pdftex.def Info: images//cBPF_prog_ex_sol.png used on input line 535. (pdftex.def) Requested size: 170.71652pt x 225.74026pt. [10 <./images//tcpdump_example.png>] [11 <./images//cBPF_prog_ex_sol.png>] - + File: images//ebpf_arch.jpg Graphic file (type jpg) Package pdftex.def Info: images//ebpf_arch.jpg used on input line 574. @@ -1309,7 +1309,7 @@ Overfull \hbox (13.5802pt too wide) in paragraph at lines 756--784 [] [17] - + File: images//xdp_diag.jpg Graphic file (type jpg) Package pdftex.def Info: images//xdp_diag.jpg used on input line 800. @@ -1319,63 +1319,63 @@ Overfull \hbox (5.80417pt too wide) in paragraph at lines 863--875 [][] [] -[20] [21] +[20] [21] [22] [23] [24] Chapter 3. -[22 +[25 ] Chapter 4. -[23 +[26 ] Chapter 5. -[24 +[27 ] -LaTeX Font Info: Trying to load font information for T1+txtt on input line 9 -57. +LaTeX Font Info: Trying to load font information for T1+txtt on input line 1 +001. (/usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txtt.fd File: t1txtt.fd 2000/12/15 v3.1 ) -Overfull \hbox (5.34976pt too wide) in paragraph at lines 958--958 +Overfull \hbox (5.34976pt too wide) in paragraph at lines 1002--1002 \T1/txtt/m/n/12 threat -[] intelligence / cyber -[] year -[] in -[] retrospect / yir -[] cyber -[] threats -[] [] -[25 +[28 ] -Overfull \hbox (6.22696pt too wide) in paragraph at lines 958--958 +Overfull \hbox (6.22696pt too wide) in paragraph at lines 1002--1002 []\T1/txr/m/it/12 Bpf fea-tures by linux ker-nel ver-sion\T1/txr/m/n/12 , io-vi -sor. [On-line]. Avail-able: [][]$\T1/txtt/m/n/12 https : / / github . [] -Overfull \hbox (7.34976pt too wide) in paragraph at lines 958--958 +Overfull \hbox (7.34976pt too wide) in paragraph at lines 1002--1002 [][]$\T1/txtt/m/n/12 https : / / ebpf . io / what -[] is -[] ebpf / #loader -[] -[] verification -[] architecture$[][]\T1/txr/m/n/12 . [] -Overfull \hbox (21.24973pt too wide) in paragraph at lines 958--958 +Overfull \hbox (21.24973pt too wide) in paragraph at lines 1002--1002 \T1/txtt/m/n/12 vger . kernel . org / netconf2015Starovoitov -[] bpf _ collabsu mmit _ 2015feb20 . [] -[26] -Overfull \hbox (9.14975pt too wide) in paragraph at lines 958--958 +[29] +Overfull \hbox (9.14975pt too wide) in paragraph at lines 1002--1002 \T1/txtt/m/n/12 ch02 . xhtml# :-[]: text = With % 20JIT % 20compiled % 20code % 2C % 20i ,[] %20other % [] -Overfull \hbox (6.49615pt too wide) in paragraph at lines 958--958 +Overfull \hbox (6.49615pt too wide) in paragraph at lines 1002--1002 []\T1/txr/m/n/12 D. Lavie. ^^P A gen-tle in-tro-duc-tion to xdp.^^Q (Feb. 3, 2 022), [On-line]. Avail-able: [][]$\T1/txtt/m/n/12 https : [] -[27] [28] [1 +[30] [31] [1 ] @@ -1386,24 +1386,30 @@ pdfTeX warning (ext4): destination with the same identifier (name{page.}) has b een already used, duplicate ignored \relax -l.974 \end{document} - [2 +l.1018 \end{document} + [2 ] (./document.aux) LaTeX Warning: There were undefined references. -Package rerunfilecheck Info: File `document.out' has not changed. -(rerunfilecheck) Checksum: E5138CE4A4FC0333EA6AC0A0168DC432;2190. + +Package rerunfilecheck Warning: File `document.out' has changed. +(rerunfilecheck) Rerun to get outlines right +(rerunfilecheck) or use package `bookmark'. + +Package rerunfilecheck Info: Checksums for `document.out': +(rerunfilecheck) Before: 76D08850B9857529ABB9875381AE8D26;2555 +(rerunfilecheck) After: DDEC2EA0BA9DDEC568FE05D8A7BB7EC7;2555. Package logreq Info: Writing requests to 'document.run.xml'. \openout1 = `document.run.xml'. ) Here is how much of TeX's memory you used: - 27457 strings out of 481209 - 438434 string characters out of 5914747 - 1180810 words of memory out of 5000000 - 43827 multiletter control sequences out of 15000+600000 + 27485 strings out of 481209 + 439113 string characters out of 5914747 + 1181078 words of memory out of 5000000 + 43842 multiletter control sequences out of 15000+600000 453959 words of font info for 100 fonts, out of 8000000 for 9000 36 hyphenation exceptions out of 8191 88i,12n,90p,1029b,3681s stack positions out of 5000i,500n,10000p,200000b,80000s @@ -1418,9 +1424,9 @@ texmf-dist/fonts/type1/urw/helvetic/uhvr8a.pfb> -Output written on document.pdf (45 pages, 661173 bytes). +Output written on document.pdf (48 pages, 676250 bytes). PDF statistics: - 796 PDF objects out of 1000 (max. 8388607) - 146 named destinations out of 1000 (max. 500000) - 303 words of extra memory for PDF output out of 10000 (max. 10000000) + 863 PDF objects out of 1000 (max. 8388607) + 159 named destinations out of 1000 (max. 500000) + 351 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/docs/document.out b/docs/document.out index cf09ec5..83127c0 100644 --- a/docs/document.out +++ b/docs/document.out @@ -23,8 +23,14 @@ \BOOKMARK [1][-]{section.2.3}{eBPF\040program\040types}{chapter.2}% 23 \BOOKMARK [2][-]{subsection.2.3.1}{XDP}{section.2.3}% 24 \BOOKMARK [2][-]{subsection.2.3.2}{Traffic\040Control}{section.2.3}% 25 -\BOOKMARK [1][-]{section.2.4}{Developing\040eBPF\040programs}{chapter.2}% 26 -\BOOKMARK [0][-]{chapter.3}{Methods??}{}% 27 -\BOOKMARK [0][-]{chapter.4}{Results}{}% 28 -\BOOKMARK [0][-]{chapter.5}{Conclusion\040and\040future\040work}{}% 29 -\BOOKMARK [0][-]{chapter.5}{Bibliography}{}% 30 +\BOOKMARK [2][-]{subsection.2.3.3}{Tracepoints}{section.2.3}% 26 +\BOOKMARK [2][-]{subsection.2.3.4}{Kprobes}{section.2.3}% 27 +\BOOKMARK [2][-]{subsection.2.3.5}{Uprobes}{section.2.3}% 28 +\BOOKMARK [1][-]{section.2.4}{Developing\040eBPF\040programs}{chapter.2}% 29 +\BOOKMARK [2][-]{subsection.2.4.1}{BCC}{section.2.4}% 30 +\BOOKMARK [2][-]{subsection.2.4.2}{Bpftool}{section.2.4}% 31 +\BOOKMARK [2][-]{subsection.2.4.3}{Libbpf}{section.2.4}% 32 +\BOOKMARK [0][-]{chapter.3}{Methods??}{}% 33 +\BOOKMARK [0][-]{chapter.4}{Results}{}% 34 +\BOOKMARK [0][-]{chapter.5}{Conclusion\040and\040future\040work}{}% 35 +\BOOKMARK [0][-]{chapter.5}{Bibliography}{}% 36 diff --git a/docs/document.pdf b/docs/document.pdf index bef7a1ea21c6a3337477c1d67cc664c138c3be38..1109deb0a0dd5962b59055cbaf8518e146076683 100644 GIT binary patch delta 70796 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

D>X|L2nUg5609PSDdJRZXLolV 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 ZT2x9}MoM&y6*(yosjM0`@(&5H`hT?4HNOA= delta 59321 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