Lines Matching defs:ifv

183 #define	TRUNK(ifv)	((ifv)->ifv_trunk)
184 #define PARENT(ifv) (TRUNK(ifv)->parent)
278 static int vlan_inshash(struct ifvlantrunk *trunk, struct ifvlan *ifv);
279 static int vlan_remhash(struct ifvlantrunk *trunk, struct ifvlan *ifv);
315 static int vlan_config(struct ifvlan *ifv, struct ifnet *p, uint16_t tag,
318 static void vlan_capabilities(struct ifvlan *ifv);
432 vlan_inshash(struct ifvlantrunk *trunk, struct ifvlan *ifv)
441 i = HASH(ifv->ifv_vid, trunk->hmask);
443 if (ifv->ifv_vid == ifv2->ifv_vid)
453 i = HASH(ifv->ifv_vid, trunk->hmask);
455 CK_SLIST_INSERT_HEAD(&trunk->hash[i], ifv, ifv_list);
462 vlan_remhash(struct ifvlantrunk *trunk, struct ifvlan *ifv)
471 i = HASH(ifv->ifv_vid, trunk->hmask);
473 if (ifv2 == ifv) {
491 struct ifvlan *ifv;
515 while ((ifv = CK_SLIST_FIRST(&trunk->hash[i])) != NULL) {
516 CK_SLIST_REMOVE(&trunk->hash[i], ifv, ifvlan, ifv_list);
517 j = HASH(ifv->ifv_vid, n2 - 1);
518 CK_SLIST_INSERT_HEAD(&hash2[j], ifv, ifv_list);
534 struct ifvlan *ifv;
538 CK_SLIST_FOREACH(ifv, &trunk->hash[HASH(vid, trunk->hmask)], ifv_list)
539 if (ifv->ifv_vid == vid)
540 return (ifv);
550 struct ifvlan *ifv;
554 CK_SLIST_FOREACH(ifv, &trunk->hash[i], ifv_list)
555 printf("%s ", ifv->ifv_ifp->if_xname);
570 vlan_inshash(struct ifvlantrunk *trunk, struct ifvlan *ifv)
573 if (trunk->vlans[ifv->ifv_vid] != NULL)
575 trunk->vlans[ifv->ifv_vid] = ifv;
582 vlan_remhash(struct ifvlantrunk *trunk, struct ifvlan *ifv)
585 trunk->vlans[ifv->ifv_vid] = NULL;
683 struct ifvlan *ifv;
697 VLAN_FOREACH(ifv, trunk) {
698 ifv->ifv_ifp->if_baudrate = ifp->if_baudrate;
713 struct ifvlan *ifv;
732 VLAN_FOREACH(ifv, trunk) {
740 ifv_ifp = ifv->ifv_ifp;
745 taskqueue_enqueue(taskqueue_thread, &ifv->lladdr_task);
761 struct ifvlan *ifv;
779 VLAN_FOREACH_UNTIL_SAFE(ifv, ifp->if_vlantrunk,
781 vlan_unconfig_locked(ifv->ifv_ifp, 1);
794 struct ifvlan *ifv;
801 ifv = ifp->if_softc;
803 if (ifv->ifv_trunk)
804 ifp = PARENT(ifv);
818 struct ifvlan *ifv;
822 ifv = ifp->if_softc;
823 *vidp = ifv->ifv_vid;
830 struct ifvlan *ifv;
834 ifv = ifp->if_softc;
835 *pcpp = ifv->ifv_pcp;
846 struct ifvlan *ifv;
850 ifv = ifp->if_softc;
851 return (ifv->ifv_cookie);
861 struct ifvlan *ifv;
865 ifv = ifp->if_softc;
866 ifv->ifv_cookie = cookie;
877 struct ifvlan *ifv;
885 ifv = vlan_gethash(trunk, vid);
886 if (ifv)
887 ifp = ifv->ifv_ifp;
1076 struct ifvlan *ifv;
1160 ifv = malloc(sizeof(struct ifvlan), M_VLAN, M_WAITOK | M_ZERO);
1161 ifp = ifv->ifv_ifp = if_alloc(IFT_ETHER);
1162 CK_SLIST_INIT(&ifv->vlan_mc_listhead);
1163 ifp->if_softc = ifv;
1199 error = vlan_config(ifv, p, vid, proto);
1212 free(ifv, M_VLAN);
1333 struct ifvlan *ifv = ifp->if_softc;
1334 error = vlan_config(ifv, ifp_parent, attrs.vlan_id, attrs.vlan_proto);
1358 struct ifvlan *ifv = ifp->if_softc;
1359 if (TRUNK(ifv) != NULL)
1360 parent_index = PARENT(ifv)->if_index;
1361 vlan_id = ifv->ifv_vid;
1362 vlan_proto = ifv->ifv_proto;
1384 struct ifvlan *ifv = ifp->if_softc;
1396 * We should have the only reference to the ifv now, so we can now
1400 taskqueue_drain(taskqueue_thread, &ifv->lladdr_task);
1403 free(ifv, M_VLAN);
1424 struct ifvlan *ifv;
1430 ifv = ifp->if_softc;
1431 if (TRUNK(ifv) == NULL) {
1436 p = PARENT(ifv);
1471 if (!ether_8021q_frame(&m, ifp, p, &ifv->ifv_qtag)) {
1493 struct ifvlan *ifv;
1501 ifv = ifp->if_softc;
1503 if (TRUNK(ifv) == NULL) {
1507 p = PARENT(ifv);
1508 ifv = p->if_softc;
1558 struct ifvlan *ifv;
1617 ifv = vlan_gethash(trunk, vid);
1618 if (ifv == NULL || !UP_AND_RUNNING(ifv->ifv_ifp)) {
1646 m->m_pkthdr.rcvif = ifv->ifv_ifp;
1647 if_inc_counter(ifv->ifv_ifp, IFCOUNTER_IPACKETS, 1);
1650 (*ifv->ifv_ifp->if_input)(ifv->ifv_ifp, m);
1656 struct ifvlan *ifv;
1659 ifv = (struct ifvlan *)arg;
1660 ifp = ifv->ifv_ifp;
1671 vlan_config(struct ifvlan *ifv, struct ifnet *p, uint16_t vid,
1696 if (ifv->ifv_trunk) {
1697 trunk = ifv->ifv_trunk;
1703 ifv->ifv_proto = proto;
1705 if (ifv->ifv_vid != vid) {
1706 int oldvid = ifv->ifv_vid;
1709 vlan_remhash(trunk, ifv);
1710 ifv->ifv_vid = vid;
1711 error = vlan_inshash(trunk, ifv);
1715 ifv->ifv_vid = oldvid;
1717 ret = vlan_inshash(trunk, ifv);
1740 ifv->ifv_vid = vid; /* must set this before vlan_inshash() */
1741 ifv->ifv_pcp = 0; /* Default: best effort delivery. */
1742 error = vlan_inshash(trunk, ifv);
1745 ifv->ifv_proto = proto;
1746 ifv->ifv_encaplen = ETHER_VLAN_ENCAP_LEN;
1747 ifv->ifv_mintu = ETHERMIN;
1748 ifv->ifv_pflags = 0;
1749 ifv->ifv_capenable = -1;
1750 ifv->ifv_capenable2 = -1;
1762 ifv->ifv_mtufudge = 0;
1771 ifv->ifv_mtufudge = ifv->ifv_encaplen;
1774 ifv->ifv_trunk = trunk;
1775 ifp = ifv->ifv_ifp;
1781 ifp->if_mtu = p->if_mtu - ifv->ifv_mtufudge;
1787 ifp->if_pcp = ifv->ifv_pcp;
1807 vlan_capabilities(ifv);
1814 TASK_INIT(&ifv->lladdr_task, 0, vlan_lladdr_fn, ifv);
1825 taskqueue_enqueue(taskqueue_thread, &ifv->lladdr_task);
1842 EVENTHANDLER_INVOKE(vlan_config, p, ifv->ifv_vid);
1862 struct ifvlan *ifv;
1868 ifv = ifp->if_softc;
1869 trunk = ifv->ifv_trunk;
1880 while ((mc = CK_SLIST_FIRST(&ifv->vlan_mc_listhead)) != NULL) {
1897 CK_SLIST_REMOVE_HEAD(&ifv->vlan_mc_listhead, mc_entries);
1903 vlan_remhash(trunk, ifv);
1904 ifv->ifv_trunk = NULL;
1917 if (ifv->ifv_pflags)
1929 EVENTHANDLER_INVOKE(vlan_unconfig, parent, ifv->ifv_vid);
1937 struct ifvlan *ifv;
1942 ifv = ifp->if_softc;
1955 if (status != (ifv->ifv_pflags & flag)) {
1956 error = (*func)(PARENT(ifv), status);
1959 ifv->ifv_pflags &= ~flag;
1960 ifv->ifv_pflags |= status;
1990 struct ifvlan *ifv;
2000 VLAN_FOREACH(ifv, trunk) {
2001 ifv->ifv_ifp->if_baudrate = trunk->parent->if_baudrate;
2002 if_link_state_change(ifv->ifv_ifp,
2012 struct ifvlan *ifv; \
2015 ifv = ifp->if_softc; \
2017 if (TRUNK(ifv) != NULL) { \
2018 p = PARENT(ifv); \
2086 vlan_capabilities(struct ifvlan *ifv)
2098 p = PARENT(ifv);
2099 ifp = ifv->ifv_ifp;
2102 mena = p->if_capenable & ifv->ifv_capenable;
2103 mena2 = p->if_capenable2 & ifv->ifv_capenable2;
2225 struct ifvlan *ifv;
2234 VLAN_FOREACH(ifv, trunk)
2235 vlan_capabilities(ifv);
2248 struct ifvlan *ifv;
2257 ifv = ifp->if_softc;
2273 if (TRUNK(ifv) != NULL) {
2274 p = PARENT(ifv);
2305 trunk = TRUNK(ifv);
2309 (PARENT(ifv)->if_mtu - ifv->ifv_mtufudge) ||
2311 (ifv->ifv_mintu - ifv->ifv_mtufudge))
2350 error = vlan_config(ifv, p, vlr.vlr_tag, vlr.vlr_proto);
2370 if (TRUNK(ifv) != NULL) {
2371 strlcpy(vlr.vlr_parent, PARENT(ifv)->if_xname,
2373 vlr.vlr_tag = ifv->ifv_vid;
2374 vlr.vlr_proto = ifv->ifv_proto;
2386 if (TRUNK(ifv) != NULL)
2401 trunk = TRUNK(ifv);
2414 ifr->ifr_vlan_pcp = ifv->ifv_pcp;
2431 ifv->ifv_pcp = ifr->ifr_vlan_pcp;
2432 ifp->if_pcp = ifv->ifv_pcp;
2439 ifv->ifv_capenable = ifr->ifr_reqcap;
2440 trunk = TRUNK(ifv);
2445 vlan_capabilities(ifv);
2468 struct ifvlan *ifv;
2474 ifv = ifp->if_softc;
2493 params->tls_rx.vlan_id = ifv->ifv_vid;
2505 if (ifv->ifv_trunk != NULL)
2506 parent = PARENT(ifv);