• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/dev/netmap/

Lines Matching refs:na

185 nm_free_bdgfwd(struct netmap_adapter *na)
191 nrings = na->num_tx_rings;
192 kring = na->tx_rings;
206 nm_alloc_bdgfwd(struct netmap_adapter *na)
218 nrings = netmap_real_rings(na, NR_TX);
219 kring = na->tx_rings;
227 nm_free_bdgfwd(na);
398 struct netmap_adapter *na = NULL;
420 error = netmap_get_vale_na(hdr, &na, nmd, 0);
421 if (na) {
425 error = netmap_get_vale_na(hdr, &na,
431 if (na == NULL) { /* VALE prefix missing */
436 if (NETMAP_OWNED_BY_ANY(na)) {
441 if (na->nm_bdg_ctl) {
445 error = na->nm_bdg_ctl(hdr, na);
448 nm_prdis("registered %s to netmap-mode", na->name);
450 vpna = (struct netmap_vp_adapter *)na;
460 netmap_adapter_put(na);
476 struct netmap_adapter *na;
488 error = netmap_get_vale_na(hdr, &na, NULL, 0 /* don't create */);
493 if (na == NULL) { /* VALE prefix missing */
496 } else if (nm_is_bwrap(na) &&
497 ((struct netmap_bwrap_adapter *)na)->na_polling_state) {
503 vpna = (struct netmap_vp_adapter *)na;
504 if (na->na_vp != vpna) {
513 if (na->nm_bdg_ctl) {
517 error = na->nm_bdg_ctl(hdr, na);
521 netmap_adapter_put(na);
531 netmap_vale_vp_dtor(struct netmap_adapter *na)
533 struct netmap_vp_adapter *vpna = (struct netmap_vp_adapter*)na;
536 nm_prdis("%s has %d references", na->name, na->na_refcount);
542 if (na->ifp != NULL && !nm_iszombie(na)) {
543 NM_DETACH_NA(na->ifp);
545 nm_prdis("releasing %s", na->ifp->if_xname);
547 nm_os_vi_detach(na->ifp);
560 netmap_vale_vp_krings_create(struct netmap_adapter *na)
565 u_int nrx = netmap_real_rings(na, NR_RX);
570 tailroom = sizeof(uint32_t) * na->num_rx_desc * nrx;
572 error = netmap_krings_create(na, tailroom);
576 leases = na->tailroom;
579 na->rx_rings[i]->nkr_leases = leases;
580 leases += na->num_rx_desc;
583 error = nm_alloc_bdgfwd(na);
585 netmap_krings_delete(na);
595 netmap_vale_vp_krings_delete(struct netmap_adapter *na)
597 nm_free_bdgfwd(na);
598 netmap_krings_delete(na);
604 struct netmap_vp_adapter *na, u_int ring_nr);
617 struct netmap_vp_adapter *na =
618 (struct netmap_vp_adapter*)kring->na;
625 struct nm_bridge *b = na->na_bdg;
632 if (na->up.na_flags & NAF_BDG_MAYSLEEP)
654 (void *)(uintptr_t)slot->ptr : NMB(&na->up, slot);
659 buf = ft[ft_i].ft_buf = NETMAP_BUF_BASE(&na->up);
674 ft_i = nm_vale_flush(ft, ft_i, na, ring_nr);
685 ft_i = nm_vale_flush(ft, ft_i, na, ring_nr);
741 struct netmap_vp_adapter *na, void *private_data)
747 u_int dst, mysrc = na->bdg_port;
770 if (((buf[6] & 1) == 0) && (na->last_smac != smac)) { /* valid src */
774 na->last_smac = ht[sh].mac = smac; /* XXX expire ? */
859 k->na->name,
873 nm_vale_flush(struct nm_bdg_fwd *ft, u_int n, struct netmap_vp_adapter *na,
878 struct nm_bridge *b = na->na_bdg;
879 u_int i, me = na->bdg_port;
899 if (na->up.virt_hdr_len < ft[i].ft_len) {
900 ft[i].ft_offset = na->up.virt_hdr_len;
902 } else if (na->up.virt_hdr_len == ft[i].ft_len && ft[i].ft_flags & NS_MOREFRAG) {
911 dst_port = b->bdg_ops.lookup(start_ft, &dst_ring, na, b->private_data);
988 * - when na is attached but not activated yet;
989 * - when na is being deactivated but is still attached.
1008 if (unlikely(dst_na->up.virt_hdr_len != na->up.virt_hdr_len)) {
1010 nm_prlim(3, "virt_hdr_mismatch, src %d dst %d", na->up.virt_hdr_len,
1018 if (dst_na->mfs < na->mfs) {
1023 * needed * na->mfs + x * H <= x * na->mfs
1030 needed = (needed * na->mfs) /
1032 nm_prdis(3, "srcmtu=%u, dstmtu=%u, x=%u", na->mfs, dst_na->mfs, needed);
1105 bdg_mismatch_datapath(na, dst_na, ft_p, ring, &j, lim, &howmany);
1122 copy_len > NETMAP_BUF_SIZE(&na->up))) {
1223 struct netmap_vp_adapter *na =
1224 (struct netmap_vp_adapter *)kring->na;
1233 if (!na->na_bdg) {
1250 nm_prinf("%s ring %d flags %d", na->up.name, kring->ring_id, flags);
1264 struct netmap_adapter *na;
1277 na = &vpna->up;
1279 na->ifp = ifp;
1280 strlcpy(na->name, hdr->nr_name, sizeof(na->name));
1283 na->num_tx_rings = req->nr_tx_rings;
1284 nm_bound_var(&na->num_tx_rings, 1, 1, NM_BDG_MAXRINGS, NULL);
1285 req->nr_tx_rings = na->num_tx_rings; /* write back */
1286 na->num_rx_rings = req->nr_rx_rings;
1287 nm_bound_var(&na->num_rx_rings, 1, 1, NM_BDG_MAXRINGS, NULL);
1288 req->nr_rx_rings = na->num_rx_rings; /* write back */
1291 na->num_tx_desc = req->nr_tx_slots;
1304 na->num_rx_desc = req->nr_rx_slots;
1315 na->na_flags |= NAF_BDG_MAYSLEEP;
1320 na->na_flags |= NAF_NATIVE;
1321 na->nm_txsync = netmap_vale_vp_txsync;
1322 na->nm_rxsync = netmap_vp_rxsync; /* use the one provided by bdg */
1323 na->nm_register = netmap_vp_reg; /* use the one provided by bdg */
1324 na->nm_krings_create = netmap_vale_vp_krings_create;
1325 na->nm_krings_delete = netmap_vale_vp_krings_delete;
1326 na->nm_dtor = netmap_vale_vp_dtor;
1328 na->nm_mem = nmd ?
1331 na->num_tx_rings, na->num_tx_desc,
1332 na->num_rx_rings, na->num_rx_desc,
1334 if (na->nm_mem == NULL)
1336 na->nm_bdg_attach = netmap_vale_vp_bdg_attach;
1338 error = netmap_attach_common(na);
1345 if (na->nm_mem != NULL)
1346 netmap_mem_put(na->nm_mem);
1355 netmap_vale_vp_bdg_attach(const char *name, struct netmap_adapter *na,
1358 struct netmap_vp_adapter *vpna = (struct netmap_vp_adapter *)na;
1363 na->na_vp = vpna;
1364 strlcpy(na->name, name, sizeof(na->name));
1365 na->na_hostvp = NULL;
1370 netmap_vale_bwrap_krings_create(struct netmap_adapter *na)
1375 error = netmap_vale_vp_krings_create(na);
1378 error = netmap_bwrap_krings_create_common(na);
1380 netmap_vale_vp_krings_delete(na);
1386 netmap_vale_bwrap_krings_delete(struct netmap_adapter *na)
1388 netmap_bwrap_krings_delete_common(na);
1389 netmap_vale_vp_krings_delete(na);
1396 struct netmap_adapter *na = NULL;
1404 na = &bna->up.up;
1405 strlcpy(na->name, nr_name, sizeof(na->name));
1406 na->nm_register = netmap_bwrap_reg;
1407 na->nm_txsync = netmap_vale_vp_txsync;
1408 // na->nm_rxsync = netmap_bwrap_rxsync;
1409 na->nm_krings_create = netmap_vale_bwrap_krings_create;
1410 na->nm_krings_delete = netmap_vale_bwrap_krings_delete;
1411 na->nm_notify = netmap_bwrap_notify;
1422 error = netmap_bwrap_attach_common(na, hwna);
1430 netmap_get_vale_na(struct nmreq_header *hdr, struct netmap_adapter **na,
1433 return netmap_get_bdg_na(hdr, na, nmd, create, &vale_bdg_ops);
1519 nm_update_info(struct nmreq_register *req, struct netmap_adapter *na)
1521 req->nr_rx_rings = na->num_rx_rings;
1522 req->nr_tx_rings = na->num_tx_rings;
1523 req->nr_rx_slots = na->num_rx_desc;
1524 req->nr_tx_slots = na->num_tx_desc;
1525 return netmap_mem_get_info(na->nm_mem, &req->nr_memsize, NULL,