\hypertarget{ng__bpf_8c}{}\doxysection{netgraph/ng\+\_\+bpf.c File Reference}
\label{ng__bpf_8c}\index{netgraph/ng\_bpf.c@{netgraph/ng\_bpf.c}}
{\ttfamily \#include \char`\"{}opt\+\_\+bpf.\+h\char`\"{}}\newline
{\ttfamily \#include $<$sys/param.\+h$>$}\newline
{\ttfamily \#include $<$sys/systm.\+h$>$}\newline
{\ttfamily \#include $<$sys/errno.\+h$>$}\newline
{\ttfamily \#include $<$sys/kernel.\+h$>$}\newline
{\ttfamily \#include $<$sys/malloc.\+h$>$}\newline
{\ttfamily \#include $<$sys/mbuf.\+h$>$}\newline
{\ttfamily \#include $<$net/bpf.\+h$>$}\newline
{\ttfamily \#include $<$netgraph/ng\+\_\+message.\+h$>$}\newline
{\ttfamily \#include $<$netgraph/netgraph.\+h$>$}\newline
{\ttfamily \#include $<$netgraph/ng\+\_\+parse.\+h$>$}\newline
{\ttfamily \#include $<$netgraph/ng\+\_\+bpf.\+h$>$}\newline
Include dependency graph for ng\+\_\+bpf.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d0/d7c/ng__bpf_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structng__bpf__hookinfo}{ng\+\_\+bpf\+\_\+hookinfo}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{ng__bpf_8c_a061b5a7359a550e25ad84d7c694a9cd4}{M\+\_\+\+NETGRAPH\+\_\+\+BPF}}~M\+\_\+\+NETGRAPH
\item 
\#define \mbox{\hyperlink{ng__bpf_8c_aef34c7ae735fc1dcce6a222cc9252ab3}{OFFSETOF}}(s,  e)~((char $\ast$)\&((s $\ast$)0)-\/$>$e -\/ (char $\ast$)((s $\ast$)0))
\item 
\#define \mbox{\hyperlink{ng__bpf_8c_a661c316872e6e1e6a714d7fad67f366f}{ERROUT}}(x)~do \{ error = (x); goto done; \} while (0)
\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \mbox{\hyperlink{structng__bpf__hookinfo}{ng\+\_\+bpf\+\_\+hookinfo}} $\ast$ \mbox{\hyperlink{ng__bpf_8c_ad1ccef44f965fa9d77a1a99c47fb1e98}{hinfo\+\_\+p}}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static int \mbox{\hyperlink{ng__bpf_8c_a9394f1fbf40002629f373980d7ab0a7f}{ng\+\_\+bpf\+\_\+setprog}} (\mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}} hook, const struct \mbox{\hyperlink{structng__bpf__hookprog}{ng\+\_\+bpf\+\_\+hookprog}} $\ast$hp)
\item 
static int \mbox{\hyperlink{ng__bpf_8c_a18cd39078e824aebc77d60a6fda27c53}{ng\+\_\+bpf\+\_\+hookprogary\+\_\+get\+Length}} (const struct \mbox{\hyperlink{structng__parse__type}{ng\+\_\+parse\+\_\+type}} $\ast$\mbox{\hyperlink{ng__btsocket__rfcomm_8h_a3cce6e7fc609fa524af48647bd518f51}{type}}, const u\+\_\+char $\ast$start, const u\+\_\+char $\ast$buf)
\item 
\mbox{\hyperlink{ng__bpf_8c_a9302d6701326dd81c5aa166c0417f16e}{NETGRAPH\+\_\+\+INIT}} (bpf, \&\mbox{\hyperlink{ng__vlan__rotate_8c_a80a131770518c7fa3758d85054006e7a}{typestruct}})
\item 
static int \mbox{\hyperlink{ng__bpf_8c_a9180009c76cde59664562591c251b71d}{ng\+\_\+bpf\+\_\+constructor}} (\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}} node)
\item 
static int \mbox{\hyperlink{ng__bpf_8c_a8833ea8a574135a7b3b029d04fb28ae5}{ng\+\_\+bpf\+\_\+addrefs}} (\mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}} hook, void $\ast$arg)
\item 
static int \mbox{\hyperlink{ng__bpf_8c_a3d21d55a3a864b98e38125308a5dd41e}{ng\+\_\+bpf\+\_\+remrefs}} (\mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}} hook, void $\ast$arg)
\item 
static int \mbox{\hyperlink{ng__bpf_8c_a10cf6e05934ee5018d5850a467c8e104}{ng\+\_\+bpf\+\_\+newhook}} (\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}} node, \mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}} hook, const char $\ast$\mbox{\hyperlink{ng__ppp_8c_ab2adbf48c2df32ccf9cced3bc8c3dc26}{name}})
\item 
static int \mbox{\hyperlink{ng__bpf_8c_a9bdc9ce3519e5f0db7f45413726ac0f3}{ng\+\_\+bpf\+\_\+rcvmsg}} (\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}} node, \mbox{\hyperlink{netgraph_8h_ab848be155baf7e8b7ad0dd03893c1cac}{item\+\_\+p}} item, \mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}} lasthook)
\item 
static int \mbox{\hyperlink{ng__bpf_8c_adf0a754d4412c5cd6973d7694e824e78}{ng\+\_\+bpf\+\_\+rcvdata}} (\mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}} hook, \mbox{\hyperlink{netgraph_8h_ab848be155baf7e8b7ad0dd03893c1cac}{item\+\_\+p}} item)
\item 
static int \mbox{\hyperlink{ng__bpf_8c_a8e35f3a04e29e23322045b74f4248b47}{ng\+\_\+bpf\+\_\+shutdown}} (\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}} node)
\item 
static int \mbox{\hyperlink{ng__bpf_8c_afb4ee1d6b40875c63c88b0ea8b1eaa5c}{ng\+\_\+bpf\+\_\+disconnect}} (\mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}} hook)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static \mbox{\hyperlink{netgraph_8h_abb75b9ed2849e15851d6402d2ab5b899}{ng\+\_\+constructor\+\_\+t}} \mbox{\hyperlink{ng__bpf_8c_adfb6ef0651eef2e9126ae3bf27d045c5}{ng\+\_\+bpf\+\_\+constructor}}
\item 
static \mbox{\hyperlink{netgraph_8h_a47b860e2900386e775707cc1ae661162}{ng\+\_\+rcvmsg\+\_\+t}} \mbox{\hyperlink{ng__bpf_8c_afe23dc980481cb58a24717bbc5a2f233}{ng\+\_\+bpf\+\_\+rcvmsg}}
\item 
static \mbox{\hyperlink{netgraph_8h_aab0a679789a1af312a7f856b4668ad74}{ng\+\_\+shutdown\+\_\+t}} \mbox{\hyperlink{ng__bpf_8c_a2f2d1edb50cf8eb1d351f09a45325a72}{ng\+\_\+bpf\+\_\+shutdown}}
\item 
static \mbox{\hyperlink{netgraph_8h_afa50639df4ed6eb400f8220a890d56e6}{ng\+\_\+newhook\+\_\+t}} \mbox{\hyperlink{ng__bpf_8c_a6eac1ae0600e11b4c0d883f0e899a49f}{ng\+\_\+bpf\+\_\+newhook}}
\item 
static \mbox{\hyperlink{netgraph_8h_aa87ef7415b345b801747ceaf99de6c43}{ng\+\_\+rcvdata\+\_\+t}} \mbox{\hyperlink{ng__bpf_8c_afe8be7e285d2bcef9fb0b692a0e5ff0d}{ng\+\_\+bpf\+\_\+rcvdata}}
\item 
static \mbox{\hyperlink{netgraph_8h_a669e1783335f933b4a4f90f17d22f381}{ng\+\_\+disconnect\+\_\+t}} \mbox{\hyperlink{ng__bpf_8c_add793024eafd394774ff4805cb1828d0}{ng\+\_\+bpf\+\_\+disconnect}}
\item 
int \mbox{\hyperlink{ng__bpf_8c_ab18dfee80612346a1859ded7abee730f}{bpf\+\_\+maxinsns}}
\item 
static const struct \mbox{\hyperlink{structng__parse__struct__field}{ng\+\_\+parse\+\_\+struct\+\_\+field}} \mbox{\hyperlink{ng__bpf_8c_acecdd0bd9b33300907a8a66140d02e83}{ng\+\_\+bpf\+\_\+insn\+\_\+type\+\_\+fields}} \mbox{[}$\,$\mbox{]}
\item 
static const struct \mbox{\hyperlink{structng__parse__type}{ng\+\_\+parse\+\_\+type}} \mbox{\hyperlink{ng__bpf_8c_a8f5dfd915223714b44afe2e5025cf1f0}{ng\+\_\+bpf\+\_\+insn\+\_\+type}}
\item 
static const struct \mbox{\hyperlink{structng__parse__array__info}{ng\+\_\+parse\+\_\+array\+\_\+info}} \mbox{\hyperlink{ng__bpf_8c_a63ee7d1de31aa024ba92997271252bdc}{ng\+\_\+bpf\+\_\+hookprogary\+\_\+info}}
\item 
static const struct \mbox{\hyperlink{structng__parse__type}{ng\+\_\+parse\+\_\+type}} \mbox{\hyperlink{ng__bpf_8c_ac2dc4c59be00a8a65d89be5d9e2a11c4}{ng\+\_\+bpf\+\_\+hookprogary\+\_\+type}}
\item 
static const struct \mbox{\hyperlink{structng__parse__struct__field}{ng\+\_\+parse\+\_\+struct\+\_\+field}} \mbox{\hyperlink{ng__bpf_8c_aeae116f341f20db1a2cf4bc5f45610b7}{ng\+\_\+bpf\+\_\+hookprog\+\_\+type\+\_\+fields}} \mbox{[}$\,$\mbox{]} = \mbox{\hyperlink{ng__bpf_8h_a3fd68be5e90c0ccd1cf607baebac7b5f}{NG\+\_\+\+BPF\+\_\+\+HOOKPROG\+\_\+\+TYPE\+\_\+\+INFO}}(\&\mbox{\hyperlink{ng__bpf_8c_ac2dc4c59be00a8a65d89be5d9e2a11c4}{ng\+\_\+bpf\+\_\+hookprogary\+\_\+type}})
\item 
static const struct \mbox{\hyperlink{structng__parse__type}{ng\+\_\+parse\+\_\+type}} \mbox{\hyperlink{ng__bpf_8c_ad784940f0980b36734ec02568154fe42}{ng\+\_\+bpf\+\_\+hookprog\+\_\+type}}
\item 
static const struct \mbox{\hyperlink{structng__parse__struct__field}{ng\+\_\+parse\+\_\+struct\+\_\+field}} \mbox{\hyperlink{ng__bpf_8c_a1dbff499e23850afdd5896665d311326}{ng\+\_\+bpf\+\_\+hookstat\+\_\+type\+\_\+fields}} \mbox{[}$\,$\mbox{]} = \mbox{\hyperlink{ng__bpf_8h_a21f384bb7a106bdf8218e8c0d14a3550}{NG\+\_\+\+BPF\+\_\+\+HOOKSTAT\+\_\+\+TYPE\+\_\+\+INFO}}
\item 
static const struct \mbox{\hyperlink{structng__parse__type}{ng\+\_\+parse\+\_\+type}} \mbox{\hyperlink{ng__bpf_8c_a9ff3ded6b6e9353adc60c1b1a43965d6}{ng\+\_\+bpf\+\_\+hookstat\+\_\+type}}
\item 
static const struct \mbox{\hyperlink{structng__cmdlist}{ng\+\_\+cmdlist}} \mbox{\hyperlink{ng__bpf_8c_aee8a63826027f5efd4f9f3226a4327f5}{ng\+\_\+bpf\+\_\+cmdlist}} \mbox{[}$\,$\mbox{]}
\item 
static struct \mbox{\hyperlink{structng__type}{ng\+\_\+type}} \mbox{\hyperlink{ng__bpf_8c_a80a131770518c7fa3758d85054006e7a}{typestruct}}
\item 
static const struct \mbox{\hyperlink{structng__bpf__hookprog}{ng\+\_\+bpf\+\_\+hookprog}} \mbox{\hyperlink{ng__bpf_8c_accec94ef83fa333088f6c4df456c0c2a}{ng\+\_\+bpf\+\_\+default\+\_\+prog}}
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{ng__bpf_8c_a661c316872e6e1e6a714d7fad67f366f}\label{ng__bpf_8c_a661c316872e6e1e6a714d7fad67f366f}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ERROUT@{ERROUT}}
\index{ERROUT@{ERROUT}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ERROUT}{ERROUT}}
{\footnotesize\ttfamily \#define ERROUT(\begin{DoxyParamCaption}\item[{}]{x }\end{DoxyParamCaption})~do \{ error = (x); goto done; \} while (0)}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00084}{84}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_a061b5a7359a550e25ad84d7c694a9cd4}\label{ng__bpf_8c_a061b5a7359a550e25ad84d7c694a9cd4}} 
\index{ng\_bpf.c@{ng\_bpf.c}!M\_NETGRAPH\_BPF@{M\_NETGRAPH\_BPF}}
\index{M\_NETGRAPH\_BPF@{M\_NETGRAPH\_BPF}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{M\_NETGRAPH\_BPF}{M\_NETGRAPH\_BPF}}
{\footnotesize\ttfamily \#define M\+\_\+\+NETGRAPH\+\_\+\+BPF~M\+\_\+\+NETGRAPH}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00079}{79}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_aef34c7ae735fc1dcce6a222cc9252ab3}\label{ng__bpf_8c_aef34c7ae735fc1dcce6a222cc9252ab3}} 
\index{ng\_bpf.c@{ng\_bpf.c}!OFFSETOF@{OFFSETOF}}
\index{OFFSETOF@{OFFSETOF}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{OFFSETOF}{OFFSETOF}}
{\footnotesize\ttfamily \#define OFFSETOF(\begin{DoxyParamCaption}\item[{}]{s,  }\item[{}]{e }\end{DoxyParamCaption})~((char $\ast$)\&((s $\ast$)0)-\/$>$e -\/ (char $\ast$)((s $\ast$)0))}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00082}{82}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.



\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{ng__bpf_8c_ad1ccef44f965fa9d77a1a99c47fb1e98}\label{ng__bpf_8c_ad1ccef44f965fa9d77a1a99c47fb1e98}} 
\index{ng\_bpf.c@{ng\_bpf.c}!hinfo\_p@{hinfo\_p}}
\index{hinfo\_p@{hinfo\_p}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{hinfo\_p}{hinfo\_p}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structng__bpf__hookinfo}{ng\+\_\+bpf\+\_\+hookinfo}}$\ast$ \mbox{\hyperlink{ng__bpf_8c_ad1ccef44f965fa9d77a1a99c47fb1e98}{hinfo\+\_\+p}}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00097}{97}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{ng__bpf_8c_a9302d6701326dd81c5aa166c0417f16e}\label{ng__bpf_8c_a9302d6701326dd81c5aa166c0417f16e}} 
\index{ng\_bpf.c@{ng\_bpf.c}!NETGRAPH\_INIT@{NETGRAPH\_INIT}}
\index{NETGRAPH\_INIT@{NETGRAPH\_INIT}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{NETGRAPH\_INIT()}{NETGRAPH\_INIT()}}
{\footnotesize\ttfamily NETGRAPH\+\_\+\+INIT (\begin{DoxyParamCaption}\item[{bpf}]{,  }\item[{\&}]{typestruct }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ng__bpf_8c_a8833ea8a574135a7b3b029d04fb28ae5}\label{ng__bpf_8c_a8833ea8a574135a7b3b029d04fb28ae5}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_addrefs@{ng\_bpf\_addrefs}}
\index{ng\_bpf\_addrefs@{ng\_bpf\_addrefs}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_addrefs()}{ng\_bpf\_addrefs()}}
{\footnotesize\ttfamily static int ng\+\_\+bpf\+\_\+addrefs (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}}}]{hook,  }\item[{void $\ast$}]{arg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00244}{244}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.



References \mbox{\hyperlink{ng__bpf_8h_source_l00054}{ng\+\_\+bpf\+\_\+hookprog\+::if\+Match}}, \mbox{\hyperlink{ng__bpf_8h_source_l00055}{ng\+\_\+bpf\+\_\+hookprog\+::if\+Not\+Match}}, \mbox{\hyperlink{ng__bpf_8c_source_l00089}{ng\+\_\+bpf\+\_\+hookinfo\+::match}}, \mbox{\hyperlink{netgraph_8h_source_l00331}{NG\+\_\+\+HOOK\+\_\+\+NAME}}, \mbox{\hyperlink{netgraph_8h_source_l00336}{NG\+\_\+\+HOOK\+\_\+\+PRIVATE}}, \mbox{\hyperlink{ng__bpf_8c_source_l00090}{ng\+\_\+bpf\+\_\+hookinfo\+::nomatch}}, and \mbox{\hyperlink{ng__bpf_8c_source_l00091}{ng\+\_\+bpf\+\_\+hookinfo\+::prog}}.



Referenced by \mbox{\hyperlink{ng__bpf_8c_source_l00273}{ng\+\_\+bpf\+\_\+newhook()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=307pt]{d4/def/ng__bpf_8c_a8833ea8a574135a7b3b029d04fb28ae5_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{ng__bpf_8c_a9180009c76cde59664562591c251b71d}\label{ng__bpf_8c_a9180009c76cde59664562591c251b71d}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_constructor@{ng\_bpf\_constructor}}
\index{ng\_bpf\_constructor@{ng\_bpf\_constructor}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_constructor()}{ng\_bpf\_constructor()}}
{\footnotesize\ttfamily static int ng\+\_\+bpf\+\_\+constructor (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}}}]{node }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00234}{234}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.



References \mbox{\hyperlink{netgraph_8h_source_l00608}{NG\+\_\+\+NODE\+\_\+\+SET\+\_\+\+PRIVATE}}.

\mbox{\Hypertarget{ng__bpf_8c_afb4ee1d6b40875c63c88b0ea8b1eaa5c}\label{ng__bpf_8c_afb4ee1d6b40875c63c88b0ea8b1eaa5c}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_disconnect@{ng\_bpf\_disconnect}}
\index{ng\_bpf\_disconnect@{ng\_bpf\_disconnect}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_disconnect()}{ng\_bpf\_disconnect()}}
{\footnotesize\ttfamily static int ng\+\_\+bpf\+\_\+disconnect (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}}}]{hook }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00523}{523}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.



References \mbox{\hyperlink{ng__bpf_8c_source_l00079}{M\+\_\+\+NETGRAPH\+\_\+\+BPF}}, \mbox{\hyperlink{ng__bpf_8c_source_l00257}{ng\+\_\+bpf\+\_\+remrefs()}}, \mbox{\hyperlink{netgraph_8h_source_l00339}{NG\+\_\+\+HOOK\+\_\+\+NODE}}, \mbox{\hyperlink{netgraph_8h_source_l00336}{NG\+\_\+\+HOOK\+\_\+\+PRIVATE}}, \mbox{\hyperlink{netgraph_8h_source_l00617}{NG\+\_\+\+NODE\+\_\+\+FOREACH\+\_\+\+HOOK}}, \mbox{\hyperlink{netgraph_8h_source_l00610}{NG\+\_\+\+NODE\+\_\+\+IS\+\_\+\+VALID}}, \mbox{\hyperlink{netgraph_8h_source_l00615}{NG\+\_\+\+NODE\+\_\+\+NUMHOOKS}}, \mbox{\hyperlink{ng__base_8c_source_l01609}{ng\+\_\+rmnode\+\_\+self()}}, and \mbox{\hyperlink{ng__bpf_8c_source_l00091}{ng\+\_\+bpf\+\_\+hookinfo\+::prog}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d4/def/ng__bpf_8c_afb4ee1d6b40875c63c88b0ea8b1eaa5c_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{ng__bpf_8c_a18cd39078e824aebc77d60a6fda27c53}\label{ng__bpf_8c_a18cd39078e824aebc77d60a6fda27c53}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_hookprogary\_getLength@{ng\_bpf\_hookprogary\_getLength}}
\index{ng\_bpf\_hookprogary\_getLength@{ng\_bpf\_hookprogary\_getLength}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_hookprogary\_getLength()}{ng\_bpf\_hookprogary\_getLength()}}
{\footnotesize\ttfamily static int ng\+\_\+bpf\+\_\+hookprogary\+\_\+get\+Length (\begin{DoxyParamCaption}\item[{const struct \mbox{\hyperlink{structng__parse__type}{ng\+\_\+parse\+\_\+type}} $\ast$}]{type,  }\item[{const u\+\_\+char $\ast$}]{start,  }\item[{const u\+\_\+char $\ast$}]{buf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00128}{128}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.



References \mbox{\hyperlink{ng__bpf_8h_source_l00057}{ng\+\_\+bpf\+\_\+hookprog\+::bpf\+\_\+prog}}, \mbox{\hyperlink{ng__bpf_8h_source_l00056}{ng\+\_\+bpf\+\_\+hookprog\+::bpf\+\_\+prog\+\_\+len}}, and \mbox{\hyperlink{ng__bpf_8c_source_l00082}{OFFSETOF}}.

\mbox{\Hypertarget{ng__bpf_8c_a10cf6e05934ee5018d5850a467c8e104}\label{ng__bpf_8c_a10cf6e05934ee5018d5850a467c8e104}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_newhook@{ng\_bpf\_newhook}}
\index{ng\_bpf\_newhook@{ng\_bpf\_newhook}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_newhook()}{ng\_bpf\_newhook()}}
{\footnotesize\ttfamily static int ng\+\_\+bpf\+\_\+newhook (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}}}]{node,  }\item[{\mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}}}]{hook,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00273}{273}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.



References \mbox{\hyperlink{ng__bpf_8c_source_l00088}{ng\+\_\+bpf\+\_\+hookinfo\+::hook}}, \mbox{\hyperlink{ng__bpf_8c_source_l00079}{M\+\_\+\+NETGRAPH\+\_\+\+BPF}}, \mbox{\hyperlink{ng__ppp_8c_source_l00261}{name}}, \mbox{\hyperlink{ng__bpf_8c_source_l00244}{ng\+\_\+bpf\+\_\+addrefs()}}, \mbox{\hyperlink{ng__bpf_8c_source_l00219}{ng\+\_\+bpf\+\_\+default\+\_\+prog}}, \mbox{\hyperlink{ng__bpf_8c_source_l00555}{ng\+\_\+bpf\+\_\+setprog()}}, \mbox{\hyperlink{netgraph_8h_source_l00333}{NG\+\_\+\+HOOK\+\_\+\+SET\+\_\+\+PRIVATE}}, \mbox{\hyperlink{netgraph_8h_source_l00617}{NG\+\_\+\+NODE\+\_\+\+FOREACH\+\_\+\+HOOK}}, \mbox{\hyperlink{ng__bpf_8c_source_l00091}{ng\+\_\+bpf\+\_\+hookinfo\+::prog}}, and \mbox{\hyperlink{ng__bpf_8h_source_l00053}{ng\+\_\+bpf\+\_\+hookprog\+::this\+Hook}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d4/def/ng__bpf_8c_a10cf6e05934ee5018d5850a467c8e104_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{ng__bpf_8c_adf0a754d4412c5cd6973d7694e824e78}\label{ng__bpf_8c_adf0a754d4412c5cd6973d7694e824e78}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_rcvdata@{ng\_bpf\_rcvdata}}
\index{ng\_bpf\_rcvdata@{ng\_bpf\_rcvdata}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_rcvdata()}{ng\_bpf\_rcvdata()}}
{\footnotesize\ttfamily static int ng\+\_\+bpf\+\_\+rcvdata (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}}}]{hook,  }\item[{\mbox{\hyperlink{netgraph_8h_ab848be155baf7e8b7ad0dd03893c1cac}{item\+\_\+p}}}]{item }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00415}{415}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.



References \mbox{\hyperlink{ng__bpf_8h_source_l00057}{ng\+\_\+bpf\+\_\+hookprog\+::bpf\+\_\+prog}}, \mbox{\hyperlink{ng__ubt__var_8h_source_l00002}{data}}, \mbox{\hyperlink{ng__bpf_8c_source_l00079}{M\+\_\+\+NETGRAPH\+\_\+\+BPF}}, \mbox{\hyperlink{ng__bpf_8c_source_l00089}{ng\+\_\+bpf\+\_\+hookinfo\+::match}}, \mbox{\hyperlink{netgraph_8h_source_l00847}{NG\+\_\+\+FREE\+\_\+\+ITEM}}, \mbox{\hyperlink{netgraph_8h_source_l00898}{NG\+\_\+\+FWD\+\_\+\+ITEM\+\_\+\+HOOK}}, \mbox{\hyperlink{netgraph_8h_source_l00336}{NG\+\_\+\+HOOK\+\_\+\+PRIVATE}}, \mbox{\hyperlink{netgraph_8h_source_l00833}{NGI\+\_\+M}}, \mbox{\hyperlink{ng__bpf_8c_source_l00090}{ng\+\_\+bpf\+\_\+hookinfo\+::nomatch}}, \mbox{\hyperlink{ng__bpf_8c_source_l00091}{ng\+\_\+bpf\+\_\+hookinfo\+::prog}}, \mbox{\hyperlink{ng__bpf_8h_source_l00075}{ng\+\_\+bpf\+\_\+hookstat\+::recv\+Frames}}, \mbox{\hyperlink{ng__bpf_8h_source_l00077}{ng\+\_\+bpf\+\_\+hookstat\+::recv\+Match\+Frames}}, \mbox{\hyperlink{ng__bpf_8h_source_l00078}{ng\+\_\+bpf\+\_\+hookstat\+::recv\+Match\+Octets}}, \mbox{\hyperlink{ng__bpf_8h_source_l00076}{ng\+\_\+bpf\+\_\+hookstat\+::recv\+Octets}}, \mbox{\hyperlink{ng__bpf_8c_source_l00095}{ng\+\_\+bpf\+\_\+hookinfo\+::stats}}, \mbox{\hyperlink{ng__bpf_8h_source_l00079}{ng\+\_\+bpf\+\_\+hookstat\+::xmit\+Frames}}, and \mbox{\hyperlink{ng__bpf_8h_source_l00080}{ng\+\_\+bpf\+\_\+hookstat\+::xmit\+Octets}}.

\mbox{\Hypertarget{ng__bpf_8c_a9bdc9ce3519e5f0db7f45413726ac0f3}\label{ng__bpf_8c_a9bdc9ce3519e5f0db7f45413726ac0f3}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_rcvmsg@{ng\_bpf\_rcvmsg}}
\index{ng\_bpf\_rcvmsg@{ng\_bpf\_rcvmsg}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_rcvmsg()}{ng\_bpf\_rcvmsg()}}
{\footnotesize\ttfamily static int ng\+\_\+bpf\+\_\+rcvmsg (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}}}]{node,  }\item[{\mbox{\hyperlink{netgraph_8h_ab848be155baf7e8b7ad0dd03893c1cac}{item\+\_\+p}}}]{item,  }\item[{\mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}}}]{lasthook }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00305}{305}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.



References \mbox{\hyperlink{ng__message_8h_source_l00062}{ng\+\_\+mesg\+::ng\+\_\+msghdr\+::arglen}}, \mbox{\hyperlink{ng__bpf_8h_source_l00056}{ng\+\_\+bpf\+\_\+hookprog\+::bpf\+\_\+prog\+\_\+len}}, \mbox{\hyperlink{ng__message_8h_source_l00063}{ng\+\_\+mesg\+::ng\+\_\+msghdr\+::cmd}}, \mbox{\hyperlink{ng__message_8h_source_l00069}{ng\+\_\+mesg\+::data}}, \mbox{\hyperlink{ng__bpf_8c_source_l00084}{ERROUT}}, \mbox{\hyperlink{structng__mesg_a16ea313a1e38531a10a14902b7579210}{ng\+\_\+mesg\+::header}}, \mbox{\hyperlink{ng__bpf_8h_source_l00060}{NG\+\_\+\+BPF\+\_\+\+HOOKPROG\+\_\+\+SIZE}}, \mbox{\hyperlink{ng__bpf_8c_source_l00555}{ng\+\_\+bpf\+\_\+setprog()}}, \mbox{\hyperlink{ng__base_8c_source_l01129}{ng\+\_\+findhook()}}, \mbox{\hyperlink{netgraph_8h_source_l00938}{NG\+\_\+\+FREE\+\_\+\+MSG}}, \mbox{\hyperlink{netgraph_8h_source_l00336}{NG\+\_\+\+HOOK\+\_\+\+PRIVATE}}, \mbox{\hyperlink{ng__message_8h_source_l00396}{NG\+\_\+\+MKRESPONSE}}, \mbox{\hyperlink{netgraph_8h_source_l01025}{NG\+\_\+\+RESPOND\+\_\+\+MSG}}, \mbox{\hyperlink{netgraph_8h_source_l00858}{NGI\+\_\+\+GET\+\_\+\+MSG}}, \mbox{\hyperlink{ng__bpf_8h_source_l00099}{NGM\+\_\+\+BPF\+\_\+\+CLR\+\_\+\+STATS}}, \mbox{\hyperlink{ng__bpf_8h_source_l00049}{NGM\+\_\+\+BPF\+\_\+\+COOKIE}}, \mbox{\hyperlink{ng__bpf_8h_source_l00097}{NGM\+\_\+\+BPF\+\_\+\+GET\+\_\+\+PROGRAM}}, \mbox{\hyperlink{ng__bpf_8h_source_l00098}{NGM\+\_\+\+BPF\+\_\+\+GET\+\_\+\+STATS}}, \mbox{\hyperlink{ng__bpf_8h_source_l00100}{NGM\+\_\+\+BPF\+\_\+\+GETCLR\+\_\+\+STATS}}, \mbox{\hyperlink{ng__bpf_8h_source_l00096}{NGM\+\_\+\+BPF\+\_\+\+SET\+\_\+\+PROGRAM}}, \mbox{\hyperlink{ng__bpf_8h_source_l00053}{ng\+\_\+bpf\+\_\+hookprog\+::this\+Hook}}, and \mbox{\hyperlink{ng__message_8h_source_l00066}{ng\+\_\+mesg\+::ng\+\_\+msghdr\+::typecookie}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d4/def/ng__bpf_8c_a9bdc9ce3519e5f0db7f45413726ac0f3_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{ng__bpf_8c_a3d21d55a3a864b98e38125308a5dd41e}\label{ng__bpf_8c_a3d21d55a3a864b98e38125308a5dd41e}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_remrefs@{ng\_bpf\_remrefs}}
\index{ng\_bpf\_remrefs@{ng\_bpf\_remrefs}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_remrefs()}{ng\_bpf\_remrefs()}}
{\footnotesize\ttfamily static int ng\+\_\+bpf\+\_\+remrefs (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}}}]{hook,  }\item[{void $\ast$}]{arg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00257}{257}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.



References \mbox{\hyperlink{ng__bpf_8c_source_l00089}{ng\+\_\+bpf\+\_\+hookinfo\+::match}}, \mbox{\hyperlink{netgraph_8h_source_l00336}{NG\+\_\+\+HOOK\+\_\+\+PRIVATE}}, and \mbox{\hyperlink{ng__bpf_8c_source_l00090}{ng\+\_\+bpf\+\_\+hookinfo\+::nomatch}}.



Referenced by \mbox{\hyperlink{ng__bpf_8c_source_l00523}{ng\+\_\+bpf\+\_\+disconnect()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=316pt]{d4/def/ng__bpf_8c_a3d21d55a3a864b98e38125308a5dd41e_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{ng__bpf_8c_a9394f1fbf40002629f373980d7ab0a7f}\label{ng__bpf_8c_a9394f1fbf40002629f373980d7ab0a7f}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_setprog@{ng\_bpf\_setprog}}
\index{ng\_bpf\_setprog@{ng\_bpf\_setprog}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_setprog()}{ng\_bpf\_setprog()}}
{\footnotesize\ttfamily static int ng\+\_\+bpf\+\_\+setprog (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}}}]{hook,  }\item[{const struct \mbox{\hyperlink{structng__bpf__hookprog}{ng\+\_\+bpf\+\_\+hookprog}} $\ast$}]{hp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00555}{555}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.



References \mbox{\hyperlink{ng__bpf_8c_ab18dfee80612346a1859ded7abee730f}{bpf\+\_\+maxinsns}}, \mbox{\hyperlink{ng__bpf_8h_source_l00057}{ng\+\_\+bpf\+\_\+hookprog\+::bpf\+\_\+prog}}, \mbox{\hyperlink{ng__bpf_8h_source_l00056}{ng\+\_\+bpf\+\_\+hookprog\+::bpf\+\_\+prog\+\_\+len}}, \mbox{\hyperlink{ng__bpf_8h_source_l00054}{ng\+\_\+bpf\+\_\+hookprog\+::if\+Match}}, \mbox{\hyperlink{ng__bpf_8h_source_l00055}{ng\+\_\+bpf\+\_\+hookprog\+::if\+Not\+Match}}, \mbox{\hyperlink{ng__bpf_8c_source_l00079}{M\+\_\+\+NETGRAPH\+\_\+\+BPF}}, \mbox{\hyperlink{ng__bpf_8c_source_l00089}{ng\+\_\+bpf\+\_\+hookinfo\+::match}}, \mbox{\hyperlink{ng__bpf_8h_source_l00060}{NG\+\_\+\+BPF\+\_\+\+HOOKPROG\+\_\+\+SIZE}}, \mbox{\hyperlink{ng__base_8c_source_l01129}{ng\+\_\+findhook()}}, \mbox{\hyperlink{netgraph_8h_source_l00339}{NG\+\_\+\+HOOK\+\_\+\+NODE}}, \mbox{\hyperlink{netgraph_8h_source_l00336}{NG\+\_\+\+HOOK\+\_\+\+PRIVATE}}, \mbox{\hyperlink{ng__bpf_8c_source_l00090}{ng\+\_\+bpf\+\_\+hookinfo\+::nomatch}}, and \mbox{\hyperlink{ng__bpf_8c_source_l00091}{ng\+\_\+bpf\+\_\+hookinfo\+::prog}}.



Referenced by \mbox{\hyperlink{ng__bpf_8c_source_l00273}{ng\+\_\+bpf\+\_\+newhook()}}, and \mbox{\hyperlink{ng__bpf_8c_source_l00305}{ng\+\_\+bpf\+\_\+rcvmsg()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=284pt]{d4/def/ng__bpf_8c_a9394f1fbf40002629f373980d7ab0a7f_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=307pt]{d4/def/ng__bpf_8c_a9394f1fbf40002629f373980d7ab0a7f_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{ng__bpf_8c_a8e35f3a04e29e23322045b74f4248b47}\label{ng__bpf_8c_a8e35f3a04e29e23322045b74f4248b47}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_shutdown@{ng\_bpf\_shutdown}}
\index{ng\_bpf\_shutdown@{ng\_bpf\_shutdown}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_shutdown()}{ng\_bpf\_shutdown()}}
{\footnotesize\ttfamily static int ng\+\_\+bpf\+\_\+shutdown (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}}}]{node }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00513}{513}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.



References \mbox{\hyperlink{netgraph_8h_source_l00607}{NG\+\_\+\+NODE\+\_\+\+UNREF}}.



\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{ng__bpf_8c_ab18dfee80612346a1859ded7abee730f}\label{ng__bpf_8c_ab18dfee80612346a1859ded7abee730f}} 
\index{ng\_bpf.c@{ng\_bpf.c}!bpf\_maxinsns@{bpf\_maxinsns}}
\index{bpf\_maxinsns@{bpf\_maxinsns}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{bpf\_maxinsns}{bpf\_maxinsns}}
{\footnotesize\ttfamily int bpf\+\_\+maxinsns\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \mbox{\hyperlink{ng__bpf_8c_source_l00555}{ng\+\_\+bpf\+\_\+setprog()}}.

\mbox{\Hypertarget{ng__bpf_8c_aee8a63826027f5efd4f9f3226a4327f5}\label{ng__bpf_8c_aee8a63826027f5efd4f9f3226a4327f5}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_cmdlist@{ng\_bpf\_cmdlist}}
\index{ng\_bpf\_cmdlist@{ng\_bpf\_cmdlist}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_cmdlist}{ng\_bpf\_cmdlist}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structng__cmdlist}{ng\+\_\+cmdlist}} ng\+\_\+bpf\+\_\+cmdlist\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00165}{165}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_adfb6ef0651eef2e9126ae3bf27d045c5}\label{ng__bpf_8c_adfb6ef0651eef2e9126ae3bf27d045c5}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_constructor@{ng\_bpf\_constructor}}
\index{ng\_bpf\_constructor@{ng\_bpf\_constructor}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_constructor}{ng\_bpf\_constructor}}
{\footnotesize\ttfamily \mbox{\hyperlink{netgraph_8h_abb75b9ed2849e15851d6402d2ab5b899}{ng\+\_\+constructor\+\_\+t}} ng\+\_\+bpf\+\_\+constructor\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00100}{100}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_accec94ef83fa333088f6c4df456c0c2a}\label{ng__bpf_8c_accec94ef83fa333088f6c4df456c0c2a}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_default\_prog@{ng\_bpf\_default\_prog}}
\index{ng\_bpf\_default\_prog@{ng\_bpf\_default\_prog}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_default\_prog}{ng\_bpf\_default\_prog}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structng__bpf__hookprog}{ng\+\_\+bpf\+\_\+hookprog}} ng\+\_\+bpf\+\_\+default\+\_\+prog\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ \textcolor{charliteral}{'\(\backslash\)0'} \},               }
\DoxyCodeLine{        \{ \textcolor{charliteral}{'\(\backslash\)0'} \},}
\DoxyCodeLine{        \{ \textcolor{charliteral}{'\(\backslash\)0'} \},}
\DoxyCodeLine{        1,}
\DoxyCodeLine{        \{ BPF\_STMT(BPF\_RET+BPF\_K, 0) \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00219}{219}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.



Referenced by \mbox{\hyperlink{ng__bpf_8c_source_l00273}{ng\+\_\+bpf\+\_\+newhook()}}.

\mbox{\Hypertarget{ng__bpf_8c_add793024eafd394774ff4805cb1828d0}\label{ng__bpf_8c_add793024eafd394774ff4805cb1828d0}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_disconnect@{ng\_bpf\_disconnect}}
\index{ng\_bpf\_disconnect@{ng\_bpf\_disconnect}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_disconnect}{ng\_bpf\_disconnect}}
{\footnotesize\ttfamily \mbox{\hyperlink{netgraph_8h_a669e1783335f933b4a4f90f17d22f381}{ng\+\_\+disconnect\+\_\+t}} ng\+\_\+bpf\+\_\+disconnect\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00105}{105}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_ad784940f0980b36734ec02568154fe42}\label{ng__bpf_8c_ad784940f0980b36734ec02568154fe42}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_hookprog\_type@{ng\_bpf\_hookprog\_type}}
\index{ng\_bpf\_hookprog\_type@{ng\_bpf\_hookprog\_type}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_hookprog\_type}{ng\_bpf\_hookprog\_type}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structng__parse__type}{ng\+\_\+parse\+\_\+type}} ng\+\_\+bpf\+\_\+hookprog\+\_\+type\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \&\mbox{\hyperlink{ng__parse_8c_aa8b7049fbd698972a3d2ce77dfd7d079}{ng\_parse\_struct\_type}},}
\DoxyCodeLine{        \&\mbox{\hyperlink{ng__bpf_8c_aeae116f341f20db1a2cf4bc5f45610b7}{ng\_bpf\_hookprog\_type\_fields}}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00151}{151}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_aeae116f341f20db1a2cf4bc5f45610b7}\label{ng__bpf_8c_aeae116f341f20db1a2cf4bc5f45610b7}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_hookprog\_type\_fields@{ng\_bpf\_hookprog\_type\_fields}}
\index{ng\_bpf\_hookprog\_type\_fields@{ng\_bpf\_hookprog\_type\_fields}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_hookprog\_type\_fields}{ng\_bpf\_hookprog\_type\_fields}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structng__parse__struct__field}{ng\+\_\+parse\+\_\+struct\+\_\+field}} ng\+\_\+bpf\+\_\+hookprog\+\_\+type\+\_\+fields\mbox{[}$\,$\mbox{]} = \mbox{\hyperlink{ng__bpf_8h_a3fd68be5e90c0ccd1cf607baebac7b5f}{NG\+\_\+\+BPF\+\_\+\+HOOKPROG\+\_\+\+TYPE\+\_\+\+INFO}}(\&\mbox{\hyperlink{ng__bpf_8c_ac2dc4c59be00a8a65d89be5d9e2a11c4}{ng\+\_\+bpf\+\_\+hookprogary\+\_\+type}})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00149}{149}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_a63ee7d1de31aa024ba92997271252bdc}\label{ng__bpf_8c_a63ee7d1de31aa024ba92997271252bdc}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_hookprogary\_info@{ng\_bpf\_hookprogary\_info}}
\index{ng\_bpf\_hookprogary\_info@{ng\_bpf\_hookprogary\_info}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_hookprogary\_info}{ng\_bpf\_hookprogary\_info}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structng__parse__array__info}{ng\+\_\+parse\+\_\+array\+\_\+info}} ng\+\_\+bpf\+\_\+hookprogary\+\_\+info\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \&\mbox{\hyperlink{ng__bpf_8c_a8f5dfd915223714b44afe2e5025cf1f0}{ng\_bpf\_insn\_type}},}
\DoxyCodeLine{        \&\mbox{\hyperlink{ng__bpf_8c_a18cd39078e824aebc77d60a6fda27c53}{ng\_bpf\_hookprogary\_getLength}},}
\DoxyCodeLine{        NULL}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00138}{138}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_ac2dc4c59be00a8a65d89be5d9e2a11c4}\label{ng__bpf_8c_ac2dc4c59be00a8a65d89be5d9e2a11c4}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_hookprogary\_type@{ng\_bpf\_hookprogary\_type}}
\index{ng\_bpf\_hookprogary\_type@{ng\_bpf\_hookprogary\_type}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_hookprogary\_type}{ng\_bpf\_hookprogary\_type}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structng__parse__type}{ng\+\_\+parse\+\_\+type}} ng\+\_\+bpf\+\_\+hookprogary\+\_\+type\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \&\mbox{\hyperlink{ng__parse_8c_a979248410eaad0c3e86262fe53840012}{ng\_parse\_array\_type}},}
\DoxyCodeLine{        \&\mbox{\hyperlink{ng__bpf_8c_a63ee7d1de31aa024ba92997271252bdc}{ng\_bpf\_hookprogary\_info}}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00143}{143}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_a9ff3ded6b6e9353adc60c1b1a43965d6}\label{ng__bpf_8c_a9ff3ded6b6e9353adc60c1b1a43965d6}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_hookstat\_type@{ng\_bpf\_hookstat\_type}}
\index{ng\_bpf\_hookstat\_type@{ng\_bpf\_hookstat\_type}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_hookstat\_type}{ng\_bpf\_hookstat\_type}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structng__parse__type}{ng\+\_\+parse\+\_\+type}} ng\+\_\+bpf\+\_\+hookstat\+\_\+type\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \&\mbox{\hyperlink{ng__parse_8c_aa8b7049fbd698972a3d2ce77dfd7d079}{ng\_parse\_struct\_type}},}
\DoxyCodeLine{        \&\mbox{\hyperlink{ng__bpf_8c_a1dbff499e23850afdd5896665d311326}{ng\_bpf\_hookstat\_type\_fields}}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00159}{159}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_a1dbff499e23850afdd5896665d311326}\label{ng__bpf_8c_a1dbff499e23850afdd5896665d311326}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_hookstat\_type\_fields@{ng\_bpf\_hookstat\_type\_fields}}
\index{ng\_bpf\_hookstat\_type\_fields@{ng\_bpf\_hookstat\_type\_fields}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_hookstat\_type\_fields}{ng\_bpf\_hookstat\_type\_fields}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structng__parse__struct__field}{ng\+\_\+parse\+\_\+struct\+\_\+field}} ng\+\_\+bpf\+\_\+hookstat\+\_\+type\+\_\+fields\mbox{[}$\,$\mbox{]} = \mbox{\hyperlink{ng__bpf_8h_a21f384bb7a106bdf8218e8c0d14a3550}{NG\+\_\+\+BPF\+\_\+\+HOOKSTAT\+\_\+\+TYPE\+\_\+\+INFO}}\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00157}{157}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_a8f5dfd915223714b44afe2e5025cf1f0}\label{ng__bpf_8c_a8f5dfd915223714b44afe2e5025cf1f0}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_insn\_type@{ng\_bpf\_insn\_type}}
\index{ng\_bpf\_insn\_type@{ng\_bpf\_insn\_type}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_insn\_type}{ng\_bpf\_insn\_type}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structng__parse__type}{ng\+\_\+parse\+\_\+type}} ng\+\_\+bpf\+\_\+insn\+\_\+type\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \&\mbox{\hyperlink{ng__parse_8c_aa8b7049fbd698972a3d2ce77dfd7d079}{ng\_parse\_struct\_type}},}
\DoxyCodeLine{        \&\mbox{\hyperlink{ng__bpf_8c_acecdd0bd9b33300907a8a66140d02e83}{ng\_bpf\_insn\_type\_fields}}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00121}{121}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_acecdd0bd9b33300907a8a66140d02e83}\label{ng__bpf_8c_acecdd0bd9b33300907a8a66140d02e83}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_insn\_type\_fields@{ng\_bpf\_insn\_type\_fields}}
\index{ng\_bpf\_insn\_type\_fields@{ng\_bpf\_insn\_type\_fields}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_insn\_type\_fields}{ng\_bpf\_insn\_type\_fields}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structng__parse__struct__field}{ng\+\_\+parse\+\_\+struct\+\_\+field}} ng\+\_\+bpf\+\_\+insn\+\_\+type\+\_\+fields\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ \textcolor{stringliteral}{"{}code"{}},       \&\mbox{\hyperlink{ng__parse_8c_aeeb928df33d1ea4702549d3b4ce8bc0b}{ng\_parse\_hint16\_type}}       \},}
\DoxyCodeLine{        \{ \textcolor{stringliteral}{"{}jt"{}},         \&\mbox{\hyperlink{ng__parse_8c_ad9b579abf3953b9655aec194529ddc1d}{ng\_parse\_uint8\_type}} \},}
\DoxyCodeLine{        \{ \textcolor{stringliteral}{"{}jf"{}},         \&\mbox{\hyperlink{ng__parse_8c_ad9b579abf3953b9655aec194529ddc1d}{ng\_parse\_uint8\_type}} \},}
\DoxyCodeLine{        \{ \textcolor{stringliteral}{"{}k"{}},          \&\mbox{\hyperlink{ng__parse_8c_ac8ed58dbf4650a5ddc5bfd882e064519}{ng\_parse\_uint32\_type}}       \},}
\DoxyCodeLine{        \{ NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00114}{114}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_a6eac1ae0600e11b4c0d883f0e899a49f}\label{ng__bpf_8c_a6eac1ae0600e11b4c0d883f0e899a49f}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_newhook@{ng\_bpf\_newhook}}
\index{ng\_bpf\_newhook@{ng\_bpf\_newhook}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_newhook}{ng\_bpf\_newhook}}
{\footnotesize\ttfamily \mbox{\hyperlink{netgraph_8h_afa50639df4ed6eb400f8220a890d56e6}{ng\+\_\+newhook\+\_\+t}} ng\+\_\+bpf\+\_\+newhook\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00103}{103}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_afe8be7e285d2bcef9fb0b692a0e5ff0d}\label{ng__bpf_8c_afe8be7e285d2bcef9fb0b692a0e5ff0d}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_rcvdata@{ng\_bpf\_rcvdata}}
\index{ng\_bpf\_rcvdata@{ng\_bpf\_rcvdata}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_rcvdata}{ng\_bpf\_rcvdata}}
{\footnotesize\ttfamily \mbox{\hyperlink{netgraph_8h_aa87ef7415b345b801747ceaf99de6c43}{ng\+\_\+rcvdata\+\_\+t}} ng\+\_\+bpf\+\_\+rcvdata\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00104}{104}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_afe23dc980481cb58a24717bbc5a2f233}\label{ng__bpf_8c_afe23dc980481cb58a24717bbc5a2f233}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_rcvmsg@{ng\_bpf\_rcvmsg}}
\index{ng\_bpf\_rcvmsg@{ng\_bpf\_rcvmsg}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_rcvmsg}{ng\_bpf\_rcvmsg}}
{\footnotesize\ttfamily \mbox{\hyperlink{netgraph_8h_a47b860e2900386e775707cc1ae661162}{ng\+\_\+rcvmsg\+\_\+t}} ng\+\_\+bpf\+\_\+rcvmsg\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00101}{101}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_a2f2d1edb50cf8eb1d351f09a45325a72}\label{ng__bpf_8c_a2f2d1edb50cf8eb1d351f09a45325a72}} 
\index{ng\_bpf.c@{ng\_bpf.c}!ng\_bpf\_shutdown@{ng\_bpf\_shutdown}}
\index{ng\_bpf\_shutdown@{ng\_bpf\_shutdown}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{ng\_bpf\_shutdown}{ng\_bpf\_shutdown}}
{\footnotesize\ttfamily \mbox{\hyperlink{netgraph_8h_aab0a679789a1af312a7f856b4668ad74}{ng\+\_\+shutdown\+\_\+t}} ng\+\_\+bpf\+\_\+shutdown\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00102}{102}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

\mbox{\Hypertarget{ng__bpf_8c_a80a131770518c7fa3758d85054006e7a}\label{ng__bpf_8c_a80a131770518c7fa3758d85054006e7a}} 
\index{ng\_bpf.c@{ng\_bpf.c}!typestruct@{typestruct}}
\index{typestruct@{typestruct}!ng\_bpf.c@{ng\_bpf.c}}
\doxysubsubsection{\texorpdfstring{typestruct}{typestruct}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structng__type}{ng\+\_\+type}} typestruct\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .version =      \mbox{\hyperlink{netgraph_8h_acc6b5f853e8058f4d5a8ca825ee60c97}{NG\_ABI\_VERSION}},}
\DoxyCodeLine{        .name =         \mbox{\hyperlink{ng__bpf_8h_aae7fc69a31ff5ed5efa347ef4603328d}{NG\_BPF\_NODE\_TYPE}},}
\DoxyCodeLine{        .constructor =  \mbox{\hyperlink{ng__bpf_8c_adfb6ef0651eef2e9126ae3bf27d045c5}{ng\_bpf\_constructor}},}
\DoxyCodeLine{        .rcvmsg =       \mbox{\hyperlink{ng__bpf_8c_afe23dc980481cb58a24717bbc5a2f233}{ng\_bpf\_rcvmsg}},}
\DoxyCodeLine{        .shutdown =     \mbox{\hyperlink{ng__bpf_8c_a2f2d1edb50cf8eb1d351f09a45325a72}{ng\_bpf\_shutdown}},}
\DoxyCodeLine{        .newhook =      \mbox{\hyperlink{ng__bpf_8c_a6eac1ae0600e11b4c0d883f0e899a49f}{ng\_bpf\_newhook}},}
\DoxyCodeLine{        .rcvdata =      \mbox{\hyperlink{ng__bpf_8c_afe8be7e285d2bcef9fb0b692a0e5ff0d}{ng\_bpf\_rcvdata}},}
\DoxyCodeLine{        .disconnect =   \mbox{\hyperlink{ng__bpf_8c_add793024eafd394774ff4805cb1828d0}{ng\_bpf\_disconnect}},}
\DoxyCodeLine{        .cmdlist =      \mbox{\hyperlink{ng__bpf_8c_aee8a63826027f5efd4f9f3226a4327f5}{ng\_bpf\_cmdlist}},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{ng__bpf_8c_source_l00205}{205}} of file \mbox{\hyperlink{ng__bpf_8c_source}{ng\+\_\+bpf.\+c}}.

