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) #ifndef _FIB_LOOKUP_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3) #define _FIB_LOOKUP_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) #include <linux/types.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) #include <linux/list.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) #include <net/ip_fib.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) #include <net/nexthop.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) struct fib_alias {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) 	struct hlist_node	fa_list;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) 	struct fib_info		*fa_info;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 	u8			fa_tos;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 	u8			fa_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 	u8			fa_state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 	u8			fa_slen;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 	u32			tb_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 	s16			fa_default;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 	u8			offload:1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 				trap:1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 				unused:6;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 	struct rcu_head		rcu;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) #define FA_S_ACCESSED	0x01
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) /* Dont write on fa_state unless needed, to keep it shared on all cpus */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) static inline void fib_alias_accessed(struct fib_alias *fa)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 	if (!(fa->fa_state & FA_S_ACCESSED))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 		fa->fa_state |= FA_S_ACCESSED;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) /* Exported by fib_semantics.c */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) void fib_release_info(struct fib_info *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) struct fib_info *fib_create_info(struct fib_config *cfg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 				 struct netlink_ext_ack *extack);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) int fib_nh_match(struct net *net, struct fib_config *cfg, struct fib_info *fi,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 		 struct netlink_ext_ack *extack);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) bool fib_metrics_match(struct fib_config *cfg, struct fib_info *fi);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) int fib_dump_info(struct sk_buff *skb, u32 pid, u32 seq, int event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 		  struct fib_rt_info *fri, unsigned int flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) void rtmsg_fib(int event, __be32 key, struct fib_alias *fa, int dst_len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 	       u32 tb_id, const struct nl_info *info, unsigned int nlm_flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) static inline void fib_result_assign(struct fib_result *res,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 				     struct fib_info *fi)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 	/* we used to play games with refcounts, but we now use RCU */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 	res->fi = fi;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 	res->nhc = fib_info_nhc(fi, 0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) struct fib_prop {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 	int	error;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) 	u8	scope;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) extern const struct fib_prop fib_props[RTN_MAX + 1];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) #endif /* _FIB_LOOKUP_H */