\hypertarget{ng__pred1_8h_source}{}\doxysection{ng\+\_\+pred1.\+h}
\label{ng__pred1_8h_source}\index{netgraph/ng\_pred1.h@{netgraph/ng\_pred1.h}}
\mbox{\hyperlink{ng__pred1_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2006 Alexander Motin <mav@alkar.net>}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00005}00005 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00006}00006 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00007}00007 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00008}00008 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00009}00009 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00010}00010 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00011}00011 \textcolor{comment}{ *    notice unmodified, this list of conditions, and the following}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00012}00012 \textcolor{comment}{ *    disclaimer.}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00013}00013 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00014}00014 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00015}00015 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00016}00016 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00017}00017 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00018}00018 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00019}00019 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00020}00020 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00021}00021 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00022}00022 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00023}00023 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00024}00024 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00025}00025 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00026}00026 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00027}00027 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00028}00028 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00029}00029 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00030}00030 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00031}00031 }
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00032}00032 \textcolor{preprocessor}{\#ifndef \_NETGRAPH\_NG\_PRED1\_H\_}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00033}00033 \textcolor{preprocessor}{\#define \_NETGRAPH\_NG\_PRED1\_H\_}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00034}00034 }
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00035}00035 \textcolor{comment}{/* Node type name and magic cookie */}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00036}\mbox{\hyperlink{ng__pred1_8h_ae3dbaf4f50be9d4fb80194946adf9895}{00036}} \textcolor{preprocessor}{\#define NG\_PRED1\_NODE\_TYPE      "{}pred1"{}}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00037}\mbox{\hyperlink{ng__pred1_8h_a813f2717810367163d198f7ca0fef33a}{00037}} \textcolor{preprocessor}{\#define NGM\_PRED1\_COOKIE        1166902612}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00038}00038 }
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00039}00039 \textcolor{comment}{/* Hook names */}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00040}\mbox{\hyperlink{ng__pred1_8h_a2899ccf3225703a5cb5ede9de4b048ef}{00040}} \textcolor{preprocessor}{\#define NG\_PRED1\_HOOK\_COMP      "{}comp"{}}          \textcolor{comment}{/* compression hook */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00041}\mbox{\hyperlink{ng__pred1_8h_a245e5476ae79c5a86e0a646c4c6337fb}{00041}} \textcolor{preprocessor}{\#define NG\_PRED1\_HOOK\_DECOMP    "{}decomp"{}}        \textcolor{comment}{/* decompression hook */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00042}00042 }
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00043}00043 \textcolor{comment}{/* Config struct */}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00044}\mbox{\hyperlink{structng__pred1__config}{00044}} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__pred1__config}{ng\_pred1\_config}} \{}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00045}\mbox{\hyperlink{structng__pred1__config_a0f84c0cf7cd7f816cc2426c802c96aa4}{00045}}         u\_char          \mbox{\hyperlink{structng__pred1__config_a0f84c0cf7cd7f816cc2426c802c96aa4}{enable}};                   \textcolor{comment}{/* node enabled */}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00046}00046 \};}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00047}00047 }
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00048}00048 \textcolor{comment}{/* Keep this in sync with the above structure definition. */}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00049}\mbox{\hyperlink{ng__pred1_8h_a394acfd7cb032bcac9495e4738f4cb11}{00049}} \textcolor{preprocessor}{\#define NG\_PRED1\_CONFIG\_INFO    \{                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00050}00050 \textcolor{preprocessor}{        \{ "{}enable"{}},     \&ng\_parse\_uint8\_type    \},      \(\backslash\)}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00051}00051         \{ NULL \}                                        \(\backslash\)}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00052}00052 \}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00053}00053 }
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00054}00054 \textcolor{comment}{/* Statistics structure for one direction. */}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00055}\mbox{\hyperlink{structng__pred1__stats}{00055}} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__pred1__stats}{ng\_pred1\_stats}} \{}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00056}\mbox{\hyperlink{structng__pred1__stats_a37bd467c502f1e0d52eaaf356cb1227d}{00056}}         uint64\_t        \mbox{\hyperlink{structng__pred1__stats_a37bd467c502f1e0d52eaaf356cb1227d}{FramesPlain}};}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00057}\mbox{\hyperlink{structng__pred1__stats_ab13b13ed890f7276b8ef869df1524bb5}{00057}}         uint64\_t        \mbox{\hyperlink{structng__pred1__stats_ab13b13ed890f7276b8ef869df1524bb5}{FramesComp}};}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00058}\mbox{\hyperlink{structng__pred1__stats_a4cd3d5761cbc2548396a926a477798ea}{00058}}         uint64\_t        \mbox{\hyperlink{structng__pred1__stats_a4cd3d5761cbc2548396a926a477798ea}{FramesUncomp}};}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00059}\mbox{\hyperlink{structng__pred1__stats_af76d58cd3175ff8f1b25e59a827fea30}{00059}}         uint64\_t        \mbox{\hyperlink{structng__pred1__stats_af76d58cd3175ff8f1b25e59a827fea30}{InOctets}};}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00060}\mbox{\hyperlink{structng__pred1__stats_acca9908c05514bba62501e059ae86628}{00060}}         uint64\_t        \mbox{\hyperlink{structng__pred1__stats_acca9908c05514bba62501e059ae86628}{OutOctets}};}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00061}\mbox{\hyperlink{structng__pred1__stats_a0ed74491ee3ea25f1ab4eaa93d60e44e}{00061}}         uint64\_t        \mbox{\hyperlink{structng__pred1__stats_a0ed74491ee3ea25f1ab4eaa93d60e44e}{Errors}};}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00062}00062 \};}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00063}00063 }
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00064}00064 \textcolor{comment}{/* Keep this in sync with the above structure definition. */}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00065}\mbox{\hyperlink{ng__pred1_8h_a5de356645766925c2ca0dfba68f87647}{00065}} \textcolor{preprocessor}{\#define NG\_PRED1\_STATS\_INFO     \{                               \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00066}00066 \textcolor{preprocessor}{        \{ "{}FramesPlain"{}},\&ng\_parse\_uint64\_type   \},      \(\backslash\)}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00067}00067         \{ "{}FramesComp"{}, \&ng\_parse\_uint64\_type   \},      \(\backslash\)}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00068}00068         \{ "{}FramesUncomp"{}, \&ng\_parse\_uint64\_type \},      \(\backslash\)}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00069}00069         \{ "{}InOctets"{},   \&ng\_parse\_uint64\_type   \},      \(\backslash\)}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00070}00070         \{ "{}OutOctets"{},  \&ng\_parse\_uint64\_type   \},      \(\backslash\)}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00071}00071         \{ "{}Errors"{},     \&ng\_parse\_uint64\_type   \},      \(\backslash\)}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00072}00072         \{ NULL \}                                        \(\backslash\)}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00073}00073 \}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00074}00074 }
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00075}00075 \textcolor{comment}{/* Netgraph commands */}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00076}00076 \textcolor{keyword}{enum} \{}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00077}\mbox{\hyperlink{ng__pred1_8h_aa156d1cebb38c8a65846c4d9c006012aa8aa1ddeb8be4dff198b5e83d33ac87e7}{00077}}         \mbox{\hyperlink{ng__pred1_8h_aa156d1cebb38c8a65846c4d9c006012aa8aa1ddeb8be4dff198b5e83d33ac87e7}{NGM\_PRED1\_CONFIG}} = 1,}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00078}\mbox{\hyperlink{ng__pred1_8h_aa156d1cebb38c8a65846c4d9c006012aa70227f8f0d6f067e56ea32e04ecc79d8}{00078}}         \mbox{\hyperlink{ng__pred1_8h_aa156d1cebb38c8a65846c4d9c006012aa70227f8f0d6f067e56ea32e04ecc79d8}{NGM\_PRED1\_RESETREQ}},                   \textcolor{comment}{/* sent either way! */}}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00079}\mbox{\hyperlink{ng__pred1_8h_aa156d1cebb38c8a65846c4d9c006012aaacf5bffa65f888c26dd42a11296470f0}{00079}}         \mbox{\hyperlink{ng__pred1_8h_aa156d1cebb38c8a65846c4d9c006012aaacf5bffa65f888c26dd42a11296470f0}{NGM\_PRED1\_GET\_STATS}},}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00080}\mbox{\hyperlink{ng__pred1_8h_aa156d1cebb38c8a65846c4d9c006012aa33c8202340d3a1ad74b56c5e138ed7f7}{00080}}         \mbox{\hyperlink{ng__pred1_8h_aa156d1cebb38c8a65846c4d9c006012aa33c8202340d3a1ad74b56c5e138ed7f7}{NGM\_PRED1\_CLR\_STATS}},}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00081}\mbox{\hyperlink{ng__pred1_8h_aa156d1cebb38c8a65846c4d9c006012aa83aadfc3eba9f6f12a9ba087d6394934}{00081}}         \mbox{\hyperlink{ng__pred1_8h_aa156d1cebb38c8a65846c4d9c006012aa83aadfc3eba9f6f12a9ba087d6394934}{NGM\_PRED1\_GETCLR\_STATS}},}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00082}00082 \};}
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00083}00083 }
\DoxyCodeLine{\Hypertarget{ng__pred1_8h_source_l00084}00084 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_NETGRAPH\_NG\_PRED1\_H\_ */}\textcolor{preprocessor}{}}

\end{DoxyCode}
