diff options
| author | Patrick Ruddy <pat@voltanet.io> | 2021-05-19 14:39:47 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-19 14:39:47 +0100 |
| commit | f334254982d38f010cc4d92f2a936d563a2cd52e (patch) | |
| tree | 697951cb5bac99e6781738fe99e4a0f5e9c39d1e | |
| parent | c4aa00a77642232cab3b30ee83f3c576c1efb6b7 (diff) | |
| parent | 5ff4ad8ee33b3d8cb5e2a6e0fbf0f0c1706676a2 (diff) | |
Merge pull request #8677 from idryzhov/isis-snmp-build-warning
isisd: fix build warning and simplify code
| -rw-r--r-- | isisd/isis_snmp.c | 93 |
1 files changed, 36 insertions, 57 deletions
diff --git a/isisd/isis_snmp.c b/isisd/isis_snmp.c index dfc865162f..fa2f9a7669 100644 --- a/isisd/isis_snmp.c +++ b/isisd/isis_snmp.c @@ -616,11 +616,44 @@ static uint8_t isis_null_sysid[ISIS_SYS_ID_LEN]; #define ISIS_SNMP_ADJ_STATE_UP (3) #define ISIS_SNMP_ADJ_STATE_FAILED (4) +static inline uint32_t isis_snmp_adj_state(enum isis_adj_state state) +{ + switch (state) { + case ISIS_ADJ_UNKNOWN: + return ISIS_SNMP_ADJ_STATE_DOWN; + case ISIS_ADJ_INITIALIZING: + return ISIS_SNMP_ADJ_STATE_INITIALIZING; + case ISIS_ADJ_UP: + return ISIS_SNMP_ADJ_STATE_UP; + case ISIS_ADJ_DOWN: + return ISIS_SNMP_ADJ_STATE_FAILED; + } + + return 0; /* not reached */ +} + #define ISIS_SNMP_ADJ_NEIGHTYPE_IS_L1 (1) #define ISIS_SNMP_ADJ_NEIGHTYPE_IS_L2 (2) #define ISIS_SNMP_ADJ_NEIGHTYPE_IS_L1_L2 (3) #define ISIS_SNMP_ADJ_NEIGHTYPE_UNKNOWN (4) +static inline uint32_t isis_snmp_adj_neightype(enum isis_system_type type) +{ + switch (type) { + case ISIS_SYSTYPE_UNKNOWN: + case ISIS_SYSTYPE_ES: + return ISIS_SNMP_ADJ_NEIGHTYPE_UNKNOWN; + case ISIS_SYSTYPE_IS: + return ISIS_SNMP_ADJ_NEIGHTYPE_IS_L1_L2; + case ISIS_SYSTYPE_L1_IS: + return ISIS_SNMP_ADJ_NEIGHTYPE_IS_L1; + case ISIS_SYSTYPE_L2_IS: + return ISIS_SNMP_ADJ_NEIGHTYPE_IS_L2; + } + + return 0; /* not reached */ +} + #define ISIS_SNMP_INET_TYPE_V4 (1) #define ISIS_SNMP_INET_TYPE_V6 (2) @@ -2510,23 +2543,7 @@ static uint8_t *isis_snmp_find_isadj(struct variable *v, oid *name, switch (v->magic) { case ISIS_ISADJ_STATE: - - switch (adj->adj_state) { - case ISIS_ADJ_UNKNOWN: - case ISIS_ADJ_DOWN: - val = ISIS_SNMP_ADJ_STATE_DOWN; - break; - - case ISIS_ADJ_INITIALIZING: - val = ISIS_SNMP_ADJ_STATE_INITIALIZING; - break; - - case ISIS_ADJ_UP: - val = ISIS_SNMP_ADJ_STATE_UP; - break; - } - - return SNMP_INTEGER(val); + return SNMP_INTEGER(isis_snmp_adj_state(adj->adj_state)); case ISIS_ISADJ_3WAYSTATE: return SNMP_INTEGER(adj->threeway_state); @@ -2538,27 +2555,7 @@ static uint8_t *isis_snmp_find_isadj(struct variable *v, oid *name, } case ISIS_ISADJ_NEIGHSYSTYPE: - - switch (adj->sys_type) { - case ISIS_SYSTYPE_UNKNOWN: - case ISIS_SYSTYPE_ES: - val = ISIS_SNMP_ADJ_NEIGHTYPE_UNKNOWN; - break; - - case ISIS_SYSTYPE_IS: - val = ISIS_SNMP_ADJ_NEIGHTYPE_IS_L1_L2; - break; - - case ISIS_SYSTYPE_L1_IS: - val = ISIS_SNMP_ADJ_NEIGHTYPE_IS_L1; - break; - - case ISIS_SYSTYPE_L2_IS: - val = ISIS_SNMP_ADJ_NEIGHTYPE_IS_L2; - break; - } - - return SNMP_INTEGER(val); + return SNMP_INTEGER(isis_snmp_adj_neightype(adj->sys_type)); case ISIS_ISADJ_NEIGHSYSID: *var_len = sizeof(adj->sysid); @@ -3345,25 +3342,7 @@ static int isis_snmp_adj_state_change_update(const struct isis_adjacency *adj) lsp_id[ISIS_SYS_ID_LEN] = 0; lsp_id[ISIS_SYS_ID_LEN + 1] = 0; - val = ISIS_SNMP_ADJ_STATE_DOWN; - - switch (adj->adj_state) { - case ISIS_ADJ_UNKNOWN: - val = ISIS_SNMP_ADJ_STATE_DOWN; - break; - - case ISIS_ADJ_INITIALIZING: - val = ISIS_SNMP_ADJ_STATE_INITIALIZING; - break; - - case ISIS_ADJ_UP: - val = ISIS_SNMP_ADJ_STATE_UP; - break; - - case ISIS_ADJ_DOWN: - val = ISIS_SNMP_ADJ_STATE_FAILED; - break; - } + val = isis_snmp_adj_state(adj->adj_state); isis_snmp_update_worker_b( adj->circuit, ISIS_TRAP_ADJ_STATE_CHANGE, |
