Eric W. Biederman
426b5303eb
[NETNS]: Modify the neighbour table code so it handles multiple network namespaces
...
I'm actually surprised at how much was involved. At first glance it
appears that the neighbour table data structures are already split by
network device so all that should be needed is to modify the user
interface commands to filter the set of neighbours by the network
namespace of their devices.
However a couple things turned up while I was reading through the
code. The proxy neighbour table allows entries with no network
device, and the neighbour parms are per network device (except for the
defaults) so they now need a per network namespace default.
So I updated the two structures (which surprised me) with their very
own network namespace parameter. Updated the relevant lookup and
destroy routines with a network namespace parameter and modified the
code that interacts with users to filter out neighbour table entries
for devices of other namespaces.
I'm a little concerned that we can modify and display the global table
configuration and from all network namespaces. But this appears good
enough for now.
I keep thinking modifying the neighbour table to have per network
namespace instances of each table type would should be cleaner. The
hash table is already dynamically sized so there are it is not a
limiter. The default parameter would be straight forward to take care
of. However when I look at the how the network table is built and
used I still find some assumptions that there is only a single
neighbour table for each type of table in the kernel. The netlink
operations, neigh_seq_start, the non-core network users that call
neigh_lookup. So while it might be doable it would require more
refactoring than my current approach of just doing a little extra
filtering in the code.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-01-28 15:00:03 -08:00
..
9p
Use helpers to obtain task pid in printks
2007-10-19 11:53:43 -07:00
bluetooth
[NET]: Remove FASTCALL macro
2008-01-28 14:57:23 -08:00
irda
[NET] include/net/: Spelling fixes
2007-12-20 13:56:32 -08:00
iucv
[AF_IUCV]: postpone receival of iucv-packets
2007-10-10 16:54:51 -07:00
netfilter
[NETFILTER]: Introduce nf_inet_address
2008-01-28 14:59:07 -08:00
netns
[IPV4]: Move the devinet pointers on the struct net
2008-01-28 14:58:11 -08:00
sctp
[SCTP]: Implement ADD-IP special case processing for ABORT chunk
2008-01-28 14:59:24 -08:00
tc_act
[PKT_SCHED]: Add stateless NAT
2007-10-10 16:53:11 -07:00
tipc
act_api.h
addrconf.h
[IPV4] include/net: Use ipv4_is_<type>
2008-01-28 14:58:14 -08:00
af_rxrpc.h
af_unix.h
[AF_UNIX]: Remove unused declaration of sysctl_unix_max_dgram_qlen.
2008-01-28 14:57:13 -08:00
ah.h
[IPSEC]: Get rid of ipv6_{auth,esp,comp}_hdr
2007-10-10 16:55:55 -07:00
arp.h
[IPV4]: Pass the net pointer to the arp_req_set_proxy()
2008-01-28 14:58:09 -08:00
atmclip.h
ax25.h
[NET] include/net/: Spelling fixes
2007-12-20 13:56:32 -08:00
ax88796.h
ax88796: add 93cx6 eeprom support
2007-10-10 16:53:56 -07:00
cfg80211.h
cfg80211/nl80211: implement station attribute retrieval
2008-01-28 14:59:52 -08:00
checksum.h
[NET]: Move netfilter checksum helpers to net/core/utils.c
2008-01-28 14:55:14 -08:00
cipso_ipv4.h
compat.h
datalink.h
dn.h
dn_dev.h
dn_fib.h
dn_neigh.h
dn_nsp.h
dn_route.h
[NET]: Wrap netdevice hardware header creation.
2007-10-10 16:52:50 -07:00
dsfield.h
[NET]: Constify include/net/dsfield.h
2008-01-28 14:55:58 -08:00
dst.h
[IPSEC]: Add ICMP host relookup support
2008-01-28 14:57:23 -08:00
esp.h
cleanup asm/scatterlist.h includes
2007-11-02 08:47:06 +01:00
fib_rules.h
[IPV6]: Make fib6_rules_init to return an error code.
2008-01-28 14:56:46 -08:00
flow.h
gen_stats.h
genetlink.h
icmp.h
[IPV4]: Add ICMPMsgStats MIB (RFC 4293)
2007-10-10 16:51:28 -07:00
ieee80211.h
ieee80211: Stop net_ratelimit/IEEE80211_DEBUG_DROP log pollution
2007-11-20 16:43:17 -05:00
ieee80211_crypt.h
ieee80211_radiotap.h
[MAC80211]: Add get_unaligned to ieee80211_get_radiotap_len
2007-10-10 16:47:40 -07:00
ieee80211softmac.h
[IEEE80211]: Fix softmac lockdep reports.
2007-10-10 16:52:22 -07:00
ieee80211softmac_wx.h
if_inet6.h
IPoIB: improve IPv4/IPv6 to IB mcast mapping functions
2008-01-25 14:15:37 -08:00
inet6_connection_sock.h
inet6_hashtables.h
inet_common.h
[INET]: Remove leftover prototypes from include/net/inet_common.h
2007-11-12 21:02:51 -08:00
inet_connection_sock.h
inet_ecn.h
[INET]: Give outer DSCP directly to ip*_copy_dscp
2008-01-28 14:53:45 -08:00
inet_frag.h
[INET]: Remove no longer needed ->equal callback
2007-10-17 19:47:56 -07:00
inet_hashtables.h
[INET]: Uninline the __inet_lookup_established function.
2008-01-28 14:59:27 -08:00
inet_sock.h
[UDP]: Make use of inet_iif() when doing socket lookups.
2007-10-25 18:54:46 -07:00
inet_timewait_sock.h
[INET]: Uninline the inet_twsk_put function.
2008-01-28 14:59:28 -08:00
inetpeer.h
[INET]: Use list_head-s in inetpeer.c
2007-11-12 21:27:28 -08:00
ip.h
[NET]: Remove unused "mibalign" argument for snmp_mib_init().
2008-01-28 14:57:02 -08:00
ip6_checksum.h
ip6_fib.h
[XFRM] IPv6: Fix dst/routing check at transformation.
2008-01-28 14:59:36 -08:00
ip6_route.h
[IPV6]: Make ip6_route_init to return an error code.
2008-01-28 14:56:47 -08:00
ip6_tunnel.h
[NET] include/net/: Spelling fixes
2007-12-20 13:56:32 -08:00
ip_fib.h
[IPV4]: last default route is a fib table property
2008-01-28 14:57:01 -08:00
ip_vs.h
[IPVS]: Move remaining sysctl handlers over to CTL_UNNUMBERED
2007-11-19 21:51:13 -08:00
ipcomp.h
[IPSEC]: Get rid of ipv6_{auth,esp,comp}_hdr
2007-10-10 16:55:55 -07:00
ipconfig.h
ipip.h
[IPV4]: Add ip_local_out
2008-01-28 14:53:47 -08:00
ipv6.h
[IPV6]: make the protocol initialization to return an error code
2008-01-28 14:57:13 -08:00
ipx.h
iw_handler.h
[NL80211]: add netlink interface to cfg80211
2007-10-10 16:52:14 -07:00
lapb.h
llc.h
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
[NET]: Make socket creation namespace safe.
2007-10-10 16:49:07 -07:00
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
mac80211.h
mac80211: support getting key sequence counters via cfg80211
2008-01-28 14:59:50 -08:00
mip6.h
ndisc.h
[IPv6]: Export userland ND options through netlink (RDNSS support)
2007-10-10 21:22:05 -07:00
neighbour.h
[NETNS]: Modify the neighbour table code so it handles multiple network namespaces
2008-01-28 15:00:03 -08:00
net_namespace.h
[NETNS]: Add the netns_ipv4 struct
2008-01-28 14:58:08 -08:00
netdma.h
netevent.h
[NET]: Remove unnecessary inclusion of dst.h
2008-01-28 14:53:38 -08:00
netlabel.h
SELinux: restore proper NetLabel caching behavior
2007-08-02 11:52:21 -04:00
netlink.h
[NETLINK]: Add NLA_PUT_BE16/nla_get_be16()
2008-01-28 14:58:53 -08:00
netrom.h
nexthop.h
p8022.h
pkt_cls.h
[NET]: netns compilation speedup
2008-01-28 14:55:51 -08:00
pkt_sched.h
[NET]: Move hardware header operations out of netdevice.
2007-10-10 16:52:52 -07:00
protocol.h
[IPV6]: make inet6_register_protosw to return an error code
2008-01-28 14:57:12 -08:00
psnap.h
raw.h
[RAW]: Consolidate proc interface.
2008-01-28 14:54:32 -08:00
rawv6.h
[IPv6] RAW: Compact the API for the kernel
2008-01-28 14:54:29 -08:00
red.h
request_sock.h
[INET]: Fix potential kfree on vmalloc-ed area of request_sock_queue
2007-11-15 02:57:06 -08:00
rose.h
[ROSE]: Fix rose.ko oops on unload
2007-10-07 23:44:17 -07:00
route.h
[IPV4]: Add inet_dev_addr_type()
2008-01-28 14:55:56 -08:00
rtnetlink.h
[NET]: Make the device list and device lookups per namespace.
2007-10-10 16:49:10 -07:00
sch_generic.h
[NET]: Move Qdisc_class_ops and Qdisc_ops in appropriate sections.
2008-01-28 14:53:58 -08:00
scm.h
pid namespaces: changes to show virtual ids to user
2007-10-19 11:53:40 -07:00
slhc_vj.h
snmp.h
[XFRM]: Define packet dropping statistics.
2008-01-28 14:59:38 -08:00
sock.h
[SOCK] Avoid integer divides where not necessary in include/net/sock.h
2008-01-28 14:59:59 -08:00
syncppp.h
tcp.h
[TCP]: Convert several length variable to unsigned.
2008-01-28 14:59:56 -08:00
tcp_states.h
timewait_sock.h
transp_v6.h
[IPV6]: make the protocol initialization to return an error code
2008-01-28 14:57:13 -08:00
udp.h
[UDP]: Restore missing inDatagrams increments
2008-01-28 14:56:33 -08:00
udplite.h
[UDP]: Restore missing inDatagrams increments
2008-01-28 14:56:33 -08:00
wext.h
[NET]: Make the device list and device lookups per namespace.
2007-10-10 16:49:10 -07:00
wireless.h
x25.h
x25device.h
xfrm.h
[XFRM]: RFC4303 compliant auditing
2008-01-28 15:00:01 -08:00