All of lore.kernel.org
 help / color / mirror / Atom feed
* [dpdk-dev] DPDK Telemetry library enhancement
@ 2021-05-05  7:49 Harman Kalra
  2021-05-05  8:43 ` Thomas Monjalon
  2021-05-05  8:57 ` David Marchand
  0 siblings, 2 replies; 9+ messages in thread
From: Harman Kalra @ 2021-05-05  7:49 UTC (permalink / raw)
  To: bruce.richardson, kevin.laatz, David Marchand, thomas, stephen; +Cc: dev

Hi All,

We have a use case where we need to gather statistics over network. Current implementation of telemetry library is based on Unix socket, we would like to enhance the scope of library to use network sockets. We understand security challenges with network sockets, to overcome them can we can think of two steps:
1. By default library will be using Unix sockets, it will be user decision to run library with network sockets by passing respective eal flags.
2. We can introduce some key/password authentication mechanism to the library, where only authorized clients can get connected to the server. Password can be passed by the user as eal flags, something similar to vf token which is uuid based.
Kindly provide us suggestions/challenges over this enhancements.

One more query, can we register driver specific telemetry commands to collect driver stats? Is this upstream able?

Thanks
Harman

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] DPDK Telemetry library enhancement
  2021-05-05  7:49 [dpdk-dev] DPDK Telemetry library enhancement Harman Kalra
@ 2021-05-05  8:43 ` Thomas Monjalon
  2021-05-05  9:37   ` Jerin Jacob
  2021-05-05  8:57 ` David Marchand
  1 sibling, 1 reply; 9+ messages in thread
From: Thomas Monjalon @ 2021-05-05  8:43 UTC (permalink / raw)
  To: Harman Kalra
  Cc: bruce.richardson, kevin.laatz, David Marchand, stephen, dev,
	bluca, jerinj

05/05/2021 09:49, Harman Kalra:
> Hi All,
> 
> We have a use case where we need to gather statistics over network. Current implementation of telemetry library is based on Unix socket, we would like to enhance the scope of library to use network sockets. We understand security challenges with network sockets, to overcome them can we can think of two steps:
> 1. By default library will be using Unix sockets, it will be user decision to run library with network sockets by passing respective eal flags.
> 2. We can introduce some key/password authentication mechanism to the library, where only authorized clients can get connected to the server. Password can be passed by the user as eal flags, something similar to vf token which is uuid based.
> Kindly provide us suggestions/challenges over this enhancements.

Not sure it should be part of the telemetry lib.
In any case, when implementing network communication,
I encourage you to look at ZeroMQ.

It reminds me this discussion for IF proxy:
http://inbox.dpdk.org/dev/2580933.jp2sp48Hzj@xps/

> 
> One more query, can we register driver specific telemetry commands to collect driver stats? Is this upstream able?




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] DPDK Telemetry library enhancement
  2021-05-05  7:49 [dpdk-dev] DPDK Telemetry library enhancement Harman Kalra
  2021-05-05  8:43 ` Thomas Monjalon
@ 2021-05-05  8:57 ` David Marchand
  2021-05-05 10:05   ` Bruce Richardson
  2021-05-05 10:06   ` [dpdk-dev] [EXT] " Harman Kalra
  1 sibling, 2 replies; 9+ messages in thread
From: David Marchand @ 2021-05-05  8:57 UTC (permalink / raw)
  To: Harman Kalra
  Cc: bruce.richardson, kevin.laatz, thomas, stephen, dev,
	Luca Boccassi, Jerin Jacob Kollanukkaran

On Wed, May 5, 2021 at 9:49 AM Harman Kalra <hkalra@marvell.com> wrote:
> We have a use case where we need to gather statistics over network. Current implementation of telemetry library is based on Unix socket, we would like to enhance the scope of library to use network sockets. We understand security challenges with network sockets, to overcome them can we can think of two steps:
> 1. By default library will be using Unix sockets, it will be user decision to run library with network sockets by passing respective eal flags.
> 2. We can introduce some key/password authentication mechanism to the library, where only authorized clients can get connected to the server. Password can be passed by the user as eal flags, something similar to vf token which is uuid based.
> Kindly provide us suggestions/challenges over this enhancements.

Rather than implement a new protocol, and code a new client, would
collectd fulfill your need?

Info currently retrieved by the telemetry collecd plugin is hardwired.
Maybe some configuration could be added to this plugin for your new stats.


>
> One more query, can we register driver specific telemetry commands to collect driver stats? Is this upstream able?

I don't remember a limitation/guideline on this subject.
Any command can be registered, this is up to the telemetry client to invoke it.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] DPDK Telemetry library enhancement
  2021-05-05  8:43 ` Thomas Monjalon
@ 2021-05-05  9:37   ` Jerin Jacob
  2021-05-05 10:01     ` Bruce Richardson
  0 siblings, 1 reply; 9+ messages in thread
From: Jerin Jacob @ 2021-05-05  9:37 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Harman Kalra, bruce.richardson, kevin.laatz, David Marchand,
	stephen, dev, Luca Boccassi, Jerin Jacob

On Wed, May 5, 2021 at 2:13 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 05/05/2021 09:49, Harman Kalra:
> > Hi All,
> >
> > We have a use case where we need to gather statistics over network. Current implementation of telemetry library is based on Unix socket, we would like to enhance the scope of library to use network sockets. We understand security challenges with network sockets, to overcome them can we can think of two steps:
> > 1. By default library will be using Unix sockets, it will be user decision to run library with network sockets by passing respective eal flags.
> > 2. We can introduce some key/password authentication mechanism to the library, where only authorized clients can get connected to the server. Password can be passed by the user as eal flags, something similar to vf token which is uuid based.
> > Kindly provide us suggestions/challenges over this enhancements.
>
> Not sure it should be part of the telemetry lib.
> In any case, when implementing network communication,
> I encourage you to look at ZeroMQ.

ZeroMQ is a good option for Transport to hide the underlying transport
variants like In-process, Intra-process, TCP.
Also, it has various different options for security backend like
http://curvezmq.org/

if we pick ZeroMQ for transport then it will translate to

1) Remove unix file socket from telemetry
2) Use ZeroMQ for local and remote messaging
3) Needs to make telemetry or dpdk depends on ZeroMQ library(Since
telemetry is experimental, I hope, we can change this)

Thoughts from others including telemetry maintainers


>
> It reminds me this discussion for IF proxy:
> http://inbox.dpdk.org/dev/2580933.jp2sp48Hzj@xps/
>
> >
> > One more query, can we register driver specific telemetry commands to collect driver stats? Is this upstream able?
>
>
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] DPDK Telemetry library enhancement
  2021-05-05  9:37   ` Jerin Jacob
@ 2021-05-05 10:01     ` Bruce Richardson
  2021-05-05 10:14       ` Jerin Jacob
  0 siblings, 1 reply; 9+ messages in thread
From: Bruce Richardson @ 2021-05-05 10:01 UTC (permalink / raw)
  To: Jerin Jacob
  Cc: Thomas Monjalon, Harman Kalra, kevin.laatz, David Marchand,
	stephen, dev, Luca Boccassi, Jerin Jacob

On Wed, May 05, 2021 at 03:07:02PM +0530, Jerin Jacob wrote:
> On Wed, May 5, 2021 at 2:13 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> >
> > 05/05/2021 09:49, Harman Kalra:
> > > Hi All,
> > >
> > > We have a use case where we need to gather statistics over network. Current implementation of telemetry library is based on Unix socket, we would like to enhance the scope of library to use network sockets. We understand security challenges with network sockets, to overcome them can we can think of two steps:
> > > 1. By default library will be using Unix sockets, it will be user decision to run library with network sockets by passing respective eal flags.
> > > 2. We can introduce some key/password authentication mechanism to the library, where only authorized clients can get connected to the server. Password can be passed by the user as eal flags, something similar to vf token which is uuid based.
> > > Kindly provide us suggestions/challenges over this enhancements.
> >
> > Not sure it should be part of the telemetry lib.
> > In any case, when implementing network communication,
> > I encourage you to look at ZeroMQ.
> 
> ZeroMQ is a good option for Transport to hide the underlying transport
> variants like In-process, Intra-process, TCP.
> Also, it has various different options for security backend like
> http://curvezmq.org/
> 

Sounds reasonable - I'm in favour of any scheme that means that we don't
need to implement out own authentication or security mechanisms for this.

> if we pick ZeroMQ for transport then it will translate to
> 
> 1) Remove unix file socket from telemetry
> 2) Use ZeroMQ for local and remote messaging
> 3) Needs to make telemetry or dpdk depends on ZeroMQ library(Since
> telemetry is experimental, I hope, we can change this)
> 
> Thoughts from others including telemetry maintainers
> 
I'd like to keep the existing Unix socket around, as well as any extra
zeromq interface, rather than replacing one with the other. Then rather
than introducing a hard dependency on zeromq, it can be an optional one,
where support is compiled in if available. There may be monitoring
applications such as collectd, which run their own local monitoring process
and for which the local unix interface may be as good.

/Bruce

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] DPDK Telemetry library enhancement
  2021-05-05  8:57 ` David Marchand
@ 2021-05-05 10:05   ` Bruce Richardson
  2021-05-05 10:06   ` [dpdk-dev] [EXT] " Harman Kalra
  1 sibling, 0 replies; 9+ messages in thread
From: Bruce Richardson @ 2021-05-05 10:05 UTC (permalink / raw)
  To: David Marchand
  Cc: Harman Kalra, kevin.laatz, thomas, stephen, dev, Luca Boccassi,
	Jerin Jacob Kollanukkaran

On Wed, May 05, 2021 at 10:57:37AM +0200, David Marchand wrote:
> On Wed, May 5, 2021 at 9:49 AM Harman Kalra <hkalra@marvell.com> wrote:
> > We have a use case where we need to gather statistics over network. Current implementation of telemetry library is based on Unix socket, we would like to enhance the scope of library to use network sockets. We understand security challenges with network sockets, to overcome them can we can think of two steps:
> > 1. By default library will be using Unix sockets, it will be user decision to run library with network sockets by passing respective eal flags.
> > 2. We can introduce some key/password authentication mechanism to the library, where only authorized clients can get connected to the server. Password can be passed by the user as eal flags, something similar to vf token which is uuid based.
> > Kindly provide us suggestions/challenges over this enhancements.
> 
> Rather than implement a new protocol, and code a new client, would
> collectd fulfill your need?
> 
> Info currently retrieved by the telemetry collecd plugin is hardwired.
> Maybe some configuration could be added to this plugin for your new stats.
> 
> 
> >
> > One more query, can we register driver specific telemetry commands to collect driver stats? Is this upstream able?
> 
> I don't remember a limitation/guideline on this subject.
> Any command can be registered, this is up to the telemetry client to invoke it.
> 
+1

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [EXT] Re: DPDK Telemetry library enhancement
  2021-05-05  8:57 ` David Marchand
  2021-05-05 10:05   ` Bruce Richardson
@ 2021-05-05 10:06   ` Harman Kalra
  2021-05-05 11:26     ` David Marchand
  1 sibling, 1 reply; 9+ messages in thread
From: Harman Kalra @ 2021-05-05 10:06 UTC (permalink / raw)
  To: David Marchand
  Cc: bruce.richardson, kevin.laatz, thomas, stephen, dev,
	Luca Boccassi, Jerin Jacob Kollanukkaran



> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Wednesday, May 5, 2021 2:28 PM
> To: Harman Kalra <hkalra@marvell.com>
> Cc: bruce.richardson@intel.com; kevin.laatz@intel.com;
> thomas@monjalon.net; stephen@networkplumber.org; dev@dpdk.org; Luca
> Boccassi <bluca@debian.org>; Jerin Jacob Kollanukkaran <jerinj@marvell.com>
> Subject: [EXT] Re: DPDK Telemetry library enhancement
> 
> External Email
> 
> ----------------------------------------------------------------------
> On Wed, May 5, 2021 at 9:49 AM Harman Kalra <hkalra@marvell.com> wrote:
> > We have a use case where we need to gather statistics over network. Current
> implementation of telemetry library is based on Unix socket, we would like to
> enhance the scope of library to use network sockets. We understand security
> challenges with network sockets, to overcome them can we can think of two
> steps:
> > 1. By default library will be using Unix sockets, it will be user decision to run
> library with network sockets by passing respective eal flags.
> > 2. We can introduce some key/password authentication mechanism to the
> library, where only authorized clients can get connected to the server. Password
> can be passed by the user as eal flags, something similar to vf token which is
> uuid based.
> > Kindly provide us suggestions/challenges over this enhancements.
> 
> Rather than implement a new protocol, and code a new client, would collectd
> fulfill your need?
> 
> Info currently retrieved by the telemetry collecd plugin is hardwired.
> Maybe some configuration could be added to this plugin for your new stats.

Thanks David, but our requirement is to get statistics remotely over network. DPDK process and daemon may not be running on the same platform.

> 
> 
> >
> > One more query, can we register driver specific telemetry commands to
> collect driver stats? Is this upstream able?
> 
> I don't remember a limitation/guideline on this subject.
> Any command can be registered, this is up to the telemetry client to invoke it.

Sure, we will register new commands to our driver. 

Thanks
Harman

> 
> 
> --
> David Marchand


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] DPDK Telemetry library enhancement
  2021-05-05 10:01     ` Bruce Richardson
@ 2021-05-05 10:14       ` Jerin Jacob
  0 siblings, 0 replies; 9+ messages in thread
From: Jerin Jacob @ 2021-05-05 10:14 UTC (permalink / raw)
  To: Bruce Richardson
  Cc: Thomas Monjalon, Harman Kalra, kevin.laatz, David Marchand,
	stephen, dev, Luca Boccassi, Jerin Jacob

On Wed, May 5, 2021 at 3:31 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> On Wed, May 05, 2021 at 03:07:02PM +0530, Jerin Jacob wrote:
> > On Wed, May 5, 2021 at 2:13 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> > >
> > > 05/05/2021 09:49, Harman Kalra:
> > > > Hi All,
> > > >
> > > > We have a use case where we need to gather statistics over network. Current implementation of telemetry library is based on Unix socket, we would like to enhance the scope of library to use network sockets. We understand security challenges with network sockets, to overcome them can we can think of two steps:
> > > > 1. By default library will be using Unix sockets, it will be user decision to run library with network sockets by passing respective eal flags.
> > > > 2. We can introduce some key/password authentication mechanism to the library, where only authorized clients can get connected to the server. Password can be passed by the user as eal flags, something similar to vf token which is uuid based.
> > > > Kindly provide us suggestions/challenges over this enhancements.
> > >
> > > Not sure it should be part of the telemetry lib.
> > > In any case, when implementing network communication,
> > > I encourage you to look at ZeroMQ.
> >
> > ZeroMQ is a good option for Transport to hide the underlying transport
> > variants like In-process, Intra-process, TCP.
> > Also, it has various different options for security backend like
> > http://curvezmq.org/
> >
>
> Sounds reasonable - I'm in favour of any scheme that means that we don't
> need to implement out own authentication or security mechanisms for this.
>
> > if we pick ZeroMQ for transport then it will translate to
> >
> > 1) Remove unix file socket from telemetry
> > 2) Use ZeroMQ for local and remote messaging
> > 3) Needs to make telemetry or dpdk depends on ZeroMQ library(Since
> > telemetry is experimental, I hope, we can change this)
> >
> > Thoughts from others including telemetry maintainers
> >
> I'd like to keep the existing Unix socket around, as well as any extra
> zeromq interface, rather than replacing one with the other. Then rather

I think, the purpose of zeromq is to unify the different transport
mechanisms to avoid multiple code
path for different transport.IMHO, at some point in time it needs to unify.


> than introducing a hard dependency on zeromq, it can be an optional one,
> where support is compiled in if available. There may be monitoring
> applications such as collectd, which run their own local monitoring process
> and for which the local unix interface may be as good.

Collectd has zeromq plugin for transport[1]. So, I think, we can meet
that use case too with zeromq

[1]
https://collectd.org/wiki/index.php/Plugin:ZeroMQ


>
> /Bruce

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [EXT] Re: DPDK Telemetry library enhancement
  2021-05-05 10:06   ` [dpdk-dev] [EXT] " Harman Kalra
@ 2021-05-05 11:26     ` David Marchand
  0 siblings, 0 replies; 9+ messages in thread
From: David Marchand @ 2021-05-05 11:26 UTC (permalink / raw)
  To: Harman Kalra
  Cc: bruce.richardson, kevin.laatz, thomas, stephen, dev,
	Luca Boccassi, Jerin Jacob Kollanukkaran

On Wed, May 5, 2021 at 12:06 PM Harman Kalra <hkalra@marvell.com> wrote:
> > > We have a use case where we need to gather statistics over network. Current
> > implementation of telemetry library is based on Unix socket, we would like to
> > enhance the scope of library to use network sockets. We understand security
> > challenges with network sockets, to overcome them can we can think of two
> > steps:
> > > 1. By default library will be using Unix sockets, it will be user decision to run
> > library with network sockets by passing respective eal flags.
> > > 2. We can introduce some key/password authentication mechanism to the
> > library, where only authorized clients can get connected to the server. Password
> > can be passed by the user as eal flags, something similar to vf token which is
> > uuid based.
> > > Kindly provide us suggestions/challenges over this enhancements.
> >
> > Rather than implement a new protocol, and code a new client, would collectd
> > fulfill your need?
> >
> > Info currently retrieved by the telemetry collecd plugin is hardwired.
> > Maybe some configuration could be added to this plugin for your new stats.
>
> Thanks David, but our requirement is to get statistics remotely over network. DPDK process and daemon may not be running on the same platform.

collectd can act as a local agent for the system hosting the dpdk
process and forward the retrieved data to another "central" collectd,
using the "network"
https://collectd.org/wiki/index.php/Networking_introduction

With collectd plugins, it also opens the possibility to gather other
metrics (out of dpdk) from this system and/or publish in different
forms the collected data.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-05-05 11:26 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-05  7:49 [dpdk-dev] DPDK Telemetry library enhancement Harman Kalra
2021-05-05  8:43 ` Thomas Monjalon
2021-05-05  9:37   ` Jerin Jacob
2021-05-05 10:01     ` Bruce Richardson
2021-05-05 10:14       ` Jerin Jacob
2021-05-05  8:57 ` David Marchand
2021-05-05 10:05   ` Bruce Richardson
2021-05-05 10:06   ` [dpdk-dev] [EXT] " Harman Kalra
2021-05-05 11:26     ` David Marchand

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.