X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fbond%2Fmain.c;h=335bde5c8d866e037b602ff57d27535f805760c8;hb=3cec73fabb2c7d98d2ac4bda480508412f5cfb96;hp=8608285b686e4289ddbd2933cb8d7d59b2618436;hpb=f2fc83b40f06da6a6b2476005279ba52d4ce3c44;p=dpdk.git diff --git a/examples/bond/main.c b/examples/bond/main.c index 8608285b68..335bde5c8d 100644 --- a/examples/bond/main.c +++ b/examples/bond/main.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include #include @@ -41,6 +40,10 @@ #include #include #include +#include +#include +#include +#include #include #include @@ -53,13 +56,6 @@ #include "main.h" -#include - - -#include "rte_byteorder.h" -#include "rte_cpuflags.h" -#include "rte_eth_bond.h" - #define RTE_LOGTYPE_DCB RTE_LOGTYPE_USER1 #define NB_MBUF (1024*8) @@ -107,8 +103,7 @@ #define MAX_PORTS 4 #define PRINT_MAC(addr) printf("%02"PRIx8":%02"PRIx8":%02"PRIx8 \ ":%02"PRIx8":%02"PRIx8":%02"PRIx8, \ - addr.addr_bytes[0], addr.addr_bytes[1], addr.addr_bytes[2], \ - addr.addr_bytes[3], addr.addr_bytes[4], addr.addr_bytes[5]) + RTE_ETHER_ADDR_BYTES(&addr)) uint16_t slaves[RTE_MAX_ETHPORTS]; uint16_t slaves_count; @@ -119,18 +114,17 @@ static struct rte_mempool *mbuf_pool; static struct rte_eth_conf port_conf = { .rxmode = { - .mq_mode = ETH_MQ_RX_NONE, - .max_rx_pkt_len = RTE_ETHER_MAX_LEN, + .mq_mode = RTE_ETH_MQ_RX_NONE, .split_hdr_size = 0, }, .rx_adv_conf = { .rss_conf = { .rss_key = NULL, - .rss_hf = ETH_RSS_IP, + .rss_hf = RTE_ETH_RSS_IP, }, }, .txmode = { - .mq_mode = ETH_MQ_TX_NONE, + .mq_mode = RTE_ETH_MQ_TX_NONE, }, }; @@ -154,9 +148,9 @@ slave_port_init(uint16_t portid, struct rte_mempool *mbuf_pool) "Error during getting device (port %u) info: %s\n", portid, strerror(-retval)); - if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE) + if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE) local_port_conf.txmode.offloads |= - DEV_TX_OFFLOAD_MBUF_FAST_FREE; + RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE; local_port_conf.rx_adv_conf.rss_conf.rss_hf &= dev_info.flow_type_rss_offloads; @@ -236,7 +230,7 @@ bond_port_init(struct rte_mempool *mbuf_pool) 0 /*SOCKET_ID_ANY*/); if (retval < 0) rte_exit(EXIT_FAILURE, - "Faled to create bond port\n"); + "Failed to create bond port\n"); BOND_PORT = retval; @@ -246,9 +240,9 @@ bond_port_init(struct rte_mempool *mbuf_pool) "Error during getting device (port %u) info: %s\n", BOND_PORT, strerror(-retval)); - if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE) + if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE) local_port_conf.txmode.offloads |= - DEV_TX_OFFLOAD_MBUF_FAST_FREE; + RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE; retval = rte_eth_dev_configure(BOND_PORT, 1, 1, &local_port_conf); if (retval != 0) rte_exit(EXIT_FAILURE, "port %u: configuration failed (res=%d)\n", @@ -362,7 +356,7 @@ struct global_flag_stru_t *global_flag_stru_p = &global_flag_stru; static int lcore_main(__rte_unused void *arg1) { struct rte_mbuf *pkts[MAX_PKT_BURST] __rte_cache_aligned; - struct rte_ether_addr d_addr; + struct rte_ether_addr dst_addr; struct rte_ether_addr bond_mac_addr; struct rte_ether_hdr *eth_hdr; @@ -411,7 +405,7 @@ static int lcore_main(__rte_unused void *arg1) struct rte_ether_hdr *); ether_type = eth_hdr->ether_type; if (ether_type == rte_cpu_to_be_16(RTE_ETHER_TYPE_VLAN)) - printf("VLAN taged frame, offset:"); + printf("VLAN tagged frame, offset:"); offset = get_vlan_offset(eth_hdr, ðer_type); if (offset > 0) printf("%d\n", offset); @@ -426,13 +420,13 @@ static int lcore_main(__rte_unused void *arg1) if (arp_hdr->arp_opcode == rte_cpu_to_be_16(RTE_ARP_OP_REQUEST)) { arp_hdr->arp_opcode = rte_cpu_to_be_16(RTE_ARP_OP_REPLY); /* Switch src and dst data and set bonding MAC */ - rte_ether_addr_copy(ð_hdr->s_addr, ð_hdr->d_addr); - rte_ether_addr_copy(&bond_mac_addr, ð_hdr->s_addr); + rte_ether_addr_copy(ð_hdr->src_addr, ð_hdr->dst_addr); + rte_ether_addr_copy(&bond_mac_addr, ð_hdr->src_addr); rte_ether_addr_copy(&arp_hdr->arp_data.arp_sha, &arp_hdr->arp_data.arp_tha); arp_hdr->arp_data.arp_tip = arp_hdr->arp_data.arp_sip; - rte_ether_addr_copy(&bond_mac_addr, &d_addr); - rte_ether_addr_copy(&d_addr, &arp_hdr->arp_data.arp_sha); + rte_ether_addr_copy(&bond_mac_addr, &dst_addr); + rte_ether_addr_copy(&dst_addr, &arp_hdr->arp_data.arp_sha); arp_hdr->arp_data.arp_sip = bond_ip; rte_eth_tx_burst(BOND_PORT, 0, &pkts[i], 1); is_free = 1; @@ -447,8 +441,10 @@ static int lcore_main(__rte_unused void *arg1) } ipv4_hdr = (struct rte_ipv4_hdr *)((char *)(eth_hdr + 1) + offset); if (ipv4_hdr->dst_addr == bond_ip) { - rte_ether_addr_copy(ð_hdr->s_addr, ð_hdr->d_addr); - rte_ether_addr_copy(&bond_mac_addr, ð_hdr->s_addr); + rte_ether_addr_copy(ð_hdr->src_addr, + ð_hdr->dst_addr); + rte_ether_addr_copy(&bond_mac_addr, + ð_hdr->src_addr); ipv4_hdr->dst_addr = ipv4_hdr->src_addr; ipv4_hdr->src_addr = bond_ip; rte_eth_tx_burst(BOND_PORT, 0, &pkts[i], 1); @@ -523,8 +519,8 @@ static void cmd_obj_send_parsed(void *parsed_result, created_pkt->pkt_len = pkt_size; eth_hdr = rte_pktmbuf_mtod(created_pkt, struct rte_ether_hdr *); - rte_ether_addr_copy(&bond_mac_addr, ð_hdr->s_addr); - memset(ð_hdr->d_addr, 0xFF, RTE_ETHER_ADDR_LEN); + rte_ether_addr_copy(&bond_mac_addr, ð_hdr->src_addr); + memset(ð_hdr->dst_addr, 0xFF, RTE_ETHER_ADDR_LEN); eth_hdr->ether_type = rte_cpu_to_be_16(RTE_ETHER_TYPE_ARP); arp_hdr = (struct rte_arp_hdr *)( @@ -573,7 +569,7 @@ static void cmd_start_parsed(__rte_unused void *parsed_result, struct cmdline *cl, __rte_unused void *data) { - int slave_core_id = rte_lcore_id(); + int worker_core_id = rte_lcore_id(); rte_spinlock_trylock(&global_flag_stru_p->lock); if (global_flag_stru_p->LcoreMainIsRunning == 0) { @@ -590,9 +586,9 @@ static void cmd_start_parsed(__rte_unused void *parsed_result, return; } - /* start lcore main on core != master_core - ARP response thread */ - slave_core_id = rte_get_next_lcore(rte_lcore_id(), 1, 0); - if ((slave_core_id >= RTE_MAX_LCORE) || (slave_core_id == 0)) + /* start lcore main on core != main_core - ARP response thread */ + worker_core_id = rte_get_next_lcore(rte_lcore_id(), 1, 0); + if ((worker_core_id >= RTE_MAX_LCORE) || (worker_core_id == 0)) return; rte_spinlock_trylock(&global_flag_stru_p->lock); @@ -601,8 +597,8 @@ static void cmd_start_parsed(__rte_unused void *parsed_result, cmdline_printf(cl, "Starting lcore_main on core %d:%d " "Our IP:%d.%d.%d.%d\n", - slave_core_id, - rte_eal_remote_launch(lcore_main, NULL, slave_core_id), + worker_core_id, + rte_eal_remote_launch(lcore_main, NULL, worker_core_id), BOND_IP_1, BOND_IP_2, BOND_IP_3, @@ -802,7 +798,7 @@ cmdline_parse_ctx_t main_ctx[] = { NULL, }; -/* prompt function, called from main on MASTER lcore */ +/* prompt function, called from main on MAIN lcore */ static void prompt(__rte_unused void *arg1) { struct cmdline *cl; @@ -818,7 +814,7 @@ static void prompt(__rte_unused void *arg1) int main(int argc, char *argv[]) { - int ret, slave_core_id; + int ret, worker_core_id; uint16_t nb_ports, i; /* init EAL */ @@ -852,23 +848,23 @@ main(int argc, char *argv[]) rte_spinlock_init(&global_flag_stru_p->lock); /* check state of lcores */ - RTE_LCORE_FOREACH_SLAVE(slave_core_id) { - if (rte_eal_get_lcore_state(slave_core_id) != WAIT) + RTE_LCORE_FOREACH_WORKER(worker_core_id) { + if (rte_eal_get_lcore_state(worker_core_id) != WAIT) return -EBUSY; } - /* start lcore main on core != master_core - ARP response thread */ - slave_core_id = rte_get_next_lcore(rte_lcore_id(), 1, 0); - if ((slave_core_id >= RTE_MAX_LCORE) || (slave_core_id == 0)) + /* start lcore main on core != main_core - ARP response thread */ + worker_core_id = rte_get_next_lcore(rte_lcore_id(), 1, 0); + if ((worker_core_id >= RTE_MAX_LCORE) || (worker_core_id == 0)) return -EPERM; global_flag_stru_p->LcoreMainIsRunning = 1; - global_flag_stru_p->LcoreMainCore = slave_core_id; + global_flag_stru_p->LcoreMainCore = worker_core_id; printf("Starting lcore_main on core %d:%d Our IP:%d.%d.%d.%d\n", - slave_core_id, + worker_core_id, rte_eal_remote_launch((lcore_function_t *)lcore_main, NULL, - slave_core_id), + worker_core_id), BOND_IP_1, BOND_IP_2, BOND_IP_3, @@ -879,5 +875,9 @@ main(int argc, char *argv[]) prompt(NULL); rte_delay_ms(100); + + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; }