ip_fib.h (b75ed8b1aa9c3a99702159c3be8b0c1d54972ae5) ip_fib.h (f1741730dd18828fe3ea5fa91c22f41cf001c625)
1/*
2 * INET An implementation of the TCP/IP protocol suite for the LINUX
3 * operating system. INET is implemented using the BSD Socket
4 * interface as the means of communication with the user level.
5 *
6 * Definitions for the Forwarding Information Base.
7 *
8 * Authors: A.N.Kuznetsov, <kuznet@ms2.inr.ac.ru>

--- 62 unchanged lines hidden (view full) ---

71struct fnhe_hash_bucket {
72 struct fib_nh_exception __rcu *chain;
73};
74
75#define FNHE_HASH_SHIFT 11
76#define FNHE_HASH_SIZE (1 << FNHE_HASH_SHIFT)
77#define FNHE_RECLAIM_DEPTH 5
78
1/*
2 * INET An implementation of the TCP/IP protocol suite for the LINUX
3 * operating system. INET is implemented using the BSD Socket
4 * interface as the means of communication with the user level.
5 *
6 * Definitions for the Forwarding Information Base.
7 *
8 * Authors: A.N.Kuznetsov, <kuznet@ms2.inr.ac.ru>

--- 62 unchanged lines hidden (view full) ---

71struct fnhe_hash_bucket {
72 struct fib_nh_exception __rcu *chain;
73};
74
75#define FNHE_HASH_SHIFT 11
76#define FNHE_HASH_SIZE (1 << FNHE_HASH_SHIFT)
77#define FNHE_RECLAIM_DEPTH 5
78
79struct fib_nh_common {
80 struct net_device *nhc_dev;
81 int nhc_oif;
82 unsigned int nhc_flags;
83 struct lwtunnel_state *nhc_lwtstate;
84 unsigned char nhc_scope;
85 u8 nhc_family;
86 u8 nhc_has_gw:1,
87 unused:7;
88 union {
89 __be32 ipv4;
90 struct in6_addr ipv6;
91 } nhc_gw;
92
93 int nhc_weight;
94 atomic_t nhc_upper_bound;
95};
96
79struct fib_nh {
97struct fib_nh {
80 struct net_device *fib_nh_dev;
98 struct fib_nh_common nh_common;
81 struct hlist_node nh_hash;
82 struct fib_info *nh_parent;
99 struct hlist_node nh_hash;
100 struct fib_info *nh_parent;
83 unsigned int fib_nh_flags;
84 unsigned char fib_nh_scope;
85#ifdef CONFIG_IP_ROUTE_MULTIPATH
86 int fib_nh_weight;
87 atomic_t fib_nh_upper_bound;
88#endif
89#ifdef CONFIG_IP_ROUTE_CLASSID
90 __u32 nh_tclassid;
91#endif
101#ifdef CONFIG_IP_ROUTE_CLASSID
102 __u32 nh_tclassid;
103#endif
92 int fib_nh_oif;
93 __be32 fib_nh_gw4;
94 __be32 nh_saddr;
95 int nh_saddr_genid;
96 struct rtable __rcu * __percpu *nh_pcpu_rth_output;
97 struct rtable __rcu *nh_rth_input;
98 struct fnhe_hash_bucket __rcu *nh_exceptions;
104 __be32 nh_saddr;
105 int nh_saddr_genid;
106 struct rtable __rcu * __percpu *nh_pcpu_rth_output;
107 struct rtable __rcu *nh_rth_input;
108 struct fnhe_hash_bucket __rcu *nh_exceptions;
99 struct lwtunnel_state *fib_nh_lws;
109#define fib_nh_family nh_common.nhc_family
110#define fib_nh_dev nh_common.nhc_dev
111#define fib_nh_oif nh_common.nhc_oif
112#define fib_nh_flags nh_common.nhc_flags
113#define fib_nh_lws nh_common.nhc_lwtstate
114#define fib_nh_scope nh_common.nhc_scope
115#define fib_nh_family nh_common.nhc_family
116#define fib_nh_has_gw nh_common.nhc_has_gw
117#define fib_nh_gw4 nh_common.nhc_gw.ipv4
118#define fib_nh_gw6 nh_common.nhc_gw.ipv6
119#define fib_nh_weight nh_common.nhc_weight
120#define fib_nh_upper_bound nh_common.nhc_upper_bound
100};
101
102/*
103 * This structure contains data shared by many of routes.
104 */
105
106struct fib_info {
107 struct hlist_node fib_hash;

--- 368 unchanged lines hidden ---
121};
122
123/*
124 * This structure contains data shared by many of routes.
125 */
126
127struct fib_info {
128 struct hlist_node fib_hash;

--- 368 unchanged lines hidden ---