diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-21 14:29:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-21 14:29:52 -0400 |
commit | e89970aa93b06d0605a488e74af3b0a2a80e03b5 (patch) | |
tree | fb00c26656b053281a83f4feb2313173c8faf420 /include | |
parent | 443bd1c4ddab9d2144f4c9b85e0abccf2d93423f (diff) | |
parent | 5547cd0ae8b46db9a084505239294eed9b8c8e2d (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
netfilter: nf_conntrack_sctp: fix sparse warnings
netfilter: nf_nat_sip: c= is optional for session
netfilter: xt_TCPMSS: collapse tcpmss_reverse_mtu{4,6} into one function
netfilter: nfnetlink_log: send complete hardware header
netfilter: xt_time: fix time's time_mt()'s use of do_div()
netfilter: accounting rework: ct_extend + 64bit counters (v4)
netlink: add NLA_PUT_BE64 macro
netfilter: nf_nat_core: eliminate useless find_appropriate_src for IP_NAT_RANGE_PROTO_RANDOM
hdlcdrv: Fix CRC calculation.
Revert "pkt_sched: Make default qdisc nonshared-multiqueue safe."
net: In __netif_schedule() use WARN_ON instead of BUG_ON
net: Improve simple_tx_hash().
pkt_sched: Remove unused variable skb in dev_deactivate_queue function.
sunhme: Remove stop/wake TX queue calls in set-multicast-list handler.
ucc_geth: do not touch net queue in adjust_link phylib callback
gianfar: do not touch net queue in adjust_link phylib callback
atl1: Do not wake queue before queue has been started.
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/netfilter/nf_conntrack_common.h | 8 | ||||
-rw-r--r-- | include/linux/netfilter/nfnetlink_conntrack.h | 8 | ||||
-rw-r--r-- | include/linux/netfilter/nfnetlink_log.h | 3 | ||||
-rw-r--r-- | include/net/netfilter/nf_conntrack.h | 6 | ||||
-rw-r--r-- | include/net/netfilter/nf_conntrack_acct.h | 51 | ||||
-rw-r--r-- | include/net/netfilter/nf_conntrack_extend.h | 2 | ||||
-rw-r--r-- | include/net/netlink.h | 3 |
7 files changed, 64 insertions, 17 deletions
diff --git a/include/linux/netfilter/nf_conntrack_common.h b/include/linux/netfilter/nf_conntrack_common.h index bad1eb760f61..885cbe282260 100644 --- a/include/linux/netfilter/nf_conntrack_common.h +++ b/include/linux/netfilter/nf_conntrack_common.h | |||
@@ -122,7 +122,7 @@ enum ip_conntrack_events | |||
122 | IPCT_NATINFO_BIT = 10, | 122 | IPCT_NATINFO_BIT = 10, |
123 | IPCT_NATINFO = (1 << IPCT_NATINFO_BIT), | 123 | IPCT_NATINFO = (1 << IPCT_NATINFO_BIT), |
124 | 124 | ||
125 | /* Counter highest bit has been set */ | 125 | /* Counter highest bit has been set, unused */ |
126 | IPCT_COUNTER_FILLING_BIT = 11, | 126 | IPCT_COUNTER_FILLING_BIT = 11, |
127 | IPCT_COUNTER_FILLING = (1 << IPCT_COUNTER_FILLING_BIT), | 127 | IPCT_COUNTER_FILLING = (1 << IPCT_COUNTER_FILLING_BIT), |
128 | 128 | ||
@@ -145,12 +145,6 @@ enum ip_conntrack_expect_events { | |||
145 | }; | 145 | }; |
146 | 146 | ||
147 | #ifdef __KERNEL__ | 147 | #ifdef __KERNEL__ |
148 | struct ip_conntrack_counter | ||
149 | { | ||
150 | u_int32_t packets; | ||
151 | u_int32_t bytes; | ||
152 | }; | ||
153 | |||
154 | struct ip_conntrack_stat | 148 | struct ip_conntrack_stat |
155 | { | 149 | { |
156 | unsigned int searched; | 150 | unsigned int searched; |
diff --git a/include/linux/netfilter/nfnetlink_conntrack.h b/include/linux/netfilter/nfnetlink_conntrack.h index 759bc043dc65..c19595c89304 100644 --- a/include/linux/netfilter/nfnetlink_conntrack.h +++ b/include/linux/netfilter/nfnetlink_conntrack.h | |||
@@ -115,10 +115,10 @@ enum ctattr_protoinfo_sctp { | |||
115 | 115 | ||
116 | enum ctattr_counters { | 116 | enum ctattr_counters { |
117 | CTA_COUNTERS_UNSPEC, | 117 | CTA_COUNTERS_UNSPEC, |
118 | CTA_COUNTERS_PACKETS, /* old 64bit counters */ | 118 | CTA_COUNTERS_PACKETS, /* 64bit counters */ |
119 | CTA_COUNTERS_BYTES, /* old 64bit counters */ | 119 | CTA_COUNTERS_BYTES, /* 64bit counters */ |
120 | CTA_COUNTERS32_PACKETS, | 120 | CTA_COUNTERS32_PACKETS, /* old 32bit counters, unused */ |
121 | CTA_COUNTERS32_BYTES, | 121 | CTA_COUNTERS32_BYTES, /* old 32bit counters, unused */ |
122 | __CTA_COUNTERS_MAX | 122 | __CTA_COUNTERS_MAX |
123 | }; | 123 | }; |
124 | #define CTA_COUNTERS_MAX (__CTA_COUNTERS_MAX - 1) | 124 | #define CTA_COUNTERS_MAX (__CTA_COUNTERS_MAX - 1) |
diff --git a/include/linux/netfilter/nfnetlink_log.h b/include/linux/netfilter/nfnetlink_log.h index a85721332924..f661731f3cb1 100644 --- a/include/linux/netfilter/nfnetlink_log.h +++ b/include/linux/netfilter/nfnetlink_log.h | |||
@@ -48,6 +48,9 @@ enum nfulnl_attr_type { | |||
48 | NFULA_SEQ, /* instance-local sequence number */ | 48 | NFULA_SEQ, /* instance-local sequence number */ |
49 | NFULA_SEQ_GLOBAL, /* global sequence number */ | 49 | NFULA_SEQ_GLOBAL, /* global sequence number */ |
50 | NFULA_GID, /* group id of socket */ | 50 | NFULA_GID, /* group id of socket */ |
51 | NFULA_HWTYPE, /* hardware type */ | ||
52 | NFULA_HWHEADER, /* hardware header */ | ||
53 | NFULA_HWLEN, /* hardware header length */ | ||
51 | 54 | ||
52 | __NFULA_MAX | 55 | __NFULA_MAX |
53 | }; | 56 | }; |
diff --git a/include/net/netfilter/nf_conntrack.h b/include/net/netfilter/nf_conntrack.h index 8f5b75734dd0..0741ad592da0 100644 --- a/include/net/netfilter/nf_conntrack.h +++ b/include/net/netfilter/nf_conntrack.h | |||
@@ -88,7 +88,6 @@ struct nf_conn_help { | |||
88 | u8 expecting[NF_CT_MAX_EXPECT_CLASSES]; | 88 | u8 expecting[NF_CT_MAX_EXPECT_CLASSES]; |
89 | }; | 89 | }; |
90 | 90 | ||
91 | |||
92 | #include <net/netfilter/ipv4/nf_conntrack_ipv4.h> | 91 | #include <net/netfilter/ipv4/nf_conntrack_ipv4.h> |
93 | #include <net/netfilter/ipv6/nf_conntrack_ipv6.h> | 92 | #include <net/netfilter/ipv6/nf_conntrack_ipv6.h> |
94 | 93 | ||
@@ -111,11 +110,6 @@ struct nf_conn | |||
111 | /* Timer function; drops refcnt when it goes off. */ | 110 | /* Timer function; drops refcnt when it goes off. */ |
112 | struct timer_list timeout; | 111 | struct timer_list timeout; |
113 | 112 | ||
114 | #ifdef CONFIG_NF_CT_ACCT | ||
115 | /* Accounting Information (same cache line as other written members) */ | ||
116 | struct ip_conntrack_counter counters[IP_CT_DIR_MAX]; | ||
117 | #endif | ||
118 | |||
119 | #if defined(CONFIG_NF_CONNTRACK_MARK) | 113 | #if defined(CONFIG_NF_CONNTRACK_MARK) |
120 | u_int32_t mark; | 114 | u_int32_t mark; |
121 | #endif | 115 | #endif |
diff --git a/include/net/netfilter/nf_conntrack_acct.h b/include/net/netfilter/nf_conntrack_acct.h new file mode 100644 index 000000000000..5d5ae55d54c4 --- /dev/null +++ b/include/net/netfilter/nf_conntrack_acct.h | |||
@@ -0,0 +1,51 @@ | |||
1 | /* | ||
2 | * (C) 2008 Krzysztof Piotr Oledzki <ole@ans.pl> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | |||
9 | #ifndef _NF_CONNTRACK_ACCT_H | ||
10 | #define _NF_CONNTRACK_ACCT_H | ||
11 | #include <linux/netfilter/nf_conntrack_common.h> | ||
12 | #include <linux/netfilter/nf_conntrack_tuple_common.h> | ||
13 | #include <net/netfilter/nf_conntrack.h> | ||
14 | #include <net/netfilter/nf_conntrack_extend.h> | ||
15 | |||
16 | struct nf_conn_counter { | ||
17 | u_int64_t packets; | ||
18 | u_int64_t bytes; | ||
19 | }; | ||
20 | |||
21 | extern int nf_ct_acct; | ||
22 | |||
23 | static inline | ||
24 | struct nf_conn_counter *nf_conn_acct_find(const struct nf_conn *ct) | ||
25 | { | ||
26 | return nf_ct_ext_find(ct, NF_CT_EXT_ACCT); | ||
27 | } | ||
28 | |||
29 | static inline | ||
30 | struct nf_conn_counter *nf_ct_acct_ext_add(struct nf_conn *ct, gfp_t gfp) | ||
31 | { | ||
32 | struct nf_conn_counter *acct; | ||
33 | |||
34 | if (!nf_ct_acct) | ||
35 | return NULL; | ||
36 | |||
37 | acct = nf_ct_ext_add(ct, NF_CT_EXT_ACCT, gfp); | ||
38 | if (!acct) | ||
39 | pr_debug("failed to add accounting extension area"); | ||
40 | |||
41 | |||
42 | return acct; | ||
43 | }; | ||
44 | |||
45 | extern unsigned int | ||
46 | seq_print_acct(struct seq_file *s, const struct nf_conn *ct, int dir); | ||
47 | |||
48 | extern int nf_conntrack_acct_init(void); | ||
49 | extern void nf_conntrack_acct_fini(void); | ||
50 | |||
51 | #endif /* _NF_CONNTRACK_ACCT_H */ | ||
diff --git a/include/net/netfilter/nf_conntrack_extend.h b/include/net/netfilter/nf_conntrack_extend.h index f80c0ed6d870..da8ee52613a5 100644 --- a/include/net/netfilter/nf_conntrack_extend.h +++ b/include/net/netfilter/nf_conntrack_extend.h | |||
@@ -7,11 +7,13 @@ enum nf_ct_ext_id | |||
7 | { | 7 | { |
8 | NF_CT_EXT_HELPER, | 8 | NF_CT_EXT_HELPER, |
9 | NF_CT_EXT_NAT, | 9 | NF_CT_EXT_NAT, |
10 | NF_CT_EXT_ACCT, | ||
10 | NF_CT_EXT_NUM, | 11 | NF_CT_EXT_NUM, |
11 | }; | 12 | }; |
12 | 13 | ||
13 | #define NF_CT_EXT_HELPER_TYPE struct nf_conn_help | 14 | #define NF_CT_EXT_HELPER_TYPE struct nf_conn_help |
14 | #define NF_CT_EXT_NAT_TYPE struct nf_conn_nat | 15 | #define NF_CT_EXT_NAT_TYPE struct nf_conn_nat |
16 | #define NF_CT_EXT_ACCT_TYPE struct nf_conn_counter | ||
15 | 17 | ||
16 | /* Extensions: optional stuff which isn't permanently in struct. */ | 18 | /* Extensions: optional stuff which isn't permanently in struct. */ |
17 | struct nf_ct_ext { | 19 | struct nf_ct_ext { |
diff --git a/include/net/netlink.h b/include/net/netlink.h index dfc3701dfcc3..18024b8cecb8 100644 --- a/include/net/netlink.h +++ b/include/net/netlink.h | |||
@@ -896,6 +896,9 @@ static inline int nla_put_msecs(struct sk_buff *skb, int attrtype, | |||
896 | #define NLA_PUT_U64(skb, attrtype, value) \ | 896 | #define NLA_PUT_U64(skb, attrtype, value) \ |
897 | NLA_PUT_TYPE(skb, u64, attrtype, value) | 897 | NLA_PUT_TYPE(skb, u64, attrtype, value) |
898 | 898 | ||
899 | #define NLA_PUT_BE64(skb, attrtype, value) \ | ||
900 | NLA_PUT_TYPE(skb, __be64, attrtype, value) | ||
901 | |||
899 | #define NLA_PUT_STRING(skb, attrtype, value) \ | 902 | #define NLA_PUT_STRING(skb, attrtype, value) \ |
900 | NLA_PUT(skb, attrtype, strlen(value) + 1, value) | 903 | NLA_PUT(skb, attrtype, strlen(value) + 1, value) |
901 | 904 | ||