Names are bad because the MIB people don't like using "acct".
ALIAS radiusAuthServ .radiusMIB.radiusAuthentication.radiusAuthServMIB.radiusAuthServMIBObjects.radiusAuthServ
+ATTRIBUTE radiusAccounting 67.2 tlv
+ATTRIBUTE radiusAccServMIBObjects 67.2.1 tlv
+
+# radisAccServ is 1.3.6.1.2.1.67.2.1.1
+ATTRIBUTE radiusAccServ 67.2.1.1 tlv
+
+ATTRIBUTE radiusAccServIdent .1 string
+ATTRIBUTE radiusAccServUpTime .2 time_delta precision=centiseconds
+ATTRIBUTE radiusAccServResetTime .3 time_delta precision=centiseconds
+ATTRIBUTE radiusAccServConfigReset .4 uint32
+ATTRIBUTE radiusAccServTotalAccessRequests .5 uint32 counter
+ATTRIBUTE radiusAccServTotalInvalidRequests .6 uint32 counter
+ATTRIBUTE radiusAccServTotalDupRequests .7 uint32 counter
+ATTRIBUTE radiusAccServTotalResponses .8 uint32 counter
+ATTRIBUTE radiusAccServTotalMalformedAccessRequests .9 uint32 counter
+ATTRIBUTE radiusAccServTotalBadAuthenticators .10 uint32 counter
+ATTRIBUTE radiusAccServTotalPacketsDropped .11 uint32 counter
+ATTRIBUTE radiusAccServTotalNoRecords .12 uint32 counter
+ATTRIBUTE radiusAccServTotalUnknownTypes .13 uint32 counter
+#ATTRIBUTE radiusAccClientTable .14 tlv
+
+ALIAS radiusAccServ .radiusMIB.radiusAccounting.radiusAccServMIBObjects.radiusAccServ
+
END mib-2
fprintf(fp, "\n");
+ fprintf(fp, "/*\n * fr_stats_%s_%s_instance_t\n */\n", dict_name, parent_name);
fprintf(fp, "FR_STATS_TYPEDEF(%s_%s);\n\n", dict_name, parent_name);
fprintf(fp, "extern fr_stats_link_t const fr_stats_link_%s_%s;\n\n", dict_name, parent_name);
--- /dev/null
+{ .out = &attr_acc_serv, .name = "mib-2.radiusAccServ", .type = FR_TYPE_TLV, .dict = &dict_radius },
+{ .out = &attr_acc_serv_ident, .name = ".radiusAccServIdent", .type = FR_TYPE_STRING, .dict = &dict_radius },
+{ .out = &attr_acc_serv_up_time, .name = ".radiusAccServUpTime", .type = FR_TYPE_TIME_DELTA, .dict = &dict_radius },
+{ .out = &attr_acc_serv_reset_time, .name = ".radiusAccServResetTime", .type = FR_TYPE_TIME_DELTA, .dict = &dict_radius },
+{ .out = &attr_acc_serv_config_reset, .name = ".radiusAccServConfigReset", .type = FR_TYPE_UINT32, .dict = &dict_radius },
+{ .out = &attr_acc_serv_total_access_requests, .name = ".radiusAccServTotalAccessRequests", .type = FR_TYPE_UINT32, .dict = &dict_radius },
+{ .out = &attr_acc_serv_total_invalid_requests, .name = ".radiusAccServTotalInvalidRequests", .type = FR_TYPE_UINT32, .dict = &dict_radius },
+{ .out = &attr_acc_serv_total_dup_requests, .name = ".radiusAccServTotalDupRequests", .type = FR_TYPE_UINT32, .dict = &dict_radius },
+{ .out = &attr_acc_serv_total_responses, .name = ".radiusAccServTotalResponses", .type = FR_TYPE_UINT32, .dict = &dict_radius },
+{ .out = &attr_acc_serv_total_malformed_access_requests, .name = ".radiusAccServTotalMalformedAccessRequests", .type = FR_TYPE_UINT32, .dict = &dict_radius },
+{ .out = &attr_acc_serv_total_bad_authenticators, .name = ".radiusAccServTotalBadAuthenticators", .type = FR_TYPE_UINT32, .dict = &dict_radius },
+{ .out = &attr_acc_serv_total_packets_dropped, .name = ".radiusAccServTotalPacketsDropped", .type = FR_TYPE_UINT32, .dict = &dict_radius },
+{ .out = &attr_acc_serv_total_no_records, .name = ".radiusAccServTotalNoRecords", .type = FR_TYPE_UINT32, .dict = &dict_radius },
+{ .out = &attr_acc_serv_total_unknown_types, .name = ".radiusAccServTotalUnknownTypes", .type = FR_TYPE_UINT32, .dict = &dict_radius },
+
+
--- /dev/null
+static fr_dict_attr_t const *attr_acc_serv;
+static fr_dict_attr_t const *attr_acc_serv_ident;
+static fr_dict_attr_t const *attr_acc_serv_up_time;
+static fr_dict_attr_t const *attr_acc_serv_reset_time;
+static fr_dict_attr_t const *attr_acc_serv_config_reset;
+static fr_dict_attr_t const *attr_acc_serv_total_access_requests;
+static fr_dict_attr_t const *attr_acc_serv_total_invalid_requests;
+static fr_dict_attr_t const *attr_acc_serv_total_dup_requests;
+static fr_dict_attr_t const *attr_acc_serv_total_responses;
+static fr_dict_attr_t const *attr_acc_serv_total_malformed_access_requests;
+static fr_dict_attr_t const *attr_acc_serv_total_bad_authenticators;
+static fr_dict_attr_t const *attr_acc_serv_total_packets_dropped;
+static fr_dict_attr_t const *attr_acc_serv_total_no_records;
+static fr_dict_attr_t const *attr_acc_serv_total_unknown_types;
+
+
--- /dev/null
+fr_stats_link_t const fr_stats_link_radius_acc_serv = {
+ .name = "fr_stats_radius_acc_serv_t",
+ .root_p = &attr_acc_serv,
+ .mib = "1.3.6.1.2.1.67.2.1.1",
+ .size = sizeof(fr_stats_radius_acc_serv_t),
+ .num_elements = 13,
+ .entry = {
+ {
+ .da_p = &attr_acc_serv_ident,
+ .type = FR_TYPE_STRING,
+ .offset = offsetof(fr_stats_radius_acc_serv_t, ident),
+ .size = 0,
+ },
+ {
+ .da_p = &attr_acc_serv_up_time,
+ .type = FR_TYPE_TIME_DELTA,
+ .offset = offsetof(fr_stats_radius_acc_serv_t, up_time),
+ .size = 4,
+ },
+ {
+ .da_p = &attr_acc_serv_reset_time,
+ .type = FR_TYPE_TIME_DELTA,
+ .offset = offsetof(fr_stats_radius_acc_serv_t, reset_time),
+ .size = 4,
+ },
+ {
+ .da_p = &attr_acc_serv_config_reset,
+ .type = FR_TYPE_UINT32,
+ .offset = offsetof(fr_stats_radius_acc_serv_t, config_reset),
+ .size = 4,
+ },
+ {
+ .da_p = &attr_acc_serv_total_access_requests,
+ .type = FR_TYPE_UINT32,
+ .offset = offsetof(fr_stats_radius_acc_serv_t, total_access_requests),
+ .size = 4,
+ },
+ {
+ .da_p = &attr_acc_serv_total_invalid_requests,
+ .type = FR_TYPE_UINT32,
+ .offset = offsetof(fr_stats_radius_acc_serv_t, total_invalid_requests),
+ .size = 4,
+ },
+ {
+ .da_p = &attr_acc_serv_total_dup_requests,
+ .type = FR_TYPE_UINT32,
+ .offset = offsetof(fr_stats_radius_acc_serv_t, total_dup_requests),
+ .size = 4,
+ },
+ {
+ .da_p = &attr_acc_serv_total_responses,
+ .type = FR_TYPE_UINT32,
+ .offset = offsetof(fr_stats_radius_acc_serv_t, total_responses),
+ .size = 4,
+ },
+ {
+ .da_p = &attr_acc_serv_total_malformed_access_requests,
+ .type = FR_TYPE_UINT32,
+ .offset = offsetof(fr_stats_radius_acc_serv_t, total_malformed_access_requests),
+ .size = 4,
+ },
+ {
+ .da_p = &attr_acc_serv_total_bad_authenticators,
+ .type = FR_TYPE_UINT32,
+ .offset = offsetof(fr_stats_radius_acc_serv_t, total_bad_authenticators),
+ .size = 4,
+ },
+ {
+ .da_p = &attr_acc_serv_total_packets_dropped,
+ .type = FR_TYPE_UINT32,
+ .offset = offsetof(fr_stats_radius_acc_serv_t, total_packets_dropped),
+ .size = 4,
+ },
+ {
+ .da_p = &attr_acc_serv_total_no_records,
+ .type = FR_TYPE_UINT32,
+ .offset = offsetof(fr_stats_radius_acc_serv_t, total_no_records),
+ .size = 4,
+ },
+ {
+ .da_p = &attr_acc_serv_total_unknown_types,
+ .type = FR_TYPE_UINT32,
+ .offset = offsetof(fr_stats_radius_acc_serv_t, total_unknown_types),
+ .size = 4,
+ },
+ },
+};
+
--- /dev/null
+/*
+ * radiusAccServ
+ */
+typedef struct {
+ char *ident;
+ fr_time_delta_t up_time;
+ fr_time_delta_t reset_time;
+ uint32_t config_reset;
+ uint32_t total_access_requests;
+ uint32_t total_invalid_requests;
+ uint32_t total_dup_requests;
+ uint32_t total_responses;
+ uint32_t total_malformed_access_requests;
+ uint32_t total_bad_authenticators;
+ uint32_t total_packets_dropped;
+ uint32_t total_no_records;
+ uint32_t total_unknown_types;
+} fr_stats_radius_acc_serv_t;
+
+/*
+ * fr_stats_radius_acc_serv_instance_t
+ */
+FR_STATS_TYPEDEF(radius_acc_serv);
+
+extern fr_stats_link_t const fr_stats_link_radius_acc_serv;
+
TGT_POSTCLEAN := $(wildcard src/stats/radius/*.cache)
$(eval $(call DICT_STATS,radius,auth_serv,mib-2.radiusAuthServ,1.3.6.1.2.1.67.1.1.1.1))
+$(eval $(call DICT_STATS,radius,acc_serv,mib-2.radiusAccServ,1.3.6.1.2.1.67.2.1.1))
uint32_t total_unknown_types;
} fr_stats_radius_auth_serv_t;
+/*
+ * fr_stats_radius_auth_serv_instance_t
+ */
FR_STATS_TYPEDEF(radius_auth_serv);
extern fr_stats_link_t const fr_stats_link_radius_auth_serv;
*/
#include "auth_serv_da_def.c"
+#include "acc_serv_da_def.c"
+
extern fr_dict_autoload_t libfreeradius_radius_stats_dict[];
fr_dict_autoload_t libfreeradius_radius_stats_dict[] = {
{ .out = &dict_radius, .proto = "radius" },
#include "auth_serv_da_autoload.c"
+#include "acc_serv_da_autoload.c"
+
DICT_AUTOLOAD_TERMINATOR
};
* Define the fr_stats_link_t for the statistics data structures.
*/
#include "auth_serv_stats.c"
+
+#include "acc_serv_stats.c"
* fr_stats_link_radius_auth_serv - the structure linking the base stats structure to the dictionary
* attributes.
*
- * fr_stats_radius_auth_serv_t
+ * fr_stats_radius_auth_serv_instance_t - a structure holding an instance of the statistics.
*/
#include "auth_serv_stats.h"
+
+#include "acc_serv_stats.h"