Hello, On Sun, 15 Oct 2017, KUWAZAWA Takuya wrote: > Information about ipvs in different network namespace can be seen via procfs. > > How to reproduce: > > # ip netns add ns01 > # ip netns add ns02 > # ip netns exec ns01 ip a add dev lo 127.0.0.1/8 > # ip netns exec ns02 ip a add dev lo 127.0.0.1/8 > # ip netns exec ns01 ipvsadm -A -t 10.1.1.1:80 > # ip netns exec ns02 ipvsadm -A -t 10.1.1.2:80 > > The ipvsadm displays information about its own network namespace only. > > # ip netns exec ns01 ipvsadm -Ln > IP Virtual Server version 1.2.1 (size=4096) > Prot LocalAddress:Port Scheduler Flags > -> RemoteAddress:Port Forward Weight ActiveConn InActConn > TCP 10.1.1.1:80 wlc > > # ip netns exec ns02 ipvsadm -Ln > IP Virtual Server version 1.2.1 (size=4096) > Prot LocalAddress:Port Scheduler Flags > -> RemoteAddress:Port Forward Weight ActiveConn InActConn > TCP 10.1.1.2:80 wlc > > But I can see information about other network namespace via procfs. > > # ip netns exec ns01 cat /proc/net/ip_vs > IP Virtual Server version 1.2.1 (size=4096) > Prot LocalAddress:Port Scheduler Flags > -> RemoteAddress:Port Forward Weight ActiveConn InActConn > TCP 0A010101:0050 wlc > TCP 0A010102:0050 wlc > > # ip netns exec ns02 cat /proc/net/ip_vs > IP Virtual Server version 1.2.1 (size=4096) > Prot LocalAddress:Port Scheduler Flags > -> RemoteAddress:Port Forward Weight ActiveConn InActConn > TCP 0A010102:0050 wlc > > Signed-off-by: KUWAZAWA Takuya <albatross0@xxxxxxxxx> Looks good to me Acked-by: Julian Anastasov <ja@xxxxxx> Simon, please apply to ipvs tree. > --- > net/netfilter/ipvs/ip_vs_ctl.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c > index 4f940d7..b3245f9 100644 > --- a/net/netfilter/ipvs/ip_vs_ctl.c > +++ b/net/netfilter/ipvs/ip_vs_ctl.c > @@ -2034,12 +2034,16 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v) > seq_puts(seq, > " -> RemoteAddress:Port Forward Weight ActiveConn InActConn\n"); > } else { > + struct net *net = seq_file_net(seq); > + struct netns_ipvs *ipvs = net_ipvs(net); > const struct ip_vs_service *svc = v; > const struct ip_vs_iter *iter = seq->private; > const struct ip_vs_dest *dest; > struct ip_vs_scheduler *sched = rcu_dereference(svc->scheduler); > char *sched_name = sched ? sched->name : "none"; > > + if (svc->ipvs != ipvs) > + return 0; > if (iter->table == ip_vs_svc_table) { > #ifdef CONFIG_IP_VS_IPV6 > if (svc->af == AF_INET6) > -- > 1.8.3.1 Regards -- Julian Anastasov <ja@xxxxxx> -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html