X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=examples%2Fserver_node_efd%2Fnode%2Fnode.c;h=4580a44e3e5ddd8521b7b49e0e9f8d8d26949626;hb=9a212dc06c7aaf09b146d9c3dcfd584d741634c1;hp=8bec351ec125c55a9de15e2137f021b887f9c762;hpb=6d13ea8e8e49ab957deae2bba5ecf4a4bfe747d1;p=dpdk.git diff --git a/examples/server_node_efd/node/node.c b/examples/server_node_efd/node/node.c index 8bec351ec1..4580a44e3e 100644 --- a/examples/server_node_efd/node/node.c +++ b/examples/server_node_efd/node/node.c @@ -189,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) { @@ -243,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 @@ -263,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; @@ -274,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 rte_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]; } @@ -293,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 @@ -323,6 +328,7 @@ main(int argc, char *argv[]) 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 - " @@ -338,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); @@ -383,4 +390,7 @@ main(int argc, char *argv[]) need_flush = 1; } + + /* clean up the EAL */ + rte_eal_cleanup(); }