X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fl2fwd-keepalive%2Fmain.c;h=af59d51b3ec4b39700ac0da566fd31af3998e718;hb=94ddd501654d59fd3a6911e1770f35d86a89cfe1;hp=d0e8bf3cceb12e39da87d5579098668de0c9786d;hpb=db4e81351fb85ff623bd0438d1b5a8fb55fe9fee;p=dpdk.git diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c index d0e8bf3cce..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,9 +783,10 @@ 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 slave lcore */ - RTE_LCORE_FOREACH_SLAVE(lcore_id) { + /* launch per-lcore init on every worker lcore */ + RTE_LCORE_FOREACH_WORKER(lcore_id) { struct lcore_queue_conf *qconf = &lcore_queue_conf[lcore_id]; if (qconf->n_rx_port == 0) @@ -810,12 +809,16 @@ main(int argc, char **argv) rte_delay_ms(5); } - RTE_LCORE_FOREACH_SLAVE(lcore_id) { + RTE_LCORE_FOREACH_WORKER(lcore_id) { if (rte_eal_wait_lcore(lcore_id) < 0) return -1; } if (ka_shm != NULL) rte_keepalive_shm_cleanup(ka_shm); + + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; }