dpdk/app/test-pmd/rxonly.c
<<
>>
Prefs
   1/* SPDX-License-Identifier: BSD-3-Clause
   2 * Copyright(c) 2010-2014 Intel Corporation
   3 */
   4
   5#include <stdarg.h>
   6#include <string.h>
   7#include <stdio.h>
   8#include <errno.h>
   9#include <stdint.h>
  10#include <unistd.h>
  11#include <inttypes.h>
  12
  13#include <sys/queue.h>
  14#include <sys/stat.h>
  15
  16#include <rte_common.h>
  17#include <rte_byteorder.h>
  18#include <rte_log.h>
  19#include <rte_debug.h>
  20#include <rte_cycles.h>
  21#include <rte_memory.h>
  22#include <rte_memcpy.h>
  23#include <rte_launch.h>
  24#include <rte_eal.h>
  25#include <rte_per_lcore.h>
  26#include <rte_lcore.h>
  27#include <rte_atomic.h>
  28#include <rte_branch_prediction.h>
  29#include <rte_mempool.h>
  30#include <rte_mbuf.h>
  31#include <rte_interrupts.h>
  32#include <rte_pci.h>
  33#include <rte_ether.h>
  34#include <rte_ethdev.h>
  35#include <rte_string_fns.h>
  36#include <rte_ip.h>
  37#include <rte_udp.h>
  38#include <rte_net.h>
  39#include <rte_flow.h>
  40
  41#include "testpmd.h"
  42
  43/*
  44 * Received a burst of packets.
  45 */
  46static void
  47pkt_burst_receive(struct fwd_stream *fs)
  48{
  49        struct rte_mbuf  *pkts_burst[MAX_PKT_BURST];
  50        uint16_t nb_rx;
  51        uint16_t i;
  52        uint64_t start_tsc = 0;
  53
  54        get_start_cycles(&start_tsc);
  55
  56        /*
  57         * Receive a burst of packets.
  58         */
  59        nb_rx = rte_eth_rx_burst(fs->rx_port, fs->rx_queue, pkts_burst,
  60                                 nb_pkt_per_burst);
  61        inc_rx_burst_stats(fs, nb_rx);
  62        if (unlikely(nb_rx == 0))
  63                return;
  64
  65        fs->rx_packets += nb_rx;
  66        for (i = 0; i < nb_rx; i++)
  67                rte_pktmbuf_free(pkts_burst[i]);
  68
  69        get_end_cycles(fs, start_tsc);
  70}
  71
  72struct fwd_engine rx_only_engine = {
  73        .fwd_mode_name  = "rxonly",
  74        .port_fwd_begin = NULL,
  75        .port_fwd_end   = NULL,
  76        .packet_fwd     = pkt_burst_receive,
  77};
  78