Lines Matching refs:na

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