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 ---