Fix handing configuration error (missing tx port or ring in gen mode) 03/65803/2
authorXavier Simonart <xavier.simonart@intel.com>
Thu, 13 Dec 2018 12:02:36 +0000 (13:02 +0100)
committerXavier Simonart <xavier.simonart@intel.com>
Fri, 14 Dec 2018 08:52:19 +0000 (09:52 +0100)
Gen mode requires a tx ring or a tx port. A configuration without those
should gracefully report an error. This was causing a crash.

Change-Id: Ia30d4d4c87a694da1dfed86587f90b9199c493ab
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
VNFs/DPPD-PROX/handle_gen.c

index c3be11a..4040b33 100644 (file)
@@ -1301,7 +1301,8 @@ static void init_task_gen(struct task_base *tbase, struct task_args *targ)
                task_init_gen_load_pcap(task, targ);
        }
 
-       if ((targ->flags & DSF_KEEP_SRC_MAC) == 0 && (targ->nb_txrings || targ->nb_txports)) {
+       PROX_PANIC(((targ->nb_txrings == 0) && (targ->nb_txports == 0)), "Gen mode requires a tx ring or a tx port");
+       if ((targ->flags & DSF_KEEP_SRC_MAC) == 0) {
                uint8_t *src_addr = prox_port_cfg[tbase->tx_params_hw.tx_port_queue->port].eth_addr.addr_bytes;
                for (uint32_t i = 0; i < task->n_pkts; ++i) {
                        rte_memcpy(&task->pkt_template[i].buf[6], src_addr, 6);