mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-12-19 10:23:03 +00:00
Add video_voice string in the Wifi_Stats_Config schema Signed-off-by: Chaitanya Kiran Godavarthi <chaitanya.kiran@connectus.ai>
3930 lines
131 KiB
Diff
3930 lines
131 KiB
Diff
--- a/interfaces/opensync_stats.proto
|
|
+++ b/interfaces/opensync_stats.proto
|
|
@@ -146,6 +146,13 @@ enum DiffType {
|
|
REMOVED = 1;
|
|
}
|
|
|
|
+enum StreamingVideoType {
|
|
+ UNKNOWN = 0;
|
|
+ NETFLIX = 1;
|
|
+ YOUTUBE = 2;
|
|
+ PLEX = 3;
|
|
+}
|
|
+
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Neighbor report: Report contains OBSS neighbor nodes/beacons retreived from
|
|
@@ -543,6 +550,120 @@ message NetworkProbe {
|
|
repeated RADIUSMetrics radius_probe = 3;
|
|
optional uint64 timestamp_ms = 4;
|
|
}
|
|
+
|
|
+////////////////////////////////////////////////////////////////////////////////
|
|
+//
|
|
+// Voice and Video Stats
|
|
+//
|
|
+// - Contains voice/video detection information
|
|
+//
|
|
+////////////////////////////////////////////////////////////////////////////////
|
|
+message RtpFlowStats {
|
|
+ enum RtpFlowDirection {
|
|
+ RTP_UPSTREAM = 0;
|
|
+ RTP_DOWNSTREAM = 1;
|
|
+ }
|
|
+
|
|
+ enum RtpFlowType {
|
|
+ RTP_VOICE = 0;
|
|
+ RTP_VIDEO = 1;
|
|
+ }
|
|
+
|
|
+ optional RtpFlowDirection direction = 1;
|
|
+ optional RtpFlowType rtp_flow_type = 2;
|
|
+ optional uint32 latency = 3;
|
|
+ optional uint32 jitter = 4;
|
|
+ optional uint32 packet_loss_percent = 5;
|
|
+ optional uint32 packet_loss_consec = 6;
|
|
+ optional uint32 codec = 7;
|
|
+ optional uint32 mosx_100 = 8;
|
|
+ optional bytes block_codecs = 9;
|
|
+ optional uint32 total_packets_sent = 10;
|
|
+ optional uint32 total_packets_lost = 11;
|
|
+ optional uint32 rtp_seq_first = 12;
|
|
+ optional uint32 rtp_seq_last = 13;
|
|
+ optional uint32 stats_idx = 14;
|
|
+}
|
|
+
|
|
+message CallStart {
|
|
+ optional uint64 session_id = 1;
|
|
+ optional uint64 wifi_session_id = 2;
|
|
+ optional bytes client_mac = 3;
|
|
+ repeated string codecs = 4;
|
|
+ optional string provider_domain = 5;
|
|
+ optional string device_info = 6;
|
|
+}
|
|
+
|
|
+message CallStop {
|
|
+ enum CallStopReason {
|
|
+ BYE_OK = 0;
|
|
+ CALL_DROPPED = 1;
|
|
+ }
|
|
+
|
|
+ optional uint64 session_id = 1;
|
|
+ optional uint64 wifi_session_id = 2;
|
|
+ optional bytes client_mac = 3;
|
|
+ optional CallStopReason reason = 4;
|
|
+ optional uint32 call_duration = 5;
|
|
+ repeated RtpFlowStats stats = 6;
|
|
+}
|
|
+
|
|
+message CallReport {
|
|
+ enum CallReportReason {
|
|
+ ROAMED_FROM = 0;
|
|
+ ROAMED_TO = 1;
|
|
+ GOT_PUBLISH = 2;
|
|
+ }
|
|
+
|
|
+ optional uint64 session_id = 1;
|
|
+ optional uint64 wifi_session_id = 2;
|
|
+ optional bytes client_mac = 3;
|
|
+ repeated RtpFlowStats stats = 4;
|
|
+ optional CallReportReason reason = 5;
|
|
+}
|
|
+
|
|
+message StreamingVideoDetectPattern {
|
|
+ optional string dns_lookup_pattern = 1; // DNS name pattern for detection (like *.nflxvideo.net)
|
|
+ optional StreamingVideoType video_type = 2;
|
|
+}
|
|
+
|
|
+message StreamingVideoSessionStart {
|
|
+ optional uint64 video_session_id = 1;
|
|
+ optional uint64 session_id = 2;
|
|
+ optional bytes client_mac = 3;
|
|
+ optional bytes server_ip = 4;
|
|
+ optional StreamingVideoType streaming_video_type = 5;
|
|
+}
|
|
+
|
|
+message StreamingVideoServerDetected {
|
|
+ optional uint64 video_session_id = 1;
|
|
+ optional uint64 session_id = 2;
|
|
+ optional bytes client_mac = 3;
|
|
+ optional bytes server_ip = 4;
|
|
+ optional string server_dns_name = 5;
|
|
+ optional StreamingVideoType streaming_video_type = 6;
|
|
+}
|
|
+
|
|
+message StreamingVideoStop {
|
|
+ optional uint64 video_session_id = 1;
|
|
+ optional uint64 session_id = 2;
|
|
+ optional bytes client_mac = 3;
|
|
+ optional bytes server_ip = 4;
|
|
+ optional uint64 total_bytes = 5;
|
|
+ optional StreamingVideoType streaming_video_type = 6;
|
|
+ optional uint32 duration_sec = 7;
|
|
+}
|
|
+
|
|
+message VideoVoiceReport {
|
|
+ optional CallStart call_start = 1;
|
|
+ optional CallStop call_stop = 2;
|
|
+ optional CallReport call_report = 3;
|
|
+ optional StreamingVideoStop stream_video_stop = 4;
|
|
+ optional StreamingVideoServerDetected stream_video_server = 5;
|
|
+ optional StreamingVideoSessionStart stream_video_session_start = 6;
|
|
+ optional uint64 timestamp_ms = 7;
|
|
+}
|
|
+
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Overall report that might contain all individual stats reports
|
|
@@ -557,5 +678,6 @@ message Report {
|
|
repeated Device device = 6;
|
|
repeated BSReport bs_report = 7;
|
|
repeated RssiReport rssi_report = 8;
|
|
+ repeated VideoVoiceReport video_voice_report = 9;
|
|
repeated NetworkProbe network_probe = 101;
|
|
}
|
|
--- a/src/lib/datapipeline/inc/opensync_stats.pb-c.h
|
|
+++ b/src/lib/datapipeline/inc/opensync_stats.pb-c.h
|
|
@@ -10,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 1003003 < PROTOBUF_C_MIN_COMPILER_VERSION
|
|
+#elif 1002001 < 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
|
|
|
|
@@ -52,6 +52,15 @@ typedef struct _Sts__DNSProbeMetric Sts_
|
|
typedef struct _Sts__VLANMetrics Sts__VLANMetrics;
|
|
typedef struct _Sts__RADIUSMetrics Sts__RADIUSMetrics;
|
|
typedef struct _Sts__NetworkProbe Sts__NetworkProbe;
|
|
+typedef struct _Sts__RtpFlowStats Sts__RtpFlowStats;
|
|
+typedef struct _Sts__CallStart Sts__CallStart;
|
|
+typedef struct _Sts__CallStop Sts__CallStop;
|
|
+typedef struct _Sts__CallReport Sts__CallReport;
|
|
+typedef struct _Sts__StreamingVideoDetectPattern Sts__StreamingVideoDetectPattern;
|
|
+typedef struct _Sts__StreamingVideoSessionStart Sts__StreamingVideoSessionStart;
|
|
+typedef struct _Sts__StreamingVideoServerDetected Sts__StreamingVideoServerDetected;
|
|
+typedef struct _Sts__StreamingVideoStop Sts__StreamingVideoStop;
|
|
+typedef struct _Sts__VideoVoiceReport Sts__VideoVoiceReport;
|
|
typedef struct _Sts__Report Sts__Report;
|
|
|
|
|
|
@@ -63,6 +72,27 @@ typedef enum _Sts__RssiPeer__RssiSource
|
|
STS__RSSI_PEER__RSSI_SOURCE__NEIGHBOR = 2
|
|
PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(STS__RSSI_PEER__RSSI_SOURCE)
|
|
} Sts__RssiPeer__RssiSource;
|
|
+typedef enum _Sts__RtpFlowStats__RtpFlowDirection {
|
|
+ STS__RTP_FLOW_STATS__RTP_FLOW_DIRECTION__RTP_UPSTREAM = 0,
|
|
+ STS__RTP_FLOW_STATS__RTP_FLOW_DIRECTION__RTP_DOWNSTREAM = 1
|
|
+ PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(STS__RTP_FLOW_STATS__RTP_FLOW_DIRECTION)
|
|
+} Sts__RtpFlowStats__RtpFlowDirection;
|
|
+typedef enum _Sts__RtpFlowStats__RtpFlowType {
|
|
+ STS__RTP_FLOW_STATS__RTP_FLOW_TYPE__RTP_VOICE = 0,
|
|
+ STS__RTP_FLOW_STATS__RTP_FLOW_TYPE__RTP_VIDEO = 1
|
|
+ PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(STS__RTP_FLOW_STATS__RTP_FLOW_TYPE)
|
|
+} Sts__RtpFlowStats__RtpFlowType;
|
|
+typedef enum _Sts__CallStop__CallStopReason {
|
|
+ STS__CALL_STOP__CALL_STOP_REASON__BYE_OK = 0,
|
|
+ STS__CALL_STOP__CALL_STOP_REASON__CALL_DROPPED = 1
|
|
+ PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(STS__CALL_STOP__CALL_STOP_REASON)
|
|
+} Sts__CallStop__CallStopReason;
|
|
+typedef enum _Sts__CallReport__CallReportReason {
|
|
+ STS__CALL_REPORT__CALL_REPORT_REASON__ROAMED_FROM = 0,
|
|
+ STS__CALL_REPORT__CALL_REPORT_REASON__ROAMED_TO = 1,
|
|
+ STS__CALL_REPORT__CALL_REPORT_REASON__GOT_PUBLISH = 2
|
|
+ PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(STS__CALL_REPORT__CALL_REPORT_REASON)
|
|
+} Sts__CallReport__CallReportReason;
|
|
typedef enum _Sts__RadioBandType {
|
|
STS__RADIO_BAND_TYPE__BAND2G = 0,
|
|
STS__RADIO_BAND_TYPE__BAND5G = 1,
|
|
@@ -174,6 +204,13 @@ typedef enum _Sts__DiffType {
|
|
STS__DIFF_TYPE__REMOVED = 1
|
|
PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(STS__DIFF_TYPE)
|
|
} Sts__DiffType;
|
|
+typedef enum _Sts__StreamingVideoType {
|
|
+ STS__STREAMING_VIDEO_TYPE__UNKNOWN = 0,
|
|
+ STS__STREAMING_VIDEO_TYPE__NETFLIX = 1,
|
|
+ STS__STREAMING_VIDEO_TYPE__YOUTUBE = 2,
|
|
+ STS__STREAMING_VIDEO_TYPE__PLEX = 3
|
|
+ PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(STS__STREAMING_VIDEO_TYPE)
|
|
+} Sts__StreamingVideoType;
|
|
/*
|
|
* //////////////////////////////////////////////////////////////////////////////
|
|
* Network probe parameters
|
|
@@ -201,7 +238,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
|
|
@@ -221,7 +258,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, STS__CHAN_WIDTH__CHAN_WIDTH_UNKNOWN, 0, 0, STS__DIFF_TYPE__ADDED }
|
|
+ , NULL, NULL, 0,0, 0,0, 0,0, 0, 0,0 }
|
|
|
|
|
|
/*
|
|
@@ -247,7 +284,7 @@ struct _Sts__Neighbor
|
|
};
|
|
#define STS__NEIGHBOR__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__neighbor__descriptor) \
|
|
- , STS__RADIO_BAND_TYPE__BAND2G, STS__NEIGHBOR_TYPE__ONCHAN_SCAN, 0, 0, 0,NULL, 0, STS__REPORT_TYPE__RAW }
|
|
+ , 0, 0, 0,0, 0,NULL, 0,0 }
|
|
|
|
|
|
struct _Sts__Client__Stats
|
|
@@ -278,7 +315,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
|
|
@@ -294,7 +331,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
|
|
@@ -322,7 +359,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
|
|
@@ -346,7 +383,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
|
|
@@ -378,7 +415,7 @@ struct _Sts__Client__TidStats__Sojourn
|
|
};
|
|
#define STS__CLIENT__TID_STATS__SOJOURN__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__client__tid_stats__sojourn__descriptor) \
|
|
- , STS__WMM_AC__WMM_AC_VO, 0, 0, 0, 0, 0, 0, 0 }
|
|
+ , 0, 0, 0,0, 0,0, 0,0 }
|
|
|
|
|
|
struct _Sts__Client__TidStats
|
|
@@ -391,7 +428,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 }
|
|
|
|
|
|
/*
|
|
@@ -426,7 +463,7 @@ struct _Sts__Client__ConnectionEvent
|
|
};
|
|
#define STS__CLIENT__CONNECTION_EVENT__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__client__connection_event__descriptor) \
|
|
- , STS__CONNECTION_EVENT_TYPE__CLIENT_ASSOC, NULL, 0, 0, NULL, 0, STS__RADIO_BAND_TYPE__BAND2G, 0, STS__ASSOC_TYPE__ASSOC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
|
+ , 0, NULL, 0,0, NULL, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 }
|
|
|
|
|
|
/*
|
|
@@ -467,7 +504,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, 0,NULL }
|
|
+ , NULL, NULL, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, NULL, 0,NULL, 0,NULL, 0,NULL, 0,0, 0,NULL }
|
|
|
|
|
|
struct _Sts__ClientReport
|
|
@@ -482,7 +519,7 @@ struct _Sts__ClientReport
|
|
};
|
|
#define STS__CLIENT_REPORT__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__client_report__descriptor) \
|
|
- , STS__RADIO_BAND_TYPE__BAND2G, 0, 0, 0,NULL, 0 }
|
|
+ , 0, 0,0, 0,NULL, 0 }
|
|
|
|
|
|
struct _Sts__Survey__SurveySample
|
|
@@ -527,7 +564,7 @@ struct _Sts__Survey__SurveySample
|
|
};
|
|
#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, 0,0 }
|
|
|
|
|
|
struct _Sts__Survey__SurveyAvg
|
|
@@ -585,7 +622,7 @@ struct _Sts__Survey
|
|
};
|
|
#define STS__SURVEY__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__survey__descriptor) \
|
|
- , STS__RADIO_BAND_TYPE__BAND2G, STS__SURVEY_TYPE__ON_CHANNEL, 0, 0, 0,NULL, 0,NULL, 0, STS__REPORT_TYPE__RAW }
|
|
+ , 0, 0, 0,0, 0,NULL, 0,NULL, 0,0 }
|
|
|
|
|
|
struct _Sts__Capacity__QueueSample
|
|
@@ -632,7 +669,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 }
|
|
|
|
|
|
/*
|
|
@@ -651,7 +688,7 @@ struct _Sts__Capacity
|
|
};
|
|
#define STS__CAPACITY__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__capacity__descriptor) \
|
|
- , STS__RADIO_BAND_TYPE__BAND2G, 0, 0, 0,NULL }
|
|
+ , 0, 0,0, 0,NULL }
|
|
|
|
|
|
struct _Sts__Device__LoadAvg
|
|
@@ -666,7 +703,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
|
|
@@ -679,7 +716,7 @@ struct _Sts__Device__RadioTemp
|
|
};
|
|
#define STS__DEVICE__RADIO_TEMP__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__device__radio_temp__descriptor) \
|
|
- , 0, STS__RADIO_BAND_TYPE__BAND2G, 0, 0 }
|
|
+ , 0,0, 0,0 }
|
|
|
|
|
|
struct _Sts__Device__Thermal__RadioTxChainMask
|
|
@@ -692,7 +729,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, STS__RADIO_BAND_TYPE__BAND2G, 0, 0 }
|
|
+ , 0,0, 0,0 }
|
|
|
|
|
|
struct _Sts__Device__Thermal
|
|
@@ -707,7 +744,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 }
|
|
|
|
|
|
/*
|
|
@@ -725,7 +762,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 }
|
|
|
|
|
|
/*
|
|
@@ -740,7 +777,7 @@ struct _Sts__Device__FsUtil
|
|
};
|
|
#define STS__DEVICE__FS_UTIL__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__device__fs_util__descriptor) \
|
|
- , STS__FS_TYPE__FS_TYPE_ROOTFS, 0, 0 }
|
|
+ , 0, 0, 0 }
|
|
|
|
|
|
/*
|
|
@@ -754,7 +791,7 @@ struct _Sts__Device__CpuUtil
|
|
};
|
|
#define STS__DEVICE__CPU_UTIL__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__device__cpu_util__descriptor) \
|
|
- , 0, 0 }
|
|
+ , 0,0 }
|
|
|
|
|
|
/*
|
|
@@ -806,7 +843,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
|
|
@@ -875,7 +912,7 @@ struct _Sts__BSClient__BSEvent
|
|
};
|
|
#define STS__BSCLIENT__BSEVENT__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__bsclient__bsevent__descriptor) \
|
|
- , 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} }
|
|
+ , 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} }
|
|
|
|
|
|
struct _Sts__BSClient__BSBandReport
|
|
@@ -914,7 +951,7 @@ struct _Sts__BSClient__BSBandReport
|
|
};
|
|
#define STS__BSCLIENT__BSBAND_REPORT__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__bsclient__bsband_report__descriptor) \
|
|
- , 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 }
|
|
+ , 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 }
|
|
|
|
|
|
/*
|
|
@@ -957,7 +994,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 }
|
|
|
|
|
|
/*
|
|
@@ -983,7 +1020,7 @@ struct _Sts__RssiPeer
|
|
};
|
|
#define STS__RSSI_PEER__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__rssi_peer__descriptor) \
|
|
- , NULL, 0, STS__RSSI_PEER__RSSI_SOURCE__CLIENT, 0,NULL, NULL, 0, 0, 0, 0 }
|
|
+ , NULL, 0,0, 0,NULL, NULL, 0,0, 0,0 }
|
|
|
|
|
|
struct _Sts__RssiReport
|
|
@@ -998,7 +1035,7 @@ struct _Sts__RssiReport
|
|
};
|
|
#define STS__RSSI_REPORT__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__rssi_report__descriptor) \
|
|
- , STS__RADIO_BAND_TYPE__BAND2G, STS__REPORT_TYPE__RAW, 0, 0, 0,NULL }
|
|
+ , 0, 0, 0,0, 0,NULL }
|
|
|
|
|
|
struct _Sts__DNSProbeMetric
|
|
@@ -1018,7 +1055,7 @@ struct _Sts__DNSProbeMetric
|
|
};
|
|
#define STS__DNSPROBE_METRIC__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__dnsprobe_metric__descriptor) \
|
|
- , NULL, 0, STS__STATE_UP_DOWN__SUD_down, 0, 0 }
|
|
+ , NULL, 0,0, 0,0 }
|
|
|
|
|
|
struct _Sts__VLANMetrics
|
|
@@ -1038,7 +1075,7 @@ struct _Sts__VLANMetrics
|
|
};
|
|
#define STS__VLANMETRICS__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__vlanmetrics__descriptor) \
|
|
- , NULL, 0, STS__STATE_UP_DOWN__SUD_down, 0, 0 }
|
|
+ , NULL, 0,0, 0,0 }
|
|
|
|
|
|
struct _Sts__RADIUSMetrics
|
|
@@ -1052,7 +1089,7 @@ struct _Sts__RADIUSMetrics
|
|
};
|
|
#define STS__RADIUSMETRICS__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__radiusmetrics__descriptor) \
|
|
- , NULL, 0, STS__STATE_UP_DOWN__SUD_down, 0, 0 }
|
|
+ , NULL, 0,0, 0,0 }
|
|
|
|
|
|
struct _Sts__NetworkProbe
|
|
@@ -1067,7 +1104,203 @@ struct _Sts__NetworkProbe
|
|
};
|
|
#define STS__NETWORK_PROBE__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__network_probe__descriptor) \
|
|
- , NULL, NULL, 0,NULL, 0, 0 }
|
|
+ , NULL, NULL, 0,NULL, 0,0 }
|
|
+
|
|
+
|
|
+/*
|
|
+ * //////////////////////////////////////////////////////////////////////////////
|
|
+ * Voice and Video Stats
|
|
+ * - Contains voice/video detection information
|
|
+ * //////////////////////////////////////////////////////////////////////////////
|
|
+ */
|
|
+struct _Sts__RtpFlowStats
|
|
+{
|
|
+ ProtobufCMessage base;
|
|
+ protobuf_c_boolean has_direction;
|
|
+ Sts__RtpFlowStats__RtpFlowDirection direction;
|
|
+ protobuf_c_boolean has_rtp_flow_type;
|
|
+ Sts__RtpFlowStats__RtpFlowType rtp_flow_type;
|
|
+ protobuf_c_boolean has_latency;
|
|
+ uint32_t latency;
|
|
+ protobuf_c_boolean has_jitter;
|
|
+ uint32_t jitter;
|
|
+ protobuf_c_boolean has_packet_loss_percent;
|
|
+ uint32_t packet_loss_percent;
|
|
+ protobuf_c_boolean has_packet_loss_consec;
|
|
+ uint32_t packet_loss_consec;
|
|
+ protobuf_c_boolean has_codec;
|
|
+ uint32_t codec;
|
|
+ protobuf_c_boolean has_mosx_100;
|
|
+ uint32_t mosx_100;
|
|
+ protobuf_c_boolean has_block_codecs;
|
|
+ ProtobufCBinaryData block_codecs;
|
|
+ protobuf_c_boolean has_total_packets_sent;
|
|
+ uint32_t total_packets_sent;
|
|
+ protobuf_c_boolean has_total_packets_lost;
|
|
+ uint32_t total_packets_lost;
|
|
+ protobuf_c_boolean has_rtp_seq_first;
|
|
+ uint32_t rtp_seq_first;
|
|
+ protobuf_c_boolean has_rtp_seq_last;
|
|
+ uint32_t rtp_seq_last;
|
|
+ protobuf_c_boolean has_stats_idx;
|
|
+ uint32_t stats_idx;
|
|
+};
|
|
+#define STS__RTP_FLOW_STATS__INIT \
|
|
+ { PROTOBUF_C_MESSAGE_INIT (&sts__rtp_flow_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 }
|
|
+
|
|
+
|
|
+struct _Sts__CallStart
|
|
+{
|
|
+ ProtobufCMessage base;
|
|
+ protobuf_c_boolean has_session_id;
|
|
+ uint64_t session_id;
|
|
+ protobuf_c_boolean has_wifi_session_id;
|
|
+ uint64_t wifi_session_id;
|
|
+ protobuf_c_boolean has_client_mac;
|
|
+ ProtobufCBinaryData client_mac;
|
|
+ size_t n_codecs;
|
|
+ char **codecs;
|
|
+ char *provider_domain;
|
|
+ char *device_info;
|
|
+};
|
|
+#define STS__CALL_START__INIT \
|
|
+ { PROTOBUF_C_MESSAGE_INIT (&sts__call_start__descriptor) \
|
|
+ , 0,0, 0,0, 0,{0,NULL}, 0,NULL, NULL, NULL }
|
|
+
|
|
+
|
|
+struct _Sts__CallStop
|
|
+{
|
|
+ ProtobufCMessage base;
|
|
+ protobuf_c_boolean has_session_id;
|
|
+ uint64_t session_id;
|
|
+ protobuf_c_boolean has_wifi_session_id;
|
|
+ uint64_t wifi_session_id;
|
|
+ protobuf_c_boolean has_client_mac;
|
|
+ ProtobufCBinaryData client_mac;
|
|
+ protobuf_c_boolean has_reason;
|
|
+ Sts__CallStop__CallStopReason reason;
|
|
+ protobuf_c_boolean has_call_duration;
|
|
+ uint32_t call_duration;
|
|
+ size_t n_stats;
|
|
+ Sts__RtpFlowStats **stats;
|
|
+};
|
|
+#define STS__CALL_STOP__INIT \
|
|
+ { PROTOBUF_C_MESSAGE_INIT (&sts__call_stop__descriptor) \
|
|
+ , 0,0, 0,0, 0,{0,NULL}, 0,0, 0,0, 0,NULL }
|
|
+
|
|
+
|
|
+struct _Sts__CallReport
|
|
+{
|
|
+ ProtobufCMessage base;
|
|
+ protobuf_c_boolean has_session_id;
|
|
+ uint64_t session_id;
|
|
+ protobuf_c_boolean has_wifi_session_id;
|
|
+ uint64_t wifi_session_id;
|
|
+ protobuf_c_boolean has_client_mac;
|
|
+ ProtobufCBinaryData client_mac;
|
|
+ size_t n_stats;
|
|
+ Sts__RtpFlowStats **stats;
|
|
+ protobuf_c_boolean has_reason;
|
|
+ Sts__CallReport__CallReportReason reason;
|
|
+};
|
|
+#define STS__CALL_REPORT__INIT \
|
|
+ { PROTOBUF_C_MESSAGE_INIT (&sts__call_report__descriptor) \
|
|
+ , 0,0, 0,0, 0,{0,NULL}, 0,NULL, 0,0 }
|
|
+
|
|
+
|
|
+struct _Sts__StreamingVideoDetectPattern
|
|
+{
|
|
+ ProtobufCMessage base;
|
|
+ /*
|
|
+ * DNS name pattern for detection (like *.nflxvideo.net)
|
|
+ */
|
|
+ char *dns_lookup_pattern;
|
|
+ protobuf_c_boolean has_video_type;
|
|
+ Sts__StreamingVideoType video_type;
|
|
+};
|
|
+#define STS__STREAMING_VIDEO_DETECT_PATTERN__INIT \
|
|
+ { PROTOBUF_C_MESSAGE_INIT (&sts__streaming_video_detect_pattern__descriptor) \
|
|
+ , NULL, 0,0 }
|
|
+
|
|
+
|
|
+struct _Sts__StreamingVideoSessionStart
|
|
+{
|
|
+ ProtobufCMessage base;
|
|
+ protobuf_c_boolean has_video_session_id;
|
|
+ uint64_t video_session_id;
|
|
+ protobuf_c_boolean has_session_id;
|
|
+ uint64_t session_id;
|
|
+ protobuf_c_boolean has_client_mac;
|
|
+ ProtobufCBinaryData client_mac;
|
|
+ protobuf_c_boolean has_server_ip;
|
|
+ ProtobufCBinaryData server_ip;
|
|
+ protobuf_c_boolean has_streaming_video_type;
|
|
+ Sts__StreamingVideoType streaming_video_type;
|
|
+};
|
|
+#define STS__STREAMING_VIDEO_SESSION_START__INIT \
|
|
+ { PROTOBUF_C_MESSAGE_INIT (&sts__streaming_video_session_start__descriptor) \
|
|
+ , 0,0, 0,0, 0,{0,NULL}, 0,{0,NULL}, 0,0 }
|
|
+
|
|
+
|
|
+struct _Sts__StreamingVideoServerDetected
|
|
+{
|
|
+ ProtobufCMessage base;
|
|
+ protobuf_c_boolean has_video_session_id;
|
|
+ uint64_t video_session_id;
|
|
+ protobuf_c_boolean has_session_id;
|
|
+ uint64_t session_id;
|
|
+ protobuf_c_boolean has_client_mac;
|
|
+ ProtobufCBinaryData client_mac;
|
|
+ protobuf_c_boolean has_server_ip;
|
|
+ ProtobufCBinaryData server_ip;
|
|
+ char *server_dns_name;
|
|
+ protobuf_c_boolean has_streaming_video_type;
|
|
+ Sts__StreamingVideoType streaming_video_type;
|
|
+};
|
|
+#define STS__STREAMING_VIDEO_SERVER_DETECTED__INIT \
|
|
+ { PROTOBUF_C_MESSAGE_INIT (&sts__streaming_video_server_detected__descriptor) \
|
|
+ , 0,0, 0,0, 0,{0,NULL}, 0,{0,NULL}, NULL, 0,0 }
|
|
+
|
|
+
|
|
+struct _Sts__StreamingVideoStop
|
|
+{
|
|
+ ProtobufCMessage base;
|
|
+ protobuf_c_boolean has_video_session_id;
|
|
+ uint64_t video_session_id;
|
|
+ protobuf_c_boolean has_session_id;
|
|
+ uint64_t session_id;
|
|
+ protobuf_c_boolean has_client_mac;
|
|
+ ProtobufCBinaryData client_mac;
|
|
+ protobuf_c_boolean has_server_ip;
|
|
+ ProtobufCBinaryData server_ip;
|
|
+ protobuf_c_boolean has_total_bytes;
|
|
+ uint64_t total_bytes;
|
|
+ protobuf_c_boolean has_streaming_video_type;
|
|
+ Sts__StreamingVideoType streaming_video_type;
|
|
+ protobuf_c_boolean has_duration_sec;
|
|
+ uint32_t duration_sec;
|
|
+};
|
|
+#define STS__STREAMING_VIDEO_STOP__INIT \
|
|
+ { PROTOBUF_C_MESSAGE_INIT (&sts__streaming_video_stop__descriptor) \
|
|
+ , 0,0, 0,0, 0,{0,NULL}, 0,{0,NULL}, 0,0, 0,0, 0,0 }
|
|
+
|
|
+
|
|
+struct _Sts__VideoVoiceReport
|
|
+{
|
|
+ ProtobufCMessage base;
|
|
+ Sts__CallStart *call_start;
|
|
+ Sts__CallStop *call_stop;
|
|
+ Sts__CallReport *call_report;
|
|
+ Sts__StreamingVideoStop *stream_video_stop;
|
|
+ Sts__StreamingVideoServerDetected *stream_video_server;
|
|
+ Sts__StreamingVideoSessionStart *stream_video_session_start;
|
|
+ protobuf_c_boolean has_timestamp_ms;
|
|
+ uint64_t timestamp_ms;
|
|
+};
|
|
+#define STS__VIDEO_VOICE_REPORT__INIT \
|
|
+ { PROTOBUF_C_MESSAGE_INIT (&sts__video_voice_report__descriptor) \
|
|
+ , NULL, NULL, NULL, NULL, NULL, NULL, 0,0 }
|
|
|
|
|
|
/*
|
|
@@ -1093,12 +1326,14 @@ struct _Sts__Report
|
|
Sts__BSReport **bs_report;
|
|
size_t n_rssi_report;
|
|
Sts__RssiReport **rssi_report;
|
|
+ size_t n_video_voice_report;
|
|
+ Sts__VideoVoiceReport **video_voice_report;
|
|
size_t n_network_probe;
|
|
Sts__NetworkProbe **network_probe;
|
|
};
|
|
#define STS__REPORT__INIT \
|
|
{ PROTOBUF_C_MESSAGE_INIT (&sts__report__descriptor) \
|
|
- , NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL }
|
|
+ , NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL }
|
|
|
|
|
|
/* Sts__AvgType methods */
|
|
@@ -1452,6 +1687,177 @@ Sts__NetworkProbe *
|
|
void sts__network_probe__free_unpacked
|
|
(Sts__NetworkProbe *message,
|
|
ProtobufCAllocator *allocator);
|
|
+/* Sts__RtpFlowStats methods */
|
|
+void sts__rtp_flow_stats__init
|
|
+ (Sts__RtpFlowStats *message);
|
|
+size_t sts__rtp_flow_stats__get_packed_size
|
|
+ (const Sts__RtpFlowStats *message);
|
|
+size_t sts__rtp_flow_stats__pack
|
|
+ (const Sts__RtpFlowStats *message,
|
|
+ uint8_t *out);
|
|
+size_t sts__rtp_flow_stats__pack_to_buffer
|
|
+ (const Sts__RtpFlowStats *message,
|
|
+ ProtobufCBuffer *buffer);
|
|
+Sts__RtpFlowStats *
|
|
+ sts__rtp_flow_stats__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data);
|
|
+void sts__rtp_flow_stats__free_unpacked
|
|
+ (Sts__RtpFlowStats *message,
|
|
+ ProtobufCAllocator *allocator);
|
|
+/* Sts__CallStart methods */
|
|
+void sts__call_start__init
|
|
+ (Sts__CallStart *message);
|
|
+size_t sts__call_start__get_packed_size
|
|
+ (const Sts__CallStart *message);
|
|
+size_t sts__call_start__pack
|
|
+ (const Sts__CallStart *message,
|
|
+ uint8_t *out);
|
|
+size_t sts__call_start__pack_to_buffer
|
|
+ (const Sts__CallStart *message,
|
|
+ ProtobufCBuffer *buffer);
|
|
+Sts__CallStart *
|
|
+ sts__call_start__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data);
|
|
+void sts__call_start__free_unpacked
|
|
+ (Sts__CallStart *message,
|
|
+ ProtobufCAllocator *allocator);
|
|
+/* Sts__CallStop methods */
|
|
+void sts__call_stop__init
|
|
+ (Sts__CallStop *message);
|
|
+size_t sts__call_stop__get_packed_size
|
|
+ (const Sts__CallStop *message);
|
|
+size_t sts__call_stop__pack
|
|
+ (const Sts__CallStop *message,
|
|
+ uint8_t *out);
|
|
+size_t sts__call_stop__pack_to_buffer
|
|
+ (const Sts__CallStop *message,
|
|
+ ProtobufCBuffer *buffer);
|
|
+Sts__CallStop *
|
|
+ sts__call_stop__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data);
|
|
+void sts__call_stop__free_unpacked
|
|
+ (Sts__CallStop *message,
|
|
+ ProtobufCAllocator *allocator);
|
|
+/* Sts__CallReport methods */
|
|
+void sts__call_report__init
|
|
+ (Sts__CallReport *message);
|
|
+size_t sts__call_report__get_packed_size
|
|
+ (const Sts__CallReport *message);
|
|
+size_t sts__call_report__pack
|
|
+ (const Sts__CallReport *message,
|
|
+ uint8_t *out);
|
|
+size_t sts__call_report__pack_to_buffer
|
|
+ (const Sts__CallReport *message,
|
|
+ ProtobufCBuffer *buffer);
|
|
+Sts__CallReport *
|
|
+ sts__call_report__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data);
|
|
+void sts__call_report__free_unpacked
|
|
+ (Sts__CallReport *message,
|
|
+ ProtobufCAllocator *allocator);
|
|
+/* Sts__StreamingVideoDetectPattern methods */
|
|
+void sts__streaming_video_detect_pattern__init
|
|
+ (Sts__StreamingVideoDetectPattern *message);
|
|
+size_t sts__streaming_video_detect_pattern__get_packed_size
|
|
+ (const Sts__StreamingVideoDetectPattern *message);
|
|
+size_t sts__streaming_video_detect_pattern__pack
|
|
+ (const Sts__StreamingVideoDetectPattern *message,
|
|
+ uint8_t *out);
|
|
+size_t sts__streaming_video_detect_pattern__pack_to_buffer
|
|
+ (const Sts__StreamingVideoDetectPattern *message,
|
|
+ ProtobufCBuffer *buffer);
|
|
+Sts__StreamingVideoDetectPattern *
|
|
+ sts__streaming_video_detect_pattern__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data);
|
|
+void sts__streaming_video_detect_pattern__free_unpacked
|
|
+ (Sts__StreamingVideoDetectPattern *message,
|
|
+ ProtobufCAllocator *allocator);
|
|
+/* Sts__StreamingVideoSessionStart methods */
|
|
+void sts__streaming_video_session_start__init
|
|
+ (Sts__StreamingVideoSessionStart *message);
|
|
+size_t sts__streaming_video_session_start__get_packed_size
|
|
+ (const Sts__StreamingVideoSessionStart *message);
|
|
+size_t sts__streaming_video_session_start__pack
|
|
+ (const Sts__StreamingVideoSessionStart *message,
|
|
+ uint8_t *out);
|
|
+size_t sts__streaming_video_session_start__pack_to_buffer
|
|
+ (const Sts__StreamingVideoSessionStart *message,
|
|
+ ProtobufCBuffer *buffer);
|
|
+Sts__StreamingVideoSessionStart *
|
|
+ sts__streaming_video_session_start__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data);
|
|
+void sts__streaming_video_session_start__free_unpacked
|
|
+ (Sts__StreamingVideoSessionStart *message,
|
|
+ ProtobufCAllocator *allocator);
|
|
+/* Sts__StreamingVideoServerDetected methods */
|
|
+void sts__streaming_video_server_detected__init
|
|
+ (Sts__StreamingVideoServerDetected *message);
|
|
+size_t sts__streaming_video_server_detected__get_packed_size
|
|
+ (const Sts__StreamingVideoServerDetected *message);
|
|
+size_t sts__streaming_video_server_detected__pack
|
|
+ (const Sts__StreamingVideoServerDetected *message,
|
|
+ uint8_t *out);
|
|
+size_t sts__streaming_video_server_detected__pack_to_buffer
|
|
+ (const Sts__StreamingVideoServerDetected *message,
|
|
+ ProtobufCBuffer *buffer);
|
|
+Sts__StreamingVideoServerDetected *
|
|
+ sts__streaming_video_server_detected__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data);
|
|
+void sts__streaming_video_server_detected__free_unpacked
|
|
+ (Sts__StreamingVideoServerDetected *message,
|
|
+ ProtobufCAllocator *allocator);
|
|
+/* Sts__StreamingVideoStop methods */
|
|
+void sts__streaming_video_stop__init
|
|
+ (Sts__StreamingVideoStop *message);
|
|
+size_t sts__streaming_video_stop__get_packed_size
|
|
+ (const Sts__StreamingVideoStop *message);
|
|
+size_t sts__streaming_video_stop__pack
|
|
+ (const Sts__StreamingVideoStop *message,
|
|
+ uint8_t *out);
|
|
+size_t sts__streaming_video_stop__pack_to_buffer
|
|
+ (const Sts__StreamingVideoStop *message,
|
|
+ ProtobufCBuffer *buffer);
|
|
+Sts__StreamingVideoStop *
|
|
+ sts__streaming_video_stop__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data);
|
|
+void sts__streaming_video_stop__free_unpacked
|
|
+ (Sts__StreamingVideoStop *message,
|
|
+ ProtobufCAllocator *allocator);
|
|
+/* Sts__VideoVoiceReport methods */
|
|
+void sts__video_voice_report__init
|
|
+ (Sts__VideoVoiceReport *message);
|
|
+size_t sts__video_voice_report__get_packed_size
|
|
+ (const Sts__VideoVoiceReport *message);
|
|
+size_t sts__video_voice_report__pack
|
|
+ (const Sts__VideoVoiceReport *message,
|
|
+ uint8_t *out);
|
|
+size_t sts__video_voice_report__pack_to_buffer
|
|
+ (const Sts__VideoVoiceReport *message,
|
|
+ ProtobufCBuffer *buffer);
|
|
+Sts__VideoVoiceReport *
|
|
+ sts__video_voice_report__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data);
|
|
+void sts__video_voice_report__free_unpacked
|
|
+ (Sts__VideoVoiceReport *message,
|
|
+ ProtobufCAllocator *allocator);
|
|
/* Sts__Report methods */
|
|
void sts__report__init
|
|
(Sts__Report *message);
|
|
@@ -1584,6 +1990,33 @@ typedef void (*Sts__RADIUSMetrics_Closur
|
|
typedef void (*Sts__NetworkProbe_Closure)
|
|
(const Sts__NetworkProbe *message,
|
|
void *closure_data);
|
|
+typedef void (*Sts__RtpFlowStats_Closure)
|
|
+ (const Sts__RtpFlowStats *message,
|
|
+ void *closure_data);
|
|
+typedef void (*Sts__CallStart_Closure)
|
|
+ (const Sts__CallStart *message,
|
|
+ void *closure_data);
|
|
+typedef void (*Sts__CallStop_Closure)
|
|
+ (const Sts__CallStop *message,
|
|
+ void *closure_data);
|
|
+typedef void (*Sts__CallReport_Closure)
|
|
+ (const Sts__CallReport *message,
|
|
+ void *closure_data);
|
|
+typedef void (*Sts__StreamingVideoDetectPattern_Closure)
|
|
+ (const Sts__StreamingVideoDetectPattern *message,
|
|
+ void *closure_data);
|
|
+typedef void (*Sts__StreamingVideoSessionStart_Closure)
|
|
+ (const Sts__StreamingVideoSessionStart *message,
|
|
+ void *closure_data);
|
|
+typedef void (*Sts__StreamingVideoServerDetected_Closure)
|
|
+ (const Sts__StreamingVideoServerDetected *message,
|
|
+ void *closure_data);
|
|
+typedef void (*Sts__StreamingVideoStop_Closure)
|
|
+ (const Sts__StreamingVideoStop *message,
|
|
+ void *closure_data);
|
|
+typedef void (*Sts__VideoVoiceReport_Closure)
|
|
+ (const Sts__VideoVoiceReport *message,
|
|
+ void *closure_data);
|
|
typedef void (*Sts__Report_Closure)
|
|
(const Sts__Report *message,
|
|
void *closure_data);
|
|
@@ -1606,6 +2039,7 @@ extern const ProtobufCEnumDescriptor
|
|
extern const ProtobufCEnumDescriptor sts__report_type__descriptor;
|
|
extern const ProtobufCEnumDescriptor sts__fs_type__descriptor;
|
|
extern const ProtobufCEnumDescriptor sts__diff_type__descriptor;
|
|
+extern const ProtobufCEnumDescriptor sts__streaming_video_type__descriptor;
|
|
extern const ProtobufCEnumDescriptor sts__state_up_down__descriptor;
|
|
extern const ProtobufCMessageDescriptor sts__avg_type__descriptor;
|
|
extern const ProtobufCMessageDescriptor sts__neighbor__descriptor;
|
|
@@ -1645,6 +2079,19 @@ extern const ProtobufCMessageDescriptor
|
|
extern const ProtobufCMessageDescriptor sts__vlanmetrics__descriptor;
|
|
extern const ProtobufCMessageDescriptor sts__radiusmetrics__descriptor;
|
|
extern const ProtobufCMessageDescriptor sts__network_probe__descriptor;
|
|
+extern const ProtobufCMessageDescriptor sts__rtp_flow_stats__descriptor;
|
|
+extern const ProtobufCEnumDescriptor sts__rtp_flow_stats__rtp_flow_direction__descriptor;
|
|
+extern const ProtobufCEnumDescriptor sts__rtp_flow_stats__rtp_flow_type__descriptor;
|
|
+extern const ProtobufCMessageDescriptor sts__call_start__descriptor;
|
|
+extern const ProtobufCMessageDescriptor sts__call_stop__descriptor;
|
|
+extern const ProtobufCEnumDescriptor sts__call_stop__call_stop_reason__descriptor;
|
|
+extern const ProtobufCMessageDescriptor sts__call_report__descriptor;
|
|
+extern const ProtobufCEnumDescriptor sts__call_report__call_report_reason__descriptor;
|
|
+extern const ProtobufCMessageDescriptor sts__streaming_video_detect_pattern__descriptor;
|
|
+extern const ProtobufCMessageDescriptor sts__streaming_video_session_start__descriptor;
|
|
+extern const ProtobufCMessageDescriptor sts__streaming_video_server_detected__descriptor;
|
|
+extern const ProtobufCMessageDescriptor sts__streaming_video_stop__descriptor;
|
|
+extern const ProtobufCMessageDescriptor sts__video_voice_report__descriptor;
|
|
extern const ProtobufCMessageDescriptor sts__report__descriptor;
|
|
|
|
PROTOBUF_C__END_DECLS
|
|
--- a/src/lib/datapipeline/src/opensync_stats.pb-c.c
|
|
+++ b/src/lib/datapipeline/src/opensync_stats.pb-c.c
|
|
@@ -10,7 +10,7 @@
|
|
void sts__avg_type__init
|
|
(Sts__AvgType *message)
|
|
{
|
|
- static const Sts__AvgType init_value = STS__AVG_TYPE__INIT;
|
|
+ static Sts__AvgType init_value = STS__AVG_TYPE__INIT;
|
|
*message = init_value;
|
|
}
|
|
size_t sts__avg_type__get_packed_size
|
|
@@ -47,21 +47,19 @@ 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 const Sts__Neighbor__NeighborBss init_value = STS__NEIGHBOR__NEIGHBOR_BSS__INIT;
|
|
+ static Sts__Neighbor__NeighborBss init_value = STS__NEIGHBOR__NEIGHBOR_BSS__INIT;
|
|
*message = init_value;
|
|
}
|
|
void sts__neighbor__init
|
|
(Sts__Neighbor *message)
|
|
{
|
|
- static const Sts__Neighbor init_value = STS__NEIGHBOR__INIT;
|
|
+ static Sts__Neighbor init_value = STS__NEIGHBOR__INIT;
|
|
*message = init_value;
|
|
}
|
|
size_t sts__neighbor__get_packed_size
|
|
@@ -98,57 +96,55 @@ 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 const Sts__Client__Stats init_value = STS__CLIENT__STATS__INIT;
|
|
+ static 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 const Sts__Client__RxStats__ChainRSSI init_value = STS__CLIENT__RX_STATS__CHAIN_RSSI__INIT;
|
|
+ static 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 const Sts__Client__RxStats init_value = STS__CLIENT__RX_STATS__INIT;
|
|
+ static Sts__Client__RxStats init_value = STS__CLIENT__RX_STATS__INIT;
|
|
*message = init_value;
|
|
}
|
|
void sts__client__tx_stats__init
|
|
(Sts__Client__TxStats *message)
|
|
{
|
|
- static const Sts__Client__TxStats init_value = STS__CLIENT__TX_STATS__INIT;
|
|
+ static 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 const Sts__Client__TidStats__Sojourn init_value = STS__CLIENT__TID_STATS__SOJOURN__INIT;
|
|
+ static 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 const Sts__Client__TidStats init_value = STS__CLIENT__TID_STATS__INIT;
|
|
+ static Sts__Client__TidStats init_value = STS__CLIENT__TID_STATS__INIT;
|
|
*message = init_value;
|
|
}
|
|
void sts__client__connection_event__init
|
|
(Sts__Client__ConnectionEvent *message)
|
|
{
|
|
- static const Sts__Client__ConnectionEvent init_value = STS__CLIENT__CONNECTION_EVENT__INIT;
|
|
+ static Sts__Client__ConnectionEvent init_value = STS__CLIENT__CONNECTION_EVENT__INIT;
|
|
*message = init_value;
|
|
}
|
|
void sts__client__init
|
|
(Sts__Client *message)
|
|
{
|
|
- static const Sts__Client init_value = STS__CLIENT__INIT;
|
|
+ static Sts__Client init_value = STS__CLIENT__INIT;
|
|
*message = init_value;
|
|
}
|
|
size_t sts__client__get_packed_size
|
|
@@ -185,15 +181,13 @@ 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 const Sts__ClientReport init_value = STS__CLIENT_REPORT__INIT;
|
|
+ static Sts__ClientReport init_value = STS__CLIENT_REPORT__INIT;
|
|
*message = init_value;
|
|
}
|
|
size_t sts__client_report__get_packed_size
|
|
@@ -230,27 +224,25 @@ 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 const Sts__Survey__SurveySample init_value = STS__SURVEY__SURVEY_SAMPLE__INIT;
|
|
+ static Sts__Survey__SurveySample init_value = STS__SURVEY__SURVEY_SAMPLE__INIT;
|
|
*message = init_value;
|
|
}
|
|
void sts__survey__survey_avg__init
|
|
(Sts__Survey__SurveyAvg *message)
|
|
{
|
|
- static const Sts__Survey__SurveyAvg init_value = STS__SURVEY__SURVEY_AVG__INIT;
|
|
+ static Sts__Survey__SurveyAvg init_value = STS__SURVEY__SURVEY_AVG__INIT;
|
|
*message = init_value;
|
|
}
|
|
void sts__survey__init
|
|
(Sts__Survey *message)
|
|
{
|
|
- static const Sts__Survey init_value = STS__SURVEY__INIT;
|
|
+ static Sts__Survey init_value = STS__SURVEY__INIT;
|
|
*message = init_value;
|
|
}
|
|
size_t sts__survey__get_packed_size
|
|
@@ -287,21 +279,19 @@ 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 const Sts__Capacity__QueueSample init_value = STS__CAPACITY__QUEUE_SAMPLE__INIT;
|
|
+ static Sts__Capacity__QueueSample init_value = STS__CAPACITY__QUEUE_SAMPLE__INIT;
|
|
*message = init_value;
|
|
}
|
|
void sts__capacity__init
|
|
(Sts__Capacity *message)
|
|
{
|
|
- static const Sts__Capacity init_value = STS__CAPACITY__INIT;
|
|
+ static Sts__Capacity init_value = STS__CAPACITY__INIT;
|
|
*message = init_value;
|
|
}
|
|
size_t sts__capacity__get_packed_size
|
|
@@ -338,63 +328,61 @@ 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 const Sts__Device__LoadAvg init_value = STS__DEVICE__LOAD_AVG__INIT;
|
|
+ static Sts__Device__LoadAvg init_value = STS__DEVICE__LOAD_AVG__INIT;
|
|
*message = init_value;
|
|
}
|
|
void sts__device__radio_temp__init
|
|
(Sts__Device__RadioTemp *message)
|
|
{
|
|
- static const Sts__Device__RadioTemp init_value = STS__DEVICE__RADIO_TEMP__INIT;
|
|
+ static 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 const Sts__Device__Thermal__RadioTxChainMask init_value = STS__DEVICE__THERMAL__RADIO_TX_CHAIN_MASK__INIT;
|
|
+ static 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 const Sts__Device__Thermal init_value = STS__DEVICE__THERMAL__INIT;
|
|
+ static Sts__Device__Thermal init_value = STS__DEVICE__THERMAL__INIT;
|
|
*message = init_value;
|
|
}
|
|
void sts__device__mem_util__init
|
|
(Sts__Device__MemUtil *message)
|
|
{
|
|
- static const Sts__Device__MemUtil init_value = STS__DEVICE__MEM_UTIL__INIT;
|
|
+ static Sts__Device__MemUtil init_value = STS__DEVICE__MEM_UTIL__INIT;
|
|
*message = init_value;
|
|
}
|
|
void sts__device__fs_util__init
|
|
(Sts__Device__FsUtil *message)
|
|
{
|
|
- static const Sts__Device__FsUtil init_value = STS__DEVICE__FS_UTIL__INIT;
|
|
+ static Sts__Device__FsUtil init_value = STS__DEVICE__FS_UTIL__INIT;
|
|
*message = init_value;
|
|
}
|
|
void sts__device__cpu_util__init
|
|
(Sts__Device__CpuUtil *message)
|
|
{
|
|
- static const Sts__Device__CpuUtil init_value = STS__DEVICE__CPU_UTIL__INIT;
|
|
+ static 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 const Sts__Device__PerProcessUtil init_value = STS__DEVICE__PER_PROCESS_UTIL__INIT;
|
|
+ static Sts__Device__PerProcessUtil init_value = STS__DEVICE__PER_PROCESS_UTIL__INIT;
|
|
*message = init_value;
|
|
}
|
|
void sts__device__init
|
|
(Sts__Device *message)
|
|
{
|
|
- static const Sts__Device init_value = STS__DEVICE__INIT;
|
|
+ static Sts__Device init_value = STS__DEVICE__INIT;
|
|
*message = init_value;
|
|
}
|
|
size_t sts__device__get_packed_size
|
|
@@ -431,27 +419,25 @@ 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 const Sts__BSClient__BSEvent init_value = STS__BSCLIENT__BSEVENT__INIT;
|
|
+ static Sts__BSClient__BSEvent init_value = STS__BSCLIENT__BSEVENT__INIT;
|
|
*message = init_value;
|
|
}
|
|
void sts__bsclient__bsband_report__init
|
|
(Sts__BSClient__BSBandReport *message)
|
|
{
|
|
- static const Sts__BSClient__BSBandReport init_value = STS__BSCLIENT__BSBAND_REPORT__INIT;
|
|
+ static Sts__BSClient__BSBandReport init_value = STS__BSCLIENT__BSBAND_REPORT__INIT;
|
|
*message = init_value;
|
|
}
|
|
void sts__bsclient__init
|
|
(Sts__BSClient *message)
|
|
{
|
|
- static const Sts__BSClient init_value = STS__BSCLIENT__INIT;
|
|
+ static Sts__BSClient init_value = STS__BSCLIENT__INIT;
|
|
*message = init_value;
|
|
}
|
|
size_t sts__bsclient__get_packed_size
|
|
@@ -488,15 +474,13 @@ 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 const Sts__BSReport init_value = STS__BSREPORT__INIT;
|
|
+ static Sts__BSReport init_value = STS__BSREPORT__INIT;
|
|
*message = init_value;
|
|
}
|
|
size_t sts__bsreport__get_packed_size
|
|
@@ -533,21 +517,19 @@ 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 const Sts__RssiPeer__RssiSample init_value = STS__RSSI_PEER__RSSI_SAMPLE__INIT;
|
|
+ static Sts__RssiPeer__RssiSample init_value = STS__RSSI_PEER__RSSI_SAMPLE__INIT;
|
|
*message = init_value;
|
|
}
|
|
void sts__rssi_peer__init
|
|
(Sts__RssiPeer *message)
|
|
{
|
|
- static const Sts__RssiPeer init_value = STS__RSSI_PEER__INIT;
|
|
+ static Sts__RssiPeer init_value = STS__RSSI_PEER__INIT;
|
|
*message = init_value;
|
|
}
|
|
size_t sts__rssi_peer__get_packed_size
|
|
@@ -584,15 +566,13 @@ 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 const Sts__RssiReport init_value = STS__RSSI_REPORT__INIT;
|
|
+ static Sts__RssiReport init_value = STS__RSSI_REPORT__INIT;
|
|
*message = init_value;
|
|
}
|
|
size_t sts__rssi_report__get_packed_size
|
|
@@ -629,15 +609,13 @@ 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__dnsprobe_metric__init
|
|
(Sts__DNSProbeMetric *message)
|
|
{
|
|
- static const Sts__DNSProbeMetric init_value = STS__DNSPROBE_METRIC__INIT;
|
|
+ static Sts__DNSProbeMetric init_value = STS__DNSPROBE_METRIC__INIT;
|
|
*message = init_value;
|
|
}
|
|
size_t sts__dnsprobe_metric__get_packed_size
|
|
@@ -674,15 +652,13 @@ void sts__dnsprobe_metric__free_unpack
|
|
(Sts__DNSProbeMetric *message,
|
|
ProtobufCAllocator *allocator)
|
|
{
|
|
- if(!message)
|
|
- return;
|
|
assert(message->base.descriptor == &sts__dnsprobe_metric__descriptor);
|
|
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
|
|
}
|
|
void sts__vlanmetrics__init
|
|
(Sts__VLANMetrics *message)
|
|
{
|
|
- static const Sts__VLANMetrics init_value = STS__VLANMETRICS__INIT;
|
|
+ static Sts__VLANMetrics init_value = STS__VLANMETRICS__INIT;
|
|
*message = init_value;
|
|
}
|
|
size_t sts__vlanmetrics__get_packed_size
|
|
@@ -719,15 +695,13 @@ void sts__vlanmetrics__free_unpacked
|
|
(Sts__VLANMetrics *message,
|
|
ProtobufCAllocator *allocator)
|
|
{
|
|
- if(!message)
|
|
- return;
|
|
assert(message->base.descriptor == &sts__vlanmetrics__descriptor);
|
|
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
|
|
}
|
|
void sts__radiusmetrics__init
|
|
(Sts__RADIUSMetrics *message)
|
|
{
|
|
- static const Sts__RADIUSMetrics init_value = STS__RADIUSMETRICS__INIT;
|
|
+ static Sts__RADIUSMetrics init_value = STS__RADIUSMETRICS__INIT;
|
|
*message = init_value;
|
|
}
|
|
size_t sts__radiusmetrics__get_packed_size
|
|
@@ -764,15 +738,13 @@ void sts__radiusmetrics__free_unpacked
|
|
(Sts__RADIUSMetrics *message,
|
|
ProtobufCAllocator *allocator)
|
|
{
|
|
- if(!message)
|
|
- return;
|
|
assert(message->base.descriptor == &sts__radiusmetrics__descriptor);
|
|
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
|
|
}
|
|
void sts__network_probe__init
|
|
(Sts__NetworkProbe *message)
|
|
{
|
|
- static const Sts__NetworkProbe init_value = STS__NETWORK_PROBE__INIT;
|
|
+ static Sts__NetworkProbe init_value = STS__NETWORK_PROBE__INIT;
|
|
*message = init_value;
|
|
}
|
|
size_t sts__network_probe__get_packed_size
|
|
@@ -809,15 +781,400 @@ void sts__network_probe__free_unpacked
|
|
(Sts__NetworkProbe *message,
|
|
ProtobufCAllocator *allocator)
|
|
{
|
|
- if(!message)
|
|
- return;
|
|
assert(message->base.descriptor == &sts__network_probe__descriptor);
|
|
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
|
|
}
|
|
+void sts__rtp_flow_stats__init
|
|
+ (Sts__RtpFlowStats *message)
|
|
+{
|
|
+ static Sts__RtpFlowStats init_value = STS__RTP_FLOW_STATS__INIT;
|
|
+ *message = init_value;
|
|
+}
|
|
+size_t sts__rtp_flow_stats__get_packed_size
|
|
+ (const Sts__RtpFlowStats *message)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__rtp_flow_stats__descriptor);
|
|
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
|
|
+}
|
|
+size_t sts__rtp_flow_stats__pack
|
|
+ (const Sts__RtpFlowStats *message,
|
|
+ uint8_t *out)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__rtp_flow_stats__descriptor);
|
|
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
|
|
+}
|
|
+size_t sts__rtp_flow_stats__pack_to_buffer
|
|
+ (const Sts__RtpFlowStats *message,
|
|
+ ProtobufCBuffer *buffer)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__rtp_flow_stats__descriptor);
|
|
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
|
|
+}
|
|
+Sts__RtpFlowStats *
|
|
+ sts__rtp_flow_stats__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data)
|
|
+{
|
|
+ return (Sts__RtpFlowStats *)
|
|
+ protobuf_c_message_unpack (&sts__rtp_flow_stats__descriptor,
|
|
+ allocator, len, data);
|
|
+}
|
|
+void sts__rtp_flow_stats__free_unpacked
|
|
+ (Sts__RtpFlowStats *message,
|
|
+ ProtobufCAllocator *allocator)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__rtp_flow_stats__descriptor);
|
|
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
|
|
+}
|
|
+void sts__call_start__init
|
|
+ (Sts__CallStart *message)
|
|
+{
|
|
+ static Sts__CallStart init_value = STS__CALL_START__INIT;
|
|
+ *message = init_value;
|
|
+}
|
|
+size_t sts__call_start__get_packed_size
|
|
+ (const Sts__CallStart *message)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__call_start__descriptor);
|
|
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
|
|
+}
|
|
+size_t sts__call_start__pack
|
|
+ (const Sts__CallStart *message,
|
|
+ uint8_t *out)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__call_start__descriptor);
|
|
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
|
|
+}
|
|
+size_t sts__call_start__pack_to_buffer
|
|
+ (const Sts__CallStart *message,
|
|
+ ProtobufCBuffer *buffer)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__call_start__descriptor);
|
|
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
|
|
+}
|
|
+Sts__CallStart *
|
|
+ sts__call_start__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data)
|
|
+{
|
|
+ return (Sts__CallStart *)
|
|
+ protobuf_c_message_unpack (&sts__call_start__descriptor,
|
|
+ allocator, len, data);
|
|
+}
|
|
+void sts__call_start__free_unpacked
|
|
+ (Sts__CallStart *message,
|
|
+ ProtobufCAllocator *allocator)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__call_start__descriptor);
|
|
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
|
|
+}
|
|
+void sts__call_stop__init
|
|
+ (Sts__CallStop *message)
|
|
+{
|
|
+ static Sts__CallStop init_value = STS__CALL_STOP__INIT;
|
|
+ *message = init_value;
|
|
+}
|
|
+size_t sts__call_stop__get_packed_size
|
|
+ (const Sts__CallStop *message)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__call_stop__descriptor);
|
|
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
|
|
+}
|
|
+size_t sts__call_stop__pack
|
|
+ (const Sts__CallStop *message,
|
|
+ uint8_t *out)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__call_stop__descriptor);
|
|
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
|
|
+}
|
|
+size_t sts__call_stop__pack_to_buffer
|
|
+ (const Sts__CallStop *message,
|
|
+ ProtobufCBuffer *buffer)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__call_stop__descriptor);
|
|
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
|
|
+}
|
|
+Sts__CallStop *
|
|
+ sts__call_stop__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data)
|
|
+{
|
|
+ return (Sts__CallStop *)
|
|
+ protobuf_c_message_unpack (&sts__call_stop__descriptor,
|
|
+ allocator, len, data);
|
|
+}
|
|
+void sts__call_stop__free_unpacked
|
|
+ (Sts__CallStop *message,
|
|
+ ProtobufCAllocator *allocator)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__call_stop__descriptor);
|
|
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
|
|
+}
|
|
+void sts__call_report__init
|
|
+ (Sts__CallReport *message)
|
|
+{
|
|
+ static Sts__CallReport init_value = STS__CALL_REPORT__INIT;
|
|
+ *message = init_value;
|
|
+}
|
|
+size_t sts__call_report__get_packed_size
|
|
+ (const Sts__CallReport *message)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__call_report__descriptor);
|
|
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
|
|
+}
|
|
+size_t sts__call_report__pack
|
|
+ (const Sts__CallReport *message,
|
|
+ uint8_t *out)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__call_report__descriptor);
|
|
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
|
|
+}
|
|
+size_t sts__call_report__pack_to_buffer
|
|
+ (const Sts__CallReport *message,
|
|
+ ProtobufCBuffer *buffer)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__call_report__descriptor);
|
|
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
|
|
+}
|
|
+Sts__CallReport *
|
|
+ sts__call_report__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data)
|
|
+{
|
|
+ return (Sts__CallReport *)
|
|
+ protobuf_c_message_unpack (&sts__call_report__descriptor,
|
|
+ allocator, len, data);
|
|
+}
|
|
+void sts__call_report__free_unpacked
|
|
+ (Sts__CallReport *message,
|
|
+ ProtobufCAllocator *allocator)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__call_report__descriptor);
|
|
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
|
|
+}
|
|
+void sts__streaming_video_detect_pattern__init
|
|
+ (Sts__StreamingVideoDetectPattern *message)
|
|
+{
|
|
+ static Sts__StreamingVideoDetectPattern init_value = STS__STREAMING_VIDEO_DETECT_PATTERN__INIT;
|
|
+ *message = init_value;
|
|
+}
|
|
+size_t sts__streaming_video_detect_pattern__get_packed_size
|
|
+ (const Sts__StreamingVideoDetectPattern *message)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__streaming_video_detect_pattern__descriptor);
|
|
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
|
|
+}
|
|
+size_t sts__streaming_video_detect_pattern__pack
|
|
+ (const Sts__StreamingVideoDetectPattern *message,
|
|
+ uint8_t *out)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__streaming_video_detect_pattern__descriptor);
|
|
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
|
|
+}
|
|
+size_t sts__streaming_video_detect_pattern__pack_to_buffer
|
|
+ (const Sts__StreamingVideoDetectPattern *message,
|
|
+ ProtobufCBuffer *buffer)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__streaming_video_detect_pattern__descriptor);
|
|
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
|
|
+}
|
|
+Sts__StreamingVideoDetectPattern *
|
|
+ sts__streaming_video_detect_pattern__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data)
|
|
+{
|
|
+ return (Sts__StreamingVideoDetectPattern *)
|
|
+ protobuf_c_message_unpack (&sts__streaming_video_detect_pattern__descriptor,
|
|
+ allocator, len, data);
|
|
+}
|
|
+void sts__streaming_video_detect_pattern__free_unpacked
|
|
+ (Sts__StreamingVideoDetectPattern *message,
|
|
+ ProtobufCAllocator *allocator)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__streaming_video_detect_pattern__descriptor);
|
|
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
|
|
+}
|
|
+void sts__streaming_video_session_start__init
|
|
+ (Sts__StreamingVideoSessionStart *message)
|
|
+{
|
|
+ static Sts__StreamingVideoSessionStart init_value = STS__STREAMING_VIDEO_SESSION_START__INIT;
|
|
+ *message = init_value;
|
|
+}
|
|
+size_t sts__streaming_video_session_start__get_packed_size
|
|
+ (const Sts__StreamingVideoSessionStart *message)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__streaming_video_session_start__descriptor);
|
|
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
|
|
+}
|
|
+size_t sts__streaming_video_session_start__pack
|
|
+ (const Sts__StreamingVideoSessionStart *message,
|
|
+ uint8_t *out)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__streaming_video_session_start__descriptor);
|
|
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
|
|
+}
|
|
+size_t sts__streaming_video_session_start__pack_to_buffer
|
|
+ (const Sts__StreamingVideoSessionStart *message,
|
|
+ ProtobufCBuffer *buffer)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__streaming_video_session_start__descriptor);
|
|
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
|
|
+}
|
|
+Sts__StreamingVideoSessionStart *
|
|
+ sts__streaming_video_session_start__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data)
|
|
+{
|
|
+ return (Sts__StreamingVideoSessionStart *)
|
|
+ protobuf_c_message_unpack (&sts__streaming_video_session_start__descriptor,
|
|
+ allocator, len, data);
|
|
+}
|
|
+void sts__streaming_video_session_start__free_unpacked
|
|
+ (Sts__StreamingVideoSessionStart *message,
|
|
+ ProtobufCAllocator *allocator)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__streaming_video_session_start__descriptor);
|
|
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
|
|
+}
|
|
+void sts__streaming_video_server_detected__init
|
|
+ (Sts__StreamingVideoServerDetected *message)
|
|
+{
|
|
+ static Sts__StreamingVideoServerDetected init_value = STS__STREAMING_VIDEO_SERVER_DETECTED__INIT;
|
|
+ *message = init_value;
|
|
+}
|
|
+size_t sts__streaming_video_server_detected__get_packed_size
|
|
+ (const Sts__StreamingVideoServerDetected *message)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__streaming_video_server_detected__descriptor);
|
|
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
|
|
+}
|
|
+size_t sts__streaming_video_server_detected__pack
|
|
+ (const Sts__StreamingVideoServerDetected *message,
|
|
+ uint8_t *out)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__streaming_video_server_detected__descriptor);
|
|
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
|
|
+}
|
|
+size_t sts__streaming_video_server_detected__pack_to_buffer
|
|
+ (const Sts__StreamingVideoServerDetected *message,
|
|
+ ProtobufCBuffer *buffer)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__streaming_video_server_detected__descriptor);
|
|
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
|
|
+}
|
|
+Sts__StreamingVideoServerDetected *
|
|
+ sts__streaming_video_server_detected__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data)
|
|
+{
|
|
+ return (Sts__StreamingVideoServerDetected *)
|
|
+ protobuf_c_message_unpack (&sts__streaming_video_server_detected__descriptor,
|
|
+ allocator, len, data);
|
|
+}
|
|
+void sts__streaming_video_server_detected__free_unpacked
|
|
+ (Sts__StreamingVideoServerDetected *message,
|
|
+ ProtobufCAllocator *allocator)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__streaming_video_server_detected__descriptor);
|
|
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
|
|
+}
|
|
+void sts__streaming_video_stop__init
|
|
+ (Sts__StreamingVideoStop *message)
|
|
+{
|
|
+ static Sts__StreamingVideoStop init_value = STS__STREAMING_VIDEO_STOP__INIT;
|
|
+ *message = init_value;
|
|
+}
|
|
+size_t sts__streaming_video_stop__get_packed_size
|
|
+ (const Sts__StreamingVideoStop *message)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__streaming_video_stop__descriptor);
|
|
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
|
|
+}
|
|
+size_t sts__streaming_video_stop__pack
|
|
+ (const Sts__StreamingVideoStop *message,
|
|
+ uint8_t *out)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__streaming_video_stop__descriptor);
|
|
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
|
|
+}
|
|
+size_t sts__streaming_video_stop__pack_to_buffer
|
|
+ (const Sts__StreamingVideoStop *message,
|
|
+ ProtobufCBuffer *buffer)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__streaming_video_stop__descriptor);
|
|
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
|
|
+}
|
|
+Sts__StreamingVideoStop *
|
|
+ sts__streaming_video_stop__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data)
|
|
+{
|
|
+ return (Sts__StreamingVideoStop *)
|
|
+ protobuf_c_message_unpack (&sts__streaming_video_stop__descriptor,
|
|
+ allocator, len, data);
|
|
+}
|
|
+void sts__streaming_video_stop__free_unpacked
|
|
+ (Sts__StreamingVideoStop *message,
|
|
+ ProtobufCAllocator *allocator)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__streaming_video_stop__descriptor);
|
|
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
|
|
+}
|
|
+void sts__video_voice_report__init
|
|
+ (Sts__VideoVoiceReport *message)
|
|
+{
|
|
+ static Sts__VideoVoiceReport init_value = STS__VIDEO_VOICE_REPORT__INIT;
|
|
+ *message = init_value;
|
|
+}
|
|
+size_t sts__video_voice_report__get_packed_size
|
|
+ (const Sts__VideoVoiceReport *message)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__video_voice_report__descriptor);
|
|
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
|
|
+}
|
|
+size_t sts__video_voice_report__pack
|
|
+ (const Sts__VideoVoiceReport *message,
|
|
+ uint8_t *out)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__video_voice_report__descriptor);
|
|
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
|
|
+}
|
|
+size_t sts__video_voice_report__pack_to_buffer
|
|
+ (const Sts__VideoVoiceReport *message,
|
|
+ ProtobufCBuffer *buffer)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__video_voice_report__descriptor);
|
|
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
|
|
+}
|
|
+Sts__VideoVoiceReport *
|
|
+ sts__video_voice_report__unpack
|
|
+ (ProtobufCAllocator *allocator,
|
|
+ size_t len,
|
|
+ const uint8_t *data)
|
|
+{
|
|
+ return (Sts__VideoVoiceReport *)
|
|
+ protobuf_c_message_unpack (&sts__video_voice_report__descriptor,
|
|
+ allocator, len, data);
|
|
+}
|
|
+void sts__video_voice_report__free_unpacked
|
|
+ (Sts__VideoVoiceReport *message,
|
|
+ ProtobufCAllocator *allocator)
|
|
+{
|
|
+ assert(message->base.descriptor == &sts__video_voice_report__descriptor);
|
|
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
|
|
+}
|
|
void sts__report__init
|
|
(Sts__Report *message)
|
|
{
|
|
- static const Sts__Report init_value = STS__REPORT__INIT;
|
|
+ static Sts__Report init_value = STS__REPORT__INIT;
|
|
*message = init_value;
|
|
}
|
|
size_t sts__report__get_packed_size
|
|
@@ -854,8 +1211,6 @@ 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);
|
|
}
|
|
@@ -4817,26 +5172,1119 @@ const ProtobufCMessageDescriptor sts__ne
|
|
(ProtobufCMessageInit) sts__network_probe__init,
|
|
NULL,NULL,NULL /* reserved[123] */
|
|
};
|
|
-static const ProtobufCFieldDescriptor sts__report__field_descriptors[9] =
|
|
+static const ProtobufCEnumValue sts__rtp_flow_stats__rtp_flow_direction__enum_values_by_number[2] =
|
|
+{
|
|
+ { "RTP_UPSTREAM", "STS__RTP_FLOW_STATS__RTP_FLOW_DIRECTION__RTP_UPSTREAM", 0 },
|
|
+ { "RTP_DOWNSTREAM", "STS__RTP_FLOW_STATS__RTP_FLOW_DIRECTION__RTP_DOWNSTREAM", 1 },
|
|
+};
|
|
+static const ProtobufCIntRange sts__rtp_flow_stats__rtp_flow_direction__value_ranges[] = {
|
|
+{0, 0},{0, 2}
|
|
+};
|
|
+static const ProtobufCEnumValueIndex sts__rtp_flow_stats__rtp_flow_direction__enum_values_by_name[2] =
|
|
+{
|
|
+ { "RTP_DOWNSTREAM", 1 },
|
|
+ { "RTP_UPSTREAM", 0 },
|
|
+};
|
|
+const ProtobufCEnumDescriptor sts__rtp_flow_stats__rtp_flow_direction__descriptor =
|
|
+{
|
|
+ PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
|
|
+ "sts.RtpFlowStats.RtpFlowDirection",
|
|
+ "RtpFlowDirection",
|
|
+ "Sts__RtpFlowStats__RtpFlowDirection",
|
|
+ "sts",
|
|
+ 2,
|
|
+ sts__rtp_flow_stats__rtp_flow_direction__enum_values_by_number,
|
|
+ 2,
|
|
+ sts__rtp_flow_stats__rtp_flow_direction__enum_values_by_name,
|
|
+ 1,
|
|
+ sts__rtp_flow_stats__rtp_flow_direction__value_ranges,
|
|
+ NULL,NULL,NULL,NULL /* reserved[1234] */
|
|
+};
|
|
+static const ProtobufCEnumValue sts__rtp_flow_stats__rtp_flow_type__enum_values_by_number[2] =
|
|
+{
|
|
+ { "RTP_VOICE", "STS__RTP_FLOW_STATS__RTP_FLOW_TYPE__RTP_VOICE", 0 },
|
|
+ { "RTP_VIDEO", "STS__RTP_FLOW_STATS__RTP_FLOW_TYPE__RTP_VIDEO", 1 },
|
|
+};
|
|
+static const ProtobufCIntRange sts__rtp_flow_stats__rtp_flow_type__value_ranges[] = {
|
|
+{0, 0},{0, 2}
|
|
+};
|
|
+static const ProtobufCEnumValueIndex sts__rtp_flow_stats__rtp_flow_type__enum_values_by_name[2] =
|
|
+{
|
|
+ { "RTP_VIDEO", 1 },
|
|
+ { "RTP_VOICE", 0 },
|
|
+};
|
|
+const ProtobufCEnumDescriptor sts__rtp_flow_stats__rtp_flow_type__descriptor =
|
|
+{
|
|
+ PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
|
|
+ "sts.RtpFlowStats.RtpFlowType",
|
|
+ "RtpFlowType",
|
|
+ "Sts__RtpFlowStats__RtpFlowType",
|
|
+ "sts",
|
|
+ 2,
|
|
+ sts__rtp_flow_stats__rtp_flow_type__enum_values_by_number,
|
|
+ 2,
|
|
+ sts__rtp_flow_stats__rtp_flow_type__enum_values_by_name,
|
|
+ 1,
|
|
+ sts__rtp_flow_stats__rtp_flow_type__value_ranges,
|
|
+ NULL,NULL,NULL,NULL /* reserved[1234] */
|
|
+};
|
|
+static const ProtobufCFieldDescriptor sts__rtp_flow_stats__field_descriptors[14] =
|
|
{
|
|
{
|
|
- "nodeID",
|
|
+ "direction",
|
|
1,
|
|
- PROTOBUF_C_LABEL_REQUIRED,
|
|
- PROTOBUF_C_TYPE_STRING,
|
|
- 0, /* quantifier_offset */
|
|
- offsetof(Sts__Report, nodeid),
|
|
- NULL,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_ENUM,
|
|
+ offsetof(Sts__RtpFlowStats, has_direction),
|
|
+ offsetof(Sts__RtpFlowStats, direction),
|
|
+ &sts__rtp_flow_stats__rtp_flow_direction__descriptor,
|
|
NULL,
|
|
0, /* flags */
|
|
0,NULL,NULL /* reserved1,reserved2, etc */
|
|
},
|
|
{
|
|
- "survey",
|
|
+ "rtp_flow_type",
|
|
2,
|
|
- PROTOBUF_C_LABEL_REPEATED,
|
|
- PROTOBUF_C_TYPE_MESSAGE,
|
|
- offsetof(Sts__Report, n_survey),
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_ENUM,
|
|
+ offsetof(Sts__RtpFlowStats, has_rtp_flow_type),
|
|
+ offsetof(Sts__RtpFlowStats, rtp_flow_type),
|
|
+ &sts__rtp_flow_stats__rtp_flow_type__descriptor,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "latency",
|
|
+ 3,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT32,
|
|
+ offsetof(Sts__RtpFlowStats, has_latency),
|
|
+ offsetof(Sts__RtpFlowStats, latency),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "jitter",
|
|
+ 4,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT32,
|
|
+ offsetof(Sts__RtpFlowStats, has_jitter),
|
|
+ offsetof(Sts__RtpFlowStats, jitter),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "packet_loss_percent",
|
|
+ 5,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT32,
|
|
+ offsetof(Sts__RtpFlowStats, has_packet_loss_percent),
|
|
+ offsetof(Sts__RtpFlowStats, packet_loss_percent),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "packet_loss_consec",
|
|
+ 6,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT32,
|
|
+ offsetof(Sts__RtpFlowStats, has_packet_loss_consec),
|
|
+ offsetof(Sts__RtpFlowStats, packet_loss_consec),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "codec",
|
|
+ 7,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT32,
|
|
+ offsetof(Sts__RtpFlowStats, has_codec),
|
|
+ offsetof(Sts__RtpFlowStats, codec),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "mosx_100",
|
|
+ 8,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT32,
|
|
+ offsetof(Sts__RtpFlowStats, has_mosx_100),
|
|
+ offsetof(Sts__RtpFlowStats, mosx_100),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "block_codecs",
|
|
+ 9,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_BYTES,
|
|
+ offsetof(Sts__RtpFlowStats, has_block_codecs),
|
|
+ offsetof(Sts__RtpFlowStats, block_codecs),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "total_packets_sent",
|
|
+ 10,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT32,
|
|
+ offsetof(Sts__RtpFlowStats, has_total_packets_sent),
|
|
+ offsetof(Sts__RtpFlowStats, total_packets_sent),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "total_packets_lost",
|
|
+ 11,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT32,
|
|
+ offsetof(Sts__RtpFlowStats, has_total_packets_lost),
|
|
+ offsetof(Sts__RtpFlowStats, total_packets_lost),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "rtp_seq_first",
|
|
+ 12,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT32,
|
|
+ offsetof(Sts__RtpFlowStats, has_rtp_seq_first),
|
|
+ offsetof(Sts__RtpFlowStats, rtp_seq_first),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "rtp_seq_last",
|
|
+ 13,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT32,
|
|
+ offsetof(Sts__RtpFlowStats, has_rtp_seq_last),
|
|
+ offsetof(Sts__RtpFlowStats, rtp_seq_last),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "stats_idx",
|
|
+ 14,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT32,
|
|
+ offsetof(Sts__RtpFlowStats, has_stats_idx),
|
|
+ offsetof(Sts__RtpFlowStats, stats_idx),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+};
|
|
+static const unsigned sts__rtp_flow_stats__field_indices_by_name[] = {
|
|
+ 8, /* field[8] = block_codecs */
|
|
+ 6, /* field[6] = codec */
|
|
+ 0, /* field[0] = direction */
|
|
+ 3, /* field[3] = jitter */
|
|
+ 2, /* field[2] = latency */
|
|
+ 7, /* field[7] = mosx_100 */
|
|
+ 5, /* field[5] = packet_loss_consec */
|
|
+ 4, /* field[4] = packet_loss_percent */
|
|
+ 1, /* field[1] = rtp_flow_type */
|
|
+ 11, /* field[11] = rtp_seq_first */
|
|
+ 12, /* field[12] = rtp_seq_last */
|
|
+ 13, /* field[13] = stats_idx */
|
|
+ 10, /* field[10] = total_packets_lost */
|
|
+ 9, /* field[9] = total_packets_sent */
|
|
+};
|
|
+static const ProtobufCIntRange sts__rtp_flow_stats__number_ranges[1 + 1] =
|
|
+{
|
|
+ { 1, 0 },
|
|
+ { 0, 14 }
|
|
+};
|
|
+const ProtobufCMessageDescriptor sts__rtp_flow_stats__descriptor =
|
|
+{
|
|
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
|
|
+ "sts.RtpFlowStats",
|
|
+ "RtpFlowStats",
|
|
+ "Sts__RtpFlowStats",
|
|
+ "sts",
|
|
+ sizeof(Sts__RtpFlowStats),
|
|
+ 14,
|
|
+ sts__rtp_flow_stats__field_descriptors,
|
|
+ sts__rtp_flow_stats__field_indices_by_name,
|
|
+ 1, sts__rtp_flow_stats__number_ranges,
|
|
+ (ProtobufCMessageInit) sts__rtp_flow_stats__init,
|
|
+ NULL,NULL,NULL /* reserved[123] */
|
|
+};
|
|
+static const ProtobufCFieldDescriptor sts__call_start__field_descriptors[6] =
|
|
+{
|
|
+ {
|
|
+ "session_id",
|
|
+ 1,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT64,
|
|
+ offsetof(Sts__CallStart, has_session_id),
|
|
+ offsetof(Sts__CallStart, session_id),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "wifi_session_id",
|
|
+ 2,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT64,
|
|
+ offsetof(Sts__CallStart, has_wifi_session_id),
|
|
+ offsetof(Sts__CallStart, wifi_session_id),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "client_mac",
|
|
+ 3,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_BYTES,
|
|
+ offsetof(Sts__CallStart, has_client_mac),
|
|
+ offsetof(Sts__CallStart, client_mac),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "codecs",
|
|
+ 4,
|
|
+ PROTOBUF_C_LABEL_REPEATED,
|
|
+ PROTOBUF_C_TYPE_STRING,
|
|
+ offsetof(Sts__CallStart, n_codecs),
|
|
+ offsetof(Sts__CallStart, codecs),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "provider_domain",
|
|
+ 5,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_STRING,
|
|
+ 0, /* quantifier_offset */
|
|
+ offsetof(Sts__CallStart, provider_domain),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "device_info",
|
|
+ 6,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_STRING,
|
|
+ 0, /* quantifier_offset */
|
|
+ offsetof(Sts__CallStart, device_info),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+};
|
|
+static const unsigned sts__call_start__field_indices_by_name[] = {
|
|
+ 2, /* field[2] = client_mac */
|
|
+ 3, /* field[3] = codecs */
|
|
+ 5, /* field[5] = device_info */
|
|
+ 4, /* field[4] = provider_domain */
|
|
+ 0, /* field[0] = session_id */
|
|
+ 1, /* field[1] = wifi_session_id */
|
|
+};
|
|
+static const ProtobufCIntRange sts__call_start__number_ranges[1 + 1] =
|
|
+{
|
|
+ { 1, 0 },
|
|
+ { 0, 6 }
|
|
+};
|
|
+const ProtobufCMessageDescriptor sts__call_start__descriptor =
|
|
+{
|
|
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
|
|
+ "sts.CallStart",
|
|
+ "CallStart",
|
|
+ "Sts__CallStart",
|
|
+ "sts",
|
|
+ sizeof(Sts__CallStart),
|
|
+ 6,
|
|
+ sts__call_start__field_descriptors,
|
|
+ sts__call_start__field_indices_by_name,
|
|
+ 1, sts__call_start__number_ranges,
|
|
+ (ProtobufCMessageInit) sts__call_start__init,
|
|
+ NULL,NULL,NULL /* reserved[123] */
|
|
+};
|
|
+static const ProtobufCEnumValue sts__call_stop__call_stop_reason__enum_values_by_number[2] =
|
|
+{
|
|
+ { "BYE_OK", "STS__CALL_STOP__CALL_STOP_REASON__BYE_OK", 0 },
|
|
+ { "CALL_DROPPED", "STS__CALL_STOP__CALL_STOP_REASON__CALL_DROPPED", 1 },
|
|
+};
|
|
+static const ProtobufCIntRange sts__call_stop__call_stop_reason__value_ranges[] = {
|
|
+{0, 0},{0, 2}
|
|
+};
|
|
+static const ProtobufCEnumValueIndex sts__call_stop__call_stop_reason__enum_values_by_name[2] =
|
|
+{
|
|
+ { "BYE_OK", 0 },
|
|
+ { "CALL_DROPPED", 1 },
|
|
+};
|
|
+const ProtobufCEnumDescriptor sts__call_stop__call_stop_reason__descriptor =
|
|
+{
|
|
+ PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
|
|
+ "sts.CallStop.CallStopReason",
|
|
+ "CallStopReason",
|
|
+ "Sts__CallStop__CallStopReason",
|
|
+ "sts",
|
|
+ 2,
|
|
+ sts__call_stop__call_stop_reason__enum_values_by_number,
|
|
+ 2,
|
|
+ sts__call_stop__call_stop_reason__enum_values_by_name,
|
|
+ 1,
|
|
+ sts__call_stop__call_stop_reason__value_ranges,
|
|
+ NULL,NULL,NULL,NULL /* reserved[1234] */
|
|
+};
|
|
+static const ProtobufCFieldDescriptor sts__call_stop__field_descriptors[6] =
|
|
+{
|
|
+ {
|
|
+ "session_id",
|
|
+ 1,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT64,
|
|
+ offsetof(Sts__CallStop, has_session_id),
|
|
+ offsetof(Sts__CallStop, session_id),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "wifi_session_id",
|
|
+ 2,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT64,
|
|
+ offsetof(Sts__CallStop, has_wifi_session_id),
|
|
+ offsetof(Sts__CallStop, wifi_session_id),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "client_mac",
|
|
+ 3,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_BYTES,
|
|
+ offsetof(Sts__CallStop, has_client_mac),
|
|
+ offsetof(Sts__CallStop, client_mac),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "reason",
|
|
+ 4,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_ENUM,
|
|
+ offsetof(Sts__CallStop, has_reason),
|
|
+ offsetof(Sts__CallStop, reason),
|
|
+ &sts__call_stop__call_stop_reason__descriptor,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "call_duration",
|
|
+ 5,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT32,
|
|
+ offsetof(Sts__CallStop, has_call_duration),
|
|
+ offsetof(Sts__CallStop, call_duration),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "stats",
|
|
+ 6,
|
|
+ PROTOBUF_C_LABEL_REPEATED,
|
|
+ PROTOBUF_C_TYPE_MESSAGE,
|
|
+ offsetof(Sts__CallStop, n_stats),
|
|
+ offsetof(Sts__CallStop, stats),
|
|
+ &sts__rtp_flow_stats__descriptor,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+};
|
|
+static const unsigned sts__call_stop__field_indices_by_name[] = {
|
|
+ 4, /* field[4] = call_duration */
|
|
+ 2, /* field[2] = client_mac */
|
|
+ 3, /* field[3] = reason */
|
|
+ 0, /* field[0] = session_id */
|
|
+ 5, /* field[5] = stats */
|
|
+ 1, /* field[1] = wifi_session_id */
|
|
+};
|
|
+static const ProtobufCIntRange sts__call_stop__number_ranges[1 + 1] =
|
|
+{
|
|
+ { 1, 0 },
|
|
+ { 0, 6 }
|
|
+};
|
|
+const ProtobufCMessageDescriptor sts__call_stop__descriptor =
|
|
+{
|
|
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
|
|
+ "sts.CallStop",
|
|
+ "CallStop",
|
|
+ "Sts__CallStop",
|
|
+ "sts",
|
|
+ sizeof(Sts__CallStop),
|
|
+ 6,
|
|
+ sts__call_stop__field_descriptors,
|
|
+ sts__call_stop__field_indices_by_name,
|
|
+ 1, sts__call_stop__number_ranges,
|
|
+ (ProtobufCMessageInit) sts__call_stop__init,
|
|
+ NULL,NULL,NULL /* reserved[123] */
|
|
+};
|
|
+static const ProtobufCEnumValue sts__call_report__call_report_reason__enum_values_by_number[3] =
|
|
+{
|
|
+ { "ROAMED_FROM", "STS__CALL_REPORT__CALL_REPORT_REASON__ROAMED_FROM", 0 },
|
|
+ { "ROAMED_TO", "STS__CALL_REPORT__CALL_REPORT_REASON__ROAMED_TO", 1 },
|
|
+ { "GOT_PUBLISH", "STS__CALL_REPORT__CALL_REPORT_REASON__GOT_PUBLISH", 2 },
|
|
+};
|
|
+static const ProtobufCIntRange sts__call_report__call_report_reason__value_ranges[] = {
|
|
+{0, 0},{0, 3}
|
|
+};
|
|
+static const ProtobufCEnumValueIndex sts__call_report__call_report_reason__enum_values_by_name[3] =
|
|
+{
|
|
+ { "GOT_PUBLISH", 2 },
|
|
+ { "ROAMED_FROM", 0 },
|
|
+ { "ROAMED_TO", 1 },
|
|
+};
|
|
+const ProtobufCEnumDescriptor sts__call_report__call_report_reason__descriptor =
|
|
+{
|
|
+ PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
|
|
+ "sts.CallReport.CallReportReason",
|
|
+ "CallReportReason",
|
|
+ "Sts__CallReport__CallReportReason",
|
|
+ "sts",
|
|
+ 3,
|
|
+ sts__call_report__call_report_reason__enum_values_by_number,
|
|
+ 3,
|
|
+ sts__call_report__call_report_reason__enum_values_by_name,
|
|
+ 1,
|
|
+ sts__call_report__call_report_reason__value_ranges,
|
|
+ NULL,NULL,NULL,NULL /* reserved[1234] */
|
|
+};
|
|
+static const ProtobufCFieldDescriptor sts__call_report__field_descriptors[5] =
|
|
+{
|
|
+ {
|
|
+ "session_id",
|
|
+ 1,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT64,
|
|
+ offsetof(Sts__CallReport, has_session_id),
|
|
+ offsetof(Sts__CallReport, session_id),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "wifi_session_id",
|
|
+ 2,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT64,
|
|
+ offsetof(Sts__CallReport, has_wifi_session_id),
|
|
+ offsetof(Sts__CallReport, wifi_session_id),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "client_mac",
|
|
+ 3,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_BYTES,
|
|
+ offsetof(Sts__CallReport, has_client_mac),
|
|
+ offsetof(Sts__CallReport, client_mac),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "stats",
|
|
+ 4,
|
|
+ PROTOBUF_C_LABEL_REPEATED,
|
|
+ PROTOBUF_C_TYPE_MESSAGE,
|
|
+ offsetof(Sts__CallReport, n_stats),
|
|
+ offsetof(Sts__CallReport, stats),
|
|
+ &sts__rtp_flow_stats__descriptor,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "reason",
|
|
+ 5,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_ENUM,
|
|
+ offsetof(Sts__CallReport, has_reason),
|
|
+ offsetof(Sts__CallReport, reason),
|
|
+ &sts__call_report__call_report_reason__descriptor,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+};
|
|
+static const unsigned sts__call_report__field_indices_by_name[] = {
|
|
+ 2, /* field[2] = client_mac */
|
|
+ 4, /* field[4] = reason */
|
|
+ 0, /* field[0] = session_id */
|
|
+ 3, /* field[3] = stats */
|
|
+ 1, /* field[1] = wifi_session_id */
|
|
+};
|
|
+static const ProtobufCIntRange sts__call_report__number_ranges[1 + 1] =
|
|
+{
|
|
+ { 1, 0 },
|
|
+ { 0, 5 }
|
|
+};
|
|
+const ProtobufCMessageDescriptor sts__call_report__descriptor =
|
|
+{
|
|
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
|
|
+ "sts.CallReport",
|
|
+ "CallReport",
|
|
+ "Sts__CallReport",
|
|
+ "sts",
|
|
+ sizeof(Sts__CallReport),
|
|
+ 5,
|
|
+ sts__call_report__field_descriptors,
|
|
+ sts__call_report__field_indices_by_name,
|
|
+ 1, sts__call_report__number_ranges,
|
|
+ (ProtobufCMessageInit) sts__call_report__init,
|
|
+ NULL,NULL,NULL /* reserved[123] */
|
|
+};
|
|
+static const ProtobufCFieldDescriptor sts__streaming_video_detect_pattern__field_descriptors[2] =
|
|
+{
|
|
+ {
|
|
+ "dns_lookup_pattern",
|
|
+ 1,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_STRING,
|
|
+ 0, /* quantifier_offset */
|
|
+ offsetof(Sts__StreamingVideoDetectPattern, dns_lookup_pattern),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "video_type",
|
|
+ 2,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_ENUM,
|
|
+ offsetof(Sts__StreamingVideoDetectPattern, has_video_type),
|
|
+ offsetof(Sts__StreamingVideoDetectPattern, video_type),
|
|
+ &sts__streaming_video_type__descriptor,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+};
|
|
+static const unsigned sts__streaming_video_detect_pattern__field_indices_by_name[] = {
|
|
+ 0, /* field[0] = dns_lookup_pattern */
|
|
+ 1, /* field[1] = video_type */
|
|
+};
|
|
+static const ProtobufCIntRange sts__streaming_video_detect_pattern__number_ranges[1 + 1] =
|
|
+{
|
|
+ { 1, 0 },
|
|
+ { 0, 2 }
|
|
+};
|
|
+const ProtobufCMessageDescriptor sts__streaming_video_detect_pattern__descriptor =
|
|
+{
|
|
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
|
|
+ "sts.StreamingVideoDetectPattern",
|
|
+ "StreamingVideoDetectPattern",
|
|
+ "Sts__StreamingVideoDetectPattern",
|
|
+ "sts",
|
|
+ sizeof(Sts__StreamingVideoDetectPattern),
|
|
+ 2,
|
|
+ sts__streaming_video_detect_pattern__field_descriptors,
|
|
+ sts__streaming_video_detect_pattern__field_indices_by_name,
|
|
+ 1, sts__streaming_video_detect_pattern__number_ranges,
|
|
+ (ProtobufCMessageInit) sts__streaming_video_detect_pattern__init,
|
|
+ NULL,NULL,NULL /* reserved[123] */
|
|
+};
|
|
+static const ProtobufCFieldDescriptor sts__streaming_video_session_start__field_descriptors[5] =
|
|
+{
|
|
+ {
|
|
+ "video_session_id",
|
|
+ 1,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT64,
|
|
+ offsetof(Sts__StreamingVideoSessionStart, has_video_session_id),
|
|
+ offsetof(Sts__StreamingVideoSessionStart, video_session_id),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "session_id",
|
|
+ 2,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT64,
|
|
+ offsetof(Sts__StreamingVideoSessionStart, has_session_id),
|
|
+ offsetof(Sts__StreamingVideoSessionStart, session_id),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "client_mac",
|
|
+ 3,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_BYTES,
|
|
+ offsetof(Sts__StreamingVideoSessionStart, has_client_mac),
|
|
+ offsetof(Sts__StreamingVideoSessionStart, client_mac),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "server_ip",
|
|
+ 4,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_BYTES,
|
|
+ offsetof(Sts__StreamingVideoSessionStart, has_server_ip),
|
|
+ offsetof(Sts__StreamingVideoSessionStart, server_ip),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "streaming_video_type",
|
|
+ 5,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_ENUM,
|
|
+ offsetof(Sts__StreamingVideoSessionStart, has_streaming_video_type),
|
|
+ offsetof(Sts__StreamingVideoSessionStart, streaming_video_type),
|
|
+ &sts__streaming_video_type__descriptor,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+};
|
|
+static const unsigned sts__streaming_video_session_start__field_indices_by_name[] = {
|
|
+ 2, /* field[2] = client_mac */
|
|
+ 3, /* field[3] = server_ip */
|
|
+ 1, /* field[1] = session_id */
|
|
+ 4, /* field[4] = streaming_video_type */
|
|
+ 0, /* field[0] = video_session_id */
|
|
+};
|
|
+static const ProtobufCIntRange sts__streaming_video_session_start__number_ranges[1 + 1] =
|
|
+{
|
|
+ { 1, 0 },
|
|
+ { 0, 5 }
|
|
+};
|
|
+const ProtobufCMessageDescriptor sts__streaming_video_session_start__descriptor =
|
|
+{
|
|
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
|
|
+ "sts.StreamingVideoSessionStart",
|
|
+ "StreamingVideoSessionStart",
|
|
+ "Sts__StreamingVideoSessionStart",
|
|
+ "sts",
|
|
+ sizeof(Sts__StreamingVideoSessionStart),
|
|
+ 5,
|
|
+ sts__streaming_video_session_start__field_descriptors,
|
|
+ sts__streaming_video_session_start__field_indices_by_name,
|
|
+ 1, sts__streaming_video_session_start__number_ranges,
|
|
+ (ProtobufCMessageInit) sts__streaming_video_session_start__init,
|
|
+ NULL,NULL,NULL /* reserved[123] */
|
|
+};
|
|
+static const ProtobufCFieldDescriptor sts__streaming_video_server_detected__field_descriptors[6] =
|
|
+{
|
|
+ {
|
|
+ "video_session_id",
|
|
+ 1,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT64,
|
|
+ offsetof(Sts__StreamingVideoServerDetected, has_video_session_id),
|
|
+ offsetof(Sts__StreamingVideoServerDetected, video_session_id),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "session_id",
|
|
+ 2,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT64,
|
|
+ offsetof(Sts__StreamingVideoServerDetected, has_session_id),
|
|
+ offsetof(Sts__StreamingVideoServerDetected, session_id),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "client_mac",
|
|
+ 3,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_BYTES,
|
|
+ offsetof(Sts__StreamingVideoServerDetected, has_client_mac),
|
|
+ offsetof(Sts__StreamingVideoServerDetected, client_mac),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "server_ip",
|
|
+ 4,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_BYTES,
|
|
+ offsetof(Sts__StreamingVideoServerDetected, has_server_ip),
|
|
+ offsetof(Sts__StreamingVideoServerDetected, server_ip),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "server_dns_name",
|
|
+ 5,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_STRING,
|
|
+ 0, /* quantifier_offset */
|
|
+ offsetof(Sts__StreamingVideoServerDetected, server_dns_name),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "streaming_video_type",
|
|
+ 6,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_ENUM,
|
|
+ offsetof(Sts__StreamingVideoServerDetected, has_streaming_video_type),
|
|
+ offsetof(Sts__StreamingVideoServerDetected, streaming_video_type),
|
|
+ &sts__streaming_video_type__descriptor,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+};
|
|
+static const unsigned sts__streaming_video_server_detected__field_indices_by_name[] = {
|
|
+ 2, /* field[2] = client_mac */
|
|
+ 4, /* field[4] = server_dns_name */
|
|
+ 3, /* field[3] = server_ip */
|
|
+ 1, /* field[1] = session_id */
|
|
+ 5, /* field[5] = streaming_video_type */
|
|
+ 0, /* field[0] = video_session_id */
|
|
+};
|
|
+static const ProtobufCIntRange sts__streaming_video_server_detected__number_ranges[1 + 1] =
|
|
+{
|
|
+ { 1, 0 },
|
|
+ { 0, 6 }
|
|
+};
|
|
+const ProtobufCMessageDescriptor sts__streaming_video_server_detected__descriptor =
|
|
+{
|
|
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
|
|
+ "sts.StreamingVideoServerDetected",
|
|
+ "StreamingVideoServerDetected",
|
|
+ "Sts__StreamingVideoServerDetected",
|
|
+ "sts",
|
|
+ sizeof(Sts__StreamingVideoServerDetected),
|
|
+ 6,
|
|
+ sts__streaming_video_server_detected__field_descriptors,
|
|
+ sts__streaming_video_server_detected__field_indices_by_name,
|
|
+ 1, sts__streaming_video_server_detected__number_ranges,
|
|
+ (ProtobufCMessageInit) sts__streaming_video_server_detected__init,
|
|
+ NULL,NULL,NULL /* reserved[123] */
|
|
+};
|
|
+static const ProtobufCFieldDescriptor sts__streaming_video_stop__field_descriptors[7] =
|
|
+{
|
|
+ {
|
|
+ "video_session_id",
|
|
+ 1,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT64,
|
|
+ offsetof(Sts__StreamingVideoStop, has_video_session_id),
|
|
+ offsetof(Sts__StreamingVideoStop, video_session_id),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "session_id",
|
|
+ 2,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT64,
|
|
+ offsetof(Sts__StreamingVideoStop, has_session_id),
|
|
+ offsetof(Sts__StreamingVideoStop, session_id),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "client_mac",
|
|
+ 3,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_BYTES,
|
|
+ offsetof(Sts__StreamingVideoStop, has_client_mac),
|
|
+ offsetof(Sts__StreamingVideoStop, client_mac),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "server_ip",
|
|
+ 4,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_BYTES,
|
|
+ offsetof(Sts__StreamingVideoStop, has_server_ip),
|
|
+ offsetof(Sts__StreamingVideoStop, server_ip),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "total_bytes",
|
|
+ 5,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT64,
|
|
+ offsetof(Sts__StreamingVideoStop, has_total_bytes),
|
|
+ offsetof(Sts__StreamingVideoStop, total_bytes),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "streaming_video_type",
|
|
+ 6,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_ENUM,
|
|
+ offsetof(Sts__StreamingVideoStop, has_streaming_video_type),
|
|
+ offsetof(Sts__StreamingVideoStop, streaming_video_type),
|
|
+ &sts__streaming_video_type__descriptor,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "duration_sec",
|
|
+ 7,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT32,
|
|
+ offsetof(Sts__StreamingVideoStop, has_duration_sec),
|
|
+ offsetof(Sts__StreamingVideoStop, duration_sec),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+};
|
|
+static const unsigned sts__streaming_video_stop__field_indices_by_name[] = {
|
|
+ 2, /* field[2] = client_mac */
|
|
+ 6, /* field[6] = duration_sec */
|
|
+ 3, /* field[3] = server_ip */
|
|
+ 1, /* field[1] = session_id */
|
|
+ 5, /* field[5] = streaming_video_type */
|
|
+ 4, /* field[4] = total_bytes */
|
|
+ 0, /* field[0] = video_session_id */
|
|
+};
|
|
+static const ProtobufCIntRange sts__streaming_video_stop__number_ranges[1 + 1] =
|
|
+{
|
|
+ { 1, 0 },
|
|
+ { 0, 7 }
|
|
+};
|
|
+const ProtobufCMessageDescriptor sts__streaming_video_stop__descriptor =
|
|
+{
|
|
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
|
|
+ "sts.StreamingVideoStop",
|
|
+ "StreamingVideoStop",
|
|
+ "Sts__StreamingVideoStop",
|
|
+ "sts",
|
|
+ sizeof(Sts__StreamingVideoStop),
|
|
+ 7,
|
|
+ sts__streaming_video_stop__field_descriptors,
|
|
+ sts__streaming_video_stop__field_indices_by_name,
|
|
+ 1, sts__streaming_video_stop__number_ranges,
|
|
+ (ProtobufCMessageInit) sts__streaming_video_stop__init,
|
|
+ NULL,NULL,NULL /* reserved[123] */
|
|
+};
|
|
+static const ProtobufCFieldDescriptor sts__video_voice_report__field_descriptors[7] =
|
|
+{
|
|
+ {
|
|
+ "call_start",
|
|
+ 1,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_MESSAGE,
|
|
+ 0, /* quantifier_offset */
|
|
+ offsetof(Sts__VideoVoiceReport, call_start),
|
|
+ &sts__call_start__descriptor,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "call_stop",
|
|
+ 2,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_MESSAGE,
|
|
+ 0, /* quantifier_offset */
|
|
+ offsetof(Sts__VideoVoiceReport, call_stop),
|
|
+ &sts__call_stop__descriptor,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "call_report",
|
|
+ 3,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_MESSAGE,
|
|
+ 0, /* quantifier_offset */
|
|
+ offsetof(Sts__VideoVoiceReport, call_report),
|
|
+ &sts__call_report__descriptor,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "stream_video_stop",
|
|
+ 4,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_MESSAGE,
|
|
+ 0, /* quantifier_offset */
|
|
+ offsetof(Sts__VideoVoiceReport, stream_video_stop),
|
|
+ &sts__streaming_video_stop__descriptor,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "stream_video_server",
|
|
+ 5,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_MESSAGE,
|
|
+ 0, /* quantifier_offset */
|
|
+ offsetof(Sts__VideoVoiceReport, stream_video_server),
|
|
+ &sts__streaming_video_server_detected__descriptor,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "stream_video_session_start",
|
|
+ 6,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_MESSAGE,
|
|
+ 0, /* quantifier_offset */
|
|
+ offsetof(Sts__VideoVoiceReport, stream_video_session_start),
|
|
+ &sts__streaming_video_session_start__descriptor,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "timestamp_ms",
|
|
+ 7,
|
|
+ PROTOBUF_C_LABEL_OPTIONAL,
|
|
+ PROTOBUF_C_TYPE_UINT64,
|
|
+ offsetof(Sts__VideoVoiceReport, has_timestamp_ms),
|
|
+ offsetof(Sts__VideoVoiceReport, timestamp_ms),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+};
|
|
+static const unsigned sts__video_voice_report__field_indices_by_name[] = {
|
|
+ 2, /* field[2] = call_report */
|
|
+ 0, /* field[0] = call_start */
|
|
+ 1, /* field[1] = call_stop */
|
|
+ 4, /* field[4] = stream_video_server */
|
|
+ 5, /* field[5] = stream_video_session_start */
|
|
+ 3, /* field[3] = stream_video_stop */
|
|
+ 6, /* field[6] = timestamp_ms */
|
|
+};
|
|
+static const ProtobufCIntRange sts__video_voice_report__number_ranges[1 + 1] =
|
|
+{
|
|
+ { 1, 0 },
|
|
+ { 0, 7 }
|
|
+};
|
|
+const ProtobufCMessageDescriptor sts__video_voice_report__descriptor =
|
|
+{
|
|
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
|
|
+ "sts.VideoVoiceReport",
|
|
+ "VideoVoiceReport",
|
|
+ "Sts__VideoVoiceReport",
|
|
+ "sts",
|
|
+ sizeof(Sts__VideoVoiceReport),
|
|
+ 7,
|
|
+ sts__video_voice_report__field_descriptors,
|
|
+ sts__video_voice_report__field_indices_by_name,
|
|
+ 1, sts__video_voice_report__number_ranges,
|
|
+ (ProtobufCMessageInit) sts__video_voice_report__init,
|
|
+ NULL,NULL,NULL /* reserved[123] */
|
|
+};
|
|
+static const ProtobufCFieldDescriptor sts__report__field_descriptors[10] =
|
|
+{
|
|
+ {
|
|
+ "nodeID",
|
|
+ 1,
|
|
+ PROTOBUF_C_LABEL_REQUIRED,
|
|
+ PROTOBUF_C_TYPE_STRING,
|
|
+ 0, /* quantifier_offset */
|
|
+ offsetof(Sts__Report, nodeid),
|
|
+ NULL,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
+ "survey",
|
|
+ 2,
|
|
+ PROTOBUF_C_LABEL_REPEATED,
|
|
+ PROTOBUF_C_TYPE_MESSAGE,
|
|
+ offsetof(Sts__Report, n_survey),
|
|
offsetof(Sts__Report, survey),
|
|
&sts__survey__descriptor,
|
|
NULL,
|
|
@@ -4916,6 +6364,18 @@ static const ProtobufCFieldDescriptor st
|
|
0,NULL,NULL /* reserved1,reserved2, etc */
|
|
},
|
|
{
|
|
+ "video_voice_report",
|
|
+ 9,
|
|
+ PROTOBUF_C_LABEL_REPEATED,
|
|
+ PROTOBUF_C_TYPE_MESSAGE,
|
|
+ offsetof(Sts__Report, n_video_voice_report),
|
|
+ offsetof(Sts__Report, video_voice_report),
|
|
+ &sts__video_voice_report__descriptor,
|
|
+ NULL,
|
|
+ 0, /* flags */
|
|
+ 0,NULL,NULL /* reserved1,reserved2, etc */
|
|
+ },
|
|
+ {
|
|
"network_probe",
|
|
101,
|
|
PROTOBUF_C_LABEL_REPEATED,
|
|
@@ -4934,16 +6394,17 @@ static const unsigned sts__report__field
|
|
4, /* field[4] = clients */
|
|
5, /* field[5] = device */
|
|
3, /* field[3] = neighbors */
|
|
- 8, /* field[8] = network_probe */
|
|
+ 9, /* field[9] = network_probe */
|
|
0, /* field[0] = nodeID */
|
|
7, /* field[7] = rssi_report */
|
|
1, /* field[1] = survey */
|
|
+ 8, /* field[8] = video_voice_report */
|
|
};
|
|
static const ProtobufCIntRange sts__report__number_ranges[2 + 1] =
|
|
{
|
|
{ 1, 0 },
|
|
- { 101, 8 },
|
|
- { 0, 9 }
|
|
+ { 101, 9 },
|
|
+ { 0, 10 }
|
|
};
|
|
const ProtobufCMessageDescriptor sts__report__descriptor =
|
|
{
|
|
@@ -4953,7 +6414,7 @@ const ProtobufCMessageDescriptor sts__re
|
|
"Sts__Report",
|
|
"sts",
|
|
sizeof(Sts__Report),
|
|
- 9,
|
|
+ 10,
|
|
sts__report__field_descriptors,
|
|
sts__report__field_indices_by_name,
|
|
2, sts__report__number_ranges,
|
|
@@ -5416,6 +6877,38 @@ const ProtobufCEnumDescriptor sts__diff_
|
|
sts__diff_type__value_ranges,
|
|
NULL,NULL,NULL,NULL /* reserved[1234] */
|
|
};
|
|
+static const ProtobufCEnumValue sts__streaming_video_type__enum_values_by_number[4] =
|
|
+{
|
|
+ { "UNKNOWN", "STS__STREAMING_VIDEO_TYPE__UNKNOWN", 0 },
|
|
+ { "NETFLIX", "STS__STREAMING_VIDEO_TYPE__NETFLIX", 1 },
|
|
+ { "YOUTUBE", "STS__STREAMING_VIDEO_TYPE__YOUTUBE", 2 },
|
|
+ { "PLEX", "STS__STREAMING_VIDEO_TYPE__PLEX", 3 },
|
|
+};
|
|
+static const ProtobufCIntRange sts__streaming_video_type__value_ranges[] = {
|
|
+{0, 0},{0, 4}
|
|
+};
|
|
+static const ProtobufCEnumValueIndex sts__streaming_video_type__enum_values_by_name[4] =
|
|
+{
|
|
+ { "NETFLIX", 1 },
|
|
+ { "PLEX", 3 },
|
|
+ { "UNKNOWN", 0 },
|
|
+ { "YOUTUBE", 2 },
|
|
+};
|
|
+const ProtobufCEnumDescriptor sts__streaming_video_type__descriptor =
|
|
+{
|
|
+ PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
|
|
+ "sts.StreamingVideoType",
|
|
+ "StreamingVideoType",
|
|
+ "Sts__StreamingVideoType",
|
|
+ "sts",
|
|
+ 4,
|
|
+ sts__streaming_video_type__enum_values_by_number,
|
|
+ 4,
|
|
+ sts__streaming_video_type__enum_values_by_name,
|
|
+ 1,
|
|
+ sts__streaming_video_type__value_ranges,
|
|
+ NULL,NULL,NULL,NULL /* reserved[1234] */
|
|
+};
|
|
static const ProtobufCEnumValue sts__state_up_down__enum_values_by_number[3] =
|
|
{
|
|
{ "SUD_down", "STS__STATE_UP_DOWN__SUD_down", 0 },
|
|
--- a/src/lib/datapipeline/inc/dpp_types.h
|
|
+++ b/src/lib/datapipeline/inc/dpp_types.h
|
|
@@ -464,4 +464,30 @@ typedef enum
|
|
RSSI_SOURCE_NEIGHBOR
|
|
} rssi_source_t;
|
|
|
|
+typedef enum
|
|
+{
|
|
+ BYE_OK = 0,
|
|
+ CALL_DROPPED = 1
|
|
+} sipcall_stopreason_t;
|
|
+
|
|
+typedef enum
|
|
+{
|
|
+ RTP_UPSTREAM = 0,
|
|
+ RTP_DOWNSTREAM = 1
|
|
+} rtp_flow_direction_t;
|
|
+
|
|
+typedef enum
|
|
+{
|
|
+ RTP_VOICE = 0,
|
|
+ RTP_VIDEO = 1
|
|
+} rtp_flow_type_t;
|
|
+
|
|
+typedef enum
|
|
+{
|
|
+ ROAMED_FROM = 0,
|
|
+ ROAMED_TO = 1,
|
|
+ GOT_PUBLISH = 2
|
|
+} sip_call_report_reason_t;
|
|
+
|
|
+
|
|
#endif /* DPP_TYPES_H_INCLUDED */
|
|
--- /dev/null
|
|
+++ b/src/lib/datapipeline/inc/dpp_ucc.h
|
|
@@ -0,0 +1,83 @@
|
|
+/* SPDX-License-Identifier BSD-3-Clause */
|
|
+
|
|
+#ifndef DPP_UCC_H_INCLUDED
|
|
+#define DPP_UCC_H_INCLUDED
|
|
+
|
|
+#include "ds.h"
|
|
+#include "ds_dlist.h"
|
|
+
|
|
+#include "dpp_types.h"
|
|
+
|
|
+#define PKT_TYPE_CALL_START 103
|
|
+#define PKT_TYPE_CALL_STOP 104
|
|
+#define PKT_TYPE_CALL_REPORT 105
|
|
+
|
|
+typedef struct
|
|
+{
|
|
+ rtp_flow_direction_t direction;
|
|
+ rtp_flow_type_t type;
|
|
+ uint32_t latency;
|
|
+ uint32_t jitter;
|
|
+ uint32_t packet_loss_percent; // percentage of lost packets
|
|
+ uint32_t packet_loss_consec; // consecutive packet lost
|
|
+ uint32_t codec; // reference to Codec type in Start. 7 bits PT value (RFC3550)
|
|
+ uint32_t MOSx100; // in case MOS is provided by the application
|
|
+ char BlockCodecs[10]; // Each byte contains F and block PT, only use when Codec is redundant (RFC2198)
|
|
+ uint32_t total_packets_sent; // ver=401
|
|
+ uint32_t total_packets_lost; // ver=401
|
|
+ uint32_t rtp_seq_first; // ver=401
|
|
+ uint32_t rtp_seq_last; // ver=401
|
|
+ uint32_t stats_idx; // ver=401, indexing stats for the same sessionId and wifiSessionId
|
|
+} rtp_flow_stats_t;
|
|
+
|
|
+
|
|
+
|
|
+typedef struct
|
|
+{
|
|
+ uint64_t session_id;
|
|
+ uint64_t wifi_session_id;
|
|
+ char clt_mac[6];
|
|
+ char codecs[15][30];
|
|
+ char provider_domain[50];
|
|
+ char device_info[10];
|
|
+} dpp_ucc_sipcall_start_t;
|
|
+
|
|
+
|
|
+typedef struct
|
|
+{
|
|
+ uint64_t session_id;
|
|
+ uint64_t wifi_session_id;
|
|
+ char clt_mac[6];
|
|
+ sipcall_stopreason_t reason;
|
|
+ uint32_t call_duration; // call duration in seconds
|
|
+ rtp_flow_stats_t stats;
|
|
+} dpp_ucc_sipcall_stop_t;
|
|
+
|
|
+
|
|
+typedef struct
|
|
+{
|
|
+ uint64_t session_id;
|
|
+ uint64_t wifi_session_id;
|
|
+ char clt_mac[6];
|
|
+ rtp_flow_stats_t stats;
|
|
+ sip_call_report_reason_t reason;
|
|
+} dpp_ucc_sipcall_report_t;
|
|
+
|
|
+typedef struct
|
|
+{
|
|
+ dpp_ucc_sipcall_start_t sip_call_start;
|
|
+ dpp_ucc_sipcall_stop_t sip_call_stop;
|
|
+ dpp_ucc_sipcall_report_t sip_call_report;
|
|
+
|
|
+} dpp_ucc_record_t;
|
|
+
|
|
+
|
|
+typedef struct
|
|
+{
|
|
+ dpp_ucc_record_t record;
|
|
+ uint64_t timestamp_ms;
|
|
+ ds_dlist_t list;
|
|
+ uint32_t type;
|
|
+} dpp_ucc_report_data_t;
|
|
+
|
|
+#endif /* DPP_UCC_H_INCLUDED */
|
|
--- a/src/lib/datapipeline/inc/dppline.h
|
|
+++ b/src/lib/datapipeline/inc/dppline.h
|
|
@@ -46,6 +46,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
|
|
#include "dpp_bs_client.h"
|
|
#include "dpp_rssi.h"
|
|
#include "dpp_network_probe.h"
|
|
+#include "dpp_ucc.h"
|
|
|
|
#ifdef CONFIG_MANAGER_QM
|
|
// QM does queue-ing of reports when offline on it's own, so dpp needs
|
|
@@ -107,6 +108,13 @@ bool dpp_put_bs_client(dpp_bs_client_rep
|
|
bool dpp_put_rssi(dpp_rssi_report_data_t *rpt);
|
|
|
|
/*
|
|
+ * Insert UCC stats into dpp internal queue
|
|
+ */
|
|
+bool dpp_put_ucc(dpp_ucc_report_data_t * rpt);
|
|
+
|
|
+
|
|
+
|
|
+/*
|
|
* Get the protobuf packed buffer
|
|
*
|
|
* This buffer is ready to be send using MQTT
|
|
--- a/src/lib/datapipeline/src/dppline.c
|
|
+++ b/src/lib/datapipeline/src/dppline.c
|
|
@@ -43,6 +43,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
|
|
#include "dpp_device.h"
|
|
#include "dpp_capacity.h"
|
|
#include "dpp_bs_client.h"
|
|
+#include "dpp_ucc.h"
|
|
|
|
#ifndef TARGET_NATIVE
|
|
#include "os_types.h"
|
|
@@ -64,6 +65,7 @@ typedef enum
|
|
DPP_T_BS_CLIENT = 6,
|
|
DPP_T_RSSI = 7,
|
|
DPP_T_NETWORK_PROBE =8,
|
|
+ DPP_T_UCC = 9,
|
|
} DPP_STS_TYPE;
|
|
|
|
uint32_t queue_depth;
|
|
@@ -162,6 +164,16 @@ typedef struct dpp_rssi_stats
|
|
uint64_t timestamp_ms;
|
|
} dppline_rssi_stats_t;
|
|
|
|
+typedef struct dpp_ucc_stats
|
|
+{
|
|
+ dpp_ucc_record_t record;
|
|
+ uint32_t qty;
|
|
+ uint64_t timestamp_ms;
|
|
+ uint32_t type;
|
|
+} dppline_ucc_stats_t;
|
|
+
|
|
+
|
|
+
|
|
/* DPP stats type, used as element in internal double ds */
|
|
typedef struct dpp_stats
|
|
{
|
|
@@ -178,6 +190,7 @@ typedef struct dpp_stats
|
|
dppline_bs_client_stats_t bs_client;
|
|
dppline_rssi_stats_t rssi;
|
|
dppline_network_probe_stats_t network_probe;
|
|
+ dppline_ucc_stats_t ucc;
|
|
} u;
|
|
} dppline_stats_t;
|
|
|
|
@@ -234,6 +247,9 @@ static void dppline_free_stat(dppline_st
|
|
case DPP_T_NETWORK_PROBE:
|
|
free(s->u.network_probe.list);
|
|
break;
|
|
+ case DPP_T_UCC:
|
|
+ free(&s->u.ucc.record);
|
|
+ break;
|
|
default:;
|
|
}
|
|
|
|
@@ -682,6 +698,19 @@ static bool dppline_copysts(dppline_stat
|
|
|
|
}
|
|
break;
|
|
+ case DPP_T_UCC:
|
|
+ {
|
|
+ dpp_ucc_report_data_t *report_data = sts;
|
|
+
|
|
+ memcpy(&dst->u.ucc.record, &report_data->record,
|
|
+ sizeof(dpp_ucc_record_t));
|
|
+
|
|
+ dst->u.ucc.timestamp_ms = report_data->timestamp_ms;
|
|
+ dst->u.ucc.type = report_data->type;
|
|
+ size = sizeof(dpp_ucc_record_t);
|
|
+ }
|
|
+ break;
|
|
+
|
|
default:
|
|
LOG(ERR, "Failed to copy %d stats", dst->type);
|
|
/* do nothing */
|
|
@@ -1931,6 +1960,154 @@ static void dppline_add_stat_bs_client(S
|
|
}
|
|
}
|
|
|
|
+static void dppline_add_stat_ucc(Sts__Report *r, dppline_stats_t *s)
|
|
+{
|
|
+ Sts__VideoVoiceReport *sr = NULL;
|
|
+ int size = 0;
|
|
+ uint32_t i;
|
|
+ dppline_ucc_stats_t *ucc = &s->u.ucc;
|
|
+
|
|
+
|
|
+ // increase the number of vivo report
|
|
+ r->n_video_voice_report++;
|
|
+
|
|
+ // allocate or extend the size of vivo
|
|
+ r->video_voice_report = realloc(r->video_voice_report,
|
|
+ r->n_video_voice_report * sizeof(Sts__VideoVoiceReport*));
|
|
+ size += sizeof(Sts__VideoVoiceReport*);
|
|
+
|
|
+ // allocate new buffer Sts__VideoVoiceReport
|
|
+ sr = malloc(sizeof(Sts__VideoVoiceReport));
|
|
+ size += sizeof(Sts__VideoVoiceReport);
|
|
+ assert(sr);
|
|
+ r->video_voice_report[r->n_video_voice_report - 1] = sr;
|
|
+ sts__video_voice_report__init(sr);
|
|
+
|
|
+ sr->timestamp_ms = ucc->timestamp_ms;
|
|
+ sr->has_timestamp_ms = true;
|
|
+
|
|
+ switch (ucc->type)
|
|
+ {
|
|
+ case PKT_TYPE_CALL_START:
|
|
+ /* Call Start report */
|
|
+ sr->call_start = malloc(sizeof(*sr->call_start));
|
|
+ size += sizeof(*sr->call_start);
|
|
+ assert(sr->call_start);
|
|
+
|
|
+ sts__call_start__init(sr->call_start);
|
|
+
|
|
+ sr->call_start->session_id = ucc->record.sip_call_start.session_id;
|
|
+ sr->call_start->has_session_id = true;
|
|
+ sr->call_start->wifi_session_id =
|
|
+ ucc->record.sip_call_start.wifi_session_id;
|
|
+ sr->call_start->has_wifi_session_id = true;
|
|
+ sr->call_start->client_mac.data =
|
|
+ malloc(sizeof(ucc->record.sip_call_start.clt_mac));
|
|
+
|
|
+ size += sizeof(ucc->record.sip_call_start.clt_mac);
|
|
+ assert(sr->call_start->client_mac.data);
|
|
+ memcpy(sr->call_start->client_mac.data,
|
|
+ &ucc->record.sip_call_start.clt_mac[0],
|
|
+ sizeof(ucc->record.sip_call_start.clt_mac));
|
|
+
|
|
+ sr->call_start->client_mac.len =
|
|
+ sizeof(ucc->record.sip_call_start.clt_mac);
|
|
+ sr->call_start->has_client_mac = true;
|
|
+
|
|
+ sr->call_start->codecs = malloc(15 * sizeof(*sr->call_start->codecs));
|
|
+
|
|
+ for (i = 0; i < 15; i++){
|
|
+ sr->call_start->codecs[i] =
|
|
+ malloc(30 * sizeof(**sr->call_start->codecs));
|
|
+ memcpy(sr->call_start->codecs[i],
|
|
+ &ucc->record.sip_call_start.codecs[i][0], 30);
|
|
+ }
|
|
+
|
|
+ size += (15 * sizeof(*sr->call_start->codecs)) +
|
|
+ (30 * sizeof(**sr->call_start->codecs));
|
|
+
|
|
+ sr->call_start->n_codecs = 15;
|
|
+
|
|
+ sr->call_start->provider_domain =
|
|
+ malloc(sizeof(ucc->record.sip_call_start.provider_domain));
|
|
+
|
|
+ size += sizeof(ucc->record.sip_call_start.provider_domain);
|
|
+ assert(sr->call_start->provider_domain);
|
|
+
|
|
+ memcpy(sr->call_start->provider_domain,
|
|
+ ucc->record.sip_call_start.provider_domain,
|
|
+ sizeof(ucc->record.sip_call_start.provider_domain));
|
|
+ break;
|
|
+
|
|
+ case PKT_TYPE_CALL_STOP:
|
|
+ /* Call Stop report */
|
|
+ sr->call_stop = malloc(sizeof(*sr->call_stop));
|
|
+ size += sizeof(*sr->call_stop);
|
|
+ assert(sr->call_stop);
|
|
+
|
|
+ sts__call_stop__init(sr->call_stop);
|
|
+
|
|
+ sr->call_stop->session_id = ucc->record.sip_call_stop.session_id;
|
|
+ sr->call_stop->has_session_id = true;
|
|
+ sr->call_stop->wifi_session_id =
|
|
+ ucc->record.sip_call_stop.wifi_session_id;
|
|
+ sr->call_stop->has_wifi_session_id = true;
|
|
+
|
|
+ sr->call_stop->client_mac.data =
|
|
+ malloc(sizeof(ucc->record.sip_call_stop.clt_mac));
|
|
+
|
|
+ size += sizeof(ucc->record.sip_call_stop.clt_mac);
|
|
+ assert(sr->call_stop->client_mac.data);
|
|
+ memcpy(sr->call_stop->client_mac.data,
|
|
+ &ucc->record.sip_call_stop.clt_mac[0],
|
|
+ sizeof(ucc->record.sip_call_stop.clt_mac));
|
|
+
|
|
+ sr->call_stop->client_mac.len =
|
|
+ sizeof(ucc->record.sip_call_stop.clt_mac);
|
|
+ sr->call_stop->has_client_mac = true;
|
|
+
|
|
+ sr->call_stop->reason = ucc->record.sip_call_stop.reason;
|
|
+ sr->call_stop->has_reason = true;
|
|
+ break;
|
|
+
|
|
+ case PKT_TYPE_CALL_REPORT:
|
|
+ /* Call report */
|
|
+ sr->call_report = malloc(sizeof(*sr->call_report));
|
|
+ size += sizeof(*sr->call_report);
|
|
+ assert(sr->call_report);
|
|
+
|
|
+ sts__call_report__init(sr->call_report);
|
|
+
|
|
+ sr->call_report->session_id = ucc->record.sip_call_report.session_id;
|
|
+ sr->call_report->has_session_id = true;
|
|
+
|
|
+ sr->call_report->wifi_session_id =
|
|
+ ucc->record.sip_call_report.wifi_session_id;
|
|
+ sr->call_report->has_wifi_session_id = true;
|
|
+
|
|
+ sr->call_report->client_mac.data =
|
|
+ malloc(sizeof(ucc->record.sip_call_report.clt_mac));
|
|
+
|
|
+ size += sizeof(ucc->record.sip_call_report.clt_mac);
|
|
+ assert(sr->call_report->client_mac.data);
|
|
+ memcpy(sr->call_report->client_mac.data,
|
|
+ &ucc->record.sip_call_report.clt_mac[0],
|
|
+ sizeof(ucc->record.sip_call_report.clt_mac));
|
|
+
|
|
+ sr->call_report->client_mac.len =
|
|
+ sizeof(ucc->record.sip_call_report.clt_mac);
|
|
+ sr->call_report->has_client_mac = true;
|
|
+
|
|
+ sr->call_report->reason = ucc->record.sip_call_report.reason;
|
|
+ sr->call_report->has_reason = true;
|
|
+ break;
|
|
+
|
|
+ default:
|
|
+ break;
|
|
+ }
|
|
+}
|
|
+
|
|
+
|
|
Sts__RssiPeer__RssiSource dppline_to_proto_rssi_source(rssi_source_t rssi_source)
|
|
{
|
|
switch (rssi_source)
|
|
@@ -2089,6 +2266,10 @@ static void dppline_add_stat(Sts__Report
|
|
dppline_add_stat_network_probe(r, s);
|
|
break;
|
|
|
|
+ case DPP_T_UCC:
|
|
+ dppline_add_stat_ucc(r, s);
|
|
+ break;
|
|
+
|
|
default:
|
|
LOG(ERR, "Failed to add %d to stats report", s->type);
|
|
/* do nothing */
|
|
@@ -2253,6 +2434,14 @@ bool dpp_put_network_probe(dpp_network_p
|
|
}
|
|
|
|
/*
|
|
+ * Put Video/voice stats to internal queue
|
|
+ */
|
|
+bool dpp_put_ucc(dpp_ucc_report_data_t * rpt)
|
|
+{
|
|
+ return dppline_put(DPP_T_UCC, rpt);
|
|
+}
|
|
+
|
|
+/*
|
|
* Create the protobuf buff and copy it to given buffer
|
|
*/
|
|
#ifndef DPP_FAST_PACK
|
|
@@ -2261,7 +2450,7 @@ bool dpp_get_report(uint8_t * buff, size
|
|
ds_dlist_iter_t iter;
|
|
dppline_stats_t *s;
|
|
bool ret = false;
|
|
- size_t tmp_packed_size; /* packed size of current report */
|
|
+ size_t tmp_packed_size = 0; /* packed size of current report */
|
|
|
|
/* prevent sending empty reports */
|
|
if (dpp_get_queue_elements() == 0)
|
|
@@ -2292,6 +2481,8 @@ bool dpp_get_report(uint8_t * buff, size
|
|
tmp_packed_size = sts__report__get_packed_size(report);
|
|
|
|
/* check the size, if size too small break the process */
|
|
+
|
|
+ /* if main buffer size is not enough break */
|
|
if (sz < tmp_packed_size)
|
|
{
|
|
LOG(WARNING, "Packed size: %5zd, buffer size: %5zd ",
|
|
--- /dev/null
|
|
+++ b/src/sm/src/nl_ucc.h
|
|
@@ -0,0 +1,136 @@
|
|
+/* SPDX-License-Identifier BSD-3-Clause */
|
|
+#include <linux/netlink.h>
|
|
+
|
|
+#ifndef __KERNEL__
|
|
+#include <sys/socket.h>
|
|
+
|
|
+#include <net/if.h>
|
|
+
|
|
+#include <sys/types.h>
|
|
+
|
|
+#include <linux/sockios.h>
|
|
+
|
|
+#include <netlink/socket.h>
|
|
+#include <netlink/genl/genl.h>
|
|
+#include <netlink/genl/family.h>
|
|
+#include <netlink/genl/ctrl.h>
|
|
+#include <netlink/msg.h>
|
|
+#include <netlink/attr.h>
|
|
+#endif
|
|
+
|
|
+
|
|
+#define WC_CAPT_BUF_SIZE 500
|
|
+#define PKT_TYPE_CALL_START 103
|
|
+#define PKT_TYPE_CALL_STOP 104
|
|
+#define PKT_TYPE_CALL_REPORT 105
|
|
+
|
|
+
|
|
+struct wc_capture_buf
|
|
+{
|
|
+ uint64_t TimeStamp;
|
|
+ uint64_t tsInUs;
|
|
+ uint64_t SessionId;
|
|
+ unsigned int Type;
|
|
+ unsigned int From;
|
|
+ unsigned int Len;
|
|
+ unsigned int Channel;
|
|
+ unsigned int Direction;
|
|
+ int Rssi;
|
|
+ unsigned int DataRate;
|
|
+ unsigned int Count;
|
|
+ int wifiIf; // for dhcp
|
|
+ char staMac[6]; // for dhcp
|
|
+ unsigned char Buffer[WC_CAPT_BUF_SIZE];
|
|
+};
|
|
+
|
|
+struct sip_call_start
|
|
+{
|
|
+ unsigned long long SessionId;
|
|
+ unsigned char CltMac[6];
|
|
+ int WifiIf; /* To get WiFi session ID */
|
|
+ char Url[50];
|
|
+ char Codecs[15][30];
|
|
+} __attribute__((packed));
|
|
+
|
|
+struct sip_call_end
|
|
+{
|
|
+ unsigned long long SessionId;
|
|
+ unsigned char CltMac[6];
|
|
+ int WifiIf; /* To get WiFi session ID */
|
|
+ unsigned int CltMos;
|
|
+ unsigned int Reason;
|
|
+ unsigned char Codecs[4];
|
|
+ unsigned int Latency;
|
|
+ unsigned int Jitter;
|
|
+ unsigned int PktLostPerc;
|
|
+ unsigned int PktLostCons;
|
|
+ unsigned int VideoCodec;
|
|
+ unsigned int TotalPktSent;
|
|
+ unsigned int TotalPktLost;
|
|
+ unsigned int RtpSeqFirst;
|
|
+ unsigned int RtpSeqLast;
|
|
+ unsigned int SipReportIdx;
|
|
+} __attribute__((packed));
|
|
+
|
|
+
|
|
+struct sip_call_report
|
|
+{
|
|
+ unsigned int Latency;
|
|
+ unsigned int Jitter;
|
|
+ unsigned int PacketLoss;
|
|
+ unsigned int Mos;
|
|
+} __attribute__((packed));
|
|
+
|
|
+
|
|
+
|
|
+#define WC_CAPT_BUF_SIZE 500
|
|
+
|
|
+#define GENL_UCC_FAMILY_NAME "genl_ucc"
|
|
+#define GENL_UCC_MCGRP0_NAME "genl_mcgrp0"
|
|
+#define GENL_UCC_MCGRP1_NAME "genl_mcgrp1"
|
|
+#define GENL_UCC_MCGRP2_NAME "genl_mcgrp2"
|
|
+
|
|
+enum genl_ucc_multicast_groups {
|
|
+ GENL_UCC_MCGRP0,
|
|
+ GENL_UCC_MCGRP1,
|
|
+ GENL_UCC_MCGRP2,
|
|
+};
|
|
+
|
|
+#define GENL_UCC_MCGRP_MAX 3
|
|
+
|
|
+static char* genl_ucc_mcgrp_names[GENL_UCC_MCGRP_MAX] = {
|
|
+ GENL_UCC_MCGRP0_NAME,
|
|
+ GENL_UCC_MCGRP1_NAME,
|
|
+ GENL_UCC_MCGRP2_NAME,
|
|
+};
|
|
+
|
|
+enum genl_ucc_attrs {
|
|
+ GENL_UCC_ATTR_UNSPEC, /* Must NOT use element 0 */
|
|
+
|
|
+ GENL_UCC_ATTR_MSG,
|
|
+
|
|
+ __GENL_UCC_ATTR__MAX,
|
|
+};
|
|
+#define GENL_UCC_ATTR_MAX (__GENL_UCC_ATTR__MAX - 1)
|
|
+
|
|
+
|
|
+#define GENL_UCC_ATTR_MSG_MAX 256
|
|
+
|
|
+enum {
|
|
+ GENL_UCC_C_UNSPEC, /* Must NOT use element 0 */
|
|
+ GENL_UCC_C_MSG,
|
|
+};
|
|
+
|
|
+
|
|
+
|
|
+static struct nla_policy genl_ucc_policy[GENL_UCC_ATTR_MAX+1] = {
|
|
+ [GENL_UCC_ATTR_MSG] = {
|
|
+ .type = NLA_UNSPEC,
|
|
+#ifdef __KERNEL__
|
|
+ .len = sizeof(struct wc_capture_buf)
|
|
+#else
|
|
+ .maxlen = sizeof(struct wc_capture_buf)
|
|
+#endif
|
|
+ },
|
|
+};
|
|
+
|
|
--- a/src/sm/src/sm.h
|
|
+++ b/src/sm/src/sm.h
|
|
@@ -222,6 +222,13 @@ bool sm_radio_config_enable_fast_scan(
|
|
radio_entry_t *radio_cfg);
|
|
|
|
/******************************************************************************
|
|
+ * UCC definitions
|
|
+ *****************************************************************************/
|
|
+bool ucc_report_request(sm_stats_request_t *request);
|
|
+
|
|
+/******************************************************************************/
|
|
+
|
|
+/******************************************************************************
|
|
* SCAN SCHED definitions
|
|
*****************************************************************************/
|
|
typedef void (*sm_scan_cb_t)(
|
|
@@ -271,6 +278,7 @@ typedef enum
|
|
STS_REPORT_DEVICE,
|
|
STS_REPORT_RSSI,
|
|
STS_REPORT_NETWORK_PROBE,
|
|
+ STS_REPORT_VIDEO_VOICE,
|
|
STS_REPORT_MAX,
|
|
STS_REPORT_ERROR = STS_REPORT_MAX
|
|
} sm_report_type_t;
|
|
--- a/src/sm/src/sm_ovsdb.c
|
|
+++ b/src/sm/src/sm_ovsdb.c
|
|
@@ -62,6 +62,7 @@ char *sm_report_type_str[STS_REPORT_MAX]
|
|
"device",
|
|
"rssi",
|
|
"network_probe",
|
|
+ "video_voice",
|
|
};
|
|
|
|
#ifndef CONFIG_MANAGER_QM
|
|
@@ -347,6 +348,7 @@ bool sm_update_stats_config(sm_stats_con
|
|
break;
|
|
case STS_REPORT_DEVICE:
|
|
sm_device_report_request(&req);
|
|
+ ucc_report_request(&req);
|
|
break;
|
|
case STS_REPORT_CAPACITY:
|
|
#ifdef CONFIG_SM_CAPACITY_QUEUE_STATS
|
|
@@ -361,6 +363,9 @@ bool sm_update_stats_config(sm_stats_con
|
|
case STS_REPORT_NETWORK_PROBE:
|
|
sm_network_probe_report_request(&req);
|
|
break;
|
|
+ case STS_REPORT_VIDEO_VOICE:
|
|
+ ucc_report_request(&req);
|
|
+ break;
|
|
default:
|
|
return false;
|
|
}
|
|
--- /dev/null
|
|
+++ b/src/sm/src/ucc_report.c
|
|
@@ -0,0 +1,301 @@
|
|
+/* SPDX-License-Identifier BSD-3-Clause */
|
|
+
|
|
+#define _GNU_SOURCE
|
|
+#include <unistd.h>
|
|
+#include <time.h>
|
|
+#include <sys/types.h>
|
|
+#include <errno.h>
|
|
+#include <stdio.h>
|
|
+#include <sys/wait.h>
|
|
+#include <stdlib.h>
|
|
+#include <stdbool.h>
|
|
+#include <unistd.h>
|
|
+#include <string.h>
|
|
+#include <ev.h>
|
|
+#include <fcntl.h>
|
|
+#include <libgen.h>
|
|
+#include <limits.h>
|
|
+
|
|
+#include "sm.h"
|
|
+#include "dpp_ucc.h"
|
|
+#include "nl_ucc.h"
|
|
+
|
|
+#define MODULE_ID LOG_MODULE_ID_MAIN
|
|
+
|
|
+/* new part */
|
|
+typedef struct
|
|
+{
|
|
+ bool initialized;
|
|
+
|
|
+ /* Structure containing cloud request timer params */
|
|
+ sm_stats_request_t request;
|
|
+ /* Structure pointing to upper layer video/voice storage */
|
|
+ dpp_ucc_report_data_t report;
|
|
+
|
|
+ /* Reporting start timestamp used for reporting timestamp calculation */
|
|
+ uint64_t report_ts;
|
|
+} sm_ucc_ctx_t;
|
|
+
|
|
+/* Common place holder for all video/voice stat report contexts */
|
|
+static sm_ucc_ctx_t g_sm_ucc_ctx;
|
|
+
|
|
+/******************************************************************************
|
|
+ * PROTECTED definitions
|
|
+ *****************************************************************************/
|
|
+static
|
|
+void sm_ucc_report(struct wc_capture_buf *rbuf)
|
|
+{
|
|
+ sm_ucc_ctx_t *ucc_ctx = &g_sm_ucc_ctx;
|
|
+
|
|
+ dpp_ucc_report_data_t *report_ctx = &ucc_ctx->report;
|
|
+ sm_stats_request_t *request_ctx = &ucc_ctx->request;
|
|
+ struct sip_call_start *SipCallStart = NULL;
|
|
+ struct sip_call_end *SipCallEnd = NULL;
|
|
+ struct sip_call_report *SipCallReport = NULL;
|
|
+
|
|
+ /* Get ucc stats */
|
|
+
|
|
+ /* Report_timestamp is base-timestamp + relative start time offset */
|
|
+ report_ctx->timestamp_ms =
|
|
+ request_ctx->reporting_timestamp - ucc_ctx->report_ts +
|
|
+ get_timestamp();
|
|
+
|
|
+ switch (rbuf->Type)
|
|
+ {
|
|
+ case PKT_TYPE_CALL_START:
|
|
+ report_ctx->type = PKT_TYPE_CALL_START;
|
|
+ SipCallStart = (struct sip_call_start *)&rbuf->Buffer[0];
|
|
+ report_ctx->record.sip_call_start.clt_mac[0] = rbuf->staMac[0];
|
|
+ report_ctx->record.sip_call_start.clt_mac[1] = rbuf->staMac[1];
|
|
+ report_ctx->record.sip_call_start.clt_mac[2] = rbuf->staMac[2];
|
|
+ report_ctx->record.sip_call_start.clt_mac[3] = rbuf->staMac[3];
|
|
+ report_ctx->record.sip_call_start.clt_mac[4] = rbuf->staMac[4];
|
|
+ report_ctx->record.sip_call_start.clt_mac[5] = rbuf->staMac[5];
|
|
+
|
|
+ report_ctx->record.sip_call_start.session_id = SipCallStart->SessionId;
|
|
+ memcpy(&(report_ctx->record.sip_call_start.codecs[0][0]),
|
|
+ &(SipCallStart->Codecs[0][0]), 450 );
|
|
+ memcpy( &(report_ctx->record.sip_call_start.provider_domain[0]),
|
|
+ &(SipCallStart->Url[0]), 50 );
|
|
+
|
|
+ break;
|
|
+
|
|
+ case PKT_TYPE_CALL_STOP:
|
|
+ report_ctx->type = PKT_TYPE_CALL_STOP;
|
|
+
|
|
+ SipCallEnd = (struct sip_call_end *)&rbuf->Buffer[0];
|
|
+
|
|
+ report_ctx->record.sip_call_stop.clt_mac[0] = rbuf->staMac[0];
|
|
+ report_ctx->record.sip_call_stop.clt_mac[1] = rbuf->staMac[1];
|
|
+ report_ctx->record.sip_call_stop.clt_mac[2] = rbuf->staMac[2];
|
|
+ report_ctx->record.sip_call_stop.clt_mac[3] = rbuf->staMac[3];
|
|
+ report_ctx->record.sip_call_stop.clt_mac[4] = rbuf->staMac[4];
|
|
+ report_ctx->record.sip_call_stop.clt_mac[5] = rbuf->staMac[5];
|
|
+ report_ctx->record.sip_call_stop.reason = SipCallEnd->Reason;
|
|
+
|
|
+ report_ctx->record.sip_call_stop.session_id = SipCallEnd->SessionId;
|
|
+
|
|
+ /* Stats Currently unimplemented */
|
|
+ report_ctx->record.sip_call_stop.call_duration = 0;
|
|
+ report_ctx->record.sip_call_stop.stats.direction = 0;
|
|
+ report_ctx->record.sip_call_stop.stats.type = 0;
|
|
+ report_ctx->record.sip_call_stop.stats.latency = 0;
|
|
+ report_ctx->record.sip_call_stop.stats.jitter = 0;
|
|
+ report_ctx->record.sip_call_stop.stats.packet_loss_percent = 0;
|
|
+ report_ctx->record.sip_call_stop.stats.packet_loss_consec = 0;
|
|
+ report_ctx->record.sip_call_stop.stats.codec = 0;
|
|
+ report_ctx->record.sip_call_stop.stats.MOSx100 = 0;
|
|
+ report_ctx->record.sip_call_stop.stats.total_packets_sent = 0;
|
|
+ report_ctx->record.sip_call_stop.stats.total_packets_lost = 0;
|
|
+ report_ctx->record.sip_call_stop.stats.rtp_seq_first = 0;
|
|
+ report_ctx->record.sip_call_stop.stats.rtp_seq_last = 0;
|
|
+ report_ctx->record.sip_call_stop.stats.stats_idx = 0;
|
|
+ break;
|
|
+
|
|
+ case PKT_TYPE_CALL_REPORT:
|
|
+ report_ctx->type = PKT_TYPE_CALL_REPORT;
|
|
+
|
|
+ SipCallReport = (struct sip_call_report *)&rbuf->Buffer[0];
|
|
+
|
|
+ report_ctx->record.sip_call_report.clt_mac[0] = rbuf->staMac[0];
|
|
+ report_ctx->record.sip_call_report.clt_mac[1] = rbuf->staMac[1];
|
|
+ report_ctx->record.sip_call_report.clt_mac[2] = rbuf->staMac[2];
|
|
+ report_ctx->record.sip_call_report.clt_mac[3] = rbuf->staMac[3];
|
|
+ report_ctx->record.sip_call_report.clt_mac[4] = rbuf->staMac[4];
|
|
+ report_ctx->record.sip_call_report.clt_mac[5] = rbuf->staMac[5];
|
|
+ report_ctx->record.sip_call_report.stats.latency = SipCallReport->Latency;
|
|
+ report_ctx->record.sip_call_report.stats.jitter = SipCallReport->Jitter;
|
|
+ report_ctx->record.sip_call_report.stats.packet_loss_consec = SipCallReport->PacketLoss;
|
|
+ report_ctx->record.sip_call_report.stats.MOSx100 = SipCallReport->Mos;
|
|
+
|
|
+ break;
|
|
+ default:
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ dpp_put_ucc(report_ctx);
|
|
+
|
|
+clean:
|
|
+
|
|
+ SM_SANITY_CHECK_TIME(report_ctx->timestamp_ms,
|
|
+ &request_ctx->reporting_timestamp,
|
|
+ &ucc_ctx->report_ts);
|
|
+}
|
|
+
|
|
+/* Netlink functions */
|
|
+static unsigned int mcgroups; /* Mask of groups */
|
|
+
|
|
+static void prep_nl_sock(struct nl_sock** nlsock)
|
|
+{
|
|
+ int family_id, grp_id;
|
|
+ unsigned int bit = 0;
|
|
+ mcgroups |= 1 << (0); //group 0 Kir-change
|
|
+
|
|
+ *nlsock = nl_socket_alloc();
|
|
+ if(!*nlsock) {
|
|
+ fprintf(stderr, "Unable to alloc nl socket!\n");
|
|
+ exit(EXIT_FAILURE);
|
|
+ }
|
|
+
|
|
+ /* disable seq checks on multicast sockets */
|
|
+ nl_socket_disable_seq_check(*nlsock);
|
|
+ nl_socket_disable_auto_ack(*nlsock);
|
|
+
|
|
+ /* connect to genl */
|
|
+ if (genl_connect(*nlsock)) {
|
|
+ fprintf(stderr, "Unable to connect to genl!\n");
|
|
+ goto exit_err;
|
|
+ }
|
|
+
|
|
+ /* resolve the generic nl family id*/
|
|
+ family_id = genl_ctrl_resolve(*nlsock, GENL_UCC_FAMILY_NAME);
|
|
+ if(family_id < 0){
|
|
+ fprintf(stderr, "Unable to resolve family name!\n");
|
|
+ goto exit_err;
|
|
+ }
|
|
+
|
|
+ if (!mcgroups)
|
|
+ return;
|
|
+
|
|
+ while (bit < sizeof(unsigned int)) {
|
|
+ if (!(mcgroups & (1 << bit)))
|
|
+ goto next;
|
|
+
|
|
+ grp_id = genl_ctrl_resolve_grp(*nlsock, GENL_UCC_FAMILY_NAME,
|
|
+ genl_ucc_mcgrp_names[bit]);
|
|
+
|
|
+ if (grp_id < 0) {
|
|
+ fprintf(stderr, "Unable to resolve group name for %u!\n",
|
|
+ (1 << bit));
|
|
+ goto exit_err;
|
|
+ }
|
|
+ if (nl_socket_add_membership(*nlsock, grp_id)) {
|
|
+ fprintf(stderr, "Unable to join group %u!\n",
|
|
+ (1 << bit));
|
|
+ goto exit_err;
|
|
+ }
|
|
+next:
|
|
+ bit++;
|
|
+ }
|
|
+
|
|
+ return;
|
|
+
|
|
+exit_err:
|
|
+ nl_socket_free(*nlsock);
|
|
+ exit(EXIT_FAILURE);
|
|
+}
|
|
+
|
|
+static int print_rx_msg(struct nl_msg *msg, void* arg)
|
|
+{
|
|
+ struct nlattr *attr[GENL_UCC_ATTR_MAX+1];
|
|
+
|
|
+ struct wc_capture_buf *rbuf;
|
|
+
|
|
+ genlmsg_parse(nlmsg_hdr(msg), 0, attr,
|
|
+ GENL_UCC_ATTR_MAX, genl_ucc_policy);
|
|
+
|
|
+ rbuf = (struct wc_capture_buf *)nla_data(attr[GENL_UCC_ATTR_MSG]);
|
|
+
|
|
+ if (!attr[GENL_UCC_ATTR_MSG]) {
|
|
+ fprintf(stdout, "Kernel sent empty message!!\n");
|
|
+ return NL_OK;
|
|
+ }
|
|
+
|
|
+ sm_ucc_report(rbuf);
|
|
+
|
|
+ return NL_OK;
|
|
+}
|
|
+
|
|
+static int skip_seq_check(struct nl_msg *msg, void *arg)
|
|
+{
|
|
+ return NL_OK;
|
|
+}
|
|
+
|
|
+static ev_io ucc_io;
|
|
+struct nl_sock *nlsock;
|
|
+
|
|
+static void nl_event(struct ev_loop *ev, struct ev_io *io, int event)
|
|
+{
|
|
+ struct nl_cb *cb = NULL;
|
|
+ /* prep the cb */
|
|
+ cb = nl_cb_alloc(NL_CB_DEFAULT);
|
|
+ nl_cb_set(cb, NL_CB_SEQ_CHECK, NL_CB_CUSTOM, skip_seq_check, NULL);
|
|
+ nl_cb_set(cb, NL_CB_VALID, NL_CB_CUSTOM, print_rx_msg, NULL);
|
|
+ nl_recvmsgs(nlsock, cb);
|
|
+
|
|
+ nl_cb_put(cb);
|
|
+
|
|
+}
|
|
+
|
|
+void netlink_listen(void) {
|
|
+
|
|
+ struct ev_loop *ucc_evloop = EV_DEFAULT;
|
|
+
|
|
+ prep_nl_sock(&nlsock);
|
|
+
|
|
+ ev_io_init(&ucc_io, nl_event, nlsock->s_fd, EV_READ);
|
|
+ ev_io_start(ucc_evloop, &ucc_io);
|
|
+
|
|
+// nl_socket_free(nlsock);
|
|
+}
|
|
+
|
|
+/******************************************************************************
|
|
+ * PUBLIC API definitions
|
|
+ *****************************************************************************/
|
|
+bool ucc_report_request(
|
|
+ sm_stats_request_t *request)
|
|
+{
|
|
+ sm_ucc_ctx_t *ucc_ctx = &g_sm_ucc_ctx;
|
|
+ sm_stats_request_t *request_ctx = &ucc_ctx->request;
|
|
+ dpp_ucc_report_data_t *report_ctx = &ucc_ctx->report;
|
|
+
|
|
+ if (NULL == request) {
|
|
+ LOG(ERR,
|
|
+ "Initializing ucc reporting "
|
|
+ "(Invalid request config)");
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ /* Initialize global stats only once */
|
|
+ if (!ucc_ctx->initialized) {
|
|
+ memset(request_ctx, 0, sizeof(*request_ctx));
|
|
+ memset(report_ctx, 0, sizeof(*report_ctx));
|
|
+
|
|
+ LOG(INFO,
|
|
+ "Initializing ucc reporting");
|
|
+
|
|
+ netlink_listen();
|
|
+
|
|
+ ucc_ctx->initialized = true;
|
|
+ }
|
|
+
|
|
+ /* Store and compare every request parameter ...
|
|
+ memcpy would be easier but we want some debug info
|
|
+ */
|
|
+ REQUEST_VAL_UPDATE("ucc", reporting_count, "%d");
|
|
+ REQUEST_VAL_UPDATE("ucc", reporting_interval, "%d");
|
|
+ REQUEST_VAL_UPDATE("ucc", reporting_timestamp, "%"PRIu64"");
|
|
+
|
|
+
|
|
+ return true;
|
|
+}
|
|
--- a/src/sm/unit.mk
|
|
+++ b/src/sm/unit.mk
|
|
@@ -44,6 +44,7 @@ UNIT_SRC += src/sm_radio_config.c
|
|
UNIT_SRC += src/sm_scan_schedule.c
|
|
UNIT_SRC += src/sm_rssi_report.c
|
|
UNIT_SRC += src/sm_network_probe_report.c
|
|
+UNIT_SRC += src/ucc_report.c
|
|
UNIT_SRC += src/sm_common.c
|
|
|
|
ifeq ($(CONFIG_SM_CAPACITY_QUEUE_STATS),y)
|
|
--- a/interfaces/opensync.ovsschema
|
|
+++ b/interfaces/opensync.ovsschema
|
|
@@ -4670,7 +4670,8 @@
|
|
"device",
|
|
"rssi",
|
|
"steering",
|
|
- "network_probe"
|
|
+ "network_probe",
|
|
+ "video_voice"
|
|
]
|
|
]
|
|
}
|