wlan-ap-Telecominfraproject/feeds/wlan-ap/opensync/patches/10-protobuf-noisefloor
Arif Alam 61bb9aee32 opensync: add noise floor reporting
- Add noise floor reporting to survey stats
- Fix survey stats

Signed-off-by: Arif Alam <arif.alam@connectus.ai>
2020-07-29 14:17:39 +02:00

906 lines
34 KiB
Plaintext

--- a/interfaces/opensync_stats.proto
+++ b/interfaces/opensync_stats.proto
@@ -263,6 +263,7 @@ message Survey {
optional uint32 busy_self = 8; /* Rx_self (derived from succesful Rx frames)*/
optional uint32 offset_ms = 9;
optional uint32 busy_ext = 10; /* 40MHz extention channel busy */
+ optional uint32 noise = 11;
}
message SurveyAvg {
required uint32 channel = 1;
@@ -271,6 +272,7 @@ message Survey {
optional AvgType busy_rx = 4; /* Rx = Rx_obss + Rx_errr (self and obss errors) */
optional AvgType busy_self = 5; /* Rx_self (derived from succesful Rx frames)*/
optional AvgType busy_ext = 6; /* 40MHz extention channel busy */
+ optional AvgType noise = 7;
}
required RadioBandType band = 1;
required SurveyType survey_type = 2;
--- a/src/lib/datapipeline/inc/dpp_survey.h
+++ b/src/lib/datapipeline/inc/dpp_survey.h
@@ -52,6 +52,7 @@ typedef struct
dpp_avg_t chan_self;
dpp_avg_t chan_rx;
dpp_avg_t chan_tx;
+ dpp_avg_t chan_noise;
ds_dlist_node_t node;
} dpp_survey_record_avg_t;
@@ -67,6 +68,7 @@ typedef struct
uint32_t chan_self;
uint32_t chan_rx;
uint32_t chan_tx;
+ uint32_t chan_noise;
uint32_t duration_ms;
/* Linked list survey data */
--- a/src/lib/datapipeline/inc/opensync_stats.pb-c.h
+++ b/src/lib/datapipeline/inc/opensync_stats.pb-c.h
@@ -1,29 +1,3 @@
-/*
-Copyright (c) 2015, Plume Design Inc. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the Plume Design Inc. nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL Plume Design Inc. BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
/* Generated by the protocol buffer compiler. DO NOT EDIT! */
/* Generated from: opensync_stats.proto */
@@ -36,7 +10,7 @@ PROTOBUF_C__BEGIN_DECLS
#if PROTOBUF_C_VERSION_NUMBER < 1000000
# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
-#elif 1002001 < PROTOBUF_C_MIN_COMPILER_VERSION
+#elif 1003003 < PROTOBUF_C_MIN_COMPILER_VERSION
# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
#endif
@@ -195,7 +169,7 @@ struct _Sts__AvgType
};
#define STS__AVG_TYPE__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__avg_type__descriptor) \
- , 0, 0,0, 0,0, 0,0 }
+ , 0, 0, 0, 0, 0, 0, 0 }
struct _Sts__Neighbor__NeighborBss
@@ -215,7 +189,7 @@ struct _Sts__Neighbor__NeighborBss
};
#define STS__NEIGHBOR__NEIGHBOR_BSS__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__neighbor__neighbor_bss__descriptor) \
- , NULL, NULL, 0,0, 0,0, 0,0, 0, 0,0 }
+ , NULL, NULL, 0, 0, 0, 0, 0, STS__CHAN_WIDTH__CHAN_WIDTH_UNKNOWN, 0, 0, STS__DIFF_TYPE__ADDED }
/*
@@ -241,7 +215,7 @@ struct _Sts__Neighbor
};
#define STS__NEIGHBOR__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__neighbor__descriptor) \
- , 0, 0, 0,0, 0,NULL, 0,0 }
+ , STS__RADIO_BAND_TYPE__BAND2G, STS__NEIGHBOR_TYPE__ONCHAN_SCAN, 0, 0, 0,NULL, 0, STS__REPORT_TYPE__RAW }
struct _Sts__Client__Stats
@@ -272,7 +246,7 @@ struct _Sts__Client__Stats
};
#define STS__CLIENT__STATS__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__client__stats__descriptor) \
- , 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 }
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
struct _Sts__Client__RxStats__ChainRSSI
@@ -288,7 +262,7 @@ struct _Sts__Client__RxStats__ChainRSSI
};
#define STS__CLIENT__RX_STATS__CHAIN_RSSI__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__client__rx_stats__chain_rssi__descriptor) \
- , 0, 0, 0,0 }
+ , 0, 0, 0, 0 }
struct _Sts__Client__RxStats
@@ -316,7 +290,7 @@ struct _Sts__Client__RxStats
};
#define STS__CLIENT__RX_STATS__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__client__rx_stats__descriptor) \
- , 0, 0, 0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,NULL }
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NULL }
struct _Sts__Client__TxStats
@@ -340,7 +314,7 @@ struct _Sts__Client__TxStats
};
#define STS__CLIENT__TX_STATS__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__client__tx_stats__descriptor) \
- , 0, 0, 0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 }
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
struct _Sts__Client__TidStats__Sojourn
@@ -372,7 +346,7 @@ struct _Sts__Client__TidStats__Sojourn
};
#define STS__CLIENT__TID_STATS__SOJOURN__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__client__tid_stats__sojourn__descriptor) \
- , 0, 0, 0,0, 0,0, 0,0 }
+ , STS__WMM_AC__WMM_AC_VO, 0, 0, 0, 0, 0, 0, 0 }
struct _Sts__Client__TidStats
@@ -385,7 +359,7 @@ struct _Sts__Client__TidStats
};
#define STS__CLIENT__TID_STATS__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__client__tid_stats__descriptor) \
- , 0,NULL, 0,0 }
+ , 0,NULL, 0, 0 }
/*
@@ -424,7 +398,7 @@ struct _Sts__Client
};
#define STS__CLIENT__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__client__descriptor) \
- , NULL, NULL, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, NULL, 0,NULL, 0,NULL, 0,NULL, 0,0 }
+ , NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, 0,NULL, 0,NULL, 0,NULL, 0, 0 }
struct _Sts__ClientReport
@@ -439,7 +413,7 @@ struct _Sts__ClientReport
};
#define STS__CLIENT_REPORT__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__client_report__descriptor) \
- , 0, 0,0, 0,NULL, 0 }
+ , STS__RADIO_BAND_TYPE__BAND2G, 0, 0, 0,NULL, 0 }
struct _Sts__Survey__SurveySample
@@ -479,10 +453,12 @@ struct _Sts__Survey__SurveySample
*/
protobuf_c_boolean has_busy_ext;
uint32_t busy_ext;
+ protobuf_c_boolean has_noise;
+ uint32_t noise;
};
#define STS__SURVEY__SURVEY_SAMPLE__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__survey__survey_sample__descriptor) \
- , 0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 }
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
struct _Sts__Survey__SurveyAvg
@@ -509,10 +485,11 @@ struct _Sts__Survey__SurveyAvg
* 40MHz extention channel busy
*/
Sts__AvgType *busy_ext;
+ Sts__AvgType *noise;
};
#define STS__SURVEY__SURVEY_AVG__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__survey__survey_avg__descriptor) \
- , 0, NULL, NULL, NULL, NULL, NULL }
+ , 0, NULL, NULL, NULL, NULL, NULL, NULL }
/*
@@ -539,7 +516,7 @@ struct _Sts__Survey
};
#define STS__SURVEY__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__survey__descriptor) \
- , 0, 0, 0,0, 0,NULL, 0,NULL, 0,0 }
+ , STS__RADIO_BAND_TYPE__BAND2G, STS__SURVEY_TYPE__ON_CHANNEL, 0, 0, 0,NULL, 0,NULL, 0, STS__REPORT_TYPE__RAW }
struct _Sts__Capacity__QueueSample
@@ -586,7 +563,7 @@ struct _Sts__Capacity__QueueSample
};
#define STS__CAPACITY__QUEUE_SAMPLE__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__capacity__queue_sample__descriptor) \
- , 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 }
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
/*
@@ -605,7 +582,7 @@ struct _Sts__Capacity
};
#define STS__CAPACITY__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__capacity__descriptor) \
- , 0, 0,0, 0,NULL }
+ , STS__RADIO_BAND_TYPE__BAND2G, 0, 0, 0,NULL }
struct _Sts__Device__LoadAvg
@@ -620,7 +597,7 @@ struct _Sts__Device__LoadAvg
};
#define STS__DEVICE__LOAD_AVG__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__device__load_avg__descriptor) \
- , 0,0, 0,0, 0,0 }
+ , 0, 0, 0, 0, 0, 0 }
struct _Sts__Device__RadioTemp
@@ -633,7 +610,7 @@ struct _Sts__Device__RadioTemp
};
#define STS__DEVICE__RADIO_TEMP__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__device__radio_temp__descriptor) \
- , 0,0, 0,0 }
+ , 0, STS__RADIO_BAND_TYPE__BAND2G, 0, 0 }
struct _Sts__Device__Thermal__RadioTxChainMask
@@ -646,7 +623,7 @@ struct _Sts__Device__Thermal__RadioTxCh
};
#define STS__DEVICE__THERMAL__RADIO_TX_CHAIN_MASK__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__device__thermal__radio_tx_chain_mask__descriptor) \
- , 0,0, 0,0 }
+ , 0, STS__RADIO_BAND_TYPE__BAND2G, 0, 0 }
struct _Sts__Device__Thermal
@@ -661,7 +638,7 @@ struct _Sts__Device__Thermal
};
#define STS__DEVICE__THERMAL__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__device__thermal__descriptor) \
- , 0,NULL, 0,0, 0,0 }
+ , 0,NULL, 0, 0, 0, 0 }
/*
@@ -679,7 +656,7 @@ struct _Sts__Device__MemUtil
};
#define STS__DEVICE__MEM_UTIL__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__device__mem_util__descriptor) \
- , 0, 0, 0,0, 0,0 }
+ , 0, 0, 0, 0, 0, 0 }
/*
@@ -694,7 +671,7 @@ struct _Sts__Device__FsUtil
};
#define STS__DEVICE__FS_UTIL__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__device__fs_util__descriptor) \
- , 0, 0, 0 }
+ , STS__FS_TYPE__FS_TYPE_ROOTFS, 0, 0 }
/*
@@ -708,7 +685,7 @@ struct _Sts__Device__CpuUtil
};
#define STS__DEVICE__CPU_UTIL__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__device__cpu_util__descriptor) \
- , 0,0 }
+ , 0, 0 }
/*
@@ -760,7 +737,7 @@ struct _Sts__Device
};
#define STS__DEVICE__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__device__descriptor) \
- , NULL, 0,NULL, 0,0, 0,0, 0,NULL, NULL, 0,NULL, NULL, 0,NULL, 0,NULL }
+ , NULL, 0,NULL, 0, 0, 0, 0, 0,NULL, NULL, 0,NULL, NULL, 0,NULL, 0,NULL }
struct _Sts__BSClient__BSEvent
@@ -829,7 +806,7 @@ struct _Sts__BSClient__BSEvent
};
#define STS__BSCLIENT__BSEVENT__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__bsclient__bsevent__descriptor) \
- , 0, 0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,{0,NULL} }
+ , STS__BSEVENT_TYPE__PROBE, 0, 0, 0, 0, 0, 0, 0, 0, STS__DISCONNECT_SRC__LOCAL, 0, STS__DISCONNECT_TYPE__DISASSOC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {0,NULL} }
struct _Sts__BSClient__BSBandReport
@@ -868,7 +845,7 @@ struct _Sts__BSClient__BSBandReport
};
#define STS__BSCLIENT__BSBAND_REPORT__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__bsclient__bsband_report__descriptor) \
- , 0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,NULL, NULL }
+ , STS__RADIO_BAND_TYPE__BAND2G, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NULL, NULL }
/*
@@ -911,7 +888,7 @@ struct _Sts__RssiPeer__RssiSample
};
#define STS__RSSI_PEER__RSSI_SAMPLE__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__rssi_peer__rssi_sample__descriptor) \
- , 0, 0,0 }
+ , 0, 0, 0 }
/*
@@ -937,7 +914,7 @@ struct _Sts__RssiPeer
};
#define STS__RSSI_PEER__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__rssi_peer__descriptor) \
- , NULL, 0,0, 0,NULL, NULL, 0,0, 0,0 }
+ , NULL, 0, STS__RSSI_PEER__RSSI_SOURCE__CLIENT, 0,NULL, NULL, 0, 0, 0, 0 }
struct _Sts__RssiReport
@@ -952,7 +929,7 @@ struct _Sts__RssiReport
};
#define STS__RSSI_REPORT__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&sts__rssi_report__descriptor) \
- , 0, 0, 0,0, 0,NULL }
+ , STS__RADIO_BAND_TYPE__BAND2G, STS__REPORT_TYPE__RAW, 0, 0, 0,NULL }
/*
--- a/src/lib/datapipeline/src/dppline.c
+++ b/src/lib/datapipeline/src/dppline.c
@@ -768,6 +768,7 @@ static void dppline_add_stat_survey(Sts_
CP_AVG(busy_self, chan_self);
CP_AVG(busy_rx, chan_rx);
CP_AVG(busy_ext, chan_busy_ext);
+ CP_AVG(noise, chan_noise);
#undef CP_AVG
}
@@ -805,6 +806,7 @@ static void dppline_add_stat_survey(Sts_
CP_OPT(busy_self, chan_self);
CP_OPT(busy_rx, chan_rx);
CP_OPT(busy_ext, chan_busy_ext);
+ CP_OPT(noise, chan_noise);
#undef CP_OPT
--- a/src/lib/datapipeline/src/opensync_stats.pb-c.c
+++ b/src/lib/datapipeline/src/opensync_stats.pb-c.c
@@ -1,29 +1,3 @@
-/*
-Copyright (c) 2015, Plume Design Inc. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the Plume Design Inc. nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL Plume Design Inc. BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
/* Generated by the protocol buffer compiler. DO NOT EDIT! */
/* Generated from: opensync_stats.proto */
@@ -36,7 +10,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
void sts__avg_type__init
(Sts__AvgType *message)
{
- static Sts__AvgType init_value = STS__AVG_TYPE__INIT;
+ static const Sts__AvgType init_value = STS__AVG_TYPE__INIT;
*message = init_value;
}
size_t sts__avg_type__get_packed_size
@@ -73,19 +47,21 @@ void sts__avg_type__free_unpacked
(Sts__AvgType *message,
ProtobufCAllocator *allocator)
{
+ if(!message)
+ return;
assert(message->base.descriptor == &sts__avg_type__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void sts__neighbor__neighbor_bss__init
(Sts__Neighbor__NeighborBss *message)
{
- static Sts__Neighbor__NeighborBss init_value = STS__NEIGHBOR__NEIGHBOR_BSS__INIT;
+ static const Sts__Neighbor__NeighborBss init_value = STS__NEIGHBOR__NEIGHBOR_BSS__INIT;
*message = init_value;
}
void sts__neighbor__init
(Sts__Neighbor *message)
{
- static Sts__Neighbor init_value = STS__NEIGHBOR__INIT;
+ static const Sts__Neighbor init_value = STS__NEIGHBOR__INIT;
*message = init_value;
}
size_t sts__neighbor__get_packed_size
@@ -122,49 +98,51 @@ void sts__neighbor__free_unpacked
(Sts__Neighbor *message,
ProtobufCAllocator *allocator)
{
+ if(!message)
+ return;
assert(message->base.descriptor == &sts__neighbor__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void sts__client__stats__init
(Sts__Client__Stats *message)
{
- static Sts__Client__Stats init_value = STS__CLIENT__STATS__INIT;
+ static const Sts__Client__Stats init_value = STS__CLIENT__STATS__INIT;
*message = init_value;
}
void sts__client__rx_stats__chain_rssi__init
(Sts__Client__RxStats__ChainRSSI *message)
{
- static Sts__Client__RxStats__ChainRSSI init_value = STS__CLIENT__RX_STATS__CHAIN_RSSI__INIT;
+ static const Sts__Client__RxStats__ChainRSSI init_value = STS__CLIENT__RX_STATS__CHAIN_RSSI__INIT;
*message = init_value;
}
void sts__client__rx_stats__init
(Sts__Client__RxStats *message)
{
- static Sts__Client__RxStats init_value = STS__CLIENT__RX_STATS__INIT;
+ static const Sts__Client__RxStats init_value = STS__CLIENT__RX_STATS__INIT;
*message = init_value;
}
void sts__client__tx_stats__init
(Sts__Client__TxStats *message)
{
- static Sts__Client__TxStats init_value = STS__CLIENT__TX_STATS__INIT;
+ static const Sts__Client__TxStats init_value = STS__CLIENT__TX_STATS__INIT;
*message = init_value;
}
void sts__client__tid_stats__sojourn__init
(Sts__Client__TidStats__Sojourn *message)
{
- static Sts__Client__TidStats__Sojourn init_value = STS__CLIENT__TID_STATS__SOJOURN__INIT;
+ static const Sts__Client__TidStats__Sojourn init_value = STS__CLIENT__TID_STATS__SOJOURN__INIT;
*message = init_value;
}
void sts__client__tid_stats__init
(Sts__Client__TidStats *message)
{
- static Sts__Client__TidStats init_value = STS__CLIENT__TID_STATS__INIT;
+ static const Sts__Client__TidStats init_value = STS__CLIENT__TID_STATS__INIT;
*message = init_value;
}
void sts__client__init
(Sts__Client *message)
{
- static Sts__Client init_value = STS__CLIENT__INIT;
+ static const Sts__Client init_value = STS__CLIENT__INIT;
*message = init_value;
}
size_t sts__client__get_packed_size
@@ -201,13 +179,15 @@ void sts__client__free_unpacked
(Sts__Client *message,
ProtobufCAllocator *allocator)
{
+ if(!message)
+ return;
assert(message->base.descriptor == &sts__client__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void sts__client_report__init
(Sts__ClientReport *message)
{
- static Sts__ClientReport init_value = STS__CLIENT_REPORT__INIT;
+ static const Sts__ClientReport init_value = STS__CLIENT_REPORT__INIT;
*message = init_value;
}
size_t sts__client_report__get_packed_size
@@ -244,25 +224,27 @@ void sts__client_report__free_unpacked
(Sts__ClientReport *message,
ProtobufCAllocator *allocator)
{
+ if(!message)
+ return;
assert(message->base.descriptor == &sts__client_report__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void sts__survey__survey_sample__init
(Sts__Survey__SurveySample *message)
{
- static Sts__Survey__SurveySample init_value = STS__SURVEY__SURVEY_SAMPLE__INIT;
+ static const Sts__Survey__SurveySample init_value = STS__SURVEY__SURVEY_SAMPLE__INIT;
*message = init_value;
}
void sts__survey__survey_avg__init
(Sts__Survey__SurveyAvg *message)
{
- static Sts__Survey__SurveyAvg init_value = STS__SURVEY__SURVEY_AVG__INIT;
+ static const Sts__Survey__SurveyAvg init_value = STS__SURVEY__SURVEY_AVG__INIT;
*message = init_value;
}
void sts__survey__init
(Sts__Survey *message)
{
- static Sts__Survey init_value = STS__SURVEY__INIT;
+ static const Sts__Survey init_value = STS__SURVEY__INIT;
*message = init_value;
}
size_t sts__survey__get_packed_size
@@ -299,19 +281,21 @@ void sts__survey__free_unpacked
(Sts__Survey *message,
ProtobufCAllocator *allocator)
{
+ if(!message)
+ return;
assert(message->base.descriptor == &sts__survey__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void sts__capacity__queue_sample__init
(Sts__Capacity__QueueSample *message)
{
- static Sts__Capacity__QueueSample init_value = STS__CAPACITY__QUEUE_SAMPLE__INIT;
+ static const Sts__Capacity__QueueSample init_value = STS__CAPACITY__QUEUE_SAMPLE__INIT;
*message = init_value;
}
void sts__capacity__init
(Sts__Capacity *message)
{
- static Sts__Capacity init_value = STS__CAPACITY__INIT;
+ static const Sts__Capacity init_value = STS__CAPACITY__INIT;
*message = init_value;
}
size_t sts__capacity__get_packed_size
@@ -348,61 +332,63 @@ void sts__capacity__free_unpacked
(Sts__Capacity *message,
ProtobufCAllocator *allocator)
{
+ if(!message)
+ return;
assert(message->base.descriptor == &sts__capacity__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void sts__device__load_avg__init
(Sts__Device__LoadAvg *message)
{
- static Sts__Device__LoadAvg init_value = STS__DEVICE__LOAD_AVG__INIT;
+ static const Sts__Device__LoadAvg init_value = STS__DEVICE__LOAD_AVG__INIT;
*message = init_value;
}
void sts__device__radio_temp__init
(Sts__Device__RadioTemp *message)
{
- static Sts__Device__RadioTemp init_value = STS__DEVICE__RADIO_TEMP__INIT;
+ static const Sts__Device__RadioTemp init_value = STS__DEVICE__RADIO_TEMP__INIT;
*message = init_value;
}
void sts__device__thermal__radio_tx_chain_mask__init
(Sts__Device__Thermal__RadioTxChainMask *message)
{
- static Sts__Device__Thermal__RadioTxChainMask init_value = STS__DEVICE__THERMAL__RADIO_TX_CHAIN_MASK__INIT;
+ static const Sts__Device__Thermal__RadioTxChainMask init_value = STS__DEVICE__THERMAL__RADIO_TX_CHAIN_MASK__INIT;
*message = init_value;
}
void sts__device__thermal__init
(Sts__Device__Thermal *message)
{
- static Sts__Device__Thermal init_value = STS__DEVICE__THERMAL__INIT;
+ static const Sts__Device__Thermal init_value = STS__DEVICE__THERMAL__INIT;
*message = init_value;
}
void sts__device__mem_util__init
(Sts__Device__MemUtil *message)
{
- static Sts__Device__MemUtil init_value = STS__DEVICE__MEM_UTIL__INIT;
+ static const Sts__Device__MemUtil init_value = STS__DEVICE__MEM_UTIL__INIT;
*message = init_value;
}
void sts__device__fs_util__init
(Sts__Device__FsUtil *message)
{
- static Sts__Device__FsUtil init_value = STS__DEVICE__FS_UTIL__INIT;
+ static const Sts__Device__FsUtil init_value = STS__DEVICE__FS_UTIL__INIT;
*message = init_value;
}
void sts__device__cpu_util__init
(Sts__Device__CpuUtil *message)
{
- static Sts__Device__CpuUtil init_value = STS__DEVICE__CPU_UTIL__INIT;
+ static const Sts__Device__CpuUtil init_value = STS__DEVICE__CPU_UTIL__INIT;
*message = init_value;
}
void sts__device__per_process_util__init
(Sts__Device__PerProcessUtil *message)
{
- static Sts__Device__PerProcessUtil init_value = STS__DEVICE__PER_PROCESS_UTIL__INIT;
+ static const Sts__Device__PerProcessUtil init_value = STS__DEVICE__PER_PROCESS_UTIL__INIT;
*message = init_value;
}
void sts__device__init
(Sts__Device *message)
{
- static Sts__Device init_value = STS__DEVICE__INIT;
+ static const Sts__Device init_value = STS__DEVICE__INIT;
*message = init_value;
}
size_t sts__device__get_packed_size
@@ -439,25 +425,27 @@ void sts__device__free_unpacked
(Sts__Device *message,
ProtobufCAllocator *allocator)
{
+ if(!message)
+ return;
assert(message->base.descriptor == &sts__device__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void sts__bsclient__bsevent__init
(Sts__BSClient__BSEvent *message)
{
- static Sts__BSClient__BSEvent init_value = STS__BSCLIENT__BSEVENT__INIT;
+ static const Sts__BSClient__BSEvent init_value = STS__BSCLIENT__BSEVENT__INIT;
*message = init_value;
}
void sts__bsclient__bsband_report__init
(Sts__BSClient__BSBandReport *message)
{
- static Sts__BSClient__BSBandReport init_value = STS__BSCLIENT__BSBAND_REPORT__INIT;
+ static const Sts__BSClient__BSBandReport init_value = STS__BSCLIENT__BSBAND_REPORT__INIT;
*message = init_value;
}
void sts__bsclient__init
(Sts__BSClient *message)
{
- static Sts__BSClient init_value = STS__BSCLIENT__INIT;
+ static const Sts__BSClient init_value = STS__BSCLIENT__INIT;
*message = init_value;
}
size_t sts__bsclient__get_packed_size
@@ -494,13 +482,15 @@ void sts__bsclient__free_unpacked
(Sts__BSClient *message,
ProtobufCAllocator *allocator)
{
+ if(!message)
+ return;
assert(message->base.descriptor == &sts__bsclient__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void sts__bsreport__init
(Sts__BSReport *message)
{
- static Sts__BSReport init_value = STS__BSREPORT__INIT;
+ static const Sts__BSReport init_value = STS__BSREPORT__INIT;
*message = init_value;
}
size_t sts__bsreport__get_packed_size
@@ -537,19 +527,21 @@ void sts__bsreport__free_unpacked
(Sts__BSReport *message,
ProtobufCAllocator *allocator)
{
+ if(!message)
+ return;
assert(message->base.descriptor == &sts__bsreport__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void sts__rssi_peer__rssi_sample__init
(Sts__RssiPeer__RssiSample *message)
{
- static Sts__RssiPeer__RssiSample init_value = STS__RSSI_PEER__RSSI_SAMPLE__INIT;
+ static const Sts__RssiPeer__RssiSample init_value = STS__RSSI_PEER__RSSI_SAMPLE__INIT;
*message = init_value;
}
void sts__rssi_peer__init
(Sts__RssiPeer *message)
{
- static Sts__RssiPeer init_value = STS__RSSI_PEER__INIT;
+ static const Sts__RssiPeer init_value = STS__RSSI_PEER__INIT;
*message = init_value;
}
size_t sts__rssi_peer__get_packed_size
@@ -586,13 +578,15 @@ void sts__rssi_peer__free_unpacked
(Sts__RssiPeer *message,
ProtobufCAllocator *allocator)
{
+ if(!message)
+ return;
assert(message->base.descriptor == &sts__rssi_peer__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void sts__rssi_report__init
(Sts__RssiReport *message)
{
- static Sts__RssiReport init_value = STS__RSSI_REPORT__INIT;
+ static const Sts__RssiReport init_value = STS__RSSI_REPORT__INIT;
*message = init_value;
}
size_t sts__rssi_report__get_packed_size
@@ -629,13 +623,15 @@ void sts__rssi_report__free_unpacked
(Sts__RssiReport *message,
ProtobufCAllocator *allocator)
{
+ if(!message)
+ return;
assert(message->base.descriptor == &sts__rssi_report__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void sts__report__init
(Sts__Report *message)
{
- static Sts__Report init_value = STS__REPORT__INIT;
+ static const Sts__Report init_value = STS__REPORT__INIT;
*message = init_value;
}
size_t sts__report__get_packed_size
@@ -672,6 +668,8 @@ void sts__report__free_unpacked
(Sts__Report *message,
ProtobufCAllocator *allocator)
{
+ if(!message)
+ return;
assert(message->base.descriptor == &sts__report__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
@@ -1912,7 +1910,7 @@ const ProtobufCMessageDescriptor sts__cl
(ProtobufCMessageInit) sts__client_report__init,
NULL,NULL,NULL /* reserved[123] */
};
-static const ProtobufCFieldDescriptor sts__survey__survey_sample__field_descriptors[10] =
+static const ProtobufCFieldDescriptor sts__survey__survey_sample__field_descriptors[11] =
{
{
"channel",
@@ -2034,6 +2032,18 @@ static const ProtobufCFieldDescriptor st
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
+ {
+ "noise",
+ 11,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(Sts__Survey__SurveySample, has_noise),
+ offsetof(Sts__Survey__SurveySample, noise),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
};
static const unsigned sts__survey__survey_sample__field_indices_by_name[] = {
4, /* field[4] = busy */
@@ -2043,6 +2053,7 @@ static const unsigned sts__survey__surve
5, /* field[5] = busy_tx */
0, /* field[0] = channel */
1, /* field[1] = duration_ms */
+ 10, /* field[10] = noise */
8, /* field[8] = offset_ms */
3, /* field[3] = sample_count */
2, /* field[2] = total_count */
@@ -2050,7 +2061,7 @@ static const unsigned sts__survey__surve
static const ProtobufCIntRange sts__survey__survey_sample__number_ranges[1 + 1] =
{
{ 1, 0 },
- { 0, 10 }
+ { 0, 11 }
};
const ProtobufCMessageDescriptor sts__survey__survey_sample__descriptor =
{
@@ -2060,14 +2071,14 @@ const ProtobufCMessageDescriptor sts__su
"Sts__Survey__SurveySample",
"sts",
sizeof(Sts__Survey__SurveySample),
- 10,
+ 11,
sts__survey__survey_sample__field_descriptors,
sts__survey__survey_sample__field_indices_by_name,
1, sts__survey__survey_sample__number_ranges,
(ProtobufCMessageInit) sts__survey__survey_sample__init,
NULL,NULL,NULL /* reserved[123] */
};
-static const ProtobufCFieldDescriptor sts__survey__survey_avg__field_descriptors[6] =
+static const ProtobufCFieldDescriptor sts__survey__survey_avg__field_descriptors[7] =
{
{
"channel",
@@ -2141,6 +2152,18 @@ static const ProtobufCFieldDescriptor st
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
+ {
+ "noise",
+ 7,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_MESSAGE,
+ 0, /* quantifier_offset */
+ offsetof(Sts__Survey__SurveyAvg, noise),
+ &sts__avg_type__descriptor,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
};
static const unsigned sts__survey__survey_avg__field_indices_by_name[] = {
1, /* field[1] = busy */
@@ -2149,11 +2172,12 @@ static const unsigned sts__survey__surve
4, /* field[4] = busy_self */
2, /* field[2] = busy_tx */
0, /* field[0] = channel */
+ 6, /* field[6] = noise */
};
static const ProtobufCIntRange sts__survey__survey_avg__number_ranges[1 + 1] =
{
{ 1, 0 },
- { 0, 6 }
+ { 0, 7 }
};
const ProtobufCMessageDescriptor sts__survey__survey_avg__descriptor =
{
@@ -2163,7 +2187,7 @@ const ProtobufCMessageDescriptor sts__su
"Sts__Survey__SurveyAvg",
"sts",
sizeof(Sts__Survey__SurveyAvg),
- 6,
+ 7,
sts__survey__survey_avg__field_descriptors,
sts__survey__survey_avg__field_indices_by_name,
1, sts__survey__survey_avg__number_ranges,
--- a/src/sm/src/sm_survey_report.c
+++ b/src/sm/src/sm_survey_report.c
@@ -428,6 +428,7 @@ bool sm_survey_report_calculate_average
CALC(chan_self);
CALC(chan_rx);
CALC(chan_busy_ext);
+ CALC(chan_noise);
}
#define AVG(_name) do { \
@@ -465,6 +466,7 @@ bool sm_survey_report_calculate_average
AVG(chan_self);
AVG(chan_rx);
AVG(chan_busy_ext);
+ AVG(chan_noise);
ds_dlist_insert_tail(report_list, report_entry);
}
@@ -519,7 +521,7 @@ bool sm_survey_report_calculate_raw (
memcpy(report_entry, record_entry, sizeof(*report_entry));
LOGD("Sending %s %s %u survey report "
- "{busy=%u tx=%u self=%u rx=%u ext=%u duration=%u}",
+ "{busy=%u tx=%u self=%u rx=%u ext=%u noise=%u duration=%u}",
radio_get_name_from_cfg(radio_cfg_ctx),
radio_get_scan_name_from_type(scan_type),
report_entry->info.chan,
@@ -528,6 +530,7 @@ bool sm_survey_report_calculate_raw (
report_entry->chan_self,
report_entry->chan_rx,
report_entry->chan_busy_ext,
+ report_entry->chan_noise,
report_entry->duration_ms);
ds_dlist_insert_tail(report_list, report_entry);
@@ -723,7 +726,7 @@ bool sm_survey_update_list_cb (
result_entry);
LOGD("Processed %s %s %u survey percent "
- "{busy=%u tx=%u self=%u rx=%u ext=%u duration=%u}",
+ "{busy=%u tx=%u self=%u rx=%u ext=%u noise=%u duration=%u}",
radio_get_name_from_cfg(radio_cfg_ctx),
radio_get_scan_name_from_type(scan_type),
result_entry->info.chan,
@@ -732,6 +735,7 @@ bool sm_survey_update_list_cb (
result_entry->chan_self,
result_entry->chan_rx,
result_entry->chan_busy_ext,
+ result_entry->chan_noise,
result_entry->duration_ms);
result_entry->info.timestamp_ms =