[dpdk-dev] [PATCH v2] examples/ip_pipeline: Support quitting CLI connection

Dumitrescu, Cristian cristian.dumitrescu at intel.com
Wed May 9 15:30:07 CEST 2018



> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Liu Hongbo
> Sent: Wednesday, May 9, 2018 1:10 PM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH v2] examples/ip_pipeline: Support quitting CLI
> connection
> 
> When detecting input "quit", ip_pipeline should close connection fd.
> It is convenient when using command "telnet 0 8086".
> 
> Signed-off-by: Liu Hongbo <cnliuhb at gmail.com>
> ---
>  examples/ip_pipeline/conn.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/examples/ip_pipeline/conn.c b/examples/ip_pipeline/conn.c
> index 9338942..44d7ff8 100644
> --- a/examples/ip_pipeline/conn.c
> +++ b/examples/ip_pipeline/conn.c
> @@ -222,6 +222,8 @@ data_event_handle(struct conn *conn,
>  	}
>  	if (len == 0)
>  		return 0;
> +	if (!strncmp(conn->buf, "quit", strlen("quit")))
> +		return -2;
> 
>  	/* Handle input messages */
>  	for (i = 0; i < len; i++) {
> @@ -316,7 +318,7 @@ conn_poll_for_msg(struct conn *conn)
>  		status_data = data_event_handle(conn, fd_client);
> 
>  	/* Control events */
> -	if (event.events & (EPOLLRDHUP | EPOLLERR | EPOLLHUP))
> +	if (status_data == -2 || event.events & (EPOLLRDHUP | EPOLLERR |
> EPOLLHUP))
>  		status_control = control_event_handle(conn, fd_client);
> 
>  	if (status_data || status_control)
> --
> 2.7.4

Hi Liu,

Thanks for suggesting this, but the quit command is not necessary in the latest IP Pipeline app.

The app is a server waiting for commands from external clients, which can be any decent TCP client such as telnet, netcat, Perl/Python script, etc. The client can be terminated at any time, but the server continues to live on and listen for more client connections. For example, you can kill the telnet client and then later on start another telnet session to the same app. It does not make sense for the client to be able to kill the server.

Regards,
Cristian


More information about the dev mailing list