Subject: Re: [PATCH 1/2] samples: pktgen: add some helper functions for port parsing

From: Jesper Dangaard Brouer <[email-masked]>
Date: Mon, 1 Jul 2019 16:51:11 +0200

On Sat, 29 Jun 2019 22:33:57 +0900
"Daniel T. Lee" <[email-masked]> wrote:

> This commit adds port parsing and port validate helper function to parse
> single or range of port(s) from a given string. (e.g. 1234, 443-444)
> 
> Helpers will be used in prior to set target port(s) in samples/pktgen.
> 
> Signed-off-by: Daniel T. Lee <[email-masked]>
> ---
>  samples/pktgen/functions.sh | 34 ++++++++++++++++++++++++++++++++++
>  1 file changed, 34 insertions(+)

Nice bash shellcode with use of array variables.

Acked-by: Jesper Dangaard Brouer <[email-masked]>

> diff --git a/samples/pktgen/functions.sh b/samples/pktgen/functions.sh
> index f8bb3cd0f4ce..4af4046d71be 100644
> --- a/samples/pktgen/functions.sh
> +++ b/samples/pktgen/functions.sh
> @@ -162,3 +162,37 @@ function get_node_cpus()
>  
>  	echo $node_cpu_list
>  }
> +
> +# Given a single or range of port(s), return minimum and maximum port number.
> +function parse_ports()
> +{
> +    local port_str=$1
> +    local port_list
> +    local min_port
> +    local max_port
> +
> +    IFS="-" read -ra port_list <<< $port_str
> +
> +    min_port=${port_list[0]}
> +    max_port=${port_list[1]:-$min_port}
> +
> +    echo $min_port $max_port
> +}
> +
> +# Given a minimum and maximum port, verify port number.
> +function validate_ports()
> +{
> +    local min_port=$1
> +    local max_port=$2
> +
> +    # 0 < port < 65536
> +    if [[ $min_port -gt 0 && $min_port -lt 65536 ]]; then
> +	if [[ $max_port -gt 0 && $max_port -lt 65536 ]]; then
> +	    if [[ $min_port -le $max_port ]]; then
> +		return 0
> +	    fi
> +	fi
> +    fi
> +
> +    err 5 "Invalid port(s): $min_port-$max_port"
> +}

-- 
Best regards,
  Jesper Dangaard Brouer
  MSc.CS, Principal Kernel Engineer at Red Hat
  LinkedIn: http://www.linkedin.com/in/brouer