The FreeRADIUS server  $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
Data Structures | Macros | Typedefs | Functions | Variables
snmp.c File Reference
#include <freeradius-devel/server/base.h>
#include <freeradius-devel/util/debug.h>
#include <freeradius-devel/util/misc.h>
#include <freeradius-devel/util/proto.h>
#include <freeradius-devel/protocol/snmp/freeradius.h>
+ Include dependency graph for snmp.c:

Go to the source code of this file.

Data Structures

struct  fr_snmp_map
 Maps a fr_pair_t to the source of a value. More...
 
union  fr_snmp_map.__unnamed67__
 

Macros

#define FR_FREERADIUS_SNMP_TYPE_OBJECT   0
 
#define SNMP_MAP_TERMINATOR   { .name = NULL, .da = NULL, .type = 0 }
 

Typedefs

typedef int(* fr_snmp_get_func_t) (TALLOC_CTX *ctx, fr_value_box_t *out, fr_snmp_map_t const *map, void *snmp_ctx)
 
typedef int(* fr_snmp_index_func_t) (TALLOC_CTX *ctx, void **snmp_ctx_out, fr_snmp_map_t const *map, void const *snmp_ctx_in, uint32_t index)
 
typedef struct fr_snmp_map fr_snmp_map_t
 
typedef int(* fr_snmp_set_func_t) (fr_snmp_map_t const *map, void *snmp_ctx, fr_value_box_t *data)
 

Functions

static int _fr_snmp_init (fr_snmp_map_t map[], fr_dict_attr_t const *parent)
 Internal SNMP initialisation function (used for recursion) More...
 
void fr_snmp_free (void)
 
int fr_snmp_init (void)
 Initialise the tree of SNMP map structures used to attach callbacks to OIDs. More...
 
int fr_snmp_process (request_t *request)
 
static int snmp_auth_client_stats_offset_get (UNUSED TALLOC_CTX *ctx, fr_value_box_t *out, fr_snmp_map_t const *map, void *snmp_ctx)
 
static int snmp_auth_stats_offset_get (UNUSED TALLOC_CTX *ctx, fr_value_box_t *out, fr_snmp_map_t const *map, UNUSED void *snmp_ctx)
 
static int snmp_client_id_get (TALLOC_CTX *ctx, fr_value_box_t *out, NDEBUG_UNUSED fr_snmp_map_t const *map, void *snmp_ctx)
 
static int snmp_client_index (UNUSED TALLOC_CTX *ctx, void **snmp_ctx_out, UNUSED fr_snmp_map_t const *map, NDEBUG_UNUSED void const *snmp_ctx_in, uint32_t index_num)
 
static int snmp_client_index_get (UNUSED TALLOC_CTX *ctx, fr_value_box_t *out, UNUSED fr_snmp_map_t const *map, void *snmp_ctx)
 
static int snmp_client_ipv4addr_get (UNUSED TALLOC_CTX *ctx, fr_value_box_t *out, NDEBUG_UNUSED fr_snmp_map_t const *map, void *snmp_ctx)
 
static int snmp_config_reset_get (UNUSED TALLOC_CTX *ctx, fr_value_box_t *out, NDEBUG_UNUSED fr_snmp_map_t const *map, UNUSED void *snmp_ctx)
 
static int snmp_config_reset_set (NDEBUG_UNUSED fr_snmp_map_t const *map, UNUSED void *snmp_ctx, fr_value_box_t *in)
 
static int snmp_config_reset_time_get (UNUSED TALLOC_CTX *ctx, fr_value_box_t *out, NDEBUG_UNUSED fr_snmp_map_t const *map, UNUSED void *snmp_ctx)
 
static fr_snmp_map_t const * snmp_map_search (fr_snmp_map_t const map[], fr_dict_attr_t const *da)
 Perform a binary search to find a map matching a da. More...
 
static void snmp_next_leaf (fr_da_stack_t *da_stack, unsigned int depth, fr_snmp_map_t const *map)
 Perform depth first traversal of the tree until we hit a leaf node. More...
 
static ssize_t snmp_process (fr_dcursor_t *out, request_t *request, fr_da_stack_t *da_stack, unsigned int depth, fr_dcursor_t *cursor, fr_snmp_map_t const *map, void *snmp_ctx, unsigned int snmp_op)
 Traverse a tree of SNMP maps. More...
 
static ssize_t snmp_process_index (fr_dcursor_t *out, request_t *request, fr_da_stack_t *da_stack, unsigned int depth, fr_dcursor_t cursor, fr_snmp_map_t const *map, void *snmp_ctx, unsigned int snmp_op, uint32_t index_num)
 
static ssize_t snmp_process_index_attr (fr_dcursor_t *out, request_t *request, fr_da_stack_t *da_stack, unsigned int depth, fr_dcursor_t *cursor, fr_snmp_map_t const *map, void *snmp_ctx, unsigned int snmp_op)
 
static ssize_t snmp_process_leaf (fr_dcursor_t *out, request_t *request, fr_da_stack_t *da_stack, unsigned int depth, fr_dcursor_t *cursor, fr_snmp_map_t const *map, void *snmp_ctx, unsigned int snmp_op)
 
static ssize_t snmp_process_tlv (fr_dcursor_t *out, request_t *request, fr_da_stack_t *da_stack, unsigned int depth, fr_dcursor_t *cursor, fr_snmp_map_t const *map, void *snmp_ctx, unsigned int snmp_op)
 
static int snmp_value_serv_ident_get (TALLOC_CTX *ctx, fr_value_box_t *out, NDEBUG_UNUSED fr_snmp_map_t const *map, UNUSED void *snmp_ctx)
 
static int snmp_value_uptime_get (UNUSED TALLOC_CTX *ctx, fr_value_box_t *out, NDEBUG_UNUSED fr_snmp_map_t const *map, UNUSED void *snmp_ctx)
 

Variables

static fr_dict_attr_t const * attr_snmp_failure
 
static fr_dict_attr_t const * attr_snmp_operation
 
static fr_dict_attr_t const * attr_snmp_root
 
static fr_dict_attr_t const * attr_snmp_type
 
static fr_dict_t const * dict_snmp
 
static int reset_state = FR_RADIUS_AUTH_SERV_CONFIG_RESET_VALUE_RUNNING
 
static fr_time_t reset_time
 
static fr_snmp_map_t snmp_auth_client_entry []
 
static fr_snmp_map_t snmp_auth_client_entry_counters []
 
static fr_snmp_map_t snmp_auth_serv []
 
static fr_snmp_map_t snmp_auth_serv_counters []
 
static fr_snmp_map_t snmp_auth_serv_mib []
 
static fr_snmp_map_t snmp_auth_serv_mib_objects []
 
static fr_snmp_map_t snmp_authentication []
 
fr_dict_autoload_t snmp_dict []
 
fr_dict_attr_autoload_t snmp_dict_attr []
 
static fr_snmp_map_t snmp_dod []
 
static fr_snmp_map_t snmp_internet []
 
static fr_snmp_map_t snmp_iso []
 
static fr_snmp_map_t snmp_mgmt []
 
static fr_snmp_map_t snmp_mib_2 []
 
static fr_snmp_map_t snmp_org []
 
static fr_snmp_map_t snmp_radius_mib []
 
static fr_time_t start_time
 

Data Structure Documentation

◆ fr_snmp_map

struct fr_snmp_map

Maps a fr_pair_t to the source of a value.

Note
Arrays of maps must be in ascending attribute order. This is because the lookup is performed using a binary search, not by index.

Mappings between attributes and snmp values are more complex in an SNMP based interface, because we need to traverse the tree, looking at indexes in multiple levels of mapping tables.

Definition at line 81 of file snmp.c.

+ Collaboration diagram for fr_snmp_map:
Data Fields
union fr_snmp_map __unnamed__
fr_snmp_map_t * child Child map.
fr_dict_attr_t const * da Dictionary attribute (resolved from attribute number).
fr_snmp_get_func_t get Function to retrieve value.
fr_snmp_index_func_t index Function for traversing indexes.
char const * name Attribute number.

Table entries must be in attribute number order.

fr_snmp_set_func_t set Function to write a new value.
unsigned int type SNMP type - More specific than attribute type.

◆ fr_snmp_map.__unnamed67__

union fr_snmp_map.__unnamed67__

Definition at line 91 of file snmp.c.

Data Fields
fr_snmp_map_t * last Last sibling at this level.
size_t offset Offset in snmp_ctx (passed to index function).

Macro Definition Documentation

◆ FR_FREERADIUS_SNMP_TYPE_OBJECT

#define FR_FREERADIUS_SNMP_TYPE_OBJECT   0

Definition at line 60 of file snmp.c.

◆ SNMP_MAP_TERMINATOR

#define SNMP_MAP_TERMINATOR   { .name = NULL, .da = NULL, .type = 0 }

Definition at line 62 of file snmp.c.

Typedef Documentation

◆ fr_snmp_get_func_t

typedef int(* fr_snmp_get_func_t) (TALLOC_CTX *ctx, fr_value_box_t *out, fr_snmp_map_t const *map, void *snmp_ctx)

Definition at line 66 of file snmp.c.

◆ fr_snmp_index_func_t

typedef int(* fr_snmp_index_func_t) (TALLOC_CTX *ctx, void **snmp_ctx_out, fr_snmp_map_t const *map, void const *snmp_ctx_in, uint32_t index)

Definition at line 68 of file snmp.c.

◆ fr_snmp_map_t

typedef struct fr_snmp_map fr_snmp_map_t

Definition at line 52 of file snmp.c.

◆ fr_snmp_set_func_t

typedef int(* fr_snmp_set_func_t) (fr_snmp_map_t const *map, void *snmp_ctx, fr_value_box_t *data)

Definition at line 67 of file snmp.c.

Function Documentation

◆ _fr_snmp_init()

static int _fr_snmp_init ( fr_snmp_map_t  map[],
fr_dict_attr_t const *  parent 
)
static

Internal SNMP initialisation function (used for recursion)

Definition at line 1054 of file snmp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fr_snmp_free()

void fr_snmp_free ( void  )

Definition at line 1119 of file snmp.c.

+ Here is the caller graph for this function:

◆ fr_snmp_init()

int fr_snmp_init ( void  )

Initialise the tree of SNMP map structures used to attach callbacks to OIDs.

Definition at line 1101 of file snmp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fr_snmp_process()

int fr_snmp_process ( request_t request)

Definition at line 921 of file snmp.c.

+ Here is the call graph for this function:

◆ snmp_auth_client_stats_offset_get()

static int snmp_auth_client_stats_offset_get ( UNUSED TALLOC_CTX *  ctx,
fr_value_box_t out,
fr_snmp_map_t const *  map,
void *  snmp_ctx 
)
static

Definition at line 249 of file snmp.c.

+ Here is the call graph for this function:

◆ snmp_auth_stats_offset_get()

static int snmp_auth_stats_offset_get ( UNUSED TALLOC_CTX *  ctx,
fr_value_box_t out,
fr_snmp_map_t const *  map,
UNUSED void *  snmp_ctx 
)
static

Definition at line 177 of file snmp.c.

+ Here is the call graph for this function:

◆ snmp_client_id_get()

static int snmp_client_id_get ( TALLOC_CTX *  ctx,
fr_value_box_t out,
NDEBUG_UNUSED fr_snmp_map_t const *  map,
void *  snmp_ctx 
)
static

Definition at line 236 of file snmp.c.

+ Here is the call graph for this function:

◆ snmp_client_index()

static int snmp_client_index ( UNUSED TALLOC_CTX *  ctx,
void **  snmp_ctx_out,
UNUSED fr_snmp_map_t const *  map,
NDEBUG_UNUSED void const *  snmp_ctx_in,
uint32_t  index_num 
)
static

Definition at line 187 of file snmp.c.

+ Here is the call graph for this function:

◆ snmp_client_index_get()

static int snmp_client_index_get ( UNUSED TALLOC_CTX *  ctx,
fr_value_box_t out,
UNUSED fr_snmp_map_t const *  map,
void *  snmp_ctx 
)
static

Definition at line 203 of file snmp.c.

+ Here is the call graph for this function:

◆ snmp_client_ipv4addr_get()

static int snmp_client_ipv4addr_get ( UNUSED TALLOC_CTX *  ctx,
fr_value_box_t out,
NDEBUG_UNUSED fr_snmp_map_t const *  map,
void *  snmp_ctx 
)
static

Definition at line 215 of file snmp.c.

+ Here is the call graph for this function:

◆ snmp_config_reset_get()

static int snmp_config_reset_get ( UNUSED TALLOC_CTX *  ctx,
fr_value_box_t out,
NDEBUG_UNUSED fr_snmp_map_t const *  map,
UNUSED void *  snmp_ctx 
)
static

Definition at line 151 of file snmp.c.

+ Here is the call graph for this function:

◆ snmp_config_reset_set()

static int snmp_config_reset_set ( NDEBUG_UNUSED fr_snmp_map_t const *  map,
UNUSED void *  snmp_ctx,
fr_value_box_t in 
)
static

Definition at line 161 of file snmp.c.

+ Here is the call graph for this function:

◆ snmp_config_reset_time_get()

static int snmp_config_reset_time_get ( UNUSED TALLOC_CTX *  ctx,
fr_value_box_t out,
NDEBUG_UNUSED fr_snmp_map_t const *  map,
UNUSED void *  snmp_ctx 
)
static

Definition at line 132 of file snmp.c.

+ Here is the call graph for this function:

◆ snmp_map_search()

static fr_snmp_map_t const* snmp_map_search ( fr_snmp_map_t const  map[],
fr_dict_attr_t const *  da 
)
static

Perform a binary search to find a map matching a da.

Parameters
mapto search in.
dato search for.
Returns
  • Matching map if da was found.
  • NULL if da was not found.

Definition at line 469 of file snmp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ snmp_next_leaf()

static void snmp_next_leaf ( fr_da_stack_t da_stack,
unsigned int  depth,
fr_snmp_map_t const *  map 
)
static

Perform depth first traversal of the tree until we hit a leaf node.

This is used for building a fake da_stack, for findNext, so that if we get a findNext operation on something that's not a leaf, we can find the first leaf under that branch of the tree.

Parameters
[out]da_stackto rewrite.
[in]depthat which to start rewriting.
[in]mapat this level.

Definition at line 508 of file snmp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ snmp_process()

static ssize_t snmp_process ( fr_dcursor_t out,
request_t request,
fr_da_stack_t da_stack,
unsigned int  depth,
fr_dcursor_t cursor,
fr_snmp_map_t const *  map,
void *  snmp_ctx,
unsigned int  snmp_op 
)
static

Traverse a tree of SNMP maps.

Parameters
[out]outWhere to write response attributes.
[in]requestThe current request.
[in,out]da_stackwe're traversing.
[in]depthwe're currently at in the da_stack.
[in]cursorrepresenting the current attribute we're processing.
[in]mapmatching the current depth in the da_stack.
[in]snmp_ctxallocated by the previous index traversal function.
[in]snmp_opwe're performing.
Returns
  • 0 on success.
  • 1 to signal caller that it should find the next OID at this level and recurse again.
  • <0 the depth at which an error occurred, as a negative integer.

Definition at line 868 of file snmp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ snmp_process_index()

static ssize_t snmp_process_index ( fr_dcursor_t out,
request_t request,
fr_da_stack_t da_stack,
unsigned int  depth,
fr_dcursor_t  cursor,
fr_snmp_map_t const *  map,
void *  snmp_ctx,
unsigned int  snmp_op,
uint32_t  index_num 
)
static

Definition at line 520 of file snmp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ snmp_process_index_attr()

static ssize_t snmp_process_index_attr ( fr_dcursor_t out,
request_t request,
fr_da_stack_t da_stack,
unsigned int  depth,
fr_dcursor_t cursor,
fr_snmp_map_t const *  map,
void *  snmp_ctx,
unsigned int  snmp_op 
)
static

Definition at line 611 of file snmp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ snmp_process_leaf()

static ssize_t snmp_process_leaf ( fr_dcursor_t out,
request_t request,
fr_da_stack_t da_stack,
unsigned int  depth,
fr_dcursor_t cursor,
fr_snmp_map_t const *  map,
void *  snmp_ctx,
unsigned int  snmp_op 
)
static

Definition at line 732 of file snmp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ snmp_process_tlv()

static ssize_t snmp_process_tlv ( fr_dcursor_t out,
request_t request,
fr_da_stack_t da_stack,
unsigned int  depth,
fr_dcursor_t cursor,
fr_snmp_map_t const *  map,
void *  snmp_ctx,
unsigned int  snmp_op 
)
static

Definition at line 670 of file snmp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ snmp_value_serv_ident_get()

static int snmp_value_serv_ident_get ( TALLOC_CTX *  ctx,
fr_value_box_t out,
NDEBUG_UNUSED fr_snmp_map_t const *  map,
UNUSED void *  snmp_ctx 
)
static

Definition at line 103 of file snmp.c.

+ Here is the call graph for this function:

◆ snmp_value_uptime_get()

static int snmp_value_uptime_get ( UNUSED TALLOC_CTX *  ctx,
fr_value_box_t out,
NDEBUG_UNUSED fr_snmp_map_t const *  map,
UNUSED void *  snmp_ctx 
)
static

Definition at line 113 of file snmp.c.

+ Here is the call graph for this function:

Variable Documentation

◆ attr_snmp_failure

fr_dict_attr_t const* attr_snmp_failure
static

Definition at line 48 of file snmp.c.

◆ attr_snmp_operation

fr_dict_attr_t const* attr_snmp_operation
static

Definition at line 46 of file snmp.c.

◆ attr_snmp_root

fr_dict_attr_t const* attr_snmp_root
static

Definition at line 49 of file snmp.c.

◆ attr_snmp_type

fr_dict_attr_t const* attr_snmp_type
static

Definition at line 47 of file snmp.c.

◆ dict_snmp

fr_dict_t const* dict_snmp
static

Definition at line 38 of file snmp.c.

◆ reset_state

int reset_state = FR_RADIUS_AUTH_SERV_CONFIG_RESET_VALUE_RUNNING
static

Definition at line 101 of file snmp.c.

◆ reset_time

fr_time_t reset_time
static

Definition at line 100 of file snmp.c.

◆ snmp_auth_client_entry

fr_snmp_map_t snmp_auth_client_entry[]
static
Initial value:
= {
{ .name = "Radius-Auth-Client-Entry",
}
#define FR_FREERADIUS_SNMP_TYPE_OBJECT
Definition: snmp.c:60
static int snmp_client_index(UNUSED TALLOC_CTX *ctx, void **snmp_ctx_out, UNUSED fr_snmp_map_t const *map, NDEBUG_UNUSED void const *snmp_ctx_in, uint32_t index_num)
Definition: snmp.c:187
#define SNMP_MAP_TERMINATOR
Definition: snmp.c:62
static fr_snmp_map_t snmp_auth_client_entry_counters[]
Definition: snmp.c:262

Definition at line 311 of file snmp.c.

◆ snmp_auth_client_entry_counters

fr_snmp_map_t snmp_auth_client_entry_counters[]
static

Definition at line 262 of file snmp.c.

◆ snmp_auth_serv

fr_snmp_map_t snmp_auth_serv[]
static
Initial value:
= {
{ .name = "Radius-Auth-Serv",
}
static fr_snmp_map_t snmp_auth_serv_counters[]
Definition: snmp.c:319

Definition at line 379 of file snmp.c.

◆ snmp_auth_serv_counters

fr_snmp_map_t snmp_auth_serv_counters[]
static

Definition at line 319 of file snmp.c.

◆ snmp_auth_serv_mib

fr_snmp_map_t snmp_auth_serv_mib[]
static
Initial value:
= {
{ .name = "Radius-Auth-Serv-Mib",
}
static fr_snmp_map_t snmp_auth_serv_mib_objects[]
Definition: snmp.c:386

Definition at line 393 of file snmp.c.

◆ snmp_auth_serv_mib_objects

fr_snmp_map_t snmp_auth_serv_mib_objects[]
static
Initial value:
= {
{ .name = "Radius-Auth-Serv-Mib-Objects",
.child = snmp_auth_serv },
}
static fr_snmp_map_t snmp_auth_serv[]
Definition: snmp.c:379

Definition at line 386 of file snmp.c.

◆ snmp_authentication

fr_snmp_map_t snmp_authentication[]
static
Initial value:
= {
{ .name = "Radius-Authentication",
.child = snmp_auth_serv_mib },
}
static fr_snmp_map_t snmp_auth_serv_mib[]
Definition: snmp.c:393

Definition at line 400 of file snmp.c.

◆ snmp_dict

fr_dict_autoload_t snmp_dict
Initial value:
= {
{ .out = &dict_snmp, .proto = "snmp" },
{ NULL }
}
static fr_dict_t const * dict_snmp
Definition: snmp.c:38

Definition at line 41 of file snmp.c.

◆ snmp_dict_attr

fr_dict_attr_autoload_t snmp_dict_attr
Initial value:
= {
{ .out = &attr_snmp_operation, .name = "FreeRADIUS-SNMP-Operation", .type = FR_TYPE_UINT8, .dict = &dict_snmp },
{ .out = &attr_snmp_type, .name = "FreeRADIUS-SNMP-Type", .type = FR_TYPE_UINT8, .dict = &dict_snmp },
{ .out = &attr_snmp_failure, .name = "FreeRADIUS-SNMP-Failure", .type = FR_TYPE_UINT8, .dict = &dict_snmp },
{ .out = &attr_snmp_root, .name = "FreeRADIUS-Iso", .type = FR_TYPE_TLV, .dict = &dict_snmp },
{ NULL }
}
@ FR_TYPE_TLV
Contains nested attributes.
Definition: merged_model.c:118
@ FR_TYPE_UINT8
8 Bit unsigned integer.
Definition: merged_model.c:97
static fr_dict_attr_t const * attr_snmp_root
Definition: snmp.c:49
static fr_dict_attr_t const * attr_snmp_failure
Definition: snmp.c:48
static fr_dict_attr_t const * attr_snmp_type
Definition: snmp.c:47
static fr_dict_attr_t const * attr_snmp_operation
Definition: snmp.c:46

Definition at line 52 of file snmp.c.

◆ snmp_dod

fr_snmp_map_t snmp_dod[]
static
Initial value:
= {
{ .name = "FreeRADIUS-Dod",
.child = snmp_internet },
}
static fr_snmp_map_t snmp_internet[]
Definition: snmp.c:428

Definition at line 435 of file snmp.c.

◆ snmp_internet

fr_snmp_map_t snmp_internet[]
static
Initial value:
= {
{ .name = "FreeRADIUS-Internet",
.child = snmp_mgmt },
}
static fr_snmp_map_t snmp_mgmt[]
Definition: snmp.c:421

Definition at line 428 of file snmp.c.

◆ snmp_iso

fr_snmp_map_t snmp_iso[]
static
Initial value:
= {
{ .name = "FreeRADIUS-Iso",
.child = snmp_org },
}
static fr_snmp_map_t snmp_org[]
Definition: snmp.c:442

Definition at line 449 of file snmp.c.

◆ snmp_mgmt

fr_snmp_map_t snmp_mgmt[]
static
Initial value:
= {
{ .name = "FreeRADIUS-Mgmt",
.child = snmp_mib_2 },
}
static fr_snmp_map_t snmp_mib_2[]
Definition: snmp.c:414

Definition at line 421 of file snmp.c.

◆ snmp_mib_2

fr_snmp_map_t snmp_mib_2[]
static
Initial value:
= {
{ .name = "FreeRADIUS-Mib-2",
.child = snmp_radius_mib },
}
static fr_snmp_map_t snmp_radius_mib[]
Definition: snmp.c:407

Definition at line 414 of file snmp.c.

◆ snmp_org

fr_snmp_map_t snmp_org[]
static
Initial value:
= {
{ .name = "FreeRADIUS-Org",
.child = snmp_dod },
}
static fr_snmp_map_t snmp_dod[]
Definition: snmp.c:435

Definition at line 442 of file snmp.c.

◆ snmp_radius_mib

fr_snmp_map_t snmp_radius_mib[]
static
Initial value:
= {
{ .name = "Radius-Mib",
.child = snmp_authentication },
}
static fr_snmp_map_t snmp_authentication[]
Definition: snmp.c:400

Definition at line 407 of file snmp.c.

◆ start_time

fr_time_t start_time
static

Definition at line 99 of file snmp.c.