| /* |
| * defaultrouter data access header |
| * |
| * $Id:$ |
| */ |
| #ifndef NETSNMP_ACCESS_DEFAULTROUTER_H |
| #define NETSNMP_ACCESS_DEFAULTROUTER_H |
| |
| # ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /**---------------------------------------------------------------------*/ |
| /* |
| * structure definitions |
| */ |
| #if defined( NETSNMP_ENABLE_IPV6 ) |
| # define NETSNMP_ACCESS_DEFAULTROUTER_BUF_SIZE 16 /* XXX: 20, for ip6z? */ |
| #else |
| # define NETSNMP_ACCESS_DEFAULTROUTER_BUF_SIZE 4 |
| #endif |
| |
| |
| /* |
| * netsnmp_default_route_entry |
| */ |
| typedef struct netsnmp_defaultrouter_s { |
| |
| netsnmp_index oid_index; /* MUST BE FIRST!! for container use */ |
| oid ns_dr_index; /* arbitrary index */ |
| |
| int flags; /* for net-snmp use */ |
| |
| /* |
| * mib related data |
| */ |
| u_char dr_addresstype; /* ipDefaultRouterAddressType */ |
| char dr_address[NETSNMP_ACCESS_DEFAULTROUTER_BUF_SIZE]; /* ipDefaultRouterAddress */ |
| size_t dr_address_len; /* length of ipDefaultRouterAddress */ |
| oid dr_if_index; /* ipDefaultRouterIfIndex */ |
| uint32_t dr_lifetime; /* ipDefaultRouterLifetime (0-65535) */ |
| char dr_preference; /* ipDefaultRouterPreference (-2,-1,0,1) */ |
| |
| } netsnmp_defaultrouter_entry; |
| |
| |
| /**---------------------------------------------------------------------*/ |
| /* |
| * ACCESS function prototypes |
| */ |
| /* |
| * container init |
| */ |
| netsnmp_container * |
| netsnmp_access_defaultrouter_container_init(u_int flags); |
| #define NETSNMP_ACCESS_DEFAULTROUTER_INIT_NOFLAGS 0x0000 |
| #define NETSNMP_ACCESS_DEFAULTROUTER_INIT_ADDL_IDX_BY_ADDR 0x0001 |
| |
| /* |
| * container load |
| */ |
| netsnmp_container* |
| netsnmp_access_defaultrouter_container_load(netsnmp_container* container, |
| u_int load_flags); |
| #define NETSNMP_ACCESS_DEFAULTROUTER_LOAD_NOFLAGS 0x0000 |
| #define NETSNMP_ACCESS_DEFAULTROUTER_LOAD_IPV4_ONLY 0x0001 |
| #define NETSNMP_ACCESS_DEFAULTROUTER_LOAD_IPV6_ONLY 0x0002 |
| #define NETSNMP_ACCESS_DEFAULTROUTER_LOAD_ADDL_IDX_BY_ADDR 0x0004 |
| |
| /* |
| * container free |
| */ |
| void |
| netsnmp_access_defaultrouter_container_free(netsnmp_container *container, |
| u_int free_flags); |
| #define NETSNMP_ACCESS_DEFAULTROUTER_FREE_NOFLAGS 0x0000 |
| #define NETSNMP_ACCESS_DEFAULTROUTER_FREE_DONT_CLEAR 0x0001 |
| #define NETSNMP_ACCESS_DEFAULTROUTER_FREE_KEEP_CONTAINER 0x0002 |
| |
| /* |
| * entry create |
| */ |
| netsnmp_defaultrouter_entry * |
| netsnmp_access_defaultrouter_entry_create(void); |
| |
| /* |
| * entry load |
| */ |
| int |
| netsnmp_access_defaultrouter_entry_load(size_t *num_entries, |
| netsnmp_defaultrouter_entry **entries); |
| |
| /* |
| * entry update |
| */ |
| int |
| netsnmp_access_defaultrouter_entry_update(netsnmp_defaultrouter_entry *lhs, |
| netsnmp_defaultrouter_entry *rhs); |
| |
| /* |
| * entry free |
| */ |
| void |
| netsnmp_access_defaultrouter_entry_free(netsnmp_defaultrouter_entry *entry); |
| |
| |
| |
| /**---------------------------------------------------------------------*/ |
| |
| # ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* NETSNMP_ACCESS_DEFAULTROUTER_H */ |