diff options
Diffstat (limited to 'libdde_linux26/contrib/include/net/netns')
27 files changed, 1280 insertions, 0 deletions
diff --git a/libdde_linux26/contrib/include/net/netns/.svn/all-wcprops b/libdde_linux26/contrib/include/net/netns/.svn/all-wcprops new file mode 100644 index 00000000..0eba3382 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/.svn/all-wcprops @@ -0,0 +1,77 @@ +K 25 +svn:wc:ra_dav:version-url +V 76 +/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/netns +END +dccp.h +K 25 +svn:wc:ra_dav:version-url +V 83 +/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/netns/dccp.h +END +generic.h +K 25 +svn:wc:ra_dav:version-url +V 86 +/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/netns/generic.h +END +xfrm.h +K 25 +svn:wc:ra_dav:version-url +V 83 +/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/netns/xfrm.h +END +x_tables.h +K 25 +svn:wc:ra_dav:version-url +V 87 +/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/netns/x_tables.h +END +conntrack.h +K 25 +svn:wc:ra_dav:version-url +V 88 +/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/netns/conntrack.h +END +ipv4.h +K 25 +svn:wc:ra_dav:version-url +V 83 +/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/netns/ipv4.h +END +hash.h +K 25 +svn:wc:ra_dav:version-url +V 83 +/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/netns/hash.h +END +unix.h +K 25 +svn:wc:ra_dav:version-url +V 83 +/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/netns/unix.h +END +ipv6.h +K 25 +svn:wc:ra_dav:version-url +V 83 +/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/netns/ipv6.h +END +mib.h +K 25 +svn:wc:ra_dav:version-url +V 82 +/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/netns/mib.h +END +packet.h +K 25 +svn:wc:ra_dav:version-url +V 85 +/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/netns/packet.h +END +core.h +K 25 +svn:wc:ra_dav:version-url +V 83 +/repos/tudos/!svn/ver/455/trunk/l4/pkg/dde/linux26/contrib/include/net/netns/core.h +END diff --git a/libdde_linux26/contrib/include/net/netns/.svn/entries b/libdde_linux26/contrib/include/net/netns/.svn/entries new file mode 100644 index 00000000..718149d3 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/.svn/entries @@ -0,0 +1,436 @@ +9 + +dir +465 +http://svn.tudos.org/repos/tudos/trunk/l4/pkg/dde/linux26/contrib/include/net/netns +http://svn.tudos.org/repos/tudos + + + +2009-05-20T14:32:55.606606Z +455 +l4check + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +a704ac0b-3a55-4d43-a2a9-7be6f07c34fb + +dccp.h +file + + + + +2009-11-15T17:14:53.000000Z +4b476457c1c8f7ec2fc2b27ef6c6215a +2009-05-20T14:32:55.606606Z +455 +l4check + + + + + + + + + + + + + + + + + + + + + +146 + +generic.h +file + + + + +2009-11-15T17:14:53.000000Z +34acc97ef6a65030492829e3ad76d692 +2009-05-20T14:32:55.606606Z +455 +l4check + + + + + + + + + + + + + + + + + + + + + +1201 + +xfrm.h +file + + + + +2009-11-15T17:14:53.000000Z +f40de35da22da3af59f5d7f31596eff3 +2009-05-20T14:32:55.606606Z +455 +l4check + + + + + + + + + + + + + + + + + + + + + +1411 + +x_tables.h +file + + + + +2009-11-15T17:14:53.000000Z +8f6b8e08b66b91470003e98abda479d3 +2009-05-20T14:32:55.606606Z +455 +l4check + + + + + + + + + + + + + + + + + + + + + +296 + +conntrack.h +file + + + + +2009-11-15T17:14:53.000000Z +59cfdef77b4bfb3856ac43ddd7968125 +2009-05-20T14:32:55.606606Z +455 +l4check + + + + + + + + + + + + + + + + + + + + + +701 + +ipv4.h +file + + + + +2009-11-15T17:14:53.000000Z +8ee4cfa591c4f5b7e2f73dbd798417fe +2009-05-20T14:32:55.606606Z +455 +l4check + + + + + + + + + + + + + + + + + + + + + +1344 + +hash.h +file + + + + +2009-11-15T17:14:53.000000Z +8ee8f1688369e4e8f0932d959f81e78d +2009-05-20T14:32:55.606606Z +455 +l4check + + + + + + + + + + + + + + + + + + + + + +336 + +unix.h +file + + + + +2009-11-15T17:14:53.000000Z +bfac798859f40b7d14893b19fbc22e12 +2009-05-20T14:32:55.606606Z +455 +l4check + + + + + + + + + + + + + + + + + + + + + +224 + +ipv6.h +file + + + + +2009-11-15T17:14:53.000000Z +e661127676b5f426661d1262171a5fee +2009-05-20T14:32:55.606606Z +455 +l4check + + + + + + + + + + + + + + + + + + + + + +1772 + +mib.h +file + + + + +2009-11-15T17:14:53.000000Z +f6b9d5bf053d1311d5dad4bc839a446a +2009-05-20T14:32:55.606606Z +455 +l4check + + + + + + + + + + + + + + + + + + + + + +961 + +packet.h +file + + + + +2009-11-15T17:14:53.000000Z +315c56277f4098d442ea993d85ada076 +2009-05-20T14:32:55.606606Z +455 +l4check + + + + + + + + + + + + + + + + + + + + + +252 + +core.h +file + + + + +2009-11-15T17:14:53.000000Z +4b7a1c653f60b8640ac60b8cc40dc9d3 +2009-05-20T14:32:55.606606Z +455 +l4check + + + + + + + + + + + + + + + + + + + + + +237 + diff --git a/libdde_linux26/contrib/include/net/netns/.svn/format b/libdde_linux26/contrib/include/net/netns/.svn/format new file mode 100644 index 00000000..ec635144 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/.svn/format @@ -0,0 +1 @@ +9 diff --git a/libdde_linux26/contrib/include/net/netns/.svn/text-base/conntrack.h.svn-base b/libdde_linux26/contrib/include/net/netns/.svn/text-base/conntrack.h.svn-base new file mode 100644 index 00000000..f4498a62 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/.svn/text-base/conntrack.h.svn-base @@ -0,0 +1,30 @@ +#ifndef __NETNS_CONNTRACK_H +#define __NETNS_CONNTRACK_H + +#include <linux/list.h> +#include <asm/atomic.h> + +struct ctl_table_header; +struct nf_conntrack_ecache; + +struct netns_ct { + atomic_t count; + unsigned int expect_count; + struct hlist_head *hash; + struct hlist_head *expect_hash; + struct hlist_head unconfirmed; + struct ip_conntrack_stat *stat; +#ifdef CONFIG_NF_CONNTRACK_EVENTS + struct nf_conntrack_ecache *ecache; +#endif + int sysctl_acct; + int sysctl_checksum; + unsigned int sysctl_log_invalid; /* Log invalid packets */ +#ifdef CONFIG_SYSCTL + struct ctl_table_header *sysctl_header; + struct ctl_table_header *acct_sysctl_header; +#endif + int hash_vmalloc; + int expect_vmalloc; +}; +#endif diff --git a/libdde_linux26/contrib/include/net/netns/.svn/text-base/core.h.svn-base b/libdde_linux26/contrib/include/net/netns/.svn/text-base/core.h.svn-base new file mode 100644 index 00000000..24d4be76 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/.svn/text-base/core.h.svn-base @@ -0,0 +1,16 @@ +#ifndef __NETNS_CORE_H__ +#define __NETNS_CORE_H__ + +struct ctl_table_header; +struct prot_inuse; + +struct netns_core { + /* core sysctls */ + struct ctl_table_header *sysctl_hdr; + + int sysctl_somaxconn; + + struct prot_inuse *inuse; +}; + +#endif diff --git a/libdde_linux26/contrib/include/net/netns/.svn/text-base/dccp.h.svn-base b/libdde_linux26/contrib/include/net/netns/.svn/text-base/dccp.h.svn-base new file mode 100644 index 00000000..98d2a7ce --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/.svn/text-base/dccp.h.svn-base @@ -0,0 +1,11 @@ +#ifndef __NETNS_DCCP_H__ +#define __NETNS_DCCP_H__ + +struct sock; + +struct netns_dccp { + struct sock *v4_ctl_sk; + struct sock *v6_ctl_sk; +}; + +#endif diff --git a/libdde_linux26/contrib/include/net/netns/.svn/text-base/generic.h.svn-base b/libdde_linux26/contrib/include/net/netns/.svn/text-base/generic.h.svn-base new file mode 100644 index 00000000..0c04fd2a --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/.svn/text-base/generic.h.svn-base @@ -0,0 +1,49 @@ +/* + * generic net pointers + */ + +#ifndef __NET_GENERIC_H__ +#define __NET_GENERIC_H__ + +#include <linux/rcupdate.h> + +/* + * Generic net pointers are to be used by modules to put some private + * stuff on the struct net without explicit struct net modification + * + * The rules are simple: + * 1. register the ops with register_pernet_gen_device to get the id + * of your private pointer; + * 2. call net_assign_generic() to put the private data on the struct + * net (most preferably this should be done in the ->init callback + * of the ops registered); + * 3. do not change this pointer while the net is alive; + * 4. do not try to have any private reference on the net_generic object. + * + * After accomplishing all of the above, the private pointer can be + * accessed with the net_generic() call. + */ + +struct net_generic { + unsigned int len; + struct rcu_head rcu; + + void *ptr[0]; +}; + +static inline void *net_generic(struct net *net, int id) +{ + struct net_generic *ng; + void *ptr; + + rcu_read_lock(); + ng = rcu_dereference(net->gen); + BUG_ON(id == 0 || id > ng->len); + ptr = ng->ptr[id - 1]; + rcu_read_unlock(); + + return ptr; +} + +extern int net_assign_generic(struct net *net, int id, void *data); +#endif diff --git a/libdde_linux26/contrib/include/net/netns/.svn/text-base/hash.h.svn-base b/libdde_linux26/contrib/include/net/netns/.svn/text-base/hash.h.svn-base new file mode 100644 index 00000000..548d78f2 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/.svn/text-base/hash.h.svn-base @@ -0,0 +1,21 @@ +#ifndef __NET_NS_HASH_H__ +#define __NET_NS_HASH_H__ + +#include <asm/cache.h> + +struct net; + +static inline unsigned net_hash_mix(struct net *net) +{ +#ifdef CONFIG_NET_NS + /* + * shift this right to eliminate bits, that are + * always zeroed + */ + + return (unsigned)(((unsigned long)net) >> L1_CACHE_SHIFT); +#else + return 0; +#endif +} +#endif diff --git a/libdde_linux26/contrib/include/net/netns/.svn/text-base/ipv4.h.svn-base b/libdde_linux26/contrib/include/net/netns/.svn/text-base/ipv4.h.svn-base new file mode 100644 index 00000000..977f482d --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/.svn/text-base/ipv4.h.svn-base @@ -0,0 +1,58 @@ +/* + * ipv4 in net namespaces + */ + +#ifndef __NETNS_IPV4_H__ +#define __NETNS_IPV4_H__ + +#include <net/inet_frag.h> + +struct ctl_table_header; +struct ipv4_devconf; +struct fib_rules_ops; +struct hlist_head; +struct sock; + +struct netns_ipv4 { +#ifdef CONFIG_SYSCTL + struct ctl_table_header *forw_hdr; + struct ctl_table_header *frags_hdr; + struct ctl_table_header *ipv4_hdr; + struct ctl_table_header *route_hdr; +#endif + struct ipv4_devconf *devconf_all; + struct ipv4_devconf *devconf_dflt; +#ifdef CONFIG_IP_MULTIPLE_TABLES + struct fib_rules_ops *rules_ops; +#endif + struct hlist_head *fib_table_hash; + struct sock *fibnl; + + struct sock **icmp_sk; + struct sock *tcp_sock; + + struct netns_frags frags; +#ifdef CONFIG_NETFILTER + struct xt_table *iptable_filter; + struct xt_table *iptable_mangle; + struct xt_table *iptable_raw; + struct xt_table *arptable_filter; + struct xt_table *iptable_security; + struct xt_table *nat_table; + struct hlist_head *nat_bysource; + int nat_vmalloced; +#endif + + int sysctl_icmp_echo_ignore_all; + int sysctl_icmp_echo_ignore_broadcasts; + int sysctl_icmp_ignore_bogus_error_responses; + int sysctl_icmp_ratelimit; + int sysctl_icmp_ratemask; + int sysctl_icmp_errors_use_inbound_ifaddr; + int sysctl_rt_cache_rebuild_count; + int current_rt_cache_rebuild_count; + + struct timer_list rt_secret_timer; + atomic_t rt_genid; +}; +#endif diff --git a/libdde_linux26/contrib/include/net/netns/.svn/text-base/ipv6.h.svn-base b/libdde_linux26/contrib/include/net/netns/.svn/text-base/ipv6.h.svn-base new file mode 100644 index 00000000..afab4e4c --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/.svn/text-base/ipv6.h.svn-base @@ -0,0 +1,71 @@ +/* + * ipv6 in net namespaces + */ + +#include <net/inet_frag.h> + +#ifndef __NETNS_IPV6_H__ +#define __NETNS_IPV6_H__ + +struct ctl_table_header; + +struct netns_sysctl_ipv6 { +#ifdef CONFIG_SYSCTL + struct ctl_table_header *table; + struct ctl_table_header *frags_hdr; +#endif + int bindv6only; + int flush_delay; + int ip6_rt_max_size; + int ip6_rt_gc_min_interval; + int ip6_rt_gc_timeout; + int ip6_rt_gc_interval; + int ip6_rt_gc_elasticity; + int ip6_rt_mtu_expires; + int ip6_rt_min_advmss; + int icmpv6_time; +}; + +struct netns_ipv6 { + struct netns_sysctl_ipv6 sysctl; + struct ipv6_devconf *devconf_all; + struct ipv6_devconf *devconf_dflt; + struct netns_frags frags; +#ifdef CONFIG_NETFILTER + struct xt_table *ip6table_filter; + struct xt_table *ip6table_mangle; + struct xt_table *ip6table_raw; + struct xt_table *ip6table_security; +#endif + struct rt6_info *ip6_null_entry; + struct rt6_statistics *rt6_stats; + struct timer_list ip6_fib_timer; + struct hlist_head *fib_table_hash; + struct fib6_table *fib6_main_tbl; + struct dst_ops *ip6_dst_ops; + unsigned int ip6_rt_gc_expire; + unsigned long ip6_rt_last_gc; +#ifdef CONFIG_IPV6_MULTIPLE_TABLES + struct rt6_info *ip6_prohibit_entry; + struct rt6_info *ip6_blk_hole_entry; + struct fib6_table *fib6_local_tbl; + struct fib_rules_ops *fib6_rules_ops; +#endif + struct sock **icmp_sk; + struct sock *ndisc_sk; + struct sock *tcp_sk; + struct sock *igmp_sk; +#ifdef CONFIG_IPV6_MROUTE + struct sock *mroute6_sk; + struct mfc6_cache **mfc6_cache_array; + struct mif_device *vif6_table; + int maxvif; + atomic_t cache_resolve_queue_len; + int mroute_do_assert; + int mroute_do_pim; +#ifdef CONFIG_IPV6_PIMSM_V2 + int mroute_reg_vif_num; +#endif +#endif +}; +#endif diff --git a/libdde_linux26/contrib/include/net/netns/.svn/text-base/mib.h.svn-base b/libdde_linux26/contrib/include/net/netns/.svn/text-base/mib.h.svn-base new file mode 100644 index 00000000..0b44112e --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/.svn/text-base/mib.h.svn-base @@ -0,0 +1,28 @@ +#ifndef __NETNS_MIB_H__ +#define __NETNS_MIB_H__ + +#include <net/snmp.h> + +struct netns_mib { + DEFINE_SNMP_STAT(struct tcp_mib, tcp_statistics); + DEFINE_SNMP_STAT(struct ipstats_mib, ip_statistics); + DEFINE_SNMP_STAT(struct linux_mib, net_statistics); + DEFINE_SNMP_STAT(struct udp_mib, udp_statistics); + DEFINE_SNMP_STAT(struct udp_mib, udplite_statistics); + DEFINE_SNMP_STAT(struct icmp_mib, icmp_statistics); + DEFINE_SNMP_STAT(struct icmpmsg_mib, icmpmsg_statistics); + +#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) + struct proc_dir_entry *proc_net_devsnmp6; + DEFINE_SNMP_STAT(struct udp_mib, udp_stats_in6); + DEFINE_SNMP_STAT(struct udp_mib, udplite_stats_in6); + DEFINE_SNMP_STAT(struct ipstats_mib, ipv6_statistics); + DEFINE_SNMP_STAT(struct icmpv6_mib, icmpv6_statistics); + DEFINE_SNMP_STAT(struct icmpv6msg_mib, icmpv6msg_statistics); +#endif +#ifdef CONFIG_XFRM_STATISTICS + DEFINE_SNMP_STAT(struct linux_xfrm_mib, xfrm_statistics); +#endif +}; + +#endif diff --git a/libdde_linux26/contrib/include/net/netns/.svn/text-base/packet.h.svn-base b/libdde_linux26/contrib/include/net/netns/.svn/text-base/packet.h.svn-base new file mode 100644 index 00000000..637daf69 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/.svn/text-base/packet.h.svn-base @@ -0,0 +1,15 @@ +/* + * Packet network namespace + */ +#ifndef __NETNS_PACKET_H__ +#define __NETNS_PACKET_H__ + +#include <linux/list.h> +#include <linux/spinlock.h> + +struct netns_packet { + rwlock_t sklist_lock; + struct hlist_head sklist; +}; + +#endif /* __NETNS_PACKET_H__ */ diff --git a/libdde_linux26/contrib/include/net/netns/.svn/text-base/unix.h.svn-base b/libdde_linux26/contrib/include/net/netns/.svn/text-base/unix.h.svn-base new file mode 100644 index 00000000..284649d4 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/.svn/text-base/unix.h.svn-base @@ -0,0 +1,13 @@ +/* + * Unix network namespace + */ +#ifndef __NETNS_UNIX_H__ +#define __NETNS_UNIX_H__ + +struct ctl_table_header; +struct netns_unix { + int sysctl_max_dgram_qlen; + struct ctl_table_header *ctl; +}; + +#endif /* __NETNS_UNIX_H__ */ diff --git a/libdde_linux26/contrib/include/net/netns/.svn/text-base/x_tables.h.svn-base b/libdde_linux26/contrib/include/net/netns/.svn/text-base/x_tables.h.svn-base new file mode 100644 index 00000000..9554a644 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/.svn/text-base/x_tables.h.svn-base @@ -0,0 +1,15 @@ +#ifndef __NETNS_X_TABLES_H +#define __NETNS_X_TABLES_H + +#include <linux/list.h> +#include <linux/netfilter.h> + +struct ebt_table; + +struct netns_xt { + struct list_head tables[NFPROTO_NUMPROTO]; + struct ebt_table *broute_table; + struct ebt_table *frame_filter; + struct ebt_table *frame_nat; +}; +#endif diff --git a/libdde_linux26/contrib/include/net/netns/.svn/text-base/xfrm.h.svn-base b/libdde_linux26/contrib/include/net/netns/.svn/text-base/xfrm.h.svn-base new file mode 100644 index 00000000..1ba91274 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/.svn/text-base/xfrm.h.svn-base @@ -0,0 +1,56 @@ +#ifndef __NETNS_XFRM_H +#define __NETNS_XFRM_H + +#include <linux/list.h> +#include <linux/wait.h> +#include <linux/workqueue.h> +#include <linux/xfrm.h> + +struct ctl_table_header; + +struct xfrm_policy_hash { + struct hlist_head *table; + unsigned int hmask; +}; + +struct netns_xfrm { + struct list_head state_all; + /* + * Hash table to find appropriate SA towards given target (endpoint of + * tunnel or destination of transport mode) allowed by selector. + * + * Main use is finding SA after policy selected tunnel or transport + * mode. Also, it can be used by ah/esp icmp error handler to find + * offending SA. + */ + struct hlist_head *state_bydst; + struct hlist_head *state_bysrc; + struct hlist_head *state_byspi; + unsigned int state_hmask; + unsigned int state_num; + struct work_struct state_hash_work; + struct hlist_head state_gc_list; + struct work_struct state_gc_work; + + wait_queue_head_t km_waitq; + + struct list_head policy_all; + struct hlist_head *policy_byidx; + unsigned int policy_idx_hmask; + struct hlist_head policy_inexact[XFRM_POLICY_MAX * 2]; + struct xfrm_policy_hash policy_bydst[XFRM_POLICY_MAX * 2]; + unsigned int policy_count[XFRM_POLICY_MAX * 2]; + struct work_struct policy_hash_work; + + struct sock *nlsk; + + u32 sysctl_aevent_etime; + u32 sysctl_aevent_rseqth; + int sysctl_larval_drop; + u32 sysctl_acq_expires; +#ifdef CONFIG_SYSCTL + struct ctl_table_header *sysctl_hdr; +#endif +}; + +#endif diff --git a/libdde_linux26/contrib/include/net/netns/conntrack.h b/libdde_linux26/contrib/include/net/netns/conntrack.h new file mode 100644 index 00000000..f4498a62 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/conntrack.h @@ -0,0 +1,30 @@ +#ifndef __NETNS_CONNTRACK_H +#define __NETNS_CONNTRACK_H + +#include <linux/list.h> +#include <asm/atomic.h> + +struct ctl_table_header; +struct nf_conntrack_ecache; + +struct netns_ct { + atomic_t count; + unsigned int expect_count; + struct hlist_head *hash; + struct hlist_head *expect_hash; + struct hlist_head unconfirmed; + struct ip_conntrack_stat *stat; +#ifdef CONFIG_NF_CONNTRACK_EVENTS + struct nf_conntrack_ecache *ecache; +#endif + int sysctl_acct; + int sysctl_checksum; + unsigned int sysctl_log_invalid; /* Log invalid packets */ +#ifdef CONFIG_SYSCTL + struct ctl_table_header *sysctl_header; + struct ctl_table_header *acct_sysctl_header; +#endif + int hash_vmalloc; + int expect_vmalloc; +}; +#endif diff --git a/libdde_linux26/contrib/include/net/netns/core.h b/libdde_linux26/contrib/include/net/netns/core.h new file mode 100644 index 00000000..24d4be76 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/core.h @@ -0,0 +1,16 @@ +#ifndef __NETNS_CORE_H__ +#define __NETNS_CORE_H__ + +struct ctl_table_header; +struct prot_inuse; + +struct netns_core { + /* core sysctls */ + struct ctl_table_header *sysctl_hdr; + + int sysctl_somaxconn; + + struct prot_inuse *inuse; +}; + +#endif diff --git a/libdde_linux26/contrib/include/net/netns/dccp.h b/libdde_linux26/contrib/include/net/netns/dccp.h new file mode 100644 index 00000000..98d2a7ce --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/dccp.h @@ -0,0 +1,11 @@ +#ifndef __NETNS_DCCP_H__ +#define __NETNS_DCCP_H__ + +struct sock; + +struct netns_dccp { + struct sock *v4_ctl_sk; + struct sock *v6_ctl_sk; +}; + +#endif diff --git a/libdde_linux26/contrib/include/net/netns/generic.h b/libdde_linux26/contrib/include/net/netns/generic.h new file mode 100644 index 00000000..0c04fd2a --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/generic.h @@ -0,0 +1,49 @@ +/* + * generic net pointers + */ + +#ifndef __NET_GENERIC_H__ +#define __NET_GENERIC_H__ + +#include <linux/rcupdate.h> + +/* + * Generic net pointers are to be used by modules to put some private + * stuff on the struct net without explicit struct net modification + * + * The rules are simple: + * 1. register the ops with register_pernet_gen_device to get the id + * of your private pointer; + * 2. call net_assign_generic() to put the private data on the struct + * net (most preferably this should be done in the ->init callback + * of the ops registered); + * 3. do not change this pointer while the net is alive; + * 4. do not try to have any private reference on the net_generic object. + * + * After accomplishing all of the above, the private pointer can be + * accessed with the net_generic() call. + */ + +struct net_generic { + unsigned int len; + struct rcu_head rcu; + + void *ptr[0]; +}; + +static inline void *net_generic(struct net *net, int id) +{ + struct net_generic *ng; + void *ptr; + + rcu_read_lock(); + ng = rcu_dereference(net->gen); + BUG_ON(id == 0 || id > ng->len); + ptr = ng->ptr[id - 1]; + rcu_read_unlock(); + + return ptr; +} + +extern int net_assign_generic(struct net *net, int id, void *data); +#endif diff --git a/libdde_linux26/contrib/include/net/netns/hash.h b/libdde_linux26/contrib/include/net/netns/hash.h new file mode 100644 index 00000000..548d78f2 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/hash.h @@ -0,0 +1,21 @@ +#ifndef __NET_NS_HASH_H__ +#define __NET_NS_HASH_H__ + +#include <asm/cache.h> + +struct net; + +static inline unsigned net_hash_mix(struct net *net) +{ +#ifdef CONFIG_NET_NS + /* + * shift this right to eliminate bits, that are + * always zeroed + */ + + return (unsigned)(((unsigned long)net) >> L1_CACHE_SHIFT); +#else + return 0; +#endif +} +#endif diff --git a/libdde_linux26/contrib/include/net/netns/ipv4.h b/libdde_linux26/contrib/include/net/netns/ipv4.h new file mode 100644 index 00000000..977f482d --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/ipv4.h @@ -0,0 +1,58 @@ +/* + * ipv4 in net namespaces + */ + +#ifndef __NETNS_IPV4_H__ +#define __NETNS_IPV4_H__ + +#include <net/inet_frag.h> + +struct ctl_table_header; +struct ipv4_devconf; +struct fib_rules_ops; +struct hlist_head; +struct sock; + +struct netns_ipv4 { +#ifdef CONFIG_SYSCTL + struct ctl_table_header *forw_hdr; + struct ctl_table_header *frags_hdr; + struct ctl_table_header *ipv4_hdr; + struct ctl_table_header *route_hdr; +#endif + struct ipv4_devconf *devconf_all; + struct ipv4_devconf *devconf_dflt; +#ifdef CONFIG_IP_MULTIPLE_TABLES + struct fib_rules_ops *rules_ops; +#endif + struct hlist_head *fib_table_hash; + struct sock *fibnl; + + struct sock **icmp_sk; + struct sock *tcp_sock; + + struct netns_frags frags; +#ifdef CONFIG_NETFILTER + struct xt_table *iptable_filter; + struct xt_table *iptable_mangle; + struct xt_table *iptable_raw; + struct xt_table *arptable_filter; + struct xt_table *iptable_security; + struct xt_table *nat_table; + struct hlist_head *nat_bysource; + int nat_vmalloced; +#endif + + int sysctl_icmp_echo_ignore_all; + int sysctl_icmp_echo_ignore_broadcasts; + int sysctl_icmp_ignore_bogus_error_responses; + int sysctl_icmp_ratelimit; + int sysctl_icmp_ratemask; + int sysctl_icmp_errors_use_inbound_ifaddr; + int sysctl_rt_cache_rebuild_count; + int current_rt_cache_rebuild_count; + + struct timer_list rt_secret_timer; + atomic_t rt_genid; +}; +#endif diff --git a/libdde_linux26/contrib/include/net/netns/ipv6.h b/libdde_linux26/contrib/include/net/netns/ipv6.h new file mode 100644 index 00000000..afab4e4c --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/ipv6.h @@ -0,0 +1,71 @@ +/* + * ipv6 in net namespaces + */ + +#include <net/inet_frag.h> + +#ifndef __NETNS_IPV6_H__ +#define __NETNS_IPV6_H__ + +struct ctl_table_header; + +struct netns_sysctl_ipv6 { +#ifdef CONFIG_SYSCTL + struct ctl_table_header *table; + struct ctl_table_header *frags_hdr; +#endif + int bindv6only; + int flush_delay; + int ip6_rt_max_size; + int ip6_rt_gc_min_interval; + int ip6_rt_gc_timeout; + int ip6_rt_gc_interval; + int ip6_rt_gc_elasticity; + int ip6_rt_mtu_expires; + int ip6_rt_min_advmss; + int icmpv6_time; +}; + +struct netns_ipv6 { + struct netns_sysctl_ipv6 sysctl; + struct ipv6_devconf *devconf_all; + struct ipv6_devconf *devconf_dflt; + struct netns_frags frags; +#ifdef CONFIG_NETFILTER + struct xt_table *ip6table_filter; + struct xt_table *ip6table_mangle; + struct xt_table *ip6table_raw; + struct xt_table *ip6table_security; +#endif + struct rt6_info *ip6_null_entry; + struct rt6_statistics *rt6_stats; + struct timer_list ip6_fib_timer; + struct hlist_head *fib_table_hash; + struct fib6_table *fib6_main_tbl; + struct dst_ops *ip6_dst_ops; + unsigned int ip6_rt_gc_expire; + unsigned long ip6_rt_last_gc; +#ifdef CONFIG_IPV6_MULTIPLE_TABLES + struct rt6_info *ip6_prohibit_entry; + struct rt6_info *ip6_blk_hole_entry; + struct fib6_table *fib6_local_tbl; + struct fib_rules_ops *fib6_rules_ops; +#endif + struct sock **icmp_sk; + struct sock *ndisc_sk; + struct sock *tcp_sk; + struct sock *igmp_sk; +#ifdef CONFIG_IPV6_MROUTE + struct sock *mroute6_sk; + struct mfc6_cache **mfc6_cache_array; + struct mif_device *vif6_table; + int maxvif; + atomic_t cache_resolve_queue_len; + int mroute_do_assert; + int mroute_do_pim; +#ifdef CONFIG_IPV6_PIMSM_V2 + int mroute_reg_vif_num; +#endif +#endif +}; +#endif diff --git a/libdde_linux26/contrib/include/net/netns/mib.h b/libdde_linux26/contrib/include/net/netns/mib.h new file mode 100644 index 00000000..0b44112e --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/mib.h @@ -0,0 +1,28 @@ +#ifndef __NETNS_MIB_H__ +#define __NETNS_MIB_H__ + +#include <net/snmp.h> + +struct netns_mib { + DEFINE_SNMP_STAT(struct tcp_mib, tcp_statistics); + DEFINE_SNMP_STAT(struct ipstats_mib, ip_statistics); + DEFINE_SNMP_STAT(struct linux_mib, net_statistics); + DEFINE_SNMP_STAT(struct udp_mib, udp_statistics); + DEFINE_SNMP_STAT(struct udp_mib, udplite_statistics); + DEFINE_SNMP_STAT(struct icmp_mib, icmp_statistics); + DEFINE_SNMP_STAT(struct icmpmsg_mib, icmpmsg_statistics); + +#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) + struct proc_dir_entry *proc_net_devsnmp6; + DEFINE_SNMP_STAT(struct udp_mib, udp_stats_in6); + DEFINE_SNMP_STAT(struct udp_mib, udplite_stats_in6); + DEFINE_SNMP_STAT(struct ipstats_mib, ipv6_statistics); + DEFINE_SNMP_STAT(struct icmpv6_mib, icmpv6_statistics); + DEFINE_SNMP_STAT(struct icmpv6msg_mib, icmpv6msg_statistics); +#endif +#ifdef CONFIG_XFRM_STATISTICS + DEFINE_SNMP_STAT(struct linux_xfrm_mib, xfrm_statistics); +#endif +}; + +#endif diff --git a/libdde_linux26/contrib/include/net/netns/packet.h b/libdde_linux26/contrib/include/net/netns/packet.h new file mode 100644 index 00000000..637daf69 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/packet.h @@ -0,0 +1,15 @@ +/* + * Packet network namespace + */ +#ifndef __NETNS_PACKET_H__ +#define __NETNS_PACKET_H__ + +#include <linux/list.h> +#include <linux/spinlock.h> + +struct netns_packet { + rwlock_t sklist_lock; + struct hlist_head sklist; +}; + +#endif /* __NETNS_PACKET_H__ */ diff --git a/libdde_linux26/contrib/include/net/netns/unix.h b/libdde_linux26/contrib/include/net/netns/unix.h new file mode 100644 index 00000000..284649d4 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/unix.h @@ -0,0 +1,13 @@ +/* + * Unix network namespace + */ +#ifndef __NETNS_UNIX_H__ +#define __NETNS_UNIX_H__ + +struct ctl_table_header; +struct netns_unix { + int sysctl_max_dgram_qlen; + struct ctl_table_header *ctl; +}; + +#endif /* __NETNS_UNIX_H__ */ diff --git a/libdde_linux26/contrib/include/net/netns/x_tables.h b/libdde_linux26/contrib/include/net/netns/x_tables.h new file mode 100644 index 00000000..9554a644 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/x_tables.h @@ -0,0 +1,15 @@ +#ifndef __NETNS_X_TABLES_H +#define __NETNS_X_TABLES_H + +#include <linux/list.h> +#include <linux/netfilter.h> + +struct ebt_table; + +struct netns_xt { + struct list_head tables[NFPROTO_NUMPROTO]; + struct ebt_table *broute_table; + struct ebt_table *frame_filter; + struct ebt_table *frame_nat; +}; +#endif diff --git a/libdde_linux26/contrib/include/net/netns/xfrm.h b/libdde_linux26/contrib/include/net/netns/xfrm.h new file mode 100644 index 00000000..1ba91274 --- /dev/null +++ b/libdde_linux26/contrib/include/net/netns/xfrm.h @@ -0,0 +1,56 @@ +#ifndef __NETNS_XFRM_H +#define __NETNS_XFRM_H + +#include <linux/list.h> +#include <linux/wait.h> +#include <linux/workqueue.h> +#include <linux/xfrm.h> + +struct ctl_table_header; + +struct xfrm_policy_hash { + struct hlist_head *table; + unsigned int hmask; +}; + +struct netns_xfrm { + struct list_head state_all; + /* + * Hash table to find appropriate SA towards given target (endpoint of + * tunnel or destination of transport mode) allowed by selector. + * + * Main use is finding SA after policy selected tunnel or transport + * mode. Also, it can be used by ah/esp icmp error handler to find + * offending SA. + */ + struct hlist_head *state_bydst; + struct hlist_head *state_bysrc; + struct hlist_head *state_byspi; + unsigned int state_hmask; + unsigned int state_num; + struct work_struct state_hash_work; + struct hlist_head state_gc_list; + struct work_struct state_gc_work; + + wait_queue_head_t km_waitq; + + struct list_head policy_all; + struct hlist_head *policy_byidx; + unsigned int policy_idx_hmask; + struct hlist_head policy_inexact[XFRM_POLICY_MAX * 2]; + struct xfrm_policy_hash policy_bydst[XFRM_POLICY_MAX * 2]; + unsigned int policy_count[XFRM_POLICY_MAX * 2]; + struct work_struct policy_hash_work; + + struct sock *nlsk; + + u32 sysctl_aevent_etime; + u32 sysctl_aevent_rseqth; + int sysctl_larval_drop; + u32 sysctl_acq_expires; +#ifdef CONFIG_SYSCTL + struct ctl_table_header *sysctl_hdr; +#endif +}; + +#endif |