Message ID | 20230321183342.617114-1-aleksandr.mikhalitsyn@canonical.com (mailing list archive) |
---|---|
Headers | show |
Series | Add SCM_PIDFD and SO_PEERPIDFD | expand |
On Tue, Mar 21, 2023 at 07:33:39PM +0100, Alexander Mikhalitsyn wrote: > 1. Implement SCM_PIDFD, a new type of CMSG type analogical to SCM_CREDENTIALS, > but it contains pidfd instead of plain pid, which allows programmers not > to care about PID reuse problem. > > 2. Add SO_PEERPIDFD which allows to get pidfd of peer socket holder pidfd. > This thing is direct analog of SO_PEERCRED which allows to get plain PID. > > 3. Add SCM_PIDFD / SO_PEERPIDFD kselftest > > Idea comes from UAPI kernel group: > https://uapi-group.org/kernel-features/ > > Big thanks to Christian Brauner and Lennart Poettering for productive > discussions about this. > > Cc: "David S. Miller" <davem@davemloft.net> > Cc: Eric Dumazet <edumazet@google.com> > Cc: Jakub Kicinski <kuba@kernel.org> > Cc: Paolo Abeni <pabeni@redhat.com> > Cc: Leon Romanovsky <leon@kernel.org> > Cc: David Ahern <dsahern@kernel.org> > Cc: Arnd Bergmann <arnd@arndb.de> > Cc: Kees Cook <keescook@chromium.org> > Cc: Christian Brauner <brauner@kernel.org> > Cc: Kuniyuki Iwashima <kuniyu@amazon.com> > Cc: Lennart Poettering <mzxreary@0pointer.de> > > Alexander Mikhalitsyn (3): > scm: add SO_PASSPIDFD and SCM_PIDFD > net: core: add getsockopt SO_PEERPIDFD > selftests: net: add SCM_PIDFD / SO_PEERPIDFD test > > arch/alpha/include/uapi/asm/socket.h | 3 + > arch/mips/include/uapi/asm/socket.h | 3 + > arch/parisc/include/uapi/asm/socket.h | 3 + > arch/sparc/include/uapi/asm/socket.h | 3 + > include/linux/net.h | 1 + > include/linux/socket.h | 1 + > include/net/scm.h | 14 +- > include/uapi/asm-generic/socket.h | 3 + > net/core/sock.c | 32 ++ > net/mptcp/sockopt.c | 1 + > net/unix/af_unix.c | 18 +- > tools/include/uapi/asm-generic/socket.h | 3 + > tools/testing/selftests/net/.gitignore | 1 + > tools/testing/selftests/net/af_unix/Makefile | 3 +- > .../testing/selftests/net/af_unix/scm_pidfd.c | 336 ++++++++++++++++++ > 15 files changed, 417 insertions(+), 8 deletions(-) > create mode 100644 tools/testing/selftests/net/af_unix/scm_pidfd.c What's the commit for this work? Because this seems to fail to apply cleanly on anything from v6.3-rc1 until v6.3-rc3.
On Wed, Mar 22, 2023 at 3:13 PM Christian Brauner <brauner@kernel.org> wrote: > > On Tue, Mar 21, 2023 at 07:33:39PM +0100, Alexander Mikhalitsyn wrote: > > 1. Implement SCM_PIDFD, a new type of CMSG type analogical to SCM_CREDENTIALS, > > but it contains pidfd instead of plain pid, which allows programmers not > > to care about PID reuse problem. > > > > 2. Add SO_PEERPIDFD which allows to get pidfd of peer socket holder pidfd. > > This thing is direct analog of SO_PEERCRED which allows to get plain PID. > > > > 3. Add SCM_PIDFD / SO_PEERPIDFD kselftest > > > > Idea comes from UAPI kernel group: > > https://uapi-group.org/kernel-features/ > > > > Big thanks to Christian Brauner and Lennart Poettering for productive > > discussions about this. > > > > Cc: "David S. Miller" <davem@davemloft.net> > > Cc: Eric Dumazet <edumazet@google.com> > > Cc: Jakub Kicinski <kuba@kernel.org> > > Cc: Paolo Abeni <pabeni@redhat.com> > > Cc: Leon Romanovsky <leon@kernel.org> > > Cc: David Ahern <dsahern@kernel.org> > > Cc: Arnd Bergmann <arnd@arndb.de> > > Cc: Kees Cook <keescook@chromium.org> > > Cc: Christian Brauner <brauner@kernel.org> > > Cc: Kuniyuki Iwashima <kuniyu@amazon.com> > > Cc: Lennart Poettering <mzxreary@0pointer.de> > > > > Alexander Mikhalitsyn (3): > > scm: add SO_PASSPIDFD and SCM_PIDFD > > net: core: add getsockopt SO_PEERPIDFD > > selftests: net: add SCM_PIDFD / SO_PEERPIDFD test > > > > arch/alpha/include/uapi/asm/socket.h | 3 + > > arch/mips/include/uapi/asm/socket.h | 3 + > > arch/parisc/include/uapi/asm/socket.h | 3 + > > arch/sparc/include/uapi/asm/socket.h | 3 + > > include/linux/net.h | 1 + > > include/linux/socket.h | 1 + > > include/net/scm.h | 14 +- > > include/uapi/asm-generic/socket.h | 3 + > > net/core/sock.c | 32 ++ > > net/mptcp/sockopt.c | 1 + > > net/unix/af_unix.c | 18 +- > > tools/include/uapi/asm-generic/socket.h | 3 + > > tools/testing/selftests/net/.gitignore | 1 + > > tools/testing/selftests/net/af_unix/Makefile | 3 +- > > .../testing/selftests/net/af_unix/scm_pidfd.c | 336 ++++++++++++++++++ > > 15 files changed, 417 insertions(+), 8 deletions(-) > > create mode 100644 tools/testing/selftests/net/af_unix/scm_pidfd.c > > What's the commit for this work? Because this seems to fail to apply > cleanly on anything from v6.3-rc1 until v6.3-rc3. It's based on net-next https://git.kernel.org/netdev/net-next/c/a02d83f9947d Kind regards, Alex >