RE: [RFC PATCH 00/13] Ultra Ethernet driver introduction

Bernard Metzler
2025-03-25T13:22:32Z

> -----Original Message-----
> From: Sean Hefty <shefty@nvidia.com>
> Sent: Monday, March 24, 2025 10:28 PM
> To: Roland Dreier <roland@enfabrica.net>; Jason Gunthorpe <jgg@nvidia.com>
> Cc: Nikolay Aleksandrov <nikolay@enfabrica.net>; netdev@vger.kernel.org;
> shrijeet@enfabrica.net; alex.badea@keysight.com; eric.davis@broadcom.com;
> rip.sohan@amd.com; dsahern@kernel.org; Bernard Metzler
> <BMT@zurich.ibm.com>; winston.liu@keysight.com;
> dan.mihailescu@keysight.com; Kamal Heib <kheib@redhat.com>;
> parth.v.parikh@keysight.com; Dave Miller <davem@redhat.com>;
> ian.ziemba@hpe.com; andrew.tauferner@cornelisnetworks.com; welch@hpe.com;
> rakhahari.bhunia@keysight.com; kingshuk.mandal@keysight.com; linux-
> rdma@vger.kernel.org; kuba@kernel.org; Paolo Abeni <pabeni@redhat.com>
> Subject: [EXTERNAL] RE: [RFC PATCH 00/13] Ultra Ethernet driver
> introduction
>
> > I think the netlink API and job handling overall is the area where the
> most
> > discussion is probably required. UE is somewhat novel in elevating the
> concept
> > of a "job" to a standard object with specific properties that determine
> the
> > values in packet headers. But I'm open to making "job" a top-level RDMA
> > object... I guess the idea would be to define an interface for creating a
> new
> > type of "job FD" with a standard ABI for setting properties?
>
> I view a job as scoped by a network address, versus a system global object.
> So, I was looking at a per device scope, though I guess a per port (similar
> to a pkey) is also possible. My reasoning was that a device _may_ need to
> allocate some per job resource. Per device job objects could be configured
> to have the same 'job address', for an indirect association.
>

If I understand UEC's job semantics correctly, then the local scope
of a job may span multiple local ports from multiple local devices.
It would of course translate into device specific reservations.

> I considered using an fd to share a job object between processes; however,
> sharing was restricted per device.
>
> I believe a job may be associated with other security objects (e.g.
> encryption) which may also need per device allocations and state tracking.
>
> - Sean