[dpdk-dev] [PATCH] ipsec_secgw: added cmdline option for jumbo frames and switched to the new offload API.

De Lara Guarch, Pablo pablo.de.lara.guarch at intel.com
Thu Oct 19 14:33:11 CEST 2017


Hi Radu,

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Radu Nicolau
> Sent: Wednesday, October 18, 2017 12:55 PM
> To: dev at dpdk.org
> Cc: Gonzalez Monroy, Sergio <sergio.gonzalez.monroy at intel.com>;
> Nicolau, Radu <radu.nicolau at intel.com>
> Subject: [dpdk-dev] [PATCH] ipsec_secgw: added cmdline option for jumbo
> frames and switched to the new offload API.
> 

The commit title is too long and partially incorrect (run check-git-log.sh script to detect this).
It should start with "examples/ipsec_secgw: " and I think part of it should go into the message.
I think something like: "examples/ipsec_secgw: support jumbo frames" would be better and
then adding the command line option and using the new API should go into the message.

Also, add the new parameter in "print_usage()" function.

> Signed-off-by: Radu Nicolau <radu.nicolau at intel.com>
> ---
>  doc/guides/sample_app_ug/ipsec_secgw.rst |  6 +++++-
>  examples/ipsec-secgw/ipsec-secgw.c       | 32
> +++++++++++++++++++++++++-------
>  2 files changed, 30 insertions(+), 8 deletions(-)
> 
> diff --git a/doc/guides/sample_app_ug/ipsec_secgw.rst
> b/doc/guides/sample_app_ug/ipsec_secgw.rst
> index b675cba..dd9bad2 100644
> --- a/doc/guides/sample_app_ug/ipsec_secgw.rst
> +++ b/doc/guides/sample_app_ug/ipsec_secgw.rst
> @@ -119,7 +119,7 @@ The application has a number of command line
> options::
> 
> 
>     ./build/ipsec-secgw [EAL options] --
> -                        -p PORTMASK -P -u PORTMASK
> +                        -p PORTMASK -P -u PORTMASK -j FRAMESIZE
>                          --config (port,queue,lcore)[,(port,queue,lcore]
>                          --single-sa SAIDX
>                          -f CONFIG_FILE_PATH @@ -135,6 +135,10 @@ Where:
> 
>  *   ``-u PORTMASK``: hexadecimal bitmask of unprotected ports
> 
> +*   ``-j FRAMESIZE``: *optional*. Enables jumbo frames with the maximum
> size
> +    specified as FRAMESIZE. If FRAMESIZE is missing or invalid a default
> value
> +    of 9000 is used.

When running the app with just "-j", it says:
option requires an argument -- 'j'

So, FRAMESIZE is mandatory, right?

> +
>  *   ``--config (port,queue,lcore)[,(port,queue,lcore)]``: determines which
> queues
>      from which ports are mapped to which cores.
> 
> diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-
> secgw/ipsec-secgw.c
> index d451b3d..a7e4bd1 100644
> --- a/examples/ipsec-secgw/ipsec-secgw.c
> +++ b/examples/ipsec-secgw/ipsec-secgw.c

...

> @@ -983,7 +982,7 @@ parse_args(int32_t argc, char **argv)
> 
>  	argvopt = argv;
> 
> -	while ((opt = getopt_long(argc, argvopt, "p:Pu:f:",
> +	while ((opt = getopt_long(argc, argvopt, "p:Pu:f:j:",
>  				lgopts, &option_index)) != EOF) {
> 
>  		switch (opt) {
> @@ -1022,6 +1021,17 @@ parse_args(int32_t argc, char **argv)
>  			}
>  			f_present = 1;
>  			break;
> +		case 'j':
> +			{
> +			int32_t size = parse_decimal(optarg);
> +				if (size <= 0) {
> +					printf("Invalid jumbo frame size\n");

Since you are not exiting the app due to this invalid size,
and your defaulting to 9000 instead, I would add a notification
to the user that Frame size is defaulting to 9000. 
> +					frame_size = 9000;
> +				} else {
> +					frame_size = size;
> +				}

Should it check for a minimum (1518?) or a maximum size?

> +			}
> +			printf("Enabled jumbo frames size %d\n",
> frame_size);

Use %u instead of %d, as it is an unsigned int variable.

>  		case 0:
>  			if (parse_args_long_options(lgopts, option_index)) {
>  				print_usage(prgname);



More information about the dev mailing list