* [PATCH] app/graph: generate cmdline boilerplate @ 2023-12-07 7:12 skori 2023-12-07 10:29 ` Bruce Richardson 2023-12-12 17:05 ` [PATCH v2 1/1] " skori 0 siblings, 2 replies; 9+ messages in thread From: skori @ 2023-12-07 7:12 UTC (permalink / raw) To: Sunil Kumar Kori, Rakesh Kudurumalla; +Cc: dev From: Sunil Kumar Kori <skori@marvell.com> Use the dpdk-cmdline-gen script to autogenerate all the boilerplate structs and defines for the commandline part of the application. Depends-on: series-30459 ("enhancements for dpdk-cmdline-gen script") Signed-off-by: Sunil Kumar Kori <skori@marvell.com> --- app/graph/cli.c | 27 --- app/graph/commands.list | 32 ++++ app/graph/ethdev.c | 288 +++++------------------------- app/graph/ethdev.h | 9 - app/graph/ethdev_priv.h | 63 ------- app/graph/ethdev_rx.c | 67 +------ app/graph/ethdev_rx.h | 2 - app/graph/ethdev_rx_priv.h | 16 -- app/graph/examples/l3fwd.cli | 12 +- app/graph/examples/l3fwd_pcap.cli | 12 +- app/graph/graph.c | 131 ++------------ app/graph/graph.h | 5 - app/graph/graph_priv.h | 35 ---- app/graph/ip4_route.c | 86 ++------- app/graph/ip6_route.c | 88 ++------- app/graph/mempool.c | 68 +------ app/graph/mempool.h | 3 - app/graph/mempool_priv.h | 18 -- app/graph/meson.build | 8 + app/graph/module_api.h | 1 + app/graph/neigh.c | 103 ++--------- app/graph/neigh.h | 4 - app/graph/neigh_priv.h | 21 --- app/graph/route.h | 5 - app/graph/route_priv.h | 34 ---- 25 files changed, 164 insertions(+), 974 deletions(-) create mode 100644 app/graph/commands.list diff --git a/app/graph/cli.c b/app/graph/cli.c index 30b12312d6..0f23aa2586 100644 --- a/app/graph/cli.c +++ b/app/graph/cli.c @@ -19,33 +19,6 @@ #define CMD_MAX_TOKENS 256 #define MAX_LINE_SIZE 2048 -cmdline_parse_ctx_t modules_ctx[] = { - (cmdline_parse_inst_t *)&graph_config_cmd_ctx, - (cmdline_parse_inst_t *)&graph_start_cmd_ctx, - (cmdline_parse_inst_t *)&graph_stats_cmd_ctx, - (cmdline_parse_inst_t *)&graph_help_cmd_ctx, - (cmdline_parse_inst_t *)&mempool_config_cmd_ctx, - (cmdline_parse_inst_t *)&mempool_help_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_show_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_stats_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_mtu_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_prom_mode_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_ip4_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_ip6_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_help_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_rx_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_rx_help_cmd_ctx, - (cmdline_parse_inst_t *)&ipv4_lookup_cmd_ctx, - (cmdline_parse_inst_t *)&ipv4_lookup_help_cmd_ctx, - (cmdline_parse_inst_t *)&ipv6_lookup_cmd_ctx, - (cmdline_parse_inst_t *)&ipv6_lookup_help_cmd_ctx, - (cmdline_parse_inst_t *)&neigh_v4_cmd_ctx, - (cmdline_parse_inst_t *)&neigh_v6_cmd_ctx, - (cmdline_parse_inst_t *)&neigh_help_cmd_ctx, - NULL, -}; - static struct cmdline *cl; static int diff --git a/app/graph/commands.list b/app/graph/commands.list new file mode 100644 index 0000000000..1f3f43cdba --- /dev/null +++ b/app/graph/commands.list @@ -0,0 +1,32 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2023 Marvell. +# +graph <STRING>usecase coremask <UINT64>mask bsz <UINT16>size tmo <UINT64>ns model <(rtc,mcd,default)>model_name <(pcap_enable)>capt_ena <UINT8>pcap_ena <(num_pcap_pkts)>capt_pkts_count <UINT64>num_pcap_pkts <(pcap_file)>capt_file <STRING>pcap_file # Command to create graph for given usecase +graph start # Comanmd to start a graph +graph stats show # Command to dump graph stats +help graph # Print help on graph commands + +mempool <STRING>name size <UINT16>buf_sz buffers <UINT16>nb_bufs cache <UINT16>cache_size numa <UINT16>node # Create mempool +help mempool # Print help on mempool commands + +ethdev <STRING>dev rxq <UINT16>nb_rxq txq <UINT16>nb_txq <STRING>mempool # Create Ethernet device +ethdev <STRING>__dev mtu <UINT16>size # Set MTU on Ethernet device +ethdev <STRING>__dev promiscuous <(on,off)>enable # Set promiscuous mode on Ethernet device +ethdev <STRING>__dev show # Command to dump Ethernet device info +ethdev <STRING>__dev stats # Command to dump Ethernet device stats +ethdev <STRING>__dev ip4 addr add <IPv4>ip netmask <IPv4>mask # Set IPv4 address on Ethernet device +ethdev <STRING>__dev ip6 addr add <IPv6>ip netmask <IPv6>mask # Set IPv6 address on Ethernet device +help ethdev # Print help on ethdev commands + +ethdev_rx map port <STRING>dev queue <UINT32>qid core <UINT32>core_id # Port-Queue-Core mapping +help ethdev_rx # Print help on ethdev_rx commands + +ipv4_lookup route add ipv4 <IPv4>ip netmask <IPv4>mask via <IPv4>via_ip # Add IPv4 route to LPM table +help ipv4_lookup # Print help on ipv4_lookup commands + +ipv6_lookup route add ipv6 <IPv6>ip netmask <IPv6>mask via <IPv6>via_ip # Add IPv6 route to LPM6 table +help ipv6_lookup # Print help on ipv6_lookup commands + +neigh add ipv4 <IPv4>ip <STRING>mac # Add static neighbour for IPv4 +neigh add ipv6 <IPv6>ip <STRING>mac # Add static neighbour for IPv6 +help neigh # Print help on neigh commands diff --git a/app/graph/ethdev.c b/app/graph/ethdev.c index c9b09168c1..c64cac10f1 100644 --- a/app/graph/ethdev.c +++ b/app/graph/ethdev.c @@ -188,7 +188,6 @@ ethdev_start(void) } } - static int ethdev_show(const char *name) { @@ -344,7 +343,6 @@ ethdev_mtu_config(const char *name, uint32_t mtu) return rc; } - static int ethdev_process(const char *name, struct ethdev_config *params) { @@ -560,21 +558,23 @@ ethdev_stats_show(const char *name) return 0; } -static void -cli_ethdev_mtu(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_mtu_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_mtu_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_mtu_result *res = parsed_result; int rc = -EINVAL; rc = ethdev_mtu_config(res->dev, res->size); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev); } -static void -cli_ethdev_prom_mode(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_promiscuous_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_prom_mode_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_promiscuous_result *res = parsed_result; bool enable = false; int rc = -EINVAL; @@ -583,57 +583,49 @@ cli_ethdev_prom_mode(void *parsed_result, __rte_unused struct cmdline *cl, void rc = ethdev_prom_mode_config(res->dev, enable); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev); } -static void -cli_ip4_addr(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_ip4_addr_add_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_ip4_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_ip4_addr_add_result *res = parsed_result; struct ipv4_addr_config config; int rc = -EINVAL; - if (parser_ip4_read(&config.ip, res->ip)) { - printf(MSG_ARG_INVALID, "ip"); - return; - } - - if (parser_ip4_read(&config.mask, res->mask)) { - printf(MSG_ARG_INVALID, "netmask"); - return; - } + config.ip = rte_be_to_cpu_32(res->ip.addr.ipv4.s_addr); + config.mask = rte_be_to_cpu_32(res->mask.addr.ipv4.s_addr); rc = ethdev_ip4_addr_add(res->dev, &config); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev); } -static void -cli_ip6_addr(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_ip6_addr_add_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_ip6_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_ip6_addr_add_result *res = parsed_result; struct ipv6_addr_config config; - int rc = -EINVAL; + int rc = -EINVAL, i; - if (parser_ip6_read(config.ip, res->ip)) { - printf(MSG_ARG_INVALID, "ip"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + config.ip[i] = res->ip.addr.ipv6.s6_addr[i]; - if (parser_ip6_read(config.mask, res->mask)) { - printf(MSG_ARG_INVALID, "netmask"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + config.mask[i] = res->mask.addr.ipv6.s6_addr[i]; rc = ethdev_ip6_addr_add(res->dev, &config); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev); } -static void -cli_ethdev_show(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_show_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_show_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_show_result *res = parsed_result; int rc = -EINVAL; rc = ethdev_show(res->dev); @@ -641,10 +633,11 @@ cli_ethdev_show(void *parsed_result, __rte_unused struct cmdline *cl, void *data printf(MSG_ARG_INVALID, res->dev); } -static void -cli_ethdev_stats(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_stats_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_stats_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_stats_result *res = parsed_result; int rc = -EINVAL; rc = ethdev_stats_show(res->dev); @@ -652,10 +645,10 @@ cli_ethdev_stats(void *parsed_result, __rte_unused struct cmdline *cl, void *dat printf(MSG_ARG_INVALID, res->dev); } -static void -cli_ethdev(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_parsed(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) { - struct ethdev_cmd_tokens *res = parsed_result; + struct cmd_ethdev_result *res = parsed_result; struct ethdev_config config; int rc; @@ -671,12 +664,12 @@ cli_ethdev(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rt rc = ethdev_process(res->dev, &config); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev); } -static void -cli_ethdev_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_ethdev_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -691,200 +684,3 @@ cli_ethdev_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *c len = strlen(conn->msg_out); conn->msg_out_len_max -= len; } - -cmdline_parse_token_string_t ethdev_stats_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_stats_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_stats_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_stats_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_stats_stats = - TOKEN_STRING_INITIALIZER(struct ethdev_stats_cmd_tokens, stats, "stats"); - -cmdline_parse_inst_t ethdev_stats_cmd_ctx = { - .f = cli_ethdev_stats, - .data = NULL, - .help_str = "", - .tokens = { - (void *)ðdev_stats_cmd, - (void *)ðdev_stats_dev, - (void *)ðdev_stats_stats, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_show_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_show_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_show_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_show_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_show_show = - TOKEN_STRING_INITIALIZER(struct ethdev_show_cmd_tokens, show, "show"); - -cmdline_parse_inst_t ethdev_show_cmd_ctx = { - .f = cli_ethdev_show, - .data = NULL, - .help_str = cmd_ethdev_show_help, - .tokens = { - (void *)ðdev_show_cmd, - (void *)ðdev_show_dev, - (void *)ðdev_show_show, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_mtu_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_mtu_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_mtu_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_mtu_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_mtu_mtu = - TOKEN_STRING_INITIALIZER(struct ethdev_mtu_cmd_tokens, mtu, "mtu"); -cmdline_parse_token_num_t ethdev_mtu_size = - TOKEN_NUM_INITIALIZER(struct ethdev_mtu_cmd_tokens, size, RTE_UINT16); - -cmdline_parse_inst_t ethdev_mtu_cmd_ctx = { - .f = cli_ethdev_mtu, - .data = NULL, - .help_str = cmd_ethdev_mtu_help, - .tokens = { - (void *)ðdev_mtu_cmd, - (void *)ðdev_mtu_dev, - (void *)ðdev_mtu_mtu, - (void *)ðdev_mtu_size, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_prom_mode_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_prom_mode_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_prom_mode_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_prom_mode_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_prom_mode_prom = - TOKEN_STRING_INITIALIZER(struct ethdev_prom_mode_cmd_tokens, prom, "promiscuous"); -cmdline_parse_token_string_t ethdev_prom_mode_enable = - TOKEN_STRING_INITIALIZER(struct ethdev_prom_mode_cmd_tokens, enable, "on#off"); - -cmdline_parse_inst_t ethdev_prom_mode_cmd_ctx = { - .f = cli_ethdev_prom_mode, - .data = NULL, - .help_str = cmd_ethdev_prom_mode_help, - .tokens = { - (void *)ðdev_prom_mode_cmd, - (void *)ðdev_prom_mode_dev, - (void *)ðdev_prom_mode_prom, - (void *)ðdev_prom_mode_enable, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_ip4_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_ip4_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_ip4_ip4 = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, ip4, "ip4"); -cmdline_parse_token_string_t ethdev_ip4_addr = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, addr, "addr"); -cmdline_parse_token_string_t ethdev_ip4_add = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, add, "add"); -cmdline_parse_token_string_t ethdev_ip4_ip = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t ethdev_ip4_netmask = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, netmask, "netmask"); -cmdline_parse_token_string_t ethdev_ip4_mask = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, mask, NULL); - -cmdline_parse_inst_t ethdev_ip4_cmd_ctx = { - .f = cli_ip4_addr, - .data = NULL, - .help_str = cmd_ethdev_ip4_addr_help, - .tokens = { - (void *)ðdev_ip4_cmd, - (void *)ðdev_ip4_dev, - (void *)ðdev_ip4_ip4, - (void *)ðdev_ip4_addr, - (void *)ðdev_ip4_add, - (void *)ðdev_ip4_ip, - (void *)ðdev_ip4_netmask, - (void *)ðdev_ip4_mask, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_ip6_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_ip6_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_ip6_ip6 = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, ip6, "ip6"); -cmdline_parse_token_string_t ethdev_ip6_addr = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, addr, "addr"); -cmdline_parse_token_string_t ethdev_ip6_add = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, add, "add"); -cmdline_parse_token_string_t ethdev_ip6_ip = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t ethdev_ip6_netmask = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, netmask, "netmask"); -cmdline_parse_token_string_t ethdev_ip6_mask = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, mask, NULL); - -cmdline_parse_inst_t ethdev_ip6_cmd_ctx = { - .f = cli_ip6_addr, - .data = NULL, - .help_str = cmd_ethdev_ip6_addr_help, - .tokens = { - (void *)ðdev_ip6_cmd, - (void *)ðdev_ip6_dev, - (void *)ðdev_ip6_ip6, - (void *)ðdev_ip6_addr, - (void *)ðdev_ip6_add, - (void *)ðdev_ip6_ip, - (void *)ðdev_ip6_netmask, - (void *)ðdev_ip6_mask, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_rxq = - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, rxq, "rxq"); -cmdline_parse_token_num_t ethdev_nb_rxq = - TOKEN_NUM_INITIALIZER(struct ethdev_cmd_tokens, nb_rxq, RTE_UINT16); -cmdline_parse_token_string_t ethdev_txq = - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, txq, "txq"); -cmdline_parse_token_num_t ethdev_nb_txq = - TOKEN_NUM_INITIALIZER(struct ethdev_cmd_tokens, nb_txq, RTE_UINT16); -cmdline_parse_token_string_t ethdev_mempool = - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, mempool, NULL); - -cmdline_parse_inst_t ethdev_cmd_ctx = { - .f = cli_ethdev, - .data = NULL, - .help_str = cmd_ethdev_help, - .tokens = { - (void *)ðdev_cmd, - (void *)ðdev_dev, - (void *)ðdev_rxq, - (void *)ðdev_nb_rxq, - (void *)ðdev_txq, - (void *)ðdev_nb_txq, - (void *)ðdev_mempool, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_help_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_help_cmd_tokens, help, "help"); -cmdline_parse_token_string_t ethdev_help_ethdev = - TOKEN_STRING_INITIALIZER(struct ethdev_help_cmd_tokens, ethdev, "ethdev"); - -cmdline_parse_inst_t ethdev_help_cmd_ctx = { - .f = cli_ethdev_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)ðdev_help_cmd, - (void *)ðdev_help_ethdev, - NULL, - }, -}; diff --git a/app/graph/ethdev.h b/app/graph/ethdev.h index 94d3247a2c..39ed723b8b 100644 --- a/app/graph/ethdev.h +++ b/app/graph/ethdev.h @@ -9,15 +9,6 @@ #define ETHDEV_IPV6_ADDR_LEN 16 -extern cmdline_parse_inst_t ethdev_show_cmd_ctx; -extern cmdline_parse_inst_t ethdev_stats_cmd_ctx; -extern cmdline_parse_inst_t ethdev_mtu_cmd_ctx; -extern cmdline_parse_inst_t ethdev_prom_mode_cmd_ctx; -extern cmdline_parse_inst_t ethdev_ip4_cmd_ctx; -extern cmdline_parse_inst_t ethdev_ip6_cmd_ctx; -extern cmdline_parse_inst_t ethdev_cmd_ctx; -extern cmdline_parse_inst_t ethdev_help_cmd_ctx; - struct ipv4_addr_config { uint32_t ip; uint32_t mask; diff --git a/app/graph/ethdev_priv.h b/app/graph/ethdev_priv.h index f231f3f3e1..043ca625de 100644 --- a/app/graph/ethdev_priv.h +++ b/app/graph/ethdev_priv.h @@ -13,69 +13,6 @@ #define ETHDEV_RX_DESC_DEFAULT 1024 #define ETHDEV_TX_DESC_DEFAULT 1024 -struct ethdev_show_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t show; -}; - -struct ethdev_stats_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t stats; -}; - -struct ethdev_mtu_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t mtu; - uint16_t size; -}; - -struct ethdev_prom_mode_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t prom; - cmdline_fixed_string_t enable; -}; - -struct ethdev_ip4_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t ip4; - cmdline_fixed_string_t addr; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t netmask; - cmdline_fixed_string_t mask; -}; - -struct ethdev_ip6_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t ip6; - cmdline_fixed_string_t addr; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t netmask; - cmdline_fixed_string_t mask; -}; - -struct ethdev_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t rxq; - cmdline_fixed_string_t txq; - cmdline_fixed_string_t mempool; - uint16_t nb_rxq; - uint16_t nb_txq; -}; - -struct ethdev_help_cmd_tokens { - cmdline_fixed_string_t help; - cmdline_fixed_string_t ethdev; -}; - struct ethdev_rss_config { uint32_t queue_id[ETHDEV_RXQ_RSS_MAX]; uint32_t n_queues; diff --git a/app/graph/ethdev_rx.c b/app/graph/ethdev_rx.c index 03f8effcca..25c439b9a3 100644 --- a/app/graph/ethdev_rx.c +++ b/app/graph/ethdev_rx.c @@ -83,83 +83,34 @@ ethdev_rx_map_add(char *name, uint32_t queue, uint32_t core) return 0; } -static void -cli_ethdev_rx_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_ethdev_rx_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; len = strlen(conn->msg_out); conn->msg_out += len; snprintf(conn->msg_out, conn->msg_out_len_max, "\n%s\n%s\n", - "----------------------------- ethdev_rx command help -----------------------------", + "---------------------------- ethdev_rx command help ----------------------------", cmd_ethdev_rx_help); len = strlen(conn->msg_out); conn->msg_out_len_max -= len; } -static void -cli_ethdev_rx(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_rx_map_port_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_rx_cmd_tokens *res = parsed_result; + struct cmd_ethdev_rx_map_port_result *res = parsed_result; int rc = -EINVAL; rc = ethdev_rx_map_add(res->dev, res->qid, res->core_id); if (rc < 0) { cli_exit(); - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev_rx); rte_exit(EXIT_FAILURE, "input core is Invalid\n"); } } - -cmdline_parse_token_string_t ethdev_rx_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, cmd, "ethdev_rx"); -cmdline_parse_token_string_t ethdev_rx_map = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, map, "map"); -cmdline_parse_token_string_t ethdev_rx_port = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, port, "port"); -cmdline_parse_token_string_t ethdev_rx_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_rx_queue = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, queue, "queue"); -cmdline_parse_token_num_t ethdev_rx_qid = - TOKEN_NUM_INITIALIZER(struct ethdev_rx_cmd_tokens, qid, RTE_UINT32); -cmdline_parse_token_string_t ethdev_rx_core = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, core, "core"); -cmdline_parse_token_num_t ethdev_rx_core_id = - TOKEN_NUM_INITIALIZER(struct ethdev_rx_cmd_tokens, core_id, RTE_UINT32); - -cmdline_parse_inst_t ethdev_rx_cmd_ctx = { - .f = cli_ethdev_rx, - .data = NULL, - .help_str = cmd_ethdev_rx_help, - .tokens = { - (void *)ðdev_rx_cmd, - (void *)ðdev_rx_map, - (void *)ðdev_rx_port, - (void *)ðdev_rx_dev, - (void *)ðdev_rx_queue, - (void *)ðdev_rx_qid, - (void *)ðdev_rx_core, - (void *)ðdev_rx_core_id, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_rx_help_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_help_cmd_tokens, cmd, "help"); -cmdline_parse_token_string_t ethdev_rx_help_module = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_help_cmd_tokens, module, "ethdev_rx"); - -cmdline_parse_inst_t ethdev_rx_help_cmd_ctx = { - .f = cli_ethdev_rx_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)ðdev_rx_help_cmd, - (void *)ðdev_rx_help_module, - NULL, - }, -}; diff --git a/app/graph/ethdev_rx.h b/app/graph/ethdev_rx.h index 8e7b31448c..ec3c97286a 100644 --- a/app/graph/ethdev_rx.h +++ b/app/graph/ethdev_rx.h @@ -29,8 +29,6 @@ uint8_t ethdev_rx_num_rx_queues_get(uint16_t port); extern struct rte_node_ethdev_config ethdev_conf[RTE_MAX_ETHPORTS]; extern struct lcore_conf lcore_conf[RTE_MAX_LCORE]; -extern cmdline_parse_inst_t ethdev_rx_help_cmd_ctx; -extern cmdline_parse_inst_t ethdev_rx_cmd_ctx; extern struct lcore_params *lcore_params; extern uint16_t nb_lcore_params; diff --git a/app/graph/ethdev_rx_priv.h b/app/graph/ethdev_rx_priv.h index 5d155be043..d714f83739 100644 --- a/app/graph/ethdev_rx_priv.h +++ b/app/graph/ethdev_rx_priv.h @@ -14,22 +14,6 @@ #define MAX_JUMBO_PKT_LEN 9600 #define NB_SOCKETS 8 -struct ethdev_rx_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t map; - cmdline_fixed_string_t port; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t queue; - cmdline_fixed_string_t core; - uint32_t core_id; - uint32_t qid; -}; - -struct ethdev_rx_help_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t module; -}; - struct lcore_params { uint16_t port_id; uint8_t queue_id; diff --git a/app/graph/examples/l3fwd.cli b/app/graph/examples/l3fwd.cli index c4977d4322..2badbbfca5 100644 --- a/app/graph/examples/l3fwd.cli +++ b/app/graph/examples/l3fwd.cli @@ -32,8 +32,8 @@ ethdev 0002:03:00.0 ip4 addr add 20.0.2.1 netmask 255.255.255.0 ; ; IPv6 addresses assigned to DPDK devices ; -ethdev 0002:02:00.0 ip6 addr add 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 -ethdev 0002:03:00.0 ip6 addr add 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 +ethdev 0002:02:00.0 ip6 addr add 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 +ethdev 0002:03:00.0 ip6 addr add 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 ; ; IPv4 routes which are installed to ipv4_lookup node for LPM processing @@ -44,8 +44,8 @@ ipv4_lookup route add ipv4 20.0.2.0 netmask 255.255.255.0 via 20.0.2.1 ; ; IPv6 routes which are installed to ipv6_lookup node for LPM processing ; -ipv6_lookup route add ipv6 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 via 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A -ipv6_lookup route add ipv6 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 via 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B +ipv6_lookup route add ipv6 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 via 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A +ipv6_lookup route add ipv6 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 via 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B ; ; Peer MAC and IPv4 address mapping @@ -56,8 +56,8 @@ neigh add ipv4 20.0.2.2 62:20:DA:4F:68:70 ; ; Peer MAC and IPv6 address mapping ; -neigh add ipv6 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A 52:20:DA:4F:68:70 -neigh add ipv6 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B 62:20:DA:4F:68:70 +neigh add ipv6 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A 52:20:DA:4F:68:70 +neigh add ipv6 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B 62:20:DA:4F:68:70 ; ; Port-Queue-Core mapping for ethdev_rx node diff --git a/app/graph/examples/l3fwd_pcap.cli b/app/graph/examples/l3fwd_pcap.cli index 30dde74a65..93e4249444 100644 --- a/app/graph/examples/l3fwd_pcap.cli +++ b/app/graph/examples/l3fwd_pcap.cli @@ -30,8 +30,8 @@ ethdev net_pcap1 ip4 addr add 20.0.2.1 netmask 255.255.255.0 ; ; IPv6 addresses assigned to DPDK devices ; -ethdev net_pcap0 ip6 addr add 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 -ethdev net_pcap1 ip6 addr add 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 +ethdev net_pcap0 ip6 addr add 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 +ethdev net_pcap1 ip6 addr add 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 ; ; IPv4 routes which are installed to ipv4_lookup node for LPM processing @@ -42,8 +42,8 @@ ipv4_lookup route add ipv4 20.0.2.0 netmask 255.255.255.0 via 20.0.2.1 ; ; IPv6 routes which are installed to ipv6_lookup node for LPM processing ; -ipv6_lookup route add ipv6 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 via 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A -ipv6_lookup route add ipv6 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 via 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B +ipv6_lookup route add ipv6 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 via 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A +ipv6_lookup route add ipv6 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 via 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B ; ; Peer MAC and IPv4 address mapping @@ -54,8 +54,8 @@ neigh add ipv4 20.0.2.2 62:20:DA:4F:68:70 ; ; Peer MAC and IPv6 address mapping ; -neigh add ipv6 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A 52:20:DA:4F:68:70 -neigh add ipv6 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B 62:20:DA:4F:68:70 +neigh add ipv6 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A 52:20:DA:4F:68:70 +neigh add ipv6 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B 62:20:DA:4F:68:70 ; ; Port-Queue-Core mapping for ethdev_rx node diff --git a/app/graph/graph.c b/app/graph/graph.c index a65723a196..8e3505d213 100644 --- a/app/graph/graph.c +++ b/app/graph/graph.c @@ -20,7 +20,7 @@ #define RTE_LOGTYPE_APP_GRAPH RTE_LOGTYPE_USER1 static const char -cmd_graph_help[] = "graph <usecases> bsz <size> tmo <ns> coremask <bitmask> " +cmd_graph_help[] = "graph <usecases> coremask <bitmask> bsz <size> tmo <ns> " "model <rtc | mcd | default> pcap_enable <0 | 1> num_pcap_pkts <num>" "pcap_file <output_capture_file>"; @@ -244,8 +244,8 @@ graph_stats_print_to_file(void) fclose(fp); } -static void -cli_graph_stats(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, +void +cmd_graph_stats_show_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) { graph_stats_print_to_file(); @@ -257,8 +257,8 @@ graph_status_get(void) return graph_started; } -static void -cli_graph_start(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, +void +cmd_graph_start_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) { struct rte_node_ethdev_config *conf; @@ -388,10 +388,10 @@ graph_coremask_get(void) return graph_config.params.coremask; } -static void -cli_graph(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) +void +cmd_graph_parsed(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) { - struct graph_config_cmd_tokens *res = parsed_result; + struct cmd_graph_result *res = parsed_result; struct graph_config config; char *model_name; uint8_t model; @@ -424,9 +424,9 @@ cli_graph(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused voi } } -static void -cli_graph_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_graph_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -439,112 +439,3 @@ cli_graph_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl len = strlen(conn->msg_out); conn->msg_out_len_max -= len; } - -cmdline_parse_token_string_t graph_display_graph = - TOKEN_STRING_INITIALIZER(struct graph_stats_cmd_tokens, graph, "graph"); -cmdline_parse_token_string_t graph_display_stats = - TOKEN_STRING_INITIALIZER(struct graph_stats_cmd_tokens, stats, "stats"); -cmdline_parse_token_string_t graph_display_show = - TOKEN_STRING_INITIALIZER(struct graph_stats_cmd_tokens, show, "show"); - -cmdline_parse_inst_t graph_stats_cmd_ctx = { - .f = cli_graph_stats, - .data = NULL, - .help_str = "graph stats show", - .tokens = { - (void *)&graph_display_graph, - (void *)&graph_display_stats, - (void *)&graph_display_show, - NULL, - }, -}; - -cmdline_parse_token_string_t graph_config_start_graph = - TOKEN_STRING_INITIALIZER(struct graph_start_cmd_tokens, graph, "graph"); -cmdline_parse_token_string_t graph_config_start = - TOKEN_STRING_INITIALIZER(struct graph_start_cmd_tokens, start, "start"); - -cmdline_parse_inst_t graph_start_cmd_ctx = { - .f = cli_graph_start, - .data = NULL, - .help_str = "graph start", - .tokens = { - (void *)&graph_config_start_graph, - (void *)&graph_config_start, - NULL, - }, -}; - -cmdline_parse_token_string_t graph_config_add_graph = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, graph, "graph"); -cmdline_parse_token_string_t graph_config_add_usecase = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, usecase, NULL); -cmdline_parse_token_string_t graph_config_add_coremask = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, coremask, "coremask"); -cmdline_parse_token_num_t graph_config_add_mask = - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, mask, RTE_UINT64); -cmdline_parse_token_string_t graph_config_add_bsz = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, bsz, "bsz"); -cmdline_parse_token_num_t graph_config_add_size = - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, size, RTE_UINT16); -cmdline_parse_token_string_t graph_config_add_tmo = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, tmo, "tmo"); -cmdline_parse_token_num_t graph_config_add_ns = - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, ns, RTE_UINT64); -cmdline_parse_token_string_t graph_config_add_model = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, model, "model"); -cmdline_parse_token_string_t graph_config_add_model_name = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, model_name, "rtc#mcd#default"); -cmdline_parse_token_string_t graph_config_add_capt_ena = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, capt_ena, "pcap_enable"); -cmdline_parse_token_num_t graph_config_add_pcap_ena = - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, pcap_ena, RTE_UINT8); -cmdline_parse_token_string_t graph_config_add_capt_pkts_count = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, capt_pkts_count, "num_pcap_pkts"); -cmdline_parse_token_num_t graph_config_add_num_pcap_pkts = - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, num_pcap_pkts, RTE_UINT64); -cmdline_parse_token_string_t graph_config_add_capt_file = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, capt_file, "pcap_file"); -cmdline_parse_token_string_t graph_config_add_pcap_file = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, pcap_file, NULL); - -cmdline_parse_inst_t graph_config_cmd_ctx = { - .f = cli_graph, - .data = NULL, - .help_str = cmd_graph_help, - .tokens = { - (void *)&graph_config_add_graph, - (void *)&graph_config_add_usecase, - (void *)&graph_config_add_coremask, - (void *)&graph_config_add_mask, - (void *)&graph_config_add_bsz, - (void *)&graph_config_add_size, - (void *)&graph_config_add_tmo, - (void *)&graph_config_add_ns, - (void *)&graph_config_add_model, - (void *)&graph_config_add_model_name, - (void *)&graph_config_add_capt_ena, - (void *)&graph_config_add_pcap_ena, - (void *)&graph_config_add_capt_pkts_count, - (void *)&graph_config_add_num_pcap_pkts, - (void *)&graph_config_add_capt_file, - (void *)&graph_config_add_pcap_file, - NULL, - }, -}; - -cmdline_parse_token_string_t graph_help_cmd = - TOKEN_STRING_INITIALIZER(struct graph_help_cmd_tokens, help, "help"); -cmdline_parse_token_string_t graph_help_graph = - TOKEN_STRING_INITIALIZER(struct graph_help_cmd_tokens, graph, "graph"); - -cmdline_parse_inst_t graph_help_cmd_ctx = { - .f = cli_graph_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)&graph_help_cmd, - (void *)&graph_help_graph, - NULL, - }, -}; diff --git a/app/graph/graph.h b/app/graph/graph.h index a14fa37ccd..c851b71e7e 100644 --- a/app/graph/graph.h +++ b/app/graph/graph.h @@ -7,11 +7,6 @@ #include <cmdline_parse.h> -extern cmdline_parse_inst_t graph_config_cmd_ctx; -extern cmdline_parse_inst_t graph_start_cmd_ctx; -extern cmdline_parse_inst_t graph_stats_cmd_ctx; -extern cmdline_parse_inst_t graph_help_cmd_ctx; - int graph_walk_start(void *conf); void graph_stats_print(void); void graph_pcap_config_get(uint8_t *pcap_ena, uint64_t *num_pkts, char **file); diff --git a/app/graph/graph_priv.h b/app/graph/graph_priv.h index a48a35daa3..3306edda63 100644 --- a/app/graph/graph_priv.h +++ b/app/graph/graph_priv.h @@ -7,41 +7,6 @@ #define MAX_GRAPH_USECASES 32 -struct graph_help_cmd_tokens { - cmdline_fixed_string_t help; - cmdline_fixed_string_t graph; -}; - -struct graph_start_cmd_tokens { - cmdline_fixed_string_t graph; - cmdline_fixed_string_t start; -}; - -struct graph_stats_cmd_tokens { - cmdline_fixed_string_t show; - cmdline_fixed_string_t graph; - cmdline_fixed_string_t stats; -}; - -struct graph_config_cmd_tokens { - cmdline_fixed_string_t graph; - cmdline_fixed_string_t usecase; - cmdline_fixed_string_t bsz; - cmdline_fixed_string_t tmo; - cmdline_fixed_string_t coremask; - cmdline_fixed_string_t model; - cmdline_fixed_string_t capt_ena; - cmdline_fixed_string_t capt_pkts_count; - cmdline_fixed_string_t capt_file; - cmdline_fixed_string_t model_name; - cmdline_fixed_string_t pcap_file; - uint16_t size; - uint64_t ns; - uint64_t mask; - uint64_t num_pcap_pkts; - uint8_t pcap_ena; -}; - enum graph_model { GRAPH_MODEL_RTC = 0x01, GRAPH_MODEL_MCD = 0x02, diff --git a/app/graph/ip4_route.c b/app/graph/ip4_route.c index fc83586427..48ea912597 100644 --- a/app/graph/ip4_route.c +++ b/app/graph/ip4_route.c @@ -20,7 +20,6 @@ cmd_ipv4_lookup_help[] = "ipv4_lookup route add ipv4 <ip> netmask <mask> via <ip struct ip4_route route4 = TAILQ_HEAD_INITIALIZER(route4); - void route_ip4_list_clean(void) { @@ -127,9 +126,9 @@ route_ip4_add_to_lookup(void) return 0; } -static void -cli_ipv4_lookup_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_ipv4_lookup_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -143,82 +142,19 @@ cli_ipv4_lookup_help(__rte_unused void *parsed_result, __rte_unused struct cmdli conn->msg_out_len_max -= len; } -static void -cli_ipv4_lookup(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ipv4_lookup_route_add_ipv4_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ip4_lookup_cmd_tokens *res = parsed_result; + struct cmd_ipv4_lookup_route_add_ipv4_result *res = parsed_result; struct route_ipv4_config config; int rc = -EINVAL; - if (parser_ip4_read(&config.ip, res->ip)) { - printf(MSG_ARG_INVALID, "ipv4"); - return; - } - - if (parser_ip4_read(&config.netmask, res->mask)) { - printf(MSG_ARG_INVALID, "netmask"); - return; - } - - if (parser_ip4_read(&config.via, res->via_ip)) { - printf(MSG_ARG_INVALID, "via ip"); - return; - } + config.ip = rte_be_to_cpu_32(res->ip.addr.ipv4.s_addr); + config.netmask = rte_be_to_cpu_32(res->mask.addr.ipv4.s_addr); + config.via = rte_be_to_cpu_32(res->via_ip.addr.ipv4.s_addr); rc = route_ip4_add(&config); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ipv4_lookup); } - -cmdline_parse_token_string_t ip4_lookup_cmd = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, cmd, "ipv4_lookup"); -cmdline_parse_token_string_t ip4_lookup_route = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, route, "route"); -cmdline_parse_token_string_t ip4_lookup_add = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, add, "add"); -cmdline_parse_token_string_t ip4_lookup_ip4 = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, ip4, "ipv4"); -cmdline_parse_token_string_t ip4_lookup_ip = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t ip4_lookup_netmask = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, netmask, "netmask"); -cmdline_parse_token_string_t ip4_lookup_mask = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, mask, NULL); -cmdline_parse_token_string_t ip4_lookup_via = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, via, "via"); -cmdline_parse_token_string_t ip4_lookup_via_ip = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, via_ip, NULL); - -cmdline_parse_inst_t ipv4_lookup_cmd_ctx = { - .f = cli_ipv4_lookup, - .data = NULL, - .help_str = cmd_ipv4_lookup_help, - .tokens = { - (void *)&ip4_lookup_cmd, - (void *)&ip4_lookup_route, - (void *)&ip4_lookup_add, - (void *)&ip4_lookup_ip4, - (void *)&ip4_lookup_ip, - (void *)&ip4_lookup_netmask, - (void *)&ip4_lookup_mask, - (void *)&ip4_lookup_via, - (void *)&ip4_lookup_via_ip, - NULL, - }, -}; - -cmdline_parse_token_string_t ipv4_lookup_help_cmd = - TOKEN_STRING_INITIALIZER(struct ipv4_lookup_help_cmd_tokens, cmd, "help"); -cmdline_parse_token_string_t ipv4_lookup_help_module = - TOKEN_STRING_INITIALIZER(struct ipv4_lookup_help_cmd_tokens, module, "ipv4_lookup"); - -cmdline_parse_inst_t ipv4_lookup_help_cmd_ctx = { - .f = cli_ipv4_lookup_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)&ipv4_lookup_help_cmd, - (void *)&ipv4_lookup_help_module, - NULL, - }, -}; diff --git a/app/graph/ip6_route.c b/app/graph/ip6_route.c index 1fa4865220..834719ecae 100644 --- a/app/graph/ip6_route.c +++ b/app/graph/ip6_route.c @@ -132,9 +132,9 @@ route_ip6_add_to_lookup(void) return 0; } -static void -cli_ipv6_lookup_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_ipv6_lookup_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -148,82 +148,24 @@ cli_ipv6_lookup_help(__rte_unused void *parsed_result, __rte_unused struct cmdli conn->msg_out_len_max -= len; } -static void -cli_ipv6_lookup(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ipv6_lookup_route_add_ipv6_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ip6_lookup_cmd_tokens *res = parsed_result; + struct cmd_ipv6_lookup_route_add_ipv6_result *res = parsed_result; struct route_ipv6_config config; - int rc = -EINVAL; + int rc = -EINVAL, i; - if (parser_ip6_read(config.ip, res->ip)) { - printf(MSG_ARG_INVALID, "ipv6"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + config.ip[i] = res->ip.addr.ipv6.s6_addr[i]; - if (parser_ip6_read(config.mask, res->mask)) { - printf(MSG_ARG_INVALID, "netmask"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + config.mask[i] = res->mask.addr.ipv6.s6_addr[i]; - if (parser_ip6_read(config.gateway, res->via_ip)) { - printf(MSG_ARG_INVALID, "gateway ip"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + config.gateway[i] = res->via_ip.addr.ipv6.s6_addr[i]; rc = route_ip6_add(&config); if (rc) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ipv6_lookup); } - -cmdline_parse_token_string_t ip6_lookup_cmd = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, cmd, "ipv6_lookup"); -cmdline_parse_token_string_t ip6_lookup_route = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, route, "route"); -cmdline_parse_token_string_t ip6_lookup_add = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, add, "add"); -cmdline_parse_token_string_t ip6_lookup_ip6 = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, ip6, "ipv6"); -cmdline_parse_token_string_t ip6_lookup_ip = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t ip6_lookup_netmask = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, netmask, "netmask"); -cmdline_parse_token_string_t ip6_lookup_mask = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, mask, NULL); -cmdline_parse_token_string_t ip6_lookup_via = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, via, "via"); -cmdline_parse_token_string_t ip6_lookup_via_ip = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, via_ip, NULL); - -cmdline_parse_inst_t ipv6_lookup_cmd_ctx = { - .f = cli_ipv6_lookup, - .data = NULL, - .help_str = cmd_ipv6_lookup_help, - .tokens = { - (void *)&ip6_lookup_cmd, - (void *)&ip6_lookup_route, - (void *)&ip6_lookup_add, - (void *)&ip6_lookup_ip6, - (void *)&ip6_lookup_ip, - (void *)&ip6_lookup_netmask, - (void *)&ip6_lookup_mask, - (void *)&ip6_lookup_via, - (void *)&ip6_lookup_via_ip, - NULL, - }, -}; - -cmdline_parse_token_string_t ipv6_lookup_help_cmd = - TOKEN_STRING_INITIALIZER(struct ipv6_lookup_help_cmd_tokens, cmd, "help"); -cmdline_parse_token_string_t ipv6_lookup_help_module = - TOKEN_STRING_INITIALIZER(struct ipv6_lookup_help_cmd_tokens, module, "ipv6_lookup"); - -cmdline_parse_inst_t ipv6_lookup_help_cmd_ctx = { - .f = cli_ipv6_lookup_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)&ipv6_lookup_help_cmd, - (void *)&ipv6_lookup_help_module, - NULL, - }, -}; diff --git a/app/graph/mempool.c b/app/graph/mempool.c index 9fd3f8460b..fbb0ca8f05 100644 --- a/app/graph/mempool.c +++ b/app/graph/mempool.c @@ -47,9 +47,9 @@ mempool_process(struct mempool_config *config) return 0; } -static void -cli_mempool_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_mempool_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -63,10 +63,10 @@ cli_mempool_help(__rte_unused void *parsed_result, __rte_unused struct cmdline * conn->msg_out_len_max -= len; } -static void -cli_mempool(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) +void +cmd_mempool_parsed(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) { - struct mempool_config_cmd_tokens *res = parsed_result; + struct cmd_mempool_result *res = parsed_result; struct mempool_config config; int rc = -EINVAL; @@ -82,59 +82,3 @@ cli_mempool(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused v if (rc < 0) printf(MSG_CMD_FAIL, "mempool"); } - -cmdline_parse_token_string_t mempool_config_add_mempool = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, mempool, "mempool"); -cmdline_parse_token_string_t mempool_config_add_name = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, name, NULL); -cmdline_parse_token_string_t mempool_config_add_size = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, size, "size"); -cmdline_parse_token_num_t mempool_config_add_buf_sz = - TOKEN_NUM_INITIALIZER(struct mempool_config_cmd_tokens, buf_sz, RTE_UINT16); -cmdline_parse_token_string_t mempool_config_add_buffers = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, buffers, "buffers"); -cmdline_parse_token_num_t mempool_config_add_nb_bufs = - TOKEN_NUM_INITIALIZER(struct mempool_config_cmd_tokens, nb_bufs, RTE_UINT16); -cmdline_parse_token_string_t mempool_config_add_cache = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, cache, "cache"); -cmdline_parse_token_num_t mempool_config_add_cache_size = - TOKEN_NUM_INITIALIZER(struct mempool_config_cmd_tokens, cache_size, RTE_UINT16); -cmdline_parse_token_string_t mempool_config_add_numa = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, numa, "numa"); -cmdline_parse_token_num_t mempool_config_add_node = - TOKEN_NUM_INITIALIZER(struct mempool_config_cmd_tokens, node, RTE_UINT16); - -cmdline_parse_inst_t mempool_config_cmd_ctx = { - .f = cli_mempool, - .data = NULL, - .help_str = cmd_mempool_help, - .tokens = { - (void *)&mempool_config_add_mempool, - (void *)&mempool_config_add_name, - (void *)&mempool_config_add_size, - (void *)&mempool_config_add_buf_sz, - (void *)&mempool_config_add_buffers, - (void *)&mempool_config_add_nb_bufs, - (void *)&mempool_config_add_cache, - (void *)&mempool_config_add_cache_size, - (void *)&mempool_config_add_numa, - (void *)&mempool_config_add_node, - NULL, - }, -}; - -cmdline_parse_token_string_t mempool_help_cmd = - TOKEN_STRING_INITIALIZER(struct mempool_help_cmd_tokens, help, "help"); -cmdline_parse_token_string_t mempool_help_mempool = - TOKEN_STRING_INITIALIZER(struct mempool_help_cmd_tokens, mempool, "mempool"); - -cmdline_parse_inst_t mempool_help_cmd_ctx = { - .f = cli_mempool_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)&mempool_help_cmd, - (void *)&mempool_help_mempool, - NULL, - }, -}; diff --git a/app/graph/mempool.h b/app/graph/mempool.h index 0808c4259e..dc6e37dac1 100644 --- a/app/graph/mempool.h +++ b/app/graph/mempool.h @@ -16,9 +16,6 @@ struct mempool_config { int numa_node; }; -extern cmdline_parse_inst_t mempool_config_cmd_ctx; -extern cmdline_parse_inst_t mempool_help_cmd_ctx; - int mempool_process(struct mempool_config *config); #endif diff --git a/app/graph/mempool_priv.h b/app/graph/mempool_priv.h index 3ce64702a9..5a55722b32 100644 --- a/app/graph/mempool_priv.h +++ b/app/graph/mempool_priv.h @@ -7,24 +7,6 @@ #include "mempool.h" -struct mempool_config_cmd_tokens { - cmdline_fixed_string_t mempool; - cmdline_fixed_string_t size; - cmdline_fixed_string_t buffers; - cmdline_fixed_string_t cache; - cmdline_fixed_string_t numa; - cmdline_fixed_string_t name; - uint16_t buf_sz; - uint16_t nb_bufs; - uint16_t cache_size; - uint16_t node; -}; - -struct mempool_help_cmd_tokens { - cmdline_fixed_string_t help; - cmdline_fixed_string_t mempool; -}; - struct mempools { struct mempool_config config[RTE_MAX_ETHPORTS]; struct rte_mempool *mp[RTE_MAX_ETHPORTS]; diff --git a/app/graph/meson.build b/app/graph/meson.build index 5b0f966d99..9cb62f493e 100644 --- a/app/graph/meson.build +++ b/app/graph/meson.build @@ -23,3 +23,11 @@ sources = files( 'neigh.c', 'utils.c', ) + +cmd_h = custom_target('commands_hdr', + output: 'commands.h', + input: files('commands.list'), + capture: true, + command: [cmdline_gen_cmd, '--context-name=modules_ctx', '@INPUT@'] +) +sources += cmd_h diff --git a/app/graph/module_api.h b/app/graph/module_api.h index 7193e0b616..6bf63278fa 100644 --- a/app/graph/module_api.h +++ b/app/graph/module_api.h @@ -10,6 +10,7 @@ #include "cli.h" #include "conn.h" +#include "commands.h" #include "ethdev.h" #include "ethdev_rx.h" #include "graph.h" diff --git a/app/graph/neigh.c b/app/graph/neigh.c index 22be7361e3..79fd542c89 100644 --- a/app/graph/neigh.c +++ b/app/graph/neigh.c @@ -235,18 +235,16 @@ neigh_ip6_add_to_rewrite(void) return 0; } -static void -cli_neigh_v4(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_neigh_add_ipv4_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct neigh_v4_cmd_tokens *res = parsed_result; + struct cmd_neigh_add_ipv4_result *res = parsed_result; int rc = -EINVAL; uint64_t mac; uint32_t ip; - if (parser_ip4_read(&ip, res->ip)) { - printf(MSG_ARG_INVALID, "ip"); - return; - } + ip = rte_be_to_cpu_32(res->ip.addr.ipv4.s_addr); if (parser_mac_read(&mac, res->mac)) { printf(MSG_ARG_INVALID, "mac"); @@ -255,21 +253,20 @@ cli_neigh_v4(void *parsed_result, __rte_unused struct cmdline *cl, void *data __ rc = neigh_ip4_add(ip, mac); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->neigh); } -static void -cli_neigh_v6(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_neigh_add_ipv6_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct neigh_v6_cmd_tokens *res = parsed_result; + struct cmd_neigh_add_ipv6_result *res = parsed_result; uint8_t ip[ETHDEV_IPV6_ADDR_LEN]; - int rc = -EINVAL; + int rc = -EINVAL, i; uint64_t mac; - if (parser_ip6_read(ip, res->ip)) { - printf(MSG_ARG_INVALID, "ip"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + ip[i] = res->ip.addr.ipv6.s6_addr[i]; if (parser_mac_read(&mac, res->mac)) { printf(MSG_ARG_INVALID, "mac"); @@ -278,12 +275,12 @@ cli_neigh_v6(void *parsed_result, __rte_unused struct cmdline *cl, void *data __ rc = neigh_ip6_add(ip, mac); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->neigh); } -static void -cli_neigh_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_neigh_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -296,69 +293,3 @@ cli_neigh_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl len = strlen(conn->msg_out); conn->msg_out_len_max -= len; } - -cmdline_parse_token_string_t neigh_v4_cmd = - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, cmd, "neigh"); -cmdline_parse_token_string_t neigh_v4_add = - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, add, "add"); -cmdline_parse_token_string_t neigh_v4_ip4 = - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, ip4, "ipv4"); -cmdline_parse_token_string_t neigh_v4_ip = - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t neigh_v4_mac = - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, mac, NULL); - -cmdline_parse_inst_t neigh_v4_cmd_ctx = { - .f = cli_neigh_v4, - .data = NULL, - .help_str = cmd_neigh_v4_help, - .tokens = { - (void *)&neigh_v4_cmd, - (void *)&neigh_v4_add, - (void *)&neigh_v4_ip4, - (void *)&neigh_v4_ip, - (void *)&neigh_v4_mac, - NULL, - }, -}; - -cmdline_parse_token_string_t neigh_v6_cmd = - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, cmd, "neigh"); -cmdline_parse_token_string_t neigh_v6_add = - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, add, "add"); -cmdline_parse_token_string_t neigh_v6_ip6 = - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, ip6, "ipv6"); -cmdline_parse_token_string_t neigh_v6_ip = - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t neigh_v6_mac = - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, mac, NULL); - -cmdline_parse_inst_t neigh_v6_cmd_ctx = { - .f = cli_neigh_v6, - .data = NULL, - .help_str = cmd_neigh_v6_help, - .tokens = { - (void *)&neigh_v6_cmd, - (void *)&neigh_v6_add, - (void *)&neigh_v6_ip6, - (void *)&neigh_v6_ip, - (void *)&neigh_v6_mac, - NULL, - }, -}; - -cmdline_parse_token_string_t neigh_help_cmd = - TOKEN_STRING_INITIALIZER(struct neigh_help_cmd_tokens, cmd, "help"); -cmdline_parse_token_string_t neigh_help_module = - TOKEN_STRING_INITIALIZER(struct neigh_help_cmd_tokens, module, "neigh"); - -cmdline_parse_inst_t neigh_help_cmd_ctx = { - .f = cli_neigh_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)&neigh_help_cmd, - (void *)&neigh_help_module, - NULL, - }, -}; diff --git a/app/graph/neigh.h b/app/graph/neigh.h index 928981fc31..2688bd9434 100644 --- a/app/graph/neigh.h +++ b/app/graph/neigh.h @@ -5,10 +5,6 @@ #ifndef APP_GRAPH_NEIGH_H #define APP_GRAPH_NEIGH_H -extern cmdline_parse_inst_t neigh_v4_cmd_ctx; -extern cmdline_parse_inst_t neigh_v6_cmd_ctx; -extern cmdline_parse_inst_t neigh_help_cmd_ctx; - void neigh4_list_clean(void); void neigh6_list_clean(void); int neigh_ip4_add_to_rewrite(void); diff --git a/app/graph/neigh_priv.h b/app/graph/neigh_priv.h index 0ec9b1510f..1a7106c309 100644 --- a/app/graph/neigh_priv.h +++ b/app/graph/neigh_priv.h @@ -7,27 +7,6 @@ #define MAX_NEIGH_ENTRIES 32 -struct neigh_v4_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip4; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t mac; -}; - -struct neigh_v6_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip6; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t mac; -}; - -struct neigh_help_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t module; -}; - struct neigh_ipv4_config { TAILQ_ENTRY(neigh_ipv4_config) next; uint32_t ip; diff --git a/app/graph/route.h b/app/graph/route.h index 0d271d1350..23a7951d2d 100644 --- a/app/graph/route.h +++ b/app/graph/route.h @@ -7,11 +7,6 @@ #define MAX_ROUTE_ENTRIES 32 -extern cmdline_parse_inst_t ipv4_lookup_cmd_ctx; -extern cmdline_parse_inst_t ipv6_lookup_cmd_ctx; -extern cmdline_parse_inst_t ipv4_lookup_help_cmd_ctx; -extern cmdline_parse_inst_t ipv6_lookup_help_cmd_ctx; - struct route_ipv4_config { TAILQ_ENTRY(route_ipv4_config) next; uint32_t ip; diff --git a/app/graph/route_priv.h b/app/graph/route_priv.h index f363a551a9..6a30711acd 100644 --- a/app/graph/route_priv.h +++ b/app/graph/route_priv.h @@ -7,38 +7,4 @@ #define MAX_ROUTE_ENTRIES 32 -struct ip4_lookup_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t route; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip4; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t netmask; - cmdline_fixed_string_t mask; - cmdline_fixed_string_t via; - cmdline_fixed_string_t via_ip; -}; - -struct ip6_lookup_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t route; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip6; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t netmask; - cmdline_fixed_string_t mask; - cmdline_fixed_string_t via; - cmdline_fixed_string_t via_ip; -}; - -struct ipv4_lookup_help_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t module; -}; - -struct ipv6_lookup_help_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t module; -}; - #endif -- 2.25.1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] app/graph: generate cmdline boilerplate 2023-12-07 7:12 [PATCH] app/graph: generate cmdline boilerplate skori @ 2023-12-07 10:29 ` Bruce Richardson 2023-12-12 17:05 ` [PATCH v2 1/1] " skori 1 sibling, 0 replies; 9+ messages in thread From: Bruce Richardson @ 2023-12-07 10:29 UTC (permalink / raw) To: skori; +Cc: Rakesh Kudurumalla, dev On Thu, Dec 07, 2023 at 12:42:05PM +0530, skori@marvell.com wrote: > From: Sunil Kumar Kori <skori@marvell.com> > > Use the dpdk-cmdline-gen script to autogenerate all the boilerplate > structs and defines for the commandline part of the application. > > Depends-on: series-30459 ("enhancements for dpdk-cmdline-gen script") > > Signed-off-by: Sunil Kumar Kori <skori@marvell.com> > --- > app/graph/cli.c | 27 --- > app/graph/commands.list | 32 ++++ > app/graph/ethdev.c | 288 +++++------------------------- > app/graph/ethdev.h | 9 - > app/graph/ethdev_priv.h | 63 ------- > app/graph/ethdev_rx.c | 67 +------ > app/graph/ethdev_rx.h | 2 - > app/graph/ethdev_rx_priv.h | 16 -- > app/graph/examples/l3fwd.cli | 12 +- > app/graph/examples/l3fwd_pcap.cli | 12 +- > app/graph/graph.c | 131 ++------------ > app/graph/graph.h | 5 - > app/graph/graph_priv.h | 35 ---- > app/graph/ip4_route.c | 86 ++------- > app/graph/ip6_route.c | 88 ++------- > app/graph/mempool.c | 68 +------ > app/graph/mempool.h | 3 - > app/graph/mempool_priv.h | 18 -- > app/graph/meson.build | 8 + > app/graph/module_api.h | 1 + > app/graph/neigh.c | 103 ++--------- > app/graph/neigh.h | 4 - > app/graph/neigh_priv.h | 21 --- > app/graph/route.h | 5 - > app/graph/route_priv.h | 34 ---- > 25 files changed, 164 insertions(+), 974 deletions(-) > create mode 100644 app/graph/commands.list > I really like the diff-stats of this patch! More than 800 lines fewer in our codebase. Acked-by: Bruce Richardson <bruce.richardson@intel.com> ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 1/1] app/graph: generate cmdline boilerplate 2023-12-07 7:12 [PATCH] app/graph: generate cmdline boilerplate skori 2023-12-07 10:29 ` Bruce Richardson @ 2023-12-12 17:05 ` skori 2023-12-18 8:48 ` Nithin Dabilpuram ` (2 more replies) 1 sibling, 3 replies; 9+ messages in thread From: skori @ 2023-12-12 17:05 UTC (permalink / raw) To: Sunil Kumar Kori, Rakesh Kudurumalla; +Cc: dev, Bruce Richardson From: Sunil Kumar Kori <skori@marvell.com> Use the dpdk-cmdline-gen script to autogenerate all the boilerplate structs and defines for the commandline part of the application. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- v1..v2: - Rebase and remove Depends-On: tag as dependent series is applied. app/graph/cli.c | 27 --- app/graph/commands.list | 32 ++++ app/graph/ethdev.c | 288 +++++------------------------- app/graph/ethdev.h | 9 - app/graph/ethdev_priv.h | 63 ------- app/graph/ethdev_rx.c | 67 +------ app/graph/ethdev_rx.h | 2 - app/graph/ethdev_rx_priv.h | 16 -- app/graph/examples/l3fwd.cli | 12 +- app/graph/examples/l3fwd_pcap.cli | 12 +- app/graph/graph.c | 131 ++------------ app/graph/graph.h | 5 - app/graph/graph_priv.h | 35 ---- app/graph/ip4_route.c | 86 ++------- app/graph/ip6_route.c | 88 ++------- app/graph/mempool.c | 68 +------ app/graph/mempool.h | 3 - app/graph/mempool_priv.h | 18 -- app/graph/meson.build | 8 + app/graph/module_api.h | 1 + app/graph/neigh.c | 103 ++--------- app/graph/neigh.h | 4 - app/graph/neigh_priv.h | 21 --- app/graph/route.h | 5 - app/graph/route_priv.h | 34 ---- 25 files changed, 164 insertions(+), 974 deletions(-) create mode 100644 app/graph/commands.list diff --git a/app/graph/cli.c b/app/graph/cli.c index 30b12312d6..0f23aa2586 100644 --- a/app/graph/cli.c +++ b/app/graph/cli.c @@ -19,33 +19,6 @@ #define CMD_MAX_TOKENS 256 #define MAX_LINE_SIZE 2048 -cmdline_parse_ctx_t modules_ctx[] = { - (cmdline_parse_inst_t *)&graph_config_cmd_ctx, - (cmdline_parse_inst_t *)&graph_start_cmd_ctx, - (cmdline_parse_inst_t *)&graph_stats_cmd_ctx, - (cmdline_parse_inst_t *)&graph_help_cmd_ctx, - (cmdline_parse_inst_t *)&mempool_config_cmd_ctx, - (cmdline_parse_inst_t *)&mempool_help_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_show_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_stats_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_mtu_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_prom_mode_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_ip4_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_ip6_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_help_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_rx_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_rx_help_cmd_ctx, - (cmdline_parse_inst_t *)&ipv4_lookup_cmd_ctx, - (cmdline_parse_inst_t *)&ipv4_lookup_help_cmd_ctx, - (cmdline_parse_inst_t *)&ipv6_lookup_cmd_ctx, - (cmdline_parse_inst_t *)&ipv6_lookup_help_cmd_ctx, - (cmdline_parse_inst_t *)&neigh_v4_cmd_ctx, - (cmdline_parse_inst_t *)&neigh_v6_cmd_ctx, - (cmdline_parse_inst_t *)&neigh_help_cmd_ctx, - NULL, -}; - static struct cmdline *cl; static int diff --git a/app/graph/commands.list b/app/graph/commands.list new file mode 100644 index 0000000000..1f3f43cdba --- /dev/null +++ b/app/graph/commands.list @@ -0,0 +1,32 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2023 Marvell. +# +graph <STRING>usecase coremask <UINT64>mask bsz <UINT16>size tmo <UINT64>ns model <(rtc,mcd,default)>model_name <(pcap_enable)>capt_ena <UINT8>pcap_ena <(num_pcap_pkts)>capt_pkts_count <UINT64>num_pcap_pkts <(pcap_file)>capt_file <STRING>pcap_file # Command to create graph for given usecase +graph start # Comanmd to start a graph +graph stats show # Command to dump graph stats +help graph # Print help on graph commands + +mempool <STRING>name size <UINT16>buf_sz buffers <UINT16>nb_bufs cache <UINT16>cache_size numa <UINT16>node # Create mempool +help mempool # Print help on mempool commands + +ethdev <STRING>dev rxq <UINT16>nb_rxq txq <UINT16>nb_txq <STRING>mempool # Create Ethernet device +ethdev <STRING>__dev mtu <UINT16>size # Set MTU on Ethernet device +ethdev <STRING>__dev promiscuous <(on,off)>enable # Set promiscuous mode on Ethernet device +ethdev <STRING>__dev show # Command to dump Ethernet device info +ethdev <STRING>__dev stats # Command to dump Ethernet device stats +ethdev <STRING>__dev ip4 addr add <IPv4>ip netmask <IPv4>mask # Set IPv4 address on Ethernet device +ethdev <STRING>__dev ip6 addr add <IPv6>ip netmask <IPv6>mask # Set IPv6 address on Ethernet device +help ethdev # Print help on ethdev commands + +ethdev_rx map port <STRING>dev queue <UINT32>qid core <UINT32>core_id # Port-Queue-Core mapping +help ethdev_rx # Print help on ethdev_rx commands + +ipv4_lookup route add ipv4 <IPv4>ip netmask <IPv4>mask via <IPv4>via_ip # Add IPv4 route to LPM table +help ipv4_lookup # Print help on ipv4_lookup commands + +ipv6_lookup route add ipv6 <IPv6>ip netmask <IPv6>mask via <IPv6>via_ip # Add IPv6 route to LPM6 table +help ipv6_lookup # Print help on ipv6_lookup commands + +neigh add ipv4 <IPv4>ip <STRING>mac # Add static neighbour for IPv4 +neigh add ipv6 <IPv6>ip <STRING>mac # Add static neighbour for IPv6 +help neigh # Print help on neigh commands diff --git a/app/graph/ethdev.c b/app/graph/ethdev.c index c9b09168c1..c64cac10f1 100644 --- a/app/graph/ethdev.c +++ b/app/graph/ethdev.c @@ -188,7 +188,6 @@ ethdev_start(void) } } - static int ethdev_show(const char *name) { @@ -344,7 +343,6 @@ ethdev_mtu_config(const char *name, uint32_t mtu) return rc; } - static int ethdev_process(const char *name, struct ethdev_config *params) { @@ -560,21 +558,23 @@ ethdev_stats_show(const char *name) return 0; } -static void -cli_ethdev_mtu(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_mtu_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_mtu_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_mtu_result *res = parsed_result; int rc = -EINVAL; rc = ethdev_mtu_config(res->dev, res->size); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev); } -static void -cli_ethdev_prom_mode(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_promiscuous_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_prom_mode_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_promiscuous_result *res = parsed_result; bool enable = false; int rc = -EINVAL; @@ -583,57 +583,49 @@ cli_ethdev_prom_mode(void *parsed_result, __rte_unused struct cmdline *cl, void rc = ethdev_prom_mode_config(res->dev, enable); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev); } -static void -cli_ip4_addr(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_ip4_addr_add_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_ip4_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_ip4_addr_add_result *res = parsed_result; struct ipv4_addr_config config; int rc = -EINVAL; - if (parser_ip4_read(&config.ip, res->ip)) { - printf(MSG_ARG_INVALID, "ip"); - return; - } - - if (parser_ip4_read(&config.mask, res->mask)) { - printf(MSG_ARG_INVALID, "netmask"); - return; - } + config.ip = rte_be_to_cpu_32(res->ip.addr.ipv4.s_addr); + config.mask = rte_be_to_cpu_32(res->mask.addr.ipv4.s_addr); rc = ethdev_ip4_addr_add(res->dev, &config); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev); } -static void -cli_ip6_addr(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_ip6_addr_add_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_ip6_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_ip6_addr_add_result *res = parsed_result; struct ipv6_addr_config config; - int rc = -EINVAL; + int rc = -EINVAL, i; - if (parser_ip6_read(config.ip, res->ip)) { - printf(MSG_ARG_INVALID, "ip"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + config.ip[i] = res->ip.addr.ipv6.s6_addr[i]; - if (parser_ip6_read(config.mask, res->mask)) { - printf(MSG_ARG_INVALID, "netmask"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + config.mask[i] = res->mask.addr.ipv6.s6_addr[i]; rc = ethdev_ip6_addr_add(res->dev, &config); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev); } -static void -cli_ethdev_show(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_show_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_show_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_show_result *res = parsed_result; int rc = -EINVAL; rc = ethdev_show(res->dev); @@ -641,10 +633,11 @@ cli_ethdev_show(void *parsed_result, __rte_unused struct cmdline *cl, void *data printf(MSG_ARG_INVALID, res->dev); } -static void -cli_ethdev_stats(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_stats_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_stats_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_stats_result *res = parsed_result; int rc = -EINVAL; rc = ethdev_stats_show(res->dev); @@ -652,10 +645,10 @@ cli_ethdev_stats(void *parsed_result, __rte_unused struct cmdline *cl, void *dat printf(MSG_ARG_INVALID, res->dev); } -static void -cli_ethdev(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_parsed(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) { - struct ethdev_cmd_tokens *res = parsed_result; + struct cmd_ethdev_result *res = parsed_result; struct ethdev_config config; int rc; @@ -671,12 +664,12 @@ cli_ethdev(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rt rc = ethdev_process(res->dev, &config); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev); } -static void -cli_ethdev_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_ethdev_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -691,200 +684,3 @@ cli_ethdev_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *c len = strlen(conn->msg_out); conn->msg_out_len_max -= len; } - -cmdline_parse_token_string_t ethdev_stats_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_stats_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_stats_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_stats_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_stats_stats = - TOKEN_STRING_INITIALIZER(struct ethdev_stats_cmd_tokens, stats, "stats"); - -cmdline_parse_inst_t ethdev_stats_cmd_ctx = { - .f = cli_ethdev_stats, - .data = NULL, - .help_str = "", - .tokens = { - (void *)ðdev_stats_cmd, - (void *)ðdev_stats_dev, - (void *)ðdev_stats_stats, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_show_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_show_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_show_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_show_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_show_show = - TOKEN_STRING_INITIALIZER(struct ethdev_show_cmd_tokens, show, "show"); - -cmdline_parse_inst_t ethdev_show_cmd_ctx = { - .f = cli_ethdev_show, - .data = NULL, - .help_str = cmd_ethdev_show_help, - .tokens = { - (void *)ðdev_show_cmd, - (void *)ðdev_show_dev, - (void *)ðdev_show_show, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_mtu_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_mtu_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_mtu_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_mtu_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_mtu_mtu = - TOKEN_STRING_INITIALIZER(struct ethdev_mtu_cmd_tokens, mtu, "mtu"); -cmdline_parse_token_num_t ethdev_mtu_size = - TOKEN_NUM_INITIALIZER(struct ethdev_mtu_cmd_tokens, size, RTE_UINT16); - -cmdline_parse_inst_t ethdev_mtu_cmd_ctx = { - .f = cli_ethdev_mtu, - .data = NULL, - .help_str = cmd_ethdev_mtu_help, - .tokens = { - (void *)ðdev_mtu_cmd, - (void *)ðdev_mtu_dev, - (void *)ðdev_mtu_mtu, - (void *)ðdev_mtu_size, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_prom_mode_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_prom_mode_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_prom_mode_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_prom_mode_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_prom_mode_prom = - TOKEN_STRING_INITIALIZER(struct ethdev_prom_mode_cmd_tokens, prom, "promiscuous"); -cmdline_parse_token_string_t ethdev_prom_mode_enable = - TOKEN_STRING_INITIALIZER(struct ethdev_prom_mode_cmd_tokens, enable, "on#off"); - -cmdline_parse_inst_t ethdev_prom_mode_cmd_ctx = { - .f = cli_ethdev_prom_mode, - .data = NULL, - .help_str = cmd_ethdev_prom_mode_help, - .tokens = { - (void *)ðdev_prom_mode_cmd, - (void *)ðdev_prom_mode_dev, - (void *)ðdev_prom_mode_prom, - (void *)ðdev_prom_mode_enable, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_ip4_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_ip4_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_ip4_ip4 = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, ip4, "ip4"); -cmdline_parse_token_string_t ethdev_ip4_addr = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, addr, "addr"); -cmdline_parse_token_string_t ethdev_ip4_add = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, add, "add"); -cmdline_parse_token_string_t ethdev_ip4_ip = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t ethdev_ip4_netmask = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, netmask, "netmask"); -cmdline_parse_token_string_t ethdev_ip4_mask = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, mask, NULL); - -cmdline_parse_inst_t ethdev_ip4_cmd_ctx = { - .f = cli_ip4_addr, - .data = NULL, - .help_str = cmd_ethdev_ip4_addr_help, - .tokens = { - (void *)ðdev_ip4_cmd, - (void *)ðdev_ip4_dev, - (void *)ðdev_ip4_ip4, - (void *)ðdev_ip4_addr, - (void *)ðdev_ip4_add, - (void *)ðdev_ip4_ip, - (void *)ðdev_ip4_netmask, - (void *)ðdev_ip4_mask, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_ip6_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_ip6_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_ip6_ip6 = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, ip6, "ip6"); -cmdline_parse_token_string_t ethdev_ip6_addr = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, addr, "addr"); -cmdline_parse_token_string_t ethdev_ip6_add = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, add, "add"); -cmdline_parse_token_string_t ethdev_ip6_ip = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t ethdev_ip6_netmask = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, netmask, "netmask"); -cmdline_parse_token_string_t ethdev_ip6_mask = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, mask, NULL); - -cmdline_parse_inst_t ethdev_ip6_cmd_ctx = { - .f = cli_ip6_addr, - .data = NULL, - .help_str = cmd_ethdev_ip6_addr_help, - .tokens = { - (void *)ðdev_ip6_cmd, - (void *)ðdev_ip6_dev, - (void *)ðdev_ip6_ip6, - (void *)ðdev_ip6_addr, - (void *)ðdev_ip6_add, - (void *)ðdev_ip6_ip, - (void *)ðdev_ip6_netmask, - (void *)ðdev_ip6_mask, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_rxq = - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, rxq, "rxq"); -cmdline_parse_token_num_t ethdev_nb_rxq = - TOKEN_NUM_INITIALIZER(struct ethdev_cmd_tokens, nb_rxq, RTE_UINT16); -cmdline_parse_token_string_t ethdev_txq = - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, txq, "txq"); -cmdline_parse_token_num_t ethdev_nb_txq = - TOKEN_NUM_INITIALIZER(struct ethdev_cmd_tokens, nb_txq, RTE_UINT16); -cmdline_parse_token_string_t ethdev_mempool = - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, mempool, NULL); - -cmdline_parse_inst_t ethdev_cmd_ctx = { - .f = cli_ethdev, - .data = NULL, - .help_str = cmd_ethdev_help, - .tokens = { - (void *)ðdev_cmd, - (void *)ðdev_dev, - (void *)ðdev_rxq, - (void *)ðdev_nb_rxq, - (void *)ðdev_txq, - (void *)ðdev_nb_txq, - (void *)ðdev_mempool, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_help_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_help_cmd_tokens, help, "help"); -cmdline_parse_token_string_t ethdev_help_ethdev = - TOKEN_STRING_INITIALIZER(struct ethdev_help_cmd_tokens, ethdev, "ethdev"); - -cmdline_parse_inst_t ethdev_help_cmd_ctx = { - .f = cli_ethdev_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)ðdev_help_cmd, - (void *)ðdev_help_ethdev, - NULL, - }, -}; diff --git a/app/graph/ethdev.h b/app/graph/ethdev.h index 94d3247a2c..39ed723b8b 100644 --- a/app/graph/ethdev.h +++ b/app/graph/ethdev.h @@ -9,15 +9,6 @@ #define ETHDEV_IPV6_ADDR_LEN 16 -extern cmdline_parse_inst_t ethdev_show_cmd_ctx; -extern cmdline_parse_inst_t ethdev_stats_cmd_ctx; -extern cmdline_parse_inst_t ethdev_mtu_cmd_ctx; -extern cmdline_parse_inst_t ethdev_prom_mode_cmd_ctx; -extern cmdline_parse_inst_t ethdev_ip4_cmd_ctx; -extern cmdline_parse_inst_t ethdev_ip6_cmd_ctx; -extern cmdline_parse_inst_t ethdev_cmd_ctx; -extern cmdline_parse_inst_t ethdev_help_cmd_ctx; - struct ipv4_addr_config { uint32_t ip; uint32_t mask; diff --git a/app/graph/ethdev_priv.h b/app/graph/ethdev_priv.h index f231f3f3e1..043ca625de 100644 --- a/app/graph/ethdev_priv.h +++ b/app/graph/ethdev_priv.h @@ -13,69 +13,6 @@ #define ETHDEV_RX_DESC_DEFAULT 1024 #define ETHDEV_TX_DESC_DEFAULT 1024 -struct ethdev_show_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t show; -}; - -struct ethdev_stats_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t stats; -}; - -struct ethdev_mtu_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t mtu; - uint16_t size; -}; - -struct ethdev_prom_mode_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t prom; - cmdline_fixed_string_t enable; -}; - -struct ethdev_ip4_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t ip4; - cmdline_fixed_string_t addr; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t netmask; - cmdline_fixed_string_t mask; -}; - -struct ethdev_ip6_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t ip6; - cmdline_fixed_string_t addr; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t netmask; - cmdline_fixed_string_t mask; -}; - -struct ethdev_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t rxq; - cmdline_fixed_string_t txq; - cmdline_fixed_string_t mempool; - uint16_t nb_rxq; - uint16_t nb_txq; -}; - -struct ethdev_help_cmd_tokens { - cmdline_fixed_string_t help; - cmdline_fixed_string_t ethdev; -}; - struct ethdev_rss_config { uint32_t queue_id[ETHDEV_RXQ_RSS_MAX]; uint32_t n_queues; diff --git a/app/graph/ethdev_rx.c b/app/graph/ethdev_rx.c index 03f8effcca..25c439b9a3 100644 --- a/app/graph/ethdev_rx.c +++ b/app/graph/ethdev_rx.c @@ -83,83 +83,34 @@ ethdev_rx_map_add(char *name, uint32_t queue, uint32_t core) return 0; } -static void -cli_ethdev_rx_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_ethdev_rx_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; len = strlen(conn->msg_out); conn->msg_out += len; snprintf(conn->msg_out, conn->msg_out_len_max, "\n%s\n%s\n", - "----------------------------- ethdev_rx command help -----------------------------", + "---------------------------- ethdev_rx command help ----------------------------", cmd_ethdev_rx_help); len = strlen(conn->msg_out); conn->msg_out_len_max -= len; } -static void -cli_ethdev_rx(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_rx_map_port_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_rx_cmd_tokens *res = parsed_result; + struct cmd_ethdev_rx_map_port_result *res = parsed_result; int rc = -EINVAL; rc = ethdev_rx_map_add(res->dev, res->qid, res->core_id); if (rc < 0) { cli_exit(); - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev_rx); rte_exit(EXIT_FAILURE, "input core is Invalid\n"); } } - -cmdline_parse_token_string_t ethdev_rx_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, cmd, "ethdev_rx"); -cmdline_parse_token_string_t ethdev_rx_map = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, map, "map"); -cmdline_parse_token_string_t ethdev_rx_port = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, port, "port"); -cmdline_parse_token_string_t ethdev_rx_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_rx_queue = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, queue, "queue"); -cmdline_parse_token_num_t ethdev_rx_qid = - TOKEN_NUM_INITIALIZER(struct ethdev_rx_cmd_tokens, qid, RTE_UINT32); -cmdline_parse_token_string_t ethdev_rx_core = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, core, "core"); -cmdline_parse_token_num_t ethdev_rx_core_id = - TOKEN_NUM_INITIALIZER(struct ethdev_rx_cmd_tokens, core_id, RTE_UINT32); - -cmdline_parse_inst_t ethdev_rx_cmd_ctx = { - .f = cli_ethdev_rx, - .data = NULL, - .help_str = cmd_ethdev_rx_help, - .tokens = { - (void *)ðdev_rx_cmd, - (void *)ðdev_rx_map, - (void *)ðdev_rx_port, - (void *)ðdev_rx_dev, - (void *)ðdev_rx_queue, - (void *)ðdev_rx_qid, - (void *)ðdev_rx_core, - (void *)ðdev_rx_core_id, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_rx_help_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_help_cmd_tokens, cmd, "help"); -cmdline_parse_token_string_t ethdev_rx_help_module = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_help_cmd_tokens, module, "ethdev_rx"); - -cmdline_parse_inst_t ethdev_rx_help_cmd_ctx = { - .f = cli_ethdev_rx_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)ðdev_rx_help_cmd, - (void *)ðdev_rx_help_module, - NULL, - }, -}; diff --git a/app/graph/ethdev_rx.h b/app/graph/ethdev_rx.h index 8e7b31448c..ec3c97286a 100644 --- a/app/graph/ethdev_rx.h +++ b/app/graph/ethdev_rx.h @@ -29,8 +29,6 @@ uint8_t ethdev_rx_num_rx_queues_get(uint16_t port); extern struct rte_node_ethdev_config ethdev_conf[RTE_MAX_ETHPORTS]; extern struct lcore_conf lcore_conf[RTE_MAX_LCORE]; -extern cmdline_parse_inst_t ethdev_rx_help_cmd_ctx; -extern cmdline_parse_inst_t ethdev_rx_cmd_ctx; extern struct lcore_params *lcore_params; extern uint16_t nb_lcore_params; diff --git a/app/graph/ethdev_rx_priv.h b/app/graph/ethdev_rx_priv.h index 5d155be043..d714f83739 100644 --- a/app/graph/ethdev_rx_priv.h +++ b/app/graph/ethdev_rx_priv.h @@ -14,22 +14,6 @@ #define MAX_JUMBO_PKT_LEN 9600 #define NB_SOCKETS 8 -struct ethdev_rx_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t map; - cmdline_fixed_string_t port; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t queue; - cmdline_fixed_string_t core; - uint32_t core_id; - uint32_t qid; -}; - -struct ethdev_rx_help_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t module; -}; - struct lcore_params { uint16_t port_id; uint8_t queue_id; diff --git a/app/graph/examples/l3fwd.cli b/app/graph/examples/l3fwd.cli index c4977d4322..2badbbfca5 100644 --- a/app/graph/examples/l3fwd.cli +++ b/app/graph/examples/l3fwd.cli @@ -32,8 +32,8 @@ ethdev 0002:03:00.0 ip4 addr add 20.0.2.1 netmask 255.255.255.0 ; ; IPv6 addresses assigned to DPDK devices ; -ethdev 0002:02:00.0 ip6 addr add 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 -ethdev 0002:03:00.0 ip6 addr add 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 +ethdev 0002:02:00.0 ip6 addr add 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 +ethdev 0002:03:00.0 ip6 addr add 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 ; ; IPv4 routes which are installed to ipv4_lookup node for LPM processing @@ -44,8 +44,8 @@ ipv4_lookup route add ipv4 20.0.2.0 netmask 255.255.255.0 via 20.0.2.1 ; ; IPv6 routes which are installed to ipv6_lookup node for LPM processing ; -ipv6_lookup route add ipv6 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 via 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A -ipv6_lookup route add ipv6 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 via 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B +ipv6_lookup route add ipv6 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 via 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A +ipv6_lookup route add ipv6 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 via 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B ; ; Peer MAC and IPv4 address mapping @@ -56,8 +56,8 @@ neigh add ipv4 20.0.2.2 62:20:DA:4F:68:70 ; ; Peer MAC and IPv6 address mapping ; -neigh add ipv6 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A 52:20:DA:4F:68:70 -neigh add ipv6 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B 62:20:DA:4F:68:70 +neigh add ipv6 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A 52:20:DA:4F:68:70 +neigh add ipv6 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B 62:20:DA:4F:68:70 ; ; Port-Queue-Core mapping for ethdev_rx node diff --git a/app/graph/examples/l3fwd_pcap.cli b/app/graph/examples/l3fwd_pcap.cli index 30dde74a65..93e4249444 100644 --- a/app/graph/examples/l3fwd_pcap.cli +++ b/app/graph/examples/l3fwd_pcap.cli @@ -30,8 +30,8 @@ ethdev net_pcap1 ip4 addr add 20.0.2.1 netmask 255.255.255.0 ; ; IPv6 addresses assigned to DPDK devices ; -ethdev net_pcap0 ip6 addr add 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 -ethdev net_pcap1 ip6 addr add 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 +ethdev net_pcap0 ip6 addr add 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 +ethdev net_pcap1 ip6 addr add 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 ; ; IPv4 routes which are installed to ipv4_lookup node for LPM processing @@ -42,8 +42,8 @@ ipv4_lookup route add ipv4 20.0.2.0 netmask 255.255.255.0 via 20.0.2.1 ; ; IPv6 routes which are installed to ipv6_lookup node for LPM processing ; -ipv6_lookup route add ipv6 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 via 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A -ipv6_lookup route add ipv6 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 via 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B +ipv6_lookup route add ipv6 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 via 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A +ipv6_lookup route add ipv6 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 via 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B ; ; Peer MAC and IPv4 address mapping @@ -54,8 +54,8 @@ neigh add ipv4 20.0.2.2 62:20:DA:4F:68:70 ; ; Peer MAC and IPv6 address mapping ; -neigh add ipv6 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A 52:20:DA:4F:68:70 -neigh add ipv6 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B 62:20:DA:4F:68:70 +neigh add ipv6 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A 52:20:DA:4F:68:70 +neigh add ipv6 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B 62:20:DA:4F:68:70 ; ; Port-Queue-Core mapping for ethdev_rx node diff --git a/app/graph/graph.c b/app/graph/graph.c index a65723a196..8e3505d213 100644 --- a/app/graph/graph.c +++ b/app/graph/graph.c @@ -20,7 +20,7 @@ #define RTE_LOGTYPE_APP_GRAPH RTE_LOGTYPE_USER1 static const char -cmd_graph_help[] = "graph <usecases> bsz <size> tmo <ns> coremask <bitmask> " +cmd_graph_help[] = "graph <usecases> coremask <bitmask> bsz <size> tmo <ns> " "model <rtc | mcd | default> pcap_enable <0 | 1> num_pcap_pkts <num>" "pcap_file <output_capture_file>"; @@ -244,8 +244,8 @@ graph_stats_print_to_file(void) fclose(fp); } -static void -cli_graph_stats(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, +void +cmd_graph_stats_show_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) { graph_stats_print_to_file(); @@ -257,8 +257,8 @@ graph_status_get(void) return graph_started; } -static void -cli_graph_start(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, +void +cmd_graph_start_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) { struct rte_node_ethdev_config *conf; @@ -388,10 +388,10 @@ graph_coremask_get(void) return graph_config.params.coremask; } -static void -cli_graph(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) +void +cmd_graph_parsed(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) { - struct graph_config_cmd_tokens *res = parsed_result; + struct cmd_graph_result *res = parsed_result; struct graph_config config; char *model_name; uint8_t model; @@ -424,9 +424,9 @@ cli_graph(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused voi } } -static void -cli_graph_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_graph_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -439,112 +439,3 @@ cli_graph_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl len = strlen(conn->msg_out); conn->msg_out_len_max -= len; } - -cmdline_parse_token_string_t graph_display_graph = - TOKEN_STRING_INITIALIZER(struct graph_stats_cmd_tokens, graph, "graph"); -cmdline_parse_token_string_t graph_display_stats = - TOKEN_STRING_INITIALIZER(struct graph_stats_cmd_tokens, stats, "stats"); -cmdline_parse_token_string_t graph_display_show = - TOKEN_STRING_INITIALIZER(struct graph_stats_cmd_tokens, show, "show"); - -cmdline_parse_inst_t graph_stats_cmd_ctx = { - .f = cli_graph_stats, - .data = NULL, - .help_str = "graph stats show", - .tokens = { - (void *)&graph_display_graph, - (void *)&graph_display_stats, - (void *)&graph_display_show, - NULL, - }, -}; - -cmdline_parse_token_string_t graph_config_start_graph = - TOKEN_STRING_INITIALIZER(struct graph_start_cmd_tokens, graph, "graph"); -cmdline_parse_token_string_t graph_config_start = - TOKEN_STRING_INITIALIZER(struct graph_start_cmd_tokens, start, "start"); - -cmdline_parse_inst_t graph_start_cmd_ctx = { - .f = cli_graph_start, - .data = NULL, - .help_str = "graph start", - .tokens = { - (void *)&graph_config_start_graph, - (void *)&graph_config_start, - NULL, - }, -}; - -cmdline_parse_token_string_t graph_config_add_graph = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, graph, "graph"); -cmdline_parse_token_string_t graph_config_add_usecase = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, usecase, NULL); -cmdline_parse_token_string_t graph_config_add_coremask = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, coremask, "coremask"); -cmdline_parse_token_num_t graph_config_add_mask = - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, mask, RTE_UINT64); -cmdline_parse_token_string_t graph_config_add_bsz = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, bsz, "bsz"); -cmdline_parse_token_num_t graph_config_add_size = - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, size, RTE_UINT16); -cmdline_parse_token_string_t graph_config_add_tmo = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, tmo, "tmo"); -cmdline_parse_token_num_t graph_config_add_ns = - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, ns, RTE_UINT64); -cmdline_parse_token_string_t graph_config_add_model = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, model, "model"); -cmdline_parse_token_string_t graph_config_add_model_name = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, model_name, "rtc#mcd#default"); -cmdline_parse_token_string_t graph_config_add_capt_ena = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, capt_ena, "pcap_enable"); -cmdline_parse_token_num_t graph_config_add_pcap_ena = - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, pcap_ena, RTE_UINT8); -cmdline_parse_token_string_t graph_config_add_capt_pkts_count = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, capt_pkts_count, "num_pcap_pkts"); -cmdline_parse_token_num_t graph_config_add_num_pcap_pkts = - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, num_pcap_pkts, RTE_UINT64); -cmdline_parse_token_string_t graph_config_add_capt_file = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, capt_file, "pcap_file"); -cmdline_parse_token_string_t graph_config_add_pcap_file = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, pcap_file, NULL); - -cmdline_parse_inst_t graph_config_cmd_ctx = { - .f = cli_graph, - .data = NULL, - .help_str = cmd_graph_help, - .tokens = { - (void *)&graph_config_add_graph, - (void *)&graph_config_add_usecase, - (void *)&graph_config_add_coremask, - (void *)&graph_config_add_mask, - (void *)&graph_config_add_bsz, - (void *)&graph_config_add_size, - (void *)&graph_config_add_tmo, - (void *)&graph_config_add_ns, - (void *)&graph_config_add_model, - (void *)&graph_config_add_model_name, - (void *)&graph_config_add_capt_ena, - (void *)&graph_config_add_pcap_ena, - (void *)&graph_config_add_capt_pkts_count, - (void *)&graph_config_add_num_pcap_pkts, - (void *)&graph_config_add_capt_file, - (void *)&graph_config_add_pcap_file, - NULL, - }, -}; - -cmdline_parse_token_string_t graph_help_cmd = - TOKEN_STRING_INITIALIZER(struct graph_help_cmd_tokens, help, "help"); -cmdline_parse_token_string_t graph_help_graph = - TOKEN_STRING_INITIALIZER(struct graph_help_cmd_tokens, graph, "graph"); - -cmdline_parse_inst_t graph_help_cmd_ctx = { - .f = cli_graph_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)&graph_help_cmd, - (void *)&graph_help_graph, - NULL, - }, -}; diff --git a/app/graph/graph.h b/app/graph/graph.h index a14fa37ccd..c851b71e7e 100644 --- a/app/graph/graph.h +++ b/app/graph/graph.h @@ -7,11 +7,6 @@ #include <cmdline_parse.h> -extern cmdline_parse_inst_t graph_config_cmd_ctx; -extern cmdline_parse_inst_t graph_start_cmd_ctx; -extern cmdline_parse_inst_t graph_stats_cmd_ctx; -extern cmdline_parse_inst_t graph_help_cmd_ctx; - int graph_walk_start(void *conf); void graph_stats_print(void); void graph_pcap_config_get(uint8_t *pcap_ena, uint64_t *num_pkts, char **file); diff --git a/app/graph/graph_priv.h b/app/graph/graph_priv.h index a48a35daa3..3306edda63 100644 --- a/app/graph/graph_priv.h +++ b/app/graph/graph_priv.h @@ -7,41 +7,6 @@ #define MAX_GRAPH_USECASES 32 -struct graph_help_cmd_tokens { - cmdline_fixed_string_t help; - cmdline_fixed_string_t graph; -}; - -struct graph_start_cmd_tokens { - cmdline_fixed_string_t graph; - cmdline_fixed_string_t start; -}; - -struct graph_stats_cmd_tokens { - cmdline_fixed_string_t show; - cmdline_fixed_string_t graph; - cmdline_fixed_string_t stats; -}; - -struct graph_config_cmd_tokens { - cmdline_fixed_string_t graph; - cmdline_fixed_string_t usecase; - cmdline_fixed_string_t bsz; - cmdline_fixed_string_t tmo; - cmdline_fixed_string_t coremask; - cmdline_fixed_string_t model; - cmdline_fixed_string_t capt_ena; - cmdline_fixed_string_t capt_pkts_count; - cmdline_fixed_string_t capt_file; - cmdline_fixed_string_t model_name; - cmdline_fixed_string_t pcap_file; - uint16_t size; - uint64_t ns; - uint64_t mask; - uint64_t num_pcap_pkts; - uint8_t pcap_ena; -}; - enum graph_model { GRAPH_MODEL_RTC = 0x01, GRAPH_MODEL_MCD = 0x02, diff --git a/app/graph/ip4_route.c b/app/graph/ip4_route.c index fc83586427..48ea912597 100644 --- a/app/graph/ip4_route.c +++ b/app/graph/ip4_route.c @@ -20,7 +20,6 @@ cmd_ipv4_lookup_help[] = "ipv4_lookup route add ipv4 <ip> netmask <mask> via <ip struct ip4_route route4 = TAILQ_HEAD_INITIALIZER(route4); - void route_ip4_list_clean(void) { @@ -127,9 +126,9 @@ route_ip4_add_to_lookup(void) return 0; } -static void -cli_ipv4_lookup_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_ipv4_lookup_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -143,82 +142,19 @@ cli_ipv4_lookup_help(__rte_unused void *parsed_result, __rte_unused struct cmdli conn->msg_out_len_max -= len; } -static void -cli_ipv4_lookup(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ipv4_lookup_route_add_ipv4_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ip4_lookup_cmd_tokens *res = parsed_result; + struct cmd_ipv4_lookup_route_add_ipv4_result *res = parsed_result; struct route_ipv4_config config; int rc = -EINVAL; - if (parser_ip4_read(&config.ip, res->ip)) { - printf(MSG_ARG_INVALID, "ipv4"); - return; - } - - if (parser_ip4_read(&config.netmask, res->mask)) { - printf(MSG_ARG_INVALID, "netmask"); - return; - } - - if (parser_ip4_read(&config.via, res->via_ip)) { - printf(MSG_ARG_INVALID, "via ip"); - return; - } + config.ip = rte_be_to_cpu_32(res->ip.addr.ipv4.s_addr); + config.netmask = rte_be_to_cpu_32(res->mask.addr.ipv4.s_addr); + config.via = rte_be_to_cpu_32(res->via_ip.addr.ipv4.s_addr); rc = route_ip4_add(&config); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ipv4_lookup); } - -cmdline_parse_token_string_t ip4_lookup_cmd = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, cmd, "ipv4_lookup"); -cmdline_parse_token_string_t ip4_lookup_route = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, route, "route"); -cmdline_parse_token_string_t ip4_lookup_add = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, add, "add"); -cmdline_parse_token_string_t ip4_lookup_ip4 = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, ip4, "ipv4"); -cmdline_parse_token_string_t ip4_lookup_ip = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t ip4_lookup_netmask = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, netmask, "netmask"); -cmdline_parse_token_string_t ip4_lookup_mask = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, mask, NULL); -cmdline_parse_token_string_t ip4_lookup_via = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, via, "via"); -cmdline_parse_token_string_t ip4_lookup_via_ip = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, via_ip, NULL); - -cmdline_parse_inst_t ipv4_lookup_cmd_ctx = { - .f = cli_ipv4_lookup, - .data = NULL, - .help_str = cmd_ipv4_lookup_help, - .tokens = { - (void *)&ip4_lookup_cmd, - (void *)&ip4_lookup_route, - (void *)&ip4_lookup_add, - (void *)&ip4_lookup_ip4, - (void *)&ip4_lookup_ip, - (void *)&ip4_lookup_netmask, - (void *)&ip4_lookup_mask, - (void *)&ip4_lookup_via, - (void *)&ip4_lookup_via_ip, - NULL, - }, -}; - -cmdline_parse_token_string_t ipv4_lookup_help_cmd = - TOKEN_STRING_INITIALIZER(struct ipv4_lookup_help_cmd_tokens, cmd, "help"); -cmdline_parse_token_string_t ipv4_lookup_help_module = - TOKEN_STRING_INITIALIZER(struct ipv4_lookup_help_cmd_tokens, module, "ipv4_lookup"); - -cmdline_parse_inst_t ipv4_lookup_help_cmd_ctx = { - .f = cli_ipv4_lookup_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)&ipv4_lookup_help_cmd, - (void *)&ipv4_lookup_help_module, - NULL, - }, -}; diff --git a/app/graph/ip6_route.c b/app/graph/ip6_route.c index 1fa4865220..834719ecae 100644 --- a/app/graph/ip6_route.c +++ b/app/graph/ip6_route.c @@ -132,9 +132,9 @@ route_ip6_add_to_lookup(void) return 0; } -static void -cli_ipv6_lookup_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_ipv6_lookup_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -148,82 +148,24 @@ cli_ipv6_lookup_help(__rte_unused void *parsed_result, __rte_unused struct cmdli conn->msg_out_len_max -= len; } -static void -cli_ipv6_lookup(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ipv6_lookup_route_add_ipv6_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ip6_lookup_cmd_tokens *res = parsed_result; + struct cmd_ipv6_lookup_route_add_ipv6_result *res = parsed_result; struct route_ipv6_config config; - int rc = -EINVAL; + int rc = -EINVAL, i; - if (parser_ip6_read(config.ip, res->ip)) { - printf(MSG_ARG_INVALID, "ipv6"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + config.ip[i] = res->ip.addr.ipv6.s6_addr[i]; - if (parser_ip6_read(config.mask, res->mask)) { - printf(MSG_ARG_INVALID, "netmask"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + config.mask[i] = res->mask.addr.ipv6.s6_addr[i]; - if (parser_ip6_read(config.gateway, res->via_ip)) { - printf(MSG_ARG_INVALID, "gateway ip"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + config.gateway[i] = res->via_ip.addr.ipv6.s6_addr[i]; rc = route_ip6_add(&config); if (rc) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ipv6_lookup); } - -cmdline_parse_token_string_t ip6_lookup_cmd = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, cmd, "ipv6_lookup"); -cmdline_parse_token_string_t ip6_lookup_route = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, route, "route"); -cmdline_parse_token_string_t ip6_lookup_add = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, add, "add"); -cmdline_parse_token_string_t ip6_lookup_ip6 = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, ip6, "ipv6"); -cmdline_parse_token_string_t ip6_lookup_ip = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t ip6_lookup_netmask = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, netmask, "netmask"); -cmdline_parse_token_string_t ip6_lookup_mask = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, mask, NULL); -cmdline_parse_token_string_t ip6_lookup_via = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, via, "via"); -cmdline_parse_token_string_t ip6_lookup_via_ip = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, via_ip, NULL); - -cmdline_parse_inst_t ipv6_lookup_cmd_ctx = { - .f = cli_ipv6_lookup, - .data = NULL, - .help_str = cmd_ipv6_lookup_help, - .tokens = { - (void *)&ip6_lookup_cmd, - (void *)&ip6_lookup_route, - (void *)&ip6_lookup_add, - (void *)&ip6_lookup_ip6, - (void *)&ip6_lookup_ip, - (void *)&ip6_lookup_netmask, - (void *)&ip6_lookup_mask, - (void *)&ip6_lookup_via, - (void *)&ip6_lookup_via_ip, - NULL, - }, -}; - -cmdline_parse_token_string_t ipv6_lookup_help_cmd = - TOKEN_STRING_INITIALIZER(struct ipv6_lookup_help_cmd_tokens, cmd, "help"); -cmdline_parse_token_string_t ipv6_lookup_help_module = - TOKEN_STRING_INITIALIZER(struct ipv6_lookup_help_cmd_tokens, module, "ipv6_lookup"); - -cmdline_parse_inst_t ipv6_lookup_help_cmd_ctx = { - .f = cli_ipv6_lookup_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)&ipv6_lookup_help_cmd, - (void *)&ipv6_lookup_help_module, - NULL, - }, -}; diff --git a/app/graph/mempool.c b/app/graph/mempool.c index 9fd3f8460b..fbb0ca8f05 100644 --- a/app/graph/mempool.c +++ b/app/graph/mempool.c @@ -47,9 +47,9 @@ mempool_process(struct mempool_config *config) return 0; } -static void -cli_mempool_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_mempool_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -63,10 +63,10 @@ cli_mempool_help(__rte_unused void *parsed_result, __rte_unused struct cmdline * conn->msg_out_len_max -= len; } -static void -cli_mempool(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) +void +cmd_mempool_parsed(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) { - struct mempool_config_cmd_tokens *res = parsed_result; + struct cmd_mempool_result *res = parsed_result; struct mempool_config config; int rc = -EINVAL; @@ -82,59 +82,3 @@ cli_mempool(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused v if (rc < 0) printf(MSG_CMD_FAIL, "mempool"); } - -cmdline_parse_token_string_t mempool_config_add_mempool = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, mempool, "mempool"); -cmdline_parse_token_string_t mempool_config_add_name = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, name, NULL); -cmdline_parse_token_string_t mempool_config_add_size = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, size, "size"); -cmdline_parse_token_num_t mempool_config_add_buf_sz = - TOKEN_NUM_INITIALIZER(struct mempool_config_cmd_tokens, buf_sz, RTE_UINT16); -cmdline_parse_token_string_t mempool_config_add_buffers = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, buffers, "buffers"); -cmdline_parse_token_num_t mempool_config_add_nb_bufs = - TOKEN_NUM_INITIALIZER(struct mempool_config_cmd_tokens, nb_bufs, RTE_UINT16); -cmdline_parse_token_string_t mempool_config_add_cache = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, cache, "cache"); -cmdline_parse_token_num_t mempool_config_add_cache_size = - TOKEN_NUM_INITIALIZER(struct mempool_config_cmd_tokens, cache_size, RTE_UINT16); -cmdline_parse_token_string_t mempool_config_add_numa = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, numa, "numa"); -cmdline_parse_token_num_t mempool_config_add_node = - TOKEN_NUM_INITIALIZER(struct mempool_config_cmd_tokens, node, RTE_UINT16); - -cmdline_parse_inst_t mempool_config_cmd_ctx = { - .f = cli_mempool, - .data = NULL, - .help_str = cmd_mempool_help, - .tokens = { - (void *)&mempool_config_add_mempool, - (void *)&mempool_config_add_name, - (void *)&mempool_config_add_size, - (void *)&mempool_config_add_buf_sz, - (void *)&mempool_config_add_buffers, - (void *)&mempool_config_add_nb_bufs, - (void *)&mempool_config_add_cache, - (void *)&mempool_config_add_cache_size, - (void *)&mempool_config_add_numa, - (void *)&mempool_config_add_node, - NULL, - }, -}; - -cmdline_parse_token_string_t mempool_help_cmd = - TOKEN_STRING_INITIALIZER(struct mempool_help_cmd_tokens, help, "help"); -cmdline_parse_token_string_t mempool_help_mempool = - TOKEN_STRING_INITIALIZER(struct mempool_help_cmd_tokens, mempool, "mempool"); - -cmdline_parse_inst_t mempool_help_cmd_ctx = { - .f = cli_mempool_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)&mempool_help_cmd, - (void *)&mempool_help_mempool, - NULL, - }, -}; diff --git a/app/graph/mempool.h b/app/graph/mempool.h index 0808c4259e..dc6e37dac1 100644 --- a/app/graph/mempool.h +++ b/app/graph/mempool.h @@ -16,9 +16,6 @@ struct mempool_config { int numa_node; }; -extern cmdline_parse_inst_t mempool_config_cmd_ctx; -extern cmdline_parse_inst_t mempool_help_cmd_ctx; - int mempool_process(struct mempool_config *config); #endif diff --git a/app/graph/mempool_priv.h b/app/graph/mempool_priv.h index 3ce64702a9..5a55722b32 100644 --- a/app/graph/mempool_priv.h +++ b/app/graph/mempool_priv.h @@ -7,24 +7,6 @@ #include "mempool.h" -struct mempool_config_cmd_tokens { - cmdline_fixed_string_t mempool; - cmdline_fixed_string_t size; - cmdline_fixed_string_t buffers; - cmdline_fixed_string_t cache; - cmdline_fixed_string_t numa; - cmdline_fixed_string_t name; - uint16_t buf_sz; - uint16_t nb_bufs; - uint16_t cache_size; - uint16_t node; -}; - -struct mempool_help_cmd_tokens { - cmdline_fixed_string_t help; - cmdline_fixed_string_t mempool; -}; - struct mempools { struct mempool_config config[RTE_MAX_ETHPORTS]; struct rte_mempool *mp[RTE_MAX_ETHPORTS]; diff --git a/app/graph/meson.build b/app/graph/meson.build index 5b0f966d99..9cb62f493e 100644 --- a/app/graph/meson.build +++ b/app/graph/meson.build @@ -23,3 +23,11 @@ sources = files( 'neigh.c', 'utils.c', ) + +cmd_h = custom_target('commands_hdr', + output: 'commands.h', + input: files('commands.list'), + capture: true, + command: [cmdline_gen_cmd, '--context-name=modules_ctx', '@INPUT@'] +) +sources += cmd_h diff --git a/app/graph/module_api.h b/app/graph/module_api.h index 7193e0b616..6bf63278fa 100644 --- a/app/graph/module_api.h +++ b/app/graph/module_api.h @@ -10,6 +10,7 @@ #include "cli.h" #include "conn.h" +#include "commands.h" #include "ethdev.h" #include "ethdev_rx.h" #include "graph.h" diff --git a/app/graph/neigh.c b/app/graph/neigh.c index 22be7361e3..79fd542c89 100644 --- a/app/graph/neigh.c +++ b/app/graph/neigh.c @@ -235,18 +235,16 @@ neigh_ip6_add_to_rewrite(void) return 0; } -static void -cli_neigh_v4(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_neigh_add_ipv4_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct neigh_v4_cmd_tokens *res = parsed_result; + struct cmd_neigh_add_ipv4_result *res = parsed_result; int rc = -EINVAL; uint64_t mac; uint32_t ip; - if (parser_ip4_read(&ip, res->ip)) { - printf(MSG_ARG_INVALID, "ip"); - return; - } + ip = rte_be_to_cpu_32(res->ip.addr.ipv4.s_addr); if (parser_mac_read(&mac, res->mac)) { printf(MSG_ARG_INVALID, "mac"); @@ -255,21 +253,20 @@ cli_neigh_v4(void *parsed_result, __rte_unused struct cmdline *cl, void *data __ rc = neigh_ip4_add(ip, mac); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->neigh); } -static void -cli_neigh_v6(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_neigh_add_ipv6_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct neigh_v6_cmd_tokens *res = parsed_result; + struct cmd_neigh_add_ipv6_result *res = parsed_result; uint8_t ip[ETHDEV_IPV6_ADDR_LEN]; - int rc = -EINVAL; + int rc = -EINVAL, i; uint64_t mac; - if (parser_ip6_read(ip, res->ip)) { - printf(MSG_ARG_INVALID, "ip"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + ip[i] = res->ip.addr.ipv6.s6_addr[i]; if (parser_mac_read(&mac, res->mac)) { printf(MSG_ARG_INVALID, "mac"); @@ -278,12 +275,12 @@ cli_neigh_v6(void *parsed_result, __rte_unused struct cmdline *cl, void *data __ rc = neigh_ip6_add(ip, mac); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->neigh); } -static void -cli_neigh_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_neigh_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -296,69 +293,3 @@ cli_neigh_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl len = strlen(conn->msg_out); conn->msg_out_len_max -= len; } - -cmdline_parse_token_string_t neigh_v4_cmd = - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, cmd, "neigh"); -cmdline_parse_token_string_t neigh_v4_add = - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, add, "add"); -cmdline_parse_token_string_t neigh_v4_ip4 = - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, ip4, "ipv4"); -cmdline_parse_token_string_t neigh_v4_ip = - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t neigh_v4_mac = - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, mac, NULL); - -cmdline_parse_inst_t neigh_v4_cmd_ctx = { - .f = cli_neigh_v4, - .data = NULL, - .help_str = cmd_neigh_v4_help, - .tokens = { - (void *)&neigh_v4_cmd, - (void *)&neigh_v4_add, - (void *)&neigh_v4_ip4, - (void *)&neigh_v4_ip, - (void *)&neigh_v4_mac, - NULL, - }, -}; - -cmdline_parse_token_string_t neigh_v6_cmd = - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, cmd, "neigh"); -cmdline_parse_token_string_t neigh_v6_add = - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, add, "add"); -cmdline_parse_token_string_t neigh_v6_ip6 = - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, ip6, "ipv6"); -cmdline_parse_token_string_t neigh_v6_ip = - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t neigh_v6_mac = - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, mac, NULL); - -cmdline_parse_inst_t neigh_v6_cmd_ctx = { - .f = cli_neigh_v6, - .data = NULL, - .help_str = cmd_neigh_v6_help, - .tokens = { - (void *)&neigh_v6_cmd, - (void *)&neigh_v6_add, - (void *)&neigh_v6_ip6, - (void *)&neigh_v6_ip, - (void *)&neigh_v6_mac, - NULL, - }, -}; - -cmdline_parse_token_string_t neigh_help_cmd = - TOKEN_STRING_INITIALIZER(struct neigh_help_cmd_tokens, cmd, "help"); -cmdline_parse_token_string_t neigh_help_module = - TOKEN_STRING_INITIALIZER(struct neigh_help_cmd_tokens, module, "neigh"); - -cmdline_parse_inst_t neigh_help_cmd_ctx = { - .f = cli_neigh_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)&neigh_help_cmd, - (void *)&neigh_help_module, - NULL, - }, -}; diff --git a/app/graph/neigh.h b/app/graph/neigh.h index 928981fc31..2688bd9434 100644 --- a/app/graph/neigh.h +++ b/app/graph/neigh.h @@ -5,10 +5,6 @@ #ifndef APP_GRAPH_NEIGH_H #define APP_GRAPH_NEIGH_H -extern cmdline_parse_inst_t neigh_v4_cmd_ctx; -extern cmdline_parse_inst_t neigh_v6_cmd_ctx; -extern cmdline_parse_inst_t neigh_help_cmd_ctx; - void neigh4_list_clean(void); void neigh6_list_clean(void); int neigh_ip4_add_to_rewrite(void); diff --git a/app/graph/neigh_priv.h b/app/graph/neigh_priv.h index 0ec9b1510f..1a7106c309 100644 --- a/app/graph/neigh_priv.h +++ b/app/graph/neigh_priv.h @@ -7,27 +7,6 @@ #define MAX_NEIGH_ENTRIES 32 -struct neigh_v4_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip4; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t mac; -}; - -struct neigh_v6_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip6; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t mac; -}; - -struct neigh_help_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t module; -}; - struct neigh_ipv4_config { TAILQ_ENTRY(neigh_ipv4_config) next; uint32_t ip; diff --git a/app/graph/route.h b/app/graph/route.h index 0d271d1350..23a7951d2d 100644 --- a/app/graph/route.h +++ b/app/graph/route.h @@ -7,11 +7,6 @@ #define MAX_ROUTE_ENTRIES 32 -extern cmdline_parse_inst_t ipv4_lookup_cmd_ctx; -extern cmdline_parse_inst_t ipv6_lookup_cmd_ctx; -extern cmdline_parse_inst_t ipv4_lookup_help_cmd_ctx; -extern cmdline_parse_inst_t ipv6_lookup_help_cmd_ctx; - struct route_ipv4_config { TAILQ_ENTRY(route_ipv4_config) next; uint32_t ip; diff --git a/app/graph/route_priv.h b/app/graph/route_priv.h index f363a551a9..6a30711acd 100644 --- a/app/graph/route_priv.h +++ b/app/graph/route_priv.h @@ -7,38 +7,4 @@ #define MAX_ROUTE_ENTRIES 32 -struct ip4_lookup_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t route; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip4; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t netmask; - cmdline_fixed_string_t mask; - cmdline_fixed_string_t via; - cmdline_fixed_string_t via_ip; -}; - -struct ip6_lookup_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t route; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip6; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t netmask; - cmdline_fixed_string_t mask; - cmdline_fixed_string_t via; - cmdline_fixed_string_t via_ip; -}; - -struct ipv4_lookup_help_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t module; -}; - -struct ipv6_lookup_help_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t module; -}; - #endif -- 2.25.1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/1] app/graph: generate cmdline boilerplate 2023-12-12 17:05 ` [PATCH v2 1/1] " skori @ 2023-12-18 8:48 ` Nithin Dabilpuram 2024-03-06 21:52 ` Thomas Monjalon 2024-03-07 9:40 ` [PATCH v3 " skori 2 siblings, 0 replies; 9+ messages in thread From: Nithin Dabilpuram @ 2023-12-18 8:48 UTC (permalink / raw) To: skori; +Cc: Rakesh Kudurumalla, dev, Bruce Richardson Acked-by: Nithin Dabilpuram<ndabilpuram@marvell.com> On Tue, Dec 12, 2023 at 10:36 PM <skori@marvell.com> wrote: > > From: Sunil Kumar Kori <skori@marvell.com> > > Use the dpdk-cmdline-gen script to autogenerate all the boilerplate > structs and defines for the commandline part of the application. > > Signed-off-by: Sunil Kumar Kori <skori@marvell.com> > Acked-by: Bruce Richardson <bruce.richardson@intel.com> > --- > v1..v2: > - Rebase and remove Depends-On: tag as dependent series is applied. > > app/graph/cli.c | 27 --- > app/graph/commands.list | 32 ++++ > app/graph/ethdev.c | 288 +++++------------------------- > app/graph/ethdev.h | 9 - > app/graph/ethdev_priv.h | 63 ------- > app/graph/ethdev_rx.c | 67 +------ > app/graph/ethdev_rx.h | 2 - > app/graph/ethdev_rx_priv.h | 16 -- > app/graph/examples/l3fwd.cli | 12 +- > app/graph/examples/l3fwd_pcap.cli | 12 +- > app/graph/graph.c | 131 ++------------ > app/graph/graph.h | 5 - > app/graph/graph_priv.h | 35 ---- > app/graph/ip4_route.c | 86 ++------- > app/graph/ip6_route.c | 88 ++------- > app/graph/mempool.c | 68 +------ > app/graph/mempool.h | 3 - > app/graph/mempool_priv.h | 18 -- > app/graph/meson.build | 8 + > app/graph/module_api.h | 1 + > app/graph/neigh.c | 103 ++--------- > app/graph/neigh.h | 4 - > app/graph/neigh_priv.h | 21 --- > app/graph/route.h | 5 - > app/graph/route_priv.h | 34 ---- > 25 files changed, 164 insertions(+), 974 deletions(-) > create mode 100644 app/graph/commands.list > > diff --git a/app/graph/cli.c b/app/graph/cli.c > index 30b12312d6..0f23aa2586 100644 > --- a/app/graph/cli.c > +++ b/app/graph/cli.c > @@ -19,33 +19,6 @@ > #define CMD_MAX_TOKENS 256 > #define MAX_LINE_SIZE 2048 > > -cmdline_parse_ctx_t modules_ctx[] = { > - (cmdline_parse_inst_t *)&graph_config_cmd_ctx, > - (cmdline_parse_inst_t *)&graph_start_cmd_ctx, > - (cmdline_parse_inst_t *)&graph_stats_cmd_ctx, > - (cmdline_parse_inst_t *)&graph_help_cmd_ctx, > - (cmdline_parse_inst_t *)&mempool_config_cmd_ctx, > - (cmdline_parse_inst_t *)&mempool_help_cmd_ctx, > - (cmdline_parse_inst_t *)ðdev_show_cmd_ctx, > - (cmdline_parse_inst_t *)ðdev_stats_cmd_ctx, > - (cmdline_parse_inst_t *)ðdev_mtu_cmd_ctx, > - (cmdline_parse_inst_t *)ðdev_prom_mode_cmd_ctx, > - (cmdline_parse_inst_t *)ðdev_ip4_cmd_ctx, > - (cmdline_parse_inst_t *)ðdev_ip6_cmd_ctx, > - (cmdline_parse_inst_t *)ðdev_cmd_ctx, > - (cmdline_parse_inst_t *)ðdev_help_cmd_ctx, > - (cmdline_parse_inst_t *)ðdev_rx_cmd_ctx, > - (cmdline_parse_inst_t *)ðdev_rx_help_cmd_ctx, > - (cmdline_parse_inst_t *)&ipv4_lookup_cmd_ctx, > - (cmdline_parse_inst_t *)&ipv4_lookup_help_cmd_ctx, > - (cmdline_parse_inst_t *)&ipv6_lookup_cmd_ctx, > - (cmdline_parse_inst_t *)&ipv6_lookup_help_cmd_ctx, > - (cmdline_parse_inst_t *)&neigh_v4_cmd_ctx, > - (cmdline_parse_inst_t *)&neigh_v6_cmd_ctx, > - (cmdline_parse_inst_t *)&neigh_help_cmd_ctx, > - NULL, > -}; > - > static struct cmdline *cl; > > static int > diff --git a/app/graph/commands.list b/app/graph/commands.list > new file mode 100644 > index 0000000000..1f3f43cdba > --- /dev/null > +++ b/app/graph/commands.list > @@ -0,0 +1,32 @@ > +# SPDX-License-Identifier: BSD-3-Clause > +# Copyright(c) 2023 Marvell. > +# > +graph <STRING>usecase coremask <UINT64>mask bsz <UINT16>size tmo <UINT64>ns model <(rtc,mcd,default)>model_name <(pcap_enable)>capt_ena <UINT8>pcap_ena <(num_pcap_pkts)>capt_pkts_count <UINT64>num_pcap_pkts <(pcap_file)>capt_file <STRING>pcap_file # Command to create graph for given usecase > +graph start # Comanmd to start a graph > +graph stats show # Command to dump graph stats > +help graph # Print help on graph commands > + > +mempool <STRING>name size <UINT16>buf_sz buffers <UINT16>nb_bufs cache <UINT16>cache_size numa <UINT16>node # Create mempool > +help mempool # Print help on mempool commands > + > +ethdev <STRING>dev rxq <UINT16>nb_rxq txq <UINT16>nb_txq <STRING>mempool # Create Ethernet device > +ethdev <STRING>__dev mtu <UINT16>size # Set MTU on Ethernet device > +ethdev <STRING>__dev promiscuous <(on,off)>enable # Set promiscuous mode on Ethernet device > +ethdev <STRING>__dev show # Command to dump Ethernet device info > +ethdev <STRING>__dev stats # Command to dump Ethernet device stats > +ethdev <STRING>__dev ip4 addr add <IPv4>ip netmask <IPv4>mask # Set IPv4 address on Ethernet device > +ethdev <STRING>__dev ip6 addr add <IPv6>ip netmask <IPv6>mask # Set IPv6 address on Ethernet device > +help ethdev # Print help on ethdev commands > + > +ethdev_rx map port <STRING>dev queue <UINT32>qid core <UINT32>core_id # Port-Queue-Core mapping > +help ethdev_rx # Print help on ethdev_rx commands > + > +ipv4_lookup route add ipv4 <IPv4>ip netmask <IPv4>mask via <IPv4>via_ip # Add IPv4 route to LPM table > +help ipv4_lookup # Print help on ipv4_lookup commands > + > +ipv6_lookup route add ipv6 <IPv6>ip netmask <IPv6>mask via <IPv6>via_ip # Add IPv6 route to LPM6 table > +help ipv6_lookup # Print help on ipv6_lookup commands > + > +neigh add ipv4 <IPv4>ip <STRING>mac # Add static neighbour for IPv4 > +neigh add ipv6 <IPv6>ip <STRING>mac # Add static neighbour for IPv6 > +help neigh # Print help on neigh commands > diff --git a/app/graph/ethdev.c b/app/graph/ethdev.c > index c9b09168c1..c64cac10f1 100644 > --- a/app/graph/ethdev.c > +++ b/app/graph/ethdev.c > @@ -188,7 +188,6 @@ ethdev_start(void) > } > } > > - > static int > ethdev_show(const char *name) > { > @@ -344,7 +343,6 @@ ethdev_mtu_config(const char *name, uint32_t mtu) > return rc; > } > > - > static int > ethdev_process(const char *name, struct ethdev_config *params) > { > @@ -560,21 +558,23 @@ ethdev_stats_show(const char *name) > return 0; > } > > -static void > -cli_ethdev_mtu(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) > +void > +cmd_ethdev_dev_mtu_parsed(void *parsed_result, __rte_unused struct cmdline *cl, > + void *data __rte_unused) > { > - struct ethdev_mtu_cmd_tokens *res = parsed_result; > + struct cmd_ethdev_dev_mtu_result *res = parsed_result; > int rc = -EINVAL; > > rc = ethdev_mtu_config(res->dev, res->size); > if (rc < 0) > - printf(MSG_CMD_FAIL, res->cmd); > + printf(MSG_CMD_FAIL, res->ethdev); > } > > -static void > -cli_ethdev_prom_mode(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) > +void > +cmd_ethdev_dev_promiscuous_parsed(void *parsed_result, __rte_unused struct cmdline *cl, > + void *data __rte_unused) > { > - struct ethdev_prom_mode_cmd_tokens *res = parsed_result; > + struct cmd_ethdev_dev_promiscuous_result *res = parsed_result; > bool enable = false; > int rc = -EINVAL; > > @@ -583,57 +583,49 @@ cli_ethdev_prom_mode(void *parsed_result, __rte_unused struct cmdline *cl, void > > rc = ethdev_prom_mode_config(res->dev, enable); > if (rc < 0) > - printf(MSG_CMD_FAIL, res->cmd); > + printf(MSG_CMD_FAIL, res->ethdev); > } > > -static void > -cli_ip4_addr(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) > +void > +cmd_ethdev_dev_ip4_addr_add_parsed(void *parsed_result, __rte_unused struct cmdline *cl, > + void *data __rte_unused) > { > - struct ethdev_ip4_cmd_tokens *res = parsed_result; > + struct cmd_ethdev_dev_ip4_addr_add_result *res = parsed_result; > struct ipv4_addr_config config; > int rc = -EINVAL; > > - if (parser_ip4_read(&config.ip, res->ip)) { > - printf(MSG_ARG_INVALID, "ip"); > - return; > - } > - > - if (parser_ip4_read(&config.mask, res->mask)) { > - printf(MSG_ARG_INVALID, "netmask"); > - return; > - } > + config.ip = rte_be_to_cpu_32(res->ip.addr.ipv4.s_addr); > + config.mask = rte_be_to_cpu_32(res->mask.addr.ipv4.s_addr); > > rc = ethdev_ip4_addr_add(res->dev, &config); > if (rc < 0) > - printf(MSG_CMD_FAIL, res->cmd); > + printf(MSG_CMD_FAIL, res->ethdev); > } > > -static void > -cli_ip6_addr(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) > +void > +cmd_ethdev_dev_ip6_addr_add_parsed(void *parsed_result, __rte_unused struct cmdline *cl, > + void *data __rte_unused) > { > - struct ethdev_ip6_cmd_tokens *res = parsed_result; > + struct cmd_ethdev_dev_ip6_addr_add_result *res = parsed_result; > struct ipv6_addr_config config; > - int rc = -EINVAL; > + int rc = -EINVAL, i; > > - if (parser_ip6_read(config.ip, res->ip)) { > - printf(MSG_ARG_INVALID, "ip"); > - return; > - } > + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) > + config.ip[i] = res->ip.addr.ipv6.s6_addr[i]; > > - if (parser_ip6_read(config.mask, res->mask)) { > - printf(MSG_ARG_INVALID, "netmask"); > - return; > - } > + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) > + config.mask[i] = res->mask.addr.ipv6.s6_addr[i]; > > rc = ethdev_ip6_addr_add(res->dev, &config); > if (rc < 0) > - printf(MSG_CMD_FAIL, res->cmd); > + printf(MSG_CMD_FAIL, res->ethdev); > } > > -static void > -cli_ethdev_show(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) > +void > +cmd_ethdev_dev_show_parsed(void *parsed_result, __rte_unused struct cmdline *cl, > + void *data __rte_unused) > { > - struct ethdev_show_cmd_tokens *res = parsed_result; > + struct cmd_ethdev_dev_show_result *res = parsed_result; > int rc = -EINVAL; > > rc = ethdev_show(res->dev); > @@ -641,10 +633,11 @@ cli_ethdev_show(void *parsed_result, __rte_unused struct cmdline *cl, void *data > printf(MSG_ARG_INVALID, res->dev); > } > > -static void > -cli_ethdev_stats(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) > +void > +cmd_ethdev_dev_stats_parsed(void *parsed_result, __rte_unused struct cmdline *cl, > + void *data __rte_unused) > { > - struct ethdev_stats_cmd_tokens *res = parsed_result; > + struct cmd_ethdev_dev_stats_result *res = parsed_result; > int rc = -EINVAL; > > rc = ethdev_stats_show(res->dev); > @@ -652,10 +645,10 @@ cli_ethdev_stats(void *parsed_result, __rte_unused struct cmdline *cl, void *dat > printf(MSG_ARG_INVALID, res->dev); > } > > -static void > -cli_ethdev(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) > +void > +cmd_ethdev_parsed(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) > { > - struct ethdev_cmd_tokens *res = parsed_result; > + struct cmd_ethdev_result *res = parsed_result; > struct ethdev_config config; > int rc; > > @@ -671,12 +664,12 @@ cli_ethdev(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rt > > rc = ethdev_process(res->dev, &config); > if (rc < 0) > - printf(MSG_CMD_FAIL, res->cmd); > + printf(MSG_CMD_FAIL, res->ethdev); > } > > -static void > -cli_ethdev_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > - __rte_unused void *data) > +void > +cmd_help_ethdev_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > + __rte_unused void *data) > { > size_t len; > > @@ -691,200 +684,3 @@ cli_ethdev_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *c > len = strlen(conn->msg_out); > conn->msg_out_len_max -= len; > } > - > -cmdline_parse_token_string_t ethdev_stats_cmd = > - TOKEN_STRING_INITIALIZER(struct ethdev_stats_cmd_tokens, cmd, "ethdev"); > -cmdline_parse_token_string_t ethdev_stats_dev = > - TOKEN_STRING_INITIALIZER(struct ethdev_stats_cmd_tokens, dev, NULL); > -cmdline_parse_token_string_t ethdev_stats_stats = > - TOKEN_STRING_INITIALIZER(struct ethdev_stats_cmd_tokens, stats, "stats"); > - > -cmdline_parse_inst_t ethdev_stats_cmd_ctx = { > - .f = cli_ethdev_stats, > - .data = NULL, > - .help_str = "", > - .tokens = { > - (void *)ðdev_stats_cmd, > - (void *)ðdev_stats_dev, > - (void *)ðdev_stats_stats, > - NULL, > - }, > -}; > - > -cmdline_parse_token_string_t ethdev_show_cmd = > - TOKEN_STRING_INITIALIZER(struct ethdev_show_cmd_tokens, cmd, "ethdev"); > -cmdline_parse_token_string_t ethdev_show_dev = > - TOKEN_STRING_INITIALIZER(struct ethdev_show_cmd_tokens, dev, NULL); > -cmdline_parse_token_string_t ethdev_show_show = > - TOKEN_STRING_INITIALIZER(struct ethdev_show_cmd_tokens, show, "show"); > - > -cmdline_parse_inst_t ethdev_show_cmd_ctx = { > - .f = cli_ethdev_show, > - .data = NULL, > - .help_str = cmd_ethdev_show_help, > - .tokens = { > - (void *)ðdev_show_cmd, > - (void *)ðdev_show_dev, > - (void *)ðdev_show_show, > - NULL, > - }, > -}; > - > -cmdline_parse_token_string_t ethdev_mtu_cmd = > - TOKEN_STRING_INITIALIZER(struct ethdev_mtu_cmd_tokens, cmd, "ethdev"); > -cmdline_parse_token_string_t ethdev_mtu_dev = > - TOKEN_STRING_INITIALIZER(struct ethdev_mtu_cmd_tokens, dev, NULL); > -cmdline_parse_token_string_t ethdev_mtu_mtu = > - TOKEN_STRING_INITIALIZER(struct ethdev_mtu_cmd_tokens, mtu, "mtu"); > -cmdline_parse_token_num_t ethdev_mtu_size = > - TOKEN_NUM_INITIALIZER(struct ethdev_mtu_cmd_tokens, size, RTE_UINT16); > - > -cmdline_parse_inst_t ethdev_mtu_cmd_ctx = { > - .f = cli_ethdev_mtu, > - .data = NULL, > - .help_str = cmd_ethdev_mtu_help, > - .tokens = { > - (void *)ðdev_mtu_cmd, > - (void *)ðdev_mtu_dev, > - (void *)ðdev_mtu_mtu, > - (void *)ðdev_mtu_size, > - NULL, > - }, > -}; > - > -cmdline_parse_token_string_t ethdev_prom_mode_cmd = > - TOKEN_STRING_INITIALIZER(struct ethdev_prom_mode_cmd_tokens, cmd, "ethdev"); > -cmdline_parse_token_string_t ethdev_prom_mode_dev = > - TOKEN_STRING_INITIALIZER(struct ethdev_prom_mode_cmd_tokens, dev, NULL); > -cmdline_parse_token_string_t ethdev_prom_mode_prom = > - TOKEN_STRING_INITIALIZER(struct ethdev_prom_mode_cmd_tokens, prom, "promiscuous"); > -cmdline_parse_token_string_t ethdev_prom_mode_enable = > - TOKEN_STRING_INITIALIZER(struct ethdev_prom_mode_cmd_tokens, enable, "on#off"); > - > -cmdline_parse_inst_t ethdev_prom_mode_cmd_ctx = { > - .f = cli_ethdev_prom_mode, > - .data = NULL, > - .help_str = cmd_ethdev_prom_mode_help, > - .tokens = { > - (void *)ðdev_prom_mode_cmd, > - (void *)ðdev_prom_mode_dev, > - (void *)ðdev_prom_mode_prom, > - (void *)ðdev_prom_mode_enable, > - NULL, > - }, > -}; > - > -cmdline_parse_token_string_t ethdev_ip4_cmd = > - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, cmd, "ethdev"); > -cmdline_parse_token_string_t ethdev_ip4_dev = > - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, dev, NULL); > -cmdline_parse_token_string_t ethdev_ip4_ip4 = > - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, ip4, "ip4"); > -cmdline_parse_token_string_t ethdev_ip4_addr = > - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, addr, "addr"); > -cmdline_parse_token_string_t ethdev_ip4_add = > - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, add, "add"); > -cmdline_parse_token_string_t ethdev_ip4_ip = > - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, ip, NULL); > -cmdline_parse_token_string_t ethdev_ip4_netmask = > - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, netmask, "netmask"); > -cmdline_parse_token_string_t ethdev_ip4_mask = > - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, mask, NULL); > - > -cmdline_parse_inst_t ethdev_ip4_cmd_ctx = { > - .f = cli_ip4_addr, > - .data = NULL, > - .help_str = cmd_ethdev_ip4_addr_help, > - .tokens = { > - (void *)ðdev_ip4_cmd, > - (void *)ðdev_ip4_dev, > - (void *)ðdev_ip4_ip4, > - (void *)ðdev_ip4_addr, > - (void *)ðdev_ip4_add, > - (void *)ðdev_ip4_ip, > - (void *)ðdev_ip4_netmask, > - (void *)ðdev_ip4_mask, > - NULL, > - }, > -}; > - > -cmdline_parse_token_string_t ethdev_ip6_cmd = > - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, cmd, "ethdev"); > -cmdline_parse_token_string_t ethdev_ip6_dev = > - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, dev, NULL); > -cmdline_parse_token_string_t ethdev_ip6_ip6 = > - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, ip6, "ip6"); > -cmdline_parse_token_string_t ethdev_ip6_addr = > - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, addr, "addr"); > -cmdline_parse_token_string_t ethdev_ip6_add = > - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, add, "add"); > -cmdline_parse_token_string_t ethdev_ip6_ip = > - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, ip, NULL); > -cmdline_parse_token_string_t ethdev_ip6_netmask = > - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, netmask, "netmask"); > -cmdline_parse_token_string_t ethdev_ip6_mask = > - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, mask, NULL); > - > -cmdline_parse_inst_t ethdev_ip6_cmd_ctx = { > - .f = cli_ip6_addr, > - .data = NULL, > - .help_str = cmd_ethdev_ip6_addr_help, > - .tokens = { > - (void *)ðdev_ip6_cmd, > - (void *)ðdev_ip6_dev, > - (void *)ðdev_ip6_ip6, > - (void *)ðdev_ip6_addr, > - (void *)ðdev_ip6_add, > - (void *)ðdev_ip6_ip, > - (void *)ðdev_ip6_netmask, > - (void *)ðdev_ip6_mask, > - NULL, > - }, > -}; > - > -cmdline_parse_token_string_t ethdev_cmd = > - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, cmd, "ethdev"); > -cmdline_parse_token_string_t ethdev_dev = > - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, dev, NULL); > -cmdline_parse_token_string_t ethdev_rxq = > - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, rxq, "rxq"); > -cmdline_parse_token_num_t ethdev_nb_rxq = > - TOKEN_NUM_INITIALIZER(struct ethdev_cmd_tokens, nb_rxq, RTE_UINT16); > -cmdline_parse_token_string_t ethdev_txq = > - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, txq, "txq"); > -cmdline_parse_token_num_t ethdev_nb_txq = > - TOKEN_NUM_INITIALIZER(struct ethdev_cmd_tokens, nb_txq, RTE_UINT16); > -cmdline_parse_token_string_t ethdev_mempool = > - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, mempool, NULL); > - > -cmdline_parse_inst_t ethdev_cmd_ctx = { > - .f = cli_ethdev, > - .data = NULL, > - .help_str = cmd_ethdev_help, > - .tokens = { > - (void *)ðdev_cmd, > - (void *)ðdev_dev, > - (void *)ðdev_rxq, > - (void *)ðdev_nb_rxq, > - (void *)ðdev_txq, > - (void *)ðdev_nb_txq, > - (void *)ðdev_mempool, > - NULL, > - }, > -}; > - > -cmdline_parse_token_string_t ethdev_help_cmd = > - TOKEN_STRING_INITIALIZER(struct ethdev_help_cmd_tokens, help, "help"); > -cmdline_parse_token_string_t ethdev_help_ethdev = > - TOKEN_STRING_INITIALIZER(struct ethdev_help_cmd_tokens, ethdev, "ethdev"); > - > -cmdline_parse_inst_t ethdev_help_cmd_ctx = { > - .f = cli_ethdev_help, > - .data = NULL, > - .help_str = "", > - .tokens = { > - (void *)ðdev_help_cmd, > - (void *)ðdev_help_ethdev, > - NULL, > - }, > -}; > diff --git a/app/graph/ethdev.h b/app/graph/ethdev.h > index 94d3247a2c..39ed723b8b 100644 > --- a/app/graph/ethdev.h > +++ b/app/graph/ethdev.h > @@ -9,15 +9,6 @@ > > #define ETHDEV_IPV6_ADDR_LEN 16 > > -extern cmdline_parse_inst_t ethdev_show_cmd_ctx; > -extern cmdline_parse_inst_t ethdev_stats_cmd_ctx; > -extern cmdline_parse_inst_t ethdev_mtu_cmd_ctx; > -extern cmdline_parse_inst_t ethdev_prom_mode_cmd_ctx; > -extern cmdline_parse_inst_t ethdev_ip4_cmd_ctx; > -extern cmdline_parse_inst_t ethdev_ip6_cmd_ctx; > -extern cmdline_parse_inst_t ethdev_cmd_ctx; > -extern cmdline_parse_inst_t ethdev_help_cmd_ctx; > - > struct ipv4_addr_config { > uint32_t ip; > uint32_t mask; > diff --git a/app/graph/ethdev_priv.h b/app/graph/ethdev_priv.h > index f231f3f3e1..043ca625de 100644 > --- a/app/graph/ethdev_priv.h > +++ b/app/graph/ethdev_priv.h > @@ -13,69 +13,6 @@ > #define ETHDEV_RX_DESC_DEFAULT 1024 > #define ETHDEV_TX_DESC_DEFAULT 1024 > > -struct ethdev_show_cmd_tokens { > - cmdline_fixed_string_t cmd; > - cmdline_fixed_string_t dev; > - cmdline_fixed_string_t show; > -}; > - > -struct ethdev_stats_cmd_tokens { > - cmdline_fixed_string_t cmd; > - cmdline_fixed_string_t dev; > - cmdline_fixed_string_t stats; > -}; > - > -struct ethdev_mtu_cmd_tokens { > - cmdline_fixed_string_t cmd; > - cmdline_fixed_string_t dev; > - cmdline_fixed_string_t mtu; > - uint16_t size; > -}; > - > -struct ethdev_prom_mode_cmd_tokens { > - cmdline_fixed_string_t cmd; > - cmdline_fixed_string_t dev; > - cmdline_fixed_string_t prom; > - cmdline_fixed_string_t enable; > -}; > - > -struct ethdev_ip4_cmd_tokens { > - cmdline_fixed_string_t cmd; > - cmdline_fixed_string_t dev; > - cmdline_fixed_string_t ip4; > - cmdline_fixed_string_t addr; > - cmdline_fixed_string_t add; > - cmdline_fixed_string_t ip; > - cmdline_fixed_string_t netmask; > - cmdline_fixed_string_t mask; > -}; > - > -struct ethdev_ip6_cmd_tokens { > - cmdline_fixed_string_t cmd; > - cmdline_fixed_string_t dev; > - cmdline_fixed_string_t ip6; > - cmdline_fixed_string_t addr; > - cmdline_fixed_string_t add; > - cmdline_fixed_string_t ip; > - cmdline_fixed_string_t netmask; > - cmdline_fixed_string_t mask; > -}; > - > -struct ethdev_cmd_tokens { > - cmdline_fixed_string_t cmd; > - cmdline_fixed_string_t dev; > - cmdline_fixed_string_t rxq; > - cmdline_fixed_string_t txq; > - cmdline_fixed_string_t mempool; > - uint16_t nb_rxq; > - uint16_t nb_txq; > -}; > - > -struct ethdev_help_cmd_tokens { > - cmdline_fixed_string_t help; > - cmdline_fixed_string_t ethdev; > -}; > - > struct ethdev_rss_config { > uint32_t queue_id[ETHDEV_RXQ_RSS_MAX]; > uint32_t n_queues; > diff --git a/app/graph/ethdev_rx.c b/app/graph/ethdev_rx.c > index 03f8effcca..25c439b9a3 100644 > --- a/app/graph/ethdev_rx.c > +++ b/app/graph/ethdev_rx.c > @@ -83,83 +83,34 @@ ethdev_rx_map_add(char *name, uint32_t queue, uint32_t core) > return 0; > } > > -static void > -cli_ethdev_rx_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > - __rte_unused void *data) > +void > +cmd_help_ethdev_rx_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > + __rte_unused void *data) > { > size_t len; > > len = strlen(conn->msg_out); > conn->msg_out += len; > snprintf(conn->msg_out, conn->msg_out_len_max, "\n%s\n%s\n", > - "----------------------------- ethdev_rx command help -----------------------------", > + "---------------------------- ethdev_rx command help ----------------------------", > cmd_ethdev_rx_help); > > len = strlen(conn->msg_out); > conn->msg_out_len_max -= len; > } > > -static void > -cli_ethdev_rx(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) > +void > +cmd_ethdev_rx_map_port_parsed(void *parsed_result, __rte_unused struct cmdline *cl, > + void *data __rte_unused) > { > - struct ethdev_rx_cmd_tokens *res = parsed_result; > + struct cmd_ethdev_rx_map_port_result *res = parsed_result; > int rc = -EINVAL; > > rc = ethdev_rx_map_add(res->dev, res->qid, res->core_id); > if (rc < 0) { > cli_exit(); > - printf(MSG_CMD_FAIL, res->cmd); > + printf(MSG_CMD_FAIL, res->ethdev_rx); > rte_exit(EXIT_FAILURE, "input core is Invalid\n"); > } > > } > - > -cmdline_parse_token_string_t ethdev_rx_cmd = > - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, cmd, "ethdev_rx"); > -cmdline_parse_token_string_t ethdev_rx_map = > - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, map, "map"); > -cmdline_parse_token_string_t ethdev_rx_port = > - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, port, "port"); > -cmdline_parse_token_string_t ethdev_rx_dev = > - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, dev, NULL); > -cmdline_parse_token_string_t ethdev_rx_queue = > - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, queue, "queue"); > -cmdline_parse_token_num_t ethdev_rx_qid = > - TOKEN_NUM_INITIALIZER(struct ethdev_rx_cmd_tokens, qid, RTE_UINT32); > -cmdline_parse_token_string_t ethdev_rx_core = > - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, core, "core"); > -cmdline_parse_token_num_t ethdev_rx_core_id = > - TOKEN_NUM_INITIALIZER(struct ethdev_rx_cmd_tokens, core_id, RTE_UINT32); > - > -cmdline_parse_inst_t ethdev_rx_cmd_ctx = { > - .f = cli_ethdev_rx, > - .data = NULL, > - .help_str = cmd_ethdev_rx_help, > - .tokens = { > - (void *)ðdev_rx_cmd, > - (void *)ðdev_rx_map, > - (void *)ðdev_rx_port, > - (void *)ðdev_rx_dev, > - (void *)ðdev_rx_queue, > - (void *)ðdev_rx_qid, > - (void *)ðdev_rx_core, > - (void *)ðdev_rx_core_id, > - NULL, > - }, > -}; > - > -cmdline_parse_token_string_t ethdev_rx_help_cmd = > - TOKEN_STRING_INITIALIZER(struct ethdev_rx_help_cmd_tokens, cmd, "help"); > -cmdline_parse_token_string_t ethdev_rx_help_module = > - TOKEN_STRING_INITIALIZER(struct ethdev_rx_help_cmd_tokens, module, "ethdev_rx"); > - > -cmdline_parse_inst_t ethdev_rx_help_cmd_ctx = { > - .f = cli_ethdev_rx_help, > - .data = NULL, > - .help_str = "", > - .tokens = { > - (void *)ðdev_rx_help_cmd, > - (void *)ðdev_rx_help_module, > - NULL, > - }, > -}; > diff --git a/app/graph/ethdev_rx.h b/app/graph/ethdev_rx.h > index 8e7b31448c..ec3c97286a 100644 > --- a/app/graph/ethdev_rx.h > +++ b/app/graph/ethdev_rx.h > @@ -29,8 +29,6 @@ uint8_t ethdev_rx_num_rx_queues_get(uint16_t port); > > extern struct rte_node_ethdev_config ethdev_conf[RTE_MAX_ETHPORTS]; > extern struct lcore_conf lcore_conf[RTE_MAX_LCORE]; > -extern cmdline_parse_inst_t ethdev_rx_help_cmd_ctx; > -extern cmdline_parse_inst_t ethdev_rx_cmd_ctx; > extern struct lcore_params *lcore_params; > extern uint16_t nb_lcore_params; > > diff --git a/app/graph/ethdev_rx_priv.h b/app/graph/ethdev_rx_priv.h > index 5d155be043..d714f83739 100644 > --- a/app/graph/ethdev_rx_priv.h > +++ b/app/graph/ethdev_rx_priv.h > @@ -14,22 +14,6 @@ > #define MAX_JUMBO_PKT_LEN 9600 > #define NB_SOCKETS 8 > > -struct ethdev_rx_cmd_tokens { > - cmdline_fixed_string_t cmd; > - cmdline_fixed_string_t map; > - cmdline_fixed_string_t port; > - cmdline_fixed_string_t dev; > - cmdline_fixed_string_t queue; > - cmdline_fixed_string_t core; > - uint32_t core_id; > - uint32_t qid; > -}; > - > -struct ethdev_rx_help_cmd_tokens { > - cmdline_fixed_string_t cmd; > - cmdline_fixed_string_t module; > -}; > - > struct lcore_params { > uint16_t port_id; > uint8_t queue_id; > diff --git a/app/graph/examples/l3fwd.cli b/app/graph/examples/l3fwd.cli > index c4977d4322..2badbbfca5 100644 > --- a/app/graph/examples/l3fwd.cli > +++ b/app/graph/examples/l3fwd.cli > @@ -32,8 +32,8 @@ ethdev 0002:03:00.0 ip4 addr add 20.0.2.1 netmask 255.255.255.0 > ; > ; IPv6 addresses assigned to DPDK devices > ; > -ethdev 0002:02:00.0 ip6 addr add 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 > -ethdev 0002:03:00.0 ip6 addr add 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 > +ethdev 0002:02:00.0 ip6 addr add 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 > +ethdev 0002:03:00.0 ip6 addr add 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 > > ; > ; IPv4 routes which are installed to ipv4_lookup node for LPM processing > @@ -44,8 +44,8 @@ ipv4_lookup route add ipv4 20.0.2.0 netmask 255.255.255.0 via 20.0.2.1 > ; > ; IPv6 routes which are installed to ipv6_lookup node for LPM processing > ; > -ipv6_lookup route add ipv6 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 via 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A > -ipv6_lookup route add ipv6 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 via 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B > +ipv6_lookup route add ipv6 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 via 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A > +ipv6_lookup route add ipv6 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 via 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B > > ; > ; Peer MAC and IPv4 address mapping > @@ -56,8 +56,8 @@ neigh add ipv4 20.0.2.2 62:20:DA:4F:68:70 > ; > ; Peer MAC and IPv6 address mapping > ; > -neigh add ipv6 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A 52:20:DA:4F:68:70 > -neigh add ipv6 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B 62:20:DA:4F:68:70 > +neigh add ipv6 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A 52:20:DA:4F:68:70 > +neigh add ipv6 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B 62:20:DA:4F:68:70 > > ; > ; Port-Queue-Core mapping for ethdev_rx node > diff --git a/app/graph/examples/l3fwd_pcap.cli b/app/graph/examples/l3fwd_pcap.cli > index 30dde74a65..93e4249444 100644 > --- a/app/graph/examples/l3fwd_pcap.cli > +++ b/app/graph/examples/l3fwd_pcap.cli > @@ -30,8 +30,8 @@ ethdev net_pcap1 ip4 addr add 20.0.2.1 netmask 255.255.255.0 > ; > ; IPv6 addresses assigned to DPDK devices > ; > -ethdev net_pcap0 ip6 addr add 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 > -ethdev net_pcap1 ip6 addr add 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 > +ethdev net_pcap0 ip6 addr add 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 > +ethdev net_pcap1 ip6 addr add 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 > > ; > ; IPv4 routes which are installed to ipv4_lookup node for LPM processing > @@ -42,8 +42,8 @@ ipv4_lookup route add ipv4 20.0.2.0 netmask 255.255.255.0 via 20.0.2.1 > ; > ; IPv6 routes which are installed to ipv6_lookup node for LPM processing > ; > -ipv6_lookup route add ipv6 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 via 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A > -ipv6_lookup route add ipv6 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 via 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B > +ipv6_lookup route add ipv6 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 via 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A > +ipv6_lookup route add ipv6 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 via 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B > > ; > ; Peer MAC and IPv4 address mapping > @@ -54,8 +54,8 @@ neigh add ipv4 20.0.2.2 62:20:DA:4F:68:70 > ; > ; Peer MAC and IPv6 address mapping > ; > -neigh add ipv6 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A 52:20:DA:4F:68:70 > -neigh add ipv6 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B 62:20:DA:4F:68:70 > +neigh add ipv6 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A 52:20:DA:4F:68:70 > +neigh add ipv6 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B 62:20:DA:4F:68:70 > > ; > ; Port-Queue-Core mapping for ethdev_rx node > diff --git a/app/graph/graph.c b/app/graph/graph.c > index a65723a196..8e3505d213 100644 > --- a/app/graph/graph.c > +++ b/app/graph/graph.c > @@ -20,7 +20,7 @@ > #define RTE_LOGTYPE_APP_GRAPH RTE_LOGTYPE_USER1 > > static const char > -cmd_graph_help[] = "graph <usecases> bsz <size> tmo <ns> coremask <bitmask> " > +cmd_graph_help[] = "graph <usecases> coremask <bitmask> bsz <size> tmo <ns> " > "model <rtc | mcd | default> pcap_enable <0 | 1> num_pcap_pkts <num>" > "pcap_file <output_capture_file>"; > > @@ -244,8 +244,8 @@ graph_stats_print_to_file(void) > fclose(fp); > } > > -static void > -cli_graph_stats(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > +void > +cmd_graph_stats_show_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > __rte_unused void *data) > { > graph_stats_print_to_file(); > @@ -257,8 +257,8 @@ graph_status_get(void) > return graph_started; > } > > -static void > -cli_graph_start(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > +void > +cmd_graph_start_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > __rte_unused void *data) > { > struct rte_node_ethdev_config *conf; > @@ -388,10 +388,10 @@ graph_coremask_get(void) > return graph_config.params.coremask; > } > > -static void > -cli_graph(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) > +void > +cmd_graph_parsed(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) > { > - struct graph_config_cmd_tokens *res = parsed_result; > + struct cmd_graph_result *res = parsed_result; > struct graph_config config; > char *model_name; > uint8_t model; > @@ -424,9 +424,9 @@ cli_graph(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused voi > } > } > > -static void > -cli_graph_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > - __rte_unused void *data) > +void > +cmd_help_graph_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > + __rte_unused void *data) > { > size_t len; > > @@ -439,112 +439,3 @@ cli_graph_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl > len = strlen(conn->msg_out); > conn->msg_out_len_max -= len; > } > - > -cmdline_parse_token_string_t graph_display_graph = > - TOKEN_STRING_INITIALIZER(struct graph_stats_cmd_tokens, graph, "graph"); > -cmdline_parse_token_string_t graph_display_stats = > - TOKEN_STRING_INITIALIZER(struct graph_stats_cmd_tokens, stats, "stats"); > -cmdline_parse_token_string_t graph_display_show = > - TOKEN_STRING_INITIALIZER(struct graph_stats_cmd_tokens, show, "show"); > - > -cmdline_parse_inst_t graph_stats_cmd_ctx = { > - .f = cli_graph_stats, > - .data = NULL, > - .help_str = "graph stats show", > - .tokens = { > - (void *)&graph_display_graph, > - (void *)&graph_display_stats, > - (void *)&graph_display_show, > - NULL, > - }, > -}; > - > -cmdline_parse_token_string_t graph_config_start_graph = > - TOKEN_STRING_INITIALIZER(struct graph_start_cmd_tokens, graph, "graph"); > -cmdline_parse_token_string_t graph_config_start = > - TOKEN_STRING_INITIALIZER(struct graph_start_cmd_tokens, start, "start"); > - > -cmdline_parse_inst_t graph_start_cmd_ctx = { > - .f = cli_graph_start, > - .data = NULL, > - .help_str = "graph start", > - .tokens = { > - (void *)&graph_config_start_graph, > - (void *)&graph_config_start, > - NULL, > - }, > -}; > - > -cmdline_parse_token_string_t graph_config_add_graph = > - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, graph, "graph"); > -cmdline_parse_token_string_t graph_config_add_usecase = > - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, usecase, NULL); > -cmdline_parse_token_string_t graph_config_add_coremask = > - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, coremask, "coremask"); > -cmdline_parse_token_num_t graph_config_add_mask = > - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, mask, RTE_UINT64); > -cmdline_parse_token_string_t graph_config_add_bsz = > - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, bsz, "bsz"); > -cmdline_parse_token_num_t graph_config_add_size = > - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, size, RTE_UINT16); > -cmdline_parse_token_string_t graph_config_add_tmo = > - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, tmo, "tmo"); > -cmdline_parse_token_num_t graph_config_add_ns = > - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, ns, RTE_UINT64); > -cmdline_parse_token_string_t graph_config_add_model = > - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, model, "model"); > -cmdline_parse_token_string_t graph_config_add_model_name = > - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, model_name, "rtc#mcd#default"); > -cmdline_parse_token_string_t graph_config_add_capt_ena = > - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, capt_ena, "pcap_enable"); > -cmdline_parse_token_num_t graph_config_add_pcap_ena = > - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, pcap_ena, RTE_UINT8); > -cmdline_parse_token_string_t graph_config_add_capt_pkts_count = > - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, capt_pkts_count, "num_pcap_pkts"); > -cmdline_parse_token_num_t graph_config_add_num_pcap_pkts = > - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, num_pcap_pkts, RTE_UINT64); > -cmdline_parse_token_string_t graph_config_add_capt_file = > - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, capt_file, "pcap_file"); > -cmdline_parse_token_string_t graph_config_add_pcap_file = > - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, pcap_file, NULL); > - > -cmdline_parse_inst_t graph_config_cmd_ctx = { > - .f = cli_graph, > - .data = NULL, > - .help_str = cmd_graph_help, > - .tokens = { > - (void *)&graph_config_add_graph, > - (void *)&graph_config_add_usecase, > - (void *)&graph_config_add_coremask, > - (void *)&graph_config_add_mask, > - (void *)&graph_config_add_bsz, > - (void *)&graph_config_add_size, > - (void *)&graph_config_add_tmo, > - (void *)&graph_config_add_ns, > - (void *)&graph_config_add_model, > - (void *)&graph_config_add_model_name, > - (void *)&graph_config_add_capt_ena, > - (void *)&graph_config_add_pcap_ena, > - (void *)&graph_config_add_capt_pkts_count, > - (void *)&graph_config_add_num_pcap_pkts, > - (void *)&graph_config_add_capt_file, > - (void *)&graph_config_add_pcap_file, > - NULL, > - }, > -}; > - > -cmdline_parse_token_string_t graph_help_cmd = > - TOKEN_STRING_INITIALIZER(struct graph_help_cmd_tokens, help, "help"); > -cmdline_parse_token_string_t graph_help_graph = > - TOKEN_STRING_INITIALIZER(struct graph_help_cmd_tokens, graph, "graph"); > - > -cmdline_parse_inst_t graph_help_cmd_ctx = { > - .f = cli_graph_help, > - .data = NULL, > - .help_str = "", > - .tokens = { > - (void *)&graph_help_cmd, > - (void *)&graph_help_graph, > - NULL, > - }, > -}; > diff --git a/app/graph/graph.h b/app/graph/graph.h > index a14fa37ccd..c851b71e7e 100644 > --- a/app/graph/graph.h > +++ b/app/graph/graph.h > @@ -7,11 +7,6 @@ > > #include <cmdline_parse.h> > > -extern cmdline_parse_inst_t graph_config_cmd_ctx; > -extern cmdline_parse_inst_t graph_start_cmd_ctx; > -extern cmdline_parse_inst_t graph_stats_cmd_ctx; > -extern cmdline_parse_inst_t graph_help_cmd_ctx; > - > int graph_walk_start(void *conf); > void graph_stats_print(void); > void graph_pcap_config_get(uint8_t *pcap_ena, uint64_t *num_pkts, char **file); > diff --git a/app/graph/graph_priv.h b/app/graph/graph_priv.h > index a48a35daa3..3306edda63 100644 > --- a/app/graph/graph_priv.h > +++ b/app/graph/graph_priv.h > @@ -7,41 +7,6 @@ > > #define MAX_GRAPH_USECASES 32 > > -struct graph_help_cmd_tokens { > - cmdline_fixed_string_t help; > - cmdline_fixed_string_t graph; > -}; > - > -struct graph_start_cmd_tokens { > - cmdline_fixed_string_t graph; > - cmdline_fixed_string_t start; > -}; > - > -struct graph_stats_cmd_tokens { > - cmdline_fixed_string_t show; > - cmdline_fixed_string_t graph; > - cmdline_fixed_string_t stats; > -}; > - > -struct graph_config_cmd_tokens { > - cmdline_fixed_string_t graph; > - cmdline_fixed_string_t usecase; > - cmdline_fixed_string_t bsz; > - cmdline_fixed_string_t tmo; > - cmdline_fixed_string_t coremask; > - cmdline_fixed_string_t model; > - cmdline_fixed_string_t capt_ena; > - cmdline_fixed_string_t capt_pkts_count; > - cmdline_fixed_string_t capt_file; > - cmdline_fixed_string_t model_name; > - cmdline_fixed_string_t pcap_file; > - uint16_t size; > - uint64_t ns; > - uint64_t mask; > - uint64_t num_pcap_pkts; > - uint8_t pcap_ena; > -}; > - > enum graph_model { > GRAPH_MODEL_RTC = 0x01, > GRAPH_MODEL_MCD = 0x02, > diff --git a/app/graph/ip4_route.c b/app/graph/ip4_route.c > index fc83586427..48ea912597 100644 > --- a/app/graph/ip4_route.c > +++ b/app/graph/ip4_route.c > @@ -20,7 +20,6 @@ cmd_ipv4_lookup_help[] = "ipv4_lookup route add ipv4 <ip> netmask <mask> via <ip > > struct ip4_route route4 = TAILQ_HEAD_INITIALIZER(route4); > > - > void > route_ip4_list_clean(void) > { > @@ -127,9 +126,9 @@ route_ip4_add_to_lookup(void) > return 0; > } > > -static void > -cli_ipv4_lookup_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > - __rte_unused void *data) > +void > +cmd_help_ipv4_lookup_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > + __rte_unused void *data) > { > size_t len; > > @@ -143,82 +142,19 @@ cli_ipv4_lookup_help(__rte_unused void *parsed_result, __rte_unused struct cmdli > conn->msg_out_len_max -= len; > } > > -static void > -cli_ipv4_lookup(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) > +void > +cmd_ipv4_lookup_route_add_ipv4_parsed(void *parsed_result, __rte_unused struct cmdline *cl, > + void *data __rte_unused) > { > - struct ip4_lookup_cmd_tokens *res = parsed_result; > + struct cmd_ipv4_lookup_route_add_ipv4_result *res = parsed_result; > struct route_ipv4_config config; > int rc = -EINVAL; > > - if (parser_ip4_read(&config.ip, res->ip)) { > - printf(MSG_ARG_INVALID, "ipv4"); > - return; > - } > - > - if (parser_ip4_read(&config.netmask, res->mask)) { > - printf(MSG_ARG_INVALID, "netmask"); > - return; > - } > - > - if (parser_ip4_read(&config.via, res->via_ip)) { > - printf(MSG_ARG_INVALID, "via ip"); > - return; > - } > + config.ip = rte_be_to_cpu_32(res->ip.addr.ipv4.s_addr); > + config.netmask = rte_be_to_cpu_32(res->mask.addr.ipv4.s_addr); > + config.via = rte_be_to_cpu_32(res->via_ip.addr.ipv4.s_addr); > > rc = route_ip4_add(&config); > if (rc < 0) > - printf(MSG_CMD_FAIL, res->cmd); > + printf(MSG_CMD_FAIL, res->ipv4_lookup); > } > - > -cmdline_parse_token_string_t ip4_lookup_cmd = > - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, cmd, "ipv4_lookup"); > -cmdline_parse_token_string_t ip4_lookup_route = > - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, route, "route"); > -cmdline_parse_token_string_t ip4_lookup_add = > - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, add, "add"); > -cmdline_parse_token_string_t ip4_lookup_ip4 = > - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, ip4, "ipv4"); > -cmdline_parse_token_string_t ip4_lookup_ip = > - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, ip, NULL); > -cmdline_parse_token_string_t ip4_lookup_netmask = > - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, netmask, "netmask"); > -cmdline_parse_token_string_t ip4_lookup_mask = > - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, mask, NULL); > -cmdline_parse_token_string_t ip4_lookup_via = > - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, via, "via"); > -cmdline_parse_token_string_t ip4_lookup_via_ip = > - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, via_ip, NULL); > - > -cmdline_parse_inst_t ipv4_lookup_cmd_ctx = { > - .f = cli_ipv4_lookup, > - .data = NULL, > - .help_str = cmd_ipv4_lookup_help, > - .tokens = { > - (void *)&ip4_lookup_cmd, > - (void *)&ip4_lookup_route, > - (void *)&ip4_lookup_add, > - (void *)&ip4_lookup_ip4, > - (void *)&ip4_lookup_ip, > - (void *)&ip4_lookup_netmask, > - (void *)&ip4_lookup_mask, > - (void *)&ip4_lookup_via, > - (void *)&ip4_lookup_via_ip, > - NULL, > - }, > -}; > - > -cmdline_parse_token_string_t ipv4_lookup_help_cmd = > - TOKEN_STRING_INITIALIZER(struct ipv4_lookup_help_cmd_tokens, cmd, "help"); > -cmdline_parse_token_string_t ipv4_lookup_help_module = > - TOKEN_STRING_INITIALIZER(struct ipv4_lookup_help_cmd_tokens, module, "ipv4_lookup"); > - > -cmdline_parse_inst_t ipv4_lookup_help_cmd_ctx = { > - .f = cli_ipv4_lookup_help, > - .data = NULL, > - .help_str = "", > - .tokens = { > - (void *)&ipv4_lookup_help_cmd, > - (void *)&ipv4_lookup_help_module, > - NULL, > - }, > -}; > diff --git a/app/graph/ip6_route.c b/app/graph/ip6_route.c > index 1fa4865220..834719ecae 100644 > --- a/app/graph/ip6_route.c > +++ b/app/graph/ip6_route.c > @@ -132,9 +132,9 @@ route_ip6_add_to_lookup(void) > return 0; > } > > -static void > -cli_ipv6_lookup_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > - __rte_unused void *data) > +void > +cmd_help_ipv6_lookup_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > + __rte_unused void *data) > { > size_t len; > > @@ -148,82 +148,24 @@ cli_ipv6_lookup_help(__rte_unused void *parsed_result, __rte_unused struct cmdli > conn->msg_out_len_max -= len; > } > > -static void > -cli_ipv6_lookup(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) > +void > +cmd_ipv6_lookup_route_add_ipv6_parsed(void *parsed_result, __rte_unused struct cmdline *cl, > + void *data __rte_unused) > { > - struct ip6_lookup_cmd_tokens *res = parsed_result; > + struct cmd_ipv6_lookup_route_add_ipv6_result *res = parsed_result; > struct route_ipv6_config config; > - int rc = -EINVAL; > + int rc = -EINVAL, i; > > - if (parser_ip6_read(config.ip, res->ip)) { > - printf(MSG_ARG_INVALID, "ipv6"); > - return; > - } > + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) > + config.ip[i] = res->ip.addr.ipv6.s6_addr[i]; > > - if (parser_ip6_read(config.mask, res->mask)) { > - printf(MSG_ARG_INVALID, "netmask"); > - return; > - } > + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) > + config.mask[i] = res->mask.addr.ipv6.s6_addr[i]; > > - if (parser_ip6_read(config.gateway, res->via_ip)) { > - printf(MSG_ARG_INVALID, "gateway ip"); > - return; > - } > + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) > + config.gateway[i] = res->via_ip.addr.ipv6.s6_addr[i]; > > rc = route_ip6_add(&config); > if (rc) > - printf(MSG_CMD_FAIL, res->cmd); > + printf(MSG_CMD_FAIL, res->ipv6_lookup); > } > - > -cmdline_parse_token_string_t ip6_lookup_cmd = > - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, cmd, "ipv6_lookup"); > -cmdline_parse_token_string_t ip6_lookup_route = > - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, route, "route"); > -cmdline_parse_token_string_t ip6_lookup_add = > - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, add, "add"); > -cmdline_parse_token_string_t ip6_lookup_ip6 = > - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, ip6, "ipv6"); > -cmdline_parse_token_string_t ip6_lookup_ip = > - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, ip, NULL); > -cmdline_parse_token_string_t ip6_lookup_netmask = > - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, netmask, "netmask"); > -cmdline_parse_token_string_t ip6_lookup_mask = > - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, mask, NULL); > -cmdline_parse_token_string_t ip6_lookup_via = > - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, via, "via"); > -cmdline_parse_token_string_t ip6_lookup_via_ip = > - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, via_ip, NULL); > - > -cmdline_parse_inst_t ipv6_lookup_cmd_ctx = { > - .f = cli_ipv6_lookup, > - .data = NULL, > - .help_str = cmd_ipv6_lookup_help, > - .tokens = { > - (void *)&ip6_lookup_cmd, > - (void *)&ip6_lookup_route, > - (void *)&ip6_lookup_add, > - (void *)&ip6_lookup_ip6, > - (void *)&ip6_lookup_ip, > - (void *)&ip6_lookup_netmask, > - (void *)&ip6_lookup_mask, > - (void *)&ip6_lookup_via, > - (void *)&ip6_lookup_via_ip, > - NULL, > - }, > -}; > - > -cmdline_parse_token_string_t ipv6_lookup_help_cmd = > - TOKEN_STRING_INITIALIZER(struct ipv6_lookup_help_cmd_tokens, cmd, "help"); > -cmdline_parse_token_string_t ipv6_lookup_help_module = > - TOKEN_STRING_INITIALIZER(struct ipv6_lookup_help_cmd_tokens, module, "ipv6_lookup"); > - > -cmdline_parse_inst_t ipv6_lookup_help_cmd_ctx = { > - .f = cli_ipv6_lookup_help, > - .data = NULL, > - .help_str = "", > - .tokens = { > - (void *)&ipv6_lookup_help_cmd, > - (void *)&ipv6_lookup_help_module, > - NULL, > - }, > -}; > diff --git a/app/graph/mempool.c b/app/graph/mempool.c > index 9fd3f8460b..fbb0ca8f05 100644 > --- a/app/graph/mempool.c > +++ b/app/graph/mempool.c > @@ -47,9 +47,9 @@ mempool_process(struct mempool_config *config) > return 0; > } > > -static void > -cli_mempool_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > - __rte_unused void *data) > +void > +cmd_help_mempool_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > + __rte_unused void *data) > { > size_t len; > > @@ -63,10 +63,10 @@ cli_mempool_help(__rte_unused void *parsed_result, __rte_unused struct cmdline * > conn->msg_out_len_max -= len; > } > > -static void > -cli_mempool(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) > +void > +cmd_mempool_parsed(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) > { > - struct mempool_config_cmd_tokens *res = parsed_result; > + struct cmd_mempool_result *res = parsed_result; > struct mempool_config config; > int rc = -EINVAL; > > @@ -82,59 +82,3 @@ cli_mempool(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused v > if (rc < 0) > printf(MSG_CMD_FAIL, "mempool"); > } > - > -cmdline_parse_token_string_t mempool_config_add_mempool = > - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, mempool, "mempool"); > -cmdline_parse_token_string_t mempool_config_add_name = > - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, name, NULL); > -cmdline_parse_token_string_t mempool_config_add_size = > - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, size, "size"); > -cmdline_parse_token_num_t mempool_config_add_buf_sz = > - TOKEN_NUM_INITIALIZER(struct mempool_config_cmd_tokens, buf_sz, RTE_UINT16); > -cmdline_parse_token_string_t mempool_config_add_buffers = > - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, buffers, "buffers"); > -cmdline_parse_token_num_t mempool_config_add_nb_bufs = > - TOKEN_NUM_INITIALIZER(struct mempool_config_cmd_tokens, nb_bufs, RTE_UINT16); > -cmdline_parse_token_string_t mempool_config_add_cache = > - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, cache, "cache"); > -cmdline_parse_token_num_t mempool_config_add_cache_size = > - TOKEN_NUM_INITIALIZER(struct mempool_config_cmd_tokens, cache_size, RTE_UINT16); > -cmdline_parse_token_string_t mempool_config_add_numa = > - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, numa, "numa"); > -cmdline_parse_token_num_t mempool_config_add_node = > - TOKEN_NUM_INITIALIZER(struct mempool_config_cmd_tokens, node, RTE_UINT16); > - > -cmdline_parse_inst_t mempool_config_cmd_ctx = { > - .f = cli_mempool, > - .data = NULL, > - .help_str = cmd_mempool_help, > - .tokens = { > - (void *)&mempool_config_add_mempool, > - (void *)&mempool_config_add_name, > - (void *)&mempool_config_add_size, > - (void *)&mempool_config_add_buf_sz, > - (void *)&mempool_config_add_buffers, > - (void *)&mempool_config_add_nb_bufs, > - (void *)&mempool_config_add_cache, > - (void *)&mempool_config_add_cache_size, > - (void *)&mempool_config_add_numa, > - (void *)&mempool_config_add_node, > - NULL, > - }, > -}; > - > -cmdline_parse_token_string_t mempool_help_cmd = > - TOKEN_STRING_INITIALIZER(struct mempool_help_cmd_tokens, help, "help"); > -cmdline_parse_token_string_t mempool_help_mempool = > - TOKEN_STRING_INITIALIZER(struct mempool_help_cmd_tokens, mempool, "mempool"); > - > -cmdline_parse_inst_t mempool_help_cmd_ctx = { > - .f = cli_mempool_help, > - .data = NULL, > - .help_str = "", > - .tokens = { > - (void *)&mempool_help_cmd, > - (void *)&mempool_help_mempool, > - NULL, > - }, > -}; > diff --git a/app/graph/mempool.h b/app/graph/mempool.h > index 0808c4259e..dc6e37dac1 100644 > --- a/app/graph/mempool.h > +++ b/app/graph/mempool.h > @@ -16,9 +16,6 @@ struct mempool_config { > int numa_node; > }; > > -extern cmdline_parse_inst_t mempool_config_cmd_ctx; > -extern cmdline_parse_inst_t mempool_help_cmd_ctx; > - > int mempool_process(struct mempool_config *config); > > #endif > diff --git a/app/graph/mempool_priv.h b/app/graph/mempool_priv.h > index 3ce64702a9..5a55722b32 100644 > --- a/app/graph/mempool_priv.h > +++ b/app/graph/mempool_priv.h > @@ -7,24 +7,6 @@ > > #include "mempool.h" > > -struct mempool_config_cmd_tokens { > - cmdline_fixed_string_t mempool; > - cmdline_fixed_string_t size; > - cmdline_fixed_string_t buffers; > - cmdline_fixed_string_t cache; > - cmdline_fixed_string_t numa; > - cmdline_fixed_string_t name; > - uint16_t buf_sz; > - uint16_t nb_bufs; > - uint16_t cache_size; > - uint16_t node; > -}; > - > -struct mempool_help_cmd_tokens { > - cmdline_fixed_string_t help; > - cmdline_fixed_string_t mempool; > -}; > - > struct mempools { > struct mempool_config config[RTE_MAX_ETHPORTS]; > struct rte_mempool *mp[RTE_MAX_ETHPORTS]; > diff --git a/app/graph/meson.build b/app/graph/meson.build > index 5b0f966d99..9cb62f493e 100644 > --- a/app/graph/meson.build > +++ b/app/graph/meson.build > @@ -23,3 +23,11 @@ sources = files( > 'neigh.c', > 'utils.c', > ) > + > +cmd_h = custom_target('commands_hdr', > + output: 'commands.h', > + input: files('commands.list'), > + capture: true, > + command: [cmdline_gen_cmd, '--context-name=modules_ctx', '@INPUT@'] > +) > +sources += cmd_h > diff --git a/app/graph/module_api.h b/app/graph/module_api.h > index 7193e0b616..6bf63278fa 100644 > --- a/app/graph/module_api.h > +++ b/app/graph/module_api.h > @@ -10,6 +10,7 @@ > > #include "cli.h" > #include "conn.h" > +#include "commands.h" > #include "ethdev.h" > #include "ethdev_rx.h" > #include "graph.h" > diff --git a/app/graph/neigh.c b/app/graph/neigh.c > index 22be7361e3..79fd542c89 100644 > --- a/app/graph/neigh.c > +++ b/app/graph/neigh.c > @@ -235,18 +235,16 @@ neigh_ip6_add_to_rewrite(void) > return 0; > } > > -static void > -cli_neigh_v4(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) > +void > +cmd_neigh_add_ipv4_parsed(void *parsed_result, __rte_unused struct cmdline *cl, > + void *data __rte_unused) > { > - struct neigh_v4_cmd_tokens *res = parsed_result; > + struct cmd_neigh_add_ipv4_result *res = parsed_result; > int rc = -EINVAL; > uint64_t mac; > uint32_t ip; > > - if (parser_ip4_read(&ip, res->ip)) { > - printf(MSG_ARG_INVALID, "ip"); > - return; > - } > + ip = rte_be_to_cpu_32(res->ip.addr.ipv4.s_addr); > > if (parser_mac_read(&mac, res->mac)) { > printf(MSG_ARG_INVALID, "mac"); > @@ -255,21 +253,20 @@ cli_neigh_v4(void *parsed_result, __rte_unused struct cmdline *cl, void *data __ > > rc = neigh_ip4_add(ip, mac); > if (rc < 0) > - printf(MSG_CMD_FAIL, res->cmd); > + printf(MSG_CMD_FAIL, res->neigh); > } > > -static void > -cli_neigh_v6(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) > +void > +cmd_neigh_add_ipv6_parsed(void *parsed_result, __rte_unused struct cmdline *cl, > + void *data __rte_unused) > { > - struct neigh_v6_cmd_tokens *res = parsed_result; > + struct cmd_neigh_add_ipv6_result *res = parsed_result; > uint8_t ip[ETHDEV_IPV6_ADDR_LEN]; > - int rc = -EINVAL; > + int rc = -EINVAL, i; > uint64_t mac; > > - if (parser_ip6_read(ip, res->ip)) { > - printf(MSG_ARG_INVALID, "ip"); > - return; > - } > + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) > + ip[i] = res->ip.addr.ipv6.s6_addr[i]; > > if (parser_mac_read(&mac, res->mac)) { > printf(MSG_ARG_INVALID, "mac"); > @@ -278,12 +275,12 @@ cli_neigh_v6(void *parsed_result, __rte_unused struct cmdline *cl, void *data __ > > rc = neigh_ip6_add(ip, mac); > if (rc < 0) > - printf(MSG_CMD_FAIL, res->cmd); > + printf(MSG_CMD_FAIL, res->neigh); > } > > -static void > -cli_neigh_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > - __rte_unused void *data) > +void > +cmd_help_neigh_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, > + __rte_unused void *data) > { > size_t len; > > @@ -296,69 +293,3 @@ cli_neigh_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl > len = strlen(conn->msg_out); > conn->msg_out_len_max -= len; > } > - > -cmdline_parse_token_string_t neigh_v4_cmd = > - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, cmd, "neigh"); > -cmdline_parse_token_string_t neigh_v4_add = > - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, add, "add"); > -cmdline_parse_token_string_t neigh_v4_ip4 = > - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, ip4, "ipv4"); > -cmdline_parse_token_string_t neigh_v4_ip = > - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, ip, NULL); > -cmdline_parse_token_string_t neigh_v4_mac = > - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, mac, NULL); > - > -cmdline_parse_inst_t neigh_v4_cmd_ctx = { > - .f = cli_neigh_v4, > - .data = NULL, > - .help_str = cmd_neigh_v4_help, > - .tokens = { > - (void *)&neigh_v4_cmd, > - (void *)&neigh_v4_add, > - (void *)&neigh_v4_ip4, > - (void *)&neigh_v4_ip, > - (void *)&neigh_v4_mac, > - NULL, > - }, > -}; > - > -cmdline_parse_token_string_t neigh_v6_cmd = > - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, cmd, "neigh"); > -cmdline_parse_token_string_t neigh_v6_add = > - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, add, "add"); > -cmdline_parse_token_string_t neigh_v6_ip6 = > - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, ip6, "ipv6"); > -cmdline_parse_token_string_t neigh_v6_ip = > - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, ip, NULL); > -cmdline_parse_token_string_t neigh_v6_mac = > - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, mac, NULL); > - > -cmdline_parse_inst_t neigh_v6_cmd_ctx = { > - .f = cli_neigh_v6, > - .data = NULL, > - .help_str = cmd_neigh_v6_help, > - .tokens = { > - (void *)&neigh_v6_cmd, > - (void *)&neigh_v6_add, > - (void *)&neigh_v6_ip6, > - (void *)&neigh_v6_ip, > - (void *)&neigh_v6_mac, > - NULL, > - }, > -}; > - > -cmdline_parse_token_string_t neigh_help_cmd = > - TOKEN_STRING_INITIALIZER(struct neigh_help_cmd_tokens, cmd, "help"); > -cmdline_parse_token_string_t neigh_help_module = > - TOKEN_STRING_INITIALIZER(struct neigh_help_cmd_tokens, module, "neigh"); > - > -cmdline_parse_inst_t neigh_help_cmd_ctx = { > - .f = cli_neigh_help, > - .data = NULL, > - .help_str = "", > - .tokens = { > - (void *)&neigh_help_cmd, > - (void *)&neigh_help_module, > - NULL, > - }, > -}; > diff --git a/app/graph/neigh.h b/app/graph/neigh.h > index 928981fc31..2688bd9434 100644 > --- a/app/graph/neigh.h > +++ b/app/graph/neigh.h > @@ -5,10 +5,6 @@ > #ifndef APP_GRAPH_NEIGH_H > #define APP_GRAPH_NEIGH_H > > -extern cmdline_parse_inst_t neigh_v4_cmd_ctx; > -extern cmdline_parse_inst_t neigh_v6_cmd_ctx; > -extern cmdline_parse_inst_t neigh_help_cmd_ctx; > - > void neigh4_list_clean(void); > void neigh6_list_clean(void); > int neigh_ip4_add_to_rewrite(void); > diff --git a/app/graph/neigh_priv.h b/app/graph/neigh_priv.h > index 0ec9b1510f..1a7106c309 100644 > --- a/app/graph/neigh_priv.h > +++ b/app/graph/neigh_priv.h > @@ -7,27 +7,6 @@ > > #define MAX_NEIGH_ENTRIES 32 > > -struct neigh_v4_cmd_tokens { > - cmdline_fixed_string_t cmd; > - cmdline_fixed_string_t add; > - cmdline_fixed_string_t ip4; > - cmdline_fixed_string_t ip; > - cmdline_fixed_string_t mac; > -}; > - > -struct neigh_v6_cmd_tokens { > - cmdline_fixed_string_t cmd; > - cmdline_fixed_string_t add; > - cmdline_fixed_string_t ip6; > - cmdline_fixed_string_t ip; > - cmdline_fixed_string_t mac; > -}; > - > -struct neigh_help_cmd_tokens { > - cmdline_fixed_string_t cmd; > - cmdline_fixed_string_t module; > -}; > - > struct neigh_ipv4_config { > TAILQ_ENTRY(neigh_ipv4_config) next; > uint32_t ip; > diff --git a/app/graph/route.h b/app/graph/route.h > index 0d271d1350..23a7951d2d 100644 > --- a/app/graph/route.h > +++ b/app/graph/route.h > @@ -7,11 +7,6 @@ > > #define MAX_ROUTE_ENTRIES 32 > > -extern cmdline_parse_inst_t ipv4_lookup_cmd_ctx; > -extern cmdline_parse_inst_t ipv6_lookup_cmd_ctx; > -extern cmdline_parse_inst_t ipv4_lookup_help_cmd_ctx; > -extern cmdline_parse_inst_t ipv6_lookup_help_cmd_ctx; > - > struct route_ipv4_config { > TAILQ_ENTRY(route_ipv4_config) next; > uint32_t ip; > diff --git a/app/graph/route_priv.h b/app/graph/route_priv.h > index f363a551a9..6a30711acd 100644 > --- a/app/graph/route_priv.h > +++ b/app/graph/route_priv.h > @@ -7,38 +7,4 @@ > > #define MAX_ROUTE_ENTRIES 32 > > -struct ip4_lookup_cmd_tokens { > - cmdline_fixed_string_t cmd; > - cmdline_fixed_string_t route; > - cmdline_fixed_string_t add; > - cmdline_fixed_string_t ip4; > - cmdline_fixed_string_t ip; > - cmdline_fixed_string_t netmask; > - cmdline_fixed_string_t mask; > - cmdline_fixed_string_t via; > - cmdline_fixed_string_t via_ip; > -}; > - > -struct ip6_lookup_cmd_tokens { > - cmdline_fixed_string_t cmd; > - cmdline_fixed_string_t route; > - cmdline_fixed_string_t add; > - cmdline_fixed_string_t ip6; > - cmdline_fixed_string_t ip; > - cmdline_fixed_string_t netmask; > - cmdline_fixed_string_t mask; > - cmdline_fixed_string_t via; > - cmdline_fixed_string_t via_ip; > -}; > - > -struct ipv4_lookup_help_cmd_tokens { > - cmdline_fixed_string_t cmd; > - cmdline_fixed_string_t module; > -}; > - > -struct ipv6_lookup_help_cmd_tokens { > - cmdline_fixed_string_t cmd; > - cmdline_fixed_string_t module; > -}; > - > #endif > -- > 2.25.1 > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/1] app/graph: generate cmdline boilerplate 2023-12-12 17:05 ` [PATCH v2 1/1] " skori 2023-12-18 8:48 ` Nithin Dabilpuram @ 2024-03-06 21:52 ` Thomas Monjalon 2024-03-07 7:06 ` [EXTERNAL] " Sunil Kumar Kori 2024-03-07 9:40 ` [PATCH v3 " skori 2 siblings, 1 reply; 9+ messages in thread From: Thomas Monjalon @ 2024-03-06 21:52 UTC (permalink / raw) To: Sunil Kumar Kori; +Cc: Rakesh Kudurumalla, dev, Bruce Richardson 12/12/2023 18:05, skori@marvell.com: > From: Sunil Kumar Kori <skori@marvell.com> > > Use the dpdk-cmdline-gen script to autogenerate all the boilerplate > structs and defines for the commandline part of the application. > > Signed-off-by: Sunil Kumar Kori <skori@marvell.com> > Acked-by: Bruce Richardson <bruce.richardson@intel.com> Sorry this patch was not applied on time, and it requires a bit of rebasing work. Please could you provide a v3? ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [EXTERNAL] Re: [PATCH v2 1/1] app/graph: generate cmdline boilerplate 2024-03-06 21:52 ` Thomas Monjalon @ 2024-03-07 7:06 ` Sunil Kumar Kori 2024-03-07 9:41 ` Sunil Kumar Kori 0 siblings, 1 reply; 9+ messages in thread From: Sunil Kumar Kori @ 2024-03-07 7:06 UTC (permalink / raw) To: Thomas Monjalon; +Cc: Rakesh Kudurumalla, dev, Bruce Richardson > -----Original Message----- > From: Thomas Monjalon <thomas@monjalon.net> > Sent: Thursday, March 7, 2024 3:22 AM > To: Sunil Kumar Kori <skori@marvell.com> > Cc: Rakesh Kudurumalla <rkudurumalla@marvell.com>; dev@dpdk.org; > Bruce Richardson <bruce.richardson@intel.com> > Subject: [EXTERNAL] Re: [PATCH v2 1/1] app/graph: generate cmdline > boilerplate > > Prioritize security for external emails: Confirm sender and content safety > before clicking links or opening attachments > > ---------------------------------------------------------------------- > 12/12/2023 18:05, skori@marvell.com: > > From: Sunil Kumar Kori <skori@marvell.com> > > > > Use the dpdk-cmdline-gen script to autogenerate all the boilerplate > > structs and defines for the commandline part of the application. > > > > Signed-off-by: Sunil Kumar Kori <skori@marvell.com> > > Acked-by: Bruce Richardson <bruce.richardson@intel.com> > > Sorry this patch was not applied on time, and it requires a bit of rebasing > work. > Please could you provide a v3? > Sure. I will rework and send v3 asap. ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [EXTERNAL] Re: [PATCH v2 1/1] app/graph: generate cmdline boilerplate 2024-03-07 7:06 ` [EXTERNAL] " Sunil Kumar Kori @ 2024-03-07 9:41 ` Sunil Kumar Kori 0 siblings, 0 replies; 9+ messages in thread From: Sunil Kumar Kori @ 2024-03-07 9:41 UTC (permalink / raw) To: Sunil Kumar Kori, Thomas Monjalon Cc: Rakesh Kudurumalla, dev, Bruce Richardson Hi Thomas, v3 is sent. Please do the needful. Regards Sunil Kumar Kori > -----Original Message----- > From: Sunil Kumar Kori <skori@marvell.com> > Sent: Thursday, March 7, 2024 12:36 PM > To: Thomas Monjalon <thomas@monjalon.net> > Cc: Rakesh Kudurumalla <rkudurumalla@marvell.com>; dev@dpdk.org; > Bruce Richardson <bruce.richardson@intel.com> > Subject: RE: [EXTERNAL] Re: [PATCH v2 1/1] app/graph: generate cmdline > boilerplate > > > -----Original Message----- > > From: Thomas Monjalon <thomas@monjalon.net> > > Sent: Thursday, March 7, 2024 3:22 AM > > To: Sunil Kumar Kori <skori@marvell.com> > > Cc: Rakesh Kudurumalla <rkudurumalla@marvell.com>; dev@dpdk.org; > Bruce > > Richardson <bruce.richardson@intel.com> > > Subject: [EXTERNAL] Re: [PATCH v2 1/1] app/graph: generate cmdline > > boilerplate > > > > Prioritize security for external emails: Confirm sender and content > > safety before clicking links or opening attachments > > > > ---------------------------------------------------------------------- > > 12/12/2023 18:05, skori@marvell.com: > > > From: Sunil Kumar Kori <skori@marvell.com> > > > > > > Use the dpdk-cmdline-gen script to autogenerate all the boilerplate > > > structs and defines for the commandline part of the application. > > > > > > Signed-off-by: Sunil Kumar Kori <skori@marvell.com> > > > Acked-by: Bruce Richardson <bruce.richardson@intel.com> > > > > Sorry this patch was not applied on time, and it requires a bit of > > rebasing work. > > Please could you provide a v3? > > > Sure. I will rework and send v3 asap. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 1/1] app/graph: generate cmdline boilerplate 2023-12-12 17:05 ` [PATCH v2 1/1] " skori 2023-12-18 8:48 ` Nithin Dabilpuram 2024-03-06 21:52 ` Thomas Monjalon @ 2024-03-07 9:40 ` skori 2024-03-07 15:31 ` Thomas Monjalon 2 siblings, 1 reply; 9+ messages in thread From: skori @ 2024-03-07 9:40 UTC (permalink / raw) To: Sunil Kumar Kori, Rakesh Kudurumalla Cc: dev, Bruce Richardson, Nithin Dabilpuram From: Sunil Kumar Kori <skori@marvell.com> Use the dpdk-cmdline-gen script to autogenerate all the boilerplate structs and defines for the commandline part of the application. Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Nithin Dabilpuram <ndabilpuram@marvell.com> --- v2..v3: - Rebase on top of the tree. v1..v2: - Rebase and remove Depends-On: tag as dependent series is applied. app/graph/cli.c | 28 --- app/graph/commands.list | 33 +++ app/graph/ethdev.c | 325 +++++------------------------- app/graph/ethdev.h | 10 - app/graph/ethdev_priv.h | 70 ------- app/graph/ethdev_rx.c | 67 +----- app/graph/ethdev_rx.h | 2 - app/graph/ethdev_rx_priv.h | 16 -- app/graph/examples/l3fwd.cli | 12 +- app/graph/examples/l3fwd_pcap.cli | 12 +- app/graph/graph.c | 131 +----------- app/graph/graph.h | 5 - app/graph/graph_priv.h | 35 ---- app/graph/ip4_route.c | 86 +------- app/graph/ip6_route.c | 88 ++------ app/graph/mempool.c | 68 +------ app/graph/mempool.h | 3 - app/graph/mempool_priv.h | 18 -- app/graph/meson.build | 8 + app/graph/module_api.h | 1 + app/graph/neigh.c | 103 ++-------- app/graph/neigh.h | 4 - app/graph/neigh_priv.h | 21 -- app/graph/route.h | 5 - app/graph/route_priv.h | 34 ---- 25 files changed, 173 insertions(+), 1012 deletions(-) create mode 100644 app/graph/commands.list diff --git a/app/graph/cli.c b/app/graph/cli.c index 76f5b8e670..0f23aa2586 100644 --- a/app/graph/cli.c +++ b/app/graph/cli.c @@ -19,34 +19,6 @@ #define CMD_MAX_TOKENS 256 #define MAX_LINE_SIZE 2048 -cmdline_parse_ctx_t modules_ctx[] = { - (cmdline_parse_inst_t *)&graph_config_cmd_ctx, - (cmdline_parse_inst_t *)&graph_start_cmd_ctx, - (cmdline_parse_inst_t *)&graph_stats_cmd_ctx, - (cmdline_parse_inst_t *)&graph_help_cmd_ctx, - (cmdline_parse_inst_t *)&mempool_config_cmd_ctx, - (cmdline_parse_inst_t *)&mempool_help_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_show_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_stats_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_mtu_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_prom_mode_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_ip4_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_ip6_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_forward_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_help_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_rx_cmd_ctx, - (cmdline_parse_inst_t *)ðdev_rx_help_cmd_ctx, - (cmdline_parse_inst_t *)&ipv4_lookup_cmd_ctx, - (cmdline_parse_inst_t *)&ipv4_lookup_help_cmd_ctx, - (cmdline_parse_inst_t *)&ipv6_lookup_cmd_ctx, - (cmdline_parse_inst_t *)&ipv6_lookup_help_cmd_ctx, - (cmdline_parse_inst_t *)&neigh_v4_cmd_ctx, - (cmdline_parse_inst_t *)&neigh_v6_cmd_ctx, - (cmdline_parse_inst_t *)&neigh_help_cmd_ctx, - NULL, -}; - static struct cmdline *cl; static int diff --git a/app/graph/commands.list b/app/graph/commands.list new file mode 100644 index 0000000000..c027f73b0e --- /dev/null +++ b/app/graph/commands.list @@ -0,0 +1,33 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2023 Marvell. +# +graph <STRING>usecase coremask <UINT64>mask bsz <UINT16>size tmo <UINT64>ns model <(rtc,mcd,default)>model_name <(pcap_enable)>capt_ena <UINT8>pcap_ena <(num_pcap_pkts)>capt_pkts_count <UINT64>num_pcap_pkts <(pcap_file)>capt_file <STRING>pcap_file # Command to create graph for given usecase +graph start # Comanmd to start a graph +graph stats show # Command to dump graph stats +help graph # Print help on graph commands + +mempool <STRING>name size <UINT16>buf_sz buffers <UINT16>nb_bufs cache <UINT16>cache_size numa <UINT16>node # Create mempool +help mempool # Print help on mempool commands + +ethdev <STRING>dev rxq <UINT16>nb_rxq txq <UINT16>nb_txq <STRING>mempool # Create Ethernet device +ethdev <STRING>__dev mtu <UINT16>size # Set MTU on Ethernet device +ethdev <STRING>__dev promiscuous <(on,off)>enable # Set promiscuous mode on Ethernet device +ethdev <STRING>__dev show # Command to dump Ethernet device info +ethdev <STRING>__dev stats # Command to dump Ethernet device stats +ethdev forward <STRING>tx_dev <STRING>rx_dev # Command to create Rx/Tx device map +ethdev <STRING>__dev ip4 addr add <IPv4>ip netmask <IPv4>mask # Set IPv4 address on Ethernet device +ethdev <STRING>__dev ip6 addr add <IPv6>ip netmask <IPv6>mask # Set IPv6 address on Ethernet device +help ethdev # Print help on ethdev commands + +ethdev_rx map port <STRING>dev queue <UINT32>qid core <UINT32>core_id # Port-Queue-Core mapping +help ethdev_rx # Print help on ethdev_rx commands + +ipv4_lookup route add ipv4 <IPv4>ip netmask <IPv4>mask via <IPv4>via_ip # Add IPv4 route to LPM table +help ipv4_lookup # Print help on ipv4_lookup commands + +ipv6_lookup route add ipv6 <IPv6>ip netmask <IPv6>mask via <IPv6>via_ip # Add IPv6 route to LPM6 table +help ipv6_lookup # Print help on ipv6_lookup commands + +neigh add ipv4 <IPv4>ip <STRING>mac # Add static neighbour for IPv4 +neigh add ipv6 <IPv6>ip <STRING>mac # Add static neighbour for IPv6 +help neigh # Print help on neigh commands diff --git a/app/graph/ethdev.c b/app/graph/ethdev.c index a622275338..cfc1b18569 100644 --- a/app/graph/ethdev.c +++ b/app/graph/ethdev.c @@ -204,7 +204,6 @@ ethdev_start(void) } } - static int ethdev_show(const char *name) { @@ -360,7 +359,6 @@ ethdev_mtu_config(const char *name, uint32_t mtu) return rc; } - static int ethdev_process(const char *name, struct ethdev_config *params) { @@ -576,21 +574,23 @@ ethdev_stats_show(const char *name) return 0; } -static void -cli_ethdev_mtu(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_mtu_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_mtu_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_mtu_result *res = parsed_result; int rc = -EINVAL; rc = ethdev_mtu_config(res->dev, res->size); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev); } -static void -cli_ethdev_prom_mode(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_promiscuous_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_prom_mode_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_promiscuous_result *res = parsed_result; bool enable = false; int rc = -EINVAL; @@ -599,57 +599,49 @@ cli_ethdev_prom_mode(void *parsed_result, __rte_unused struct cmdline *cl, void rc = ethdev_prom_mode_config(res->dev, enable); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev); } -static void -cli_ip4_addr(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_ip4_addr_add_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_ip4_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_ip4_addr_add_result *res = parsed_result; struct ipv4_addr_config config; int rc = -EINVAL; - if (parser_ip4_read(&config.ip, res->ip)) { - printf(MSG_ARG_INVALID, "ip"); - return; - } - - if (parser_ip4_read(&config.mask, res->mask)) { - printf(MSG_ARG_INVALID, "netmask"); - return; - } + config.ip = rte_be_to_cpu_32(res->ip.addr.ipv4.s_addr); + config.mask = rte_be_to_cpu_32(res->mask.addr.ipv4.s_addr); rc = ethdev_ip4_addr_add(res->dev, &config); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev); } -static void -cli_ip6_addr(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_ip6_addr_add_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_ip6_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_ip6_addr_add_result *res = parsed_result; struct ipv6_addr_config config; - int rc = -EINVAL; + int rc = -EINVAL, i; - if (parser_ip6_read(config.ip, res->ip)) { - printf(MSG_ARG_INVALID, "ip"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + config.ip[i] = res->ip.addr.ipv6.s6_addr[i]; - if (parser_ip6_read(config.mask, res->mask)) { - printf(MSG_ARG_INVALID, "netmask"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + config.mask[i] = res->mask.addr.ipv6.s6_addr[i]; rc = ethdev_ip6_addr_add(res->dev, &config); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev); } -static void -cli_ethdev_show(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_show_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_show_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_show_result *res = parsed_result; int rc = -EINVAL; rc = ethdev_show(res->dev); @@ -657,10 +649,11 @@ cli_ethdev_show(void *parsed_result, __rte_unused struct cmdline *cl, void *data printf(MSG_ARG_INVALID, res->dev); } -static void -cli_ethdev_stats(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_dev_stats_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_stats_cmd_tokens *res = parsed_result; + struct cmd_ethdev_dev_stats_result *res = parsed_result; int rc = -EINVAL; rc = ethdev_stats_show(res->dev); @@ -668,10 +661,10 @@ cli_ethdev_stats(void *parsed_result, __rte_unused struct cmdline *cl, void *dat printf(MSG_ARG_INVALID, res->dev); } -static void -cli_ethdev(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_parsed(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) { - struct ethdev_cmd_tokens *res = parsed_result; + struct cmd_ethdev_result *res = parsed_result; struct ethdev_config config; int rc; @@ -687,224 +680,27 @@ cli_ethdev(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rt rc = ethdev_process(res->dev, &config); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev); } -static void -cli_ethdev_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_ethdev_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; len = strlen(conn->msg_out); conn->msg_out += len; - snprintf(conn->msg_out, conn->msg_out_len_max, "\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n", + snprintf(conn->msg_out, conn->msg_out_len_max, "\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n", "----------------------------- ethdev command help -----------------------------", cmd_ethdev_help, cmd_ethdev_ip4_addr_help, cmd_ethdev_ip6_addr_help, - cmd_ethdev_prom_mode_help, cmd_ethdev_mtu_help, cmd_ethdev_stats_help, - cmd_ethdev_show_help); + cmd_ethdev_forward_help, cmd_ethdev_prom_mode_help, cmd_ethdev_mtu_help, + cmd_ethdev_stats_help, cmd_ethdev_show_help); len = strlen(conn->msg_out); conn->msg_out_len_max -= len; } -cmdline_parse_token_string_t ethdev_stats_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_stats_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_stats_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_stats_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_stats_stats = - TOKEN_STRING_INITIALIZER(struct ethdev_stats_cmd_tokens, stats, "stats"); - -cmdline_parse_inst_t ethdev_stats_cmd_ctx = { - .f = cli_ethdev_stats, - .data = NULL, - .help_str = "", - .tokens = { - (void *)ðdev_stats_cmd, - (void *)ðdev_stats_dev, - (void *)ðdev_stats_stats, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_show_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_show_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_show_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_show_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_show_show = - TOKEN_STRING_INITIALIZER(struct ethdev_show_cmd_tokens, show, "show"); - -cmdline_parse_inst_t ethdev_show_cmd_ctx = { - .f = cli_ethdev_show, - .data = NULL, - .help_str = cmd_ethdev_show_help, - .tokens = { - (void *)ðdev_show_cmd, - (void *)ðdev_show_dev, - (void *)ðdev_show_show, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_mtu_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_mtu_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_mtu_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_mtu_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_mtu_mtu = - TOKEN_STRING_INITIALIZER(struct ethdev_mtu_cmd_tokens, mtu, "mtu"); -cmdline_parse_token_num_t ethdev_mtu_size = - TOKEN_NUM_INITIALIZER(struct ethdev_mtu_cmd_tokens, size, RTE_UINT16); - -cmdline_parse_inst_t ethdev_mtu_cmd_ctx = { - .f = cli_ethdev_mtu, - .data = NULL, - .help_str = cmd_ethdev_mtu_help, - .tokens = { - (void *)ðdev_mtu_cmd, - (void *)ðdev_mtu_dev, - (void *)ðdev_mtu_mtu, - (void *)ðdev_mtu_size, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_prom_mode_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_prom_mode_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_prom_mode_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_prom_mode_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_prom_mode_prom = - TOKEN_STRING_INITIALIZER(struct ethdev_prom_mode_cmd_tokens, prom, "promiscuous"); -cmdline_parse_token_string_t ethdev_prom_mode_enable = - TOKEN_STRING_INITIALIZER(struct ethdev_prom_mode_cmd_tokens, enable, "on#off"); - -cmdline_parse_inst_t ethdev_prom_mode_cmd_ctx = { - .f = cli_ethdev_prom_mode, - .data = NULL, - .help_str = cmd_ethdev_prom_mode_help, - .tokens = { - (void *)ðdev_prom_mode_cmd, - (void *)ðdev_prom_mode_dev, - (void *)ðdev_prom_mode_prom, - (void *)ðdev_prom_mode_enable, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_ip4_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_ip4_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_ip4_ip4 = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, ip4, "ip4"); -cmdline_parse_token_string_t ethdev_ip4_addr = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, addr, "addr"); -cmdline_parse_token_string_t ethdev_ip4_add = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, add, "add"); -cmdline_parse_token_string_t ethdev_ip4_ip = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t ethdev_ip4_netmask = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, netmask, "netmask"); -cmdline_parse_token_string_t ethdev_ip4_mask = - TOKEN_STRING_INITIALIZER(struct ethdev_ip4_cmd_tokens, mask, NULL); - -cmdline_parse_inst_t ethdev_ip4_cmd_ctx = { - .f = cli_ip4_addr, - .data = NULL, - .help_str = cmd_ethdev_ip4_addr_help, - .tokens = { - (void *)ðdev_ip4_cmd, - (void *)ðdev_ip4_dev, - (void *)ðdev_ip4_ip4, - (void *)ðdev_ip4_addr, - (void *)ðdev_ip4_add, - (void *)ðdev_ip4_ip, - (void *)ðdev_ip4_netmask, - (void *)ðdev_ip4_mask, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_ip6_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_ip6_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_ip6_ip6 = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, ip6, "ip6"); -cmdline_parse_token_string_t ethdev_ip6_addr = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, addr, "addr"); -cmdline_parse_token_string_t ethdev_ip6_add = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, add, "add"); -cmdline_parse_token_string_t ethdev_ip6_ip = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t ethdev_ip6_netmask = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, netmask, "netmask"); -cmdline_parse_token_string_t ethdev_ip6_mask = - TOKEN_STRING_INITIALIZER(struct ethdev_ip6_cmd_tokens, mask, NULL); - -cmdline_parse_inst_t ethdev_ip6_cmd_ctx = { - .f = cli_ip6_addr, - .data = NULL, - .help_str = cmd_ethdev_ip6_addr_help, - .tokens = { - (void *)ðdev_ip6_cmd, - (void *)ðdev_ip6_dev, - (void *)ðdev_ip6_ip6, - (void *)ðdev_ip6_addr, - (void *)ðdev_ip6_add, - (void *)ðdev_ip6_ip, - (void *)ðdev_ip6_netmask, - (void *)ðdev_ip6_mask, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_rxq = - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, rxq, "rxq"); -cmdline_parse_token_num_t ethdev_nb_rxq = - TOKEN_NUM_INITIALIZER(struct ethdev_cmd_tokens, nb_rxq, RTE_UINT16); -cmdline_parse_token_string_t ethdev_txq = - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, txq, "txq"); -cmdline_parse_token_num_t ethdev_nb_txq = - TOKEN_NUM_INITIALIZER(struct ethdev_cmd_tokens, nb_txq, RTE_UINT16); -cmdline_parse_token_string_t ethdev_mempool = - TOKEN_STRING_INITIALIZER(struct ethdev_cmd_tokens, mempool, NULL); - -cmdline_parse_inst_t ethdev_cmd_ctx = { - .f = cli_ethdev, - .data = NULL, - .help_str = cmd_ethdev_help, - .tokens = { - (void *)ðdev_cmd, - (void *)ðdev_dev, - (void *)ðdev_rxq, - (void *)ðdev_nb_rxq, - (void *)ðdev_txq, - (void *)ðdev_nb_txq, - (void *)ðdev_mempool, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_help_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_help_cmd_tokens, help, "help"); -cmdline_parse_token_string_t ethdev_help_ethdev = - TOKEN_STRING_INITIALIZER(struct ethdev_help_cmd_tokens, ethdev, "ethdev"); - -cmdline_parse_inst_t ethdev_help_cmd_ctx = { - .f = cli_ethdev_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)ðdev_help_cmd, - (void *)ðdev_help_ethdev, - NULL, - }, -}; - static int ethdev_forward_config(char *tx_dev, char *rx_dev) { @@ -932,35 +728,14 @@ ethdev_forward_config(char *tx_dev, char *rx_dev) return rc; } -static void -cli_ethdev_forward(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_forward_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_fwd_cmd_tokens *res = parsed_result; + struct cmd_ethdev_forward_result *res = parsed_result; int rc = -EINVAL; rc = ethdev_forward_config(res->tx_dev, res->rx_dev); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev); } - -cmdline_parse_token_string_t ethdev_fwd_cfg = - TOKEN_STRING_INITIALIZER(struct ethdev_fwd_cmd_tokens, cmd, "ethdev"); -cmdline_parse_token_string_t ethdev_fwd_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_fwd_cmd_tokens, fwd, "forward"); -cmdline_parse_token_string_t ethdev_tx_device = - TOKEN_STRING_INITIALIZER(struct ethdev_fwd_cmd_tokens, tx_dev, NULL); -cmdline_parse_token_string_t ethdev_rx_device = - TOKEN_STRING_INITIALIZER(struct ethdev_fwd_cmd_tokens, rx_dev, NULL); - -cmdline_parse_inst_t ethdev_forward_cmd_ctx = { - .f = cli_ethdev_forward, - .data = NULL, - .help_str = cmd_ethdev_forward_help, - .tokens = { - (void *)ðdev_fwd_cfg, - (void *)ðdev_fwd_cmd, - (void *)ðdev_tx_device, - (void *)ðdev_rx_device, - NULL, - }, -}; diff --git a/app/graph/ethdev.h b/app/graph/ethdev.h index ec457b89bf..d0de593fc7 100644 --- a/app/graph/ethdev.h +++ b/app/graph/ethdev.h @@ -9,16 +9,6 @@ #define ETHDEV_IPV6_ADDR_LEN 16 -extern cmdline_parse_inst_t ethdev_show_cmd_ctx; -extern cmdline_parse_inst_t ethdev_stats_cmd_ctx; -extern cmdline_parse_inst_t ethdev_mtu_cmd_ctx; -extern cmdline_parse_inst_t ethdev_prom_mode_cmd_ctx; -extern cmdline_parse_inst_t ethdev_ip4_cmd_ctx; -extern cmdline_parse_inst_t ethdev_ip6_cmd_ctx; -extern cmdline_parse_inst_t ethdev_forward_cmd_ctx; -extern cmdline_parse_inst_t ethdev_cmd_ctx; -extern cmdline_parse_inst_t ethdev_help_cmd_ctx; - struct ipv4_addr_config { uint32_t ip; uint32_t mask; diff --git a/app/graph/ethdev_priv.h b/app/graph/ethdev_priv.h index af79553438..bb4abfb1f2 100644 --- a/app/graph/ethdev_priv.h +++ b/app/graph/ethdev_priv.h @@ -13,76 +13,6 @@ #define ETHDEV_RX_DESC_DEFAULT 1024 #define ETHDEV_TX_DESC_DEFAULT 1024 -struct ethdev_show_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t show; -}; - -struct ethdev_stats_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t stats; -}; - -struct ethdev_mtu_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t mtu; - uint16_t size; -}; - -struct ethdev_prom_mode_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t prom; - cmdline_fixed_string_t enable; -}; - -struct ethdev_ip4_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t ip4; - cmdline_fixed_string_t addr; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t netmask; - cmdline_fixed_string_t mask; -}; - -struct ethdev_ip6_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t ip6; - cmdline_fixed_string_t addr; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t netmask; - cmdline_fixed_string_t mask; -}; - -struct ethdev_fwd_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t fwd; - cmdline_fixed_string_t tx_dev; - cmdline_fixed_string_t rx_dev; -}; - -struct ethdev_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t rxq; - cmdline_fixed_string_t txq; - cmdline_fixed_string_t mempool; - uint16_t nb_rxq; - uint16_t nb_txq; -}; - -struct ethdev_help_cmd_tokens { - cmdline_fixed_string_t help; - cmdline_fixed_string_t ethdev; -}; - struct ethdev_rss_config { uint32_t queue_id[ETHDEV_RXQ_RSS_MAX]; uint32_t n_queues; diff --git a/app/graph/ethdev_rx.c b/app/graph/ethdev_rx.c index 03f8effcca..25c439b9a3 100644 --- a/app/graph/ethdev_rx.c +++ b/app/graph/ethdev_rx.c @@ -83,83 +83,34 @@ ethdev_rx_map_add(char *name, uint32_t queue, uint32_t core) return 0; } -static void -cli_ethdev_rx_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_ethdev_rx_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; len = strlen(conn->msg_out); conn->msg_out += len; snprintf(conn->msg_out, conn->msg_out_len_max, "\n%s\n%s\n", - "----------------------------- ethdev_rx command help -----------------------------", + "---------------------------- ethdev_rx command help ----------------------------", cmd_ethdev_rx_help); len = strlen(conn->msg_out); conn->msg_out_len_max -= len; } -static void -cli_ethdev_rx(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ethdev_rx_map_port_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ethdev_rx_cmd_tokens *res = parsed_result; + struct cmd_ethdev_rx_map_port_result *res = parsed_result; int rc = -EINVAL; rc = ethdev_rx_map_add(res->dev, res->qid, res->core_id); if (rc < 0) { cli_exit(); - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ethdev_rx); rte_exit(EXIT_FAILURE, "input core is Invalid\n"); } } - -cmdline_parse_token_string_t ethdev_rx_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, cmd, "ethdev_rx"); -cmdline_parse_token_string_t ethdev_rx_map = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, map, "map"); -cmdline_parse_token_string_t ethdev_rx_port = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, port, "port"); -cmdline_parse_token_string_t ethdev_rx_dev = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, dev, NULL); -cmdline_parse_token_string_t ethdev_rx_queue = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, queue, "queue"); -cmdline_parse_token_num_t ethdev_rx_qid = - TOKEN_NUM_INITIALIZER(struct ethdev_rx_cmd_tokens, qid, RTE_UINT32); -cmdline_parse_token_string_t ethdev_rx_core = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_cmd_tokens, core, "core"); -cmdline_parse_token_num_t ethdev_rx_core_id = - TOKEN_NUM_INITIALIZER(struct ethdev_rx_cmd_tokens, core_id, RTE_UINT32); - -cmdline_parse_inst_t ethdev_rx_cmd_ctx = { - .f = cli_ethdev_rx, - .data = NULL, - .help_str = cmd_ethdev_rx_help, - .tokens = { - (void *)ðdev_rx_cmd, - (void *)ðdev_rx_map, - (void *)ðdev_rx_port, - (void *)ðdev_rx_dev, - (void *)ðdev_rx_queue, - (void *)ðdev_rx_qid, - (void *)ðdev_rx_core, - (void *)ðdev_rx_core_id, - NULL, - }, -}; - -cmdline_parse_token_string_t ethdev_rx_help_cmd = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_help_cmd_tokens, cmd, "help"); -cmdline_parse_token_string_t ethdev_rx_help_module = - TOKEN_STRING_INITIALIZER(struct ethdev_rx_help_cmd_tokens, module, "ethdev_rx"); - -cmdline_parse_inst_t ethdev_rx_help_cmd_ctx = { - .f = cli_ethdev_rx_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)ðdev_rx_help_cmd, - (void *)ðdev_rx_help_module, - NULL, - }, -}; diff --git a/app/graph/ethdev_rx.h b/app/graph/ethdev_rx.h index 8e7b31448c..ec3c97286a 100644 --- a/app/graph/ethdev_rx.h +++ b/app/graph/ethdev_rx.h @@ -29,8 +29,6 @@ uint8_t ethdev_rx_num_rx_queues_get(uint16_t port); extern struct rte_node_ethdev_config ethdev_conf[RTE_MAX_ETHPORTS]; extern struct lcore_conf lcore_conf[RTE_MAX_LCORE]; -extern cmdline_parse_inst_t ethdev_rx_help_cmd_ctx; -extern cmdline_parse_inst_t ethdev_rx_cmd_ctx; extern struct lcore_params *lcore_params; extern uint16_t nb_lcore_params; diff --git a/app/graph/ethdev_rx_priv.h b/app/graph/ethdev_rx_priv.h index 5d155be043..d714f83739 100644 --- a/app/graph/ethdev_rx_priv.h +++ b/app/graph/ethdev_rx_priv.h @@ -14,22 +14,6 @@ #define MAX_JUMBO_PKT_LEN 9600 #define NB_SOCKETS 8 -struct ethdev_rx_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t map; - cmdline_fixed_string_t port; - cmdline_fixed_string_t dev; - cmdline_fixed_string_t queue; - cmdline_fixed_string_t core; - uint32_t core_id; - uint32_t qid; -}; - -struct ethdev_rx_help_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t module; -}; - struct lcore_params { uint16_t port_id; uint8_t queue_id; diff --git a/app/graph/examples/l3fwd.cli b/app/graph/examples/l3fwd.cli index c4977d4322..2badbbfca5 100644 --- a/app/graph/examples/l3fwd.cli +++ b/app/graph/examples/l3fwd.cli @@ -32,8 +32,8 @@ ethdev 0002:03:00.0 ip4 addr add 20.0.2.1 netmask 255.255.255.0 ; ; IPv6 addresses assigned to DPDK devices ; -ethdev 0002:02:00.0 ip6 addr add 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 -ethdev 0002:03:00.0 ip6 addr add 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 +ethdev 0002:02:00.0 ip6 addr add 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 +ethdev 0002:03:00.0 ip6 addr add 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 ; ; IPv4 routes which are installed to ipv4_lookup node for LPM processing @@ -44,8 +44,8 @@ ipv4_lookup route add ipv4 20.0.2.0 netmask 255.255.255.0 via 20.0.2.1 ; ; IPv6 routes which are installed to ipv6_lookup node for LPM processing ; -ipv6_lookup route add ipv6 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 via 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A -ipv6_lookup route add ipv6 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 via 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B +ipv6_lookup route add ipv6 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 via 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A +ipv6_lookup route add ipv6 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 via 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B ; ; Peer MAC and IPv4 address mapping @@ -56,8 +56,8 @@ neigh add ipv4 20.0.2.2 62:20:DA:4F:68:70 ; ; Peer MAC and IPv6 address mapping ; -neigh add ipv6 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A 52:20:DA:4F:68:70 -neigh add ipv6 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B 62:20:DA:4F:68:70 +neigh add ipv6 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A 52:20:DA:4F:68:70 +neigh add ipv6 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B 62:20:DA:4F:68:70 ; ; Port-Queue-Core mapping for ethdev_rx node diff --git a/app/graph/examples/l3fwd_pcap.cli b/app/graph/examples/l3fwd_pcap.cli index 30dde74a65..93e4249444 100644 --- a/app/graph/examples/l3fwd_pcap.cli +++ b/app/graph/examples/l3fwd_pcap.cli @@ -30,8 +30,8 @@ ethdev net_pcap1 ip4 addr add 20.0.2.1 netmask 255.255.255.0 ; ; IPv6 addresses assigned to DPDK devices ; -ethdev net_pcap0 ip6 addr add 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 -ethdev net_pcap1 ip6 addr add 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 +ethdev net_pcap0 ip6 addr add 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 +ethdev net_pcap1 ip6 addr add 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 ; ; IPv4 routes which are installed to ipv4_lookup node for LPM processing @@ -42,8 +42,8 @@ ipv4_lookup route add ipv4 20.0.2.0 netmask 255.255.255.0 via 20.0.2.1 ; ; IPv6 routes which are installed to ipv6_lookup node for LPM processing ; -ipv6_lookup route add ipv6 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 via 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A -ipv6_lookup route add ipv6 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B netmask FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00:00:00:00:00:00 via 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B +ipv6_lookup route add ipv6 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 via 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A +ipv6_lookup route add ipv6 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B netmask FFFF:FFFF:FFFF:FFFF:FF00:0000:0000:0000 via 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B ; ; Peer MAC and IPv4 address mapping @@ -54,8 +54,8 @@ neigh add ipv4 20.0.2.2 62:20:DA:4F:68:70 ; ; Peer MAC and IPv6 address mapping ; -neigh add ipv6 52:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4A 52:20:DA:4F:68:70 -neigh add ipv6 62:20:DA:4F:68:70:52:20:DA:4F:68:70:52:20:DA:4B 62:20:DA:4F:68:70 +neigh add ipv6 5220:DA4F:6870:5220:DA4F:6870:5220:DA4A 52:20:DA:4F:68:70 +neigh add ipv6 6220:DA4F:6870:5220:DA4F:6870:5220:DA4B 62:20:DA:4F:68:70 ; ; Port-Queue-Core mapping for ethdev_rx node diff --git a/app/graph/graph.c b/app/graph/graph.c index 4e0441f1a7..17717738d7 100644 --- a/app/graph/graph.c +++ b/app/graph/graph.c @@ -20,7 +20,7 @@ #define RTE_LOGTYPE_APP_GRAPH RTE_LOGTYPE_USER1 static const char -cmd_graph_help[] = "graph <usecases> bsz <size> tmo <ns> coremask <bitmask> " +cmd_graph_help[] = "graph <usecases> coremask <bitmask> bsz <size> tmo <ns> " "model <rtc | mcd | default> pcap_enable <0 | 1> num_pcap_pkts <num>" "pcap_file <output_capture_file>"; @@ -244,8 +244,8 @@ graph_stats_print_to_file(void) fclose(fp); } -static void -cli_graph_stats(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, +void +cmd_graph_stats_show_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) { graph_stats_print_to_file(); @@ -257,8 +257,8 @@ graph_status_get(void) return graph_started; } -static void -cli_graph_start(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, +void +cmd_graph_start_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) { struct rte_node_ethdev_config *conf; @@ -394,10 +394,10 @@ graph_coremask_get(void) return graph_config.params.coremask; } -static void -cli_graph(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) +void +cmd_graph_parsed(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) { - struct graph_config_cmd_tokens *res = parsed_result; + struct cmd_graph_result *res = parsed_result; struct graph_config config; char *model_name; uint8_t model; @@ -430,9 +430,9 @@ cli_graph(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused voi } } -static void -cli_graph_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_graph_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -445,112 +445,3 @@ cli_graph_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl len = strlen(conn->msg_out); conn->msg_out_len_max -= len; } - -cmdline_parse_token_string_t graph_display_graph = - TOKEN_STRING_INITIALIZER(struct graph_stats_cmd_tokens, graph, "graph"); -cmdline_parse_token_string_t graph_display_stats = - TOKEN_STRING_INITIALIZER(struct graph_stats_cmd_tokens, stats, "stats"); -cmdline_parse_token_string_t graph_display_show = - TOKEN_STRING_INITIALIZER(struct graph_stats_cmd_tokens, show, "show"); - -cmdline_parse_inst_t graph_stats_cmd_ctx = { - .f = cli_graph_stats, - .data = NULL, - .help_str = "graph stats show", - .tokens = { - (void *)&graph_display_graph, - (void *)&graph_display_stats, - (void *)&graph_display_show, - NULL, - }, -}; - -cmdline_parse_token_string_t graph_config_start_graph = - TOKEN_STRING_INITIALIZER(struct graph_start_cmd_tokens, graph, "graph"); -cmdline_parse_token_string_t graph_config_start = - TOKEN_STRING_INITIALIZER(struct graph_start_cmd_tokens, start, "start"); - -cmdline_parse_inst_t graph_start_cmd_ctx = { - .f = cli_graph_start, - .data = NULL, - .help_str = "graph start", - .tokens = { - (void *)&graph_config_start_graph, - (void *)&graph_config_start, - NULL, - }, -}; - -cmdline_parse_token_string_t graph_config_add_graph = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, graph, "graph"); -cmdline_parse_token_string_t graph_config_add_usecase = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, usecase, NULL); -cmdline_parse_token_string_t graph_config_add_coremask = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, coremask, "coremask"); -cmdline_parse_token_num_t graph_config_add_mask = - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, mask, RTE_UINT64); -cmdline_parse_token_string_t graph_config_add_bsz = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, bsz, "bsz"); -cmdline_parse_token_num_t graph_config_add_size = - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, size, RTE_UINT16); -cmdline_parse_token_string_t graph_config_add_tmo = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, tmo, "tmo"); -cmdline_parse_token_num_t graph_config_add_ns = - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, ns, RTE_UINT64); -cmdline_parse_token_string_t graph_config_add_model = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, model, "model"); -cmdline_parse_token_string_t graph_config_add_model_name = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, model_name, "rtc#mcd#default"); -cmdline_parse_token_string_t graph_config_add_capt_ena = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, capt_ena, "pcap_enable"); -cmdline_parse_token_num_t graph_config_add_pcap_ena = - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, pcap_ena, RTE_UINT8); -cmdline_parse_token_string_t graph_config_add_capt_pkts_count = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, capt_pkts_count, "num_pcap_pkts"); -cmdline_parse_token_num_t graph_config_add_num_pcap_pkts = - TOKEN_NUM_INITIALIZER(struct graph_config_cmd_tokens, num_pcap_pkts, RTE_UINT64); -cmdline_parse_token_string_t graph_config_add_capt_file = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, capt_file, "pcap_file"); -cmdline_parse_token_string_t graph_config_add_pcap_file = - TOKEN_STRING_INITIALIZER(struct graph_config_cmd_tokens, pcap_file, NULL); - -cmdline_parse_inst_t graph_config_cmd_ctx = { - .f = cli_graph, - .data = NULL, - .help_str = cmd_graph_help, - .tokens = { - (void *)&graph_config_add_graph, - (void *)&graph_config_add_usecase, - (void *)&graph_config_add_coremask, - (void *)&graph_config_add_mask, - (void *)&graph_config_add_bsz, - (void *)&graph_config_add_size, - (void *)&graph_config_add_tmo, - (void *)&graph_config_add_ns, - (void *)&graph_config_add_model, - (void *)&graph_config_add_model_name, - (void *)&graph_config_add_capt_ena, - (void *)&graph_config_add_pcap_ena, - (void *)&graph_config_add_capt_pkts_count, - (void *)&graph_config_add_num_pcap_pkts, - (void *)&graph_config_add_capt_file, - (void *)&graph_config_add_pcap_file, - NULL, - }, -}; - -cmdline_parse_token_string_t graph_help_cmd = - TOKEN_STRING_INITIALIZER(struct graph_help_cmd_tokens, help, "help"); -cmdline_parse_token_string_t graph_help_graph = - TOKEN_STRING_INITIALIZER(struct graph_help_cmd_tokens, graph, "graph"); - -cmdline_parse_inst_t graph_help_cmd_ctx = { - .f = cli_graph_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)&graph_help_cmd, - (void *)&graph_help_graph, - NULL, - }, -}; diff --git a/app/graph/graph.h b/app/graph/graph.h index a14fa37ccd..c851b71e7e 100644 --- a/app/graph/graph.h +++ b/app/graph/graph.h @@ -7,11 +7,6 @@ #include <cmdline_parse.h> -extern cmdline_parse_inst_t graph_config_cmd_ctx; -extern cmdline_parse_inst_t graph_start_cmd_ctx; -extern cmdline_parse_inst_t graph_stats_cmd_ctx; -extern cmdline_parse_inst_t graph_help_cmd_ctx; - int graph_walk_start(void *conf); void graph_stats_print(void); void graph_pcap_config_get(uint8_t *pcap_ena, uint64_t *num_pkts, char **file); diff --git a/app/graph/graph_priv.h b/app/graph/graph_priv.h index a48a35daa3..3306edda63 100644 --- a/app/graph/graph_priv.h +++ b/app/graph/graph_priv.h @@ -7,41 +7,6 @@ #define MAX_GRAPH_USECASES 32 -struct graph_help_cmd_tokens { - cmdline_fixed_string_t help; - cmdline_fixed_string_t graph; -}; - -struct graph_start_cmd_tokens { - cmdline_fixed_string_t graph; - cmdline_fixed_string_t start; -}; - -struct graph_stats_cmd_tokens { - cmdline_fixed_string_t show; - cmdline_fixed_string_t graph; - cmdline_fixed_string_t stats; -}; - -struct graph_config_cmd_tokens { - cmdline_fixed_string_t graph; - cmdline_fixed_string_t usecase; - cmdline_fixed_string_t bsz; - cmdline_fixed_string_t tmo; - cmdline_fixed_string_t coremask; - cmdline_fixed_string_t model; - cmdline_fixed_string_t capt_ena; - cmdline_fixed_string_t capt_pkts_count; - cmdline_fixed_string_t capt_file; - cmdline_fixed_string_t model_name; - cmdline_fixed_string_t pcap_file; - uint16_t size; - uint64_t ns; - uint64_t mask; - uint64_t num_pcap_pkts; - uint8_t pcap_ena; -}; - enum graph_model { GRAPH_MODEL_RTC = 0x01, GRAPH_MODEL_MCD = 0x02, diff --git a/app/graph/ip4_route.c b/app/graph/ip4_route.c index fc83586427..48ea912597 100644 --- a/app/graph/ip4_route.c +++ b/app/graph/ip4_route.c @@ -20,7 +20,6 @@ cmd_ipv4_lookup_help[] = "ipv4_lookup route add ipv4 <ip> netmask <mask> via <ip struct ip4_route route4 = TAILQ_HEAD_INITIALIZER(route4); - void route_ip4_list_clean(void) { @@ -127,9 +126,9 @@ route_ip4_add_to_lookup(void) return 0; } -static void -cli_ipv4_lookup_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_ipv4_lookup_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -143,82 +142,19 @@ cli_ipv4_lookup_help(__rte_unused void *parsed_result, __rte_unused struct cmdli conn->msg_out_len_max -= len; } -static void -cli_ipv4_lookup(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ipv4_lookup_route_add_ipv4_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ip4_lookup_cmd_tokens *res = parsed_result; + struct cmd_ipv4_lookup_route_add_ipv4_result *res = parsed_result; struct route_ipv4_config config; int rc = -EINVAL; - if (parser_ip4_read(&config.ip, res->ip)) { - printf(MSG_ARG_INVALID, "ipv4"); - return; - } - - if (parser_ip4_read(&config.netmask, res->mask)) { - printf(MSG_ARG_INVALID, "netmask"); - return; - } - - if (parser_ip4_read(&config.via, res->via_ip)) { - printf(MSG_ARG_INVALID, "via ip"); - return; - } + config.ip = rte_be_to_cpu_32(res->ip.addr.ipv4.s_addr); + config.netmask = rte_be_to_cpu_32(res->mask.addr.ipv4.s_addr); + config.via = rte_be_to_cpu_32(res->via_ip.addr.ipv4.s_addr); rc = route_ip4_add(&config); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ipv4_lookup); } - -cmdline_parse_token_string_t ip4_lookup_cmd = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, cmd, "ipv4_lookup"); -cmdline_parse_token_string_t ip4_lookup_route = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, route, "route"); -cmdline_parse_token_string_t ip4_lookup_add = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, add, "add"); -cmdline_parse_token_string_t ip4_lookup_ip4 = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, ip4, "ipv4"); -cmdline_parse_token_string_t ip4_lookup_ip = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t ip4_lookup_netmask = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, netmask, "netmask"); -cmdline_parse_token_string_t ip4_lookup_mask = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, mask, NULL); -cmdline_parse_token_string_t ip4_lookup_via = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, via, "via"); -cmdline_parse_token_string_t ip4_lookup_via_ip = - TOKEN_STRING_INITIALIZER(struct ip4_lookup_cmd_tokens, via_ip, NULL); - -cmdline_parse_inst_t ipv4_lookup_cmd_ctx = { - .f = cli_ipv4_lookup, - .data = NULL, - .help_str = cmd_ipv4_lookup_help, - .tokens = { - (void *)&ip4_lookup_cmd, - (void *)&ip4_lookup_route, - (void *)&ip4_lookup_add, - (void *)&ip4_lookup_ip4, - (void *)&ip4_lookup_ip, - (void *)&ip4_lookup_netmask, - (void *)&ip4_lookup_mask, - (void *)&ip4_lookup_via, - (void *)&ip4_lookup_via_ip, - NULL, - }, -}; - -cmdline_parse_token_string_t ipv4_lookup_help_cmd = - TOKEN_STRING_INITIALIZER(struct ipv4_lookup_help_cmd_tokens, cmd, "help"); -cmdline_parse_token_string_t ipv4_lookup_help_module = - TOKEN_STRING_INITIALIZER(struct ipv4_lookup_help_cmd_tokens, module, "ipv4_lookup"); - -cmdline_parse_inst_t ipv4_lookup_help_cmd_ctx = { - .f = cli_ipv4_lookup_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)&ipv4_lookup_help_cmd, - (void *)&ipv4_lookup_help_module, - NULL, - }, -}; diff --git a/app/graph/ip6_route.c b/app/graph/ip6_route.c index 1fa4865220..834719ecae 100644 --- a/app/graph/ip6_route.c +++ b/app/graph/ip6_route.c @@ -132,9 +132,9 @@ route_ip6_add_to_lookup(void) return 0; } -static void -cli_ipv6_lookup_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_ipv6_lookup_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -148,82 +148,24 @@ cli_ipv6_lookup_help(__rte_unused void *parsed_result, __rte_unused struct cmdli conn->msg_out_len_max -= len; } -static void -cli_ipv6_lookup(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_ipv6_lookup_route_add_ipv6_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct ip6_lookup_cmd_tokens *res = parsed_result; + struct cmd_ipv6_lookup_route_add_ipv6_result *res = parsed_result; struct route_ipv6_config config; - int rc = -EINVAL; + int rc = -EINVAL, i; - if (parser_ip6_read(config.ip, res->ip)) { - printf(MSG_ARG_INVALID, "ipv6"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + config.ip[i] = res->ip.addr.ipv6.s6_addr[i]; - if (parser_ip6_read(config.mask, res->mask)) { - printf(MSG_ARG_INVALID, "netmask"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + config.mask[i] = res->mask.addr.ipv6.s6_addr[i]; - if (parser_ip6_read(config.gateway, res->via_ip)) { - printf(MSG_ARG_INVALID, "gateway ip"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + config.gateway[i] = res->via_ip.addr.ipv6.s6_addr[i]; rc = route_ip6_add(&config); if (rc) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->ipv6_lookup); } - -cmdline_parse_token_string_t ip6_lookup_cmd = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, cmd, "ipv6_lookup"); -cmdline_parse_token_string_t ip6_lookup_route = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, route, "route"); -cmdline_parse_token_string_t ip6_lookup_add = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, add, "add"); -cmdline_parse_token_string_t ip6_lookup_ip6 = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, ip6, "ipv6"); -cmdline_parse_token_string_t ip6_lookup_ip = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t ip6_lookup_netmask = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, netmask, "netmask"); -cmdline_parse_token_string_t ip6_lookup_mask = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, mask, NULL); -cmdline_parse_token_string_t ip6_lookup_via = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, via, "via"); -cmdline_parse_token_string_t ip6_lookup_via_ip = - TOKEN_STRING_INITIALIZER(struct ip6_lookup_cmd_tokens, via_ip, NULL); - -cmdline_parse_inst_t ipv6_lookup_cmd_ctx = { - .f = cli_ipv6_lookup, - .data = NULL, - .help_str = cmd_ipv6_lookup_help, - .tokens = { - (void *)&ip6_lookup_cmd, - (void *)&ip6_lookup_route, - (void *)&ip6_lookup_add, - (void *)&ip6_lookup_ip6, - (void *)&ip6_lookup_ip, - (void *)&ip6_lookup_netmask, - (void *)&ip6_lookup_mask, - (void *)&ip6_lookup_via, - (void *)&ip6_lookup_via_ip, - NULL, - }, -}; - -cmdline_parse_token_string_t ipv6_lookup_help_cmd = - TOKEN_STRING_INITIALIZER(struct ipv6_lookup_help_cmd_tokens, cmd, "help"); -cmdline_parse_token_string_t ipv6_lookup_help_module = - TOKEN_STRING_INITIALIZER(struct ipv6_lookup_help_cmd_tokens, module, "ipv6_lookup"); - -cmdline_parse_inst_t ipv6_lookup_help_cmd_ctx = { - .f = cli_ipv6_lookup_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)&ipv6_lookup_help_cmd, - (void *)&ipv6_lookup_help_module, - NULL, - }, -}; diff --git a/app/graph/mempool.c b/app/graph/mempool.c index 9fd3f8460b..fbb0ca8f05 100644 --- a/app/graph/mempool.c +++ b/app/graph/mempool.c @@ -47,9 +47,9 @@ mempool_process(struct mempool_config *config) return 0; } -static void -cli_mempool_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_mempool_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -63,10 +63,10 @@ cli_mempool_help(__rte_unused void *parsed_result, __rte_unused struct cmdline * conn->msg_out_len_max -= len; } -static void -cli_mempool(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) +void +cmd_mempool_parsed(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) { - struct mempool_config_cmd_tokens *res = parsed_result; + struct cmd_mempool_result *res = parsed_result; struct mempool_config config; int rc = -EINVAL; @@ -82,59 +82,3 @@ cli_mempool(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused v if (rc < 0) printf(MSG_CMD_FAIL, "mempool"); } - -cmdline_parse_token_string_t mempool_config_add_mempool = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, mempool, "mempool"); -cmdline_parse_token_string_t mempool_config_add_name = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, name, NULL); -cmdline_parse_token_string_t mempool_config_add_size = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, size, "size"); -cmdline_parse_token_num_t mempool_config_add_buf_sz = - TOKEN_NUM_INITIALIZER(struct mempool_config_cmd_tokens, buf_sz, RTE_UINT16); -cmdline_parse_token_string_t mempool_config_add_buffers = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, buffers, "buffers"); -cmdline_parse_token_num_t mempool_config_add_nb_bufs = - TOKEN_NUM_INITIALIZER(struct mempool_config_cmd_tokens, nb_bufs, RTE_UINT16); -cmdline_parse_token_string_t mempool_config_add_cache = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, cache, "cache"); -cmdline_parse_token_num_t mempool_config_add_cache_size = - TOKEN_NUM_INITIALIZER(struct mempool_config_cmd_tokens, cache_size, RTE_UINT16); -cmdline_parse_token_string_t mempool_config_add_numa = - TOKEN_STRING_INITIALIZER(struct mempool_config_cmd_tokens, numa, "numa"); -cmdline_parse_token_num_t mempool_config_add_node = - TOKEN_NUM_INITIALIZER(struct mempool_config_cmd_tokens, node, RTE_UINT16); - -cmdline_parse_inst_t mempool_config_cmd_ctx = { - .f = cli_mempool, - .data = NULL, - .help_str = cmd_mempool_help, - .tokens = { - (void *)&mempool_config_add_mempool, - (void *)&mempool_config_add_name, - (void *)&mempool_config_add_size, - (void *)&mempool_config_add_buf_sz, - (void *)&mempool_config_add_buffers, - (void *)&mempool_config_add_nb_bufs, - (void *)&mempool_config_add_cache, - (void *)&mempool_config_add_cache_size, - (void *)&mempool_config_add_numa, - (void *)&mempool_config_add_node, - NULL, - }, -}; - -cmdline_parse_token_string_t mempool_help_cmd = - TOKEN_STRING_INITIALIZER(struct mempool_help_cmd_tokens, help, "help"); -cmdline_parse_token_string_t mempool_help_mempool = - TOKEN_STRING_INITIALIZER(struct mempool_help_cmd_tokens, mempool, "mempool"); - -cmdline_parse_inst_t mempool_help_cmd_ctx = { - .f = cli_mempool_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)&mempool_help_cmd, - (void *)&mempool_help_mempool, - NULL, - }, -}; diff --git a/app/graph/mempool.h b/app/graph/mempool.h index 0808c4259e..dc6e37dac1 100644 --- a/app/graph/mempool.h +++ b/app/graph/mempool.h @@ -16,9 +16,6 @@ struct mempool_config { int numa_node; }; -extern cmdline_parse_inst_t mempool_config_cmd_ctx; -extern cmdline_parse_inst_t mempool_help_cmd_ctx; - int mempool_process(struct mempool_config *config); #endif diff --git a/app/graph/mempool_priv.h b/app/graph/mempool_priv.h index 3ce64702a9..5a55722b32 100644 --- a/app/graph/mempool_priv.h +++ b/app/graph/mempool_priv.h @@ -7,24 +7,6 @@ #include "mempool.h" -struct mempool_config_cmd_tokens { - cmdline_fixed_string_t mempool; - cmdline_fixed_string_t size; - cmdline_fixed_string_t buffers; - cmdline_fixed_string_t cache; - cmdline_fixed_string_t numa; - cmdline_fixed_string_t name; - uint16_t buf_sz; - uint16_t nb_bufs; - uint16_t cache_size; - uint16_t node; -}; - -struct mempool_help_cmd_tokens { - cmdline_fixed_string_t help; - cmdline_fixed_string_t mempool; -}; - struct mempools { struct mempool_config config[RTE_MAX_ETHPORTS]; struct rte_mempool *mp[RTE_MAX_ETHPORTS]; diff --git a/app/graph/meson.build b/app/graph/meson.build index c4cba02444..6dc54d5ee6 100644 --- a/app/graph/meson.build +++ b/app/graph/meson.build @@ -25,3 +25,11 @@ sources = files( 'neigh.c', 'utils.c', ) + +cmd_h = custom_target('commands_hdr', + output: 'commands.h', + input: files('commands.list'), + capture: true, + command: [cmdline_gen_cmd, '--context-name=modules_ctx', '@INPUT@'] +) +sources += cmd_h diff --git a/app/graph/module_api.h b/app/graph/module_api.h index c80eeb704c..b872872dc1 100644 --- a/app/graph/module_api.h +++ b/app/graph/module_api.h @@ -10,6 +10,7 @@ #include "cli.h" #include "conn.h" +#include "commands.h" #include "ethdev.h" #include "ethdev_rx.h" #include "graph.h" diff --git a/app/graph/neigh.c b/app/graph/neigh.c index 22be7361e3..79fd542c89 100644 --- a/app/graph/neigh.c +++ b/app/graph/neigh.c @@ -235,18 +235,16 @@ neigh_ip6_add_to_rewrite(void) return 0; } -static void -cli_neigh_v4(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_neigh_add_ipv4_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct neigh_v4_cmd_tokens *res = parsed_result; + struct cmd_neigh_add_ipv4_result *res = parsed_result; int rc = -EINVAL; uint64_t mac; uint32_t ip; - if (parser_ip4_read(&ip, res->ip)) { - printf(MSG_ARG_INVALID, "ip"); - return; - } + ip = rte_be_to_cpu_32(res->ip.addr.ipv4.s_addr); if (parser_mac_read(&mac, res->mac)) { printf(MSG_ARG_INVALID, "mac"); @@ -255,21 +253,20 @@ cli_neigh_v4(void *parsed_result, __rte_unused struct cmdline *cl, void *data __ rc = neigh_ip4_add(ip, mac); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->neigh); } -static void -cli_neigh_v6(void *parsed_result, __rte_unused struct cmdline *cl, void *data __rte_unused) +void +cmd_neigh_add_ipv6_parsed(void *parsed_result, __rte_unused struct cmdline *cl, + void *data __rte_unused) { - struct neigh_v6_cmd_tokens *res = parsed_result; + struct cmd_neigh_add_ipv6_result *res = parsed_result; uint8_t ip[ETHDEV_IPV6_ADDR_LEN]; - int rc = -EINVAL; + int rc = -EINVAL, i; uint64_t mac; - if (parser_ip6_read(ip, res->ip)) { - printf(MSG_ARG_INVALID, "ip"); - return; - } + for (i = 0; i < ETHDEV_IPV6_ADDR_LEN; i++) + ip[i] = res->ip.addr.ipv6.s6_addr[i]; if (parser_mac_read(&mac, res->mac)) { printf(MSG_ARG_INVALID, "mac"); @@ -278,12 +275,12 @@ cli_neigh_v6(void *parsed_result, __rte_unused struct cmdline *cl, void *data __ rc = neigh_ip6_add(ip, mac); if (rc < 0) - printf(MSG_CMD_FAIL, res->cmd); + printf(MSG_CMD_FAIL, res->neigh); } -static void -cli_neigh_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, - __rte_unused void *data) +void +cmd_help_neigh_parsed(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl, + __rte_unused void *data) { size_t len; @@ -296,69 +293,3 @@ cli_neigh_help(__rte_unused void *parsed_result, __rte_unused struct cmdline *cl len = strlen(conn->msg_out); conn->msg_out_len_max -= len; } - -cmdline_parse_token_string_t neigh_v4_cmd = - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, cmd, "neigh"); -cmdline_parse_token_string_t neigh_v4_add = - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, add, "add"); -cmdline_parse_token_string_t neigh_v4_ip4 = - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, ip4, "ipv4"); -cmdline_parse_token_string_t neigh_v4_ip = - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t neigh_v4_mac = - TOKEN_STRING_INITIALIZER(struct neigh_v4_cmd_tokens, mac, NULL); - -cmdline_parse_inst_t neigh_v4_cmd_ctx = { - .f = cli_neigh_v4, - .data = NULL, - .help_str = cmd_neigh_v4_help, - .tokens = { - (void *)&neigh_v4_cmd, - (void *)&neigh_v4_add, - (void *)&neigh_v4_ip4, - (void *)&neigh_v4_ip, - (void *)&neigh_v4_mac, - NULL, - }, -}; - -cmdline_parse_token_string_t neigh_v6_cmd = - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, cmd, "neigh"); -cmdline_parse_token_string_t neigh_v6_add = - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, add, "add"); -cmdline_parse_token_string_t neigh_v6_ip6 = - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, ip6, "ipv6"); -cmdline_parse_token_string_t neigh_v6_ip = - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, ip, NULL); -cmdline_parse_token_string_t neigh_v6_mac = - TOKEN_STRING_INITIALIZER(struct neigh_v6_cmd_tokens, mac, NULL); - -cmdline_parse_inst_t neigh_v6_cmd_ctx = { - .f = cli_neigh_v6, - .data = NULL, - .help_str = cmd_neigh_v6_help, - .tokens = { - (void *)&neigh_v6_cmd, - (void *)&neigh_v6_add, - (void *)&neigh_v6_ip6, - (void *)&neigh_v6_ip, - (void *)&neigh_v6_mac, - NULL, - }, -}; - -cmdline_parse_token_string_t neigh_help_cmd = - TOKEN_STRING_INITIALIZER(struct neigh_help_cmd_tokens, cmd, "help"); -cmdline_parse_token_string_t neigh_help_module = - TOKEN_STRING_INITIALIZER(struct neigh_help_cmd_tokens, module, "neigh"); - -cmdline_parse_inst_t neigh_help_cmd_ctx = { - .f = cli_neigh_help, - .data = NULL, - .help_str = "", - .tokens = { - (void *)&neigh_help_cmd, - (void *)&neigh_help_module, - NULL, - }, -}; diff --git a/app/graph/neigh.h b/app/graph/neigh.h index 928981fc31..2688bd9434 100644 --- a/app/graph/neigh.h +++ b/app/graph/neigh.h @@ -5,10 +5,6 @@ #ifndef APP_GRAPH_NEIGH_H #define APP_GRAPH_NEIGH_H -extern cmdline_parse_inst_t neigh_v4_cmd_ctx; -extern cmdline_parse_inst_t neigh_v6_cmd_ctx; -extern cmdline_parse_inst_t neigh_help_cmd_ctx; - void neigh4_list_clean(void); void neigh6_list_clean(void); int neigh_ip4_add_to_rewrite(void); diff --git a/app/graph/neigh_priv.h b/app/graph/neigh_priv.h index 0ec9b1510f..1a7106c309 100644 --- a/app/graph/neigh_priv.h +++ b/app/graph/neigh_priv.h @@ -7,27 +7,6 @@ #define MAX_NEIGH_ENTRIES 32 -struct neigh_v4_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip4; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t mac; -}; - -struct neigh_v6_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip6; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t mac; -}; - -struct neigh_help_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t module; -}; - struct neigh_ipv4_config { TAILQ_ENTRY(neigh_ipv4_config) next; uint32_t ip; diff --git a/app/graph/route.h b/app/graph/route.h index 0d271d1350..23a7951d2d 100644 --- a/app/graph/route.h +++ b/app/graph/route.h @@ -7,11 +7,6 @@ #define MAX_ROUTE_ENTRIES 32 -extern cmdline_parse_inst_t ipv4_lookup_cmd_ctx; -extern cmdline_parse_inst_t ipv6_lookup_cmd_ctx; -extern cmdline_parse_inst_t ipv4_lookup_help_cmd_ctx; -extern cmdline_parse_inst_t ipv6_lookup_help_cmd_ctx; - struct route_ipv4_config { TAILQ_ENTRY(route_ipv4_config) next; uint32_t ip; diff --git a/app/graph/route_priv.h b/app/graph/route_priv.h index f363a551a9..6a30711acd 100644 --- a/app/graph/route_priv.h +++ b/app/graph/route_priv.h @@ -7,38 +7,4 @@ #define MAX_ROUTE_ENTRIES 32 -struct ip4_lookup_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t route; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip4; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t netmask; - cmdline_fixed_string_t mask; - cmdline_fixed_string_t via; - cmdline_fixed_string_t via_ip; -}; - -struct ip6_lookup_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t route; - cmdline_fixed_string_t add; - cmdline_fixed_string_t ip6; - cmdline_fixed_string_t ip; - cmdline_fixed_string_t netmask; - cmdline_fixed_string_t mask; - cmdline_fixed_string_t via; - cmdline_fixed_string_t via_ip; -}; - -struct ipv4_lookup_help_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t module; -}; - -struct ipv6_lookup_help_cmd_tokens { - cmdline_fixed_string_t cmd; - cmdline_fixed_string_t module; -}; - #endif -- 2.25.1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/1] app/graph: generate cmdline boilerplate 2024-03-07 9:40 ` [PATCH v3 " skori @ 2024-03-07 15:31 ` Thomas Monjalon 0 siblings, 0 replies; 9+ messages in thread From: Thomas Monjalon @ 2024-03-07 15:31 UTC (permalink / raw) To: Sunil Kumar Kori Cc: Rakesh Kudurumalla, dev, Bruce Richardson, Nithin Dabilpuram 07/03/2024 10:40, skori@marvell.com: > From: Sunil Kumar Kori <skori@marvell.com> > > Use the dpdk-cmdline-gen script to autogenerate all the boilerplate > structs and defines for the commandline part of the application. > > Signed-off-by: Sunil Kumar Kori <skori@marvell.com> > Acked-by: Bruce Richardson <bruce.richardson@intel.com> > Acked-by: Nithin Dabilpuram <ndabilpuram@marvell.com> Applied, thanks. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-03-07 15:31 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-12-07 7:12 [PATCH] app/graph: generate cmdline boilerplate skori 2023-12-07 10:29 ` Bruce Richardson 2023-12-12 17:05 ` [PATCH v2 1/1] " skori 2023-12-18 8:48 ` Nithin Dabilpuram 2024-03-06 21:52 ` Thomas Monjalon 2024-03-07 7:06 ` [EXTERNAL] " Sunil Kumar Kori 2024-03-07 9:41 ` Sunil Kumar Kori 2024-03-07 9:40 ` [PATCH v3 " skori 2024-03-07 15:31 ` Thomas Monjalon
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).