Lines Matching refs:pkt_stream

497 			ifobj->pkt_stream = test->tx_pkt_stream_default;  in __test_spec_init()
501 ifobj->pkt_stream = test->rx_pkt_stream_default; in __test_spec_init()
528 struct pkt_stream *tx_pkt_stream; in test_spec_init()
529 struct pkt_stream *rx_pkt_stream; in test_spec_init()
568 static void pkt_stream_reset(struct pkt_stream *pkt_stream) in pkt_stream_reset() argument
570 if (pkt_stream) in pkt_stream_reset()
571 pkt_stream->rx_pkt_nb = 0; in pkt_stream_reset()
574 static struct pkt *pkt_stream_get_pkt(struct pkt_stream *pkt_stream, u32 pkt_nb) in pkt_stream_get_pkt() argument
576 if (pkt_nb >= pkt_stream->nb_pkts) in pkt_stream_get_pkt()
579 return &pkt_stream->pkts[pkt_nb]; in pkt_stream_get_pkt()
582 static struct pkt *pkt_stream_get_next_rx_pkt(struct pkt_stream *pkt_stream, u32 *pkts_sent) in pkt_stream_get_next_rx_pkt() argument
584 while (pkt_stream->rx_pkt_nb < pkt_stream->nb_pkts) { in pkt_stream_get_next_rx_pkt()
586 if (pkt_stream->pkts[pkt_stream->rx_pkt_nb].valid) in pkt_stream_get_next_rx_pkt()
587 return &pkt_stream->pkts[pkt_stream->rx_pkt_nb++]; in pkt_stream_get_next_rx_pkt()
588 pkt_stream->rx_pkt_nb++; in pkt_stream_get_next_rx_pkt()
593 static void pkt_stream_delete(struct pkt_stream *pkt_stream) in pkt_stream_delete() argument
595 free(pkt_stream->pkts); in pkt_stream_delete()
596 free(pkt_stream); in pkt_stream_delete()
601 struct pkt_stream *tx_pkt_stream = test->ifobj_tx->pkt_stream; in pkt_stream_restore_default()
602 struct pkt_stream *rx_pkt_stream = test->ifobj_rx->pkt_stream; in pkt_stream_restore_default()
605 pkt_stream_delete(test->ifobj_tx->pkt_stream); in pkt_stream_restore_default()
606 test->ifobj_tx->pkt_stream = test->tx_pkt_stream_default; in pkt_stream_restore_default()
610 pkt_stream_delete(test->ifobj_rx->pkt_stream); in pkt_stream_restore_default()
611 test->ifobj_rx->pkt_stream = test->rx_pkt_stream_default; in pkt_stream_restore_default()
615 static struct pkt_stream *__pkt_stream_alloc(u32 nb_pkts) in __pkt_stream_alloc()
617 struct pkt_stream *pkt_stream; in __pkt_stream_alloc() local
619 pkt_stream = calloc(1, sizeof(*pkt_stream)); in __pkt_stream_alloc()
620 if (!pkt_stream) in __pkt_stream_alloc()
623 pkt_stream->pkts = calloc(nb_pkts, sizeof(*pkt_stream->pkts)); in __pkt_stream_alloc()
624 if (!pkt_stream->pkts) { in __pkt_stream_alloc()
625 free(pkt_stream); in __pkt_stream_alloc()
629 pkt_stream->nb_pkts = nb_pkts; in __pkt_stream_alloc()
630 return pkt_stream; in __pkt_stream_alloc()
643 static struct pkt_stream *pkt_stream_generate(struct xsk_umem_info *umem, u32 nb_pkts, u32 pkt_len) in pkt_stream_generate()
645 struct pkt_stream *pkt_stream; in pkt_stream_generate() local
648 pkt_stream = __pkt_stream_alloc(nb_pkts); in pkt_stream_generate()
649 if (!pkt_stream) in pkt_stream_generate()
652 pkt_stream->nb_pkts = nb_pkts; in pkt_stream_generate()
654 pkt_set(umem, &pkt_stream->pkts[i], (i % umem->num_frames) * umem->frame_size, in pkt_stream_generate()
656 pkt_stream->pkts[i].payload = i; in pkt_stream_generate()
659 return pkt_stream; in pkt_stream_generate()
662 static struct pkt_stream *pkt_stream_clone(struct xsk_umem_info *umem, in pkt_stream_clone() argument
663 struct pkt_stream *pkt_stream) in pkt_stream_clone()
665 return pkt_stream_generate(umem, pkt_stream->nb_pkts, pkt_stream->pkts[0].len); in pkt_stream_clone()
670 struct pkt_stream *pkt_stream; in pkt_stream_replace() local
672 pkt_stream = pkt_stream_generate(test->ifobj_tx->umem, nb_pkts, pkt_len); in pkt_stream_replace()
673 test->ifobj_tx->pkt_stream = pkt_stream; in pkt_stream_replace()
674 pkt_stream = pkt_stream_generate(test->ifobj_rx->umem, nb_pkts, pkt_len); in pkt_stream_replace()
675 test->ifobj_rx->pkt_stream = pkt_stream; in pkt_stream_replace()
682 struct pkt_stream *pkt_stream; in __pkt_stream_replace_half() local
685 pkt_stream = pkt_stream_clone(umem, ifobj->pkt_stream); in __pkt_stream_replace_half()
686 for (i = 1; i < ifobj->pkt_stream->nb_pkts; i += 2) in __pkt_stream_replace_half()
687 pkt_set(umem, &pkt_stream->pkts[i], in __pkt_stream_replace_half()
690 ifobj->pkt_stream = pkt_stream; in __pkt_stream_replace_half()
702 struct pkt_stream *pkt_stream = test->ifobj_tx->pkt_stream; in pkt_stream_receive_half() local
705 test->ifobj_rx->pkt_stream = pkt_stream_generate(umem, pkt_stream->nb_pkts, in pkt_stream_receive_half()
706 pkt_stream->pkts[0].len); in pkt_stream_receive_half()
707 pkt_stream = test->ifobj_rx->pkt_stream; in pkt_stream_receive_half()
708 for (i = 1; i < pkt_stream->nb_pkts; i += 2) in pkt_stream_receive_half()
709 pkt_stream->pkts[i].valid = false; in pkt_stream_receive_half()
714 struct pkt *pkt = pkt_stream_get_pkt(ifobject->pkt_stream, pkt_nb); in pkt_generate()
741 struct pkt_stream *pkt_stream; in __pkt_stream_generate_custom() local
744 pkt_stream = __pkt_stream_alloc(nb_pkts); in __pkt_stream_generate_custom()
745 if (!pkt_stream) in __pkt_stream_generate_custom()
749 pkt_stream->pkts[i].addr = pkts[i].addr + ifobj->umem->base_addr; in __pkt_stream_generate_custom()
750 pkt_stream->pkts[i].len = pkts[i].len; in __pkt_stream_generate_custom()
751 pkt_stream->pkts[i].payload = i; in __pkt_stream_generate_custom()
752 pkt_stream->pkts[i].valid = pkts[i].valid; in __pkt_stream_generate_custom()
755 ifobj->pkt_stream = pkt_stream; in __pkt_stream_generate_custom()
801 static bool is_offset_correct(struct xsk_umem_info *umem, struct pkt_stream *pkt_stream, u64 addr, in is_offset_correct() argument
807 if (!pkt_stream->use_addr_for_fill) in is_offset_correct()
912 struct pkt_stream *pkt_stream = test->ifobj_rx->pkt_stream; in receive_pkts() local
925 pkt = pkt_stream_get_next_rx_pkt(pkt_stream, &pkts_sent); in receive_pkts()
980 !is_offset_correct(umem, pkt_stream, addr, pkt->addr)) in receive_pkts()
985 pkt = pkt_stream_get_next_rx_pkt(pkt_stream, &pkts_sent); in receive_pkts()
1097 while (pkt_cnt < ifobject->pkt_stream->nb_pkts) { in send_pkts()
1144 if (stats.rx_dropped == ifobject->pkt_stream->nb_pkts / 2) in validate_rx_dropped()
1204 if (stats.tx_invalid_descs != ifobject->pkt_stream->nb_pkts / 2) { in validate_tx_invalid_descs()
1206 __func__, stats.tx_invalid_descs, ifobject->pkt_stream->nb_pkts); in validate_tx_invalid_descs()
1246 static void xsk_populate_fill_ring(struct xsk_umem_info *umem, struct pkt_stream *pkt_stream) in xsk_populate_fill_ring() argument
1262 if (pkt_stream->use_addr_for_fill) { in xsk_populate_fill_ring()
1263 struct pkt *pkt = pkt_stream_get_pkt(pkt_stream, i); in xsk_populate_fill_ring()
1301 xsk_populate_fill_ring(ifobject->umem, ifobject->pkt_stream); in thread_common_ops()
1352 print_verbose("Sending %d packets on interface %s\n", ifobject->pkt_stream->nb_pkts, in worker_testapp_validate_tx()
1425 pkt_stream_reset(ifobj->pkt_stream); in testapp_validate_traffic_single_thread()
1465 pkt_stream_reset(ifobj_rx->pkt_stream); in testapp_validate_traffic()
1590 test->ifobj_rx->pkt_stream = pkt_stream_generate(test->ifobj_rx->umem, in testapp_stats_rx_full()
1592 if (!test->ifobj_rx->pkt_stream) in testapp_stats_rx_full()
1607 test->ifobj_rx->pkt_stream = pkt_stream_generate(test->ifobj_rx->umem, in testapp_stats_fill_empty()
1609 if (!test->ifobj_rx->pkt_stream) in testapp_stats_fill_empty()
1646 test->ifobj_rx->pkt_stream->use_addr_for_fill = true; in testapp_unaligned()
1896 struct pkt_stream *rx_pkt_stream_default; in main()
1897 struct pkt_stream *tx_pkt_stream_default; in main()