aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2010-02-10 08:17:10 -0500
committerPatrick McHardy <kaber@trash.net>2010-02-10 08:17:10 -0500
commit9ab99d5a43e9f283738fd9fd365539306d13eaac (patch)
tree0214a63e3f4f7f4f187f0139e4a5d8abe453902b /include/net
parent76780373190d7e8ddfb6fed06aef068e2445c743 (diff)
parentb1109bf085c8dd69537b7876ea83f914dd1fe46a (diff)
Merge branch 'master' of /repos/git/net-next-2.6
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/cfg80211.h69
-rw-r--r--include/net/icmp.h2
-rw-r--r--include/net/inet_sock.h4
-rw-r--r--include/net/ip.h16
-rw-r--r--include/net/mac80211.h173
-rw-r--r--include/net/netns/conntrack.h3
-rw-r--r--include/net/netns/ipv4.h1
-rw-r--r--include/net/netns/xfrm.h6
-rw-r--r--include/net/netrom.h2
-rw-r--r--include/net/phonet/pep.h3
-rw-r--r--include/net/pkt_sched.h1
-rw-r--r--include/net/regulatory.h1
-rw-r--r--include/net/request_sock.h2
-rw-r--r--include/net/sch_generic.h19
-rw-r--r--include/net/snmp.h2
-rw-r--r--include/net/tcp.h2
-rw-r--r--include/net/xfrm.h10
17 files changed, 263 insertions, 53 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index add79930f47d..a3f0a7ed31ac 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -39,8 +39,8 @@
39 * @IEEE80211_BAND_5GHZ: around 5GHz band (4.9-5.7) 39 * @IEEE80211_BAND_5GHZ: around 5GHz band (4.9-5.7)
40 */ 40 */
41enum ieee80211_band { 41enum ieee80211_band {
42 IEEE80211_BAND_2GHZ, 42 IEEE80211_BAND_2GHZ = NL80211_BAND_2GHZ,
43 IEEE80211_BAND_5GHZ, 43 IEEE80211_BAND_5GHZ = NL80211_BAND_5GHZ,
44 44
45 /* keep last */ 45 /* keep last */
46 IEEE80211_NUM_BANDS 46 IEEE80211_NUM_BANDS
@@ -626,8 +626,14 @@ enum cfg80211_signal_type {
626 * @beacon_interval: the beacon interval as from the frame 626 * @beacon_interval: the beacon interval as from the frame
627 * @capability: the capability field in host byte order 627 * @capability: the capability field in host byte order
628 * @information_elements: the information elements (Note that there 628 * @information_elements: the information elements (Note that there
629 * is no guarantee that these are well-formed!) 629 * is no guarantee that these are well-formed!); this is a pointer to
630 * either the beacon_ies or proberesp_ies depending on whether Probe
631 * Response frame has been received
630 * @len_information_elements: total length of the information elements 632 * @len_information_elements: total length of the information elements
633 * @beacon_ies: the information elements from the last Beacon frame
634 * @len_beacon_ies: total length of the beacon_ies
635 * @proberesp_ies: the information elements from the last Probe Response frame
636 * @len_proberesp_ies: total length of the proberesp_ies
631 * @signal: signal strength value (type depends on the wiphy's signal_type) 637 * @signal: signal strength value (type depends on the wiphy's signal_type)
632 * @free_priv: function pointer to free private data 638 * @free_priv: function pointer to free private data
633 * @priv: private area for driver use, has at least wiphy->bss_priv_size bytes 639 * @priv: private area for driver use, has at least wiphy->bss_priv_size bytes
@@ -641,6 +647,10 @@ struct cfg80211_bss {
641 u16 capability; 647 u16 capability;
642 u8 *information_elements; 648 u8 *information_elements;
643 size_t len_information_elements; 649 size_t len_information_elements;
650 u8 *beacon_ies;
651 size_t len_beacon_ies;
652 u8 *proberesp_ies;
653 size_t len_proberesp_ies;
644 654
645 s32 signal; 655 s32 signal;
646 656
@@ -837,6 +847,7 @@ enum wiphy_params_flags {
837 WIPHY_PARAM_RETRY_LONG = 1 << 1, 847 WIPHY_PARAM_RETRY_LONG = 1 << 1,
838 WIPHY_PARAM_FRAG_THRESHOLD = 1 << 2, 848 WIPHY_PARAM_FRAG_THRESHOLD = 1 << 2,
839 WIPHY_PARAM_RTS_THRESHOLD = 1 << 3, 849 WIPHY_PARAM_RTS_THRESHOLD = 1 << 3,
850 WIPHY_PARAM_COVERAGE_CLASS = 1 << 4,
840}; 851};
841 852
842/** 853/**
@@ -856,20 +867,11 @@ enum tx_power_setting {
856 * cfg80211_bitrate_mask - masks for bitrate control 867 * cfg80211_bitrate_mask - masks for bitrate control
857 */ 868 */
858struct cfg80211_bitrate_mask { 869struct cfg80211_bitrate_mask {
859/*
860 * As discussed in Berlin, this struct really
861 * should look like this:
862
863 struct { 870 struct {
864 u32 legacy; 871 u32 legacy;
865 u8 mcs[IEEE80211_HT_MCS_MASK_LEN]; 872 /* TODO: add support for masking MCS rates; e.g.: */
873 /* u8 mcs[IEEE80211_HT_MCS_MASK_LEN]; */
866 } control[IEEE80211_NUM_BANDS]; 874 } control[IEEE80211_NUM_BANDS];
867
868 * Since we can always fix in-kernel users, let's keep
869 * it simpler for now:
870 */
871 u32 fixed; /* fixed bitrate, 0 == not fixed */
872 u32 maxrate; /* in kbps, 0 == no limit */
873}; 875};
874/** 876/**
875 * struct cfg80211_pmksa - PMK Security Association 877 * struct cfg80211_pmksa - PMK Security Association
@@ -1193,6 +1195,10 @@ enum wiphy_flags {
1193 WIPHY_FLAG_4ADDR_STATION = BIT(6), 1195 WIPHY_FLAG_4ADDR_STATION = BIT(6),
1194}; 1196};
1195 1197
1198struct mac_address {
1199 u8 addr[ETH_ALEN];
1200};
1201
1196/** 1202/**
1197 * struct wiphy - wireless hardware description 1203 * struct wiphy - wireless hardware description
1198 * @idx: the wiphy index assigned to this item 1204 * @idx: the wiphy index assigned to this item
@@ -1211,12 +1217,28 @@ enum wiphy_flags {
1211 * -1 = fragmentation disabled, only odd values >= 256 used 1217 * -1 = fragmentation disabled, only odd values >= 256 used
1212 * @rts_threshold: RTS threshold (dot11RTSThreshold); -1 = RTS/CTS disabled 1218 * @rts_threshold: RTS threshold (dot11RTSThreshold); -1 = RTS/CTS disabled
1213 * @net: the network namespace this wiphy currently lives in 1219 * @net: the network namespace this wiphy currently lives in
1220 * @perm_addr: permanent MAC address of this device
1221 * @addr_mask: If the device supports multiple MAC addresses by masking,
1222 * set this to a mask with variable bits set to 1, e.g. if the last
1223 * four bits are variable then set it to 00:...:00:0f. The actual
1224 * variable bits shall be determined by the interfaces added, with
1225 * interfaces not matching the mask being rejected to be brought up.
1226 * @n_addresses: number of addresses in @addresses.
1227 * @addresses: If the device has more than one address, set this pointer
1228 * to a list of addresses (6 bytes each). The first one will be used
1229 * by default for perm_addr. In this case, the mask should be set to
1230 * all-zeroes. In this case it is assumed that the device can handle
1231 * the same number of arbitrary MAC addresses.
1214 */ 1232 */
1215struct wiphy { 1233struct wiphy {
1216 /* assign these fields before you register the wiphy */ 1234 /* assign these fields before you register the wiphy */
1217 1235
1218 /* permanent MAC address */ 1236 /* permanent MAC address(es) */
1219 u8 perm_addr[ETH_ALEN]; 1237 u8 perm_addr[ETH_ALEN];
1238 u8 addr_mask[ETH_ALEN];
1239
1240 u16 n_addresses;
1241 struct mac_address *addresses;
1220 1242
1221 /* Supported interface modes, OR together BIT(NL80211_IFTYPE_...) */ 1243 /* Supported interface modes, OR together BIT(NL80211_IFTYPE_...) */
1222 u16 interface_modes; 1244 u16 interface_modes;
@@ -1236,6 +1258,7 @@ struct wiphy {
1236 u8 retry_long; 1258 u8 retry_long;
1237 u32 frag_threshold; 1259 u32 frag_threshold;
1238 u32 rts_threshold; 1260 u32 rts_threshold;
1261 u8 coverage_class;
1239 1262
1240 char fw_version[ETHTOOL_BUSINFO_LEN]; 1263 char fw_version[ETHTOOL_BUSINFO_LEN];
1241 u32 hw_version; 1264 u32 hw_version;
@@ -1635,6 +1658,22 @@ void ieee80211_amsdu_to_8023s(struct sk_buff *skb, struct sk_buff_head *list,
1635 */ 1658 */
1636unsigned int cfg80211_classify8021d(struct sk_buff *skb); 1659unsigned int cfg80211_classify8021d(struct sk_buff *skb);
1637 1660
1661/**
1662 * cfg80211_find_ie - find information element in data
1663 *
1664 * @eid: element ID
1665 * @ies: data consisting of IEs
1666 * @len: length of data
1667 *
1668 * This function will return %NULL if the element ID could
1669 * not be found or if the element is invalid (claims to be
1670 * longer than the given data), or a pointer to the first byte
1671 * of the requested element, that is the byte containing the
1672 * element ID. There are no checks on the element length
1673 * other than having to fit into the given data.
1674 */
1675const u8 *cfg80211_find_ie(u8 eid, const u8 *ies, int len);
1676
1638/* 1677/*
1639 * Regulatory helper functions for wiphys 1678 * Regulatory helper functions for wiphys
1640 */ 1679 */
diff --git a/include/net/icmp.h b/include/net/icmp.h
index dfa72d4e8907..15b3dfe9fce8 100644
--- a/include/net/icmp.h
+++ b/include/net/icmp.h
@@ -28,7 +28,7 @@ struct icmp_err {
28 unsigned fatal:1; 28 unsigned fatal:1;
29}; 29};
30 30
31extern struct icmp_err icmp_err_convert[]; 31extern const struct icmp_err icmp_err_convert[];
32#define ICMP_INC_STATS(net, field) SNMP_INC_STATS((net)->mib.icmp_statistics, field) 32#define ICMP_INC_STATS(net, field) SNMP_INC_STATS((net)->mib.icmp_statistics, field)
33#define ICMP_INC_STATS_BH(net, field) SNMP_INC_STATS_BH((net)->mib.icmp_statistics, field) 33#define ICMP_INC_STATS_BH(net, field) SNMP_INC_STATS_BH((net)->mib.icmp_statistics, field)
34#define ICMPMSGOUT_INC_STATS(net, field) SNMP_INC_STATS((net)->mib.icmpmsg_statistics, field+256) 34#define ICMPMSGOUT_INC_STATS(net, field) SNMP_INC_STATS((net)->mib.icmpmsg_statistics, field+256)
diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h
index bd4c53f75ac0..83fd34437cf1 100644
--- a/include/net/inet_sock.h
+++ b/include/net/inet_sock.h
@@ -122,10 +122,12 @@ struct inet_sock {
122 __be32 inet_saddr; 122 __be32 inet_saddr;
123 __s16 uc_ttl; 123 __s16 uc_ttl;
124 __u16 cmsg_flags; 124 __u16 cmsg_flags;
125 struct ip_options *opt;
126 __be16 inet_sport; 125 __be16 inet_sport;
127 __u16 inet_id; 126 __u16 inet_id;
127
128 struct ip_options *opt;
128 __u8 tos; 129 __u8 tos;
130 __u8 min_ttl;
129 __u8 mc_ttl; 131 __u8 mc_ttl;
130 __u8 pmtudisc; 132 __u8 pmtudisc;
131 __u8 recverr:1, 133 __u8 recverr:1,
diff --git a/include/net/ip.h b/include/net/ip.h
index 85108cfbb1ae..fb63371c07a8 100644
--- a/include/net/ip.h
+++ b/include/net/ip.h
@@ -326,6 +326,22 @@ static __inline__ void inet_reset_saddr(struct sock *sk)
326 326
327#endif 327#endif
328 328
329static inline int sk_mc_loop(struct sock *sk)
330{
331 if (!sk)
332 return 1;
333 switch (sk->sk_family) {
334 case AF_INET:
335 return inet_sk(sk)->mc_loop;
336#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
337 case AF_INET6:
338 return inet6_sk(sk)->mc_loop;
339#endif
340 }
341 WARN_ON(1);
342 return 1;
343}
344
329extern int ip_call_ra_chain(struct sk_buff *skb); 345extern int ip_call_ra_chain(struct sk_buff *skb);
330 346
331/* 347/*
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index f073a2a50574..74ccf30fdf8e 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -107,12 +107,14 @@ enum ieee80211_max_queues {
107 * 2^n-1 in the range 1..32767] 107 * 2^n-1 in the range 1..32767]
108 * @cw_max: maximum contention window [like @cw_min] 108 * @cw_max: maximum contention window [like @cw_min]
109 * @txop: maximum burst time in units of 32 usecs, 0 meaning disabled 109 * @txop: maximum burst time in units of 32 usecs, 0 meaning disabled
110 * @uapsd: is U-APSD mode enabled for the queue
110 */ 111 */
111struct ieee80211_tx_queue_params { 112struct ieee80211_tx_queue_params {
112 u16 txop; 113 u16 txop;
113 u16 cw_min; 114 u16 cw_min;
114 u16 cw_max; 115 u16 cw_max;
115 u8 aifs; 116 u8 aifs;
117 bool uapsd;
116}; 118};
117 119
118/** 120/**
@@ -184,7 +186,8 @@ enum ieee80211_bss_change {
184 * @use_short_slot: use short slot time (only relevant for ERP); 186 * @use_short_slot: use short slot time (only relevant for ERP);
185 * if the hardware cannot handle this it must set the 187 * if the hardware cannot handle this it must set the
186 * IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE hardware flag 188 * IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE hardware flag
187 * @dtim_period: num of beacons before the next DTIM, for PSM 189 * @dtim_period: num of beacons before the next DTIM, for beaconing,
190 * not valid in station mode (cf. hw conf ps_dtim_period)
188 * @timestamp: beacon timestamp 191 * @timestamp: beacon timestamp
189 * @beacon_int: beacon interval 192 * @beacon_int: beacon interval
190 * @assoc_capability: capabilities taken from assoc resp 193 * @assoc_capability: capabilities taken from assoc resp
@@ -255,9 +258,6 @@ struct ieee80211_bss_conf {
255 * @IEEE80211_TX_CTL_RATE_CTRL_PROBE: internal to mac80211, can be 258 * @IEEE80211_TX_CTL_RATE_CTRL_PROBE: internal to mac80211, can be
256 * set by rate control algorithms to indicate probe rate, will 259 * set by rate control algorithms to indicate probe rate, will
257 * be cleared for fragmented frames (except on the last fragment) 260 * be cleared for fragmented frames (except on the last fragment)
258 * @IEEE80211_TX_INTFL_RCALGO: mac80211 internal flag, do not test or
259 * set this flag in the driver; indicates that the rate control
260 * algorithm was used and should be notified of TX status
261 * @IEEE80211_TX_INTFL_NEED_TXPROCESSING: completely internal to mac80211, 261 * @IEEE80211_TX_INTFL_NEED_TXPROCESSING: completely internal to mac80211,
262 * used to indicate that a pending frame requires TX processing before 262 * used to indicate that a pending frame requires TX processing before
263 * it can be sent out. 263 * it can be sent out.
@@ -272,6 +272,11 @@ struct ieee80211_bss_conf {
272 * transmit function after the current frame, this can be used 272 * transmit function after the current frame, this can be used
273 * by drivers to kick the DMA queue only if unset or when the 273 * by drivers to kick the DMA queue only if unset or when the
274 * queue gets full. 274 * queue gets full.
275 * @IEEE80211_TX_INTFL_RETRANSMISSION: This frame is being retransmitted
276 * after TX status because the destination was asleep, it must not
277 * be modified again (no seqno assignment, crypto, etc.)
278 * @IEEE80211_TX_INTFL_HAS_RADIOTAP: This frame was injected and still
279 * has a radiotap header at skb->data.
275 */ 280 */
276enum mac80211_tx_control_flags { 281enum mac80211_tx_control_flags {
277 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0), 282 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0),
@@ -287,12 +292,13 @@ enum mac80211_tx_control_flags {
287 IEEE80211_TX_STAT_AMPDU = BIT(10), 292 IEEE80211_TX_STAT_AMPDU = BIT(10),
288 IEEE80211_TX_STAT_AMPDU_NO_BACK = BIT(11), 293 IEEE80211_TX_STAT_AMPDU_NO_BACK = BIT(11),
289 IEEE80211_TX_CTL_RATE_CTRL_PROBE = BIT(12), 294 IEEE80211_TX_CTL_RATE_CTRL_PROBE = BIT(12),
290 IEEE80211_TX_INTFL_RCALGO = BIT(13),
291 IEEE80211_TX_INTFL_NEED_TXPROCESSING = BIT(14), 295 IEEE80211_TX_INTFL_NEED_TXPROCESSING = BIT(14),
292 IEEE80211_TX_INTFL_RETRIED = BIT(15), 296 IEEE80211_TX_INTFL_RETRIED = BIT(15),
293 IEEE80211_TX_INTFL_DONT_ENCRYPT = BIT(16), 297 IEEE80211_TX_INTFL_DONT_ENCRYPT = BIT(16),
294 IEEE80211_TX_CTL_PSPOLL_RESPONSE = BIT(17), 298 IEEE80211_TX_CTL_PSPOLL_RESPONSE = BIT(17),
295 IEEE80211_TX_CTL_MORE_FRAMES = BIT(18), 299 IEEE80211_TX_CTL_MORE_FRAMES = BIT(18),
300 IEEE80211_TX_INTFL_RETRANSMISSION = BIT(19),
301 IEEE80211_TX_INTFL_HAS_RADIOTAP = BIT(20),
296}; 302};
297 303
298/** 304/**
@@ -571,7 +577,13 @@ struct ieee80211_rx_status {
571 * @IEEE80211_CONF_MONITOR: there's a monitor interface present -- use this 577 * @IEEE80211_CONF_MONITOR: there's a monitor interface present -- use this
572 * to determine for example whether to calculate timestamps for packets 578 * to determine for example whether to calculate timestamps for packets
573 * or not, do not use instead of filter flags! 579 * or not, do not use instead of filter flags!
574 * @IEEE80211_CONF_PS: Enable 802.11 power save mode (managed mode only) 580 * @IEEE80211_CONF_PS: Enable 802.11 power save mode (managed mode only).
581 * This is the power save mode defined by IEEE 802.11-2007 section 11.2,
582 * meaning that the hardware still wakes up for beacons, is able to
583 * transmit frames and receive the possible acknowledgment frames.
584 * Not to be confused with hardware specific wakeup/sleep states,
585 * driver is responsible for that. See the section "Powersave support"
586 * for more.
575 * @IEEE80211_CONF_IDLE: The device is running, but idle; if the flag is set 587 * @IEEE80211_CONF_IDLE: The device is running, but idle; if the flag is set
576 * the driver should be prepared to handle configuration requests but 588 * the driver should be prepared to handle configuration requests but
577 * may turn the device off as much as possible. Typically, this flag will 589 * may turn the device off as much as possible. Typically, this flag will
@@ -611,7 +623,11 @@ enum ieee80211_conf_changed {
611/** 623/**
612 * enum ieee80211_smps_mode - spatial multiplexing power save mode 624 * enum ieee80211_smps_mode - spatial multiplexing power save mode
613 * 625 *
614 * @ 626 * @IEEE80211_SMPS_AUTOMATIC: automatic
627 * @IEEE80211_SMPS_OFF: off
628 * @IEEE80211_SMPS_STATIC: static
629 * @IEEE80211_SMPS_DYNAMIC: dynamic
630 * @IEEE80211_SMPS_NUM_MODES: internal, don't use
615 */ 631 */
616enum ieee80211_smps_mode { 632enum ieee80211_smps_mode {
617 IEEE80211_SMPS_AUTOMATIC, 633 IEEE80211_SMPS_AUTOMATIC,
@@ -636,6 +652,9 @@ enum ieee80211_smps_mode {
636 * value will be only achievable between DTIM frames, the hardware 652 * value will be only achievable between DTIM frames, the hardware
637 * needs to check for the multicast traffic bit in DTIM beacons. 653 * needs to check for the multicast traffic bit in DTIM beacons.
638 * This variable is valid only when the CONF_PS flag is set. 654 * This variable is valid only when the CONF_PS flag is set.
655 * @ps_dtim_period: The DTIM period of the AP we're connected to, for use
656 * in power saving. Power saving will not be enabled until a beacon
657 * has been received and the DTIM period is known.
639 * @dynamic_ps_timeout: The dynamic powersave timeout (in ms), see the 658 * @dynamic_ps_timeout: The dynamic powersave timeout (in ms), see the
640 * powersave documentation below. This variable is valid only when 659 * powersave documentation below. This variable is valid only when
641 * the CONF_PS flag is set. 660 * the CONF_PS flag is set.
@@ -662,6 +681,7 @@ struct ieee80211_conf {
662 int max_sleep_period; 681 int max_sleep_period;
663 682
664 u16 listen_interval; 683 u16 listen_interval;
684 u8 ps_dtim_period;
665 685
666 u8 long_frame_max_tx_count, short_frame_max_tx_count; 686 u8 long_frame_max_tx_count, short_frame_max_tx_count;
667 687
@@ -933,6 +953,11 @@ enum ieee80211_tkip_key_type {
933 * Hardware supports dynamic spatial multiplexing powersave, 953 * Hardware supports dynamic spatial multiplexing powersave,
934 * ie. can turn off all but one chain and then wake the rest 954 * ie. can turn off all but one chain and then wake the rest
935 * up as required after, for example, rts/cts handshake. 955 * up as required after, for example, rts/cts handshake.
956 *
957 * @IEEE80211_HW_SUPPORTS_UAPSD:
958 * Hardware supports Unscheduled Automatic Power Save Delivery
959 * (U-APSD) in managed mode. The mode is configured with
960 * conf_tx() operation.
936 */ 961 */
937enum ieee80211_hw_flags { 962enum ieee80211_hw_flags {
938 IEEE80211_HW_HAS_RATE_CONTROL = 1<<0, 963 IEEE80211_HW_HAS_RATE_CONTROL = 1<<0,
@@ -952,6 +977,7 @@ enum ieee80211_hw_flags {
952 IEEE80211_HW_BEACON_FILTER = 1<<14, 977 IEEE80211_HW_BEACON_FILTER = 1<<14,
953 IEEE80211_HW_SUPPORTS_STATIC_SMPS = 1<<15, 978 IEEE80211_HW_SUPPORTS_STATIC_SMPS = 1<<15,
954 IEEE80211_HW_SUPPORTS_DYNAMIC_SMPS = 1<<16, 979 IEEE80211_HW_SUPPORTS_DYNAMIC_SMPS = 1<<16,
980 IEEE80211_HW_SUPPORTS_UAPSD = 1<<17,
955}; 981};
956 982
957/** 983/**
@@ -1130,18 +1156,24 @@ ieee80211_get_alt_retry_rate(const struct ieee80211_hw *hw,
1130 * 1156 *
1131 * mac80211 has support for various powersave implementations. 1157 * mac80211 has support for various powersave implementations.
1132 * 1158 *
1133 * First, it can support hardware that handles all powersaving by 1159 * First, it can support hardware that handles all powersaving by itself,
1134 * itself, such hardware should simply set the %IEEE80211_HW_SUPPORTS_PS 1160 * such hardware should simply set the %IEEE80211_HW_SUPPORTS_PS hardware
1135 * hardware flag. In that case, it will be told about the desired 1161 * flag. In that case, it will be told about the desired powersave mode
1136 * powersave mode depending on the association status, and the driver 1162 * with the %IEEE80211_CONF_PS flag depending on the association status.
1137 * must take care of sending nullfunc frames when necessary, i.e. when 1163 * The hardware must take care of sending nullfunc frames when necessary,
1138 * entering and leaving powersave mode. The driver is required to look at 1164 * i.e. when entering and leaving powersave mode. The hardware is required
1139 * the AID in beacons and signal to the AP that it woke up when it finds 1165 * to look at the AID in beacons and signal to the AP that it woke up when
1140 * traffic directed to it. This mode supports dynamic PS by simply 1166 * it finds traffic directed to it.
1141 * enabling/disabling PS. 1167 *
1142 * 1168 * %IEEE80211_CONF_PS flag enabled means that the powersave mode defined in
1143 * Additionally, such hardware may set the %IEEE80211_HW_SUPPORTS_DYNAMIC_PS 1169 * IEEE 802.11-2007 section 11.2 is enabled. This is not to be confused
1144 * flag to indicate that it can support dynamic PS mode itself (see below). 1170 * with hardware wakeup and sleep states. Driver is responsible for waking
1171 * up the hardware before issueing commands to the hardware and putting it
1172 * back to sleep at approriate times.
1173 *
1174 * When PS is enabled, hardware needs to wakeup for beacons and receive the
1175 * buffered multicast/broadcast frames after the beacon. Also it must be
1176 * possible to send frames and receive the acknowledment frame.
1145 * 1177 *
1146 * Other hardware designs cannot send nullfunc frames by themselves and also 1178 * Other hardware designs cannot send nullfunc frames by themselves and also
1147 * need software support for parsing the TIM bitmap. This is also supported 1179 * need software support for parsing the TIM bitmap. This is also supported
@@ -1149,14 +1181,35 @@ ieee80211_get_alt_retry_rate(const struct ieee80211_hw *hw,
1149 * %IEEE80211_HW_PS_NULLFUNC_STACK flags. The hardware is of course still 1181 * %IEEE80211_HW_PS_NULLFUNC_STACK flags. The hardware is of course still
1150 * required to pass up beacons. The hardware is still required to handle 1182 * required to pass up beacons. The hardware is still required to handle
1151 * waking up for multicast traffic; if it cannot the driver must handle that 1183 * waking up for multicast traffic; if it cannot the driver must handle that
1152 * as best as it can, mac80211 is too slow. 1184 * as best as it can, mac80211 is too slow to do that.
1153 * 1185 *
1154 * Dynamic powersave mode is an extension to normal powersave mode in which 1186 * Dynamic powersave is an extension to normal powersave in which the
1155 * the hardware stays awake for a user-specified period of time after sending 1187 * hardware stays awake for a user-specified period of time after sending a
1156 * a frame so that reply frames need not be buffered and therefore delayed 1188 * frame so that reply frames need not be buffered and therefore delayed to
1157 * to the next wakeup. This can either be supported by hardware, in which case 1189 * the next wakeup. It's compromise of getting good enough latency when
1158 * the driver needs to look at the @dynamic_ps_timeout hardware configuration 1190 * there's data traffic and still saving significantly power in idle
1159 * value, or by the stack if all nullfunc handling is in the stack. 1191 * periods.
1192 *
1193 * Dynamic powersave is supported by simply mac80211 enabling and disabling
1194 * PS based on traffic. Driver needs to only set %IEEE80211_HW_SUPPORTS_PS
1195 * flag and mac80211 will handle everything automatically. Additionally,
1196 * hardware having support for the dynamic PS feature may set the
1197 * %IEEE80211_HW_SUPPORTS_DYNAMIC_PS flag to indicate that it can support
1198 * dynamic PS mode itself. The driver needs to look at the
1199 * @dynamic_ps_timeout hardware configuration value and use it that value
1200 * whenever %IEEE80211_CONF_PS is set. In this case mac80211 will disable
1201 * dynamic PS feature in stack and will just keep %IEEE80211_CONF_PS
1202 * enabled whenever user has enabled powersave.
1203 *
1204 * Driver informs U-APSD client support by enabling
1205 * %IEEE80211_HW_SUPPORTS_UAPSD flag. The mode is configured through the
1206 * uapsd paramater in conf_tx() operation. Hardware needs to send the QoS
1207 * Nullfunc frames and stay awake until the service period has ended. To
1208 * utilize U-APSD, dynamic powersave is disabled for voip AC and all frames
1209 * from that AC are transmitted with powersave enabled.
1210 *
1211 * Note: U-APSD client mode is not yet supported with
1212 * %IEEE80211_HW_PS_NULLFUNC_STACK.
1160 */ 1213 */
1161 1214
1162/** 1215/**
@@ -1444,7 +1497,7 @@ enum ieee80211_ampdu_mlme_action {
1444 * @update_tkip_key: See the section "Hardware crypto acceleration" 1497 * @update_tkip_key: See the section "Hardware crypto acceleration"
1445 * This callback will be called in the context of Rx. Called for drivers 1498 * This callback will be called in the context of Rx. Called for drivers
1446 * which set IEEE80211_KEY_FLAG_TKIP_REQ_RX_P1_KEY. 1499 * which set IEEE80211_KEY_FLAG_TKIP_REQ_RX_P1_KEY.
1447 * The callback can sleep. 1500 * The callback must be atomic.
1448 * 1501 *
1449 * @hw_scan: Ask the hardware to service the scan request, no need to start 1502 * @hw_scan: Ask the hardware to service the scan request, no need to start
1450 * the scan state machine in stack. The scan must honour the channel 1503 * the scan state machine in stack. The scan must honour the channel
@@ -1533,6 +1586,10 @@ enum ieee80211_ampdu_mlme_action {
1533 * and need to call wiphy_rfkill_set_hw_state() in the callback. 1586 * and need to call wiphy_rfkill_set_hw_state() in the callback.
1534 * The callback can sleep. 1587 * The callback can sleep.
1535 * 1588 *
1589 * @set_coverage_class: Set slot time for given coverage class as specified
1590 * in IEEE 802.11-2007 section 17.3.8.6 and modify ACK timeout
1591 * accordingly. This callback is not required and may sleep.
1592 *
1536 * @testmode_cmd: Implement a cfg80211 test mode command. 1593 * @testmode_cmd: Implement a cfg80211 test mode command.
1537 * The callback can sleep. 1594 * The callback can sleep.
1538 * 1595 *
@@ -1565,8 +1622,10 @@ struct ieee80211_ops {
1565 struct ieee80211_vif *vif, struct ieee80211_sta *sta, 1622 struct ieee80211_vif *vif, struct ieee80211_sta *sta,
1566 struct ieee80211_key_conf *key); 1623 struct ieee80211_key_conf *key);
1567 void (*update_tkip_key)(struct ieee80211_hw *hw, 1624 void (*update_tkip_key)(struct ieee80211_hw *hw,
1568 struct ieee80211_key_conf *conf, const u8 *address, 1625 struct ieee80211_vif *vif,
1569 u32 iv32, u16 *phase1key); 1626 struct ieee80211_key_conf *conf,
1627 struct ieee80211_sta *sta,
1628 u32 iv32, u16 *phase1key);
1570 int (*hw_scan)(struct ieee80211_hw *hw, 1629 int (*hw_scan)(struct ieee80211_hw *hw,
1571 struct cfg80211_scan_request *req); 1630 struct cfg80211_scan_request *req);
1572 void (*sw_scan_start)(struct ieee80211_hw *hw); 1631 void (*sw_scan_start)(struct ieee80211_hw *hw);
@@ -1592,6 +1651,7 @@ struct ieee80211_ops {
1592 struct ieee80211_sta *sta, u16 tid, u16 *ssn); 1651 struct ieee80211_sta *sta, u16 tid, u16 *ssn);
1593 1652
1594 void (*rfkill_poll)(struct ieee80211_hw *hw); 1653 void (*rfkill_poll)(struct ieee80211_hw *hw);
1654 void (*set_coverage_class)(struct ieee80211_hw *hw, u8 coverage_class);
1595#ifdef CONFIG_NL80211_TESTMODE 1655#ifdef CONFIG_NL80211_TESTMODE
1596 int (*testmode_cmd)(struct ieee80211_hw *hw, void *data, int len); 1656 int (*testmode_cmd)(struct ieee80211_hw *hw, void *data, int len);
1597#endif 1657#endif
@@ -1874,6 +1934,53 @@ static inline struct sk_buff *ieee80211_beacon_get(struct ieee80211_hw *hw,
1874} 1934}
1875 1935
1876/** 1936/**
1937 * ieee80211_pspoll_get - retrieve a PS Poll template
1938 * @hw: pointer obtained from ieee80211_alloc_hw().
1939 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
1940 *
1941 * Creates a PS Poll a template which can, for example, uploaded to
1942 * hardware. The template must be updated after association so that correct
1943 * AID, BSSID and MAC address is used.
1944 *
1945 * Note: Caller (or hardware) is responsible for setting the
1946 * &IEEE80211_FCTL_PM bit.
1947 */
1948struct sk_buff *ieee80211_pspoll_get(struct ieee80211_hw *hw,
1949 struct ieee80211_vif *vif);
1950
1951/**
1952 * ieee80211_nullfunc_get - retrieve a nullfunc template
1953 * @hw: pointer obtained from ieee80211_alloc_hw().
1954 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
1955 *
1956 * Creates a Nullfunc template which can, for example, uploaded to
1957 * hardware. The template must be updated after association so that correct
1958 * BSSID and address is used.
1959 *
1960 * Note: Caller (or hardware) is responsible for setting the
1961 * &IEEE80211_FCTL_PM bit as well as Duration and Sequence Control fields.
1962 */
1963struct sk_buff *ieee80211_nullfunc_get(struct ieee80211_hw *hw,
1964 struct ieee80211_vif *vif);
1965
1966/**
1967 * ieee80211_probereq_get - retrieve a Probe Request template
1968 * @hw: pointer obtained from ieee80211_alloc_hw().
1969 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
1970 * @ssid: SSID buffer
1971 * @ssid_len: length of SSID
1972 * @ie: buffer containing all IEs except SSID for the template
1973 * @ie_len: length of the IE buffer
1974 *
1975 * Creates a Probe Request template which can, for example, be uploaded to
1976 * hardware.
1977 */
1978struct sk_buff *ieee80211_probereq_get(struct ieee80211_hw *hw,
1979 struct ieee80211_vif *vif,
1980 const u8 *ssid, size_t ssid_len,
1981 const u8 *ie, size_t ie_len);
1982
1983/**
1877 * ieee80211_rts_get - RTS frame generation function 1984 * ieee80211_rts_get - RTS frame generation function
1878 * @hw: pointer obtained from ieee80211_alloc_hw(). 1985 * @hw: pointer obtained from ieee80211_alloc_hw().
1879 * @vif: &struct ieee80211_vif pointer from the add_interface callback. 1986 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
@@ -2292,8 +2399,12 @@ enum rate_control_changed {
2292 * @short_preamble: whether mac80211 will request short-preamble transmission 2399 * @short_preamble: whether mac80211 will request short-preamble transmission
2293 * if the selected rate supports it 2400 * if the selected rate supports it
2294 * @max_rate_idx: user-requested maximum rate (not MCS for now) 2401 * @max_rate_idx: user-requested maximum rate (not MCS for now)
2402 * (deprecated; this will be removed once drivers get updated to use
2403 * rate_idx_mask)
2404 * @rate_idx_mask: user-requested rate mask (not MCS for now)
2295 * @skb: the skb that will be transmitted, the control information in it needs 2405 * @skb: the skb that will be transmitted, the control information in it needs
2296 * to be filled in 2406 * to be filled in
2407 * @ap: whether this frame is sent out in AP mode
2297 */ 2408 */
2298struct ieee80211_tx_rate_control { 2409struct ieee80211_tx_rate_control {
2299 struct ieee80211_hw *hw; 2410 struct ieee80211_hw *hw;
@@ -2303,6 +2414,8 @@ struct ieee80211_tx_rate_control {
2303 struct ieee80211_tx_rate reported_rate; 2414 struct ieee80211_tx_rate reported_rate;
2304 bool rts, short_preamble; 2415 bool rts, short_preamble;
2305 u8 max_rate_idx; 2416 u8 max_rate_idx;
2417 u32 rate_idx_mask;
2418 bool ap;
2306}; 2419};
2307 2420
2308struct rate_control_ops { 2421struct rate_control_ops {
diff --git a/include/net/netns/conntrack.h b/include/net/netns/conntrack.h
index ba1ba0c5efd1..63d449807d9b 100644
--- a/include/net/netns/conntrack.h
+++ b/include/net/netns/conntrack.h
@@ -11,6 +11,8 @@ struct nf_conntrack_ecache;
11struct netns_ct { 11struct netns_ct {
12 atomic_t count; 12 atomic_t count;
13 unsigned int expect_count; 13 unsigned int expect_count;
14 unsigned int htable_size;
15 struct kmem_cache *nf_conntrack_cachep;
14 struct hlist_nulls_head *hash; 16 struct hlist_nulls_head *hash;
15 struct hlist_head *expect_hash; 17 struct hlist_head *expect_hash;
16 struct hlist_nulls_head unconfirmed; 18 struct hlist_nulls_head unconfirmed;
@@ -28,5 +30,6 @@ struct netns_ct {
28#endif 30#endif
29 int hash_vmalloc; 31 int hash_vmalloc;
30 int expect_vmalloc; 32 int expect_vmalloc;
33 char *slabname;
31}; 34};
32#endif 35#endif
diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
index 8098f6b8319d..2764994c9136 100644
--- a/include/net/netns/ipv4.h
+++ b/include/net/netns/ipv4.h
@@ -42,6 +42,7 @@ struct netns_ipv4 {
42#endif 42#endif
43 struct xt_table *nat_table; 43 struct xt_table *nat_table;
44 struct hlist_head *nat_bysource; 44 struct hlist_head *nat_bysource;
45 unsigned int nat_htable_size;
45 int nat_vmalloced; 46 int nat_vmalloced;
46#endif 47#endif
47 48
diff --git a/include/net/netns/xfrm.h b/include/net/netns/xfrm.h
index 56f8e5585df7..74f119a2829a 100644
--- a/include/net/netns/xfrm.h
+++ b/include/net/netns/xfrm.h
@@ -5,6 +5,7 @@
5#include <linux/wait.h> 5#include <linux/wait.h>
6#include <linux/workqueue.h> 6#include <linux/workqueue.h>
7#include <linux/xfrm.h> 7#include <linux/xfrm.h>
8#include <net/dst_ops.h>
8 9
9struct ctl_table_header; 10struct ctl_table_header;
10 11
@@ -42,6 +43,11 @@ struct netns_xfrm {
42 unsigned int policy_count[XFRM_POLICY_MAX * 2]; 43 unsigned int policy_count[XFRM_POLICY_MAX * 2];
43 struct work_struct policy_hash_work; 44 struct work_struct policy_hash_work;
44 45
46 struct dst_ops xfrm4_dst_ops;
47#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
48 struct dst_ops xfrm6_dst_ops;
49#endif
50
45 struct sock *nlsk; 51 struct sock *nlsk;
46 struct sock *nlsk_stash; 52 struct sock *nlsk_stash;
47 53
diff --git a/include/net/netrom.h b/include/net/netrom.h
index 15696b1fd30f..ab170a60e7d3 100644
--- a/include/net/netrom.h
+++ b/include/net/netrom.h
@@ -132,6 +132,8 @@ static __inline__ void nr_node_put(struct nr_node *nr_node)
132static __inline__ void nr_neigh_put(struct nr_neigh *nr_neigh) 132static __inline__ void nr_neigh_put(struct nr_neigh *nr_neigh)
133{ 133{
134 if (atomic_dec_and_test(&nr_neigh->refcount)) { 134 if (atomic_dec_and_test(&nr_neigh->refcount)) {
135 if (nr_neigh->ax25)
136 ax25_cb_put(nr_neigh->ax25);
135 kfree(nr_neigh->digipeat); 137 kfree(nr_neigh->digipeat);
136 kfree(nr_neigh); 138 kfree(nr_neigh);
137 } 139 }
diff --git a/include/net/phonet/pep.h b/include/net/phonet/pep.h
index 4c61cdce4e5f..35672b1cf44a 100644
--- a/include/net/phonet/pep.h
+++ b/include/net/phonet/pep.h
@@ -44,6 +44,7 @@ struct pep_sock {
44 u8 rx_fc; /* RX flow control */ 44 u8 rx_fc; /* RX flow control */
45 u8 tx_fc; /* TX flow control */ 45 u8 tx_fc; /* TX flow control */
46 u8 init_enable; /* auto-enable at creation */ 46 u8 init_enable; /* auto-enable at creation */
47 u8 aligned;
47}; 48};
48 49
49static inline struct pep_sock *pep_sk(struct sock *sk) 50static inline struct pep_sock *pep_sk(struct sock *sk)
@@ -77,6 +78,7 @@ static inline struct pnpipehdr *pnp_hdr(struct sk_buff *skb)
77 78
78enum { 79enum {
79 PNS_PIPE_DATA = 0x20, 80 PNS_PIPE_DATA = 0x20,
81 PNS_PIPE_ALIGNED_DATA,
80 82
81 PNS_PEP_CONNECT_REQ = 0x40, 83 PNS_PEP_CONNECT_REQ = 0x40,
82 PNS_PEP_CONNECT_RESP, 84 PNS_PEP_CONNECT_RESP,
@@ -138,6 +140,7 @@ enum {
138 PN_PIPE_SB_NEGOTIATED_FC, 140 PN_PIPE_SB_NEGOTIATED_FC,
139 PN_PIPE_SB_REQUIRED_FC_TX, 141 PN_PIPE_SB_REQUIRED_FC_TX,
140 PN_PIPE_SB_PREFERRED_FC_RX, 142 PN_PIPE_SB_PREFERRED_FC_RX,
143 PN_PIPE_SB_ALIGNED_DATA,
141}; 144};
142 145
143/* Phonet pipe flow control models */ 146/* Phonet pipe flow control models */
diff --git a/include/net/pkt_sched.h b/include/net/pkt_sched.h
index 2d567265363e..b6cdc33b39c1 100644
--- a/include/net/pkt_sched.h
+++ b/include/net/pkt_sched.h
@@ -71,6 +71,7 @@ extern void qdisc_watchdog_cancel(struct qdisc_watchdog *wd);
71 71
72extern struct Qdisc_ops pfifo_qdisc_ops; 72extern struct Qdisc_ops pfifo_qdisc_ops;
73extern struct Qdisc_ops bfifo_qdisc_ops; 73extern struct Qdisc_ops bfifo_qdisc_ops;
74extern struct Qdisc_ops pfifo_head_drop_qdisc_ops;
74 75
75extern int fifo_set_limit(struct Qdisc *q, unsigned int limit); 76extern int fifo_set_limit(struct Qdisc *q, unsigned int limit);
76extern struct Qdisc *fifo_create_dflt(struct Qdisc *sch, struct Qdisc_ops *ops, 77extern struct Qdisc *fifo_create_dflt(struct Qdisc *sch, struct Qdisc_ops *ops,
diff --git a/include/net/regulatory.h b/include/net/regulatory.h
index 47995b81c5d7..f873ee37f7e4 100644
--- a/include/net/regulatory.h
+++ b/include/net/regulatory.h
@@ -39,6 +39,7 @@ enum environment_cap {
39 * 00 - World regulatory domain 39 * 00 - World regulatory domain
40 * 99 - built by driver but a specific alpha2 cannot be determined 40 * 99 - built by driver but a specific alpha2 cannot be determined
41 * 98 - result of an intersection between two regulatory domains 41 * 98 - result of an intersection between two regulatory domains
42 * 97 - regulatory domain has not yet been configured
42 * @intersect: indicates whether the wireless core should intersect 43 * @intersect: indicates whether the wireless core should intersect
43 * the requested regulatory domain with the presently set regulatory 44 * the requested regulatory domain with the presently set regulatory
44 * domain. 45 * domain.
diff --git a/include/net/request_sock.h b/include/net/request_sock.h
index c9b50ebd9ce9..99e6e19b57c2 100644
--- a/include/net/request_sock.h
+++ b/include/net/request_sock.h
@@ -45,6 +45,8 @@ struct request_sock_ops {
45 void (*send_reset)(struct sock *sk, 45 void (*send_reset)(struct sock *sk,
46 struct sk_buff *skb); 46 struct sk_buff *skb);
47 void (*destructor)(struct request_sock *req); 47 void (*destructor)(struct request_sock *req);
48 void (*syn_ack_timeout)(struct sock *sk,
49 struct request_sock *req);
48}; 50};
49 51
50/* struct request_sock - mini sock to represent a connection request 52/* struct request_sock - mini sock to represent a connection request
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index dad558bc06fa..67dc08eaaa45 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -427,6 +427,25 @@ static inline struct sk_buff *qdisc_dequeue_head(struct Qdisc *sch)
427 return __qdisc_dequeue_head(sch, &sch->q); 427 return __qdisc_dequeue_head(sch, &sch->q);
428} 428}
429 429
430static inline unsigned int __qdisc_queue_drop_head(struct Qdisc *sch,
431 struct sk_buff_head *list)
432{
433 struct sk_buff *skb = __qdisc_dequeue_head(sch, list);
434
435 if (likely(skb != NULL)) {
436 unsigned int len = qdisc_pkt_len(skb);
437 kfree_skb(skb);
438 return len;
439 }
440
441 return 0;
442}
443
444static inline unsigned int qdisc_queue_drop_head(struct Qdisc *sch)
445{
446 return __qdisc_queue_drop_head(sch, &sch->q);
447}
448
430static inline struct sk_buff *__qdisc_dequeue_tail(struct Qdisc *sch, 449static inline struct sk_buff *__qdisc_dequeue_tail(struct Qdisc *sch,
431 struct sk_buff_head *list) 450 struct sk_buff_head *list)
432{ 451{
diff --git a/include/net/snmp.h b/include/net/snmp.h
index f0d756f2ac99..da02ee027d69 100644
--- a/include/net/snmp.h
+++ b/include/net/snmp.h
@@ -32,7 +32,7 @@
32 * - name of entries. 32 * - name of entries.
33 */ 33 */
34struct snmp_mib { 34struct snmp_mib {
35 char *name; 35 const char *name;
36 int entry; 36 int entry;
37}; 37};
38 38
diff --git a/include/net/tcp.h b/include/net/tcp.h
index 788c99f98597..87d164b9bd8f 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -400,6 +400,8 @@ extern int compat_tcp_setsockopt(struct sock *sk,
400 int level, int optname, 400 int level, int optname,
401 char __user *optval, unsigned int optlen); 401 char __user *optval, unsigned int optlen);
402extern void tcp_set_keepalive(struct sock *sk, int val); 402extern void tcp_set_keepalive(struct sock *sk, int val);
403extern void tcp_syn_ack_timeout(struct sock *sk,
404 struct request_sock *req);
403extern int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, 405extern int tcp_recvmsg(struct kiocb *iocb, struct sock *sk,
404 struct msghdr *msg, 406 struct msghdr *msg,
405 size_t len, int nonblock, 407 size_t len, int nonblock,
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index 6d85861ab990..fcee547ca7e3 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -1367,8 +1367,8 @@ struct xfrmk_spdinfo {
1367extern struct xfrm_state *xfrm_find_acq_byseq(struct net *net, u32 seq); 1367extern struct xfrm_state *xfrm_find_acq_byseq(struct net *net, u32 seq);
1368extern int xfrm_state_delete(struct xfrm_state *x); 1368extern int xfrm_state_delete(struct xfrm_state *x);
1369extern int xfrm_state_flush(struct net *net, u8 proto, struct xfrm_audit *audit_info); 1369extern int xfrm_state_flush(struct net *net, u8 proto, struct xfrm_audit *audit_info);
1370extern void xfrm_sad_getinfo(struct xfrmk_sadinfo *si); 1370extern void xfrm_sad_getinfo(struct net *net, struct xfrmk_sadinfo *si);
1371extern void xfrm_spd_getinfo(struct xfrmk_spdinfo *si); 1371extern void xfrm_spd_getinfo(struct net *net, struct xfrmk_spdinfo *si);
1372extern int xfrm_replay_check(struct xfrm_state *x, 1372extern int xfrm_replay_check(struct xfrm_state *x,
1373 struct sk_buff *skb, __be32 seq); 1373 struct sk_buff *skb, __be32 seq);
1374extern void xfrm_replay_advance(struct xfrm_state *x, __be32 seq); 1374extern void xfrm_replay_advance(struct xfrm_state *x, __be32 seq);
@@ -1408,9 +1408,9 @@ extern int xfrm6_input_addr(struct sk_buff *skb, xfrm_address_t *daddr,
1408 xfrm_address_t *saddr, u8 proto); 1408 xfrm_address_t *saddr, u8 proto);
1409extern int xfrm6_tunnel_register(struct xfrm6_tunnel *handler, unsigned short family); 1409extern int xfrm6_tunnel_register(struct xfrm6_tunnel *handler, unsigned short family);
1410extern int xfrm6_tunnel_deregister(struct xfrm6_tunnel *handler, unsigned short family); 1410extern int xfrm6_tunnel_deregister(struct xfrm6_tunnel *handler, unsigned short family);
1411extern __be32 xfrm6_tunnel_alloc_spi(xfrm_address_t *saddr); 1411extern __be32 xfrm6_tunnel_alloc_spi(struct net *net, xfrm_address_t *saddr);
1412extern void xfrm6_tunnel_free_spi(xfrm_address_t *saddr); 1412extern void xfrm6_tunnel_free_spi(struct net *net, xfrm_address_t *saddr);
1413extern __be32 xfrm6_tunnel_spi_lookup(xfrm_address_t *saddr); 1413extern __be32 xfrm6_tunnel_spi_lookup(struct net *net, xfrm_address_t *saddr);
1414extern int xfrm6_extract_output(struct xfrm_state *x, struct sk_buff *skb); 1414extern int xfrm6_extract_output(struct xfrm_state *x, struct sk_buff *skb);
1415extern int xfrm6_prepare_output(struct xfrm_state *x, struct sk_buff *skb); 1415extern int xfrm6_prepare_output(struct xfrm_state *x, struct sk_buff *skb);
1416extern int xfrm6_output(struct sk_buff *skb); 1416extern int xfrm6_output(struct sk_buff *skb);