X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fserver_node_efd%2Fnode%2Fnode.c;h=4580a44e3e5ddd8521b7b49e0e9f8d8d26949626;hb=9a212dc06c7aaf09b146d9c3dcfd584d741634c1;hp=c8ce391f13818b638146a0b50361df40fc65e59f;hpb=47523597ff6c6ecf5e26e9bd149ab74cca5ec598;p=dpdk.git diff --git a/examples/server_node_efd/node/node.c b/examples/server_node_efd/node/node.c index c8ce391f13..4580a44e3e 100644 --- a/examples/server_node_efd/node/node.c +++ b/examples/server_node_efd/node/node.c @@ -1,34 +1,5 @@ -/*- - * BSD LICENSE - * - * Copyright(c) 2016-2017 Intel Corporation. All rights reserved. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Intel Corporation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2016-2017 Intel Corporation */ #include @@ -57,7 +28,6 @@ #include #include #include -#include #include #include #include @@ -219,6 +189,8 @@ configure_output_ports(const struct shared_info *info) * the node will handle, which will be used to decide if packet * is transmitted or dropped. */ + +/* Creation of hash table. 8< */ static struct rte_hash * create_hash_table(const struct shared_info *info) { @@ -273,6 +245,7 @@ populate_hash_table(const struct rte_hash *h, const struct shared_info *info) printf("Hash table: Adding 0x%x keys\n", num_flows_node); } +/* >8 End of creation of hash table. */ /* * This function performs routing of packets @@ -293,10 +266,11 @@ transmit_packet(struct rte_mbuf *buf) } +/* Packets dequeued from the shared ring. 8< */ static inline void handle_packets(struct rte_hash *h, struct rte_mbuf **bufs, uint16_t num_packets) { - struct ipv4_hdr *ipv4_hdr; + struct rte_ipv4_hdr *ipv4_hdr; uint32_t ipv4_dst_ip[PKT_READ_SIZE]; const void *key_ptrs[PKT_READ_SIZE]; unsigned int i; @@ -304,8 +278,8 @@ handle_packets(struct rte_hash *h, struct rte_mbuf **bufs, uint16_t num_packets) for (i = 0; i < num_packets; i++) { /* Handle IPv4 header.*/ - ipv4_hdr = rte_pktmbuf_mtod_offset(bufs[i], struct ipv4_hdr *, - sizeof(struct ether_hdr)); + ipv4_hdr = rte_pktmbuf_mtod_offset(bufs[i], + struct rte_ipv4_hdr *, sizeof(struct rte_ether_hdr)); ipv4_dst_ip[i] = ipv4_hdr->dst_addr; key_ptrs[i] = &ipv4_dst_ip[i]; } @@ -323,6 +297,7 @@ handle_packets(struct rte_hash *h, struct rte_mbuf **bufs, uint16_t num_packets) } } } +/* >8 End of packets dequeueing. */ /* * Application main function - loops through @@ -350,9 +325,10 @@ main(int argc, char *argv[]) if (parse_app_args(argc, argv) < 0) rte_exit(EXIT_FAILURE, "Invalid command-line arguments\n"); - if (rte_eth_dev_count() == 0) + if (rte_eth_dev_count_avail() == 0) rte_exit(EXIT_FAILURE, "No Ethernet ports - bye\n"); + /* Attaching to the server process memory. 8< */ rx_ring = rte_ring_lookup(get_rx_queue_name(node_id)); if (rx_ring == NULL) rte_exit(EXIT_FAILURE, "Cannot get RX ring - " @@ -368,6 +344,7 @@ main(int argc, char *argv[]) info = mz->addr; tx_stats = &(info->tx_stats[node_id]); filter_stats = &(info->filter_stats[node_id]); + /* >8 End of attaching to the server process memory. */ configure_output_ports(info); @@ -413,4 +390,7 @@ main(int argc, char *argv[]) need_flush = 1; } + + /* clean up the EAL */ + rte_eal_cleanup(); }