diff options
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/ieee80211.h | 11 | ||||
-rw-r--r-- | include/net/ip6_tunnel.h | 1 | ||||
-rw-r--r-- | include/net/ipip.h | 1 | ||||
-rw-r--r-- | include/net/mac80211.h | 152 | ||||
-rw-r--r-- | include/net/net_namespace.h | 3 | ||||
-rw-r--r-- | include/net/sctp/sctp.h | 2 | ||||
-rw-r--r-- | include/net/sctp/structs.h | 4 | ||||
-rw-r--r-- | include/net/sctp/user.h | 34 | ||||
-rw-r--r-- | include/net/tipc/tipc_port.h | 3 |
9 files changed, 116 insertions, 95 deletions
diff --git a/include/net/ieee80211.h b/include/net/ieee80211.h index 529816bfbc52..b31399e1fd83 100644 --- a/include/net/ieee80211.h +++ b/include/net/ieee80211.h | |||
@@ -1262,9 +1262,6 @@ extern int ieee80211_set_encryption(struct ieee80211_device *ieee); | |||
1262 | /* ieee80211_tx.c */ | 1262 | /* ieee80211_tx.c */ |
1263 | extern int ieee80211_xmit(struct sk_buff *skb, struct net_device *dev); | 1263 | extern int ieee80211_xmit(struct sk_buff *skb, struct net_device *dev); |
1264 | extern void ieee80211_txb_free(struct ieee80211_txb *); | 1264 | extern void ieee80211_txb_free(struct ieee80211_txb *); |
1265 | extern int ieee80211_tx_frame(struct ieee80211_device *ieee, | ||
1266 | struct ieee80211_hdr *frame, int hdr_len, | ||
1267 | int total_len, int encrypt_mpdu); | ||
1268 | 1265 | ||
1269 | /* ieee80211_rx.c */ | 1266 | /* ieee80211_rx.c */ |
1270 | extern void ieee80211_rx_any(struct ieee80211_device *ieee, | 1267 | extern void ieee80211_rx_any(struct ieee80211_device *ieee, |
@@ -1312,14 +1309,6 @@ extern int ieee80211_wx_set_encodeext(struct ieee80211_device *ieee, | |||
1312 | extern int ieee80211_wx_get_encodeext(struct ieee80211_device *ieee, | 1309 | extern int ieee80211_wx_get_encodeext(struct ieee80211_device *ieee, |
1313 | struct iw_request_info *info, | 1310 | struct iw_request_info *info, |
1314 | union iwreq_data *wrqu, char *extra); | 1311 | union iwreq_data *wrqu, char *extra); |
1315 | extern int ieee80211_wx_set_auth(struct net_device *dev, | ||
1316 | struct iw_request_info *info, | ||
1317 | union iwreq_data *wrqu, | ||
1318 | char *extra); | ||
1319 | extern int ieee80211_wx_get_auth(struct net_device *dev, | ||
1320 | struct iw_request_info *info, | ||
1321 | union iwreq_data *wrqu, | ||
1322 | char *extra); | ||
1323 | 1312 | ||
1324 | static inline void ieee80211_increment_scans(struct ieee80211_device *ieee) | 1313 | static inline void ieee80211_increment_scans(struct ieee80211_device *ieee) |
1325 | { | 1314 | { |
diff --git a/include/net/ip6_tunnel.h b/include/net/ip6_tunnel.h index 6512d85f11b3..3780592ebe8e 100644 --- a/include/net/ip6_tunnel.h +++ b/include/net/ip6_tunnel.h | |||
@@ -19,7 +19,6 @@ | |||
19 | struct ip6_tnl { | 19 | struct ip6_tnl { |
20 | struct ip6_tnl *next; /* next tunnel in list */ | 20 | struct ip6_tnl *next; /* next tunnel in list */ |
21 | struct net_device *dev; /* virtual device associated with tunnel */ | 21 | struct net_device *dev; /* virtual device associated with tunnel */ |
22 | struct net_device_stats stat; /* statistics for tunnel device */ | ||
23 | int recursion; /* depth of hard_start_xmit recursion */ | 22 | int recursion; /* depth of hard_start_xmit recursion */ |
24 | struct ip6_tnl_parm parms; /* tunnel configuration parameters */ | 23 | struct ip6_tnl_parm parms; /* tunnel configuration parameters */ |
25 | struct flowi fl; /* flowi template for xmit */ | 24 | struct flowi fl; /* flowi template for xmit */ |
diff --git a/include/net/ipip.h b/include/net/ipip.h index 633ed4def8e3..a85bda64b852 100644 --- a/include/net/ipip.h +++ b/include/net/ipip.h | |||
@@ -11,7 +11,6 @@ struct ip_tunnel | |||
11 | { | 11 | { |
12 | struct ip_tunnel *next; | 12 | struct ip_tunnel *next; |
13 | struct net_device *dev; | 13 | struct net_device *dev; |
14 | struct net_device_stats stat; | ||
15 | 14 | ||
16 | int recursion; /* Depth of hard_start_xmit recursion */ | 15 | int recursion; /* Depth of hard_start_xmit recursion */ |
17 | int err_count; /* Number of arrived ICMP errors */ | 16 | int err_count; /* Number of arrived ICMP errors */ |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index dae3f9ec1154..2f9853997992 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -98,6 +98,18 @@ struct ieee80211_ht_bss_info { | |||
98 | }; | 98 | }; |
99 | 99 | ||
100 | /** | 100 | /** |
101 | * enum ieee80211_max_queues - maximum number of queues | ||
102 | * | ||
103 | * @IEEE80211_MAX_QUEUES: Maximum number of regular device queues. | ||
104 | * @IEEE80211_MAX_AMPDU_QUEUES: Maximum number of queues usable | ||
105 | * for A-MPDU operation. | ||
106 | */ | ||
107 | enum ieee80211_max_queues { | ||
108 | IEEE80211_MAX_QUEUES = 16, | ||
109 | IEEE80211_MAX_AMPDU_QUEUES = 16, | ||
110 | }; | ||
111 | |||
112 | /** | ||
101 | * struct ieee80211_tx_queue_params - transmit queue configuration | 113 | * struct ieee80211_tx_queue_params - transmit queue configuration |
102 | * | 114 | * |
103 | * The information provided in this structure is required for QoS | 115 | * The information provided in this structure is required for QoS |
@@ -117,58 +129,18 @@ struct ieee80211_tx_queue_params { | |||
117 | }; | 129 | }; |
118 | 130 | ||
119 | /** | 131 | /** |
120 | * struct ieee80211_tx_queue_stats_data - transmit queue statistics | 132 | * struct ieee80211_tx_queue_stats - transmit queue statistics |
121 | * | 133 | * |
122 | * @len: number of packets in queue | 134 | * @len: number of packets in queue |
123 | * @limit: queue length limit | 135 | * @limit: queue length limit |
124 | * @count: number of frames sent | 136 | * @count: number of frames sent |
125 | */ | 137 | */ |
126 | struct ieee80211_tx_queue_stats_data { | 138 | struct ieee80211_tx_queue_stats { |
127 | unsigned int len; | 139 | unsigned int len; |
128 | unsigned int limit; | 140 | unsigned int limit; |
129 | unsigned int count; | 141 | unsigned int count; |
130 | }; | 142 | }; |
131 | 143 | ||
132 | /** | ||
133 | * enum ieee80211_tx_queue - transmit queue number | ||
134 | * | ||
135 | * These constants are used with some callbacks that take a | ||
136 | * queue number to set parameters for a queue. | ||
137 | * | ||
138 | * @IEEE80211_TX_QUEUE_DATA0: data queue 0 | ||
139 | * @IEEE80211_TX_QUEUE_DATA1: data queue 1 | ||
140 | * @IEEE80211_TX_QUEUE_DATA2: data queue 2 | ||
141 | * @IEEE80211_TX_QUEUE_DATA3: data queue 3 | ||
142 | * @IEEE80211_TX_QUEUE_DATA4: data queue 4 | ||
143 | * @IEEE80211_TX_QUEUE_SVP: ?? | ||
144 | * @NUM_TX_DATA_QUEUES: number of data queues | ||
145 | * @IEEE80211_TX_QUEUE_AFTER_BEACON: transmit queue for frames to be | ||
146 | * sent after a beacon | ||
147 | * @IEEE80211_TX_QUEUE_BEACON: transmit queue for beacon frames | ||
148 | * @NUM_TX_DATA_QUEUES_AMPDU: adding more queues for A-MPDU | ||
149 | */ | ||
150 | enum ieee80211_tx_queue { | ||
151 | IEEE80211_TX_QUEUE_DATA0, | ||
152 | IEEE80211_TX_QUEUE_DATA1, | ||
153 | IEEE80211_TX_QUEUE_DATA2, | ||
154 | IEEE80211_TX_QUEUE_DATA3, | ||
155 | IEEE80211_TX_QUEUE_DATA4, | ||
156 | IEEE80211_TX_QUEUE_SVP, | ||
157 | |||
158 | NUM_TX_DATA_QUEUES, | ||
159 | |||
160 | /* due to stupidity in the sub-ioctl userspace interface, the items in | ||
161 | * this struct need to have fixed values. As soon as it is removed, we can | ||
162 | * fix these entries. */ | ||
163 | IEEE80211_TX_QUEUE_AFTER_BEACON = 6, | ||
164 | IEEE80211_TX_QUEUE_BEACON = 7, | ||
165 | NUM_TX_DATA_QUEUES_AMPDU = 16 | ||
166 | }; | ||
167 | |||
168 | struct ieee80211_tx_queue_stats { | ||
169 | struct ieee80211_tx_queue_stats_data data[NUM_TX_DATA_QUEUES_AMPDU]; | ||
170 | }; | ||
171 | |||
172 | struct ieee80211_low_level_stats { | 144 | struct ieee80211_low_level_stats { |
173 | unsigned int dot11ACKFailureCount; | 145 | unsigned int dot11ACKFailureCount; |
174 | unsigned int dot11RTSFailureCount; | 146 | unsigned int dot11RTSFailureCount; |
@@ -286,8 +258,17 @@ enum mac80211_tx_control_flags { | |||
286 | 258 | ||
287 | /* Transmit control fields. This data structure is passed to low-level driver | 259 | /* Transmit control fields. This data structure is passed to low-level driver |
288 | * with each TX frame. The low-level driver is responsible for configuring | 260 | * with each TX frame. The low-level driver is responsible for configuring |
289 | * the hardware to use given values (depending on what is supported). */ | 261 | * the hardware to use given values (depending on what is supported). |
290 | 262 | * | |
263 | * NOTE: Be careful with using the pointers outside of the ieee80211_ops->tx() | ||
264 | * context (i.e. when defering the work to a workqueue). | ||
265 | * The vif pointer is valid until the it has been removed with the | ||
266 | * ieee80211_ops->remove_interface() callback funtion. | ||
267 | * The hw_key pointer is valid until it has been removed with the | ||
268 | * ieee80211_ops->set_key() callback function. | ||
269 | * The tx_rate and alt_retry_rate pointers are valid until the phy is | ||
270 | * deregistered. | ||
271 | */ | ||
291 | struct ieee80211_tx_control { | 272 | struct ieee80211_tx_control { |
292 | struct ieee80211_vif *vif; | 273 | struct ieee80211_vif *vif; |
293 | struct ieee80211_rate *tx_rate; | 274 | struct ieee80211_rate *tx_rate; |
@@ -298,9 +279,11 @@ struct ieee80211_tx_control { | |||
298 | /* retry rate for the last retries */ | 279 | /* retry rate for the last retries */ |
299 | struct ieee80211_rate *alt_retry_rate; | 280 | struct ieee80211_rate *alt_retry_rate; |
300 | 281 | ||
282 | /* Key used for hardware encryption | ||
283 | * NULL if IEEE80211_TXCTL_DO_NOT_ENCRYPT is set */ | ||
284 | struct ieee80211_key_conf *hw_key; | ||
285 | |||
301 | u32 flags; /* tx control flags defined above */ | 286 | u32 flags; /* tx control flags defined above */ |
302 | u8 key_idx; /* keyidx from hw->set_key(), undefined if | ||
303 | * IEEE80211_TXCTL_DO_NOT_ENCRYPT is set */ | ||
304 | u8 retry_limit; /* 1 = only first attempt, 2 = one retry, .. | 287 | u8 retry_limit; /* 1 = only first attempt, 2 = one retry, .. |
305 | * This could be used when set_retry_limit | 288 | * This could be used when set_retry_limit |
306 | * is not implemented by the driver */ | 289 | * is not implemented by the driver */ |
@@ -308,7 +291,7 @@ struct ieee80211_tx_control { | |||
308 | * position represents antenna number used */ | 291 | * position represents antenna number used */ |
309 | u8 icv_len; /* length of the ICV/MIC field in octets */ | 292 | u8 icv_len; /* length of the ICV/MIC field in octets */ |
310 | u8 iv_len; /* length of the IV field in octets */ | 293 | u8 iv_len; /* length of the IV field in octets */ |
311 | u8 queue; /* hardware queue to use for this frame; | 294 | u16 queue; /* hardware queue to use for this frame; |
312 | * 0 = highest, hw->queues-1 = lowest */ | 295 | * 0 = highest, hw->queues-1 = lowest */ |
313 | u16 aid; /* Station AID */ | 296 | u16 aid; /* Station AID */ |
314 | int type; /* internal */ | 297 | int type; /* internal */ |
@@ -353,13 +336,16 @@ enum mac80211_rx_flags { | |||
353 | * The low-level driver should provide this information (the subset | 336 | * The low-level driver should provide this information (the subset |
354 | * supported by hardware) to the 802.11 code with each received | 337 | * supported by hardware) to the 802.11 code with each received |
355 | * frame. | 338 | * frame. |
339 | * | ||
356 | * @mactime: value in microseconds of the 64-bit Time Synchronization Function | 340 | * @mactime: value in microseconds of the 64-bit Time Synchronization Function |
357 | * (TSF) timer when the first data symbol (MPDU) arrived at the hardware. | 341 | * (TSF) timer when the first data symbol (MPDU) arrived at the hardware. |
358 | * @band: the active band when this frame was received | 342 | * @band: the active band when this frame was received |
359 | * @freq: frequency the radio was tuned to when receiving this frame, in MHz | 343 | * @freq: frequency the radio was tuned to when receiving this frame, in MHz |
360 | * @ssi: signal strength when receiving this frame | 344 | * @signal: signal strength when receiving this frame, either in dBm, in dB or |
361 | * @signal: used as 'qual' in statistics reporting | 345 | * unspecified depending on the hardware capabilities flags |
362 | * @noise: PHY noise when receiving this frame | 346 | * @IEEE80211_HW_SIGNAL_* |
347 | * @noise: noise when receiving this frame, in dBm. | ||
348 | * @qual: overall signal quality indication, in percent (0-100). | ||
363 | * @antenna: antenna used | 349 | * @antenna: antenna used |
364 | * @rate_idx: index of data rate into band's supported rates | 350 | * @rate_idx: index of data rate into band's supported rates |
365 | * @flag: %RX_FLAG_* | 351 | * @flag: %RX_FLAG_* |
@@ -368,9 +354,9 @@ struct ieee80211_rx_status { | |||
368 | u64 mactime; | 354 | u64 mactime; |
369 | enum ieee80211_band band; | 355 | enum ieee80211_band band; |
370 | int freq; | 356 | int freq; |
371 | int ssi; | ||
372 | int signal; | 357 | int signal; |
373 | int noise; | 358 | int noise; |
359 | int qual; | ||
374 | int antenna; | 360 | int antenna; |
375 | int rate_idx; | 361 | int rate_idx; |
376 | int flag; | 362 | int flag; |
@@ -409,9 +395,8 @@ enum ieee80211_tx_status_flags { | |||
409 | * relevant only if IEEE80211_TX_STATUS_AMPDU was set. | 395 | * relevant only if IEEE80211_TX_STATUS_AMPDU was set. |
410 | * @ampdu_ack_map: block ack bit map for the aggregation. | 396 | * @ampdu_ack_map: block ack bit map for the aggregation. |
411 | * relevant only if IEEE80211_TX_STATUS_AMPDU was set. | 397 | * relevant only if IEEE80211_TX_STATUS_AMPDU was set. |
412 | * @ack_signal: signal strength of the ACK frame | 398 | * @ack_signal: signal strength of the ACK frame either in dBm, dB or unspec |
413 | * @queue_length: ?? REMOVE | 399 | * depending on hardware capabilites flags @IEEE80211_HW_SIGNAL_* |
414 | * @queue_number: ?? REMOVE | ||
415 | */ | 400 | */ |
416 | struct ieee80211_tx_status { | 401 | struct ieee80211_tx_status { |
417 | struct ieee80211_tx_control control; | 402 | struct ieee80211_tx_control control; |
@@ -421,8 +406,6 @@ struct ieee80211_tx_status { | |||
421 | u8 ampdu_ack_len; | 406 | u8 ampdu_ack_len; |
422 | u64 ampdu_ack_map; | 407 | u64 ampdu_ack_map; |
423 | int ack_signal; | 408 | int ack_signal; |
424 | int queue_length; | ||
425 | int queue_number; | ||
426 | }; | 409 | }; |
427 | 410 | ||
428 | /** | 411 | /** |
@@ -610,11 +593,14 @@ enum ieee80211_key_alg { | |||
610 | * @IEEE80211_KEY_FLAG_GENERATE_MMIC: This flag should be set by | 593 | * @IEEE80211_KEY_FLAG_GENERATE_MMIC: This flag should be set by |
611 | * the driver for a TKIP key if it requires Michael MIC | 594 | * the driver for a TKIP key if it requires Michael MIC |
612 | * generation in software. | 595 | * generation in software. |
596 | * @IEEE80211_KEY_FLAG_PAIRWISE: Set by mac80211, this flag indicates | ||
597 | * that the key is pairwise rather then a shared key. | ||
613 | */ | 598 | */ |
614 | enum ieee80211_key_flags { | 599 | enum ieee80211_key_flags { |
615 | IEEE80211_KEY_FLAG_WMM_STA = 1<<0, | 600 | IEEE80211_KEY_FLAG_WMM_STA = 1<<0, |
616 | IEEE80211_KEY_FLAG_GENERATE_IV = 1<<1, | 601 | IEEE80211_KEY_FLAG_GENERATE_IV = 1<<1, |
617 | IEEE80211_KEY_FLAG_GENERATE_MMIC= 1<<2, | 602 | IEEE80211_KEY_FLAG_GENERATE_MMIC= 1<<2, |
603 | IEEE80211_KEY_FLAG_PAIRWISE = 1<<3, | ||
618 | }; | 604 | }; |
619 | 605 | ||
620 | /** | 606 | /** |
@@ -721,6 +707,25 @@ enum ieee80211_tkip_key_type { | |||
721 | * @IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE: | 707 | * @IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE: |
722 | * Hardware is not capable of receiving frames with short preamble on | 708 | * Hardware is not capable of receiving frames with short preamble on |
723 | * the 2.4 GHz band. | 709 | * the 2.4 GHz band. |
710 | * | ||
711 | * @IEEE80211_HW_SIGNAL_UNSPEC: | ||
712 | * Hardware can provide signal values but we don't know its units. We | ||
713 | * expect values between 0 and @max_signal. | ||
714 | * If possible please provide dB or dBm instead. | ||
715 | * | ||
716 | * @IEEE80211_HW_SIGNAL_DB: | ||
717 | * Hardware gives signal values in dB, decibel difference from an | ||
718 | * arbitrary, fixed reference. We expect values between 0 and @max_signal. | ||
719 | * If possible please provide dBm instead. | ||
720 | * | ||
721 | * @IEEE80211_HW_SIGNAL_DBM: | ||
722 | * Hardware gives signal values in dBm, decibel difference from | ||
723 | * one milliwatt. This is the preferred method since it is standardized | ||
724 | * between different devices. @max_signal does not need to be set. | ||
725 | * | ||
726 | * @IEEE80211_HW_NOISE_DBM: | ||
727 | * Hardware can provide noise (radio interference) values in units dBm, | ||
728 | * decibel difference from one milliwatt. | ||
724 | */ | 729 | */ |
725 | enum ieee80211_hw_flags { | 730 | enum ieee80211_hw_flags { |
726 | IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE = 1<<0, | 731 | IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE = 1<<0, |
@@ -728,6 +733,10 @@ enum ieee80211_hw_flags { | |||
728 | IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING = 1<<2, | 733 | IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING = 1<<2, |
729 | IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE = 1<<3, | 734 | IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE = 1<<3, |
730 | IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE = 1<<4, | 735 | IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE = 1<<4, |
736 | IEEE80211_HW_SIGNAL_UNSPEC = 1<<5, | ||
737 | IEEE80211_HW_SIGNAL_DB = 1<<6, | ||
738 | IEEE80211_HW_SIGNAL_DBM = 1<<7, | ||
739 | IEEE80211_HW_NOISE_DBM = 1<<8, | ||
731 | }; | 740 | }; |
732 | 741 | ||
733 | /** | 742 | /** |
@@ -758,15 +767,18 @@ enum ieee80211_hw_flags { | |||
758 | * | 767 | * |
759 | * @channel_change_time: time (in microseconds) it takes to change channels. | 768 | * @channel_change_time: time (in microseconds) it takes to change channels. |
760 | * | 769 | * |
761 | * @max_rssi: Maximum value for ssi in RX information, use | 770 | * @max_signal: Maximum value for signal (rssi) in RX information, used |
762 | * negative numbers for dBm and 0 to indicate no support. | 771 | * only when @IEEE80211_HW_SIGNAL_UNSPEC or @IEEE80211_HW_SIGNAL_DB |
763 | * | ||
764 | * @max_signal: like @max_rssi, but for the signal value. | ||
765 | * | ||
766 | * @max_noise: like @max_rssi, but for the noise value. | ||
767 | * | 772 | * |
768 | * @queues: number of available hardware transmit queues for | 773 | * @queues: number of available hardware transmit queues for |
769 | * data packets. WMM/QoS requires at least four. | 774 | * data packets. WMM/QoS requires at least four, these |
775 | * queues need to have configurable access parameters. | ||
776 | * | ||
777 | * @ampdu_queues: number of available hardware transmit queues | ||
778 | * for A-MPDU packets, these have no access parameters | ||
779 | * because they're used only for A-MPDU frames. Note that | ||
780 | * mac80211 will not currently use any of the regular queues | ||
781 | * for aggregation. | ||
770 | * | 782 | * |
771 | * @rate_control_algorithm: rate control algorithm for this hardware. | 783 | * @rate_control_algorithm: rate control algorithm for this hardware. |
772 | * If unset (NULL), the default algorithm will be used. Must be | 784 | * If unset (NULL), the default algorithm will be used. Must be |
@@ -785,10 +797,8 @@ struct ieee80211_hw { | |||
785 | unsigned int extra_tx_headroom; | 797 | unsigned int extra_tx_headroom; |
786 | int channel_change_time; | 798 | int channel_change_time; |
787 | int vif_data_size; | 799 | int vif_data_size; |
788 | u8 queues; | 800 | u16 queues, ampdu_queues; |
789 | s8 max_rssi; | ||
790 | s8 max_signal; | 801 | s8 max_signal; |
791 | s8 max_noise; | ||
792 | }; | 802 | }; |
793 | 803 | ||
794 | /** | 804 | /** |
@@ -1063,15 +1073,13 @@ enum ieee80211_ampdu_mlme_action { | |||
1063 | * of assocaited station or AP. | 1073 | * of assocaited station or AP. |
1064 | * | 1074 | * |
1065 | * @conf_tx: Configure TX queue parameters (EDCF (aifs, cw_min, cw_max), | 1075 | * @conf_tx: Configure TX queue parameters (EDCF (aifs, cw_min, cw_max), |
1066 | * bursting) for a hardware TX queue. The @queue parameter uses the | 1076 | * bursting) for a hardware TX queue. Must be atomic. |
1067 | * %IEEE80211_TX_QUEUE_* constants. Must be atomic. | ||
1068 | * | 1077 | * |
1069 | * @get_tx_stats: Get statistics of the current TX queue status. This is used | 1078 | * @get_tx_stats: Get statistics of the current TX queue status. This is used |
1070 | * to get number of currently queued packets (queue length), maximum queue | 1079 | * to get number of currently queued packets (queue length), maximum queue |
1071 | * size (limit), and total number of packets sent using each TX queue | 1080 | * size (limit), and total number of packets sent using each TX queue |
1072 | * (count). This information is used for WMM to find out which TX | 1081 | * (count). The 'stats' pointer points to an array that has hw->queues + |
1073 | * queues have room for more packets and by hostapd to provide | 1082 | * hw->ampdu_queues items. |
1074 | * statistics about the current queueing state to external programs. | ||
1075 | * | 1083 | * |
1076 | * @get_tsf: Get the current TSF timer value from firmware/hardware. Currently, | 1084 | * @get_tsf: Get the current TSF timer value from firmware/hardware. Currently, |
1077 | * this is only used for IBSS mode debugging and, as such, is not a | 1085 | * this is only used for IBSS mode debugging and, as such, is not a |
@@ -1145,7 +1153,7 @@ struct ieee80211_ops { | |||
1145 | u32 short_retry, u32 long_retr); | 1153 | u32 short_retry, u32 long_retr); |
1146 | void (*sta_notify)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | 1154 | void (*sta_notify)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, |
1147 | enum sta_notify_cmd, const u8 *addr); | 1155 | enum sta_notify_cmd, const u8 *addr); |
1148 | int (*conf_tx)(struct ieee80211_hw *hw, int queue, | 1156 | int (*conf_tx)(struct ieee80211_hw *hw, u16 queue, |
1149 | const struct ieee80211_tx_queue_params *params); | 1157 | const struct ieee80211_tx_queue_params *params); |
1150 | int (*get_tx_stats)(struct ieee80211_hw *hw, | 1158 | int (*get_tx_stats)(struct ieee80211_hw *hw, |
1151 | struct ieee80211_tx_queue_stats *stats); | 1159 | struct ieee80211_tx_queue_stats *stats); |
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index aa540e6be502..8df751b3be55 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h | |||
@@ -201,8 +201,11 @@ extern void unregister_pernet_gen_device(int id, struct pernet_operations *); | |||
201 | struct ctl_path; | 201 | struct ctl_path; |
202 | struct ctl_table; | 202 | struct ctl_table; |
203 | struct ctl_table_header; | 203 | struct ctl_table_header; |
204 | |||
204 | extern struct ctl_table_header *register_net_sysctl_table(struct net *net, | 205 | extern struct ctl_table_header *register_net_sysctl_table(struct net *net, |
205 | const struct ctl_path *path, struct ctl_table *table); | 206 | const struct ctl_path *path, struct ctl_table *table); |
207 | extern struct ctl_table_header *register_net_sysctl_rotable( | ||
208 | const struct ctl_path *path, struct ctl_table *table); | ||
206 | extern void unregister_net_sysctl_table(struct ctl_table_header *header); | 209 | extern void unregister_net_sysctl_table(struct ctl_table_header *header); |
207 | 210 | ||
208 | #endif /* __NET_NET_NAMESPACE_H */ | 211 | #endif /* __NET_NET_NAMESPACE_H */ |
diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h index 90b1e8d23b16..5672d489e924 100644 --- a/include/net/sctp/sctp.h +++ b/include/net/sctp/sctp.h | |||
@@ -179,6 +179,8 @@ int sctp_eps_proc_init(void); | |||
179 | void sctp_eps_proc_exit(void); | 179 | void sctp_eps_proc_exit(void); |
180 | int sctp_assocs_proc_init(void); | 180 | int sctp_assocs_proc_init(void); |
181 | void sctp_assocs_proc_exit(void); | 181 | void sctp_assocs_proc_exit(void); |
182 | int sctp_remaddr_proc_init(void); | ||
183 | void sctp_remaddr_proc_exit(void); | ||
182 | 184 | ||
183 | 185 | ||
184 | /* | 186 | /* |
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index 0ce0443c5b79..e11151702bee 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h | |||
@@ -300,6 +300,7 @@ struct sctp_sock { | |||
300 | 300 | ||
301 | /* The default SACK delay timeout for new associations. */ | 301 | /* The default SACK delay timeout for new associations. */ |
302 | __u32 sackdelay; | 302 | __u32 sackdelay; |
303 | __u32 sackfreq; | ||
303 | 304 | ||
304 | /* Flags controlling Heartbeat, SACK delay, and Path MTU Discovery. */ | 305 | /* Flags controlling Heartbeat, SACK delay, and Path MTU Discovery. */ |
305 | __u32 param_flags; | 306 | __u32 param_flags; |
@@ -938,6 +939,7 @@ struct sctp_transport { | |||
938 | 939 | ||
939 | /* SACK delay timeout */ | 940 | /* SACK delay timeout */ |
940 | unsigned long sackdelay; | 941 | unsigned long sackdelay; |
942 | __u32 sackfreq; | ||
941 | 943 | ||
942 | /* When was the last time (in jiffies) that we heard from this | 944 | /* When was the last time (in jiffies) that we heard from this |
943 | * transport? We use this to pick new active and retran paths. | 945 | * transport? We use this to pick new active and retran paths. |
@@ -1542,6 +1544,7 @@ struct sctp_association { | |||
1542 | * : SACK's are not delayed (see Section 6). | 1544 | * : SACK's are not delayed (see Section 6). |
1543 | */ | 1545 | */ |
1544 | __u8 sack_needed; /* Do we need to sack the peer? */ | 1546 | __u8 sack_needed; /* Do we need to sack the peer? */ |
1547 | __u32 sack_cnt; | ||
1545 | 1548 | ||
1546 | /* These are capabilities which our peer advertised. */ | 1549 | /* These are capabilities which our peer advertised. */ |
1547 | __u8 ecn_capable; /* Can peer do ECN? */ | 1550 | __u8 ecn_capable; /* Can peer do ECN? */ |
@@ -1651,6 +1654,7 @@ struct sctp_association { | |||
1651 | 1654 | ||
1652 | /* SACK delay timeout */ | 1655 | /* SACK delay timeout */ |
1653 | unsigned long sackdelay; | 1656 | unsigned long sackdelay; |
1657 | __u32 sackfreq; | ||
1654 | 1658 | ||
1655 | 1659 | ||
1656 | unsigned long timeouts[SCTP_NUM_TIMEOUT_TYPES]; | 1660 | unsigned long timeouts[SCTP_NUM_TIMEOUT_TYPES]; |
diff --git a/include/net/sctp/user.h b/include/net/sctp/user.h index 9619b9d35c9e..f205b10f0ab9 100644 --- a/include/net/sctp/user.h +++ b/include/net/sctp/user.h | |||
@@ -93,8 +93,9 @@ enum sctp_optname { | |||
93 | #define SCTP_STATUS SCTP_STATUS | 93 | #define SCTP_STATUS SCTP_STATUS |
94 | SCTP_GET_PEER_ADDR_INFO, | 94 | SCTP_GET_PEER_ADDR_INFO, |
95 | #define SCTP_GET_PEER_ADDR_INFO SCTP_GET_PEER_ADDR_INFO | 95 | #define SCTP_GET_PEER_ADDR_INFO SCTP_GET_PEER_ADDR_INFO |
96 | SCTP_DELAYED_ACK_TIME, | 96 | SCTP_DELAYED_ACK, |
97 | #define SCTP_DELAYED_ACK_TIME SCTP_DELAYED_ACK_TIME | 97 | #define SCTP_DELAYED_ACK_TIME SCTP_DELAYED_ACK |
98 | #define SCTP_DELAYED_ACK SCTP_DELAYED_ACK | ||
98 | SCTP_CONTEXT, /* Receive Context */ | 99 | SCTP_CONTEXT, /* Receive Context */ |
99 | #define SCTP_CONTEXT SCTP_CONTEXT | 100 | #define SCTP_CONTEXT SCTP_CONTEXT |
100 | SCTP_FRAGMENT_INTERLEAVE, | 101 | SCTP_FRAGMENT_INTERLEAVE, |
@@ -136,12 +137,14 @@ enum sctp_optname { | |||
136 | #define SCTP_GET_LOCAL_ADDRS_NUM_OLD SCTP_GET_LOCAL_ADDRS_NUM_OLD | 137 | #define SCTP_GET_LOCAL_ADDRS_NUM_OLD SCTP_GET_LOCAL_ADDRS_NUM_OLD |
137 | SCTP_GET_LOCAL_ADDRS_OLD, /* Get all local addresss. */ | 138 | SCTP_GET_LOCAL_ADDRS_OLD, /* Get all local addresss. */ |
138 | #define SCTP_GET_LOCAL_ADDRS_OLD SCTP_GET_LOCAL_ADDRS_OLD | 139 | #define SCTP_GET_LOCAL_ADDRS_OLD SCTP_GET_LOCAL_ADDRS_OLD |
139 | SCTP_SOCKOPT_CONNECTX, /* CONNECTX requests. */ | 140 | SCTP_SOCKOPT_CONNECTX_OLD, /* CONNECTX old requests. */ |
140 | #define SCTP_SOCKOPT_CONNECTX SCTP_SOCKOPT_CONNECTX | 141 | #define SCTP_SOCKOPT_CONNECTX_OLD SCTP_SOCKOPT_CONNECTX_OLD |
141 | SCTP_GET_PEER_ADDRS, /* Get all peer addresss. */ | 142 | SCTP_GET_PEER_ADDRS, /* Get all peer addresss. */ |
142 | #define SCTP_GET_PEER_ADDRS SCTP_GET_PEER_ADDRS | 143 | #define SCTP_GET_PEER_ADDRS SCTP_GET_PEER_ADDRS |
143 | SCTP_GET_LOCAL_ADDRS, /* Get all local addresss. */ | 144 | SCTP_GET_LOCAL_ADDRS, /* Get all local addresss. */ |
144 | #define SCTP_GET_LOCAL_ADDRS SCTP_GET_LOCAL_ADDRS | 145 | #define SCTP_GET_LOCAL_ADDRS SCTP_GET_LOCAL_ADDRS |
146 | SCTP_SOCKOPT_CONNECTX, /* CONNECTX requests. */ | ||
147 | #define SCTP_SOCKOPT_CONNECTX SCTP_SOCKOPT_CONNECTX | ||
145 | }; | 148 | }; |
146 | 149 | ||
147 | /* | 150 | /* |
@@ -618,13 +621,26 @@ struct sctp_authkeyid { | |||
618 | }; | 621 | }; |
619 | 622 | ||
620 | 623 | ||
621 | /* 7.1.23. Delayed Ack Timer (SCTP_DELAYED_ACK_TIME) | 624 | /* |
625 | * 7.1.23. Get or set delayed ack timer (SCTP_DELAYED_SACK) | ||
622 | * | 626 | * |
623 | * This options will get or set the delayed ack timer. The time is set | 627 | * This option will effect the way delayed acks are performed. This |
624 | * in milliseconds. If the assoc_id is 0, then this sets or gets the | 628 | * option allows you to get or set the delayed ack time, in |
625 | * endpoints default delayed ack timer value. If the assoc_id field is | 629 | * milliseconds. It also allows changing the delayed ack frequency. |
626 | * non-zero, then the set or get effects the specified association. | 630 | * Changing the frequency to 1 disables the delayed sack algorithm. If |
631 | * the assoc_id is 0, then this sets or gets the endpoints default | ||
632 | * values. If the assoc_id field is non-zero, then the set or get | ||
633 | * effects the specified association for the one to many model (the | ||
634 | * assoc_id field is ignored by the one to one model). Note that if | ||
635 | * sack_delay or sack_freq are 0 when setting this option, then the | ||
636 | * current values will remain unchanged. | ||
627 | */ | 637 | */ |
638 | struct sctp_sack_info { | ||
639 | sctp_assoc_t sack_assoc_id; | ||
640 | uint32_t sack_delay; | ||
641 | uint32_t sack_freq; | ||
642 | }; | ||
643 | |||
628 | struct sctp_assoc_value { | 644 | struct sctp_assoc_value { |
629 | sctp_assoc_t assoc_id; | 645 | sctp_assoc_t assoc_id; |
630 | uint32_t assoc_value; | 646 | uint32_t assoc_value; |
diff --git a/include/net/tipc/tipc_port.h b/include/net/tipc/tipc_port.h index 11105bcc4457..9923e41a8215 100644 --- a/include/net/tipc/tipc_port.h +++ b/include/net/tipc/tipc_port.h | |||
@@ -84,7 +84,8 @@ struct tipc_port { | |||
84 | u32 tipc_createport_raw(void *usr_handle, | 84 | u32 tipc_createport_raw(void *usr_handle, |
85 | u32 (*dispatcher)(struct tipc_port *, struct sk_buff *), | 85 | u32 (*dispatcher)(struct tipc_port *, struct sk_buff *), |
86 | void (*wakeup)(struct tipc_port *), | 86 | void (*wakeup)(struct tipc_port *), |
87 | const u32 importance); | 87 | const u32 importance, |
88 | struct tipc_port **tp_ptr); | ||
88 | 89 | ||
89 | int tipc_reject_msg(struct sk_buff *buf, u32 err); | 90 | int tipc_reject_msg(struct sk_buff *buf, u32 err); |
90 | 91 | ||