\hypertarget{ng__ip__input_8c_source}{}\doxysection{ng\+\_\+ip\+\_\+input.\+c}
\label{ng__ip__input_8c_source}\index{netgraph/ng\_ip\_input.c@{netgraph/ng\_ip\_input.c}}
\mbox{\hyperlink{ng__ip__input_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00001}00001 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00002}00002 \textcolor{comment}{ * ng\_ip\_input.c}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00003}00003 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00004}00004 }
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00005}00005 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00006}00006 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/3-\/Clause AND BSD-\/2-\/Clause}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00008}00008 \textcolor{comment}{ * Copyright 2001 The Aerospace Corporation.  All rights reserved.}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00009}00009 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00010}00010 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00011}00011 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00012}00012 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00013}00013 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00014}00014 \textcolor{comment}{ * 1.  Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00015}00015 \textcolor{comment}{ *     notice, this list of conditions, and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00016}00016 \textcolor{comment}{ * 2.  Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00017}00017 \textcolor{comment}{ *     notice, this list of conditions, and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00018}00018 \textcolor{comment}{ *     documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00019}00019 \textcolor{comment}{ * 3.  The name of The Aerospace Corporation may not be used to endorse or}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00020}00020 \textcolor{comment}{ *     promote products derived from this software.}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00021}00021 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00022}00022 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AEROSPACE CORPORATION "{}AS IS"{} AND}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00023}00023 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00024}00024 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00025}00025 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AEROSPACE CORPORATION BE LIABLE}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00026}00026 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00027}00027 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00028}00028 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00029}00029 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00030}00030 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00031}00031 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00032}00032 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00033}00033 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00034}00034 \textcolor{comment}{ * Copyright (c) 1996-\/1999 Whistle Communications, Inc.}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00035}00035 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00036}00036 \textcolor{comment}{ * }}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00037}00037 \textcolor{comment}{ * Subject to the following obligations and disclaimer of warranty, use and}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00038}00038 \textcolor{comment}{ * redistribution of this software, in source or object code forms, with or}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00039}00039 \textcolor{comment}{ * without modifications are expressly permitted by Whistle Communications;}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00040}00040 \textcolor{comment}{ * provided, however, that:}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00041}00041 \textcolor{comment}{ * 1. Any and all reproductions of the source or object code must include the}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00042}00042 \textcolor{comment}{ *    copyright notice above and the following disclaimer of warranties; and}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00043}00043 \textcolor{comment}{ * 2. No rights are granted, in any manner or form, to use Whistle}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00044}00044 \textcolor{comment}{ *    Communications, Inc. trademarks, including the mark "{}WHISTLE}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00045}00045 \textcolor{comment}{ *    COMMUNICATIONS"{} on advertising, endorsements, or otherwise except as}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00046}00046 \textcolor{comment}{ *    such appears in the above copyright notice or in the software.}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00047}00047 \textcolor{comment}{ * }}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00048}00048 \textcolor{comment}{ * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "{}AS IS"{}, AND}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00049}00049 \textcolor{comment}{ * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00050}00050 \textcolor{comment}{ * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE,}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00051}00051 \textcolor{comment}{ * INCLUDING WITHOUT LIMITATION, ANY AND ALL IMPLIED WARRANTIES OF}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00052}00052 \textcolor{comment}{ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-\/INFRINGEMENT.}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00053}00053 \textcolor{comment}{ * WHISTLE COMMUNICATIONS DOES NOT WARRANT, GUARANTEE, OR MAKE ANY}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00054}00054 \textcolor{comment}{ * REPRESENTATIONS REGARDING THE USE OF, OR THE RESULTS OF THE USE OF THIS}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00055}00055 \textcolor{comment}{ * SOFTWARE IN TERMS OF ITS CORRECTNESS, ACCURACY, RELIABILITY OR OTHERWISE.}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00056}00056 \textcolor{comment}{ * IN NO EVENT SHALL WHISTLE COMMUNICATIONS BE LIABLE FOR ANY DAMAGES}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00057}00057 \textcolor{comment}{ * RESULTING FROM OR ARISING OUT OF ANY USE OF THIS SOFTWARE, INCLUDING}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00058}00058 \textcolor{comment}{ * WITHOUT LIMITATION, ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00059}00059 \textcolor{comment}{ * PUNITIVE, OR CONSEQUENTIAL DAMAGES, PROCUREMENT OF SUBSTITUTE GOODS OR}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00060}00060 \textcolor{comment}{ * SERVICES, LOSS OF USE, DATA OR PROFITS, HOWEVER CAUSED AND UNDER ANY}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00061}00061 \textcolor{comment}{ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00062}00062 \textcolor{comment}{ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00063}00063 \textcolor{comment}{ * THIS SOFTWARE, EVEN IF WHISTLE COMMUNICATIONS IS ADVISED OF THE POSSIBILITY}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00064}00064 \textcolor{comment}{ * OF SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00065}00065 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00066}00066 \textcolor{comment}{ * Author:              Brooks Davis <brooks@FreeBSD.org>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00067}00067 \textcolor{comment}{ * Derived from:        ng\_hole.c}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00068}00068 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00069}00069 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00070}00070 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00071}00071 }
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00072}00072 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00073}00073 \textcolor{comment}{ * This node simply takes IP packets and calls ip\_input on them}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00074}00074 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00075}00075 }
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00076}00076 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00077}00077 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00078}00078 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00079}00079 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00080}00080 \textcolor{preprocessor}{\#include <sys/mbuf.h>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00081}00081 \textcolor{preprocessor}{\#include <sys/socket.h>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00082}00082 \textcolor{preprocessor}{\#include <sys/proc.h>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00083}00083 \textcolor{preprocessor}{\#include <net/if.h>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00084}00084 \textcolor{preprocessor}{\#include <net/if\_types.h>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00085}00085 \textcolor{preprocessor}{\#include <net/if\_var.h>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00086}00086 \textcolor{preprocessor}{\#include <netinet/in.h>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00087}00087 \textcolor{preprocessor}{\#include <netinet/in\_var.h>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00088}00088 \textcolor{preprocessor}{\#include <net/netisr.h>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00089}00089 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{ng__message_8h}{netgraph/ng\_message.h}}>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00090}00090 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{netgraph_8h}{netgraph/netgraph.h}}>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00091}00091 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{ng__ip__input_8h}{netgraph/ng\_ip\_input.h}}>}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00092}00092 }
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00093}00093 \textcolor{comment}{/* Netgraph methods */}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00094}\mbox{\hyperlink{ng__ip__input_8c_a5afc84e31cf1cd20c565980dc10bd6f1}{00094}} \textcolor{keyword}{static} \mbox{\hyperlink{netgraph_8h_abb75b9ed2849e15851d6402d2ab5b899}{ng\_constructor\_t}} \mbox{\hyperlink{ng__ip__input_8c_a5afc84e31cf1cd20c565980dc10bd6f1}{ngipi\_cons}};}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00095}\mbox{\hyperlink{ng__ip__input_8c_a7ea743460697bddc2e998622d232be36}{00095}} \textcolor{keyword}{static} \mbox{\hyperlink{netgraph_8h_aa87ef7415b345b801747ceaf99de6c43}{ng\_rcvdata\_t}} \mbox{\hyperlink{ng__ip__input_8c_a7ea743460697bddc2e998622d232be36}{ngipi\_rcvdata}};}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00096}\mbox{\hyperlink{ng__ip__input_8c_a38e2b348e1867365ee3f9ac89d8616ac}{00096}} \textcolor{keyword}{static} \mbox{\hyperlink{netgraph_8h_a669e1783335f933b4a4f90f17d22f381}{ng\_disconnect\_t}}   \mbox{\hyperlink{ng__ip__input_8c_a38e2b348e1867365ee3f9ac89d8616ac}{ngipi\_disconnect}};}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00097}00097 }
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00098}\mbox{\hyperlink{ng__ip__input_8c_a80a131770518c7fa3758d85054006e7a}{00098}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__type}{ng\_type}} \mbox{\hyperlink{ng__ip__input_8c_a80a131770518c7fa3758d85054006e7a}{typestruct}} = \{}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00099}00099         .\mbox{\hyperlink{structng__type_adbc1c8884ff0e625c19c4b513262fd0e}{version}} =       \mbox{\hyperlink{netgraph_8h_acc6b5f853e8058f4d5a8ca825ee60c97}{NG\_ABI\_VERSION}},}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00100}00100         .name =         \mbox{\hyperlink{ng__ip__input_8h_a8e04785aa65ad6cfa99b384e9375d438}{NG\_IP\_INPUT\_NODE\_TYPE}},}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00101}00101         .constructor =  \mbox{\hyperlink{ng__ip__input_8c_a5afc84e31cf1cd20c565980dc10bd6f1}{ngipi\_cons}},}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00102}00102         .rcvdata =      \mbox{\hyperlink{ng__ip__input_8c_a7ea743460697bddc2e998622d232be36}{ngipi\_rcvdata}},}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00103}00103         .disconnect =   \mbox{\hyperlink{ng__ip__input_8c_a38e2b348e1867365ee3f9ac89d8616ac}{ngipi\_disconnect}},}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00104}00104 \};}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00105}\mbox{\hyperlink{ng__ip__input_8c_af43360830518ffdeabe0b669827946c8}{00105}} \mbox{\hyperlink{ng__ip__input_8c_af43360830518ffdeabe0b669827946c8}{NETGRAPH\_INIT}}(ip\_input, \&\mbox{\hyperlink{ng__ip__input_8c_a80a131770518c7fa3758d85054006e7a}{typestruct}});}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00106}00106 }
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00107}00107 \textcolor{comment}{/* }}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00108}00108 \textcolor{comment}{ * Be obliging. but no work to do.}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00109}00109 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00110}00110 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00111}\mbox{\hyperlink{ng__ip__input_8c_a7b1386bfad2ea8c96e215ac8c2c34f78}{00111}} \mbox{\hyperlink{ng__ip__input_8c_a5afc84e31cf1cd20c565980dc10bd6f1}{ngipi\_cons}}(\mbox{\hyperlink{structng__node}{node\_p}} node)}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00112}00112 \{}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00113}00113         \textcolor{keywordflow}{return}(0);}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00114}00114 \}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00115}00115 }
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00116}00116 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00117}00117 \textcolor{comment}{ * Receive data}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00118}00118 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00119}00119 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00120}\mbox{\hyperlink{ng__ip__input_8c_a17600b8aa3d367723a33abc8e9b55163}{00120}} \mbox{\hyperlink{ng__ip__input_8c_a7ea743460697bddc2e998622d232be36}{ngipi\_rcvdata}}(\mbox{\hyperlink{structng__hook}{hook\_p}} hook, \mbox{\hyperlink{structng__item}{item\_p}} item)}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00121}00121 \{}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00122}00122         \textcolor{keyword}{struct }mbuf *m;}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00123}00123 }
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00124}00124         \mbox{\hyperlink{netgraph_8h_abbb0acb5f480576cff9901caddeef57f}{NGI\_GET\_M}}(item, m);}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00125}00125         \mbox{\hyperlink{netgraph_8h_ab1451f92a5ed6715897d40bf802b06d5}{NG\_FREE\_ITEM}}(item);}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00126}00126         \textcolor{keywordflow}{if} (curthread-\/>td\_ng\_outbound)}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00127}00127                 netisr\_queue(NETISR\_IP, m);}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00128}00128         \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00129}00129                 \textcolor{keyword}{struct }epoch\_tracker et;}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00130}00130 }
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00131}00131                 NET\_EPOCH\_ENTER(et);}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00132}00132                 netisr\_dispatch(NETISR\_IP, m);}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00133}00133                 NET\_EPOCH\_EXIT(et);}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00134}00134         \}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00135}00135         \textcolor{keywordflow}{return} 0;}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00136}00136 \}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00137}00137 }
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00138}00138 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00139}00139 \textcolor{comment}{ * Hook disconnection}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00140}00140 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00141}00141 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00142}\mbox{\hyperlink{ng__ip__input_8c_a1e9e83c2477cdbaa0ff0c015e55795c3}{00142}} \mbox{\hyperlink{ng__ip__input_8c_a38e2b348e1867365ee3f9ac89d8616ac}{ngipi\_disconnect}}(\mbox{\hyperlink{structng__hook}{hook\_p}} hook)}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00143}00143 \{}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00144}00144         \textcolor{keywordflow}{if} (\mbox{\hyperlink{netgraph_8h_ad47e204c5b3adaddfa4bf0c380234f48}{NG\_NODE\_NUMHOOKS}}(\mbox{\hyperlink{netgraph_8h_a1d027698ed92e240870e67cd8362f1d4}{NG\_HOOK\_NODE}}(hook)) == 0)}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00145}00145                 \mbox{\hyperlink{netgraph_8h_a85914ce0da2b314478aaf7efcdcd3ff0}{ng\_rmnode\_self}}(\mbox{\hyperlink{netgraph_8h_a1d027698ed92e240870e67cd8362f1d4}{NG\_HOOK\_NODE}}(hook));}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00146}00146         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{ng__ip__input_8c_source_l00147}00147 \}}

\end{DoxyCode}
