Blame view
include/net/dst_ops.h
1.73 KB
86393e52c netns: embed ip6_... |
1 2 3 |
#ifndef _NET_DST_OPS_H #define _NET_DST_OPS_H #include <linux/types.h> |
fc66f95c6 net dst: use a pe... |
4 |
#include <linux/percpu_counter.h> |
43b81f85e net dst: need lin... |
5 |
#include <linux/cache.h> |
86393e52c netns: embed ip6_... |
6 7 8 9 10 11 12 13 14 15 16 17 18 |
struct dst_entry; struct kmem_cachep; struct net_device; struct sk_buff; struct dst_ops { unsigned short family; __be16 protocol; unsigned gc_thresh; int (*gc)(struct dst_ops *ops); struct dst_entry * (*check)(struct dst_entry *, __u32 cookie); |
0dbaee3b3 net: Abstract def... |
19 |
unsigned int (*default_advmss)(const struct dst_entry *); |
ebb762f27 net: Rename the d... |
20 |
unsigned int (*mtu)(const struct dst_entry *); |
62fa8a846 net: Implement re... |
21 |
u32 * (*cow_metrics)(struct dst_entry *, unsigned long); |
86393e52c netns: embed ip6_... |
22 23 24 25 26 27 28 |
void (*destroy)(struct dst_entry *); void (*ifdown)(struct dst_entry *, struct net_device *dev, int how); struct dst_entry * (*negative_advice)(struct dst_entry *); void (*link_failure)(struct sk_buff *); void (*update_pmtu)(struct dst_entry *dst, u32 mtu); int (*local_out)(struct sk_buff *skb); |
d3aaeb38c net: Add ->neigh_... |
29 |
struct neighbour * (*neigh_lookup)(const struct dst_entry *dst, const void *daddr); |
86393e52c netns: embed ip6_... |
30 |
|
86393e52c netns: embed ip6_... |
31 |
struct kmem_cache *kmem_cachep; |
fc66f95c6 net dst: use a pe... |
32 33 |
struct percpu_counter pcpuc_entries ____cacheline_aligned_in_smp; |
86393e52c netns: embed ip6_... |
34 |
}; |
fc66f95c6 net dst: use a pe... |
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
static inline int dst_entries_get_fast(struct dst_ops *dst) { return percpu_counter_read_positive(&dst->pcpuc_entries); } static inline int dst_entries_get_slow(struct dst_ops *dst) { int res; local_bh_disable(); res = percpu_counter_sum_positive(&dst->pcpuc_entries); local_bh_enable(); return res; } static inline void dst_entries_add(struct dst_ops *dst, int val) { local_bh_disable(); percpu_counter_add(&dst->pcpuc_entries, val); local_bh_enable(); } static inline int dst_entries_init(struct dst_ops *dst) { return percpu_counter_init(&dst->pcpuc_entries, 0); } static inline void dst_entries_destroy(struct dst_ops *dst) { percpu_counter_destroy(&dst->pcpuc_entries); } |
86393e52c netns: embed ip6_... |
67 |
#endif |