Lines Matching full:na
104 #define MBUF_TRANSMIT(na, ifp, m) ((na)->if_transmit(ifp, m)) argument
145 #define MBUF_TRANSMIT(na, ifp, m) \ argument
149 (((struct net_device_ops *)(na)->if_transmit)->ndo_start_xmit(m, ifp)); \
473 struct netmap_adapter *na; member
721 * NA(ifp) points here, and the first entry (which hopefully
935 nma_get_ndesc(struct netmap_adapter *na, enum txrx t) in nma_get_ndesc() argument
937 return (t == NR_TX ? na->num_tx_desc : na->num_rx_desc); in nma_get_ndesc()
941 nma_set_ndesc(struct netmap_adapter *na, enum txrx t, u_int v) in nma_set_ndesc() argument
944 na->num_tx_desc = v; in nma_set_ndesc()
946 na->num_rx_desc = v; in nma_set_ndesc()
950 nma_get_nrings(struct netmap_adapter *na, enum txrx t) in nma_get_nrings() argument
952 return (t == NR_TX ? na->num_tx_rings : na->num_rx_rings); in nma_get_nrings()
956 nma_get_host_nrings(struct netmap_adapter *na, enum txrx t) in nma_get_host_nrings() argument
958 return (t == NR_TX ? na->num_host_tx_rings : na->num_host_rx_rings); in nma_get_host_nrings()
962 nma_set_nrings(struct netmap_adapter *na, enum txrx t, u_int v) in nma_set_nrings() argument
965 na->num_tx_rings = v; in nma_set_nrings()
967 na->num_rx_rings = v; in nma_set_nrings()
971 nma_set_host_nrings(struct netmap_adapter *na, enum txrx t, u_int v) in nma_set_host_nrings() argument
974 na->num_host_tx_rings = v; in nma_set_host_nrings()
976 na->num_host_rx_rings = v; in nma_set_host_nrings()
980 NMR(struct netmap_adapter *na, enum txrx t) in NMR() argument
982 return (t == NR_TX ? na->tx_rings : na->rx_rings); in NMR()
985 int nma_intr_enable(struct netmap_adapter *na, int onoff);
993 #define NETMAP_OWNED_BY_KERN(na) ((na)->na_flags & NAF_BUSY) argument
994 #define NETMAP_OWNED_BY_ANY(na) \ argument
995 (NETMAP_OWNED_BY_KERN(na) || ((na)->active_fds > 0))
1007 * na_bdg points to the bridge this NA is attached to.
1066 netmap_real_rings(struct netmap_adapter *na, enum txrx t) in netmap_real_rings() argument
1068 return nma_get_nrings(na, t) + in netmap_real_rings()
1069 !!(na->na_flags & NAF_HOST_RINGS) * nma_get_host_nrings(na, t); in netmap_real_rings()
1074 netmap_all_rings(struct netmap_adapter *na, enum txrx t) in netmap_all_rings() argument
1076 return max(nma_get_nrings(na, t) + 1, netmap_real_rings(na, t)); in netmap_all_rings()
1079 int netmap_default_bdg_attach(const char *name, struct netmap_adapter *na,
1146 int nm_is_bwrap(struct netmap_adapter *na);
1244 static inline int nm_iszombie(struct netmap_adapter *na);
1280 if (unlikely(nm_iszombie(kr->na))) { in nm_kr_tryget()
1350 struct netmap_slot *netmap_reset(struct netmap_adapter *na,
1380 #define netmap_ifp_to_vp(_ifp) (NA(_ifp)->na_vp)
1381 #define netmap_ifp_to_host_vp(_ifp) (NA(_ifp)->na_hostvp)
1392 nm_netmap_on(struct netmap_adapter *na) in nm_netmap_on() argument
1394 return na && na->na_flags & NAF_NETMAP_ON; in nm_netmap_on()
1398 nm_native_on(struct netmap_adapter *na) in nm_native_on() argument
1400 return nm_netmap_on(na) && (na->na_flags & NAF_NATIVE); in nm_native_on()
1404 netmap_kring_on(struct netmap_adapter *na, u_int q, enum txrx t) in netmap_kring_on() argument
1408 if (!nm_native_on(na)) in netmap_kring_on()
1411 if (t == NR_RX && q < na->num_rx_rings) in netmap_kring_on()
1412 kring = na->rx_rings[q]; in netmap_kring_on()
1413 else if (t == NR_TX && q < na->num_tx_rings) in netmap_kring_on()
1414 kring = na->tx_rings[q]; in netmap_kring_on()
1422 nm_iszombie(struct netmap_adapter *na) in nm_iszombie() argument
1424 return na == NULL || (na->na_flags & NAF_ZOMBIE); in nm_iszombie()
1430 void netmap_krings_mode_commit(struct netmap_adapter *na, int onoff);
1487 * - if the na points to an ifp, mark the ifp as netmap capable
1488 * using na as its native adapter;
1499 int netmap_update_config(struct netmap_adapter *na);
1501 * using the information that must be already available in the na.
1507 int netmap_krings_create(struct netmap_adapter *na, u_int tailroom);
1511 void netmap_krings_delete(struct netmap_adapter *na);
1513 int netmap_hw_krings_create(struct netmap_adapter *na);
1514 void netmap_hw_krings_delete(struct netmap_adapter *na);
1518 * terminate. The status change is then notified using the na nm_notify
1528 int netmap_buf_size_validate(const struct netmap_adapter *na, unsigned mtu);
1529 int netmap_do_regif(struct netmap_priv_d *priv, struct netmap_adapter *na,
1534 int netmap_get_na(struct nmreq_header *hdr, struct netmap_adapter **na,
1536 void netmap_unget_na(struct netmap_adapter *na, if_t ifp);
1538 struct netmap_mem_d *nmd, struct netmap_adapter **na);
1539 void netmap_mem_restore(struct netmap_adapter *na);
1546 int netmap_get_vale_na(struct nmreq_header *hdr, struct netmap_adapter **na,
1565 int netmap_get_pipe_na(struct nmreq_header *hdr, struct netmap_adapter **na,
1576 int netmap_get_monitor_na(struct nmreq_header *hdr, struct netmap_adapter **na,
1578 void netmap_monitor_stop(struct netmap_adapter *na);
1585 int netmap_get_null_na(struct nmreq_header *hdr, struct netmap_adapter **na,
1625 void __netmap_adapter_get(struct netmap_adapter *na);
1627 #define netmap_adapter_get(na) \ argument
1629 struct netmap_adapter *__na = na; \
1634 int __netmap_adapter_put(struct netmap_adapter *na);
1636 #define netmap_adapter_put(na) \ argument
1638 struct netmap_adapter *__na = na; \
1649 void netmap_adapter_get(struct netmap_adapter *na);
1650 int netmap_adapter_put(struct netmap_adapter *na);
1691 * NA returns a pointer to the struct netmap adapter from the ifp.
1695 #define NA(_ifp) (if_getnetmapadapter(_ifp)) macro
1704 * On old versions of FreeBSD, NA(ifp) is a pspare. On linux we
1707 * We check if NA(ifp) is set and its first element has a related
1712 #define NM_NA_VALID(ifp) (NA(ifp) && \
1713 ((uint32_t)(uintptr_t)NA(ifp) ^ NA(ifp)->magic) == NETMAP_MAGIC )
1715 #define NM_ATTACH_NA(ifp, na) do { \ argument
1716 if_setnetmapadapter(ifp, na); \
1717 if (NA(ifp)) \
1718 NA(ifp)->magic = \
1719 ((uint32_t)(uintptr_t)NA(ifp)) ^ NETMAP_MAGIC; \
1721 #define NM_RESTORE_NA(ifp, na) if_setnetmapadapter(ifp, na); argument
1724 #define NM_NA_CLASH(ifp) (NA(ifp) && !NM_NA_VALID(ifp))
1728 #define NM_IS_NATIVE(ifp) (NM_NA_VALID(ifp) && NA(ifp)->nm_dtor == netmap_hw_dtor)
1734 nm_iommu_group_id(struct netmap_adapter *na) in nm_iommu_group_id() argument
1740 nm_numa_domain(struct netmap_adapter *na) in nm_numa_domain() argument
1750 domain = if_getnumadomain(na->ifp); in nm_numa_domain()
1766 netmap_load_map(struct netmap_adapter *na, in netmap_load_map() argument
1770 bus_dmamap_load(tag, map, buf, NETMAP_BUF_SIZE(na), in netmap_load_map()
1776 netmap_unload_map(struct netmap_adapter *na, in netmap_unload_map() argument
1783 #define netmap_sync_map(na, tag, map, sz, t) argument
1787 netmap_reload_map(struct netmap_adapter *na, in netmap_reload_map() argument
1792 bus_dmamap_load(tag, map, buf, NETMAP_BUF_SIZE(na), in netmap_reload_map()
1832 netmap_load_map(struct netmap_adapter *na, in netmap_load_map() argument
1836 *map = dma_map_single(na->pdev, buf, size, in netmap_load_map()
1838 if (dma_mapping_error(na->pdev, *map)) { in netmap_load_map()
1847 netmap_unload_map(struct netmap_adapter *na, in netmap_unload_map() argument
1851 dma_unmap_single(na->pdev, *map, sz, in netmap_unload_map()
1858 netmap_sync_map_cpu(struct netmap_adapter *na, in netmap_sync_map_cpu() argument
1862 dma_sync_single_for_cpu(na->pdev, *map, sz, in netmap_sync_map_cpu()
1868 netmap_sync_map_dev(struct netmap_adapter *na, in netmap_sync_map_dev() argument
1872 dma_sync_single_for_device(na->pdev, *map, sz, in netmap_sync_map_dev()
1878 netmap_reload_map(struct netmap_adapter *na, in netmap_reload_map() argument
1881 u_int sz = NETMAP_BUF_SIZE(na); in netmap_reload_map()
1884 dma_unmap_single(na->pdev, *map, sz, in netmap_reload_map()
1888 *map = dma_map_single(na->pdev, buf, sz, in netmap_reload_map()
1892 #define netmap_sync_map_cpu(na, tag, map, sz, t) argument
1893 #define netmap_sync_map_dev(na, tag, map, sz, t) argument
1949 * physical-address look-up table for each na.
1972 NMB(struct netmap_adapter *na, struct netmap_slot *slot) in NMB() argument
1974 struct lut_entry *lut = na->na_lut.lut; in NMB()
1976 return (unlikely(i >= na->na_lut.objtotal)) ? in NMB()
1981 PNMB(struct netmap_adapter *na, struct netmap_slot *slot, uint64_t *pp) in PNMB() argument
1984 struct lut_entry *lut = na->na_lut.lut; in PNMB()
1985 struct plut_entry *plut = na->na_lut.plut; in PNMB()
1986 void *ret = (i >= na->na_lut.objtotal) ? lut[0].vaddr : lut[i].vaddr; in PNMB()
1989 …*pp = (i >= na->na_lut.objtotal) ? (uint64_t)plut[0].paddr.QuadPart : (uint64_t)plut[i].paddr.Quad… in PNMB()
1991 *pp = (i >= na->na_lut.objtotal) ? plut[0].paddr : plut[i].paddr; in PNMB()
2016 void *addr = NMB(kring->na, slot); in NMB_O()
2023 void *addr = PNMB(kring->na, slot, pp); in PNMB_O()
2093 struct netmap_adapter *na = np->np_na; in nm_kring_pending() local
2099 struct netmap_kring *kring = NMR(na, t)[i]; in nm_kring_pending()
2119 int netmap_pipe_krings_create_both(struct netmap_adapter *na,
2121 void netmap_pipe_krings_delete_both(struct netmap_adapter *na,
2123 int netmap_pipe_reg_both(struct netmap_adapter *na,
2150 int na_is_generic(struct netmap_adapter *na);
2186 void netmap_generic_irq(struct netmap_adapter *na, u_int q, u_int *work_done);
2201 struct netmap_adapter *na);
2208 #define na_is_generic(na) (0) argument
2307 void bdg_mismatch_datapath(struct netmap_vp_adapter *na,
2375 int netmap_pt_guest_attach(struct netmap_adapter *na,
2384 int ptnet_nm_krings_create(struct netmap_adapter *na);
2385 void ptnet_nm_krings_delete(struct netmap_adapter *na);
2386 void ptnet_nm_dtor(struct netmap_adapter *na);
2420 #define SET_MBUF_DESTRUCTOR(m, fn, na) do { \ argument
2423 (m)->m_ext.ext_arg1 = na; \