X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest-pmd%2Ficmpecho.c;h=99c94cb282c057b60eee008b63ca008e7f359128;hb=a2dfcd1ff609f5a4fd3b65774618a35c5c9f73c6;hp=bff0b8d9c21d007d58cdb3b5a2003e7706294e3f;hpb=6d961b06d8c0fdda1632f62a0414959e3f92bfbf;p=dpdk.git diff --git a/app/test-pmd/icmpecho.c b/app/test-pmd/icmpecho.c index bff0b8d9c2..99c94cb282 100644 --- a/app/test-pmd/icmpecho.c +++ b/app/test-pmd/icmpecho.c @@ -20,7 +20,6 @@ #include #include #include -#include #include #include #include @@ -54,7 +53,7 @@ arp_op_name(uint16_t arp_op) default: break; } - return "Unkwown ARP op"; + return "Unknown ARP op"; } static const char * @@ -188,7 +187,7 @@ ip_proto_name(uint16_t ip_proto) "PIM", /**< Protocol Independent Mcast */ }; - if (ip_proto < sizeof(ip_proto_names) / sizeof(ip_proto_names[0])) + if (ip_proto < RTE_DIM(ip_proto_names)) return ip_proto_names[ip_proto]; switch (ip_proto) { #ifdef IPPROTO_PGM @@ -243,7 +242,7 @@ ipv4_addr_dump(const char *what, uint32_t be_ipv4_addr) } static uint16_t -ipv4_hdr_cksum(struct ipv4_hdr *ip_h) +ipv4_hdr_cksum(struct rte_ipv4_hdr *ip_h) { uint16_t *v16_h; uint32_t ip_cksum; @@ -278,7 +277,7 @@ reply_to_icmp_echo_rqsts(struct fwd_stream *fs) struct rte_ether_hdr *eth_h; struct rte_vlan_hdr *vlan_h; struct rte_arp_hdr *arp_h; - struct ipv4_hdr *ip_h; + struct rte_ipv4_hdr *ip_h; struct rte_icmp_hdr *icmp_h; struct rte_ether_addr eth_addr; uint32_t retry; @@ -293,27 +292,19 @@ reply_to_icmp_echo_rqsts(struct fwd_stream *fs) uint32_t cksum; uint8_t i; int l2_len; -#ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES - uint64_t start_tsc; - uint64_t end_tsc; - uint64_t core_cycles; -#endif + uint64_t start_tsc = 0; -#ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES - start_tsc = rte_rdtsc(); -#endif + get_start_cycles(&start_tsc); /* * First, receive a burst of packets. */ nb_rx = rte_eth_rx_burst(fs->rx_port, fs->rx_queue, pkts_burst, nb_pkt_per_burst); + inc_rx_burst_stats(fs, nb_rx); if (unlikely(nb_rx == 0)) return; -#ifdef RTE_TEST_PMD_RECORD_BURST_STATS - fs->rx_burst_stats.pkt_burst_spread[nb_rx]++; -#endif fs->rx_packets += nb_rx; nb_replies = 0; for (i = 0; i < nb_rx; i++) { @@ -327,8 +318,8 @@ reply_to_icmp_echo_rqsts(struct fwd_stream *fs) if (verbose_level > 0) { printf("\nPort %d pkt-len=%u nb-segs=%u\n", fs->rx_port, pkt->pkt_len, pkt->nb_segs); - ether_addr_dump(" ETH: src=", ð_h->s_addr); - ether_addr_dump(" dst=", ð_h->d_addr); + ether_addr_dump(" ETH: src=", ð_h->src_addr); + ether_addr_dump(" dst=", ð_h->dst_addr); } if (eth_type == RTE_ETHER_TYPE_VLAN) { vlan_h = (struct rte_vlan_hdr *) @@ -360,7 +351,7 @@ reply_to_icmp_echo_rqsts(struct fwd_stream *fs) } if ((RTE_BE_TO_CPU_16(arp_h->arp_hardware) != RTE_ARP_HRD_ETHER) || - (arp_pro != RTE_ETHER_TYPE_IPv4) || + (arp_pro != RTE_ETHER_TYPE_IPV4) || (arp_h->arp_hlen != 6) || (arp_h->arp_plen != 4) ) { @@ -393,17 +384,17 @@ reply_to_icmp_echo_rqsts(struct fwd_stream *fs) */ /* Use source MAC address as destination MAC address. */ - rte_ether_addr_copy(ð_h->s_addr, ð_h->d_addr); + rte_ether_addr_copy(ð_h->src_addr, ð_h->dst_addr); /* Set source MAC address with MAC address of TX port */ rte_ether_addr_copy(&ports[fs->tx_port].eth_addr, - ð_h->s_addr); + ð_h->src_addr); arp_h->arp_opcode = rte_cpu_to_be_16(RTE_ARP_OP_REPLY); rte_ether_addr_copy(&arp_h->arp_data.arp_tha, ð_addr); rte_ether_addr_copy(&arp_h->arp_data.arp_sha, &arp_h->arp_data.arp_tha); - rte_ether_addr_copy(ð_h->s_addr, + rte_ether_addr_copy(ð_h->src_addr, &arp_h->arp_data.arp_sha); /* Swap IP addresses in ARP payload */ @@ -414,11 +405,11 @@ reply_to_icmp_echo_rqsts(struct fwd_stream *fs) continue; } - if (eth_type != RTE_ETHER_TYPE_IPv4) { + if (eth_type != RTE_ETHER_TYPE_IPV4) { rte_pktmbuf_free(pkt); continue; } - ip_h = (struct ipv4_hdr *) ((char *)eth_h + l2_len); + ip_h = (struct rte_ipv4_hdr *) ((char *)eth_h + l2_len); if (verbose_level > 0) { ipv4_addr_dump(" IPV4: src=", ip_h->src_addr); ipv4_addr_dump(" dst=", ip_h->dst_addr); @@ -431,9 +422,9 @@ reply_to_icmp_echo_rqsts(struct fwd_stream *fs) * Check if packet is a ICMP echo request. */ icmp_h = (struct rte_icmp_hdr *) ((char *)ip_h + - sizeof(struct ipv4_hdr)); + sizeof(struct rte_ipv4_hdr)); if (! ((ip_h->next_proto_id == IPPROTO_ICMP) && - (icmp_h->icmp_type == IP_ICMP_ECHO_REQUEST) && + (icmp_h->icmp_type == RTE_IP_ICMP_ECHO_REQUEST) && (icmp_h->icmp_code == 0))) { rte_pktmbuf_free(pkt); continue; @@ -457,13 +448,13 @@ reply_to_icmp_echo_rqsts(struct fwd_stream *fs) * - switch the request IP source and destination * addresses in the reply IP header, * - keep the IP header checksum unchanged. - * - set IP_ICMP_ECHO_REPLY in ICMP header. + * - set RTE_IP_ICMP_ECHO_REPLY in ICMP header. * ICMP checksum is computed by assuming it is valid in the * echo request and not verified. */ - rte_ether_addr_copy(ð_h->s_addr, ð_addr); - rte_ether_addr_copy(ð_h->d_addr, ð_h->s_addr); - rte_ether_addr_copy(ð_addr, ð_h->d_addr); + rte_ether_addr_copy(ð_h->src_addr, ð_addr); + rte_ether_addr_copy(ð_h->dst_addr, ð_h->src_addr); + rte_ether_addr_copy(ð_addr, ð_h->dst_addr); ip_addr = ip_h->src_addr; if (is_multicast_ipv4_addr(ip_h->dst_addr)) { uint32_t ip_src; @@ -480,10 +471,10 @@ reply_to_icmp_echo_rqsts(struct fwd_stream *fs) ip_h->src_addr = ip_h->dst_addr; ip_h->dst_addr = ip_addr; } - icmp_h->icmp_type = IP_ICMP_ECHO_REPLY; + icmp_h->icmp_type = RTE_IP_ICMP_ECHO_REPLY; cksum = ~icmp_h->icmp_cksum & 0xffff; - cksum += ~htons(IP_ICMP_ECHO_REQUEST << 8) & 0xffff; - cksum += htons(IP_ICMP_ECHO_REPLY << 8); + cksum += ~RTE_BE16(RTE_IP_ICMP_ECHO_REQUEST << 8) & 0xffff; + cksum += RTE_BE16(RTE_IP_ICMP_ECHO_REPLY << 8); cksum = (cksum & 0xffff) + (cksum >> 16); cksum = (cksum & 0xffff) + (cksum >> 16); icmp_h->icmp_cksum = ~cksum; @@ -509,9 +500,7 @@ reply_to_icmp_echo_rqsts(struct fwd_stream *fs) } } fs->tx_packets += nb_tx; -#ifdef RTE_TEST_PMD_RECORD_BURST_STATS - fs->tx_burst_stats.pkt_burst_spread[nb_tx]++; -#endif + inc_tx_burst_stats(fs, nb_tx); if (unlikely(nb_tx < nb_replies)) { fs->fwd_dropped += (nb_replies - nb_tx); do { @@ -520,11 +509,7 @@ reply_to_icmp_echo_rqsts(struct fwd_stream *fs) } } -#ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES - end_tsc = rte_rdtsc(); - core_cycles = (end_tsc - start_tsc); - fs->core_cycles = (uint64_t) (fs->core_cycles + core_cycles); -#endif + get_end_cycles(fs, start_tsc); } struct fwd_engine icmp_echo_engine = {