diff options
Diffstat (limited to 'include/net/dst.h')
-rw-r--r-- | include/net/dst.h | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/include/net/dst.h b/include/net/dst.h index e3ac7d0fc4e1..ae13370e8484 100644 --- a/include/net/dst.h +++ b/include/net/dst.h | |||
@@ -52,15 +52,10 @@ struct dst_entry | |||
52 | unsigned short header_len; /* more space at head required */ | 52 | unsigned short header_len; /* more space at head required */ |
53 | unsigned short trailer_len; /* space to reserve at tail */ | 53 | unsigned short trailer_len; /* space to reserve at tail */ |
54 | 54 | ||
55 | u32 metrics[RTAX_MAX]; | ||
56 | struct dst_entry *path; | ||
57 | |||
58 | unsigned long rate_last; /* rate limiting for ICMP */ | ||
59 | unsigned int rate_tokens; | 55 | unsigned int rate_tokens; |
56 | unsigned long rate_last; /* rate limiting for ICMP */ | ||
60 | 57 | ||
61 | #ifdef CONFIG_NET_CLS_ROUTE | 58 | struct dst_entry *path; |
62 | __u32 tclassid; | ||
63 | #endif | ||
64 | 59 | ||
65 | struct neighbour *neighbour; | 60 | struct neighbour *neighbour; |
66 | struct hh_cache *hh; | 61 | struct hh_cache *hh; |
@@ -70,10 +65,20 @@ struct dst_entry | |||
70 | int (*output)(struct sk_buff*); | 65 | int (*output)(struct sk_buff*); |
71 | 66 | ||
72 | struct dst_ops *ops; | 67 | struct dst_ops *ops; |
73 | 68 | ||
74 | unsigned long lastuse; | 69 | u32 metrics[RTAX_MAX]; |
70 | |||
71 | #ifdef CONFIG_NET_CLS_ROUTE | ||
72 | __u32 tclassid; | ||
73 | #endif | ||
74 | |||
75 | /* | ||
76 | * __refcnt wants to be on a different cache line from | ||
77 | * input/output/ops or performance tanks badly | ||
78 | */ | ||
75 | atomic_t __refcnt; /* client references */ | 79 | atomic_t __refcnt; /* client references */ |
76 | int __use; | 80 | int __use; |
81 | unsigned long lastuse; | ||
77 | union { | 82 | union { |
78 | struct dst_entry *next; | 83 | struct dst_entry *next; |
79 | struct rtable *rt_next; | 84 | struct rtable *rt_next; |