git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
doc: use code snippets in sample app guides
[dpdk.git]
/
examples
/
server_node_efd
/
node
/
node.c
diff --git
a/examples/server_node_efd/node/node.c
b/examples/server_node_efd/node/node.c
index
84f7bcf
..
4580a44
100644
(file)
--- 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.
*/
* 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)
{
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);
}
printf("Hash table: Adding 0x%x keys\n", num_flows_node);
}
+/* >8 End of creation of hash table. */
/*
* This function performs routing of packets
/*
* 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)
{
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;
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.*/
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];
}
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
/*
* Application main function - loops through
@@
-320,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 (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");
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 - "
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]);
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);
configure_output_ports(info);
@@
-383,4
+390,7
@@
main(int argc, char *argv[])
need_flush = 1;
}
need_flush = 1;
}
+
+ /* clean up the EAL */
+ rte_eal_cleanup();
}
}