cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

fib_lookup.h (1701B)


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