• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/xnu-2782.1.97/bsd/net/

Lines Matching defs:ifv

326 ifvlan_flags_promisc(ifvlan_ref ifv)
328 return ((ifv->ifv_flags & IFVF_PROMISC) != 0);
332 ifvlan_flags_set_promisc(ifvlan_ref ifv)
334 ifv->ifv_flags |= IFVF_PROMISC;
339 ifvlan_flags_clear_promisc(ifvlan_ref ifv)
341 ifv->ifv_flags &= ~IFVF_PROMISC;
346 ifvlan_flags_ready(ifvlan_ref ifv)
348 return ((ifv->ifv_flags & IFVF_READY) != 0);
352 ifvlan_flags_set_ready(ifvlan_ref ifv)
354 ifv->ifv_flags |= IFVF_READY;
359 ifvlan_flags_detaching(ifvlan_ref ifv)
361 return ((ifv->ifv_flags & IFVF_DETACHING) != 0);
365 ifvlan_flags_set_detaching(ifvlan_ref ifv)
367 ifv->ifv_flags |= IFVF_DETACHING;
390 static int vlan_unconfig(ifvlan_ref ifv, int need_to_wait);
393 static int vlan_remove(ifvlan_ref ifv, int need_to_wait);
404 static int ifvlan_new_mtu(ifvlan_ref ifv, int mtu);
410 ifvlan_retain(ifvlan_ref ifv)
412 if (ifv->ifv_signature != IFV_SIGNATURE) {
415 if (ifv->ifv_retain_count == 0) {
418 OSIncrementAtomic(&ifv->ifv_retain_count);
422 ifvlan_release(ifvlan_ref ifv)
426 if (ifv->ifv_signature != IFV_SIGNATURE) {
429 old_retain_count = OSDecrementAtomic(&ifv->ifv_retain_count);
436 printf("ifvlan_release(%s)\n", ifv->ifv_name);
438 ifv->ifv_signature = 0;
439 FREE(ifv, M_VLAN);
448 ifvlan_get_vlan_parent_retained(ifvlan_ref ifv)
450 vlan_parent_ref vlp = ifv->ifv_vlp;
466 ifvlan_ref ifv;
468 ifv = (ifvlan_ref)ifnet_softc(ifp);
469 return (ifv);
475 ifvlan_ref ifv;
477 ifv = ifnet_get_ifvlan(ifp);
478 if (ifv == NULL) {
481 if (ifvlan_flags_detaching(ifv)) {
484 ifvlan_retain(ifv);
485 return (ifv);
489 ifnet_ifvlan_vlan_parent_ok(struct ifnet * ifp, ifvlan_ref ifv,
495 if (check_ifv != ifv || ifvlan_flags_detaching(ifv)) {
499 if (ifv->ifv_vlp != vlp) {
701 ifvlan_ref ifv;
706 LIST_FOREACH(ifv, &vlp->vlp_vlan_list, ifv_vlan_list) {
707 struct ifnet * ifp = ifv->ifv_ifp;
739 ifvlan_ref ifv;
744 ifv = ifnet_get_ifvlan_retained(ifp);
745 if (ifv == NULL) {
748 vlp = ifvlan_get_vlan_parent_retained(ifv);
756 if (ifnet_ifvlan_vlan_parent_ok(ifp, ifv, vlp) == FALSE) {
763 error = multicast_list_program(&ifv->ifv_multicast, ifp, p);
772 if (ifv != NULL) {
773 ifvlan_release(ifv);
800 ifvlan_ref ifv;
802 LIST_FOREACH(ifv, &vlp->vlp_vlan_list, ifv_vlan_list) {
803 if (tag == ifv->ifv_tag) {
804 return (ifv);
826 ifvlan_ref ifv;
828 LIST_FOREACH(ifv, &vlp->vlp_vlan_list, ifv_vlan_list) {
831 if (exclude_ifv == ifv) {
834 req_mtu = ifnet_mtu(ifv->ifv_ifp) + ifv->ifv_mtufudge;
882 ifvlan_ref ifv;
904 for (ifv = LIST_FIRST(&vlp->vlp_vlan_list); ifv != NULL; ifv = next) {
905 struct ifnet * ifp = ifv->ifv_ifp;
908 next = LIST_NEXT(ifv, ifv_vlan_list);
909 removed = vlan_remove(ifv, FALSE);
941 vlan_parent_add_vlan(vlan_parent_ref vlp, ifvlan_ref ifv, int tag)
943 LIST_INSERT_HEAD(&vlp->vlp_vlan_list, ifv, ifv_vlan_list);
944 ifv->ifv_vlp = vlp;
945 ifv->ifv_tag = tag;
950 vlan_parent_remove_vlan(__unused vlan_parent_ref vlp, ifvlan_ref ifv)
952 ifv->ifv_vlp = NULL;
953 LIST_REMOVE(ifv, ifv_vlan_list);
973 ifvlan_ref ifv;
981 ifv = _MALLOC(sizeof(struct ifvlan), M_VLAN, M_WAITOK);
982 if (ifv == NULL)
984 bzero(ifv, sizeof(struct ifvlan));
985 ifv->ifv_retain_count = 1;
986 ifv->ifv_signature = IFV_SIGNATURE;
987 multicast_list_init(&ifv->ifv_multicast);
991 snprintf(ifv->ifv_name, sizeof(ifv->ifv_name), "%s%d",
992 ifc->ifc_name, unit) >= sizeof(ifv->ifv_name)) {
993 ifvlan_release(ifv);
1001 vlan_init.uniqueid = ifv->ifv_name;
1002 vlan_init.uniqueid_len = strlen(ifv->ifv_name);
1013 vlan_init.softc = ifv;
1022 ifvlan_release(ifv);
1034 ifvlan_release(ifv);
1037 ifv->ifv_ifp = ifp;
1045 vlan_remove(ifvlan_ref ifv, int need_to_wait)
1048 if (ifvlan_flags_detaching(ifv)) {
1051 ifvlan_flags_set_detaching(ifv);
1052 vlan_unconfig(ifv, need_to_wait);
1060 ifvlan_ref ifv;
1063 ifv = ifnet_get_ifvlan_retained(ifp);
1064 if (ifv == NULL) {
1068 if (vlan_remove(ifv, TRUE) == 0) {
1070 ifvlan_release(ifv);
1074 ifvlan_release(ifv);
1083 ifvlan_ref ifv;
1086 ifv = ifnet_get_ifvlan_retained(ifp);
1087 if (ifv == NULL) {
1093 ifv->ifv_bpf_input = ifv->ifv_bpf_output = NULL;
1097 ifv->ifv_bpf_input = func;
1101 ifv->ifv_bpf_output = func;
1105 ifv->ifv_bpf_input = ifv->ifv_bpf_output = func;
1111 ifvlan_release(ifv);
1121 ifvlan_ref ifv;
1137 ifv = ifnet_get_ifvlan_retained(ifp);
1138 if (ifv == NULL || ifvlan_flags_ready(ifv) == 0) {
1141 vlp = ifvlan_get_vlan_parent_retained(ifv);
1148 bpf_func = ifv->ifv_bpf_output;
1149 tag = ifv->ifv_tag;
1150 encaplen = ifv->ifv_encaplen;
1153 ifvlan_release(ifv);
1220 if (ifv != NULL) {
1221 ifvlan_release(ifv);
1281 ifvlan_ref ifv;
1289 ifv = vlan_lookup_parent_and_tag(p, tag);
1290 if (ifv != NULL) {
1291 ifp = ifv->ifv_ifp;
1293 if (ifv == NULL
1294 || ifvlan_flags_ready(ifv) == 0
1300 bpf_func = ifv->ifv_bpf_input;
1336 ifvlan_ref ifv = NULL;
1351 ifv = ifnet_get_ifvlan_retained(ifp);
1352 if (ifv == NULL || ifv->ifv_vlp != NULL) {
1354 if (ifv != NULL) {
1355 ifvlan_release(ifv);
1385 if (ifnet_get_ifvlan(ifp) != ifv) {
1397 || ifvlan_flags_detaching(ifv) || ifv->ifv_vlp != NULL) {
1412 vlan_parent_add_vlan(vlp, ifv, tag);
1413 ifvlan_retain(ifv); /* parent references ifv */
1440 error = multicast_list_program(&ifv->ifv_multicast, ifp, p);
1455 ifv->ifv_encaplen = ETHER_VLAN_ENCAP_LEN;
1456 ifv->ifv_flags = 0;
1458 ifv->ifv_mtufudge = 0;
1467 ifv->ifv_mtufudge = ifv->ifv_encaplen;
1469 ifnet_set_mtu(ifp, ETHERMTU - ifv->ifv_mtufudge);
1485 ifvlan_flags_set_ready(ifv);
1492 if (ifv != NULL) {
1493 ifvlan_release(ifv);
1506 vlan_parent_remove_vlan(vlp, ifv);
1529 if (ifv != NULL) {
1531 ifvlan_release(ifv);
1533 ifvlan_release(ifv);
1559 vlan_unconfig(ifvlan_ref ifv, int need_to_wait)
1561 struct ifnet * ifp = ifv->ifv_ifp;
1569 vlp = ifv->ifv_vlp;
1579 if (ifv != ifnet_get_ifvlan(ifp)) {
1582 if (ifv->ifv_vlp != vlp) {
1588 /* ifv has a reference on vlp, need to remove it */
1602 (void)ifvlan_new_mtu(ifv, ETHERMTU - ifv->ifv_mtufudge);
1607 (void)multicast_list_remove(&ifv->ifv_multicast);
1624 ifv->ifv_mtufudge = 0;
1627 vlan_parent_remove_vlan(vlp, ifv);
1628 ifv->ifv_flags = 0;
1630 /* vlan_parent has reference to ifv, remove it */
1633 /* from this point on, no more referencing ifv */
1652 ifvlan_release(ifv);
1665 ifvlan_ref ifv;
1669 ifv = ifnet_get_ifvlan_retained(ifp);
1670 if (ifv == NULL) {
1675 vlp = ifv->ifv_vlp;
1680 if (!ifvlan_flags_promisc(ifv)) {
1683 ifvlan_flags_set_promisc(ifv);
1687 if (ifvlan_flags_promisc(ifv)) {
1690 ifvlan_flags_clear_promisc(ifv);
1696 if (ifv != NULL) {
1697 ifvlan_release(ifv);
1703 ifvlan_new_mtu(ifvlan_ref ifv, int mtu)
1707 struct ifnet * ifp = ifv->ifv_ifp;
1714 vlp = ifv->ifv_vlp;
1716 req_mtu = mtu + ifv->ifv_mtufudge;
1720 max_mtu = vlan_parent_find_max_mtu(vlp, ifv);
1746 ifvlan_ref ifv;
1753 ifv = ifnet_get_ifvlan_retained(ifp);
1754 if (ifv == NULL) {
1758 vlp = ifvlan_get_vlan_parent_retained(ifv);
1761 ifvlan_release(ifv);
1770 if (ifnet_get_ifvlan(ifp) != ifv
1771 || ifvlan_flags_detaching(ifv)) {
1775 if (ifv->ifv_vlp != vlp) {
1785 error = ifvlan_new_mtu(ifv, mtu);
1791 ifvlan_release(ifv);
1804 ifvlan_ref ifv;
1825 ifv = (ifvlan_ref)ifnet_softc(ifp);
1826 if (ifv == NULL || ifvlan_flags_detaching(ifv)) {
1828 return (ifv == NULL ? EOPNOTSUPP : EBUSY);
1830 p = (ifv->ifv_vlp == NULL) ? NULL : ifv->ifv_vlp->vlp_ifp;
1871 ifv = (ifvlan_ref)ifnet_softc(ifp);
1872 if (ifv == NULL || ifvlan_flags_detaching(ifv)) {
1874 return (ifv == NULL ? EOPNOTSUPP : EBUSY);
1876 vlp = ifv->ifv_vlp;
1878 int min_mtu = vlp->vlp_devmtu.ifdm_min - ifv->ifv_mtufudge;
1882 devmtu_p->ifdm_max = vlp->vlp_devmtu.ifdm_max - ifv->ifv_mtufudge;
1940 ifv = (ifvlan_ref)ifnet_softc(ifp);
1941 if (ifv == NULL || ifvlan_flags_detaching(ifv)) {
1943 error = (ifv == NULL ? EOPNOTSUPP : EBUSY);
1946 need_link_event = vlan_remove(ifv, TRUE);
1957 ifv = (ifvlan_ref)ifnet_softc(ifp);
1958 if (ifv == NULL || ifvlan_flags_detaching(ifv)) {
1960 return (ifv == NULL ? EOPNOTSUPP : EBUSY);
1962 p = (ifv->ifv_vlp == NULL) ? NULL : ifv->ifv_vlp->vlp_ifp;
1963 tag = ifv->ifv_tag;
1996 ifvlan_ref ifv;
2001 ifv = (ifvlan_ref)ifnet_softc(ifp);
2002 if (ifv == NULL) {
2005 ifvlan_release(ifv);