[PATCH v2] net/memif: change socket listener owner uid/gid
Ferruh Yigit
ferruh.yigit at amd.com
Thu Dec 8 15:29:37 CET 2022
On 12/7/2022 5:48 PM, Junxiao Shi wrote:
> Hi Ferruh
>
>> On 12/7/2022 2:41 PM, Junxiao Shi wrote:
>> > This allows a DPDK application running with root privilege to create a
>> > memif socket listener with non-root owner uid and gid, which can be
>> > connected from client applications running without root privilege.
>> >
>>
>> Do you have an easy way to test unprivileged memif client?
>
> This has been tested with NDN-DPDK software.
> https://github.com/usnistgov/ndn-dpdk
> <https://github.com/usnistgov/ndn-dpdk> revision
> 311de078aa4dc3ea28db5f8858e70a1bef7b9ccd
>
Thanks for the info.
Do you want this project to be included in DPDK web page [1], if so you
can request this in web mail list (web at dpdk.org).
[1]
https://www.dpdk.org/ecosystem/#projects
> The systemd service is running as root and it uses DPDK with the
> owner-uid and owner-gid args.
> The ndndpdk-godemo command is running as unprivileged process.
> Directory /run/ndn still needs to be created by root.
>
> These commands can perform a full test:
>
> git clone https://github.com/usnistgov/ndn-dpdk.git
> <https://github.com/usnistgov/ndn-dpdk.git>
> cd ndn-dpdk
> ./docs/ndndpdk-depends.sh --dpdk-patch=26031
> corepack pnpm install
> make
> sudo make install
> sudo dpdk-hugepages.py --setup 8G
> sudo ndndpdk-ctrl systemd start
> jq -n {} | ndndpdk-ctrl activate-forwarder
> sudo mkdir -p /run/ndn
> ndndpdk-godemo pingserver --name /A
> ndndpdk-godemo pingclient --name /A
>
> You can see packets flowing through.
> Run `ls -l /run/ndn` and check the uid:gid of socket files too.
>
It is good to record these steps, but for now I will rely on your
testing :), thanks.
>
>>
>> > Signed-off-by: Junxiao Shi <git at mail1.yoursunny.com
> <mailto:git at mail1.yoursunny.com>>
>>
>> <...>
>>
>> > @@ -1827,47 +1859,58 @@ rte_pmd_memif_probe(struct rte_vdev_device
> *vdev)
>> > flags |= ETH_MEMIF_FLAG_SOCKET_ABSTRACT;
>> >
>> > kvlist = rte_kvargs_parse(rte_vdev_device_args(vdev),
> valid_arguments);
>> > + if (kvlist == NULL) {
>> > + MIF_LOG(ERR, "Invalid kvargs key");
>> > + ret = -EINVAL;
>> > + goto exit;
>> > + }
>>
>> Thanks Junxiao for updating this, but since it is not really related to
>> this patch, can you please separate it to another patch?
>
> These are reverted and will be submitted separately in the future.
ack
More information about the dev
mailing list