kernel_optimize_test/include/net
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_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
dn.h
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_crypt.h
ieee80211_radiotap.h [MAC80211]: Add get_unaligned to ieee80211_get_radiotap_len 2007-10-10 16:47:40 -07:00
ieee80211.h ieee80211: Stop net_ratelimit/IEEE80211_DEBUG_DROP log pollution 2007-11-20 16:43:17 -05:00
ieee80211softmac_wx.h
ieee80211softmac.h [IEEE80211]: Fix softmac lockdep reports. 2007-10-10 16:52:22 -07:00
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
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
ip.h [NET]: Remove unused "mibalign" argument for snmp_mib_init(). 2008-01-28 14:57:02 -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_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
llc.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_states.h
tcp.h [TCP]: Convert several length variable to unsigned. 2008-01-28 14:59:56 -08:00
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