[dpdk-dev] [PATCH v5 3/5] examples/l3fwd: add FIB infrastructure
Burakov, Anatoly
anatoly.burakov at intel.com
Thu Apr 1 13:20:13 CEST 2021
On 15-Mar-21 11:34 AM, Conor Walsh wrote:
> The purpose of this commit is to add the necessary function calls
> and supporting infrastructure to allow the Forwarding Information Base
> (FIB) library to be integrated into the l3fwd sample app.
> Instead of adding an individual flag for FIB, a new flag '--lookup' has
> been added that allows the user to select their desired lookup method.
> The flags '-E' and '-L' have been retained for backwards compatibility.
>
> Signed-off-by: Conor Walsh <conor.walsh at intel.com>
> Acked-by: Konstantin Ananyev <konstantin.ananyev at intel.com>
> Acked-by: Vladimir Medvedkin <vladimir.medvedkin at intel.com>
> ---
<snip>
> @@ -310,7 +328,10 @@ print_usage(const char *prgname)
> " Valid only if --mode=eventdev\n"
> " --event-eth-rxqs: Number of ethernet RX queues per device.\n"
> " Default: 1\n"
> - " Valid only if --mode=eventdev\n\n",
> + " Valid only if --mode=eventdev\n"
> + " --lookup: Select the lookup method\n"
> + " Default: lpm\n"
> + " Accepted: em (Exact Match), lpm (Longest Prefix Match), fib (First Information Base)\n\n",
Isn't it Forward Information Base?
> prgname);
> }
>
> @@ -485,13 +506,32 @@ parse_event_eth_rx_queues(const char *eth_rx_queues)
> evt_rsrc->eth_rx_queues = num_eth_rx_queues;
> }
>
> +static void
> +parse_lookup(const char *optarg)
> +{
> + if (lookup_mode != L3FWD_LOOKUP_DEFAULT) {
> + rte_exit(EXIT_FAILURE,
> + "Only one lookup mode is allowed at a time!\n");
> + }
> + if (!strcmp(optarg, "em"))
> + lookup_mode = L3FWD_LOOKUP_EM;
> + else if (!strcmp(optarg, "lpm"))
> + lookup_mode = L3FWD_LOOKUP_LPM;
> + else if (!strcmp(optarg, "fib"))
> + lookup_mode = L3FWD_LOOKUP_FIB;
> + else {
> + rte_exit(EXIT_FAILURE,
> + "Invalid --lookup option! Accepted options: em, lpm, fib\n");
> + }
> +}
> +
I don't think having rte_exit() calls inside a parsing function is good
practice. The check at the beginning of the function can be done in
optarg switch (like you have for E and L switches), while the latter can
be replaced with a RTE_LOG(ERR, ...) and a return -1, which can be
checked by the caller.
Once the above is fixed,
Acked-by: Anatoly Burako <anatoly.burakov at intel.com>
--
Thanks,
Anatoly
More information about the dev
mailing list