Lines Matching refs:ft
226 struct nm_bdg_fwd *ft; in nm_alloc_bdgfwd() local
230 ft = nm_os_malloc(l); in nm_alloc_bdgfwd()
231 if (!ft) { in nm_alloc_bdgfwd()
235 dstq = (struct nm_vale_q *)(ft + NM_BDG_BATCH_MAX); in nm_alloc_bdgfwd()
240 kring[i]->nkr_ft = ft; in nm_alloc_bdgfwd()
470 nm_vale_flush(struct nm_bdg_fwd *ft, u_int n,
487 struct nm_bdg_fwd *ft; in nm_vale_preflush() local
504 ft = kring->nkr_ft; in nm_vale_preflush()
510 ft[ft_i].ft_len = slot->len; in nm_vale_preflush()
511 ft[ft_i].ft_flags = slot->flags; in nm_vale_preflush()
512 ft[ft_i].ft_offset = 0; in nm_vale_preflush()
519 ft[ft_i].ft_next = NM_FT_NULL; in nm_vale_preflush()
520 buf = ft[ft_i].ft_buf = (slot->flags & NS_INDIRECT) ? in nm_vale_preflush()
526 kring->name, j, ft[ft_i].ft_len); in nm_vale_preflush()
527 buf = ft[ft_i].ft_buf = NETMAP_BUF_BASE(&na->up); in nm_vale_preflush()
528 ft[ft_i].ft_len = 0; in nm_vale_preflush()
529 ft[ft_i].ft_flags = 0; in nm_vale_preflush()
539 ft[ft_i - frags].ft_frags = frags; in nm_vale_preflush()
542 ft_i = nm_vale_flush(ft, ft_i, na, ring_nr); in nm_vale_preflush()
548 ft[ft_i - 1].ft_flags &= ~NS_MOREFRAG; in nm_vale_preflush()
549 ft[ft_i - frags].ft_frags = frags; in nm_vale_preflush()
553 ft_i = nm_vale_flush(ft, ft_i, na, ring_nr); in nm_vale_preflush()
608 netmap_vale_learning(struct nm_bdg_fwd *ft, uint8_t *dst_ring, in netmap_vale_learning() argument
611 uint8_t *buf = ((uint8_t *)ft->ft_buf) + ft->ft_offset; in netmap_vale_learning()
612 u_int buf_len = ft->ft_len - ft->ft_offset; in netmap_vale_learning()
623 if (ft->ft_flags & NS_INDIRECT) { in netmap_vale_learning()
741 nm_vale_flush(struct nm_bdg_fwd *ft, u_int n, struct netmap_vp_adapter *na, in nm_vale_flush() argument
755 dst_ents = (struct nm_vale_q *)(ft + NM_BDG_BATCH_MAX); in nm_vale_flush()
759 for (i = 0; likely(i < n); i += ft[i].ft_frags) { in nm_vale_flush()
765 nm_prdis("slot %d frags %d", i, ft[i].ft_frags); in nm_vale_flush()
767 if (na->up.virt_hdr_len < ft[i].ft_len) { in nm_vale_flush()
768 ft[i].ft_offset = na->up.virt_hdr_len; in nm_vale_flush()
769 start_ft = &ft[i]; in nm_vale_flush()
770 } else if (na->up.virt_hdr_len == ft[i].ft_len && ft[i].ft_flags & NS_MOREFRAG) { in nm_vale_flush()
771 ft[i].ft_offset = ft[i].ft_len; in nm_vale_flush()
772 start_ft = &ft[i+1]; in nm_vale_flush()
801 ft[d->bq_tail].ft_next = i; in nm_vale_flush()
804 d->bq_len += ft[i].ft_frags; in nm_vale_flush()
957 ft_p = ft + next; in nm_vale_flush()
960 ft_p = ft + brd_next; in nm_vale_flush()