Skip to content

User namespace changes to the networking stack.

Eric W. Biederman containers lkml netdev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest1 of 21 patches 6 repliesIn review

1 of 21 patches is in this archive. The cover letter announces 21.

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
10/21userns: Convert net/ax25 to use kuid_t where appropriateinclude/net/ax25.h init/Kconfig net/ax25/ax25_uid.c+16 -100 replies

Reviews trailers per patch

The patch has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchSerge HallynRémi Denis-CourmontPavel EmelyanovDavid S. MillerVlad YasevichJamal Hadi SalimVasiliy Kulikov
SeriesA-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b
10/21A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 7 reviewers.

Read the v1 thread

Cover letter [REVIEW][PATCH 0/21] User namespace changes to the networking stack.

This is a modest set of changes against the current networking stack to enable basic user namespace support. Allowing the code to compile with user namespaces enabled and removing the assumption that there is only the initial user namespace.

Work to relax the privilege checks in the networking stack from "capable(CAP_NET_ADMIN)" or "capable(CAP_NET_RAW)" to "ns_capable(net->user_ns, CAP_NET_ADMIN)" or "ns_capable(net->user_ns, CAP_NET_RAW)" allowing root in a user namespace to control a network namespace will come later.

David there are just enough interdependencies between the user namespace bits that I intend to merge them all through my user namespace tree. After the review is complete I will add these patches to my for-next branch of my user-namespace.git tree where I do not intend to rebase. If it make sense to pull these into net-next to avoid or reduce conflicts that should not be a problem.

A current snapshot of my development tree for people who are interested in seeing the entire picture is at:

git.kernel.org:/pub/scm/linux/kernel/git/ebiederm/user-namespace.git userns-always-map-user-v46

Eric W. Biederman (21):
userns: Convert net/core/scm.c to use kuids and kgids
userns: Convert __dev_set_promiscuity to use kuids in audit logs
userns: Convert sock_i_uid to return a kuid_t
userns: Allow USER_NS and NET simultaneously in Kconfig
userns: Make seq_file's user namespace accessible
userns: Print out socket uids in a user namespace aware fashion.
userns: Use kgids for sysctl_ping_group_range
net ip6 flowlabel: Make owner a union of struct pid * and kuid_t
pidns: Export free_pid_ns
userns: Convert net/ax25 to use kuid_t where appropriate
netlink: Make the sending netlink socket availabe in NETLINK_CB
userns: Implement sk_user_ns
userns: Teach inet_diag to work with user namespaces
userns: nfnetlink_log: Report socket uids in the log sockets user namespace net sched: Pass the skb into change so it can access NETLINK_CB
userns: Convert cls_flow to work with user namespaces enabled
userns: Convert xt_LOG to print socket kuids and kgids as uids and gids userns xt_recent: Specify the owner/group of ip_list_perms in the initial user namespace
userns: xt_owner: Add basic user namespace support.
userns: Make the airo wireless driver use kuids for proc uids and gids
userns: Convert tun/tap to use kuid and kgid where appropriate

 drivers/net/tun.c             |   46 ++++++++++++++++++++++++++-----------
 drivers/net/wireless/airo.c   |   48 +++++++++++++++++++++++----------------
 fs/seq_file.c                 |    4 +++
 include/linux/inet_diag.h     |    1 +
 include/linux/netlink.h       |    1 +
 include/linux/seq_file.h      |   14 +++++++++++
 include/net/ax25.h            |    4 +-
 include/net/ipv6.h            |    5 +++-
 include/net/netns/ipv4.h      |    3 +-
 include/net/sch_generic.h     |    3 +-
 include/net/sock.h            |   11 ++++++++-
 include/net/tcp.h             |    3 +-
 init/Kconfig                  |   18 --------------
 kernel/pid.c                  |    1 +
 kernel/pid_namespace.c        |    2 +
 net/appletalk/atalk_proc.c    |    3 +-
 net/ax25/ax25_uid.c           |   21 +++++++++++-----
 net/core/dev.c                |    7 +++--
 net/core/scm.c                |   31 ++++++++++++++++++------
 net/core/sock.c               |   10 ++++----
 net/ipv4/inet_diag.c          |   21 ++++++++++++-----
 net/ipv4/ping.c               |   22 +++++++----------
 net/ipv4/raw.c                |    4 ++-
 net/ipv4/sysctl_net_ipv4.c    |   42 ++++++++++++++++++++++------------
 net/ipv4/tcp_ipv4.c           |    6 ++--
 net/ipv4/udp.c                |    4 ++-
 net/ipv4/udp_diag.c           |    5 +++-
 net/ipv6/ip6_flowlabel.c      |   50 +++++++++++++++++++++++++++++++++++-----
 net/ipv6/raw.c                |    3 +-
 net/ipv6/tcp_ipv6.c           |    6 ++--
 net/ipv6/udp.c                |    3 +-
 net/ipx/ipx_proc.c            |    3 +-
 net/key/af_key.c              |    2 +-
 net/llc/llc_proc.c            |    2 +-
 net/netfilter/nfnetlink_log.c |   14 ++++++++---
 net/netfilter/xt_LOG.c        |   16 ++++++++-----
 net/netfilter/xt_owner.c      |   30 +++++++++++++++++++-----
 net/netfilter/xt_recent.c     |   13 +++++++++-
 net/netlink/af_netlink.c      |    6 +++-
 net/packet/af_packet.c        |    2 +-
 net/phonet/socket.c           |    6 +++-
 net/sched/cls_api.c           |    2 +-
 net/sched/cls_basic.c         |    3 +-
 net/sched/cls_cgroup.c        |    3 +-
 net/sched/cls_flow.c          |   19 +++++++++++----
 net/sched/cls_fw.c            |    3 +-
 net/sched/cls_route.c         |    3 +-
 net/sched/cls_rsvp.h          |    3 +-
 net/sched/cls_tcindex.c       |    3 +-
 net/sched/cls_u32.c           |    3 +-
 net/sctp/proc.c               |    6 +++-
 51 files changed, 368 insertions(+), 176 deletions(-)

Eric