Lines Matching refs:ifv

292 ifvlan_flags_promisc(ifvlan_ref ifv)  in ifvlan_flags_promisc()  argument
294 return (ifv->ifv_flags & IFVF_PROMISC) != 0; in ifvlan_flags_promisc()
298 ifvlan_flags_set_promisc(ifvlan_ref ifv) in ifvlan_flags_set_promisc() argument
300 ifv->ifv_flags |= IFVF_PROMISC; in ifvlan_flags_set_promisc()
305 ifvlan_flags_clear_promisc(ifvlan_ref ifv) in ifvlan_flags_clear_promisc() argument
307 ifv->ifv_flags &= ~IFVF_PROMISC; in ifvlan_flags_clear_promisc()
312 ifvlan_flags_ready(ifvlan_ref ifv) in ifvlan_flags_ready() argument
314 return (ifv->ifv_flags & IFVF_READY) != 0; in ifvlan_flags_ready()
318 ifvlan_flags_set_ready(ifvlan_ref ifv) in ifvlan_flags_set_ready() argument
320 ifv->ifv_flags |= IFVF_READY; in ifvlan_flags_set_ready()
325 ifvlan_flags_detaching(ifvlan_ref ifv) in ifvlan_flags_detaching() argument
327 return (ifv->ifv_flags & IFVF_DETACHING) != 0; in ifvlan_flags_detaching()
331 ifvlan_flags_set_detaching(ifvlan_ref ifv) in ifvlan_flags_set_detaching() argument
333 ifv->ifv_flags |= IFVF_DETACHING; in ifvlan_flags_set_detaching()
377 static int vlan_unconfig(ifvlan_ref ifv, int need_to_wait);
380 static int vlan_remove(ifvlan_ref ifv, int need_to_wait);
393 static int ifvlan_new_mtu(ifvlan_ref ifv, int mtu);
399 ifvlan_retain(ifvlan_ref ifv) in ifvlan_retain() argument
401 if (ifv->ifv_signature != IFV_SIGNATURE) { in ifvlan_retain()
404 if (ifv->ifv_retain_count == 0) { in ifvlan_retain()
407 OSIncrementAtomic(&ifv->ifv_retain_count); in ifvlan_retain()
411 ifvlan_release(ifvlan_ref ifv) in ifvlan_release() argument
415 if (ifv->ifv_signature != IFV_SIGNATURE) { in ifvlan_release()
418 old_retain_count = OSDecrementAtomic(&ifv->ifv_retain_count); in ifvlan_release()
425 printf("ifvlan_release(%s)\n", ifv->ifv_name); in ifvlan_release()
427 ifv->ifv_signature = 0; in ifvlan_release()
428 if_clone_softc_deallocate(&vlan_cloner, ifv); in ifvlan_release()
437 ifvlan_get_vlan_parent_retained(ifvlan_ref ifv) in ifvlan_get_vlan_parent_retained() argument
439 vlan_parent_ref vlp = ifv->ifv_vlp; in ifvlan_get_vlan_parent_retained()
455 ifvlan_ref ifv; in ifnet_get_ifvlan() local
457 ifv = (ifvlan_ref)ifnet_softc(ifp); in ifnet_get_ifvlan()
458 return ifv; in ifnet_get_ifvlan()
464 ifvlan_ref ifv; in ifnet_get_ifvlan_retained() local
466 ifv = ifnet_get_ifvlan(ifp); in ifnet_get_ifvlan_retained()
467 if (ifv == NULL) { in ifnet_get_ifvlan_retained()
470 if (ifvlan_flags_detaching(ifv)) { in ifnet_get_ifvlan_retained()
473 ifvlan_retain(ifv); in ifnet_get_ifvlan_retained()
474 return ifv; in ifnet_get_ifvlan_retained()
478 ifnet_ifvlan_vlan_parent_ok(struct ifnet * ifp, ifvlan_ref ifv, in ifnet_ifvlan_vlan_parent_ok() argument
484 if (check_ifv != ifv || ifvlan_flags_detaching(ifv)) { in ifnet_ifvlan_vlan_parent_ok()
488 if (ifv->ifv_vlp != vlp) { in ifnet_ifvlan_vlan_parent_ok()
654 ifvlan_ref ifv; in vlan_parent_signal() local
659 LIST_FOREACH(ifv, &vlp->vlp_vlan_list, ifv_vlan_list) { in vlan_parent_signal()
660 struct ifnet * ifp = ifv->ifv_ifp; in vlan_parent_signal()
692 ifvlan_ref ifv; in vlan_setmulti() local
697 ifv = ifnet_get_ifvlan_retained(ifp); in vlan_setmulti()
698 if (ifv == NULL) { in vlan_setmulti()
701 vlp = ifvlan_get_vlan_parent_retained(ifv); in vlan_setmulti()
709 if (ifnet_ifvlan_vlan_parent_ok(ifp, ifv, vlp) == FALSE) { in vlan_setmulti()
716 error = multicast_list_program(&ifv->ifv_multicast, ifp, p); in vlan_setmulti()
725 if (ifv != NULL) { in vlan_setmulti()
726 ifvlan_release(ifv); in vlan_setmulti()
753 ifvlan_ref ifv; in vlan_parent_lookup_tag() local
755 LIST_FOREACH(ifv, &vlp->vlp_vlan_list, ifv_vlan_list) { in vlan_parent_lookup_tag()
756 if (tag == ifv->ifv_tag) { in vlan_parent_lookup_tag()
757 return ifv; in vlan_parent_lookup_tag()
779 ifvlan_ref ifv; in vlan_parent_find_max_mtu() local
781 LIST_FOREACH(ifv, &vlp->vlp_vlan_list, ifv_vlan_list) { in vlan_parent_find_max_mtu()
784 if (exclude_ifv == ifv) { in vlan_parent_find_max_mtu()
787 req_mtu = ifnet_mtu(ifv->ifv_ifp) + ifv->ifv_mtufudge; in vlan_parent_find_max_mtu()
831 ifvlan_ref ifv; in vlan_parent_remove_all_vlans() local
853 for (ifv = LIST_FIRST(&vlp->vlp_vlan_list); ifv != NULL; ifv = next) { in vlan_parent_remove_all_vlans()
854 struct ifnet * ifp = ifv->ifv_ifp; in vlan_parent_remove_all_vlans()
857 next = LIST_NEXT(ifv, ifv_vlan_list); in vlan_parent_remove_all_vlans()
858 removed = vlan_remove(ifv, FALSE); in vlan_parent_remove_all_vlans()
890 vlan_parent_add_vlan(vlan_parent_ref vlp, ifvlan_ref ifv, int tag) in vlan_parent_add_vlan() argument
892 LIST_INSERT_HEAD(&vlp->vlp_vlan_list, ifv, ifv_vlan_list); in vlan_parent_add_vlan()
893 ifv->ifv_vlp = vlp; in vlan_parent_add_vlan()
894 ifv->ifv_tag = tag; in vlan_parent_add_vlan()
899 vlan_parent_remove_vlan(__unused vlan_parent_ref vlp, ifvlan_ref ifv) in vlan_parent_remove_vlan() argument
901 ifv->ifv_vlp = NULL; in vlan_parent_remove_vlan()
902 LIST_REMOVE(ifv, ifv_vlan_list); in vlan_parent_remove_vlan()
961 ifvlan_ref ifv; in vlan_clone_create() local
975 ifv = if_clone_softc_allocate(&vlan_cloner); in vlan_clone_create()
976 if (ifv == NULL) { in vlan_clone_create()
979 ifv->ifv_retain_count = 1; in vlan_clone_create()
980 ifv->ifv_signature = IFV_SIGNATURE; in vlan_clone_create()
981 multicast_list_init(&ifv->ifv_multicast); in vlan_clone_create()
985 snprintf(ifv->ifv_name, sizeof(ifv->ifv_name), "%s%d", in vlan_clone_create()
986 ifc->ifc_name, unit) >= sizeof(ifv->ifv_name)) { in vlan_clone_create()
987 ifvlan_release(ifv); in vlan_clone_create()
995 vlan_init.uniqueid = ifv->ifv_name; in vlan_clone_create()
996 vlan_init.uniqueid_len = strlen(ifv->ifv_name); in vlan_clone_create()
1007 vlan_init.softc = ifv; in vlan_clone_create()
1016 ifvlan_release(ifv); in vlan_clone_create()
1029 ifvlan_release(ifv); in vlan_clone_create()
1032 ifv->ifv_ifp = ifp; in vlan_clone_create()
1040 vlan_remove(ifvlan_ref ifv, int need_to_wait) in vlan_remove() argument
1043 if (ifvlan_flags_detaching(ifv)) { in vlan_remove()
1046 ifvlan_flags_set_detaching(ifv); in vlan_remove()
1047 vlan_unconfig(ifv, need_to_wait); in vlan_remove()
1055 ifvlan_ref ifv; in vlan_clone_destroy() local
1058 ifv = ifnet_get_ifvlan_retained(ifp); in vlan_clone_destroy()
1059 if (ifv == NULL) { in vlan_clone_destroy()
1063 if (vlan_remove(ifv, TRUE) == 0) { in vlan_clone_destroy()
1065 ifvlan_release(ifv); in vlan_clone_destroy()
1069 ifvlan_release(ifv); in vlan_clone_destroy()
1080 ifvlan_ref ifv; in vlan_output() local
1096 ifv = ifnet_get_ifvlan_retained(ifp); in vlan_output()
1097 if (ifv == NULL || ifvlan_flags_ready(ifv) == 0) { in vlan_output()
1100 vlp = ifvlan_get_vlan_parent_retained(ifv); in vlan_output()
1107 tag = ifv->ifv_tag; in vlan_output()
1108 encaplen = ifv->ifv_encaplen; in vlan_output()
1111 ifvlan_release(ifv); in vlan_output()
1186 if (ifv != NULL) { in vlan_output()
1187 ifvlan_release(ifv); in vlan_output()
1245 ifvlan_ref ifv; in vlan_input() local
1253 ifv = vlan_lookup_parent_and_tag(p, tag); in vlan_input()
1254 if (ifv != NULL) { in vlan_input()
1255 ifp = ifv->ifv_ifp; in vlan_input()
1257 if (ifv == NULL in vlan_input()
1258 || ifvlan_flags_ready(ifv) == 0 in vlan_input()
1299 ifvlan_ref ifv = NULL; in vlan_config() local
1314 ifv = ifnet_get_ifvlan_retained(ifp); in vlan_config()
1315 if (ifv == NULL || ifv->ifv_vlp != NULL) { in vlan_config()
1317 if (ifv != NULL) { in vlan_config()
1318 ifvlan_release(ifv); in vlan_config()
1347 if (ifnet_get_ifvlan(ifp) != ifv) { in vlan_config()
1359 || ifvlan_flags_detaching(ifv) || ifv->ifv_vlp != NULL) { in vlan_config()
1374 vlan_parent_add_vlan(vlp, ifv, tag); in vlan_config()
1375 ifvlan_retain(ifv); /* parent references ifv */ in vlan_config()
1403 error = multicast_list_program(&ifv->ifv_multicast, ifp, p); in vlan_config()
1418 ifv->ifv_encaplen = ETHER_VLAN_ENCAP_LEN; in vlan_config()
1419 ifv->ifv_flags = 0; in vlan_config()
1421 ifv->ifv_mtufudge = 0; in vlan_config()
1430 ifv->ifv_mtufudge = ifv->ifv_encaplen; in vlan_config()
1432 ifnet_set_mtu(ifp, ETHERMTU - ifv->ifv_mtufudge); in vlan_config()
1448 ifvlan_flags_set_ready(ifv); in vlan_config()
1455 if (ifv != NULL) { in vlan_config()
1456 ifvlan_release(ifv); in vlan_config()
1469 vlan_parent_remove_vlan(vlp, ifv); in vlan_config()
1492 if (ifv != NULL) { in vlan_config()
1494 ifvlan_release(ifv); in vlan_config()
1496 ifvlan_release(ifv); in vlan_config()
1522 vlan_unconfig(ifvlan_ref ifv, int need_to_wait) in vlan_unconfig() argument
1524 struct ifnet * ifp = ifv->ifv_ifp; in vlan_unconfig()
1532 vlp = ifv->ifv_vlp; in vlan_unconfig()
1542 if (ifv != ifnet_get_ifvlan(ifp)) { in vlan_unconfig()
1545 if (ifv->ifv_vlp != vlp) { in vlan_unconfig()
1565 (void)ifvlan_new_mtu(ifv, ETHERMTU - ifv->ifv_mtufudge); in vlan_unconfig()
1570 (void)multicast_list_remove(&ifv->ifv_multicast); in vlan_unconfig()
1576 if (ifvlan_flags_promisc(ifv)) { in vlan_unconfig()
1592 ifv->ifv_mtufudge = 0; in vlan_unconfig()
1595 vlan_parent_remove_vlan(vlp, ifv); in vlan_unconfig()
1596 ifv->ifv_flags = 0; in vlan_unconfig()
1620 ifvlan_release(ifv); in vlan_unconfig()
1633 ifvlan_ref ifv; in vlan_set_promisc() local
1643 ifv = ifnet_get_ifvlan_retained(ifp); in vlan_set_promisc()
1644 if (ifv == NULL) { in vlan_set_promisc()
1648 vlp = ifv->ifv_vlp; in vlan_set_promisc()
1655 if (is_promisc == ifvlan_flags_promisc(ifv)) { in vlan_set_promisc()
1675 ifvlan_flags_set_promisc(ifv); in vlan_set_promisc()
1677 ifvlan_flags_clear_promisc(ifv); in vlan_set_promisc()
1683 if (ifv != NULL) { in vlan_set_promisc()
1684 ifvlan_release(ifv); in vlan_set_promisc()
1690 ifvlan_new_mtu(ifvlan_ref ifv, int mtu) in ifvlan_new_mtu() argument
1694 struct ifnet * ifp = ifv->ifv_ifp; in ifvlan_new_mtu()
1701 vlp = ifv->ifv_vlp; in ifvlan_new_mtu()
1703 req_mtu = mtu + ifv->ifv_mtufudge; in ifvlan_new_mtu()
1707 max_mtu = vlan_parent_find_max_mtu(vlp, ifv); in ifvlan_new_mtu()
1732 ifvlan_ref ifv; in vlan_set_mtu() local
1739 ifv = ifnet_get_ifvlan_retained(ifp); in vlan_set_mtu()
1740 if (ifv == NULL) { in vlan_set_mtu()
1744 vlp = ifvlan_get_vlan_parent_retained(ifv); in vlan_set_mtu()
1747 ifvlan_release(ifv); in vlan_set_mtu()
1756 if (ifnet_get_ifvlan(ifp) != ifv in vlan_set_mtu()
1757 || ifvlan_flags_detaching(ifv)) { in vlan_set_mtu()
1761 if (ifv->ifv_vlp != vlp) { in vlan_set_mtu()
1771 error = ifvlan_new_mtu(ifv, mtu); in vlan_set_mtu()
1777 ifvlan_release(ifv); in vlan_set_mtu()
1790 ifvlan_ref ifv; in vlan_ioctl() local
1811 ifv = (ifvlan_ref)ifnet_softc(ifp); in vlan_ioctl()
1812 if (ifv == NULL || ifvlan_flags_detaching(ifv)) { in vlan_ioctl()
1814 return ifv == NULL ? EOPNOTSUPP : EBUSY; in vlan_ioctl()
1816 p = (ifv->ifv_vlp == NULL) ? NULL : ifv->ifv_vlp->vlp_ifp; in vlan_ioctl()
1857 ifv = (ifvlan_ref)ifnet_softc(ifp); in vlan_ioctl()
1858 if (ifv == NULL || ifvlan_flags_detaching(ifv)) { in vlan_ioctl()
1860 return ifv == NULL ? EOPNOTSUPP : EBUSY; in vlan_ioctl()
1862 vlp = ifv->ifv_vlp; in vlan_ioctl()
1864 int min_mtu = vlp->vlp_devmtu.ifdm_min - ifv->ifv_mtufudge; in vlan_ioctl()
1868 devmtu_p->ifdm_max = vlp->vlp_devmtu.ifdm_max - ifv->ifv_mtufudge; in vlan_ioctl()
1931 ifv = (ifvlan_ref)ifnet_softc(ifp); in vlan_ioctl()
1932 if (ifv == NULL || ifvlan_flags_detaching(ifv)) { in vlan_ioctl()
1934 error = (ifv == NULL ? EOPNOTSUPP : EBUSY); in vlan_ioctl()
1937 need_link_event = (ifv->ifv_vlp != NULL); in vlan_ioctl()
1938 vlan_unconfig(ifv, TRUE); in vlan_ioctl()
1949 ifv = (ifvlan_ref)ifnet_softc(ifp); in vlan_ioctl()
1950 if (ifv == NULL || ifvlan_flags_detaching(ifv)) { in vlan_ioctl()
1952 return ifv == NULL ? EOPNOTSUPP : EBUSY; in vlan_ioctl()
1954 p = (ifv->ifv_vlp == NULL) ? NULL : ifv->ifv_vlp->vlp_ifp; in vlan_ioctl()
1955 tag = ifv->ifv_tag; in vlan_ioctl()
1988 ifvlan_ref ifv; in vlan_if_free() local
1993 ifv = (ifvlan_ref)ifnet_softc(ifp); in vlan_if_free()
1994 if (ifv == NULL) { in vlan_if_free()
1997 ifvlan_release(ifv); in vlan_if_free()