Index: opensync-2.0.5.0/src/lib/datapipeline/inc/dpp_network_probe.h =================================================================== --- opensync-2.0.5.0.orig/src/lib/datapipeline/inc/dpp_network_probe.h +++ opensync-2.0.5.0/src/lib/datapipeline/inc/dpp_network_probe.h @@ -5,7 +5,7 @@ #include "ds_dlist.h" #include "dpp_types.h" - +#define DPP_RADIUS_SERVERS_MAX 24 #define MAX_IP_ADDR_SIZE 16 #define MAX_IF_NAME_SIZE 16 typedef enum @@ -29,17 +29,6 @@ typedef struct char vlanIF[MAX_IF_NAME_SIZE]; StateUpDown_t dhcpState; uint32_t dhcpLatency; - StateUpDown_t dnsState; - uint32_t dnsLatency; - StateUpDown_t obsV200_radiusState; - uint32_t obsV200_radiusLatency; - dpp_dns_metrics_t dnsProbeResults; - uint32_t dur_vlanIF; - uint32_t dur_dhcpState; - uint32_t dur_dhcpLatency; - uint32_t dur_dnsState; - uint32_t dur_dnsLatency; - uint32_t dur_dnsReport; } dpp_vlan_metrics_t; @@ -47,29 +36,42 @@ typedef struct typedef struct { char serverIP[MAX_IP_ADDR_SIZE]; - uint32_t noAnswer; - uint32_t latencyMin; - uint32_t latencyMax; - uint32_t latencyAve; - - // -- duration - uint32_t dur_serverIP; //category Network - uint32_t dur_noAnswer; //category Network - uint32_t dur_latencyMin; //category Network - uint32_t dur_latencyMax; //category Network - uint32_t dur_latencyAve; //category Network + StateUpDown_t radiusState; + uint32_t latency; + ds_dlist_node_t node; } dpp_radius_metrics_t; +static inline dpp_radius_metrics_t * dpp_radius_metrics_record_alloc() +{ + dpp_radius_metrics_t *record = NULL; + + record = malloc(sizeof(dpp_radius_metrics_t)); + if (record) + { + memset(record, 0, sizeof(dpp_radius_metrics_t)); + } + + return record; +} + +static inline void dpp_radius_metrics_record_free(dpp_radius_metrics_t *record) +{ + if (NULL != record) + { + free(record); + } +} + typedef struct { dpp_dns_metrics_t dns_probe; dpp_vlan_metrics_t vlan_probe; - dpp_radius_metrics_t radius_probe; } dpp_network_probe_record_t; typedef struct { + ds_dlist_t radius_probe; dpp_network_probe_record_t record; uint64_t timestamp_ms; } dpp_network_probe_report_data_t; Index: opensync-2.0.5.0/src/lib/target/inc/target_common.h =================================================================== --- opensync-2.0.5.0.orig/src/lib/target/inc/target_common.h +++ opensync-2.0.5.0/src/lib/target/inc/target_common.h @@ -564,6 +564,7 @@ bool target_stats_scan_get( * NETWORK PROBE definitions *****************************************************************************/ bool target_stats_network_probe_get(dpp_network_probe_record_t *network_probe_report); +bool target_stats_radius_probe_get(struct schema_Wifi_VIF_State schema, dpp_radius_metrics_t *radius_probe_report); /****************************************************************************** * DEVICE definitions Index: opensync-2.0.5.0/src/sm/src/sm_network_probe_report.c =================================================================== --- opensync-2.0.5.0.orig/src/sm/src/sm_network_probe_report.c +++ opensync-2.0.5.0/src/sm/src/sm_network_probe_report.c @@ -82,6 +82,24 @@ bool dpp_network_probe_report_timer_set( return true; } +static +bool sm_radius_list_clear ( + ds_dlist_t *radius_list) +{ + dpp_radius_metrics_t *record = NULL; + ds_dlist_iter_t record_iter; + + for ( record = ds_dlist_ifirst(&record_iter, radius_list); + record != NULL; + record = ds_dlist_inext(&record_iter)) + { + ds_dlist_iremove(&record_iter); + dpp_radius_metrics_record_free(record); + record = NULL; + } + + return true; +} static bool dpp_network_probe_report_timer_restart( @@ -128,6 +146,32 @@ void sm_network_probe_report (EV_P_ ev_t dpp_network_probe_report_timer_restart(report_timer); + ds_tree_t *vifs = sm_vifs_get(); + sm_vif_state_t *vif; + dpp_radius_metrics_t *temp; + + ds_tree_foreach(vifs, vif) + { + temp = NULL; + temp = + dpp_radius_metrics_record_alloc(); + if (NULL == temp) { + goto clean; + } + + rc = + target_stats_radius_probe_get ( + vif->schema, + temp); + if (true != rc) { + dpp_radius_metrics_record_free(temp); + continue; + } + + /* Add radius config to report */ + ds_dlist_insert_tail(&report_ctx->radius_probe, temp); + } + /* Get network probe stats */ rc = target_stats_network_probe_get ( @@ -149,6 +193,10 @@ void sm_network_probe_report (EV_P_ ev_t sm_timestamp_ms_to_date(report_ctx->timestamp_ms), report_ctx->record.dns_probe.latency); dpp_put_network_probe(report_ctx); + +clean: + /* Clear radius list */ + sm_radius_list_clear(&report_ctx->radius_probe); } @@ -183,6 +231,10 @@ bool sm_network_probe_report_request( LOG(INFO, "Initializing network probe reporting"); + ds_dlist_init( + &report_ctx->radius_probe, + dpp_radius_metrics_t, + node); /* Initialize event lib timers and pass the global internal cache */ @@ -211,6 +263,7 @@ bool sm_network_probe_report_request( } else { LOG(INFO, "Stopped network probe reporting"); + sm_radius_list_clear(&report_ctx->radius_probe); memset(request_ctx, 0, sizeof(*request_ctx)); } Index: opensync-2.0.5.0/src/sm/src/sm.h =================================================================== --- opensync-2.0.5.0.orig/src/sm/src/sm.h +++ opensync-2.0.5.0/src/sm/src/sm.h @@ -303,6 +303,7 @@ typedef struct } sm_stats_config_t; ds_tree_t *sm_radios_get(); +ds_tree_t *sm_vifs_get(); void sm_vif_whitelist_get(char **mac_list, uint16_t *mac_size, uint16_t *mac_qty); Index: opensync-2.0.5.0/interfaces/opensync_stats.proto =================================================================== --- opensync-2.0.5.0.orig/interfaces/opensync_stats.proto +++ opensync-2.0.5.0/interfaces/opensync_stats.proto @@ -511,13 +511,13 @@ message RssiReport { // // Network probe parameters // -//////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// enum StateUpDown { SUD_down = 0; SUD_up = 1; SUD_error = 2; } - + message DNSProbeMetric { optional string serverIP = 1; optional StateUpDown state = 2; // State of the server @@ -527,44 +527,20 @@ message DNSProbeMetric { message VLANMetrics { optional string vlanIF = 1; // The name of the interface (ie: brtrunk.100) optional StateUpDown dhcpState = 2; // The state of the DHCP server according to that vlan - optional uint32 dhcpLatency = 3; - optional StateUpDown dnsState = 4; // The state of the DNS server according to that vlan - optional uint32 dnsLatency = 5; - optional StateUpDown obsV200_radiusState = 6; // The state of the Radius server according to that vlan - optional uint32 obsV200_radiusLatency = 7; - repeated DNSProbeMetric dnsProbeResults = 8; // ver=1300 - - // -- duration - optional uint32 dur_vlanIF = 501; //category Network - optional uint32 dur_dhcpState = 502; //category Network - optional uint32 dur_dhcpLatency = 503; //category Network - optional uint32 dur_dnsState = 504; //category Network - optional uint32 dur_dnsLatency = 505; //category Network - // optional uint32 obsV200_dur_radiusState = 506; - // optional uint32 obsV200_dur_radiusLatency = 507; - optional uint32 dur_dnsReport = 508; + optional uint32 latency = 3; } message RADIUSMetrics { - optional bytes serverIP = 1; - optional uint32 noAnswer = 2; - optional uint32 latencyMin = 3; - optional uint32 latencyMax = 4; - optional uint32 latencyAve = 5; - - // -- duration - optional uint32 dur_serverIP = 501; //category Network - optional uint32 dur_noAnswer = 502; //category Network - optional uint32 dur_latencyMin = 503; //category Network - optional uint32 dur_latencyMax = 504; //category Network - optional uint32 dur_latencyAve = 505; //category Network + optional string serverIP = 1; + optional StateUpDown radiusState = 2; + optional uint32 latency = 3; } message NetworkProbe { optional DNSProbeMetric dns_probe = 1; optional VLANMetrics vlan_probe = 2; - optional RADIUSMetrics radius_probe = 3; + repeated RADIUSMetrics radius_probe = 3; optional uint64 timestamp_ms = 4; } //////////////////////////////////////////////////////////////////////////////// Index: opensync-2.0.5.0/src/lib/datapipeline/inc/opensync_stats.pb-c.h =================================================================== --- opensync-2.0.5.0.orig/src/lib/datapipeline/inc/opensync_stats.pb-c.h +++ opensync-2.0.5.0/src/lib/datapipeline/inc/opensync_stats.pb-c.h @@ -177,7 +177,7 @@ typedef enum _Sts__DiffType { /* * ////////////////////////////////////////////////////////////////////////////// * Network probe parameters - * ////////////////////////////////////////////////////////////////////////////// + * ///////////////////////////////////////////////////////////////////////////// */ typedef enum _Sts__StateUpDown { STS__STATE_UP_DOWN__SUD_down = 0, @@ -1033,112 +1033,26 @@ struct _Sts__VLANMetrics */ protobuf_c_boolean has_dhcpstate; Sts__StateUpDown dhcpstate; - protobuf_c_boolean has_dhcplatency; - uint32_t dhcplatency; - /* - * The state of the DNS server according to that vlan - */ - protobuf_c_boolean has_dnsstate; - Sts__StateUpDown dnsstate; - protobuf_c_boolean has_dnslatency; - uint32_t dnslatency; - /* - * The state of the Radius server according to that vlan - */ - protobuf_c_boolean has_obsv200_radiusstate; - Sts__StateUpDown obsv200_radiusstate; - protobuf_c_boolean has_obsv200_radiuslatency; - uint32_t obsv200_radiuslatency; - /* - * ver=1300 - */ - size_t n_dnsproberesults; - Sts__DNSProbeMetric **dnsproberesults; - /* - * -- duration - */ - /* - *category Network - */ - protobuf_c_boolean has_dur_vlanif; - uint32_t dur_vlanif; - /* - *category Network - */ - protobuf_c_boolean has_dur_dhcpstate; - uint32_t dur_dhcpstate; - /* - *category Network - */ - protobuf_c_boolean has_dur_dhcplatency; - uint32_t dur_dhcplatency; - /* - *category Network - */ - protobuf_c_boolean has_dur_dnsstate; - uint32_t dur_dnsstate; - /* - *category Network - */ - protobuf_c_boolean has_dur_dnslatency; - uint32_t dur_dnslatency; - /* - * optional uint32 obsV200_dur_radiusState = 506; - * optional uint32 obsV200_dur_radiusLatency = 507; - */ - protobuf_c_boolean has_dur_dnsreport; - uint32_t dur_dnsreport; + protobuf_c_boolean has_latency; + uint32_t latency; }; #define STS__VLANMETRICS__INIT \ { PROTOBUF_C_MESSAGE_INIT (&sts__vlanmetrics__descriptor) \ - , NULL, 0, STS__STATE_UP_DOWN__SUD_down, 0, 0, 0, STS__STATE_UP_DOWN__SUD_down, 0, 0, 0, STS__STATE_UP_DOWN__SUD_down, 0, 0, 0,NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } + , NULL, 0, STS__STATE_UP_DOWN__SUD_down, 0, 0 } struct _Sts__RADIUSMetrics { ProtobufCMessage base; - protobuf_c_boolean has_serverip; - ProtobufCBinaryData serverip; - protobuf_c_boolean has_noanswer; - uint32_t noanswer; - protobuf_c_boolean has_latencymin; - uint32_t latencymin; - protobuf_c_boolean has_latencymax; - uint32_t latencymax; - protobuf_c_boolean has_latencyave; - uint32_t latencyave; - /* - * -- duration - */ - /* - *category Network - */ - protobuf_c_boolean has_dur_serverip; - uint32_t dur_serverip; - /* - *category Network - */ - protobuf_c_boolean has_dur_noanswer; - uint32_t dur_noanswer; - /* - *category Network - */ - protobuf_c_boolean has_dur_latencymin; - uint32_t dur_latencymin; - /* - *category Network - */ - protobuf_c_boolean has_dur_latencymax; - uint32_t dur_latencymax; - /* - *category Network - */ - protobuf_c_boolean has_dur_latencyave; - uint32_t dur_latencyave; + char *serverip; + protobuf_c_boolean has_radiusstate; + Sts__StateUpDown radiusstate; + protobuf_c_boolean has_latency; + uint32_t latency; }; #define STS__RADIUSMETRICS__INIT \ { PROTOBUF_C_MESSAGE_INIT (&sts__radiusmetrics__descriptor) \ - , 0, {0,NULL}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } + , NULL, 0, STS__STATE_UP_DOWN__SUD_down, 0, 0 } struct _Sts__NetworkProbe @@ -1146,13 +1060,14 @@ struct _Sts__NetworkProbe ProtobufCMessage base; Sts__DNSProbeMetric *dns_probe; Sts__VLANMetrics *vlan_probe; - Sts__RADIUSMetrics *radius_probe; + size_t n_radius_probe; + Sts__RADIUSMetrics **radius_probe; protobuf_c_boolean has_timestamp_ms; uint64_t timestamp_ms; }; #define STS__NETWORK_PROBE__INIT \ { PROTOBUF_C_MESSAGE_INIT (&sts__network_probe__descriptor) \ - , NULL, NULL, NULL, 0, 0 } + , NULL, NULL, 0,NULL, 0, 0 } /* Index: opensync-2.0.5.0/src/lib/datapipeline/src/dppline.c =================================================================== --- opensync-2.0.5.0.orig/src/lib/datapipeline/src/dppline.c +++ opensync-2.0.5.0/src/lib/datapipeline/src/dppline.c @@ -93,6 +93,7 @@ typedef struct typedef struct dpp_network_probe_stats { + dpp_radius_metrics_t *list; dpp_network_probe_record_t record; uint32_t qty; uint64_t timestamp_ms; @@ -231,6 +232,7 @@ static void dppline_free_stat(dppline_st free(s->u.rssi.list); break; case DPP_T_NETWORK_PROBE: + free(s->u.network_probe.list); break; default:; } @@ -646,9 +648,38 @@ static bool dppline_copysts(dppline_stat case DPP_T_NETWORK_PROBE: { dpp_network_probe_report_data_t *report_data = sts; + dpp_radius_metrics_t *result_entry = NULL; + ds_dlist_iter_t result_iter; + + memcpy(&dst->u.network_probe.record.dns_probe, &report_data->record.dns_probe, sizeof(dpp_dns_metrics_t)); memcpy(&dst->u.network_probe.record.vlan_probe, &report_data->record.vlan_probe, sizeof(dpp_vlan_metrics_t)); dst->u.network_probe.timestamp_ms = report_data->timestamp_ms; + + /* Loop through linked list of results and copy them to dppline buffer */ + + dst->u.network_probe.qty = 0; + for ( result_entry = ds_dlist_ifirst(&result_iter, &report_data->radius_probe); + result_entry != NULL; + result_entry = ds_dlist_inext(&result_iter)) + { + size = (dst->u.network_probe.qty + 1) * sizeof(dpp_radius_metrics_t); + if (!dst->u.network_probe.qty) + { + dst->u.network_probe.list = calloc(1, size); + } + else + { + dst->u.network_probe.list = realloc(dst->u.network_probe.list, size); + memset(&dst->u.network_probe.list[dst->u.network_probe.qty], + 0, + sizeof(dpp_radius_metrics_t)); + } + memcpy(&dst->u.network_probe.list[dst->u.network_probe.qty++], + result_entry, + sizeof(dpp_radius_metrics_t)); + } + } break; default: @@ -1628,9 +1659,30 @@ static void dppline_add_stat_network_pro size += strlen(network_probe->record.vlan_probe.vlanIF) + 1; sr->vlan_probe->dhcpstate = network_probe->record.vlan_probe.dhcpState; sr->vlan_probe->has_dhcpstate = true; - sr->vlan_probe->dhcplatency = network_probe->record.vlan_probe.dhcpLatency; - sr->vlan_probe->has_dhcplatency = true; + sr->vlan_probe->latency = network_probe->record.vlan_probe.dhcpLatency; + sr->vlan_probe->has_latency = true; + if (network_probe->qty > 0) + { + sr->radius_probe = malloc(network_probe->qty * sizeof(*sr->radius_probe)); + size += network_probe->qty * sizeof(*sr->radius_probe); + assert(sr->radius_probe); + } + sr->n_radius_probe = network_probe->qty; + for (uint i = 0; i < network_probe->qty; i++) + { + sr->radius_probe[i] = malloc(sizeof(**sr->radius_probe)); + size += sizeof(**sr->radius_probe); + assert(sr->radius_probe[i]); + sts__radiusmetrics__init(sr->radius_probe[i]); + + sr->radius_probe[i]->serverip = strdup(network_probe->list[i].serverIP); + size += strlen(network_probe->list[i].serverIP) + 1; + sr->radius_probe[i]->radiusstate = network_probe->list[i].radiusState; + sr->radius_probe[i]->has_radiusstate = true; + sr->radius_probe[i]->latency = network_probe->list[i].latency; + sr->radius_probe[i]->has_latency = true; + } } static void dppline_add_stat_bs_client(Sts__Report * r, dppline_stats_t * s) Index: opensync-2.0.5.0/src/lib/datapipeline/src/opensync_stats.pb-c.c =================================================================== --- opensync-2.0.5.0.orig/src/lib/datapipeline/src/opensync_stats.pb-c.c +++ opensync-2.0.5.0/src/lib/datapipeline/src/opensync_stats.pb-c.c @@ -4612,7 +4612,7 @@ const ProtobufCMessageDescriptor sts__dn (ProtobufCMessageInit) sts__dnsprobe_metric__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor sts__vlanmetrics__field_descriptors[14] = +static const ProtobufCFieldDescriptor sts__vlanmetrics__field_descriptors[3] = { { "vlanIF", @@ -4639,144 +4639,12 @@ static const ProtobufCFieldDescriptor st 0,NULL,NULL /* reserved1,reserved2, etc */ }, { - "dhcpLatency", + "latency", 3, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__VLANMetrics, has_dhcplatency), - offsetof(Sts__VLANMetrics, dhcplatency), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dnsState", - 4, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_ENUM, - offsetof(Sts__VLANMetrics, has_dnsstate), - offsetof(Sts__VLANMetrics, dnsstate), - &sts__state_up_down__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dnsLatency", - 5, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__VLANMetrics, has_dnslatency), - offsetof(Sts__VLANMetrics, dnslatency), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "obsV200_radiusState", - 6, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_ENUM, - offsetof(Sts__VLANMetrics, has_obsv200_radiusstate), - offsetof(Sts__VLANMetrics, obsv200_radiusstate), - &sts__state_up_down__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "obsV200_radiusLatency", - 7, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__VLANMetrics, has_obsv200_radiuslatency), - offsetof(Sts__VLANMetrics, obsv200_radiuslatency), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dnsProbeResults", - 8, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Sts__VLANMetrics, n_dnsproberesults), - offsetof(Sts__VLANMetrics, dnsproberesults), - &sts__dnsprobe_metric__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dur_vlanIF", - 501, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__VLANMetrics, has_dur_vlanif), - offsetof(Sts__VLANMetrics, dur_vlanif), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dur_dhcpState", - 502, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__VLANMetrics, has_dur_dhcpstate), - offsetof(Sts__VLANMetrics, dur_dhcpstate), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dur_dhcpLatency", - 503, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__VLANMetrics, has_dur_dhcplatency), - offsetof(Sts__VLANMetrics, dur_dhcplatency), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dur_dnsState", - 504, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__VLANMetrics, has_dur_dnsstate), - offsetof(Sts__VLANMetrics, dur_dnsstate), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dur_dnsLatency", - 505, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__VLANMetrics, has_dur_dnslatency), - offsetof(Sts__VLANMetrics, dur_dnslatency), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dur_dnsReport", - 508, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__VLANMetrics, has_dur_dnsreport), - offsetof(Sts__VLANMetrics, dur_dnsreport), + offsetof(Sts__VLANMetrics, has_latency), + offsetof(Sts__VLANMetrics, latency), NULL, NULL, 0, /* flags */ @@ -4784,27 +4652,14 @@ static const ProtobufCFieldDescriptor st }, }; static const unsigned sts__vlanmetrics__field_indices_by_name[] = { - 2, /* field[2] = dhcpLatency */ 1, /* field[1] = dhcpState */ - 4, /* field[4] = dnsLatency */ - 7, /* field[7] = dnsProbeResults */ - 3, /* field[3] = dnsState */ - 10, /* field[10] = dur_dhcpLatency */ - 9, /* field[9] = dur_dhcpState */ - 12, /* field[12] = dur_dnsLatency */ - 13, /* field[13] = dur_dnsReport */ - 11, /* field[11] = dur_dnsState */ - 8, /* field[8] = dur_vlanIF */ - 6, /* field[6] = obsV200_radiusLatency */ - 5, /* field[5] = obsV200_radiusState */ + 2, /* field[2] = latency */ 0, /* field[0] = vlanIF */ }; -static const ProtobufCIntRange sts__vlanmetrics__number_ranges[3 + 1] = +static const ProtobufCIntRange sts__vlanmetrics__number_ranges[1 + 1] = { { 1, 0 }, - { 501, 8 }, - { 508, 13 }, - { 0, 14 } + { 0, 3 } }; const ProtobufCMessageDescriptor sts__vlanmetrics__descriptor = { @@ -4814,21 +4669,21 @@ const ProtobufCMessageDescriptor sts__vl "Sts__VLANMetrics", "sts", sizeof(Sts__VLANMetrics), - 14, + 3, sts__vlanmetrics__field_descriptors, sts__vlanmetrics__field_indices_by_name, - 3, sts__vlanmetrics__number_ranges, + 1, sts__vlanmetrics__number_ranges, (ProtobufCMessageInit) sts__vlanmetrics__init, NULL,NULL,NULL /* reserved[123] */ }; -static const ProtobufCFieldDescriptor sts__radiusmetrics__field_descriptors[10] = +static const ProtobufCFieldDescriptor sts__radiusmetrics__field_descriptors[3] = { { "serverIP", 1, PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_BYTES, - offsetof(Sts__RADIUSMetrics, has_serverip), + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ offsetof(Sts__RADIUSMetrics, serverip), NULL, NULL, @@ -4836,108 +4691,24 @@ static const ProtobufCFieldDescriptor st 0,NULL,NULL /* reserved1,reserved2, etc */ }, { - "noAnswer", + "radiusState", 2, PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__RADIUSMetrics, has_noanswer), - offsetof(Sts__RADIUSMetrics, noanswer), - NULL, + PROTOBUF_C_TYPE_ENUM, + offsetof(Sts__RADIUSMetrics, has_radiusstate), + offsetof(Sts__RADIUSMetrics, radiusstate), + &sts__state_up_down__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { - "latencyMin", + "latency", 3, PROTOBUF_C_LABEL_OPTIONAL, PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__RADIUSMetrics, has_latencymin), - offsetof(Sts__RADIUSMetrics, latencymin), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "latencyMax", - 4, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__RADIUSMetrics, has_latencymax), - offsetof(Sts__RADIUSMetrics, latencymax), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "latencyAve", - 5, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__RADIUSMetrics, has_latencyave), - offsetof(Sts__RADIUSMetrics, latencyave), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dur_serverIP", - 501, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__RADIUSMetrics, has_dur_serverip), - offsetof(Sts__RADIUSMetrics, dur_serverip), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dur_noAnswer", - 502, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__RADIUSMetrics, has_dur_noanswer), - offsetof(Sts__RADIUSMetrics, dur_noanswer), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dur_latencyMin", - 503, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__RADIUSMetrics, has_dur_latencymin), - offsetof(Sts__RADIUSMetrics, dur_latencymin), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dur_latencyMax", - 504, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__RADIUSMetrics, has_dur_latencymax), - offsetof(Sts__RADIUSMetrics, dur_latencymax), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dur_latencyAve", - 505, - PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_UINT32, - offsetof(Sts__RADIUSMetrics, has_dur_latencyave), - offsetof(Sts__RADIUSMetrics, dur_latencyave), + offsetof(Sts__RADIUSMetrics, has_latency), + offsetof(Sts__RADIUSMetrics, latency), NULL, NULL, 0, /* flags */ @@ -4945,22 +4716,14 @@ static const ProtobufCFieldDescriptor st }, }; static const unsigned sts__radiusmetrics__field_indices_by_name[] = { - 9, /* field[9] = dur_latencyAve */ - 8, /* field[8] = dur_latencyMax */ - 7, /* field[7] = dur_latencyMin */ - 6, /* field[6] = dur_noAnswer */ - 5, /* field[5] = dur_serverIP */ - 4, /* field[4] = latencyAve */ - 3, /* field[3] = latencyMax */ - 2, /* field[2] = latencyMin */ - 1, /* field[1] = noAnswer */ + 2, /* field[2] = latency */ + 1, /* field[1] = radiusState */ 0, /* field[0] = serverIP */ }; -static const ProtobufCIntRange sts__radiusmetrics__number_ranges[2 + 1] = +static const ProtobufCIntRange sts__radiusmetrics__number_ranges[1 + 1] = { { 1, 0 }, - { 501, 5 }, - { 0, 10 } + { 0, 3 } }; const ProtobufCMessageDescriptor sts__radiusmetrics__descriptor = { @@ -4970,10 +4733,10 @@ const ProtobufCMessageDescriptor sts__ra "Sts__RADIUSMetrics", "sts", sizeof(Sts__RADIUSMetrics), - 10, + 3, sts__radiusmetrics__field_descriptors, sts__radiusmetrics__field_indices_by_name, - 2, sts__radiusmetrics__number_ranges, + 1, sts__radiusmetrics__number_ranges, (ProtobufCMessageInit) sts__radiusmetrics__init, NULL,NULL,NULL /* reserved[123] */ }; @@ -5006,9 +4769,9 @@ static const ProtobufCFieldDescriptor st { "radius_probe", 3, - PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ + offsetof(Sts__NetworkProbe, n_radius_probe), offsetof(Sts__NetworkProbe, radius_probe), &sts__radiusmetrics__descriptor, NULL,