Lines Matching refs:mna
658 struct netmap_pipe_adapter *mna, *sna, *reqna; in netmap_get_pipe_na() local
731 mna = netmap_pipe_find(pna, pipe_id); in netmap_get_pipe_na()
732 if (mna) { in netmap_get_pipe_na()
733 if (mna->role == role) { in netmap_get_pipe_na()
734 nm_prdis("found %s directly at %d", pipe_id, mna->parent_slot); in netmap_get_pipe_na()
735 reqna = mna; in netmap_get_pipe_na()
737 nm_prdis("found %s indirectly at %d", pipe_id, mna->parent_slot); in netmap_get_pipe_na()
738 reqna = mna->peer; in netmap_get_pipe_na()
755 mna = nm_os_malloc(sizeof(*mna)); in netmap_get_pipe_na()
756 if (mna == NULL) { in netmap_get_pipe_na()
760 snprintf(mna->up.name, sizeof(mna->up.name), "%s{%s", pna->name, pipe_id); in netmap_get_pipe_na()
762 mna->role = NM_PIPE_ROLE_MASTER; in netmap_get_pipe_na()
763 mna->parent = pna; in netmap_get_pipe_na()
764 mna->parent_ifp = ifp; in netmap_get_pipe_na()
766 mna->up.nm_txsync = netmap_pipe_txsync; in netmap_get_pipe_na()
767 mna->up.nm_rxsync = netmap_pipe_rxsync; in netmap_get_pipe_na()
768 mna->up.nm_register = netmap_pipe_reg; in netmap_get_pipe_na()
769 mna->up.nm_dtor = netmap_pipe_dtor; in netmap_get_pipe_na()
770 mna->up.nm_krings_create = netmap_pipe_krings_create; in netmap_get_pipe_na()
771 mna->up.nm_krings_delete = netmap_pipe_krings_delete; in netmap_get_pipe_na()
772 mna->up.nm_mem = netmap_mem_get(pna->nm_mem); in netmap_get_pipe_na()
773 mna->up.na_flags |= NAF_MEM_OWNER | NAF_OFFSETS; in netmap_get_pipe_na()
774 mna->up.na_lut = pna->na_lut; in netmap_get_pipe_na()
776 mna->up.num_tx_rings = req->nr_tx_rings; in netmap_get_pipe_na()
777 nm_bound_var(&mna->up.num_tx_rings, 1, in netmap_get_pipe_na()
779 mna->up.num_rx_rings = req->nr_rx_rings; in netmap_get_pipe_na()
780 nm_bound_var(&mna->up.num_rx_rings, 1, in netmap_get_pipe_na()
782 mna->up.num_tx_desc = req->nr_tx_slots; in netmap_get_pipe_na()
783 nm_bound_var(&mna->up.num_tx_desc, pna->num_tx_desc, in netmap_get_pipe_na()
785 mna->up.num_rx_desc = req->nr_rx_slots; in netmap_get_pipe_na()
786 nm_bound_var(&mna->up.num_rx_desc, pna->num_rx_desc, in netmap_get_pipe_na()
788 error = netmap_attach_common(&mna->up); in netmap_get_pipe_na()
792 error = netmap_pipe_add(pna, mna); in netmap_get_pipe_na()
797 sna = nm_os_malloc(sizeof(*mna)); in netmap_get_pipe_na()
803 *sna = *mna; in netmap_get_pipe_na()
804 sna->up.nm_mem = netmap_mem_get(mna->up.nm_mem); in netmap_get_pipe_na()
806 sna->up.num_tx_rings = mna->up.num_rx_rings; in netmap_get_pipe_na()
807 sna->up.num_tx_desc = mna->up.num_rx_desc; in netmap_get_pipe_na()
808 sna->up.num_rx_rings = mna->up.num_tx_rings; in netmap_get_pipe_na()
809 sna->up.num_rx_desc = mna->up.num_tx_desc; in netmap_get_pipe_na()
817 mna->peer = sna; in netmap_get_pipe_na()
818 sna->peer = mna; in netmap_get_pipe_na()
829 reqna = mna; in netmap_get_pipe_na()
830 mna->peer_ref = 1; in netmap_get_pipe_na()
835 netmap_adapter_get(&mna->up); in netmap_get_pipe_na()
837 nm_prdis("created master %p and slave %p", mna, sna); in netmap_get_pipe_na()
854 netmap_pipe_remove(pna, mna); in netmap_get_pipe_na()
856 nm_os_free(mna); in netmap_get_pipe_na()