Changeset 2193905 for lib/format_dpdk.c


Ignore:
Timestamp:
11/29/18 10:12:59 (3 years ago)
Author:
Jacob Van Walraven <jcv9@…>
Branches:
develop
Children:
fdf23b8
Parents:
d74ca03
Message:

Apply changes required for pull request #81

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/format_dpdk.c

    r2725318 r2193905  
    5151
    5252#include <stdlib.h>
    53 #include <assert.h>
    5453#include <unistd.h>
    5554#include <endian.h>
     
    213212static int parse_pciaddr(char * str, struct rte_pci_addr * addr, long * core) {
    214213        int matches;
    215         assert(str);
     214
     215        if (!str) {
     216                fprintf(stderr, "NULL str passed into parse_pciaddr()\n");
     217                return -1;
     218        }
    216219#if RTE_VERSION >= RTE_VERSION_NUM(17, 8, 0, 1)
    217220        matches = sscanf(str, "%8"SCNx32":%2"SCNx8":%2"SCNx8".%2"SCNx8"-%ld",
     
    325328        int i;
    326329
    327         assert (core < RTE_MAX_LCORE);
    328         assert (rte_get_master_lcore() == rte_lcore_id());
     330        if (core >= RTE_MAX_LCORE) {
     331                fprintf(stderr, "Core must be a value less than the number of cores "
     332                        "in dpdk_move_master_lcore()\n");
     333                return -1;
     334        }
     335        if (rte_get_master_lcore() != rte_lcore_id()) {
     336                fprintf(stderr, "Master core not equal to core id in dpdk_move_master_lcore()\n");
     337                return -1;
     338        }
    329339
    330340        if (core == rte_lcore_id())
     
    332342
    333343        /* Make sure we are not overwriting someone else */
    334         assert(!rte_lcore_is_enabled(core));
     344        if (rte_lcore_is_enabled(core)) {
     345                fprintf(stderr, "Cannot override another core in dpdk_move_master_lcore()\n");
     346                return -1;
     347        }
    335348
    336349        /* Move the core */
     
    470483                        int max_node_cpu = -1;
    471484                        struct bitmask *mask = numa_allocate_cpumask();
    472                         assert(mask);
     485                        if (!mask) {
     486                                fprintf(stderr, "Unable to allocate cpu mask in dpdk_init_environment()\n");
     487                                return -1;
     488                        }
    473489                        numa_node_to_cpus(format_data->nic_numa_node, mask);
    474490                        for (i = 0 ; i < nb_cpu; ++i) {
     
    530546        }
    531547        // Only the master should be running
    532         assert(cfg->lcore_count == 1);
     548        if (cfg->lcore_count != 1) {
     549                fprintf(stderr, "Expected only the master core to be running in dpdk_init_environment()\n");
     550                return -1;
     551        }
    533552
    534553        // TODO XXX TODO
     
    589608
    590609        if (!libtrace->format_data) {
    591                 trace_set_err(libtrace, TRACE_ERR_INIT_FAILED, "Unable to allocate memory dpdk_init_input()");
     610                trace_set_err(libtrace, TRACE_ERR_INIT_FAILED, "Unable to allocate memory for "
     611                        "format data inside dpdk_init_input()");
    592612                return 1;
    593613        }
     
    636656
    637657        if (!libtrace->format_data) {
    638                 trace_set_err_out(libtrace, TRACE_ERR_INIT_FAILED, "Unable to allocate memory dpdk_init_output()");
     658                trace_set_err_out(libtrace, TRACE_ERR_INIT_FAILED, "Unable to allocate memory for "
     659                        "format data inside dpdk_init_output()");
    639660                return -1;
    640661        }
     
    843864        struct dpdk_format_data_t * format_data = cb_arg;
    844865        struct rte_eth_link link_info;
    845         assert(event == RTE_ETH_EVENT_INTR_LSC);
    846         assert(port == format_data->port);
     866        if (event != RTE_ETH_EVENT_INTR_LSC) {
     867                fprintf(stderr, "Received unexpected event in dpdk_lsc_callback()\n");
     868                #if RTE_VERSION >= RTE_VERSION_NUM(17, 8, 0, 1)
     869                return -1;
     870                #else
     871                return;
     872                #endif
     873        }
     874        if (port != format_data->port) {
     875                fprintf(stderr, "Port does not match port in format data in dpdk_lsc_callback()\n");
     876                return -1;
     877        }
    847878
    848879        rte_eth_link_get_nowait(port, &link_info);
     
    14561487        struct rte_config *cfg = rte_eal_get_configuration();
    14571488
    1458         assert(rte_lcore_id() < RTE_MAX_LCORE);
     1489        if (rte_lcore_id() >= RTE_MAX_LCORE) {
     1490                fprintf(stderr, "Expected core id less than or equal to RTE_MAX_LCORE in "
     1491                        "dpdk_punregister_thread()\n");
     1492                return;
     1493        }
    14591494        pthread_mutex_lock(&dpdk_lock);
    14601495        /* Skip if master */
     
    14691504        cfg->lcore_count--;
    14701505        RTE_PER_LCORE(_lcore_id) = -1; // Might make the world burn if used again
    1471         assert(cfg->lcore_count >= 1); // We cannot unregister the master LCORE!!
     1506        if (cfg->lcore_count < 1) {
     1507                fprintf(stderr, "You cannot unregister the master lcore in dpdk_punregister_thread()\n");
     1508                return;
     1509        }
    14721510        pthread_mutex_unlock(&dpdk_lock);
    14731511        return;
     
    15951633 */
    15961634static inline struct dpdk_addt_hdr * get_addt_hdr (const libtrace_packet_t *packet) {
    1597         assert(packet);
    1598         assert(packet->buffer);
     1635        if (!packet) {
     1636                fprintf(stderr, "NULL packet passed into dpdk_addt_hdr()\n");
     1637                return NULL;
     1638        }
     1639        if (!packet->buffer) {
     1640                fprintf(stderr, "NULL packet buffer passed into dpdk_addt_hdr()\n");
     1641                return NULL;
     1642        }
    15991643        /* Our header sits straight after the mbuf header */
    16001644        return (struct dpdk_addt_hdr *) ((struct rte_mbuf*) packet->buffer + 1);
     
    16481692                               libtrace_packet_t *packet, void *buffer,
    16491693                               libtrace_rt_types_t rt_type, uint32_t flags) {
    1650         assert(packet);
     1694        if (!packet) {
     1695                fprintf(stderr, "NULL packet passed into dpdk_prepare_packet()\n");
     1696                return TRACE_ERR_NULL_PACKET;
     1697        }
    16511698        if (packet->buffer != buffer &&
    16521699            packet->buf_control == TRACE_CTRL_PACKET) {
     
    19501997                        if (packets[i]->buffer != NULL) {
    19511998                                /* The packet should always be finished */
    1952                                 assert(packets[i]->buf_control == TRACE_CTRL_PACKET);
     1999                                if (packets[i]->buf_control != TRACE_CTRL_PACKET) {
     2000                                        trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Expected packet buffer "
     2001                                                "to be empty in dpdk_pread_packets()\n");
     2002                                        return -1;
     2003                                }
    19532004                                free(packets[i]->buffer);
    19542005                        }
     
    19752026        if (packet->buffer != NULL) {
    19762027                /* The packet should always be finished */
    1977                 assert(packet->buf_control == TRACE_CTRL_PACKET);
     2028                if (packet->buf_control != TRACE_CTRL_PACKET) {
     2029                        trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Expected packet buffer to be "
     2030                                "empty in dpdk_read_packet()\n");
     2031                        return -1;
     2032                }
    19782033                free(packet->buffer);
    19792034                packet->buffer = NULL;
     
    20972152                        if (packet->buffer != NULL) {
    20982153                                /* The packet should always be finished */
    2099                                 assert(packet->buf_control == TRACE_CTRL_PACKET);
     2154                                if (packet->buf_control != TRACE_CTRL_PACKET) {
     2155                                        trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Expected packet "
     2156                                                "buffer to be empty in dpdk_trace_event()\n");
     2157                                        return -1;
     2158                                }
    21002159                                free(packet->buffer);
    21012160                                packet->buffer = NULL;
Note: See TracChangeset for help on using the changeset viewer.