if_gre.c (75dfc66c1b2b44609e5a7c3e1d6a751be4922689) | if_gre.c (dd4490fdab598b56c40619e1bbb51b2da4420518) |
---|---|
1/*- 2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3 * 4 * Copyright (c) 1998 The NetBSD Foundation, Inc. 5 * Copyright (c) 2014, 2018 Andrey V. Elsukov <ae@FreeBSD.org> 6 * All rights reserved. 7 * 8 * This code is derived from software contributed to The NetBSD Foundation --- 93 unchanged lines hidden (view full) --- 102static struct sx gre_ioctl_sx; 103SX_SYSINIT(gre_ioctl_sx, &gre_ioctl_sx, "gre_ioctl"); 104 105static int gre_clone_create(struct if_clone *, int, caddr_t); 106static void gre_clone_destroy(struct ifnet *); 107VNET_DEFINE_STATIC(struct if_clone *, gre_cloner); 108#define V_gre_cloner VNET(gre_cloner) 109 | 1/*- 2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3 * 4 * Copyright (c) 1998 The NetBSD Foundation, Inc. 5 * Copyright (c) 2014, 2018 Andrey V. Elsukov <ae@FreeBSD.org> 6 * All rights reserved. 7 * 8 * This code is derived from software contributed to The NetBSD Foundation --- 93 unchanged lines hidden (view full) --- 102static struct sx gre_ioctl_sx; 103SX_SYSINIT(gre_ioctl_sx, &gre_ioctl_sx, "gre_ioctl"); 104 105static int gre_clone_create(struct if_clone *, int, caddr_t); 106static void gre_clone_destroy(struct ifnet *); 107VNET_DEFINE_STATIC(struct if_clone *, gre_cloner); 108#define V_gre_cloner VNET(gre_cloner) 109 |
110#ifdef VIMAGE 111static void gre_reassign(struct ifnet *, struct vnet *, char *); 112#endif |
|
110static void gre_qflush(struct ifnet *); 111static int gre_transmit(struct ifnet *, struct mbuf *); 112static int gre_ioctl(struct ifnet *, u_long, caddr_t); 113static int gre_output(struct ifnet *, struct mbuf *, 114 const struct sockaddr *, struct route *); 115static void gre_delete_tunnel(struct gre_softc *); 116 117SYSCTL_DECL(_net_link); --- 60 unchanged lines hidden (view full) --- 178 if_initname(GRE2IFP(sc), grename, unit); 179 180 GRE2IFP(sc)->if_mtu = GREMTU; 181 GRE2IFP(sc)->if_flags = IFF_POINTOPOINT|IFF_MULTICAST; 182 GRE2IFP(sc)->if_output = gre_output; 183 GRE2IFP(sc)->if_ioctl = gre_ioctl; 184 GRE2IFP(sc)->if_transmit = gre_transmit; 185 GRE2IFP(sc)->if_qflush = gre_qflush; | 113static void gre_qflush(struct ifnet *); 114static int gre_transmit(struct ifnet *, struct mbuf *); 115static int gre_ioctl(struct ifnet *, u_long, caddr_t); 116static int gre_output(struct ifnet *, struct mbuf *, 117 const struct sockaddr *, struct route *); 118static void gre_delete_tunnel(struct gre_softc *); 119 120SYSCTL_DECL(_net_link); --- 60 unchanged lines hidden (view full) --- 181 if_initname(GRE2IFP(sc), grename, unit); 182 183 GRE2IFP(sc)->if_mtu = GREMTU; 184 GRE2IFP(sc)->if_flags = IFF_POINTOPOINT|IFF_MULTICAST; 185 GRE2IFP(sc)->if_output = gre_output; 186 GRE2IFP(sc)->if_ioctl = gre_ioctl; 187 GRE2IFP(sc)->if_transmit = gre_transmit; 188 GRE2IFP(sc)->if_qflush = gre_qflush; |
189#ifdef VIMAGE 190 GRE2IFP(sc)->if_reassign = gre_reassign; 191#endif |
|
186 GRE2IFP(sc)->if_capabilities |= IFCAP_LINKSTATE; 187 GRE2IFP(sc)->if_capenable |= IFCAP_LINKSTATE; 188 if_attach(GRE2IFP(sc)); 189 bpfattach(GRE2IFP(sc), DLT_NULL, sizeof(u_int32_t)); 190 return (0); 191} 192 | 192 GRE2IFP(sc)->if_capabilities |= IFCAP_LINKSTATE; 193 GRE2IFP(sc)->if_capenable |= IFCAP_LINKSTATE; 194 if_attach(GRE2IFP(sc)); 195 bpfattach(GRE2IFP(sc), DLT_NULL, sizeof(u_int32_t)); 196 return (0); 197} 198 |
199#ifdef VIMAGE |
|
193static void | 200static void |
201gre_reassign(struct ifnet *ifp, struct vnet *new_vnet __unused, 202 char *unused __unused) 203{ 204 struct gre_softc *sc; 205 206 sx_xlock(&gre_ioctl_sx); 207 sc = ifp->if_softc; 208 if (sc != NULL) 209 gre_delete_tunnel(sc); 210 sx_xunlock(&gre_ioctl_sx); 211} 212#endif /* VIMAGE */ 213 214static void |
|
194gre_clone_destroy(struct ifnet *ifp) 195{ 196 struct gre_softc *sc; 197 198 sx_xlock(&gre_ioctl_sx); 199 sc = ifp->if_softc; 200 gre_delete_tunnel(sc); 201 bpfdetach(ifp); --- 619 unchanged lines hidden --- | 215gre_clone_destroy(struct ifnet *ifp) 216{ 217 struct gre_softc *sc; 218 219 sx_xlock(&gre_ioctl_sx); 220 sc = ifp->if_softc; 221 gre_delete_tunnel(sc); 222 bpfdetach(ifp); --- 619 unchanged lines hidden --- |