GIF2IFP
GIF2IFP(sc) = if_alloc(IFT_GIF);
GIF2IFP(sc)->if_softc = sc;
if_initname(GIF2IFP(sc), gifname, unit);
GIF2IFP(sc)->if_addrlen = 0;
GIF2IFP(sc)->if_mtu = GIF_MTU;
GIF2IFP(sc)->if_flags = IFF_POINTOPOINT | IFF_MULTICAST;
GIF2IFP(sc)->if_ioctl = gif_ioctl;
GIF2IFP(sc)->if_transmit = gif_transmit;
GIF2IFP(sc)->if_qflush = gif_qflush;
GIF2IFP(sc)->if_output = gif_output;
GIF2IFP(sc)->if_reassign = gif_reassign;
GIF2IFP(sc)->if_capabilities |= IFCAP_LINKSTATE;
GIF2IFP(sc)->if_capenable |= IFCAP_LINKSTATE;
if_attach(GIF2IFP(sc));
bpfattach(GIF2IFP(sc), DLT_NULL, sizeof(u_int32_t));
(*ng_gif_attach_p)(GIF2IFP(sc));
GIF2IFP(sc)->if_drv_flags &= ~IFF_DRV_RUNNING;
if_link_state_change(GIF2IFP(sc), LINK_STATE_DOWN);
GIF2IFP(sc)->if_drv_flags |= IFF_DRV_RUNNING;
GIF2IFP(sc)->if_drv_flags &= ~IFF_DRV_RUNNING;
gifp = GIF2IFP(sc);
if ((GIF2IFP(sc)->if_flags & IFF_UP) == 0)
if ((GIF2IFP(sc)->if_flags & IFF_LINK2) == 0) {
GIF2IFP(sc)->if_drv_flags |= IFF_DRV_RUNNING;
GIF2IFP(sc)->if_drv_flags &= ~IFF_DRV_RUNNING;
gifp = GIF2IFP(sc);
if ((GIF2IFP(sc)->if_flags & IFF_UP) == 0)
if ((GIF2IFP(sc)->if_flags & IFF_LINK2) == 0) {