Lines Matching +full:lower +full:- +full:case
5 /*-
6 * SPDX-License-Identifier: BSD-3-Clause AND BSD-2-Clause
35 * Copyright (c) 1996-2000 Whistle Communications, Inc.
53 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
93 #define IFP2NG(ifp) ((struct ng_node *)((struct gif_softc *)(ifp->if_softc))->gif_netgraph)
94 #define IFP2NG_SET(ifp, val) (((struct gif_softc *)(ifp->if_softc))->gif_netgraph = (val))
96 /* Per-node private data */
99 hook_p lower; /* lower OR orphan hook connection */ member
100 u_char lowerOrphan; /* whether lower is lower or orphan */
174 /* If "lower" hook not connected, let packet continue */ in ng_gif_input()
175 if (priv->lower == NULL || priv->lowerOrphan) in ng_gif_input()
191 if (priv->lower == NULL || !priv->lowerOrphan) { in ng_gif_input_orphan()
214 /* Send out lower/orphan hook */ in ng_gif_input2()
215 NG_SEND_DATA_ONLY(error, priv->lower, *mp); in ng_gif_input2()
233 __func__, "create node", ifp->if_xname); in ng_gif_attach()
241 __func__, "allocate memory", ifp->if_xname); in ng_gif_attach()
246 priv->ifp = ifp; in ng_gif_attach()
250 if (ng_name_node(node, ifp->if_xname) != 0) { in ng_gif_attach()
252 __func__, ifp->if_xname); in ng_gif_attach()
273 * handles it (as it should in the non netgraph case). in ng_gif_detach()
276 priv->ifp = NULL; /* XXX race if interrupted an output packet */ in ng_gif_detach()
348 u_char orphan = priv->lowerOrphan; in ng_gif_newhook()
351 /* Divert hook is an alias for lower */ in ng_gif_newhook()
357 hookptr = &priv->lower; in ng_gif_newhook()
360 hookptr = &priv->lower; in ng_gif_newhook()
371 priv->lowerOrphan = orphan; in ng_gif_newhook()
399 switch (msg->header.typecookie) { in ng_gif_rcvmsg()
400 case NGM_GIF_COOKIE: in ng_gif_rcvmsg()
401 switch (msg->header.cmd) { in ng_gif_rcvmsg()
402 case NGM_GIF_GET_IFNAME: in ng_gif_rcvmsg()
408 strlcpy(resp->data, priv->ifp->if_xname, IFNAMSIZ); in ng_gif_rcvmsg()
410 case NGM_GIF_GET_IFINDEX: in ng_gif_rcvmsg()
416 *((u_int32_t *)resp->data) = priv->ifp->if_index; in ng_gif_rcvmsg()
445 if (hook == priv->lower) in ng_gif_rcvdata()
451 * Handle an mbuf received on the "lower" hook.
462 if (m->m_pkthdr.len < sizeof(sa_family_t)) { in ng_gif_rcv_lower()
466 if (m->m_len < sizeof(sa_family_t) in ng_gif_rcv_lower()
480 return gif_output(priv->ifp, m, &dst, NULL); in ng_gif_rcv_lower()
492 if (node->nd_flags & NGF_REALLY_DIE) { in ng_gif_shutdown()
516 if (hook == priv->lower) { in ng_gif_disconnect()
517 priv->lower = NULL; in ng_gif_disconnect()
518 priv->lowerOrphan = 0; in ng_gif_disconnect()
543 case MOD_LOAD: in ng_gif_mod_event()
555 /* Create nodes for any already-existing gif interfaces */ in ng_gif_mod_event()
561 if (ifp->if_type == IFT_GIF) in ng_gif_mod_event()
570 case MOD_UNLOAD: in ng_gif_mod_event()
576 * case, we know there are no nodes left if the action in ng_gif_mod_event()