Changeset 2193905 for lib/format_dpdk.c
- Timestamp:
- 11/29/18 10:12:59 (2 years ago)
- Branches:
- develop
- Children:
- fdf23b8
- Parents:
- d74ca03
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lib/format_dpdk.c
r2725318 r2193905 51 51 52 52 #include <stdlib.h> 53 #include <assert.h>54 53 #include <unistd.h> 55 54 #include <endian.h> … … 213 212 static int parse_pciaddr(char * str, struct rte_pci_addr * addr, long * core) { 214 213 int matches; 215 assert(str); 214 215 if (!str) { 216 fprintf(stderr, "NULL str passed into parse_pciaddr()\n"); 217 return -1; 218 } 216 219 #if RTE_VERSION >= RTE_VERSION_NUM(17, 8, 0, 1) 217 220 matches = sscanf(str, "%8"SCNx32":%2"SCNx8":%2"SCNx8".%2"SCNx8"-%ld", … … 325 328 int i; 326 329 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 } 329 339 330 340 if (core == rte_lcore_id()) … … 332 342 333 343 /* 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 } 335 348 336 349 /* Move the core */ … … 470 483 int max_node_cpu = -1; 471 484 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 } 473 489 numa_node_to_cpus(format_data->nic_numa_node, mask); 474 490 for (i = 0 ; i < nb_cpu; ++i) { … … 530 546 } 531 547 // 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 } 533 552 534 553 // TODO XXX TODO … … 589 608 590 609 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()"); 592 612 return 1; 593 613 } … … 636 656 637 657 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()"); 639 660 return -1; 640 661 } … … 843 864 struct dpdk_format_data_t * format_data = cb_arg; 844 865 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 } 847 878 848 879 rte_eth_link_get_nowait(port, &link_info); … … 1456 1487 struct rte_config *cfg = rte_eal_get_configuration(); 1457 1488 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 } 1459 1494 pthread_mutex_lock(&dpdk_lock); 1460 1495 /* Skip if master */ … … 1469 1504 cfg->lcore_count--; 1470 1505 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 } 1472 1510 pthread_mutex_unlock(&dpdk_lock); 1473 1511 return; … … 1595 1633 */ 1596 1634 static 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 } 1599 1643 /* Our header sits straight after the mbuf header */ 1600 1644 return (struct dpdk_addt_hdr *) ((struct rte_mbuf*) packet->buffer + 1); … … 1648 1692 libtrace_packet_t *packet, void *buffer, 1649 1693 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 } 1651 1698 if (packet->buffer != buffer && 1652 1699 packet->buf_control == TRACE_CTRL_PACKET) { … … 1950 1997 if (packets[i]->buffer != NULL) { 1951 1998 /* 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 } 1953 2004 free(packets[i]->buffer); 1954 2005 } … … 1975 2026 if (packet->buffer != NULL) { 1976 2027 /* 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 } 1978 2033 free(packet->buffer); 1979 2034 packet->buffer = NULL; … … 2097 2152 if (packet->buffer != NULL) { 2098 2153 /* 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 } 2100 2159 free(packet->buffer); 2101 2160 packet->buffer = NULL;
Note: See TracChangeset
for help on using the changeset viewer.