X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fl2fwd-keepalive%2Fmain.c;h=af59d51b3ec4b39700ac0da566fd31af3998e718;hb=94ddd501654d59fd3a6911e1770f35d86a89cfe1;hp=e4c2b27933058cafd24b84a3ae881471dc03d23a;hpb=cb056611a8ed9ab9024f3b91bf26e97255194514;p=dpdk.git diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c index e4c2b27933..af59d51b3e 100644 --- a/examples/l2fwd-keepalive/main.c +++ b/examples/l2fwd-keepalive/main.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include #include @@ -177,11 +176,11 @@ l2fwd_simple_forward(struct rte_mbuf *m, unsigned portid) eth = rte_pktmbuf_mtod(m, struct rte_ether_hdr *); /* 02:00:00:00:00:xx */ - tmp = ð->d_addr.addr_bytes[0]; + tmp = ð->dst_addr.addr_bytes[0]; *((uint64_t *)tmp) = 0x000000000002 + ((uint64_t)dst_port << 40); /* src addr */ - rte_ether_addr_copy(&l2fwd_ports_eth_addr[dst_port], ð->s_addr); + rte_ether_addr_copy(&l2fwd_ports_eth_addr[dst_port], ð->src_addr); buffer = tx_buffer[dst_port]; sent = rte_eth_tx_buffer(dst_port, 0, buffer, m); @@ -227,7 +226,7 @@ l2fwd_main_loop(void) uint64_t tsc_lifetime = (rand()&0x07) * rte_get_tsc_hz(); while (!terminate_signal_received) { - /* Keepalive heartbeat */ + /* Keepalive heartbeat. 8< */ rte_keepalive_mark_alive(rte_global_keepalive_info); cur_tsc = rte_rdtsc(); @@ -238,6 +237,7 @@ l2fwd_main_loop(void) */ if (check_period > 0 && cur_tsc - tsc_initial > tsc_lifetime) break; + /* >8 End of keepalive heartbeat. */ /* * TX burst queue drain @@ -729,14 +729,9 @@ main(int argc, char **argv) rte_strerror(-ret), portid); printf("Port %u, MAC address: " - "%02X:%02X:%02X:%02X:%02X:%02X\n\n", + RTE_ETHER_ADDR_PRT_FMT "\n\n", portid, - l2fwd_ports_eth_addr[portid].addr_bytes[0], - l2fwd_ports_eth_addr[portid].addr_bytes[1], - l2fwd_ports_eth_addr[portid].addr_bytes[2], - l2fwd_ports_eth_addr[portid].addr_bytes[3], - l2fwd_ports_eth_addr[portid].addr_bytes[4], - l2fwd_ports_eth_addr[portid].addr_bytes[5]); + RTE_ETHER_ADDR_BYTES(&l2fwd_ports_eth_addr[portid])); /* initialize port stats */ memset(&port_statistics, 0, sizeof(port_statistics)); @@ -760,10 +755,12 @@ main(int argc, char **argv) if (ka_shm == NULL) rte_exit(EXIT_FAILURE, "rte_keepalive_shm_create() failed"); + /* Initialize keepalive functionality. 8< */ rte_global_keepalive_info = rte_keepalive_create(&dead_core, ka_shm); if (rte_global_keepalive_info == NULL) rte_exit(EXIT_FAILURE, "init_keep_alive() failed"); + /* >8 End of initializing keepalive functionality. */ rte_keepalive_register_relay_callback(rte_global_keepalive_info, relay_core_state, ka_shm); rte_timer_init(&hb_timer); @@ -778,6 +775,7 @@ main(int argc, char **argv) rte_exit(EXIT_FAILURE, "Keepalive setup failure.\n"); } if (timer_period > 0) { + /* Issues the pings keepalive_dispatch_pings(). 8< */ if (rte_timer_reset(&stats_timer, (timer_period * rte_get_timer_hz()) / 1000, PERIODICAL, @@ -785,6 +783,7 @@ main(int argc, char **argv) &print_stats, NULL ) != 0 ) rte_exit(EXIT_FAILURE, "Stats setup failure.\n"); + /* >8 End of issuing the pings keepalive_dispatch_pings(). */ } /* launch per-lcore init on every worker lcore */ RTE_LCORE_FOREACH_WORKER(lcore_id) { @@ -817,5 +816,9 @@ main(int argc, char **argv) if (ka_shm != NULL) rte_keepalive_shm_cleanup(ka_shm); + + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; }