\hypertarget{ng__checksum_8c}{}\doxysection{netgraph/ng\+\_\+checksum.c File Reference}
\label{ng__checksum_8c}\index{netgraph/ng\_checksum.c@{netgraph/ng\_checksum.c}}
{\ttfamily \#include $<$sys/cdefs.\+h$>$}\newline
{\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/endian.\+h$>$}\newline
{\ttfamily \#include $<$sys/malloc.\+h$>$}\newline
{\ttfamily \#include $<$sys/mbuf.\+h$>$}\newline
{\ttfamily \#include $<$sys/socket.\+h$>$}\newline
{\ttfamily \#include $<$net/bpf.\+h$>$}\newline
{\ttfamily \#include $<$net/ethernet.\+h$>$}\newline
{\ttfamily \#include $<$net/if.\+h$>$}\newline
{\ttfamily \#include $<$net/if\+\_\+vlan\+\_\+var.\+h$>$}\newline
{\ttfamily \#include $<$netinet/in.\+h$>$}\newline
{\ttfamily \#include $<$netinet/ip.\+h$>$}\newline
{\ttfamily \#include $<$netinet/ip6.\+h$>$}\newline
{\ttfamily \#include $<$netinet/tcp.\+h$>$}\newline
{\ttfamily \#include $<$netinet/udp.\+h$>$}\newline
{\ttfamily \#include $<$machine/in\+\_\+cksum.\+h$>$}\newline
{\ttfamily \#include $<$netgraph/ng\+\_\+message.\+h$>$}\newline
{\ttfamily \#include $<$netgraph/ng\+\_\+parse.\+h$>$}\newline
{\ttfamily \#include $<$netgraph/netgraph.\+h$>$}\newline
{\ttfamily \#include $<$netgraph/ng\+\_\+checksum.\+h$>$}\newline
Include dependency graph for ng\+\_\+checksum.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dd/d06/ng__checksum_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structng__checksum__priv}{ng\+\_\+checksum\+\_\+priv}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{ng__checksum_8c_a661c316872e6e1e6a714d7fad67f366f}{ERROUT}}(x)~\{ error = (x); goto done; \}
\item 
\#define \mbox{\hyperlink{ng__checksum_8c_a8b5f2474c5f0a6ca1328ed92c68d693e}{PULLUP\+\_\+\+CHECK}}(mbuf,  \mbox{\hyperlink{netflow__v9_8h_a1892eba2086d12ac2b09005aeb09ea3b}{length}})
\item 
\#define \mbox{\hyperlink{ng__checksum_8c_a8b5f2474c5f0a6ca1328ed92c68d693e}{PULLUP\+\_\+\+CHECK}}(mbuf,  \mbox{\hyperlink{netflow__v9_8h_a1892eba2086d12ac2b09005aeb09ea3b}{length}})
\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \mbox{\hyperlink{structng__checksum__priv}{ng\+\_\+checksum\+\_\+priv}} $\ast$ \mbox{\hyperlink{ng__checksum_8c_acfc78b64720cc26b548cd0b90c883983}{priv\+\_\+p}}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{ng__checksum_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\+\_\+\+\_\+\+FBSDID}} (\char`\"{}\$Free\+BSD\$\char`\"{})
\item 
\mbox{\hyperlink{ng__checksum_8c_ab6e69e4a112e95bcd329e664aa1ceed4}{NETGRAPH\+\_\+\+INIT}} (checksum, \&\mbox{\hyperlink{ng__vlan__rotate_8c_a80a131770518c7fa3758d85054006e7a}{typestruct}})
\item 
static int \mbox{\hyperlink{ng__checksum_8c_a2b60e8526607b4801a1934a6627f9954}{ng\+\_\+checksum\+\_\+constructor}} (\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}} node)
\item 
static int \mbox{\hyperlink{ng__checksum_8c_ad18e9d4b5b76d9b2fb769f8b97d96023}{ng\+\_\+checksum\+\_\+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__checksum_8c_aa4550772771508bd32f611659a36aeeb}{ng\+\_\+checksum\+\_\+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__checksum_8c_a0e263ec7fe2cc4b238dbb664d7b5eae6}{ng\+\_\+checksum\+\_\+rcvdata}} (\mbox{\hyperlink{netgraph_8h_ab3a2553a36b03752ec05a6d4ca11d8a3}{hook\+\_\+p}} hook, \mbox{\hyperlink{netgraph_8h_ab848be155baf7e8b7ad0dd03893c1cac}{item\+\_\+p}} item)
\item 
static int \mbox{\hyperlink{ng__checksum_8c_a46bff6b03d57cebbe0b44f3cd25dc555}{ng\+\_\+checksum\+\_\+shutdown}} (\mbox{\hyperlink{netgraph_8h_ad0f21b90dd7f86636755bad189af6efd}{node\+\_\+p}} node)
\item 
static int \mbox{\hyperlink{ng__checksum_8c_a2268eaeaff0faf398c0ccfc0f6f12d0b}{ng\+\_\+checksum\+\_\+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__checksum_8c_abea8e6cdbee4ca12e6bd350cf71894b3}{ng\+\_\+checksum\+\_\+constructor}}
\item 
static \mbox{\hyperlink{netgraph_8h_a47b860e2900386e775707cc1ae661162}{ng\+\_\+rcvmsg\+\_\+t}} \mbox{\hyperlink{ng__checksum_8c_aa760227c4569ea2220dd6a16e457fcaa}{ng\+\_\+checksum\+\_\+rcvmsg}}
\item 
static \mbox{\hyperlink{netgraph_8h_aab0a679789a1af312a7f856b4668ad74}{ng\+\_\+shutdown\+\_\+t}} \mbox{\hyperlink{ng__checksum_8c_a2ef690dc8b68b996ede1c2793fbd4f99}{ng\+\_\+checksum\+\_\+shutdown}}
\item 
static \mbox{\hyperlink{netgraph_8h_afa50639df4ed6eb400f8220a890d56e6}{ng\+\_\+newhook\+\_\+t}} \mbox{\hyperlink{ng__checksum_8c_a76c8e3ed2699b9747e38ac79a8ac8100}{ng\+\_\+checksum\+\_\+newhook}}
\item 
static \mbox{\hyperlink{netgraph_8h_aa87ef7415b345b801747ceaf99de6c43}{ng\+\_\+rcvdata\+\_\+t}} \mbox{\hyperlink{ng__checksum_8c_ac4761c8acab93f166e2def5681598581}{ng\+\_\+checksum\+\_\+rcvdata}}
\item 
static \mbox{\hyperlink{netgraph_8h_a669e1783335f933b4a4f90f17d22f381}{ng\+\_\+disconnect\+\_\+t}} \mbox{\hyperlink{ng__checksum_8c_a6659ecfb5af2697f7a69a30a20255a34}{ng\+\_\+checksum\+\_\+disconnect}}
\item 
static const struct \mbox{\hyperlink{structng__parse__struct__field}{ng\+\_\+parse\+\_\+struct\+\_\+field}} \mbox{\hyperlink{ng__checksum_8c_a39620d05dc0a6caf7743a3a57ab48626}{ng\+\_\+checksum\+\_\+config\+\_\+type\+\_\+fields}} \mbox{[}$\,$\mbox{]} = \mbox{\hyperlink{ng__checksum_8h_adb3e655a68ac39ce26e48a74bf8d7026}{NG\+\_\+\+CHECKSUM\+\_\+\+CONFIG\+\_\+\+TYPE}}
\item 
static const struct \mbox{\hyperlink{structng__parse__type}{ng\+\_\+parse\+\_\+type}} \mbox{\hyperlink{ng__checksum_8c_ab4f6d8b104520fb2ec9ea8eaa4481106}{ng\+\_\+checksum\+\_\+config\+\_\+type}}
\item 
static const struct \mbox{\hyperlink{structng__parse__struct__field}{ng\+\_\+parse\+\_\+struct\+\_\+field}} \mbox{\hyperlink{ng__checksum_8c_a20d3c64c6590d793c5b5487643fe476c}{ng\+\_\+checksum\+\_\+stats\+\_\+fields}} \mbox{[}$\,$\mbox{]} = \mbox{\hyperlink{ng__checksum_8h_a50581e147675fc0254bcb380e02be461}{NG\+\_\+\+CHECKSUM\+\_\+\+STATS\+\_\+\+TYPE}}
\item 
static const struct \mbox{\hyperlink{structng__parse__type}{ng\+\_\+parse\+\_\+type}} \mbox{\hyperlink{ng__checksum_8c_a7103025545b0a52013501f31e2202376}{ng\+\_\+checksum\+\_\+stats\+\_\+type}}
\item 
static const struct \mbox{\hyperlink{structng__cmdlist}{ng\+\_\+cmdlist}} \mbox{\hyperlink{ng__checksum_8c_a3a5f79c7a533adb2f9513e97f9ad942a}{ng\+\_\+checksum\+\_\+cmdlist}} \mbox{[}$\,$\mbox{]}
\item 
static struct \mbox{\hyperlink{structng__type}{ng\+\_\+type}} \mbox{\hyperlink{ng__checksum_8c_a80a131770518c7fa3758d85054006e7a}{typestruct}}
\end{DoxyCompactItemize}


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



Definition at line \mbox{\hyperlink{ng__checksum_8c_source_l00078}{78}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.

\mbox{\Hypertarget{ng__checksum_8c_a8b5f2474c5f0a6ca1328ed92c68d693e}\label{ng__checksum_8c_a8b5f2474c5f0a6ca1328ed92c68d693e}} 
\index{ng\_checksum.c@{ng\_checksum.c}!PULLUP\_CHECK@{PULLUP\_CHECK}}
\index{PULLUP\_CHECK@{PULLUP\_CHECK}!ng\_checksum.c@{ng\_checksum.c}}
\doxysubsubsection{\texorpdfstring{PULLUP\_CHECK}{PULLUP\_CHECK}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \#define PULLUP\+\_\+\+CHECK(\begin{DoxyParamCaption}\item[{}]{mbuf,  }\item[{}]{\mbox{\hyperlink{netflow__v9_8h_a1892eba2086d12ac2b09005aeb09ea3b}{length}} }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{        \textcolor{keywordflow}{do} \{                                    \(\backslash\)}
\DoxyCodeLine{        pullup\_len += \mbox{\hyperlink{ng__ubt__var_8h_a6ae8e371985856eea14ae695f65dfab2}{length}};                                             \(\backslash\)}
\DoxyCodeLine{        if (((mbuf)-\/>m\_pkthdr.len < pullup\_len) ||                      \(\backslash\)}
\DoxyCodeLine{            (pullup\_len > MHLEN)) \{                                     \(\backslash\)}
\DoxyCodeLine{                return (EINVAL);                                        \(\backslash\)}
\DoxyCodeLine{        \}                                                               \(\backslash\)}
\DoxyCodeLine{        if ((mbuf)-\/>m\_len < pullup\_len \&\&                               \(\backslash\)}
\DoxyCodeLine{            (((mbuf) = m\_pullup((mbuf), pullup\_len)) == NULL)) \{        \(\backslash\)}
\DoxyCodeLine{                return (ENOBUFS);                                       \(\backslash\)}
\DoxyCodeLine{        \}                                                               \(\backslash\)}
\DoxyCodeLine{\} \textcolor{keywordflow}{while} (0)}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{ng__checksum_8c_source_l00293}{293}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.

\mbox{\Hypertarget{ng__checksum_8c_a8b5f2474c5f0a6ca1328ed92c68d693e}\label{ng__checksum_8c_a8b5f2474c5f0a6ca1328ed92c68d693e}} 
\index{ng\_checksum.c@{ng\_checksum.c}!PULLUP\_CHECK@{PULLUP\_CHECK}}
\index{PULLUP\_CHECK@{PULLUP\_CHECK}!ng\_checksum.c@{ng\_checksum.c}}
\doxysubsubsection{\texorpdfstring{PULLUP\_CHECK}{PULLUP\_CHECK}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \#define PULLUP\+\_\+\+CHECK(\begin{DoxyParamCaption}\item[{}]{mbuf,  }\item[{}]{\mbox{\hyperlink{netflow__v9_8h_a1892eba2086d12ac2b09005aeb09ea3b}{length}} }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{        \textcolor{keywordflow}{do} \{                                    \(\backslash\)}
\DoxyCodeLine{        pullup\_len += \mbox{\hyperlink{ng__ubt__var_8h_a6ae8e371985856eea14ae695f65dfab2}{length}};                                             \(\backslash\)}
\DoxyCodeLine{        if (((mbuf)-\/>m\_pkthdr.len < pullup\_len) ||                      \(\backslash\)}
\DoxyCodeLine{            (pullup\_len > MHLEN)) \{                                     \(\backslash\)}
\DoxyCodeLine{                error = EINVAL;                                         \(\backslash\)}
\DoxyCodeLine{                goto bypass;                                            \(\backslash\)}
\DoxyCodeLine{        \}                                                               \(\backslash\)}
\DoxyCodeLine{        if ((mbuf)-\/>m\_len < pullup\_len \&\&                               \(\backslash\)}
\DoxyCodeLine{            (((mbuf) = m\_pullup((mbuf), pullup\_len)) == NULL)) \{        \(\backslash\)}
\DoxyCodeLine{                error = ENOBUFS;                                        \(\backslash\)}
\DoxyCodeLine{                goto drop;                                              \(\backslash\)}
\DoxyCodeLine{        \}                                                               \(\backslash\)}
\DoxyCodeLine{\} \textcolor{keywordflow}{while} (0)}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{ng__checksum_8c_source_l00293}{293}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.



\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{ng__checksum_8c_acfc78b64720cc26b548cd0b90c883983}\label{ng__checksum_8c_acfc78b64720cc26b548cd0b90c883983}} 
\index{ng\_checksum.c@{ng\_checksum.c}!priv\_p@{priv\_p}}
\index{priv\_p@{priv\_p}!ng\_checksum.c@{ng\_checksum.c}}
\doxysubsubsection{\texorpdfstring{priv\_p}{priv\_p}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structng__checksum__priv}{ng\+\_\+checksum\+\_\+priv}}$\ast$ \mbox{\hyperlink{ng__netflow_8h_a20ac59de066baac8be85fa2d943b37a3}{priv\+\_\+p}}}



Definition at line \mbox{\hyperlink{ng__checksum_8c_source_l00069}{69}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{ng__checksum_8c_a8c3ef283470a68cd30afe9b8a72cb60f}\label{ng__checksum_8c_a8c3ef283470a68cd30afe9b8a72cb60f}} 
\index{ng\_checksum.c@{ng\_checksum.c}!\_\_FBSDID@{\_\_FBSDID}}
\index{\_\_FBSDID@{\_\_FBSDID}!ng\_checksum.c@{ng\_checksum.c}}
\doxysubsubsection{\texorpdfstring{\_\_FBSDID()}{\_\_FBSDID()}}
{\footnotesize\ttfamily \+\_\+\+\_\+\+FBSDID (\begin{DoxyParamCaption}\item[{\char`\"{}\$Free\+BSD\$\char`\"{}}]{ }\end{DoxyParamCaption})}

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

\mbox{\Hypertarget{ng__checksum_8c_a2b60e8526607b4801a1934a6627f9954}\label{ng__checksum_8c_a2b60e8526607b4801a1934a6627f9954}} 
\index{ng\_checksum.c@{ng\_checksum.c}!ng\_checksum\_constructor@{ng\_checksum\_constructor}}
\index{ng\_checksum\_constructor@{ng\_checksum\_constructor}!ng\_checksum.c@{ng\_checksum.c}}
\doxysubsubsection{\texorpdfstring{ng\_checksum\_constructor()}{ng\_checksum\_constructor()}}
{\footnotesize\ttfamily static int ng\+\_\+checksum\+\_\+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__checksum_8c_source_l00162}{162}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.



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

\mbox{\Hypertarget{ng__checksum_8c_a2268eaeaff0faf398c0ccfc0f6f12d0b}\label{ng__checksum_8c_a2268eaeaff0faf398c0ccfc0f6f12d0b}} 
\index{ng\_checksum.c@{ng\_checksum.c}!ng\_checksum\_disconnect@{ng\_checksum\_disconnect}}
\index{ng\_checksum\_disconnect@{ng\_checksum\_disconnect}!ng\_checksum.c@{ng\_checksum.c}}
\doxysubsubsection{\texorpdfstring{ng\_checksum\_disconnect()}{ng\_checksum\_disconnect()}}
{\footnotesize\ttfamily static int ng\+\_\+checksum\+\_\+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__checksum_8c_source_l00711}{711}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.



References \mbox{\hyperlink{netgraph_8h_source_l00339}{NG\+\_\+\+HOOK\+\_\+\+NODE}}, \mbox{\hyperlink{netgraph_8h_source_l00610}{NG\+\_\+\+NODE\+\_\+\+IS\+\_\+\+VALID}}, \mbox{\hyperlink{netgraph_8h_source_l00615}{NG\+\_\+\+NODE\+\_\+\+NUMHOOKS}}, \mbox{\hyperlink{netgraph_8h_source_l00609}{NG\+\_\+\+NODE\+\_\+\+PRIVATE}}, and \mbox{\hyperlink{ng__base_8c_source_l01609}{ng\+\_\+rmnode\+\_\+self()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/dc8/ng__checksum_8c_a2268eaeaff0faf398c0ccfc0f6f12d0b_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{ng__checksum_8c_ad18e9d4b5b76d9b2fb769f8b97d96023}\label{ng__checksum_8c_ad18e9d4b5b76d9b2fb769f8b97d96023}} 
\index{ng\_checksum.c@{ng\_checksum.c}!ng\_checksum\_newhook@{ng\_checksum\_newhook}}
\index{ng\_checksum\_newhook@{ng\_checksum\_newhook}!ng\_checksum.c@{ng\_checksum.c}}
\doxysubsubsection{\texorpdfstring{ng\_checksum\_newhook()}{ng\_checksum\_newhook()}}
{\footnotesize\ttfamily static int ng\+\_\+checksum\+\_\+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__checksum_8c_source_l00175}{175}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.



References \mbox{\hyperlink{ng__ppp_8c_source_l00261}{name}}, \mbox{\hyperlink{ng__checksum_8h_source_l00039}{NG\+\_\+\+CHECKSUM\+\_\+\+HOOK\+\_\+\+IN}}, \mbox{\hyperlink{ng__checksum_8h_source_l00040}{NG\+\_\+\+CHECKSUM\+\_\+\+HOOK\+\_\+\+OUT}}, and \mbox{\hyperlink{netgraph_8h_source_l00609}{NG\+\_\+\+NODE\+\_\+\+PRIVATE}}.

\mbox{\Hypertarget{ng__checksum_8c_a0e263ec7fe2cc4b238dbb664d7b5eae6}\label{ng__checksum_8c_a0e263ec7fe2cc4b238dbb664d7b5eae6}} 
\index{ng\_checksum.c@{ng\_checksum.c}!ng\_checksum\_rcvdata@{ng\_checksum\_rcvdata}}
\index{ng\_checksum\_rcvdata@{ng\_checksum\_rcvdata}!ng\_checksum.c@{ng\_checksum.c}}
\doxysubsubsection{\texorpdfstring{ng\_checksum\_rcvdata()}{ng\_checksum\_rcvdata()}}
{\footnotesize\ttfamily static int ng\+\_\+checksum\+\_\+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__checksum_8c_source_l00541}{541}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.



References \mbox{\hyperlink{ng__checksum_8c_source_l00078}{ERROUT}}, \mbox{\hyperlink{ng__checksum_8h_source_l00085}{ng\+\_\+checksum\+\_\+vlan\+\_\+header\+::etype}}, \mbox{\hyperlink{ng__checksum_8h_source_l00043}{NG\+\_\+\+CHECKSUM\+\_\+\+CSUM\+\_\+\+IPV4}}, \mbox{\hyperlink{ng__checksum_8h_source_l00044}{NG\+\_\+\+CHECKSUM\+\_\+\+CSUM\+\_\+\+IPV6}}, \mbox{\hyperlink{netgraph_8h_source_l00847}{NG\+\_\+\+FREE\+\_\+\+ITEM}}, \mbox{\hyperlink{netgraph_8h_source_l00946}{NG\+\_\+\+FREE\+\_\+M}}, \mbox{\hyperlink{netgraph_8h_source_l00914}{NG\+\_\+\+FWD\+\_\+\+NEW\+\_\+\+DATA}}, \mbox{\hyperlink{netgraph_8h_source_l00339}{NG\+\_\+\+HOOK\+\_\+\+NODE}}, \mbox{\hyperlink{netgraph_8h_source_l00609}{NG\+\_\+\+NODE\+\_\+\+PRIVATE}}, \mbox{\hyperlink{netgraph_8h_source_l00852}{NGI\+\_\+\+GET\+\_\+M}}, \mbox{\hyperlink{ng__checksum_8c_source_l00293}{PULLUP\+\_\+\+CHECK}}, and \mbox{\hyperlink{ng__sscop_8c_source_l00098}{priv\+::stats}}.

\mbox{\Hypertarget{ng__checksum_8c_aa4550772771508bd32f611659a36aeeb}\label{ng__checksum_8c_aa4550772771508bd32f611659a36aeeb}} 
\index{ng\_checksum.c@{ng\_checksum.c}!ng\_checksum\_rcvmsg@{ng\_checksum\_rcvmsg}}
\index{ng\_checksum\_rcvmsg@{ng\_checksum\_rcvmsg}!ng\_checksum.c@{ng\_checksum.c}}
\doxysubsubsection{\texorpdfstring{ng\_checksum\_rcvmsg()}{ng\_checksum\_rcvmsg()}}
{\footnotesize\ttfamily static int ng\+\_\+checksum\+\_\+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__checksum_8c_source_l00190}{190}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.



References \mbox{\hyperlink{ng__message_8h_source_l00062}{ng\+\_\+mesg\+::ng\+\_\+msghdr\+::arglen}}, \mbox{\hyperlink{ng__message_8h_source_l00063}{ng\+\_\+mesg\+::ng\+\_\+msghdr\+::cmd}}, \mbox{\hyperlink{ng__checksum_8h_source_l00073}{ng\+\_\+checksum\+\_\+config\+::csum\+\_\+flags}}, \mbox{\hyperlink{ng__checksum_8h_source_l00074}{ng\+\_\+checksum\+\_\+config\+::csum\+\_\+offload}}, \mbox{\hyperlink{ng__message_8h_source_l00069}{ng\+\_\+mesg\+::data}}, \mbox{\hyperlink{ng__checksum_8c_source_l00078}{ERROUT}}, \mbox{\hyperlink{structng__mesg_a16ea313a1e38531a10a14902b7579210}{ng\+\_\+mesg\+::header}}, \mbox{\hyperlink{ng__checksum_8h_source_l00043}{NG\+\_\+\+CHECKSUM\+\_\+\+CSUM\+\_\+\+IPV4}}, \mbox{\hyperlink{ng__checksum_8h_source_l00044}{NG\+\_\+\+CHECKSUM\+\_\+\+CSUM\+\_\+\+IPV6}}, \mbox{\hyperlink{netgraph_8h_source_l00938}{NG\+\_\+\+FREE\+\_\+\+MSG}}, \mbox{\hyperlink{ng__message_8h_source_l00396}{NG\+\_\+\+MKRESPONSE}}, \mbox{\hyperlink{netgraph_8h_source_l00609}{NG\+\_\+\+NODE\+\_\+\+PRIVATE}}, \mbox{\hyperlink{netgraph_8h_source_l01025}{NG\+\_\+\+RESPOND\+\_\+\+MSG}}, \mbox{\hyperlink{netgraph_8h_source_l00858}{NGI\+\_\+\+GET\+\_\+\+MSG}}, \mbox{\hyperlink{ng__checksum_8h_source_l00054}{NGM\+\_\+\+CHECKSUM\+\_\+\+CLR\+\_\+\+STATS}}, \mbox{\hyperlink{ng__checksum_8h_source_l00036}{NGM\+\_\+\+CHECKSUM\+\_\+\+COOKIE}}, \mbox{\hyperlink{ng__checksum_8h_source_l00053}{NGM\+\_\+\+CHECKSUM\+\_\+\+GET\+\_\+\+STATS}}, \mbox{\hyperlink{ng__checksum_8h_source_l00052}{NGM\+\_\+\+CHECKSUM\+\_\+\+GETCLR\+\_\+\+STATS}}, \mbox{\hyperlink{ng__checksum_8h_source_l00050}{NGM\+\_\+\+CHECKSUM\+\_\+\+GETCONFIG}}, \mbox{\hyperlink{ng__checksum_8h_source_l00048}{NGM\+\_\+\+CHECKSUM\+\_\+\+GETDLT}}, \mbox{\hyperlink{ng__checksum_8h_source_l00051}{NGM\+\_\+\+CHECKSUM\+\_\+\+SETCONFIG}}, \mbox{\hyperlink{ng__checksum_8h_source_l00049}{NGM\+\_\+\+CHECKSUM\+\_\+\+SETDLT}}, \mbox{\hyperlink{ng__sscop_8c_source_l00098}{priv\+::stats}}, and \mbox{\hyperlink{ng__message_8h_source_l00066}{ng\+\_\+mesg\+::ng\+\_\+msghdr\+::typecookie}}.

\mbox{\Hypertarget{ng__checksum_8c_a46bff6b03d57cebbe0b44f3cd25dc555}\label{ng__checksum_8c_a46bff6b03d57cebbe0b44f3cd25dc555}} 
\index{ng\_checksum.c@{ng\_checksum.c}!ng\_checksum\_shutdown@{ng\_checksum\_shutdown}}
\index{ng\_checksum\_shutdown@{ng\_checksum\_shutdown}!ng\_checksum.c@{ng\_checksum.c}}
\doxysubsubsection{\texorpdfstring{ng\_checksum\_shutdown()}{ng\_checksum\_shutdown()}}
{\footnotesize\ttfamily static int ng\+\_\+checksum\+\_\+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__checksum_8c_source_l00695}{695}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.



References \mbox{\hyperlink{netgraph_8h_source_l00609}{NG\+\_\+\+NODE\+\_\+\+PRIVATE}}, \mbox{\hyperlink{netgraph_8h_source_l00608}{NG\+\_\+\+NODE\+\_\+\+SET\+\_\+\+PRIVATE}}, and \mbox{\hyperlink{netgraph_8h_source_l00607}{NG\+\_\+\+NODE\+\_\+\+UNREF}}.



\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{ng__checksum_8c_a3a5f79c7a533adb2f9513e97f9ad942a}\label{ng__checksum_8c_a3a5f79c7a533adb2f9513e97f9ad942a}} 
\index{ng\_checksum.c@{ng\_checksum.c}!ng\_checksum\_cmdlist@{ng\_checksum\_cmdlist}}
\index{ng\_checksum\_cmdlist@{ng\_checksum\_cmdlist}!ng\_checksum.c@{ng\_checksum.c}}
\doxysubsubsection{\texorpdfstring{ng\_checksum\_cmdlist}{ng\_checksum\_cmdlist}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structng__cmdlist}{ng\+\_\+cmdlist}} ng\+\_\+checksum\+\_\+cmdlist\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__checksum_8c_source_l00094}{94}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.

\mbox{\Hypertarget{ng__checksum_8c_ab4f6d8b104520fb2ec9ea8eaa4481106}\label{ng__checksum_8c_ab4f6d8b104520fb2ec9ea8eaa4481106}} 
\index{ng\_checksum.c@{ng\_checksum.c}!ng\_checksum\_config\_type@{ng\_checksum\_config\_type}}
\index{ng\_checksum\_config\_type@{ng\_checksum\_config\_type}!ng\_checksum.c@{ng\_checksum.c}}
\doxysubsubsection{\texorpdfstring{ng\_checksum\_config\_type}{ng\_checksum\_config\_type}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structng__parse__type}{ng\+\_\+parse\+\_\+type}} ng\+\_\+checksum\+\_\+config\+\_\+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__checksum_8c_a39620d05dc0a6caf7743a3a57ab48626}{ng\_checksum\_config\_type\_fields}}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{ng__checksum_8c_source_l00082}{82}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.

\mbox{\Hypertarget{ng__checksum_8c_a39620d05dc0a6caf7743a3a57ab48626}\label{ng__checksum_8c_a39620d05dc0a6caf7743a3a57ab48626}} 
\index{ng\_checksum.c@{ng\_checksum.c}!ng\_checksum\_config\_type\_fields@{ng\_checksum\_config\_type\_fields}}
\index{ng\_checksum\_config\_type\_fields@{ng\_checksum\_config\_type\_fields}!ng\_checksum.c@{ng\_checksum.c}}
\doxysubsubsection{\texorpdfstring{ng\_checksum\_config\_type\_fields}{ng\_checksum\_config\_type\_fields}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structng__parse__struct__field}{ng\+\_\+parse\+\_\+struct\+\_\+field}} ng\+\_\+checksum\+\_\+config\+\_\+type\+\_\+fields\mbox{[}$\,$\mbox{]} = \mbox{\hyperlink{ng__checksum_8h_adb3e655a68ac39ce26e48a74bf8d7026}{NG\+\_\+\+CHECKSUM\+\_\+\+CONFIG\+\_\+\+TYPE}}\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__checksum_8c_source_l00080}{80}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.

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



Definition at line \mbox{\hyperlink{ng__checksum_8c_source_l00072}{72}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.

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



Definition at line \mbox{\hyperlink{ng__checksum_8c_source_l00077}{77}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.

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



Definition at line \mbox{\hyperlink{ng__checksum_8c_source_l00075}{75}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.

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



Definition at line \mbox{\hyperlink{ng__checksum_8c_source_l00076}{76}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.

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



Definition at line \mbox{\hyperlink{ng__checksum_8c_source_l00073}{73}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.

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



Definition at line \mbox{\hyperlink{ng__checksum_8c_source_l00074}{74}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.

\mbox{\Hypertarget{ng__checksum_8c_a20d3c64c6590d793c5b5487643fe476c}\label{ng__checksum_8c_a20d3c64c6590d793c5b5487643fe476c}} 
\index{ng\_checksum.c@{ng\_checksum.c}!ng\_checksum\_stats\_fields@{ng\_checksum\_stats\_fields}}
\index{ng\_checksum\_stats\_fields@{ng\_checksum\_stats\_fields}!ng\_checksum.c@{ng\_checksum.c}}
\doxysubsubsection{\texorpdfstring{ng\_checksum\_stats\_fields}{ng\_checksum\_stats\_fields}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structng__parse__struct__field}{ng\+\_\+parse\+\_\+struct\+\_\+field}} ng\+\_\+checksum\+\_\+stats\+\_\+fields\mbox{[}$\,$\mbox{]} = \mbox{\hyperlink{ng__checksum_8h_a50581e147675fc0254bcb380e02be461}{NG\+\_\+\+CHECKSUM\+\_\+\+STATS\+\_\+\+TYPE}}\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{ng__checksum_8c_source_l00087}{87}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.

\mbox{\Hypertarget{ng__checksum_8c_a7103025545b0a52013501f31e2202376}\label{ng__checksum_8c_a7103025545b0a52013501f31e2202376}} 
\index{ng\_checksum.c@{ng\_checksum.c}!ng\_checksum\_stats\_type@{ng\_checksum\_stats\_type}}
\index{ng\_checksum\_stats\_type@{ng\_checksum\_stats\_type}!ng\_checksum.c@{ng\_checksum.c}}
\doxysubsubsection{\texorpdfstring{ng\_checksum\_stats\_type}{ng\_checksum\_stats\_type}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structng__parse__type}{ng\+\_\+parse\+\_\+type}} ng\+\_\+checksum\+\_\+stats\+\_\+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__checksum_8c_a20d3c64c6590d793c5b5487643fe476c}{ng\_checksum\_stats\_fields}}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{ng__checksum_8c_source_l00089}{89}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.

\mbox{\Hypertarget{ng__checksum_8c_a80a131770518c7fa3758d85054006e7a}\label{ng__checksum_8c_a80a131770518c7fa3758d85054006e7a}} 
\index{ng\_checksum.c@{ng\_checksum.c}!typestruct@{typestruct}}
\index{typestruct@{typestruct}!ng\_checksum.c@{ng\_checksum.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__checksum_8h_a077aa83dfbe073b054398e1c5f41eebb}{NG\_CHECKSUM\_NODE\_TYPE}},}
\DoxyCodeLine{        .constructor =  \mbox{\hyperlink{ng__checksum_8c_abea8e6cdbee4ca12e6bd350cf71894b3}{ng\_checksum\_constructor}},}
\DoxyCodeLine{        .rcvmsg =       \mbox{\hyperlink{ng__checksum_8c_aa760227c4569ea2220dd6a16e457fcaa}{ng\_checksum\_rcvmsg}},}
\DoxyCodeLine{        .shutdown =     \mbox{\hyperlink{ng__checksum_8c_a2ef690dc8b68b996ede1c2793fbd4f99}{ng\_checksum\_shutdown}},}
\DoxyCodeLine{        .newhook =      \mbox{\hyperlink{ng__checksum_8c_a76c8e3ed2699b9747e38ac79a8ac8100}{ng\_checksum\_newhook}},}
\DoxyCodeLine{        .rcvdata =      \mbox{\hyperlink{ng__checksum_8c_ac4761c8acab93f166e2def5681598581}{ng\_checksum\_rcvdata}},}
\DoxyCodeLine{        .disconnect =   \mbox{\hyperlink{ng__checksum_8c_a6659ecfb5af2697f7a69a30a20255a34}{ng\_checksum\_disconnect}},}
\DoxyCodeLine{        .cmdlist =      \mbox{\hyperlink{ng__checksum_8c_a3a5f79c7a533adb2f9513e97f9ad942a}{ng\_checksum\_cmdlist}},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{ng__checksum_8c_source_l00147}{147}} of file \mbox{\hyperlink{ng__checksum_8c_source}{ng\+\_\+checksum.\+c}}.

