if (ioctl (fd, SIOCGIFADDR, &ifr) < 0)
{
clib_unix_error ("ioctl(SIOCFIGADDR)");
+ close (fd);
return -1;
}
dpdk_device_t * xd;
u32 device_id = ~0;
- unformat(input, "device %d", &device_id);
+ (void) unformat(input, "device %d", &device_id);
vec_foreach (xd, dm->devices) {
if ((xd->device_index == device_id) || (device_id == ~0)) {
show_dpdk_device_stats(vm, xd);
else
{
xd->admin_up = 0;
- rte_kni_release(xd->kni);
+ int kni_rv;
+
+ kni_rv = rte_kni_release(xd->kni);
+ if (kni_rv < 0)
+ clib_warning ("rte_kni_release returned %d", kni_rv);
}
return 0;
}
struct rte_pci_device * pci;
struct rte_eth_rss_conf rss_conf;
int vlan_off;
+ int retval;
rss_conf.rss_key = 0;
- rte_eth_dev_rss_hash_conf_get(xd->device_index, &rss_conf);
+ retval = rte_eth_dev_rss_hash_conf_get(xd->device_index, &rss_conf);
+ if (retval < 0)
+ clib_warning ("rte_eth_dev_rss_hash_conf_get returned %d", retval);
pci = di.pci_dev;
if (pci)
}
if (xd->admin_up) {
- rte_eth_dev_start (xd->device_index);
+ int rv;
+ rv = rte_eth_dev_start (xd->device_index);
+ if (rv < 0)
+ clib_warning ("rte_eth_dev_start %d returned %d",
+ xd->device_index, rv);
}
return 0;
}
rte_eth_dev_set_mtu(xd->device_index, hi->max_packet_bytes);
if (xd->admin_up)
- rte_eth_dev_start (xd->device_index);
+ {
+ int rv = rte_eth_dev_start (xd->device_index);
+ if (rv < 0)
+ clib_warning ("rte_eth_dev_start %d returned %d",
+ xd->device_index, rv);
+ }
}
}
return old;
if (!xd->pmd) {
-#define _(s,f) else if (!strcmp(dev_info.driver_name, s)) \
+#define _(s,f) else if (dev_info.driver_name && \
+ !strcmp(dev_info.driver_name, s)) \
xd->pmd = VNET_DPDK_PMD_##f;
if (0)
;
rv = dpdk_port_setup(dm, xd);
- if (rv < 0)
+ if (rv)
return rv;
/* count the number of descriptors used for this device */
vec_free(p);
vec_free(path);
}));
+
+ if (mem_by_socket == 0)
+ {
+ error = clib_error_return (0, "mem_by_socket NULL");
+ goto done;
+ }
_vec_len (mem_by_socket) = c + 1;
/* regenerate socket_mem string */
if (nm_tx_pending(ring))
{
- ioctl(nif->fd, NIOCTXSYNC, NULL);
- clib_cpu_time_wait(time_constant);
-
- if (nm_tx_pending(ring) && !n_free_slots)
- {
- cur_ring++;
- continue;
- }
+ if (ioctl(nif->fd, NIOCTXSYNC, NULL) < 0)
+ clib_unix_warning ("NIOCTXSYNC");
+ clib_cpu_time_wait(time_constant);
+
+ if (nm_tx_pending(ring) && !n_free_slots)
+ {
+ cur_ring++;
+ continue;
+ }
}
while (n_left && n_free_slots)
VLIB_BUFFER_TRACE_TRAJECTORY_INIT(first_b0);
if (PREDICT_FALSE(n_trace > 0))
{
- netmap_input_trace_t *tr;
- vlib_trace_buffer (vm, node, next0, first_b0, /* follow_chain */ 0);
- vlib_set_trace_count (vm, node, --n_trace);
- tr = vlib_add_trace (vm, node, first_b0, sizeof (*tr));
- tr->next_index = next0;
- tr->hw_if_index = nif->hw_if_index;
- memcpy (&tr->slot, slot, sizeof (struct netmap_slot));
+ if (PREDICT_TRUE(first_b0 != 0))
+ {
+ netmap_input_trace_t *tr;
+ vlib_trace_buffer (vm, node, next0, first_b0,
+ /* follow_chain */ 0);
+ vlib_set_trace_count (vm, node, --n_trace);
+ tr = vlib_add_trace (vm, node, first_b0, sizeof (*tr));
+ tr->next_index = next0;
+ tr->hw_if_index = nif->hw_if_index;
+ memcpy (&tr->slot, slot, sizeof (struct netmap_slot));
+ }
}
/* enque and take next packet */
vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next,
t->sw_if_index = vnet_buffer(b0)->sw_if_index[VLIB_RX];
t->next_index = next0;
t->table_index = t0 ? t0 - vcm->tables : ~0;
- t->offset = e0 ? vnet_classify_get_offset (t0, e0): ~0;
+ t->offset = (t0 && e0) ? vnet_classify_get_offset (t0, e0): ~0;
}
/* verify speculative enqueue, maybe switch current next frame */
if (new_len * hash_pair_bytes (h) > (1ULL << log2_bytes))
{
pi->pairs = clib_mem_realloc (pi->pairs,
- 1 << (log2_bytes + 1),
- 1 << log2_bytes);
+ 1ULL << (log2_bytes + 1),
+ 1ULL << log2_bytes);
log2_bytes++;
}
n = sparse_index_bits - min_log2 (BITS (uword));
if (n < 0)
n = 0;
- n = 1 << n;
+ n = 1ULL << n;
vec_resize (h->is_member_bitmap, n);
vec_resize (h->member_counts, n);