40#if LWIP_SNMP && LWIP_SNMP_V3
42#ifdef LWIP_SNMPV3_INCLUDE_ENGINE
43#include LWIP_SNMPV3_INCLUDE_ENGINE
46#define SNMP_MAX_TIME_BOOT 2147483647UL
50snmpv3_engine_id_changed(
void)
52 snmpv3_set_engine_boots(0);
62snmpv3_get_engine_boots_internal(
void)
64 if (snmpv3_get_engine_boots() == 0 ||
65 snmpv3_get_engine_boots() < SNMP_MAX_TIME_BOOT) {
66 return snmpv3_get_engine_boots();
69 snmpv3_set_engine_boots(SNMP_MAX_TIME_BOOT);
70 return snmpv3_get_engine_boots();
79snmpv3_get_engine_time_internal(
void)
81 if (snmpv3_get_engine_time() >= SNMP_MAX_TIME_BOOT) {
82 snmpv3_reset_engine_time();
84 if (snmpv3_get_engine_boots() < SNMP_MAX_TIME_BOOT - 1) {
85 snmpv3_set_engine_boots(snmpv3_get_engine_boots() + 1);
87 snmpv3_set_engine_boots(SNMP_MAX_TIME_BOOT);
91 return snmpv3_get_engine_time();
94#if LWIP_SNMP_V3_CRYPTO
104snmpv3_build_priv_param(
u8_t *priv_param)
108 static u32_t priv1, priv2;
117 SMEMCPY(&priv_param[0], &priv1,
sizeof(priv1));
118 SMEMCPY(&priv_param[4], &priv2,
sizeof(priv2));
127 u32_t boots = snmpv3_get_engine_boots_internal();
128 SMEMCPY(&priv_param[0], &boots, 4);
129 SMEMCPY(&priv_param[4], &ctr, 4);
#define SMEMCPY(dst, src, len)