rx.c (4f6b1b3daaf167bf927174224e07efd17ed95984) | rx.c (0f9c5a61d4b2330b12c59126aa5a9108dbfce555) |
---|---|
1/* 2 * Copyright 2002-2005, Instant802 Networks, Inc. 3 * Copyright 2005-2006, Devicescape Software, Inc. 4 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> 5 * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net> 6 * Copyright 2013-2014 Intel Mobile Communications GmbH 7 * Copyright(c) 2015 - 2016 Intel Deutschland GmbH 8 * --- 1427 unchanged lines hidden (view full) --- 1436 if (ieee80211_is_data(hdr->frame_control)) 1437 sta->rx_stats.last_rate = sta_stats_encode_rate(status); 1438 } 1439 1440 if (rx->sdata->vif.type == NL80211_IFTYPE_STATION) 1441 ieee80211_sta_rx_notify(rx->sdata, hdr); 1442 1443 sta->rx_stats.fragments++; | 1/* 2 * Copyright 2002-2005, Instant802 Networks, Inc. 3 * Copyright 2005-2006, Devicescape Software, Inc. 4 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> 5 * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net> 6 * Copyright 2013-2014 Intel Mobile Communications GmbH 7 * Copyright(c) 2015 - 2016 Intel Deutschland GmbH 8 * --- 1427 unchanged lines hidden (view full) --- 1436 if (ieee80211_is_data(hdr->frame_control)) 1437 sta->rx_stats.last_rate = sta_stats_encode_rate(status); 1438 } 1439 1440 if (rx->sdata->vif.type == NL80211_IFTYPE_STATION) 1441 ieee80211_sta_rx_notify(rx->sdata, hdr); 1442 1443 sta->rx_stats.fragments++; |
1444 1445 u64_stats_update_begin(&rx->sta->rx_stats.syncp); |
|
1444 sta->rx_stats.bytes += rx->skb->len; | 1446 sta->rx_stats.bytes += rx->skb->len; |
1447 u64_stats_update_end(&rx->sta->rx_stats.syncp); 1448 |
|
1445 if (!(status->flag & RX_FLAG_NO_SIGNAL_VAL)) { 1446 sta->rx_stats.last_signal = status->signal; 1447 ewma_signal_add(&sta->rx_stats_avg.signal, -status->signal); 1448 } 1449 1450 if (status->chains) { 1451 sta->rx_stats.chains = status->chains; 1452 for (i = 0; i < ARRAY_SIZE(status->chain_signal); i++) { --- 666 unchanged lines hidden (view full) --- 2119 ieee80211_rx_stats(dev, skb->len); 2120 2121 if (rx->sta) { 2122 /* The seqno index has the same property as needed 2123 * for the rx_msdu field, i.e. it is IEEE80211_NUM_TIDS 2124 * for non-QoS-data frames. Here we know it's a data 2125 * frame, so count MSDUs. 2126 */ | 1449 if (!(status->flag & RX_FLAG_NO_SIGNAL_VAL)) { 1450 sta->rx_stats.last_signal = status->signal; 1451 ewma_signal_add(&sta->rx_stats_avg.signal, -status->signal); 1452 } 1453 1454 if (status->chains) { 1455 sta->rx_stats.chains = status->chains; 1456 for (i = 0; i < ARRAY_SIZE(status->chain_signal); i++) { --- 666 unchanged lines hidden (view full) --- 2123 ieee80211_rx_stats(dev, skb->len); 2124 2125 if (rx->sta) { 2126 /* The seqno index has the same property as needed 2127 * for the rx_msdu field, i.e. it is IEEE80211_NUM_TIDS 2128 * for non-QoS-data frames. Here we know it's a data 2129 * frame, so count MSDUs. 2130 */ |
2131 u64_stats_update_begin(&rx->sta->rx_stats.syncp); |
|
2127 rx->sta->rx_stats.msdu[rx->seqno_idx]++; | 2132 rx->sta->rx_stats.msdu[rx->seqno_idx]++; |
2133 u64_stats_update_end(&rx->sta->rx_stats.syncp); |
|
2128 } 2129 2130 if ((sdata->vif.type == NL80211_IFTYPE_AP || 2131 sdata->vif.type == NL80211_IFTYPE_AP_VLAN) && 2132 !(sdata->flags & IEEE80211_SDATA_DONT_BRIDGE_PACKETS) && 2133 (sdata->vif.type != NL80211_IFTYPE_AP_VLAN || !sdata->u.vlan.sta)) { 2134 if (is_multicast_ether_addr(ehdr->h_dest)) { 2135 /* --- 1658 unchanged lines hidden --- | 2134 } 2135 2136 if ((sdata->vif.type == NL80211_IFTYPE_AP || 2137 sdata->vif.type == NL80211_IFTYPE_AP_VLAN) && 2138 !(sdata->flags & IEEE80211_SDATA_DONT_BRIDGE_PACKETS) && 2139 (sdata->vif.type != NL80211_IFTYPE_AP_VLAN || !sdata->u.vlan.sta)) { 2140 if (is_multicast_ether_addr(ehdr->h_dest)) { 2141 /* --- 1658 unchanged lines hidden --- |