diff options
| author | Qiuwen Lu <[email protected]> | 2017-05-16 10:06:21 +0800 |
|---|---|---|
| committer | Qiuwen Lu <[email protected]> | 2017-05-16 10:06:21 +0800 |
| commit | 43a3c1c72bc2b51fe70168fb77d5458fca4e67f7 (patch) | |
| tree | 0010bd62fc6c244dc8656f6e67acfebdb33b4dd8 /app/src/rawio.c | |
| parent | 8320b9b58f58a66734bda48919a542c89ffbbe78 (diff) | |
消除O2以后Assert失效引起的告警v4.1.6-20170516
Diffstat (limited to 'app/src/rawio.c')
| -rw-r--r-- | app/src/rawio.c | 18 |
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; |
