Lines Matching full:na
298 lookup NA(ifp)->bdg_port and SWNA(ifp)->bdg_port in netmap_bdg_detach_common()
350 netmap_vp_bdg_ctl(struct nmreq_header *hdr, struct netmap_adapter *na) in netmap_vp_bdg_ctl() argument
352 struct netmap_vp_adapter *vpna = (struct netmap_vp_adapter *)na; in netmap_vp_bdg_ctl()
359 netmap_set_all_rings(na, 0 /* disable */); in netmap_vp_bdg_ctl()
362 netmap_set_all_rings(na, 1 /* enable */); in netmap_vp_bdg_ctl()
365 netmap_adapter_put(na); in netmap_vp_bdg_ctl()
370 netmap_default_bdg_attach(const char *name, struct netmap_adapter *na, in netmap_default_bdg_attach() argument
378 * non NULL pointer is returned into *na, and the caller holds a
383 * (*na != NULL && return == 0).
386 netmap_get_bdg_na(struct nmreq_header *hdr, struct netmap_adapter **na, in netmap_get_bdg_na() argument
399 *na = NULL; /* default return value */ in netmap_get_bdg_na()
430 *na = &vpna->up; in netmap_get_bdg_na()
531 *na = &vpna->up; in netmap_get_bdg_na()
532 netmap_adapter_get(*na); in netmap_get_bdg_na()
549 struct netmap_adapter *na = NULL; in netmap_bdg_attach() local
571 error = netmap_get_vale_na(hdr, &na, nmd, 0); in netmap_bdg_attach()
572 if (na) { in netmap_bdg_attach()
576 error = netmap_get_vale_na(hdr, &na, in netmap_bdg_attach()
582 if (na == NULL) { /* VALE prefix missing */ in netmap_bdg_attach()
587 if (NETMAP_OWNED_BY_ANY(na)) { in netmap_bdg_attach()
592 if (na->nm_bdg_ctl) { in netmap_bdg_attach()
596 error = na->nm_bdg_ctl(hdr, na); in netmap_bdg_attach()
599 nm_prdis("registered %s to netmap-mode", na->name); in netmap_bdg_attach()
601 vpna = (struct netmap_vp_adapter *)na; in netmap_bdg_attach()
611 netmap_adapter_put(na); in netmap_bdg_attach()
622 nm_is_bwrap(struct netmap_adapter *na) in nm_is_bwrap() argument
624 return na->nm_register == netmap_bwrap_reg; in nm_is_bwrap()
645 struct netmap_adapter *na; in netmap_bdg_detach_locked() local
656 error = netmap_get_vale_na(hdr, &na, NULL, 0 /* don't create */); in netmap_bdg_detach_locked()
661 if (na == NULL) { /* VALE prefix missing */ in netmap_bdg_detach_locked()
664 } else if (nm_is_bwrap(na) && in netmap_bdg_detach_locked()
665 ((struct netmap_bwrap_adapter *)na)->na_polling_state) { in netmap_bdg_detach_locked()
671 vpna = (struct netmap_vp_adapter *)na; in netmap_bdg_detach_locked()
672 if (na->na_vp != vpna) { in netmap_bdg_detach_locked()
681 if (na->nm_bdg_ctl) { in netmap_bdg_detach_locked()
685 error = na->nm_bdg_ctl(hdr, na); in netmap_bdg_detach_locked()
689 netmap_adapter_put(na); in netmap_bdg_detach_locked()
830 get_polling_cfg(struct nmreq_vale_polling *req, struct netmap_adapter *na, in get_polling_cfg() argument
853 if (i + req_cpus > nma_get_nrings(na, NR_RX)) { in get_polling_cfg()
855 i, i + req_cpus, nma_get_nrings(na, NR_RX)); in get_polling_cfg()
871 qlast = nma_get_nrings(na, NR_RX); in get_polling_cfg()
891 nm_bdg_ctl_polling_start(struct nmreq_vale_polling *req, struct netmap_adapter *na) in nm_bdg_ctl_polling_start() argument
897 bna = (struct netmap_bwrap_adapter *)na; in nm_bdg_ctl_polling_start()
909 if (get_polling_cfg(req, na, bps)) { in nm_bdg_ctl_polling_start()
938 nm_bdg_ctl_polling_stop(struct netmap_adapter *na) in nm_bdg_ctl_polling_stop() argument
940 struct netmap_bwrap_adapter *bna = (struct netmap_bwrap_adapter *)na; in nm_bdg_ctl_polling_stop()
962 struct netmap_adapter *na = NULL; in nm_bdg_polling() local
966 error = netmap_get_vale_na(hdr, &na, NULL, /*create=*/0); in nm_bdg_polling()
967 if (na && !error) { in nm_bdg_polling()
968 if (!nm_is_bwrap(na)) { in nm_bdg_polling()
971 error = nm_bdg_ctl_polling_start(req, na); in nm_bdg_polling()
973 netmap_adapter_get(na); in nm_bdg_polling()
975 error = nm_bdg_ctl_polling_stop(na); in nm_bdg_polling()
977 netmap_adapter_put(na); in nm_bdg_polling()
979 netmap_adapter_put(na); in nm_bdg_polling()
980 } else if (!na && !error) { in nm_bdg_polling()
1064 netmap_vp_reg(struct netmap_adapter *na, int onoff) in netmap_vp_reg() argument
1067 (struct netmap_vp_adapter*)na; in netmap_vp_reg()
1075 netmap_krings_mode_commit(na, onoff); in netmap_vp_reg()
1076 if (na->active_fds == 0) in netmap_vp_reg()
1077 na->na_flags |= NAF_NETMAP_ON; in netmap_vp_reg()
1079 * toggle IFCAP_NETMAP in na->ifp (2014-03-16) in netmap_vp_reg()
1082 if (na->active_fds == 0) in netmap_vp_reg()
1083 na->na_flags &= ~NAF_NETMAP_ON; in netmap_vp_reg()
1084 netmap_krings_mode_commit(na, onoff); in netmap_vp_reg()
1098 struct netmap_adapter *na = kring->na; in netmap_vp_rxsync_locked() local
1119 void *addr = NMB(na, slot); in netmap_vp_rxsync_locked()
1121 if (addr == NETMAP_BUF_BASE(kring->na)) { /* bad buf */ in netmap_vp_rxsync_locked()
1194 netmap_bwrap_dtor(struct netmap_adapter *na) in netmap_bwrap_dtor() argument
1196 struct netmap_bwrap_adapter *bna = (struct netmap_bwrap_adapter*)na; in netmap_bwrap_dtor()
1209 nm_prdis("na %p", na); in netmap_bwrap_dtor()
1210 na->ifp = NULL; in netmap_bwrap_dtor()
1243 struct netmap_adapter *na = kring->na; in netmap_bwrap_intr_notify() local
1244 struct netmap_bwrap_adapter *bna = na->na_private; in netmap_bwrap_intr_notify()
1252 nm_prinf("%s %s 0x%x", na->name, kring->name, flags); in netmap_bwrap_intr_notify()
1262 nm_prinf("%s head %d cur %d tail %d", na->name, in netmap_bwrap_intr_notify()
1305 netmap_bwrap_reg(struct netmap_adapter *na, int onoff) in netmap_bwrap_reg() argument
1308 (struct netmap_bwrap_adapter *)na; in netmap_bwrap_reg()
1314 nm_prdis("%s %s", na->name, onoff ? "on" : "off"); in netmap_bwrap_reg()
1317 /* netmap_do_regif has been called on the bwrap na. in netmap_bwrap_reg()
1322 hwna->na_lut = na->na_lut; in netmap_bwrap_reg()
1329 hostna->up.na_lut = na->na_lut; in netmap_bwrap_reg()
1336 for (i = 0; i < netmap_all_rings(na, t); i++) { in netmap_bwrap_reg()
1338 NMR(na, t)[i]->nr_pending_mode; in netmap_bwrap_reg()
1349 for (i = 0; i < netmap_all_rings(na, t); i++) { in netmap_bwrap_reg()
1351 NMR(na, t)[i]->nr_mode = kring->nr_mode; in netmap_bwrap_reg() local
1356 netmap_vp_reg(na, onoff); in netmap_bwrap_reg()
1376 na->tx_rings[i]->nm_sync = na->nm_txsync; in netmap_bwrap_reg()
1379 if (na->active_fds == 0) in netmap_bwrap_reg()
1380 na->na_flags |= NAF_NETMAP_ON; in netmap_bwrap_reg()
1384 if (na->active_fds == 0) in netmap_bwrap_reg()
1385 na->na_flags &= ~NAF_NETMAP_ON; in netmap_bwrap_reg()
1410 netmap_bwrap_config(struct netmap_adapter *na, struct nm_config_info *info) in netmap_bwrap_config() argument
1413 (struct netmap_bwrap_adapter *)na; in netmap_bwrap_config()
1436 if (na->na_flags & NAF_HOST_RINGS) { in netmap_bwrap_config()
1441 if (na->na_flags & NAF_HOST_ALL) { in netmap_bwrap_config()
1454 nma_set_host_nrings(na, t, nr); in netmap_bwrap_config()
1469 struct netmap_adapter *na = kring->na; in netmap_bwrap_bufcfg() local
1471 (struct netmap_bwrap_adapter *)na; in netmap_bwrap_bufcfg()
1502 netmap_bwrap_krings_create_common(struct netmap_adapter *na) in netmap_bwrap_krings_create_common() argument
1505 (struct netmap_bwrap_adapter *)na; in netmap_bwrap_krings_create_common()
1523 NMR(na, t)[i]->nr_kflags |= NKR_NEEDRING; in netmap_bwrap_krings_create_common() local
1540 NMR(na, t)[i]->nkr_num_slots = NMR(hwna, r)[i]->nkr_num_slots; in netmap_bwrap_krings_create_common() local
1541 NMR(na, t)[i]->ring = NMR(hwna, r)[i]->ring; in netmap_bwrap_krings_create_common() local
1545 if (na->na_flags & NAF_HOST_RINGS) { in netmap_bwrap_krings_create_common()
1550 hostna->tx_rings = &na->tx_rings[na->num_tx_rings]; in netmap_bwrap_krings_create_common()
1551 hostna->rx_rings = &na->rx_rings[na->num_rx_rings]; in netmap_bwrap_krings_create_common()
1554 NMR(hostna, t)[i]->na = hostna; in netmap_bwrap_krings_create_common()
1565 NMR(na, t)[i]->users--; in netmap_bwrap_krings_create_common() local
1574 netmap_bwrap_krings_delete_common(struct netmap_adapter *na) in netmap_bwrap_krings_delete_common() argument
1577 (struct netmap_bwrap_adapter *)na; in netmap_bwrap_krings_delete_common()
1582 nm_prdis("%s", na->name); in netmap_bwrap_krings_delete_common()
1588 NMR(na, t)[i]->users--; in netmap_bwrap_krings_delete_common() local
1602 struct netmap_adapter *na = kring->na; in netmap_bwrap_notify() local
1603 struct netmap_bwrap_adapter *bna = na->na_private; in netmap_bwrap_notify()
1610 nm_prdis("%s: na %s hwna %s", in netmap_bwrap_notify()
1612 (na ? na->name : "NULL!"), in netmap_bwrap_notify()
1623 na->name, ring_n, in netmap_bwrap_notify()
1642 na->name, ring_n, in netmap_bwrap_notify()
1662 netmap_bwrap_bdg_ctl(struct nmreq_header *hdr, struct netmap_adapter *na) in netmap_bwrap_bdg_ctl() argument
1665 struct netmap_bwrap_adapter *bna = (struct netmap_bwrap_adapter*)na; in netmap_bwrap_bdg_ctl()
1678 if (NETMAP_OWNED_BY_ANY(na)) { in netmap_bwrap_bdg_ctl()
1688 npriv->np_ifp = na->ifp; /* let the priv destructor release the ref */ in netmap_bwrap_bdg_ctl()
1689 error = netmap_do_regif(npriv, na, hdr); in netmap_bwrap_bdg_ctl()
1696 na->na_flags |= NAF_BUSY; in netmap_bwrap_bdg_ctl()
1698 if (na->active_fds == 0) /* not registered */ in netmap_bwrap_bdg_ctl()
1702 na->na_flags &= ~NAF_BUSY; in netmap_bwrap_bdg_ctl()
1711 netmap_bwrap_attach_common(struct netmap_adapter *na, in netmap_bwrap_attach_common() argument
1725 bna = (struct netmap_bwrap_adapter *)na; in netmap_bwrap_attach_common()
1727 na->ifp = hwna->ifp; in netmap_bwrap_attach_common()
1728 if_ref(na->ifp); in netmap_bwrap_attach_common()
1729 na->na_private = bna; in netmap_bwrap_attach_common()
1736 nma_set_nrings(na, t, nma_get_nrings(hwna, r)); in netmap_bwrap_attach_common()
1737 nma_set_ndesc(na, t, nma_get_ndesc(hwna, r)); in netmap_bwrap_attach_common()
1739 na->nm_dtor = netmap_bwrap_dtor; in netmap_bwrap_attach_common()
1740 na->nm_config = netmap_bwrap_config; in netmap_bwrap_attach_common()
1741 na->nm_bufcfg = netmap_bwrap_bufcfg; in netmap_bwrap_attach_common()
1742 na->nm_bdg_ctl = netmap_bwrap_bdg_ctl; in netmap_bwrap_attach_common()
1743 na->pdev = hwna->pdev; in netmap_bwrap_attach_common()
1744 na->nm_mem = netmap_mem_get(hwna->nm_mem); in netmap_bwrap_attach_common()
1745 na->virt_hdr_len = hwna->virt_hdr_len; in netmap_bwrap_attach_common()
1746 na->rx_buf_maxsize = hwna->rx_buf_maxsize; in netmap_bwrap_attach_common()
1757 na->na_flags |= NAF_SW_ONLY; in netmap_bwrap_attach_common()
1758 na->na_flags |= NAF_HOST_RINGS; in netmap_bwrap_attach_common()
1761 snprintf(hostna->name, sizeof(hostna->name), "%s^", na->name); in netmap_bwrap_attach_common()
1765 hostna->nm_mem = netmap_mem_get(na->nm_mem); in netmap_bwrap_attach_common()
1768 na->na_hostvp = hwna->na_hostvp = in netmap_bwrap_attach_common()
1775 na->na_flags |= NAF_MOREFRAG; in netmap_bwrap_attach_common()
1778 na->name, if_name(ifp), in netmap_bwrap_attach_common()
1779 na->num_tx_rings, na->num_tx_desc, in netmap_bwrap_attach_common()
1780 na->num_rx_rings, na->num_rx_desc); in netmap_bwrap_attach_common()
1782 error = netmap_attach_common(na); in netmap_bwrap_attach_common()