Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3)  * ipv6 in net namespaces
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) #include <net/inet_frag.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) #ifndef __NETNS_IPV6_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) #define __NETNS_IPV6_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) #include <linux/android_kabi.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) #include <net/dst_ops.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) #include <uapi/linux/icmpv6.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) struct ctl_table_header;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) struct netns_sysctl_ipv6 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) #ifdef CONFIG_SYSCTL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 	struct ctl_table_header *hdr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 	struct ctl_table_header *route_hdr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 	struct ctl_table_header *icmp_hdr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 	struct ctl_table_header *frags_hdr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 	struct ctl_table_header *xfrm6_hdr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 	int bindv6only;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 	int flush_delay;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 	int ip6_rt_max_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 	int ip6_rt_gc_min_interval;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 	int ip6_rt_gc_timeout;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 	int ip6_rt_gc_interval;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 	int ip6_rt_gc_elasticity;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 	int ip6_rt_mtu_expires;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 	int ip6_rt_min_advmss;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 	int multipath_hash_policy;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 	int flowlabel_consistency;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 	int auto_flowlabels;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 	int icmpv6_time;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 	int icmpv6_echo_ignore_all;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 	int icmpv6_echo_ignore_multicast;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 	int icmpv6_echo_ignore_anycast;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 	DECLARE_BITMAP(icmpv6_ratemask, ICMPV6_MSG_MAX + 1);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 	unsigned long *icmpv6_ratemask_ptr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 	int anycast_src_echo_reply;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 	int ip_nonlocal_bind;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 	int fwmark_reflect;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 	int idgen_retries;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 	int idgen_delay;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 	int flowlabel_state_ranges;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 	int flowlabel_reflect;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 	int max_dst_opts_cnt;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 	int max_hbh_opts_cnt;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 	int max_dst_opts_len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 	int max_hbh_opts_len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 	int seg6_flowlabel;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 	bool skip_notify_on_dev_down;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) struct netns_ipv6 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 	struct netns_sysctl_ipv6 sysctl;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 	struct ipv6_devconf	*devconf_all;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 	struct ipv6_devconf	*devconf_dflt;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 	struct inet_peer_base	*peers;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 	struct fqdir		*fqdir;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) #ifdef CONFIG_NETFILTER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 	struct xt_table		*ip6table_filter;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	struct xt_table		*ip6table_mangle;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 	struct xt_table		*ip6table_raw;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) #ifdef CONFIG_SECURITY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	struct xt_table		*ip6table_security;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	struct xt_table		*ip6table_nat;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 	struct fib6_info	*fib6_null_entry;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	struct rt6_info		*ip6_null_entry;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	struct rt6_statistics   *rt6_stats;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 	struct timer_list       ip6_fib_timer;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	struct hlist_head       *fib_table_hash;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 	struct fib6_table       *fib6_main_tbl;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 	struct list_head	fib6_walkers;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 	struct dst_ops		ip6_dst_ops;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 	rwlock_t		fib6_walker_lock;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	spinlock_t		fib6_gc_lock;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 	unsigned int		 ip6_rt_gc_expire;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 	unsigned long		 ip6_rt_last_gc;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) #ifdef CONFIG_IPV6_MULTIPLE_TABLES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 	unsigned int		fib6_rules_require_fldissect;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	bool			fib6_has_custom_rules;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) #ifdef CONFIG_IPV6_SUBTREES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	unsigned int		fib6_routes_require_src;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 	struct rt6_info         *ip6_prohibit_entry;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 	struct rt6_info         *ip6_blk_hole_entry;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 	struct fib6_table       *fib6_local_tbl;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	struct fib_rules_ops    *fib6_rules_ops;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 	struct sock * __percpu	*icmp_sk;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 	struct sock             *ndisc_sk;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 	struct sock             *tcp_sk;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	struct sock             *igmp_sk;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	struct sock		*mc_autojoin_sk;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) #ifdef CONFIG_IPV6_MROUTE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) #ifndef CONFIG_IPV6_MROUTE_MULTIPLE_TABLES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	struct mr_table		*mrt6;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 	struct list_head	mr6_tables;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 	struct fib_rules_ops	*mr6_rules_ops;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 	atomic_t		dev_addr_genid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 	atomic_t		fib6_sernum;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 	struct seg6_pernet_data *seg6_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 	struct fib_notifier_ops	*notifier_ops;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 	struct fib_notifier_ops	*ip6mr_notifier_ops;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 	unsigned int ipmr_seq; /* protected by rtnl_mutex */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 	struct {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 		struct hlist_head head;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 		spinlock_t	lock;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 		u32		seq;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 	} ip6addrlbl_table;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 	ANDROID_KABI_RESERVE(1);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) #if IS_ENABLED(CONFIG_NF_DEFRAG_IPV6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) struct netns_nf_frag {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 	struct fqdir	*fqdir;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) #endif