\hypertarget{ng__ipfw_8c}{}\doxysection{netgraph/ng\+\_\+ipfw.c File Reference}
\label{ng__ipfw_8c}\index{netgraph/ng\_ipfw.c@{netgraph/ng\_ipfw.c}}
{\ttfamily \#include \char`\"{}opt\+\_\+inet.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}opt\+\_\+inet6.\+h\char`\"{}}\newline
{\ttfamily \#include $<$sys/param.\+h$>$}\newline
{\ttfamily \#include $<$sys/systm.\+h$>$}\newline
{\ttfamily \#include $<$sys/kernel.\+h$>$}\newline
{\ttfamily \#include $<$sys/lock.\+h$>$}\newline
{\ttfamily \#include $<$sys/mbuf.\+h$>$}\newline
{\ttfamily \#include $<$sys/malloc.\+h$>$}\newline
{\ttfamily \#include $<$sys/ctype.\+h$>$}\newline
{\ttfamily \#include $<$sys/errno.\+h$>$}\newline
{\ttfamily \#include $<$sys/rwlock.\+h$>$}\newline
{\ttfamily \#include $<$sys/socket.\+h$>$}\newline
{\ttfamily \#include $<$sys/syslog.\+h$>$}\newline
{\ttfamily \#include $<$net/if.\+h$>$}\newline
{\ttfamily \#include $<$net/if\+\_\+var.\+h$>$}\newline
{\ttfamily \#include $<$netinet/in.\+h$>$}\newline
{\ttfamily \#include $<$netinet/in\+\_\+systm.\+h$>$}\newline
{\ttfamily \#include $<$netinet/in\+\_\+var.\+h$>$}\newline
{\ttfamily \#include $<$netinet/ip\+\_\+var.\+h$>$}\newline
{\ttfamily \#include $<$netinet/ip\+\_\+fw.\+h$>$}\newline
{\ttfamily \#include $<$netinet/ip.\+h$>$}\newline
{\ttfamily \#include $<$netinet/ip6.\+h$>$}\newline
{\ttfamily \#include $<$netinet6/ip6\+\_\+var.\+h$>$}\newline
{\ttfamily \#include $<$netpfil/ipfw/ip\+\_\+fw\+\_\+private.\+h$>$}\newline
{\ttfamily \#include $<$netgraph/ng\+\_\+message.\+h$>$}\newline
{\ttfamily \#include $<$netgraph/ng\+\_\+parse.\+h$>$}\newline
{\ttfamily \#include $<$netgraph/ng\+\_\+ipfw.\+h$>$}\newline
{\ttfamily \#include $<$netgraph/netgraph.\+h$>$}\newline
Include dependency graph for ng\+\_\+ipfw.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{da/d4f/ng__ipfw_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structng__ipfw__hook__priv}{ng\+\_\+ipfw\+\_\+hook\+\_\+priv}}
\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \mbox{\hyperlink{structng__ipfw__hook__priv}{ng\+\_\+ipfw\+\_\+hook\+\_\+priv}} $\ast$ \mbox{\hyperlink{ng__ipfw_8c_ac5c742327d20436cd60a17c56eb6ebdd}{hpriv\+\_\+p}}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static int \mbox{\hyperlink{ng__ipfw_8c_a4c4e7af60a1ce8e85a69c65697c12882}{ng\+\_\+ipfw\+\_\+mod\+\_\+event}} (module\+\_\+t mod, int \mbox{\hyperlink{ng__ubt__var_8h_aeef6900f411bc223febdd92c9435693b}{event}}, void $\ast$\mbox{\hyperlink{ng__ubt__var_8h_a7f897df1949af68456ee830f2468e476}{data}})
\item 
static \mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}} \mbox{\hyperlink{ng__ipfw_8c_aaa113fcaf18c83b15fa30725c6045c97}{ng\+\_\+ipfw\+\_\+findhook1}} (\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}}, u\+\_\+int16\+\_\+t)
\item 
static int \mbox{\hyperlink{ng__ipfw_8c_a9e110ecf88f8208fc5dbf9f09b36c94b}{ng\+\_\+ipfw\+\_\+input}} (struct mbuf $\ast$$\ast$, struct ip\+\_\+fw\+\_\+args $\ast$, bool)
\item 
\mbox{\hyperlink{ng__ipfw_8c_a1002dfc015db37316be50fa358404d55}{NETGRAPH\+\_\+\+INIT}} (ipfw, \&\mbox{\hyperlink{ng__ipfw_8c_a2e6edecec9310935cdb60c0ac68aefb8}{ng\+\_\+ipfw\+\_\+typestruct}})
\item 
\mbox{\hyperlink{ng__ipfw_8c_ac0f74c4cfad5beb9b3bb702b016369ac}{MODULE\+\_\+\+DEPEND}} (ng\+\_\+ipfw, ipfw, 3, 3, 3)
\item 
static int \mbox{\hyperlink{ng__ipfw_8c_a73ae2e13e78e61e72edc9096607e696a}{ng\+\_\+ipfw\+\_\+constructor}} (\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}} node)
\item 
static int \mbox{\hyperlink{ng__ipfw_8c_a0d6b9149181eabcc8f5b2ae3bc12c49a}{ng\+\_\+ipfw\+\_\+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__ipfw_8c_ad13cc20b9d5f70e5a739eff0cba90539}{ng\+\_\+ipfw\+\_\+connect}} (\mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}} hook)
\item 
static \mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}} \mbox{\hyperlink{ng__ipfw_8c_a3947035e8a029641ecb8039d5ebbcd92}{ng\+\_\+ipfw\+\_\+findhook}} (\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}} node, const char $\ast$\mbox{\hyperlink{ng__ppp_8c_ab2adbf48c2df32ccf9cced3bc8c3dc26}{name}})
\item 
static int \mbox{\hyperlink{ng__ipfw_8c_a25a56f765c2257b001f619fdb99af771}{ng\+\_\+ipfw\+\_\+rcvdata}} (\mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}} hook, \mbox{\hyperlink{netgraph_8h_ab848be155baf7e8b7ad0dd03893c1cac}{item\+\_\+p}} item)
\item 
static int \mbox{\hyperlink{ng__ipfw_8c_a05a50c137b95285c69d0283ce19d054d}{ng\+\_\+ipfw\+\_\+shutdown}} (\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}} node)
\item 
static int \mbox{\hyperlink{ng__ipfw_8c_a29dfed630d9d6b1cab6751f558f5e91d}{ng\+\_\+ipfw\+\_\+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__ipfw_8c_a9c0dba9b26dd073b841b02bf6d0ee764}{ng\+\_\+ipfw\+\_\+constructor}}
\item 
static \mbox{\hyperlink{netgraph_8h_aab0a679789a1af312a7f856b4668ad74}{ng\+\_\+shutdown\+\_\+t}} \mbox{\hyperlink{ng__ipfw_8c_a26ac1de42ae7b8bb2af9dfbe66068e8c}{ng\+\_\+ipfw\+\_\+shutdown}}
\item 
static \mbox{\hyperlink{netgraph_8h_afa50639df4ed6eb400f8220a890d56e6}{ng\+\_\+newhook\+\_\+t}} \mbox{\hyperlink{ng__ipfw_8c_a26f99dd0ad803bde55e4ac98940ddb09}{ng\+\_\+ipfw\+\_\+newhook}}
\item 
static \mbox{\hyperlink{netgraph_8h_a0e4a4a62e48409635e5f33c548baaea7}{ng\+\_\+connect\+\_\+t}} \mbox{\hyperlink{ng__ipfw_8c_a1da925cb7eaa2b17032b958716a7092d}{ng\+\_\+ipfw\+\_\+connect}}
\item 
static \mbox{\hyperlink{netgraph_8h_a424ace511760adfb045f80357770866c}{ng\+\_\+findhook\+\_\+t}} \mbox{\hyperlink{ng__ipfw_8c_afd278f3165f89d32fec1af1265412b6c}{ng\+\_\+ipfw\+\_\+findhook}}
\item 
static \mbox{\hyperlink{netgraph_8h_aa87ef7415b345b801747ceaf99de6c43}{ng\+\_\+rcvdata\+\_\+t}} \mbox{\hyperlink{ng__ipfw_8c_a9183b04bc7839712d1e6b6d16540032c}{ng\+\_\+ipfw\+\_\+rcvdata}}
\item 
static \mbox{\hyperlink{netgraph_8h_a669e1783335f933b4a4f90f17d22f381}{ng\+\_\+disconnect\+\_\+t}} \mbox{\hyperlink{ng__ipfw_8c_a40ed411bf5b8d7898b74eb35dcb40537}{ng\+\_\+ipfw\+\_\+disconnect}}
\item 
static \mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}} \mbox{\hyperlink{ng__ipfw_8c_ae260188238f88be6f3166bec2377d6d1}{fw\+\_\+node}}
\item 
static struct \mbox{\hyperlink{structng__type}{ng\+\_\+type}} \mbox{\hyperlink{ng__ipfw_8c_a2e6edecec9310935cdb60c0ac68aefb8}{ng\+\_\+ipfw\+\_\+typestruct}}
\end{DoxyCompactItemize}


\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{ng__ipfw_8c_ac5c742327d20436cd60a17c56eb6ebdd}\label{ng__ipfw_8c_ac5c742327d20436cd60a17c56eb6ebdd}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!hpriv\_p@{hpriv\_p}}
\index{hpriv\_p@{hpriv\_p}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{hpriv\_p}{hpriv\_p}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structng__ipfw__hook__priv}{ng\+\_\+ipfw\+\_\+hook\+\_\+priv}}$\ast$ \mbox{\hyperlink{structhpriv__p}{hpriv\+\_\+p}}}



Definition at line \mbox{\hyperlink{ng__ipfw_8c_source_l00101}{101}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{ng__ipfw_8c_ac0f74c4cfad5beb9b3bb702b016369ac}\label{ng__ipfw_8c_ac0f74c4cfad5beb9b3bb702b016369ac}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!MODULE\_DEPEND@{MODULE\_DEPEND}}
\index{MODULE\_DEPEND@{MODULE\_DEPEND}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{MODULE\_DEPEND()}{MODULE\_DEPEND()}}
{\footnotesize\ttfamily MODULE\+\_\+\+DEPEND (\begin{DoxyParamCaption}\item[{ng\+\_\+ipfw}]{,  }\item[{ipfw}]{,  }\item[{3}]{,  }\item[{3}]{,  }\item[{3}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ng__ipfw_8c_a1002dfc015db37316be50fa358404d55}\label{ng__ipfw_8c_a1002dfc015db37316be50fa358404d55}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!NETGRAPH\_INIT@{NETGRAPH\_INIT}}
\index{NETGRAPH\_INIT@{NETGRAPH\_INIT}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{NETGRAPH\_INIT()}{NETGRAPH\_INIT()}}
{\footnotesize\ttfamily NETGRAPH\+\_\+\+INIT (\begin{DoxyParamCaption}\item[{ipfw}]{,  }\item[{\&}]{ng\+\_\+ipfw\+\_\+typestruct }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ng__ipfw_8c_ad13cc20b9d5f70e5a739eff0cba90539}\label{ng__ipfw_8c_ad13cc20b9d5f70e5a739eff0cba90539}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!ng\_ipfw\_connect@{ng\_ipfw\_connect}}
\index{ng\_ipfw\_connect@{ng\_ipfw\_connect}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{ng\_ipfw\_connect()}{ng\_ipfw\_connect()}}
{\footnotesize\ttfamily static int ng\+\_\+ipfw\+\_\+connect (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}}}]{hook }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__ipfw_8c_source_l00193}{193}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.



References \mbox{\hyperlink{ng__ipfw_8c_source_l00098}{ng\+\_\+ipfw\+\_\+hook\+\_\+priv\+::hook}}, and \mbox{\hyperlink{netgraph_8h_source_l00342}{NG\+\_\+\+HOOK\+\_\+\+FORCE\+\_\+\+QUEUE}}.

\mbox{\Hypertarget{ng__ipfw_8c_a73ae2e13e78e61e72edc9096607e696a}\label{ng__ipfw_8c_a73ae2e13e78e61e72edc9096607e696a}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!ng\_ipfw\_constructor@{ng\_ipfw\_constructor}}
\index{ng\_ipfw\_constructor@{ng\_ipfw\_constructor}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{ng\_ipfw\_constructor()}{ng\_ipfw\_constructor()}}
{\footnotesize\ttfamily static int ng\+\_\+ipfw\+\_\+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__ipfw_8c_source_l00148}{148}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.

\mbox{\Hypertarget{ng__ipfw_8c_a29dfed630d9d6b1cab6751f558f5e91d}\label{ng__ipfw_8c_a29dfed630d9d6b1cab6751f558f5e91d}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!ng\_ipfw\_disconnect@{ng\_ipfw\_disconnect}}
\index{ng\_ipfw\_disconnect@{ng\_ipfw\_disconnect}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{ng\_ipfw\_disconnect()}{ng\_ipfw\_disconnect()}}
{\footnotesize\ttfamily static int ng\+\_\+ipfw\+\_\+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__ipfw_8c_source_l00351}{351}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.



References \mbox{\hyperlink{netgraph_8h_source_l00336}{NG\+\_\+\+HOOK\+\_\+\+PRIVATE}}, and \mbox{\hyperlink{netgraph_8h_source_l00333}{NG\+\_\+\+HOOK\+\_\+\+SET\+\_\+\+PRIVATE}}.

\mbox{\Hypertarget{ng__ipfw_8c_a3947035e8a029641ecb8039d5ebbcd92}\label{ng__ipfw_8c_a3947035e8a029641ecb8039d5ebbcd92}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!ng\_ipfw\_findhook@{ng\_ipfw\_findhook}}
\index{ng\_ipfw\_findhook@{ng\_ipfw\_findhook}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{ng\_ipfw\_findhook()}{ng\_ipfw\_findhook()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}} ng\+\_\+ipfw\+\_\+findhook (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}}}]{node,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__ipfw_8c_source_l00201}{201}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.



References \mbox{\hyperlink{ng__ppp_8c_source_l00261}{name}}, and \mbox{\hyperlink{ng__ipfw_8c_source_l00214}{ng\+\_\+ipfw\+\_\+findhook1()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=324pt]{d7/ddf/ng__ipfw_8c_a3947035e8a029641ecb8039d5ebbcd92_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{ng__ipfw_8c_aaa113fcaf18c83b15fa30725c6045c97}\label{ng__ipfw_8c_aaa113fcaf18c83b15fa30725c6045c97}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!ng\_ipfw\_findhook1@{ng\_ipfw\_findhook1}}
\index{ng\_ipfw\_findhook1@{ng\_ipfw\_findhook1}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{ng\_ipfw\_findhook1()}{ng\_ipfw\_findhook1()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}} ng\+\_\+ipfw\+\_\+findhook1 (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}}}]{node,  }\item[{u\+\_\+int16\+\_\+t}]{rulenum }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__ipfw_8c_source_l00214}{214}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.



References \mbox{\hyperlink{ng__ipfw_8c_source_l00098}{ng\+\_\+ipfw\+\_\+hook\+\_\+priv\+::hook}}, \mbox{\hyperlink{netgraph_8h_source_l00338}{NG\+\_\+\+HOOK\+\_\+\+IS\+\_\+\+VALID}}, \mbox{\hyperlink{netgraph_8h_source_l00336}{NG\+\_\+\+HOOK\+\_\+\+PRIVATE}}, and \mbox{\hyperlink{ng__ipfw_8c_source_l00099}{ng\+\_\+ipfw\+\_\+hook\+\_\+priv\+::rulenum}}.



Referenced by \mbox{\hyperlink{ng__ipfw_8c_source_l00201}{ng\+\_\+ipfw\+\_\+findhook()}}, and \mbox{\hyperlink{ng__ipfw_8c_source_l00286}{ng\+\_\+ipfw\+\_\+input()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/ddf/ng__ipfw_8c_aaa113fcaf18c83b15fa30725c6045c97_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{ng__ipfw_8c_a9e110ecf88f8208fc5dbf9f09b36c94b}\label{ng__ipfw_8c_a9e110ecf88f8208fc5dbf9f09b36c94b}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!ng\_ipfw\_input@{ng\_ipfw\_input}}
\index{ng\_ipfw\_input@{ng\_ipfw\_input}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{ng\_ipfw\_input()}{ng\_ipfw\_input()}}
{\footnotesize\ttfamily static int ng\+\_\+ipfw\+\_\+input (\begin{DoxyParamCaption}\item[{struct mbuf $\ast$$\ast$}]{m0,  }\item[{struct ip\+\_\+fw\+\_\+args $\ast$}]{fwa,  }\item[{bool}]{tee }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__ipfw_8c_source_l00286}{286}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.



References \mbox{\hyperlink{ng__ipfw_8c_source_l00078}{fw\+\_\+node}}, \mbox{\hyperlink{ng__ipfw_8c_source_l00214}{ng\+\_\+ipfw\+\_\+findhook1()}}, \mbox{\hyperlink{netgraph_8h_source_l00932}{NG\+\_\+\+SEND\+\_\+\+DATA\+\_\+\+ONLY}}, and \mbox{\hyperlink{netflow_8h_source_l00001}{r}}.



Referenced by \mbox{\hyperlink{ng__ipfw_8c_source_l00104}{ng\+\_\+ipfw\+\_\+mod\+\_\+event()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=307pt]{d7/ddf/ng__ipfw_8c_a9e110ecf88f8208fc5dbf9f09b36c94b_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=314pt]{d7/ddf/ng__ipfw_8c_a9e110ecf88f8208fc5dbf9f09b36c94b_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{ng__ipfw_8c_a4c4e7af60a1ce8e85a69c65697c12882}\label{ng__ipfw_8c_a4c4e7af60a1ce8e85a69c65697c12882}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!ng\_ipfw\_mod\_event@{ng\_ipfw\_mod\_event}}
\index{ng\_ipfw\_mod\_event@{ng\_ipfw\_mod\_event}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{ng\_ipfw\_mod\_event()}{ng\_ipfw\_mod\_event()}}
{\footnotesize\ttfamily static int ng\+\_\+ipfw\+\_\+mod\+\_\+event (\begin{DoxyParamCaption}\item[{module\+\_\+t}]{mod,  }\item[{int}]{event,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__ipfw_8c_source_l00104}{104}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.



References \mbox{\hyperlink{ng__ubt__var_8h_source_l00000}{event}}, \mbox{\hyperlink{ng__ipfw_8c_source_l00078}{fw\+\_\+node}}, \mbox{\hyperlink{ng__ipfw_8c_source_l00286}{ng\+\_\+ipfw\+\_\+input()}}, \mbox{\hyperlink{ng__ipfw_8c_source_l00081}{ng\+\_\+ipfw\+\_\+typestruct}}, \mbox{\hyperlink{ng__base_8c_source_l00642}{ng\+\_\+make\+\_\+node\+\_\+common()}}, and \mbox{\hyperlink{ng__base_8c_source_l00852}{ng\+\_\+name\+\_\+node()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/ddf/ng__ipfw_8c_a4c4e7af60a1ce8e85a69c65697c12882_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{ng__ipfw_8c_a0d6b9149181eabcc8f5b2ae3bc12c49a}\label{ng__ipfw_8c_a0d6b9149181eabcc8f5b2ae3bc12c49a}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!ng\_ipfw\_newhook@{ng\_ipfw\_newhook}}
\index{ng\_ipfw\_newhook@{ng\_ipfw\_newhook}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{ng\_ipfw\_newhook()}{ng\_ipfw\_newhook()}}
{\footnotesize\ttfamily static int ng\+\_\+ipfw\+\_\+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__ipfw_8c_source_l00154}{154}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.



References \mbox{\hyperlink{ng__ipfw_8c_source_l00098}{ng\+\_\+ipfw\+\_\+hook\+\_\+priv\+::hook}}, \mbox{\hyperlink{ng__ppp_8c_source_l00261}{name}}, \mbox{\hyperlink{netgraph_8h_source_l00333}{NG\+\_\+\+HOOK\+\_\+\+SET\+\_\+\+PRIVATE}}, and \mbox{\hyperlink{ng__ipfw_8c_source_l00099}{ng\+\_\+ipfw\+\_\+hook\+\_\+priv\+::rulenum}}.

\mbox{\Hypertarget{ng__ipfw_8c_a25a56f765c2257b001f619fdb99af771}\label{ng__ipfw_8c_a25a56f765c2257b001f619fdb99af771}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!ng\_ipfw\_rcvdata@{ng\_ipfw\_rcvdata}}
\index{ng\_ipfw\_rcvdata@{ng\_ipfw\_rcvdata}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{ng\_ipfw\_rcvdata()}{ng\_ipfw\_rcvdata()}}
{\footnotesize\ttfamily static int ng\+\_\+ipfw\+\_\+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__ipfw_8c_source_l00229}{229}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.



References \mbox{\hyperlink{netgraph_8h_source_l00847}{NG\+\_\+\+FREE\+\_\+\+ITEM}}, \mbox{\hyperlink{netgraph_8h_source_l00946}{NG\+\_\+\+FREE\+\_\+M}}, \mbox{\hyperlink{netgraph_8h_source_l00852}{NGI\+\_\+\+GET\+\_\+M}}, and \mbox{\hyperlink{netflow_8h_source_l00001}{r}}.

\mbox{\Hypertarget{ng__ipfw_8c_a05a50c137b95285c69d0283ce19d054d}\label{ng__ipfw_8c_a05a50c137b95285c69d0283ce19d054d}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!ng\_ipfw\_shutdown@{ng\_ipfw\_shutdown}}
\index{ng\_ipfw\_shutdown@{ng\_ipfw\_shutdown}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{ng\_ipfw\_shutdown()}{ng\_ipfw\_shutdown()}}
{\footnotesize\ttfamily static int ng\+\_\+ipfw\+\_\+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__ipfw_8c_source_l00337}{337}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.



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



\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{ng__ipfw_8c_ae260188238f88be6f3166bec2377d6d1}\label{ng__ipfw_8c_ae260188238f88be6f3166bec2377d6d1}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!fw\_node@{fw\_node}}
\index{fw\_node@{fw\_node}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{fw\_node}{fw\_node}}
{\footnotesize\ttfamily \mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}} fw\+\_\+node\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__ipfw_8c_source_l00078}{78}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.



Referenced by \mbox{\hyperlink{ng__ipfw_8c_source_l00286}{ng\+\_\+ipfw\+\_\+input()}}, and \mbox{\hyperlink{ng__ipfw_8c_source_l00104}{ng\+\_\+ipfw\+\_\+mod\+\_\+event()}}.

\mbox{\Hypertarget{ng__ipfw_8c_a1da925cb7eaa2b17032b958716a7092d}\label{ng__ipfw_8c_a1da925cb7eaa2b17032b958716a7092d}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!ng\_ipfw\_connect@{ng\_ipfw\_connect}}
\index{ng\_ipfw\_connect@{ng\_ipfw\_connect}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{ng\_ipfw\_connect}{ng\_ipfw\_connect}}
{\footnotesize\ttfamily \mbox{\hyperlink{netgraph_8h_a0e4a4a62e48409635e5f33c548baaea7}{ng\+\_\+connect\+\_\+t}} ng\+\_\+ipfw\+\_\+connect\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__ipfw_8c_source_l00069}{69}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.

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



Definition at line \mbox{\hyperlink{ng__ipfw_8c_source_l00066}{66}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.

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



Definition at line \mbox{\hyperlink{ng__ipfw_8c_source_l00072}{72}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.

\mbox{\Hypertarget{ng__ipfw_8c_afd278f3165f89d32fec1af1265412b6c}\label{ng__ipfw_8c_afd278f3165f89d32fec1af1265412b6c}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!ng\_ipfw\_findhook@{ng\_ipfw\_findhook}}
\index{ng\_ipfw\_findhook@{ng\_ipfw\_findhook}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{ng\_ipfw\_findhook}{ng\_ipfw\_findhook}}
{\footnotesize\ttfamily \mbox{\hyperlink{netgraph_8h_a424ace511760adfb045f80357770866c}{ng\+\_\+findhook\+\_\+t}} ng\+\_\+ipfw\+\_\+findhook\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__ipfw_8c_source_l00070}{70}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.

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



Definition at line \mbox{\hyperlink{ng__ipfw_8c_source_l00068}{68}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.

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



Definition at line \mbox{\hyperlink{ng__ipfw_8c_source_l00071}{71}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.

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



Definition at line \mbox{\hyperlink{ng__ipfw_8c_source_l00067}{67}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.

\mbox{\Hypertarget{ng__ipfw_8c_a2e6edecec9310935cdb60c0ac68aefb8}\label{ng__ipfw_8c_a2e6edecec9310935cdb60c0ac68aefb8}} 
\index{ng\_ipfw.c@{ng\_ipfw.c}!ng\_ipfw\_typestruct@{ng\_ipfw\_typestruct}}
\index{ng\_ipfw\_typestruct@{ng\_ipfw\_typestruct}!ng\_ipfw.c@{ng\_ipfw.c}}
\doxysubsubsection{\texorpdfstring{ng\_ipfw\_typestruct}{ng\_ipfw\_typestruct}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structng__type}{ng\+\_\+type}} ng\+\_\+ipfw\+\_\+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__ipfw_8h_a5ed4160c1c6547a315b81d34c9c307e1}{NG\_IPFW\_NODE\_TYPE}},}
\DoxyCodeLine{        .mod\_event =    \mbox{\hyperlink{ng__ipfw_8c_a4c4e7af60a1ce8e85a69c65697c12882}{ng\_ipfw\_mod\_event}},}
\DoxyCodeLine{        .constructor =  \mbox{\hyperlink{ng__ipfw_8c_a9c0dba9b26dd073b841b02bf6d0ee764}{ng\_ipfw\_constructor}},}
\DoxyCodeLine{        .shutdown =     \mbox{\hyperlink{ng__ipfw_8c_a26ac1de42ae7b8bb2af9dfbe66068e8c}{ng\_ipfw\_shutdown}},}
\DoxyCodeLine{        .newhook =      \mbox{\hyperlink{ng__ipfw_8c_a26f99dd0ad803bde55e4ac98940ddb09}{ng\_ipfw\_newhook}},}
\DoxyCodeLine{        .connect =      \mbox{\hyperlink{ng__ipfw_8c_a1da925cb7eaa2b17032b958716a7092d}{ng\_ipfw\_connect}},}
\DoxyCodeLine{        .findhook =     \mbox{\hyperlink{ng__ipfw_8c_afd278f3165f89d32fec1af1265412b6c}{ng\_ipfw\_findhook}},}
\DoxyCodeLine{        .rcvdata =      \mbox{\hyperlink{ng__ipfw_8c_a9183b04bc7839712d1e6b6d16540032c}{ng\_ipfw\_rcvdata}},}
\DoxyCodeLine{        .disconnect =   \mbox{\hyperlink{ng__ipfw_8c_a40ed411bf5b8d7898b74eb35dcb40537}{ng\_ipfw\_disconnect}},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{ng__ipfw_8c_source_l00081}{81}} of file \mbox{\hyperlink{ng__ipfw_8c_source}{ng\+\_\+ipfw.\+c}}.



Referenced by \mbox{\hyperlink{ng__ipfw_8c_source_l00104}{ng\+\_\+ipfw\+\_\+mod\+\_\+event()}}.

