summaryrefslogtreecommitdiff
path: root/app/src/rawio.c
diff options
context:
space:
mode:
authorQiuwen Lu <[email protected]>2017-05-16 10:06:21 +0800
committerQiuwen Lu <[email protected]>2017-05-16 10:06:21 +0800
commit43a3c1c72bc2b51fe70168fb77d5458fca4e67f7 (patch)
tree0010bd62fc6c244dc8656f6e67acfebdb33b4dd8 /app/src/rawio.c
parent8320b9b58f58a66734bda48919a542c89ffbbe78 (diff)
消除O2以后Assert失效引起的告警v4.1.6-20170516
Diffstat (limited to 'app/src/rawio.c')
-rw-r--r--app/src/rawio.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/app/src/rawio.c b/app/src/rawio.c
index ec7ce32..69004da 100644
--- a/app/src/rawio.c
+++ b/app/src/rawio.c
@@ -45,23 +45,25 @@ int marsio_recv_burst(struct mr_vdev * vdev, queue_id_t qid, marsio_buff_t * mbu
if (unlikely(qid >= vdev->nr_rxstream)) return -EINVAL;
struct vdev_instance * vdi = vdev->vdi;
- int ret = vnode_mirror_dequeue_burst(vdi->vnode_rx_cons, qid, (struct rte_mbuf **)mbufs, nr_mbufs);
+ struct rte_mbuf ** __mbufs = (struct rte_mbuf **)mbufs;
+
+ int ret = vnode_mirror_dequeue_burst(vdi->vnode_rx_cons, qid, __mbufs, nr_mbufs);
if (unlikely(ret == 0)) goto out;
/* ARP */
- if (vdev->en_arp) arp_entry(vdev->instance, vdi, qid, (struct rte_mbuf **)mbufs, ret);
+ if (vdev->en_arp) arp_entry(vdev->instance, vdi, qid, __mbufs, ret);
/* ICMP */
- if (vdev->en_icmp) icmp_entry(vdev->instance, vdi, qid, (struct rte_mbuf **)mbufs, ret);
+ if (vdev->en_icmp) icmp_entry(vdev->instance, vdi, qid, __mbufs, ret);
/* 报文合法性检查,防止Double-Free */
- for (int i = 0; i < ret; i++) __rte_mbuf_sanity_check(mbufs[i], i);
+ for (int i = 0; i < ret; i++) __rte_mbuf_sanity_check(__mbufs[i], i);
/* 线程运行情况统计,收报情况,对于非注册线程不统计 */
if (thread_info.instance != NULL)
{
thread_id_t tid = thread_info.thread_id;
thread_info.instance->stat[tid].packet_recv_count += ret;
- thread_info.instance->stat[tid].packet_recv_length = __packet_total_len(mbufs, ret);
+ thread_info.instance->stat[tid].packet_recv_length = __packet_total_len(__mbufs, ret);
}
out:
@@ -164,12 +166,6 @@ int marsio_send_burst_with_options(struct mr_sendpath * sendpath, queue_id_t sid
for (int i = 0; i < nr_mbufs; i++) __mbufs[i]->udata64 |= 1;
}
- for (int i = 0; i < nr_mbufs; i++)
- {
- struct ipv4_hdr * ipv4_hdr = rte_pktmbuf_mtod(__mbufs[i], struct ipv4_hdr *);
- assert(rte_ipv4_cksum(ipv4_hdr) == 0xffff);
- }
-
hash_t hash[MR_BURST_MAX];
for (int i = 0; i < nr_mbufs; i++) hash[i] = __mbufs[i]->hash.usr;