On Thu, May 21, 2026 at 04:21:59PM +0100, Bruce Richardson wrote:
> On Thu, May 21, 2026 at 07:37:16AM -0700, Stephen Hemminger wrote:
> > On Thu, 21 May 2026 14:40:47 +0200 Morten Brørup
> > <[email protected]> wrote:
> > 
> > > > From: fengchengwen [mailto:[email protected]] Sent: Thursday,
> > > > 21 May 2026 14.25
> > > > 
> > > > Thanks for the feedback.
> > > > 
> > > > I intend to keep the current dict format. This concise ID-name
> > > > mapping is quite helpful and easy to read especially when there are
> > > > massive ports, which is exactly the main purpose why I submitted
> > > > this patch.
> > > > 
> > > > In my opinion, adopting OData-style query would require
> > > > architecture- level refactoring of telemetry framework, which is
> > > > way too heavy for this simple requirement.  
> > > 
> > > Agree.  Refactoring the telemetry framework is different task, not
> > > related to this patch.
> > > 
> > > > For complex query demands, we can implement them by extending the
> > > > upper-layer Python telemetry script instead.
> > > > 
> > > > So I suggest we keep this simple form here.  
> > > 
> > > If it is generally acceptable for DPDK telemetry that a request for a
> > > list does not return a list type, but returns an object type with
> > > "index": "value" fields instead, then Series-acked-by: Morten Brørup
> > > <[email protected]>
> > 
> > It is necessary since port list may have holes due to hotplug or the
> > ownership API.  It would be good to have a more complete query function
> > that returns more about each ethdev.  I wouldn't worry about the size
> > of the response. This is JSON and it is meant to be read by scripts not
> > directly by humans.
> 
> That's where I think we have a difference - if the output is meant to be
> read by scripts, we should not need extra commands like this, since the
> information is already available via existing commands. The only
> compelling reason that I can see for adding a new command to return a set
> of ethdev names is for human interactive use.
> 
> Personally, I think the output should be just used by other scripts, but
> it does appear that this quick-and-dirty telemetry script is being used
> extensively for human interactive querying. Therefore, I'm working on
> extending the script to make it more useful for such cases. I'd prefer to
> add the extra smarts into the script rather than seeing a proliferation
> of endpoints providing the same data in different formats.
>
Here [1] is my proposed generalised solution, quickly prototyped with copilot,
composed of two parts: firstly, support for querying values across a range
of ports using a foreach command, and then secondly, support for aliases to
make the use of those foreach commands easier on the user. It's not
intended as a mergable set of patches as-is, but rather to demonstrate how
we might be able to come up with a more general solution (that keeps to the
DRY principle) entirely within the python script rather than extending the
C code.

/Bruce

[1] https://patches.dpdk.org/project/dpdk/list/?series=38197 

Reply via email to