Merge pull request #12707 from donaldsharp/missed_enums

Missed enums
This commit is contained in:
Donatas Abraitis 2023-02-07 22:22:27 +02:00 committed by GitHub
commit 96475dfde9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
91 changed files with 1096 additions and 254 deletions

View File

@ -174,9 +174,11 @@ bool bgp_addpath_tx_path(enum bgp_addpath_strat strat, struct bgp_path_info *pi)
return true; return true;
else else
return false; return false;
default: case BGP_ADDPATH_MAX:
return false; return false;
} }
assert(!"Reached end of function we should never hit");
} }
static void bgp_addpath_flush_type_rn(struct bgp *bgp, afi_t afi, safi_t safi, static void bgp_addpath_flush_type_rn(struct bgp *bgp, afi_t afi, safi_t safi,

View File

@ -1228,7 +1228,7 @@ static int evpn_zebra_install(struct bgp *bgp, struct bgpevpn *vpn,
{ {
int ret; int ret;
uint8_t flags; uint8_t flags;
int flood_control; int flood_control = VXLAN_FLOOD_DISABLED;
uint32_t seq; uint32_t seq;
if (p->prefix.route_type == BGP_EVPN_MAC_IP_ROUTE) { if (p->prefix.route_type == BGP_EVPN_MAC_IP_ROUTE) {
@ -1298,7 +1298,12 @@ static int evpn_zebra_install(struct bgp *bgp, struct bgpevpn *vpn,
flood_control = VXLAN_FLOOD_PIM_SM; flood_control = VXLAN_FLOOD_PIM_SM;
break; break;
default: case PMSI_TNLTYPE_NO_INFO:
case PMSI_TNLTYPE_RSVP_TE_P2MP:
case PMSI_TNLTYPE_MLDP_P2MP:
case PMSI_TNLTYPE_PIM_SSM:
case PMSI_TNLTYPE_PIM_BIDIR:
case PMSI_TNLTYPE_MLDP_MP2MP:
flood_control = VXLAN_FLOOD_DISABLED; flood_control = VXLAN_FLOOD_DISABLED;
break; break;
} }

View File

@ -231,7 +231,7 @@ int bgp_flowspec_ip_address(enum bgp_flowspec_util_nlri_t type,
prefix_copy(prefix, &prefix_local); prefix_copy(prefix, &prefix_local);
break; break;
case BGP_FLOWSPEC_VALIDATE_ONLY: case BGP_FLOWSPEC_VALIDATE_ONLY:
default: case BGP_FLOWSPEC_RETURN_JSON:
break; break;
} }
return offset; return offset;
@ -326,7 +326,7 @@ int bgp_flowspec_op_decode(enum bgp_flowspec_util_nlri_t type,
mval++; mval++;
break; break;
case BGP_FLOWSPEC_VALIDATE_ONLY: case BGP_FLOWSPEC_VALIDATE_ONLY:
default: case BGP_FLOWSPEC_RETURN_JSON:
/* no action */ /* no action */
break; break;
} }
@ -436,7 +436,7 @@ int bgp_flowspec_bitmask_decode(enum bgp_flowspec_util_nlri_t type,
mval++; mval++;
break; break;
case BGP_FLOWSPEC_VALIDATE_ONLY: case BGP_FLOWSPEC_VALIDATE_ONLY:
default: case BGP_FLOWSPEC_RETURN_JSON:
/* no action */ /* no action */
break; break;
} }

View File

@ -2397,7 +2397,7 @@ void bgp_fsm_nht_update(struct peer *peer, bool has_valid_nexthops)
BGP_EVENT_ADD(peer, TCP_fatal_error); BGP_EVENT_ADD(peer, TCP_fatal_error);
case Clearing: case Clearing:
case Deleted: case Deleted:
default: case BGP_STATUS_MAX:
break; break;
} }
} }

View File

@ -1264,7 +1264,7 @@ bgp_lookup_route(struct bgp *l3vpn_bgp, struct bgp_dest **dest,
== 0) == 0)
return pi; return pi;
break; break;
default: case IPADDR_NONE:
return pi; return pi;
} }
} }
@ -1627,13 +1627,13 @@ static uint8_t *mplsL3vpnRteTable(struct variable *v, oid name[],
case BLACKHOLE_REJECT: case BLACKHOLE_REJECT:
return SNMP_INTEGER( return SNMP_INTEGER(
MPLSL3VPNVRFRTECIDRTYPEREJECT); MPLSL3VPNVRFRTECIDRTYPEREJECT);
default: case BLACKHOLE_UNSPEC:
case BLACKHOLE_NULL:
case BLACKHOLE_ADMINPROHIB:
return SNMP_INTEGER( return SNMP_INTEGER(
MPLSL3VPNVRFRTECIDRTYPEBLACKHOLE); MPLSL3VPNVRFRTECIDRTYPEBLACKHOLE);
} }
default: break;
return SNMP_INTEGER(
MPLSL3VPNVRFRTECIDRTYPEOTHER);
} }
} else } else
return SNMP_INTEGER(MPLSL3VPNVRFRTECIDRTYPEOTHER); return SNMP_INTEGER(MPLSL3VPNVRFRTECIDRTYPEOTHER);

View File

@ -167,7 +167,8 @@ void bgp_capability_vty_out(struct vty *vty, struct peer *peer, bool use_json,
"capabilityErrorMultiProtocolAfi", "capabilityErrorMultiProtocolAfi",
"L2VPN"); "L2VPN");
break; break;
default: case AFI_UNSPEC:
case AFI_MAX:
json_object_int_add( json_object_int_add(
json_cap, json_cap,
"capabilityErrorMultiProtocolAfiUnknown", "capabilityErrorMultiProtocolAfiUnknown",
@ -217,7 +218,8 @@ void bgp_capability_vty_out(struct vty *vty, struct peer *peer, bool use_json,
"capabilityErrorMultiProtocolSafi", "capabilityErrorMultiProtocolSafi",
"flowspec"); "flowspec");
break; break;
default: case SAFI_UNSPEC:
case SAFI_MAX:
json_object_int_add( json_object_int_add(
json_cap, json_cap,
"capabilityErrorMultiProtocolSafiUnknown", "capabilityErrorMultiProtocolSafiUnknown",
@ -237,7 +239,8 @@ void bgp_capability_vty_out(struct vty *vty, struct peer *peer, bool use_json,
case AFI_L2VPN: case AFI_L2VPN:
vty_out(vty, "AFI L2VPN, "); vty_out(vty, "AFI L2VPN, ");
break; break;
default: case AFI_UNSPEC:
case AFI_MAX:
vty_out(vty, "AFI Unknown %d, ", vty_out(vty, "AFI Unknown %d, ",
ntohs(mpc.afi)); ntohs(mpc.afi));
break; break;
@ -264,7 +267,8 @@ void bgp_capability_vty_out(struct vty *vty, struct peer *peer, bool use_json,
case SAFI_EVPN: case SAFI_EVPN:
vty_out(vty, "SAFI EVPN"); vty_out(vty, "SAFI EVPN");
break; break;
default: case SAFI_UNSPEC:
case SAFI_MAX:
vty_out(vty, "SAFI Unknown %d ", vty_out(vty, "SAFI Unknown %d ",
mpc.safi); mpc.safi);
break; break;

View File

@ -12058,9 +12058,16 @@ const struct prefix_rd *bgp_rd_from_dest(const struct bgp_dest *dest,
case SAFI_ENCAP: case SAFI_ENCAP:
case SAFI_EVPN: case SAFI_EVPN:
return (struct prefix_rd *)(bgp_dest_get_prefix(dest)); return (struct prefix_rd *)(bgp_dest_get_prefix(dest));
default: case SAFI_UNSPEC:
case SAFI_UNICAST:
case SAFI_MULTICAST:
case SAFI_LABELED_UNICAST:
case SAFI_FLOWSPEC:
case SAFI_MAX:
return NULL; return NULL;
} }
assert(!"Reached end of function when we were not expecting it");
} }
/* Display specified route of BGP table. */ /* Display specified route of BGP table. */
@ -13285,7 +13292,8 @@ static void bgp_table_stats_walker(struct thread *t)
case AFI_L2VPN: case AFI_L2VPN:
space = EVPN_ROUTE_PREFIXLEN; space = EVPN_ROUTE_PREFIXLEN;
break; break;
default: case AFI_UNSPEC:
case AFI_MAX:
return; return;
} }
@ -13540,7 +13548,8 @@ static int bgp_table_stats_single(struct vty *vty, struct bgp *bgp, afi_t afi,
case AFI_L2VPN: case AFI_L2VPN:
bitlen = EVPN_ROUTE_PREFIXLEN; bitlen = EVPN_ROUTE_PREFIXLEN;
break; break;
default: case AFI_UNSPEC:
case AFI_MAX:
break; break;
} }

View File

@ -178,10 +178,14 @@ static enum node_type bgp_node_type(afi_t afi, safi_t safi)
return BGP_VPNV4_NODE; return BGP_VPNV4_NODE;
case SAFI_FLOWSPEC: case SAFI_FLOWSPEC:
return BGP_FLOWSPECV4_NODE; return BGP_FLOWSPECV4_NODE;
default: case SAFI_UNSPEC:
case SAFI_ENCAP:
case SAFI_EVPN:
case SAFI_MAX:
/* not expected */ /* not expected */
return BGP_IPV4_NODE; return BGP_IPV4_NODE;
} }
break;
case AFI_IP6: case AFI_IP6:
switch (safi) { switch (safi) {
case SAFI_UNICAST: case SAFI_UNICAST:
@ -194,10 +198,14 @@ static enum node_type bgp_node_type(afi_t afi, safi_t safi)
return BGP_VPNV6_NODE; return BGP_VPNV6_NODE;
case SAFI_FLOWSPEC: case SAFI_FLOWSPEC:
return BGP_FLOWSPECV6_NODE; return BGP_FLOWSPECV6_NODE;
default: case SAFI_UNSPEC:
/* not expected */ case SAFI_ENCAP:
case SAFI_EVPN:
case SAFI_MAX:
/* not expected and the return value seems wrong */
return BGP_IPV4_NODE; return BGP_IPV4_NODE;
} }
break;
case AFI_L2VPN: case AFI_L2VPN:
return BGP_EVPN_NODE; return BGP_EVPN_NODE;
case AFI_UNSPEC: case AFI_UNSPEC:
@ -535,7 +543,9 @@ static const char *get_bgp_default_af_flag(afi_t afi, safi_t safi)
return "ipv4-labeled-unicast"; return "ipv4-labeled-unicast";
case SAFI_FLOWSPEC: case SAFI_FLOWSPEC:
return "ipv4-flowspec"; return "ipv4-flowspec";
default: case SAFI_UNSPEC:
case SAFI_EVPN:
case SAFI_MAX:
return "unknown-afi/safi"; return "unknown-afi/safi";
} }
break; break;
@ -553,7 +563,9 @@ static const char *get_bgp_default_af_flag(afi_t afi, safi_t safi)
return "ipv6-labeled-unicast"; return "ipv6-labeled-unicast";
case SAFI_FLOWSPEC: case SAFI_FLOWSPEC:
return "ipv6-flowspec"; return "ipv6-flowspec";
default: case SAFI_UNSPEC:
case SAFI_EVPN:
case SAFI_MAX:
return "unknown-afi/safi"; return "unknown-afi/safi";
} }
break; break;
@ -561,15 +573,24 @@ static const char *get_bgp_default_af_flag(afi_t afi, safi_t safi)
switch (safi) { switch (safi) {
case SAFI_EVPN: case SAFI_EVPN:
return "l2vpn-evpn"; return "l2vpn-evpn";
default: case SAFI_UNICAST:
case SAFI_MULTICAST:
case SAFI_MPLS_VPN:
case SAFI_ENCAP:
case SAFI_LABELED_UNICAST:
case SAFI_FLOWSPEC:
case SAFI_UNSPEC:
case SAFI_MAX:
return "unknown-afi/safi"; return "unknown-afi/safi";
} }
break;
case AFI_UNSPEC: case AFI_UNSPEC:
case AFI_MAX: case AFI_MAX:
return "unknown-afi/safi"; return "unknown-afi/safi";
} }
/* all AFIs are accounted for above, so this shouldn't happen */ /* all AFIs are accounted for above, so this shouldn't happen */
return "unknown-afi/safi";
assert(!"Reached end of function where we did not expect to");
} }
int bgp_get_vty(struct bgp **bgp, as_t *as, const char *name, int bgp_get_vty(struct bgp **bgp, as_t *as, const char *name,

View File

@ -2421,7 +2421,9 @@ static inline int afindex(afi_t afi, safi_t safi)
return BGP_AF_IPV4_ENCAP; return BGP_AF_IPV4_ENCAP;
case SAFI_FLOWSPEC: case SAFI_FLOWSPEC:
return BGP_AF_IPV4_FLOWSPEC; return BGP_AF_IPV4_FLOWSPEC;
default: case SAFI_EVPN:
case SAFI_UNSPEC:
case SAFI_MAX:
return BGP_AF_MAX; return BGP_AF_MAX;
} }
break; break;
@ -2439,7 +2441,9 @@ static inline int afindex(afi_t afi, safi_t safi)
return BGP_AF_IPV6_ENCAP; return BGP_AF_IPV6_ENCAP;
case SAFI_FLOWSPEC: case SAFI_FLOWSPEC:
return BGP_AF_IPV6_FLOWSPEC; return BGP_AF_IPV6_FLOWSPEC;
default: case SAFI_EVPN:
case SAFI_UNSPEC:
case SAFI_MAX:
return BGP_AF_MAX; return BGP_AF_MAX;
} }
break; break;
@ -2447,12 +2451,23 @@ static inline int afindex(afi_t afi, safi_t safi)
switch (safi) { switch (safi) {
case SAFI_EVPN: case SAFI_EVPN:
return BGP_AF_L2VPN_EVPN; return BGP_AF_L2VPN_EVPN;
default: case SAFI_UNICAST:
case SAFI_MULTICAST:
case SAFI_LABELED_UNICAST:
case SAFI_MPLS_VPN:
case SAFI_ENCAP:
case SAFI_FLOWSPEC:
case SAFI_UNSPEC:
case SAFI_MAX:
return BGP_AF_MAX; return BGP_AF_MAX;
} }
default: break;
case AFI_UNSPEC:
case AFI_MAX:
return BGP_AF_MAX; return BGP_AF_MAX;
} }
assert(!"Reached end of function we should never hit");
} }
/* If the peer is not a peer-group but is bound to a peer-group return 1 */ /* If the peer is not a peer-group but is bound to a peer-group return 1 */

View File

@ -150,8 +150,8 @@ rfapi_tunneltype_option_to_tlv(struct bgp *bgp, struct rfapi_ip_addr *ea,
bgp_encap_type_pbb_to_tlv(&tto->bgpinfo.pbb, attr); bgp_encap_type_pbb_to_tlv(&tto->bgpinfo.pbb, attr);
break; break;
default: case BGP_ENCAP_TYPE_RESERVED:
assert(0); assert(!"Cannot process BGP_ENCAP_TYPE_RESERVED");
} }
return tto->type; return tto->type;
} }
@ -737,7 +737,7 @@ void rfapi_print_tunneltype_option(void *stream, int column_offset,
print_encap_type_pbb(stream, column_offset, &tto->bgpinfo.pbb); print_encap_type_pbb(stream, column_offset, &tto->bgpinfo.pbb);
break; break;
default: case BGP_ENCAP_TYPE_RESERVED:
assert(0); assert(!"Cannot process BGP_ENCAP_TYPE_RESERVED");
} }
} }

View File

@ -260,8 +260,14 @@ void rfapiCheckRefcount(struct agg_node *rn, safi_t safi, int lockoffset)
} }
break; break;
default: case SAFI_UNSPEC:
assert(0); case SAFI_UNICAST:
case SAFI_MULTICAST:
case SAFI_EVPN:
case SAFI_LABELED_UNICAST:
case SAFI_FLOWSPEC:
case SAFI_MAX:
assert(!"Passed in safi should be impossible");
} }
} }
@ -2967,7 +2973,9 @@ static void rfapiBgpInfoFilteredImportEncap(
rt = import_table->imported_encap[afi]; rt = import_table->imported_encap[afi];
break; break;
default: case AFI_UNSPEC:
case AFI_L2VPN:
case AFI_MAX:
flog_err(EC_LIB_DEVELOPMENT, "%s: bad afi %d", __func__, afi); flog_err(EC_LIB_DEVELOPMENT, "%s: bad afi %d", __func__, afi);
return; return;
} }
@ -3416,7 +3424,8 @@ void rfapiBgpInfoFilteredImportVPN(
rt = import_table->imported_vpn[afi]; rt = import_table->imported_vpn[afi];
break; break;
default: case AFI_UNSPEC:
case AFI_MAX:
flog_err(EC_LIB_DEVELOPMENT, "%s: bad afi %d", __func__, afi); flog_err(EC_LIB_DEVELOPMENT, "%s: bad afi %d", __func__, afi);
return; return;
} }
@ -3808,11 +3817,19 @@ rfapiBgpInfoFilteredImportFunction(safi_t safi)
case SAFI_ENCAP: case SAFI_ENCAP:
return rfapiBgpInfoFilteredImportEncap; return rfapiBgpInfoFilteredImportEncap;
default: case SAFI_UNSPEC:
case SAFI_UNICAST:
case SAFI_MULTICAST:
case SAFI_EVPN:
case SAFI_LABELED_UNICAST:
case SAFI_FLOWSPEC:
case SAFI_MAX:
/* not expected */ /* not expected */
flog_err(EC_LIB_DEVELOPMENT, "%s: bad safi %d", __func__, safi); flog_err(EC_LIB_DEVELOPMENT, "%s: bad safi %d", __func__, safi);
return rfapiBgpInfoFilteredImportBadSafi; return rfapiBgpInfoFilteredImportBadSafi;
} }
assert(!"Reached end of function when we were not expecting to");
} }
void rfapiProcessUpdate(struct peer *peer, void rfapiProcessUpdate(struct peer *peer,
@ -4028,8 +4045,8 @@ static void rfapiProcessPeerDownRt(struct peer *peer,
{ {
struct agg_node *rn; struct agg_node *rn;
struct bgp_path_info *bpi; struct bgp_path_info *bpi;
struct agg_table *rt; struct agg_table *rt = NULL;
void (*timer_service_func)(struct thread *); void (*timer_service_func)(struct thread *) = NULL;
assert(afi == AFI_IP || afi == AFI_IP6); assert(afi == AFI_IP || afi == AFI_IP6);
@ -4044,14 +4061,19 @@ static void rfapiProcessPeerDownRt(struct peer *peer,
rt = import_table->imported_encap[afi]; rt = import_table->imported_encap[afi];
timer_service_func = rfapiWithdrawTimerEncap; timer_service_func = rfapiWithdrawTimerEncap;
break; break;
default: case SAFI_UNSPEC:
case SAFI_UNICAST:
case SAFI_MULTICAST:
case SAFI_EVPN:
case SAFI_LABELED_UNICAST:
case SAFI_FLOWSPEC:
case SAFI_MAX:
/* Suppress uninitialized variable warning */ /* Suppress uninitialized variable warning */
rt = NULL; rt = NULL;
timer_service_func = NULL; timer_service_func = NULL;
assert(0); assert(0);
} }
for (rn = agg_route_top(rt); rn; rn = agg_route_next(rn)) { for (rn = agg_route_top(rt); rn; rn = agg_route_next(rn)) {
for (bpi = rn->info; bpi; bpi = bpi->next) { for (bpi = rn->info; bpi; bpi = bpi->next) {
if (bpi->peer == peer) { if (bpi->peer == peer) {

View File

@ -244,7 +244,13 @@ void rfapiMonitorExtraFlush(safi_t safi, struct agg_node *rn)
} }
break; break;
default: case SAFI_UNSPEC:
case SAFI_UNICAST:
case SAFI_MULTICAST:
case SAFI_EVPN:
case SAFI_LABELED_UNICAST:
case SAFI_FLOWSPEC:
case SAFI_MAX:
assert(0); assert(0);
} }
XFREE(MTYPE_RFAPI_IT_EXTRA, hie); XFREE(MTYPE_RFAPI_IT_EXTRA, hie);
@ -306,7 +312,13 @@ void rfapiMonitorExtraPrune(safi_t safi, struct agg_node *rn)
} }
break; break;
default: case SAFI_UNSPEC:
case SAFI_UNICAST:
case SAFI_MULTICAST:
case SAFI_EVPN:
case SAFI_LABELED_UNICAST:
case SAFI_FLOWSPEC:
case SAFI_MAX:
assert(0); assert(0);
} }
XFREE(MTYPE_RFAPI_IT_EXTRA, hie); XFREE(MTYPE_RFAPI_IT_EXTRA, hie);

View File

@ -1863,7 +1863,7 @@ void rfapiPrintNhl(void *stream, struct rfapi_next_hop_entry *next_hops)
vo->v.local_nexthop.cost, HVTYNL); vo->v.local_nexthop.cost, HVTYNL);
break; break;
default: case RFAPI_VN_OPTION_TYPE_INTERNAL_RD:
fp(out, fp(out,
"%svn option type %d (unknown)%s", "%svn option type %d (unknown)%s",
offset, vo->type, HVTYNL); offset, vo->type, HVTYNL);
@ -1881,7 +1881,7 @@ void rfapiPrintNhl(void *stream, struct rfapi_next_hop_entry *next_hops)
rfapi_print_tunneltype_option( rfapi_print_tunneltype_option(
stream, 8, &uo->v.tunnel); stream, 8, &uo->v.tunnel);
break; break;
default: case RFAPI_UN_OPTION_TYPE_PROVISIONAL:
fp(out, "%sUN Option type %d%s", offset, fp(out, "%sUN Option type %d%s", offset,
uo->type, vty_newline); uo->type, vty_newline);
break; break;
@ -4175,7 +4175,8 @@ static int rfapi_vty_show_nve_summary(struct vty *vty,
case SHOW_NVE_SUMMARY_RESPONSES: case SHOW_NVE_SUMMARY_RESPONSES:
rfapiRibShowResponsesSummary(vty); rfapiRibShowResponsesSummary(vty);
default: case SHOW_NVE_SUMMARY_UNKNOWN_NVES:
case SHOW_NVE_SUMMARY_MAX:
break; break;
} }
vty_out(vty, "\n"); vty_out(vty, "\n");

View File

@ -351,6 +351,7 @@ AC_C_FLAG([-Wall])
AC_C_FLAG([-Wextra]) AC_C_FLAG([-Wextra])
AC_C_FLAG([-Wformat-nonliteral]) AC_C_FLAG([-Wformat-nonliteral])
AC_C_FLAG([-Wformat-security]) AC_C_FLAG([-Wformat-security])
AC_C_FLAG([-Wswitch-enum])
AC_C_FLAG([-Wstrict-prototypes]) AC_C_FLAG([-Wstrict-prototypes])
AC_C_FLAG([-Wmissing-prototypes]) AC_C_FLAG([-Wmissing-prototypes])
AC_C_FLAG([-Wmissing-declarations]) AC_C_FLAG([-Wmissing-declarations])

View File

@ -484,9 +484,11 @@ const char *isis_adj_yang_state(enum isis_adj_state state)
return "up"; return "up";
case ISIS_ADJ_INITIALIZING: case ISIS_ADJ_INITIALIZING:
return "init"; return "init";
default: case ISIS_ADJ_UNKNOWN:
return "failed"; return "failed";
} }
assert(!"Reached end of function where we are not expecting to");
} }
void isis_adj_expire(struct thread *thread) void isis_adj_expire(struct thread *thread)
@ -954,8 +956,9 @@ int isis_adj_usage2levels(enum isis_adj_usage usage)
return IS_LEVEL_2; return IS_LEVEL_2;
case ISIS_ADJ_LEVEL1AND2: case ISIS_ADJ_LEVEL1AND2:
return IS_LEVEL_1 | IS_LEVEL_2; return IS_LEVEL_1 | IS_LEVEL_2;
default: case ISIS_ADJ_NONE:
break;
}
return 0; return 0;
} }
assert(!"Reached end of function where we are not expecting to");
}

View File

@ -77,9 +77,11 @@ static const char *pdu_counter_index_to_name(enum pdu_counter_index index)
return "L1 PSNP"; return "L1 PSNP";
case L2_PARTIAL_SEQ_NUM_INDEX: case L2_PARTIAL_SEQ_NUM_INDEX:
return "L2 PSNP"; return "L2 PSNP";
default: case PDU_COUNTER_SIZE:
return "???????"; return "???????";
} }
assert(!"Reached end of function where we were not expecting to");
} }
void pdu_counter_count(pdu_counter_t counter, uint8_t pdu_type) void pdu_counter_count(pdu_counter_t counter, uint8_t pdu_type)

View File

@ -1587,8 +1587,8 @@ static void spf_path_process(struct isis_spftree *spftree,
vertex->N.ip.priority = priority; vertex->N.ip.priority = priority;
if (vertex->depth == 1 || listcount(vertex->Adj_N) > 0) { if (vertex->depth == 1 || listcount(vertex->Adj_N) > 0) {
struct isis_spftree *pre_spftree; struct isis_spftree *pre_spftree;
struct route_table *route_table; struct route_table *route_table = NULL;
bool allow_ecmp; bool allow_ecmp = false;
switch (spftree->type) { switch (spftree->type) {
case SPF_TYPE_RLFA: case SPF_TYPE_RLFA:
@ -1606,7 +1606,8 @@ static void spf_path_process(struct isis_spftree *spftree,
return; return;
} }
break; break;
default: case SPF_TYPE_FORWARD:
case SPF_TYPE_REVERSE:
break; break;
} }
@ -1624,7 +1625,8 @@ static void spf_path_process(struct isis_spftree *spftree,
pre_spftree->lfa.protection_counters pre_spftree->lfa.protection_counters
.tilfa[vertex->N.ip.priority] += 1; .tilfa[vertex->N.ip.priority] += 1;
break; break;
default: case SPF_TYPE_FORWARD:
case SPF_TYPE_REVERSE:
route_table = spftree->route_table; route_table = spftree->route_table;
allow_ecmp = true; allow_ecmp = true;
@ -1699,7 +1701,14 @@ static void isis_spf_loop(struct isis_spftree *spftree,
VTYPE_IPREACH_TE)) VTYPE_IPREACH_TE))
continue; continue;
break; break;
default: case VTYPE_PSEUDO_IS:
case VTYPE_PSEUDO_TE_IS:
case VTYPE_NONPSEUDO_IS:
case VTYPE_NONPSEUDO_TE_IS:
case VTYPE_ES:
case VTYPE_IPREACH_TE:
case VTYPE_IP6REACH_INTERNAL:
case VTYPE_IP6REACH_EXTERNAL:
break; break;
} }

View File

@ -1344,7 +1344,8 @@ void isis_te_lsp_event(struct isis_lsp *lsp, enum lsp_event event)
case LSP_DEL: case LSP_DEL:
isis_te_delete_lsp(area->mta, lsp0); isis_te_delete_lsp(area->mta, lsp0);
break; break;
default: case LSP_UNKNOWN:
case LSP_TICK:
break; break;
} }
} }

View File

@ -2340,9 +2340,11 @@ static const char *pdu_counter_index_to_name_json(enum pdu_counter_index index)
return "l1-psnp"; return "l1-psnp";
case L2_PARTIAL_SEQ_NUM_INDEX: case L2_PARTIAL_SEQ_NUM_INDEX:
return "l2-psnp"; return "l2-psnp";
default: case PDU_COUNTER_SIZE:
return "???????"; return "???????";
} }
assert(!"Reached end of function where we are not expecting to");
} }
static void common_isis_summary_json(struct json_object *json, static void common_isis_summary_json(struct json_object *json,

View File

@ -760,7 +760,7 @@ lde_update_label(struct fec_node *fn)
fn->fec.u.ipv6.prefixlen) != FILTER_PERMIT) fn->fec.u.ipv6.prefixlen) != FILTER_PERMIT)
return (NO_LABEL); return (NO_LABEL);
break; break;
default: case FEC_TYPE_PWID:
break; break;
} }
@ -790,7 +790,7 @@ lde_update_label(struct fec_node *fn)
fn->fec.u.ipv6.prefixlen) != FILTER_PERMIT) fn->fec.u.ipv6.prefixlen) != FILTER_PERMIT)
return (MPLS_LABEL_IMPLICIT_NULL); return (MPLS_LABEL_IMPLICIT_NULL);
return MPLS_LABEL_IPV6_EXPLICIT_NULL; return MPLS_LABEL_IPV6_EXPLICIT_NULL;
default: case FEC_TYPE_PWID:
break; break;
} }
} }
@ -929,7 +929,7 @@ lde_fec2prefix(const struct fec *fec, struct prefix *prefix)
prefix->u.prefix6 = fec->u.ipv6.prefix; prefix->u.prefix6 = fec->u.ipv6.prefix;
prefix->prefixlen = fec->u.ipv6.prefixlen; prefix->prefixlen = fec->u.ipv6.prefixlen;
break; break;
default: case FEC_TYPE_PWID:
prefix->family = AF_UNSPEC; prefix->family = AF_UNSPEC;
break; break;
} }
@ -1314,7 +1314,7 @@ lde_send_labelrequest(struct lde_nbr *ln, struct fec_node *fn,
if (!ln->v6_enabled) if (!ln->v6_enabled)
return; return;
break; break;
default: case FEC_TYPE_PWID:
fatalx("lde_send_labelrequest: unknown af"); fatalx("lde_send_labelrequest: unknown af");
} }
} else } else
@ -1595,7 +1595,7 @@ lde_nbr_addr_update(struct lde_nbr *ln, struct lde_addr *lde_addr, int removed)
if (lde_addr->af != AF_INET6) if (lde_addr->af != AF_INET6)
continue; continue;
break; break;
default: case FEC_TYPE_PWID:
continue; continue;
} }

View File

@ -178,7 +178,7 @@ rt_dump(pid_t pid)
rtctl.prefix.v6 = fn->fec.u.ipv6.prefix; rtctl.prefix.v6 = fn->fec.u.ipv6.prefix;
rtctl.prefixlen = fn->fec.u.ipv6.prefixlen; rtctl.prefixlen = fn->fec.u.ipv6.prefixlen;
break; break;
default: case FEC_TYPE_PWID:
continue; continue;
} }
@ -505,7 +505,7 @@ lde_check_mapping(struct map *map, struct lde_nbr *ln, int rcvd_label_mapping)
fec.u.ipv6.prefixlen) != FILTER_PERMIT) fec.u.ipv6.prefixlen) != FILTER_PERMIT)
return; return;
break; break;
default: case FEC_TYPE_PWID:
break; break;
} }
@ -665,7 +665,7 @@ lde_check_request(struct map *map, struct lde_nbr *ln)
lde_send_notification(ln, S_LOOP_DETECTED, map->msg_id, lde_send_notification(ln, S_LOOP_DETECTED, map->msg_id,
htons(MSG_TYPE_LABELREQUEST)); htons(MSG_TYPE_LABELREQUEST));
return; return;
default: case FEC_TYPE_PWID:
break; break;
} }
} }

View File

@ -597,7 +597,7 @@ ldp_zebra_read_route(ZAPI_CALLBACK_ARGS)
if (!(kr.flags & F_CONNECTED)) if (!(kr.flags & F_CONNECTED))
continue; continue;
break; break;
default: case NEXTHOP_TYPE_BLACKHOLE:
continue; continue;
} }

View File

@ -421,35 +421,33 @@ pfkey_md5sig_remove(struct nbr *nbr)
int int
pfkey_establish(struct nbr *nbr, struct nbr_params *nbrp) pfkey_establish(struct nbr *nbr, struct nbr_params *nbrp)
{ {
if (nbrp->auth.method == AUTH_NONE)
return (0);
switch (nbr->auth.method) { switch (nbr->auth.method) {
case AUTH_MD5SIG: case AUTH_MD5SIG:
strlcpy(nbr->auth.md5key, nbrp->auth.md5key, strlcpy(nbr->auth.md5key, nbrp->auth.md5key,
sizeof(nbr->auth.md5key)); sizeof(nbr->auth.md5key));
return (pfkey_md5sig_establish(nbr, nbrp)); return pfkey_md5sig_establish(nbr, nbrp);
default: case AUTH_NONE:
break; return 0;
} }
return (0); assert(!"Reached end of function where we are not expecting to");
} }
int int
pfkey_remove(struct nbr *nbr) pfkey_remove(struct nbr *nbr)
{ {
if (nbr->auth.method == AUTH_NONE || !nbr->auth.established) if (!nbr->auth.established)
return (0); return 0;
switch (nbr->auth.method) { switch (nbr->auth.method) {
case AUTH_MD5SIG: case AUTH_MD5SIG:
return (pfkey_md5sig_remove(nbr)); return pfkey_md5sig_remove(nbr);
default: case AUTH_NONE:
return 0;
break; break;
} }
return (0); assert(!"Reached end of function where we are not expecting to");
} }
int int

View File

@ -949,7 +949,8 @@ static int cmd_execute_command_real(vector vline, enum cmd_filter_type filter,
return CMD_ERR_INCOMPLETE; return CMD_ERR_INCOMPLETE;
case MATCHER_AMBIGUOUS: case MATCHER_AMBIGUOUS:
return CMD_ERR_AMBIGUOUS; return CMD_ERR_AMBIGUOUS;
default: case MATCHER_NO_MATCH:
case MATCHER_OK:
return CMD_ERR_NO_MATCH; return CMD_ERR_NO_MATCH;
} }
} }

View File

@ -267,9 +267,22 @@ static bool cmd_nodes_equal(struct graph_node *ga, struct graph_node *gb)
return false; return false;
return cmd_subgraph_equal(ga, gb, a->forkjoin); return cmd_subgraph_equal(ga, gb, a->forkjoin);
default: case VARIABLE_TKN:
case IPV4_TKN:
case IPV4_PREFIX_TKN:
case IPV6_PREFIX_TKN:
case IPV6_TKN:
case MAC_TKN:
case MAC_PREFIX_TKN:
case JOIN_TKN:
case START_TKN:
case END_TKN:
case NEG_ONLY_TKN:
case WORD_TKN:
return true; return true;
} }
assert(!"Reached end of function we should never hit");
} }
static void cmd_fork_bump_attr(struct graph_node *gn, struct graph_node *join, static void cmd_fork_bump_attr(struct graph_node *gn, struct graph_node *join,
@ -477,7 +490,7 @@ void cmd_graph_node_print_cb(struct graph_node *gn, struct buffer *buf)
char nbuf[512]; char nbuf[512];
struct cmd_token *tok = gn->data; struct cmd_token *tok = gn->data;
const char *color; const char *color = NULL;
if (wasend) { if (wasend) {
wasend = false; wasend = false;
@ -526,10 +539,23 @@ void cmd_graph_node_print_cb(struct graph_node *gn, struct buffer *buf)
case WORD_TKN: case WORD_TKN:
color = "#ffffff"; color = "#ffffff";
break; break;
default: case RANGE_TKN:
case IPV4_TKN:
case IPV4_PREFIX_TKN:
case IPV6_TKN:
case IPV6_PREFIX_TKN:
case MAC_TKN:
case MAC_PREFIX_TKN:
case END_TKN:
case VARIABLE_TKN:
color = "#ffffff"; color = "#ffffff";
break; break;
} }
/*
* Some compilers have the mistaken belief that we can
* get here without initializing color.
*/
snprintf(nbuf, sizeof(nbuf), snprintf(nbuf, sizeof(nbuf),
">, style = filled, fillcolor = \"%s\" ];\n", color); ">, style = filled, fillcolor = \"%s\" ];\n", color);
buffer_putstr(buf, nbuf); buffer_putstr(buf, nbuf);

View File

@ -437,7 +437,7 @@ enum matcher_rv command_complete(struct graph *graph, vector vline,
add_nexthops(next, gstack[0], gstack, add_nexthops(next, gstack[0], gstack,
idx + 1, neg); idx + 1, neg);
break; break;
default: case no_match:
trace_matcher("no_match\n"); trace_matcher("no_match\n");
break; break;
} }
@ -544,9 +544,22 @@ static enum match_type min_match_level(enum cmd_token_type type)
// allowing words to partly match enables command abbreviation // allowing words to partly match enables command abbreviation
case WORD_TKN: case WORD_TKN:
return partly_match; return partly_match;
default: case RANGE_TKN:
case IPV4_TKN:
case IPV4_PREFIX_TKN:
case IPV6_TKN:
case IPV6_PREFIX_TKN:
case MAC_TKN:
case MAC_PREFIX_TKN:
case FORK_TKN:
case JOIN_TKN:
case END_TKN:
case NEG_ONLY_TKN:
case VARIABLE_TKN:
return exact_match; return exact_match;
} }
assert(!"Reached end of function we should never hit");
} }
/** /**
@ -572,9 +585,15 @@ static int score_precedence(enum cmd_token_type type)
return 3; return 3;
case VARIABLE_TKN: case VARIABLE_TKN:
return 4; return 4;
default: case JOIN_TKN:
case START_TKN:
case END_TKN:
case NEG_ONLY_TKN:
case SPECIAL_TKN:
return 10; return 10;
} }
assert(!"Reached end of function we should never hit");
} }
/** /**
@ -695,9 +714,14 @@ static enum match_type match_token(struct cmd_token *token, char *input_token)
case MAC_PREFIX_TKN: case MAC_PREFIX_TKN:
return match_mac(input_token, true); return match_mac(input_token, true);
case END_TKN: case END_TKN:
default: case FORK_TKN:
case JOIN_TKN:
case START_TKN:
case NEG_ONLY_TKN:
return no_match; return no_match;
} }
assert(!"Reached end of function we should never hit");
} }
#define IPV4_ADDR_STR "0123456789." #define IPV4_ADDR_STR "0123456789."

View File

@ -195,7 +195,7 @@ DEFUN (grammar_test_match,
case MATCHER_AMBIGUOUS: case MATCHER_AMBIGUOUS:
vty_out(vty, "%% Ambiguous command\n"); vty_out(vty, "%% Ambiguous command\n");
break; break;
default: case MATCHER_OK:
vty_out(vty, "%% Unknown error\n"); vty_out(vty, "%% Unknown error\n");
break; break;
} }

View File

@ -61,9 +61,11 @@ static inline afi_t afi_iana2int(iana_afi_t afi)
return AFI_IP6; return AFI_IP6;
case IANA_AFI_L2VPN: case IANA_AFI_L2VPN:
return AFI_L2VPN; return AFI_L2VPN;
default: case IANA_AFI_RESERVED:
return AFI_MAX; return AFI_MAX;
} }
return AFI_MAX;
} }
static inline iana_afi_t afi_int2iana(afi_t afi) static inline iana_afi_t afi_int2iana(afi_t afi)
@ -75,9 +77,12 @@ static inline iana_afi_t afi_int2iana(afi_t afi)
return IANA_AFI_IPV6; return IANA_AFI_IPV6;
case AFI_L2VPN: case AFI_L2VPN:
return IANA_AFI_L2VPN; return IANA_AFI_L2VPN;
default: case AFI_UNSPEC:
case AFI_MAX:
return IANA_AFI_RESERVED; return IANA_AFI_RESERVED;
} }
return IANA_AFI_RESERVED;
} }
static inline const char *iana_afi2str(iana_afi_t afi) static inline const char *iana_afi2str(iana_afi_t afi)
@ -102,9 +107,11 @@ static inline safi_t safi_iana2int(iana_safi_t safi)
return SAFI_LABELED_UNICAST; return SAFI_LABELED_UNICAST;
case IANA_SAFI_FLOWSPEC: case IANA_SAFI_FLOWSPEC:
return SAFI_FLOWSPEC; return SAFI_FLOWSPEC;
default: case IANA_SAFI_RESERVED:
return SAFI_MAX; return SAFI_MAX;
} }
return SAFI_MAX;
} }
static inline iana_safi_t safi_int2iana(safi_t safi) static inline iana_safi_t safi_int2iana(safi_t safi)
@ -124,9 +131,12 @@ static inline iana_safi_t safi_int2iana(safi_t safi)
return IANA_SAFI_LABELED_UNICAST; return IANA_SAFI_LABELED_UNICAST;
case SAFI_FLOWSPEC: case SAFI_FLOWSPEC:
return IANA_SAFI_FLOWSPEC; return IANA_SAFI_FLOWSPEC;
default: case SAFI_UNSPEC:
case SAFI_MAX:
return IANA_SAFI_RESERVED; return IANA_SAFI_RESERVED;
} }
return IANA_SAFI_RESERVED;
} }
static inline const char *iana_safi2str(iana_safi_t safi) static inline const char *iana_safi2str(iana_safi_t safi)

View File

@ -70,9 +70,11 @@ static inline int ipaddr_family(const struct ipaddr *ip)
return AF_INET; return AF_INET;
case IPADDR_V6: case IPADDR_V6:
return AF_INET6; return AF_INET6;
default: case IPADDR_NONE:
return AF_UNSPEC; return AF_UNSPEC;
} }
assert(!"Reached end of function where we should never hit");
} }
static inline int str2ipaddr(const char *str, struct ipaddr *ip) static inline int str2ipaddr(const char *str, struct ipaddr *ip)
@ -158,9 +160,11 @@ static inline int ipaddr_cmp(const struct ipaddr *a, const struct ipaddr *b)
case IPADDR_V6: case IPADDR_V6:
return memcmp((void *)&a->ipaddr_v6, (void *)&b->ipaddr_v6, return memcmp((void *)&a->ipaddr_v6, (void *)&b->ipaddr_v6,
sizeof(a->ipaddr_v6)); sizeof(a->ipaddr_v6));
default: case IPADDR_NONE:
return 0; return 0;
} }
assert(!"Reached end of function we should never hit");
} }
static inline bool ipaddr_is_zero(const struct ipaddr *ip) static inline bool ipaddr_is_zero(const struct ipaddr *ip)

View File

@ -443,7 +443,7 @@ struct ls_vertex *ls_vertex_add(struct ls_ted *ted, struct ls_node *node)
case ISIS_L2: case ISIS_L2:
key = sysid_to_key(node->adv.id.iso.sys_id); key = sysid_to_key(node->adv.id.iso.sys_id);
break; break;
default: case UNKNOWN:
key = 0; key = 0;
break; break;
} }
@ -565,7 +565,7 @@ struct ls_vertex *ls_find_vertex_by_id(struct ls_ted *ted,
case ISIS_L2: case ISIS_L2:
vertex.key = sysid_to_key(nid.id.iso.sys_id); vertex.key = sysid_to_key(nid.id.iso.sys_id);
break; break;
default: case UNKNOWN:
return NULL; return NULL;
} }
@ -1649,7 +1649,8 @@ struct ls_message *ls_vertex2msg(struct ls_message *msg,
case SYNC: case SYNC:
msg->event = LS_MSG_EVENT_SYNC; msg->event = LS_MSG_EVENT_SYNC;
break; break;
default: case UNSET:
case ORPHAN:
msg->event = LS_MSG_EVENT_UNDEF; msg->event = LS_MSG_EVENT_UNDEF;
break; break;
} }
@ -1681,7 +1682,8 @@ struct ls_message *ls_edge2msg(struct ls_message *msg, struct ls_edge *edge)
case SYNC: case SYNC:
msg->event = LS_MSG_EVENT_SYNC; msg->event = LS_MSG_EVENT_SYNC;
break; break;
default: case UNSET:
case ORPHAN:
msg->event = LS_MSG_EVENT_UNDEF; msg->event = LS_MSG_EVENT_UNDEF;
break; break;
} }
@ -1717,7 +1719,8 @@ struct ls_message *ls_subnet2msg(struct ls_message *msg,
case SYNC: case SYNC:
msg->event = LS_MSG_EVENT_SYNC; msg->event = LS_MSG_EVENT_SYNC;
break; break;
default: case UNSET:
case ORPHAN:
msg->event = LS_MSG_EVENT_UNDEF; msg->event = LS_MSG_EVENT_UNDEF;
break; break;
} }

View File

@ -73,7 +73,10 @@ char *mlag_lib_msgid_to_str(enum mlag_msg_type msg_type, char *buf, size_t size)
case MLAG_PEER_FRR_STATUS: case MLAG_PEER_FRR_STATUS:
snprintf(buf, size, "Mlag Peer FRR Status"); snprintf(buf, size, "Mlag Peer FRR Status");
break; break;
default: case MLAG_PIM_CFG_DUMP:
snprintf(buf, size, "Mlag Pim Configuration Dump");
break;
case MLAG_MSG_NONE:
snprintf(buf, size, "Unknown %d", msg_type); snprintf(buf, size, "Unknown %d", msg_type);
break; break;
} }

View File

@ -731,7 +731,13 @@ int nb_candidate_edit(struct nb_config *candidate,
case NB_OP_MOVE: case NB_OP_MOVE:
/* TODO: update configuration. */ /* TODO: update configuration. */
break; break;
default: case NB_OP_PRE_VALIDATE:
case NB_OP_APPLY_FINISH:
case NB_OP_GET_ELEM:
case NB_OP_GET_NEXT:
case NB_OP_GET_KEYS:
case NB_OP_LOOKUP_ENTRY:
case NB_OP_RPC:
flog_warn(EC_LIB_DEVELOPMENT, flog_warn(EC_LIB_DEVELOPMENT,
"%s: unknown operation (%u) [xpath %s]", __func__, "%s: unknown operation (%u) [xpath %s]", __func__,
operation, xpath_edit); operation, xpath_edit);
@ -1360,7 +1366,13 @@ static int nb_callback_configuration(struct nb_context *context,
ret = nb_callback_move(context, nb_node, event, dnode, errmsg, ret = nb_callback_move(context, nb_node, event, dnode, errmsg,
errmsg_len); errmsg_len);
break; break;
default: case NB_OP_PRE_VALIDATE:
case NB_OP_APPLY_FINISH:
case NB_OP_GET_ELEM:
case NB_OP_GET_NEXT:
case NB_OP_GET_KEYS:
case NB_OP_LOOKUP_ENTRY:
case NB_OP_RPC:
yang_dnode_get_path(dnode, xpath, sizeof(xpath)); yang_dnode_get_path(dnode, xpath, sizeof(xpath));
flog_err(EC_LIB_DEVELOPMENT, flog_err(EC_LIB_DEVELOPMENT,
"%s: unknown operation (%u) [xpath %s]", __func__, "%s: unknown operation (%u) [xpath %s]", __func__,
@ -1489,7 +1501,7 @@ static int nb_transaction_process(enum nb_event event,
* 'prepare' phase. * 'prepare' phase.
*/ */
break; break;
default: case NB_EV_VALIDATE:
break; break;
} }
} }
@ -2319,9 +2331,9 @@ const char *nb_event_name(enum nb_event event)
return "abort"; return "abort";
case NB_EV_APPLY: case NB_EV_APPLY:
return "apply"; return "apply";
default:
return "unknown";
} }
assert(!"Reached end of function we should never hit");
} }
const char *nb_operation_name(enum nb_operation operation) const char *nb_operation_name(enum nb_operation operation)
@ -2349,9 +2361,9 @@ const char *nb_operation_name(enum nb_operation operation)
return "lookup_entry"; return "lookup_entry";
case NB_OP_RPC: case NB_OP_RPC:
return "rpc"; return "rpc";
default:
return "unknown";
} }
assert(!"Reached end of function we should never hit");
} }
const char *nb_err_name(enum nb_error error) const char *nb_err_name(enum nb_error error)
@ -2373,9 +2385,9 @@ const char *nb_err_name(enum nb_error error)
return "failed to allocate resource"; return "failed to allocate resource";
case NB_ERR_INCONSISTENCY: case NB_ERR_INCONSISTENCY:
return "internal inconsistency"; return "internal inconsistency";
default:
return "unknown";
} }
assert(!"Reached end of function we should never hit");
} }
const char *nb_client_name(enum nb_client client) const char *nb_client_name(enum nb_client client)
@ -2389,9 +2401,13 @@ const char *nb_client_name(enum nb_client client)
return "Sysrepo"; return "Sysrepo";
case NB_CLIENT_GRPC: case NB_CLIENT_GRPC:
return "gRPC"; return "gRPC";
default: case NB_CLIENT_PCEP:
return "unknown"; return "Pcep";
case NB_CLIENT_NONE:
return "None";
} }
assert(!"Reached end of function we should never hit");
} }
static void nb_load_callbacks(const struct frr_yang_module_info *module) static void nb_load_callbacks(const struct frr_yang_module_info *module)

View File

@ -148,11 +148,11 @@ const char *afi2str(afi_t afi)
case AFI_L2VPN: case AFI_L2VPN:
return "l2vpn"; return "l2vpn";
case AFI_MAX: case AFI_MAX:
case AFI_UNSPEC:
return "bad-value"; return "bad-value";
default:
break;
} }
return NULL;
assert(!"Reached end of function we should never reach");
} }
const char *safi2str(safi_t safi) const char *safi2str(safi_t safi)
@ -172,9 +172,12 @@ const char *safi2str(safi_t safi)
return "labeled-unicast"; return "labeled-unicast";
case SAFI_FLOWSPEC: case SAFI_FLOWSPEC:
return "flowspec"; return "flowspec";
default: case SAFI_UNSPEC:
case SAFI_MAX:
return "unknown"; return "unknown";
} }
assert(!"Reached end of function we should never reach");
} }
/* If n includes p prefix then return 1 else return 0. */ /* If n includes p prefix then return 1 else return 0. */
@ -1507,7 +1510,7 @@ static ssize_t printfrr_ia(struct fbuf *buf, struct printfrr_eargs *ea,
return bputch(buf, '*'); return bputch(buf, '*');
break; break;
default: case IPADDR_NONE:
break; break;
} }
} }

View File

@ -1754,7 +1754,8 @@ route_map_apply_match(struct route_map_rule_list *match_list,
ret = RMAP_MATCH; ret = RMAP_MATCH;
break; break;
default: case RMAP_OKAY:
case RMAP_ERROR:
break; break;
} }

View File

@ -635,7 +635,7 @@ uint32_t stream_get_ipv4(struct stream *s)
bool stream_get_ipaddr(struct stream *s, struct ipaddr *ip) bool stream_get_ipaddr(struct stream *s, struct ipaddr *ip)
{ {
uint16_t ipa_len; uint16_t ipa_len = 0;
STREAM_VERIFY_SANE(s); STREAM_VERIFY_SANE(s);
@ -654,7 +654,7 @@ bool stream_get_ipaddr(struct stream *s, struct ipaddr *ip)
case IPADDR_V6: case IPADDR_V6:
ipa_len = IPV6_MAX_BYTELEN; ipa_len = IPV6_MAX_BYTELEN;
break; break;
default: case IPADDR_NONE:
flog_err(EC_LIB_DEVELOPMENT, flog_err(EC_LIB_DEVELOPMENT,
"%s: unknown ip address-family: %u", __func__, "%s: unknown ip address-family: %u", __func__,
ip->ipa_type); ip->ipa_type);
@ -947,7 +947,7 @@ bool stream_put_ipaddr(struct stream *s, struct ipaddr *ip)
case IPADDR_V6: case IPADDR_V6:
stream_write(s, (uint8_t *)&ip->ipaddr_v6, 16); stream_write(s, (uint8_t *)&ip->ipaddr_v6, 16);
break; break;
default: case IPADDR_NONE:
flog_err(EC_LIB_DEVELOPMENT, flog_err(EC_LIB_DEVELOPMENT,
"%s: unknown ip address-family: %u", __func__, "%s: unknown ip address-family: %u", __func__,
ip->ipa_type); ip->ipa_type);

View File

@ -610,7 +610,7 @@ int vrf_configure_backend(enum vrf_backend_type backend)
case VRF_BACKEND_NETNS: case VRF_BACKEND_NETNS:
case VRF_BACKEND_VRF_LITE: case VRF_BACKEND_VRF_LITE:
break; break;
default: case VRF_BACKEND_MAX:
return -1; return -1;
} }

View File

@ -2727,7 +2727,11 @@ static void vty_event_serv(enum vty_event event, struct vty_serv *vty_serv)
vty_serv->sock, &vty_serv->t_accept); vty_serv->sock, &vty_serv->t_accept);
break; break;
#endif /* VTYSH */ #endif /* VTYSH */
default: case VTY_READ:
case VTY_WRITE:
case VTY_TIMEOUT_RESET:
case VTYSH_READ:
case VTYSH_WRITE:
assert(!"vty_event_serv() called incorrectly"); assert(!"vty_event_serv() called incorrectly");
} }
} }
@ -2766,7 +2770,8 @@ static void vty_event(enum vty_event event, struct vty *vty)
thread_add_timer(vty_master, vty_timeout, vty, thread_add_timer(vty_master, vty_timeout, vty,
vty->v_timeout, &vty->t_timeout); vty->v_timeout, &vty->t_timeout);
break; break;
default: case VTY_SERV:
case VTYSH_SERV:
assert(!"vty_event() called incorrectly"); assert(!"vty_event() called incorrectly");
} }
} }

View File

@ -1682,7 +1682,8 @@ int zapi_tc_class_encode(uint8_t cmd, struct stream *s, struct tc_class *class)
stream_putq(s, class->u.htb.rate); stream_putq(s, class->u.htb.rate);
stream_putq(s, class->u.htb.ceil); stream_putq(s, class->u.htb.ceil);
break; break;
default: case TC_QDISC_UNSPEC:
case TC_QDISC_NOQUEUE:
/* not implemented */ /* not implemented */
break; break;
} }
@ -1730,7 +1731,10 @@ int zapi_tc_filter_encode(uint8_t cmd, struct stream *s,
} }
stream_putl(s, filter->u.flower.classid); stream_putl(s, filter->u.flower.classid);
break; break;
default: case TC_FILTER_UNSPEC:
case TC_FILTER_BPF:
case TC_FILTER_FLOW:
case TC_FILTER_U32:
/* not implemented */ /* not implemented */
break; break;
} }

View File

@ -877,7 +877,8 @@ static int log_5424_show(struct vty *vty)
} }
break; break;
default: case ZLOG_FMT_3164:
case ZLOG_FMT_LOCAL:
vty_out(vty, vty_out(vty,
" structured data is not supported by the selected format\n"); " structured data is not supported by the selected format\n");
break; break;

View File

@ -330,7 +330,14 @@ static void nhrp_cache_update_timers(struct nhrp_cache *c)
thread_add_timer_msec(master, nhrp_cache_do_free, c, 10, thread_add_timer_msec(master, nhrp_cache_do_free, c, 10,
&c->t_timeout); &c->t_timeout);
break; break;
default: case NHRP_CACHE_INCOMPLETE:
case NHRP_CACHE_NEGATIVE:
case NHRP_CACHE_CACHED:
case NHRP_CACHE_DYNAMIC:
case NHRP_CACHE_NHS:
case NHRP_CACHE_STATIC:
case NHRP_CACHE_LOCAL:
case NHRP_CACHE_NUM_TYPES:
if (c->cur.expires) if (c->cur.expires)
thread_add_timer(master, nhrp_cache_do_timeout, c, thread_add_timer(master, nhrp_cache_do_timeout, c,
c->cur.expires - monotime(NULL), c->cur.expires - monotime(NULL),

View File

@ -184,16 +184,17 @@ void nhrp_interface_update_nbma(struct interface *ifp,
struct nhrp_interface *nifp = ifp->info, *nbmanifp = NULL; struct nhrp_interface *nifp = ifp->info, *nbmanifp = NULL;
struct interface *nbmaifp = NULL; struct interface *nbmaifp = NULL;
union sockunion nbma; union sockunion nbma;
struct in_addr saddr = {0};
sockunion_family(&nbma) = AF_UNSPEC; sockunion_family(&nbma) = AF_UNSPEC;
if (nifp->source) if (nifp->source)
nbmaifp = if_lookup_by_name(nifp->source, nifp->link_vrf_id); nbmaifp = if_lookup_by_name(nifp->source, nifp->link_vrf_id);
switch (ifp->ll_type) { if (ifp->ll_type != ZEBRA_LLT_IPGRE)
case ZEBRA_LLT_IPGRE: { debugf(NHRP_DEBUG_IF, "%s: Ignoring non GRE interface type %u",
struct in_addr saddr = {0}; __func__, ifp->ll_type);
else {
if (!gre_info) { if (!gre_info) {
nhrp_send_zebra_gre_request(ifp); nhrp_send_zebra_gre_request(ifp);
return; return;
@ -214,9 +215,6 @@ void nhrp_interface_update_nbma(struct interface *ifp,
nbmaifp = nbmaifp =
if_lookup_by_index(nifp->link_idx, if_lookup_by_index(nifp->link_idx,
nifp->link_vrf_id); nifp->link_vrf_id);
} break;
default:
break;
} }
if (nbmaifp) if (nbmaifp)

View File

@ -139,7 +139,17 @@ void nhrp_route_announce(int add, enum nhrp_cache_type type,
/* Regular route, so these are announced /* Regular route, so these are announced
* to other routing daemons */ * to other routing daemons */
break; break;
default: case NHRP_CACHE_INVALID:
case NHRP_CACHE_INCOMPLETE:
/*
* I cannot believe that we want to set a FIB_OVERRIDE
* for invalid state or incomplete. But this matches
* the original code. Someone will probably notice
* the problem eventually
*/
case NHRP_CACHE_CACHED:
case NHRP_CACHE_LOCAL:
case NHRP_CACHE_NUM_TYPES:
SET_FLAG(api.flags, ZEBRA_FLAG_FIB_OVERRIDE); SET_FLAG(api.flags, ZEBRA_FLAG_FIB_OVERRIDE);
break; break;
} }

View File

@ -135,11 +135,6 @@ static void vici_parse_message(struct vici_conn *vici, struct zbuf *msg,
case VICI_LIST_END: case VICI_LIST_END:
debugf(NHRP_DEBUG_VICI, "VICI: List end"); debugf(NHRP_DEBUG_VICI, "VICI: List end");
break; break;
default:
debugf(NHRP_DEBUG_VICI,
"VICI: Unsupported message component type %d",
*type);
return;
} }
} }
} }
@ -207,7 +202,12 @@ static void parse_sa_message(struct vici_message_ctx *ctx,
} }
} }
break; break;
default: case VICI_START:
case VICI_KEY_VALUE:
case VICI_LIST_START:
case VICI_LIST_ITEM:
case VICI_LIST_END:
case VICI_END:
if (!key || !key->ptr) if (!key || !key->ptr)
break; break;
@ -286,7 +286,13 @@ static void parse_cmd_response(struct vici_message_ctx *ctx,
&& blob2buf(val, buf, sizeof(buf))) && blob2buf(val, buf, sizeof(buf)))
flog_err(EC_NHRP_SWAN, "VICI: strongSwan: %s", buf); flog_err(EC_NHRP_SWAN, "VICI: strongSwan: %s", buf);
break; break;
default: case VICI_START:
case VICI_SECTION_START:
case VICI_SECTION_END:
case VICI_LIST_START:
case VICI_LIST_ITEM:
case VICI_LIST_END:
case VICI_END:
break; break;
} }
} }

View File

@ -539,7 +539,7 @@ void ospf_spf_remove_resource(struct vertex *vertex, struct list *vertex_list,
vertex_list); vertex_list);
break; break;
default: case OSPF_TI_LFA_UNDEFINED_PROTECTION:
/* do nothing */ /* do nothing */
break; break;
} }

View File

@ -1079,9 +1079,11 @@ static const char *objfun_type_name(enum objfun_type type)
return "mss"; return "mss";
case OBJFUN_MSN: case OBJFUN_MSN:
return "msn"; return "msn";
default: case OBJFUN_UNDEFINED:
return NULL; return NULL;
} }
assert(!"Reached end of function we should never hit");
} }
DEFPY_NOSH(show_debugging_pathd, show_debugging_pathd_cmd, DEFPY_NOSH(show_debugging_pathd, show_debugging_pathd_cmd,

View File

@ -239,7 +239,10 @@ void pathd_srte_segment_list_segment_nai_apply_finish(
args->dnode, "./local-prefix-len"); args->dnode, "./local-prefix-len");
local_prefix_len = atoi(local_prefix_len_buf); local_prefix_len = atoi(local_prefix_len_buf);
break; break;
default: case SRTE_SEGMENT_NAI_TYPE_NONE:
case SRTE_SEGMENT_NAI_TYPE_IPV6_ADJACENCY_LINK_LOCAL_ADDRESSES:
case SRTE_SEGMENT_NAI_TYPE_IPV6_LOCAL_IFACE:
case SRTE_SEGMENT_NAI_TYPE_IPV6_ALGORITHM:
break; break;
} }

View File

@ -210,7 +210,7 @@ int pcep_main_event_handler(enum pcep_main_event_type type, int pcc_id,
ret = pcep_main_event_remove_candidate_segments( ret = pcep_main_event_remove_candidate_segments(
(const char *)payload, true); (const char *)payload, true);
break; break;
default: case PCEP_MAIN_EVENT_UNDEFINED:
flog_warn(EC_PATH_PCEP_RECOVERABLE_INTERNAL_ERROR, flog_warn(EC_PATH_PCEP_RECOVERABLE_INTERNAL_ERROR,
"Unexpected event received in the main thread: %u", "Unexpected event received in the main thread: %u",
type); type);

View File

@ -270,7 +270,8 @@ path_pcep_config_list_path_hops(struct srte_segment_list *segment_list)
sizeof(struct ipaddr)); sizeof(struct ipaddr));
hop->nai.remote_iface = segment->nai_remote_iface; hop->nai.remote_iface = segment->nai_remote_iface;
break; break;
default: case SRTE_SEGMENT_NAI_TYPE_NONE:
case SRTE_SEGMENT_NAI_TYPE_IPV6_ADJACENCY_LINK_LOCAL_ADDRESSES:
break; break;
} }
last_hop = hop; last_hop = hop;
@ -489,9 +490,12 @@ status_int_to_ext(enum srte_policy_status status)
return PCEP_LSP_OPERATIONAL_GOING_UP; return PCEP_LSP_OPERATIONAL_GOING_UP;
case SRTE_POLICY_STATUS_GOING_DOWN: case SRTE_POLICY_STATUS_GOING_DOWN:
return PCEP_LSP_OPERATIONAL_GOING_DOWN; return PCEP_LSP_OPERATIONAL_GOING_DOWN;
default: case SRTE_POLICY_STATUS_DOWN:
case SRTE_POLICY_STATUS_UNKNOWN:
return PCEP_LSP_OPERATIONAL_DOWN; return PCEP_LSP_OPERATIONAL_DOWN;
} }
assert(!"Reached end of function where we are not expecting to");
} }
enum pcep_sr_subobj_nai pcep_nai_type(enum srte_segment_nai_type type) enum pcep_sr_subobj_nai pcep_nai_type(enum srte_segment_nai_type type)
@ -539,7 +543,10 @@ enum srte_segment_nai_type srte_nai_type(enum pcep_sr_subobj_nai type)
return SRTE_SEGMENT_NAI_TYPE_IPV6_ADJACENCY; return SRTE_SEGMENT_NAI_TYPE_IPV6_ADJACENCY;
case PCEP_SR_SUBOBJ_NAI_UNNUMBERED_IPV4_ADJACENCY: case PCEP_SR_SUBOBJ_NAI_UNNUMBERED_IPV4_ADJACENCY:
return SRTE_SEGMENT_NAI_TYPE_IPV4_UNNUMBERED_ADJACENCY; return SRTE_SEGMENT_NAI_TYPE_IPV4_UNNUMBERED_ADJACENCY;
default: case PCEP_SR_SUBOBJ_NAI_LINK_LOCAL_IPV6_ADJACENCY:
case PCEP_SR_SUBOBJ_NAI_UNKNOWN:
return SRTE_SEGMENT_NAI_TYPE_NONE; return SRTE_SEGMENT_NAI_TYPE_NONE;
} }
assert(!"Reached end of function where we were not expecting to");
} }

View File

@ -603,7 +603,9 @@ void pcep_thread_timer_handler(struct thread *thread)
pcep_thread_remove_candidate_path_segments(ctrl_state, pcep_thread_remove_candidate_path_segments(ctrl_state,
pcc_state); pcc_state);
break; break;
default: case TM_PCEPLIB_TIMER:
case TM_UNDEFINED:
case TM_MAX:
flog_warn(EC_PATH_PCEP_RECOVERABLE_INTERNAL_ERROR, flog_warn(EC_PATH_PCEP_RECOVERABLE_INTERNAL_ERROR,
"Unknown controller timer triggered: %u", timer_type); "Unknown controller timer triggered: %u", timer_type);
break; break;
@ -823,7 +825,7 @@ void pcep_thread_event_handler(struct thread *thread)
pcep_pcc_send_error(ctrl_state, pcc_state, error, pcep_pcc_send_error(ctrl_state, pcc_state, error,
(bool)sub_type); (bool)sub_type);
break; break;
default: case EV_PCEPLIB_EVENT:
flog_warn(EC_PATH_PCEP_RECOVERABLE_INTERNAL_ERROR, flog_warn(EC_PATH_PCEP_RECOVERABLE_INTERNAL_ERROR,
"Unexpected event received in controller thread: %u", "Unexpected event received in controller thread: %u",
type); type);
@ -1074,10 +1076,16 @@ const char *timer_type_name(enum pcep_ctrl_timer_type type)
return "PCEPLIB_TIMER"; return "PCEPLIB_TIMER";
case TM_TIMEOUT: case TM_TIMEOUT:
return "TIMEOUT"; return "TIMEOUT";
default: case TM_CALCULATE_BEST_PCE:
return "BEST_PCE";
case TM_SESSION_TIMEOUT_PCC:
return "TIMEOUT_PCC";
case TM_MAX:
return "UNKNOWN"; return "UNKNOWN";
} }
};
assert(!"Reached end of function where we did not expect to");
}
const char *timeout_type_name(enum pcep_ctrl_timeout_type type) const char *timeout_type_name(enum pcep_ctrl_timeout_type type)
{ {
@ -1086,7 +1094,9 @@ const char *timeout_type_name(enum pcep_ctrl_timeout_type type)
return "UNDEFINED"; return "UNDEFINED";
case TO_COMPUTATION_REQUEST: case TO_COMPUTATION_REQUEST:
return "COMPUTATION_REQUEST"; return "COMPUTATION_REQUEST";
default: case TO_MAX:
return "UNKNOWN"; return "UNKNOWN";
} }
assert(!"Reached end of function where we did not expect to");
} }

View File

@ -90,9 +90,9 @@ const char *pcc_status_name(enum pcc_status status)
return "SYNCHRONIZING"; return "SYNCHRONIZING";
case PCEP_PCC_OPERATING: case PCEP_PCC_OPERATING:
return "OPERATING"; return "OPERATING";
default:
return "UNKNOWN";
} }
assert(!"Reached end of function where we do not expect to");
} }
const char *pcep_event_type_name(pcep_event_type event_type) const char *pcep_event_type_name(pcep_event_type event_type)
@ -118,9 +118,13 @@ const char *pcep_event_type_name(pcep_event_type event_type)
return "PCC_RCVD_MAX_INVALID_MSGS"; return "PCC_RCVD_MAX_INVALID_MSGS";
case PCC_RCVD_MAX_UNKOWN_MSGS: case PCC_RCVD_MAX_UNKOWN_MSGS:
return "PCC_RCVD_MAX_UNKOWN_MSGS"; return "PCC_RCVD_MAX_UNKOWN_MSGS";
default: case PCC_CONNECTION_FAILURE:
return "UNKNOWN"; return "PCC_CONNECTION_FAILURE";
case PCC_SENT_INVALID_OPEN:
return "PCC_SENT_INVALID_OPEN";
} }
assert(!"Reached end of function where we do not expect to");
} }
const char *pcep_error_type_name(enum pcep_error_type error_type) const char *pcep_error_type_name(enum pcep_error_type error_type)
@ -640,9 +644,11 @@ const char *pcep_message_type_name(enum pcep_message_types pcep_message_type)
return "INITIATE"; return "INITIATE";
case PCEP_TYPE_START_TLS: case PCEP_TYPE_START_TLS:
return "START_TLS"; return "START_TLS";
default: case PCEP_TYPE_MAX:
return "UNKNOWN"; return "UNKNOWN";
} }
assert(!"Reached end of function where we are not expecting to");
} }
const char *pcep_object_class_name(enum pcep_object_classes obj_class) const char *pcep_object_class_name(enum pcep_object_classes obj_class)
@ -694,9 +700,11 @@ const char *pcep_object_class_name(enum pcep_object_classes obj_class)
return "SERVER_IND"; return "SERVER_IND";
case PCEP_OBJ_CLASS_ASSOCIATION: case PCEP_OBJ_CLASS_ASSOCIATION:
return "ASSOCIATION"; return "ASSOCIATION";
default: case PCEP_OBJ_CLASS_MAX:
return "UNKNOWN"; return "UNKNOWN";
} }
assert(!"Reached end of function where we are not expecting to");
} }
const char *pcep_object_type_name(enum pcep_object_classes obj_class, const char *pcep_object_type_name(enum pcep_object_classes obj_class,
@ -769,9 +777,9 @@ const char *pcep_lsp_status_name(enum pcep_lsp_operational_status status)
return "GOING_DOWN"; return "GOING_DOWN";
case PCEP_LSP_OPERATIONAL_GOING_UP: case PCEP_LSP_OPERATIONAL_GOING_UP:
return "GOING_UP"; return "GOING_UP";
default:
return "UNKNOWN";
} }
assert(!"Reached end of function where we do not expect to");
} }
@ -818,9 +826,11 @@ const char *pcep_tlv_type_name(enum pcep_object_tlv_types tlv_type)
return "UNKNOWN"; return "UNKNOWN";
case PCEP_OBJ_TLV_TYPE_ARBITRARY: case PCEP_OBJ_TLV_TYPE_ARBITRARY:
return "ARBITRARY"; return "ARBITRARY";
default: case PCEP_OBJ_TYPE_CISCO_BSID:
return "UNKNOWN"; return "CISCO_BSID";
} }
assert(!"Reached end of function where we do not expect to");
} }
const char *pcep_ro_type_name(enum pcep_ro_subobj_types ro_type) const char *pcep_ro_type_name(enum pcep_ro_subobj_types ro_type)
@ -839,9 +849,11 @@ const char *pcep_ro_type_name(enum pcep_ro_subobj_types ro_type)
return "ASN"; return "ASN";
case RO_SUBOBJ_TYPE_SR: case RO_SUBOBJ_TYPE_SR:
return "SR"; return "SR";
default: case RO_SUBOBJ_UNKNOWN:
return "UNKNOWN"; return "UNKNOWN";
} }
assert(!"Reached end of function where we do not expect to");
} }
const char *pcep_nai_type_name(enum pcep_sr_subobj_nai nai_type) const char *pcep_nai_type_name(enum pcep_sr_subobj_nai nai_type)
@ -861,9 +873,11 @@ const char *pcep_nai_type_name(enum pcep_sr_subobj_nai nai_type)
return "UNNUMBERED_IPV4_ADJACENCY"; return "UNNUMBERED_IPV4_ADJACENCY";
case PCEP_SR_SUBOBJ_NAI_LINK_LOCAL_IPV6_ADJACENCY: case PCEP_SR_SUBOBJ_NAI_LINK_LOCAL_IPV6_ADJACENCY:
return "LINK_LOCAL_IPV6_ADJACENCY"; return "LINK_LOCAL_IPV6_ADJACENCY";
default: case PCEP_SR_SUBOBJ_NAI_UNKNOWN:
return "UNKNOWN"; return "UNKNOWN";
} }
assert(!"Reached end of function where we do not expect to");
} }
const char *pcep_metric_type_name(enum pcep_metric_types type) const char *pcep_metric_type_name(enum pcep_metric_types type)
@ -1115,7 +1129,7 @@ void _format_path(int ps, struct path *path)
PATHD_FORMAT("%*sendpoint: %pI6\n", ps3, "", PATHD_FORMAT("%*sendpoint: %pI6\n", ps3, "",
&path->nbkey.endpoint.ipaddr_v6); &path->nbkey.endpoint.ipaddr_v6);
break; break;
default: case IPADDR_NONE:
PATHD_FORMAT("%*sendpoint: NONE\n", ps3, ""); PATHD_FORMAT("%*sendpoint: NONE\n", ps3, "");
break; break;
} }
@ -1300,7 +1314,9 @@ void _format_path_hop(int ps, struct path_hop *hop)
&hop->nai.remote_addr.ipaddr_v6, &hop->nai.remote_addr.ipaddr_v6,
hop->nai.remote_iface); hop->nai.remote_iface);
break; break;
default: case PCEP_SR_SUBOBJ_NAI_ABSENT:
case PCEP_SR_SUBOBJ_NAI_LINK_LOCAL_IPV6_ADJACENCY:
case PCEP_SR_SUBOBJ_NAI_UNKNOWN:
PATHD_FORMAT("%*sNAI: UNSUPPORTED\n", ps, ""); PATHD_FORMAT("%*sNAI: UNSUPPORTED\n", ps, "");
break; break;
} }
@ -1580,7 +1596,11 @@ void _format_pcep_object_ro_details(int ps, struct pcep_object_ro_subobj *ro)
case RO_SUBOBJ_TYPE_SR: case RO_SUBOBJ_TYPE_SR:
_format_pcep_object_ro_sr(ps, (struct pcep_ro_subobj_sr *)ro); _format_pcep_object_ro_sr(ps, (struct pcep_ro_subobj_sr *)ro);
break; break;
default: case RO_SUBOBJ_TYPE_IPV6:
case RO_SUBOBJ_TYPE_LABEL:
case RO_SUBOBJ_TYPE_UNNUM:
case RO_SUBOBJ_TYPE_ASN:
case RO_SUBOBJ_UNKNOWN:
PATHD_FORMAT("%*s...\n", ps, ""); PATHD_FORMAT("%*s...\n", ps, "");
break; break;
} }
@ -1668,7 +1688,9 @@ void _format_pcep_object_ro_sr(int ps, struct pcep_ro_subobj_sr *obj)
PATHD_FORMAT("%*sNAI: %pI4(%u)/%pI4(%u)\n", ps, "", PATHD_FORMAT("%*sNAI: %pI4(%u)/%pI4(%u)\n", ps, "",
laddr4, *liface, raddr4, *riface); laddr4, *liface, raddr4, *riface);
break; break;
default: case PCEP_SR_SUBOBJ_NAI_ABSENT:
case PCEP_SR_SUBOBJ_NAI_LINK_LOCAL_IPV6_ADJACENCY:
case PCEP_SR_SUBOBJ_NAI_UNKNOWN:
PATHD_FORMAT("%*sNAI: UNSUPPORTED\n", ps, ""); PATHD_FORMAT("%*sNAI: UNSUPPORTED\n", ps, "");
break; break;
} }
@ -1731,7 +1753,23 @@ void _format_pcep_object_tlv_details(int ps,
ps, ps,
(struct pcep_object_tlv_path_setup_type *)tlv_header); (struct pcep_object_tlv_path_setup_type *)tlv_header);
break; break;
default: case PCEP_OBJ_TLV_TYPE_NO_PATH_VECTOR:
case PCEP_OBJ_TLV_TYPE_OBJECTIVE_FUNCTION_LIST:
case PCEP_OBJ_TLV_TYPE_VENDOR_INFO:
case PCEP_OBJ_TLV_TYPE_IPV4_LSP_IDENTIFIERS:
case PCEP_OBJ_TLV_TYPE_IPV6_LSP_IDENTIFIERS:
case PCEP_OBJ_TLV_TYPE_LSP_ERROR_CODE:
case PCEP_OBJ_TLV_TYPE_RSVP_ERROR_SPEC:
case PCEP_OBJ_TLV_TYPE_LSP_DB_VERSION:
case PCEP_OBJ_TLV_TYPE_SPEAKER_ENTITY_ID:
case PCEP_OBJ_TLV_TYPE_PATH_SETUP_TYPE_CAPABILITY:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_POL_ID:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_POL_NAME:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_CPATH_ID:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_CPATH_PREFERENCE:
case PCEP_OBJ_TLV_TYPE_UNKNOWN:
case PCEP_OBJ_TYPE_CISCO_BSID:
case PCEP_OBJ_TLV_TYPE_ARBITRARY:
PATHD_FORMAT("%*s...\n", ps, ""); PATHD_FORMAT("%*s...\n", ps, "");
break; break;
} }

View File

@ -767,7 +767,9 @@ double_linked_list *pcep_lib_format_path(struct pcep_caps *caps,
.s_addr, .s_addr,
hop->nai.remote_iface); hop->nai.remote_iface);
break; break;
default: case PCEP_SR_SUBOBJ_NAI_ABSENT:
case PCEP_SR_SUBOBJ_NAI_LINK_LOCAL_IPV6_ADJACENCY:
case PCEP_SR_SUBOBJ_NAI_UNKNOWN:
break; break;
} }
} }
@ -854,7 +856,24 @@ void pcep_lib_parse_open(struct pcep_caps *caps, struct pcep_object_open *open)
case PCEP_OBJ_TLV_TYPE_OBJECTIVE_FUNCTION_LIST: case PCEP_OBJ_TLV_TYPE_OBJECTIVE_FUNCTION_LIST:
pcep_lib_parse_open_objfun_list(caps, tlv_header); pcep_lib_parse_open_objfun_list(caps, tlv_header);
break; break;
default: case PCEP_OBJ_TLV_TYPE_NO_PATH_VECTOR:
case PCEP_OBJ_TLV_TYPE_VENDOR_INFO:
case PCEP_OBJ_TLV_TYPE_IPV4_LSP_IDENTIFIERS:
case PCEP_OBJ_TLV_TYPE_IPV6_LSP_IDENTIFIERS:
case PCEP_OBJ_TLV_TYPE_LSP_ERROR_CODE:
case PCEP_OBJ_TLV_TYPE_RSVP_ERROR_SPEC:
case PCEP_OBJ_TLV_TYPE_LSP_DB_VERSION:
case PCEP_OBJ_TLV_TYPE_SPEAKER_ENTITY_ID:
case PCEP_OBJ_TLV_TYPE_PATH_SETUP_TYPE:
case PCEP_OBJ_TLV_TYPE_PATH_SETUP_TYPE_CAPABILITY:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_POL_ID:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_POL_NAME:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_CPATH_ID:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_CPATH_PREFERENCE:
case PCEP_OBJ_TLV_TYPE_UNKNOWN:
case PCEP_OBJ_TLV_TYPE_ARBITRARY:
case PCEP_OBJ_TLV_TYPE_SYMBOLIC_PATH_NAME:
case PCEP_OBJ_TYPE_CISCO_BSID:
flog_warn(EC_PATH_PCEP_UNEXPECTED_PCEP_TLV, flog_warn(EC_PATH_PCEP_UNEXPECTED_PCEP_TLV,
"Unexpected OPEN's TLV %s (%u)", "Unexpected OPEN's TLV %s (%u)",
pcep_tlv_type_name(tlv_header->type), pcep_tlv_type_name(tlv_header->type),
@ -915,7 +934,26 @@ void pcep_lib_parse_rp(struct path *path, struct pcep_object_rp *rp)
case PCEP_OBJ_TLV_TYPE_PATH_SETUP_TYPE: case PCEP_OBJ_TLV_TYPE_PATH_SETUP_TYPE:
// TODO: enforce the path setup type is SR_TE_PST // TODO: enforce the path setup type is SR_TE_PST
break; break;
default: case PCEP_OBJ_TLV_TYPE_NO_PATH_VECTOR:
case PCEP_OBJ_TLV_TYPE_OBJECTIVE_FUNCTION_LIST:
case PCEP_OBJ_TLV_TYPE_VENDOR_INFO:
case PCEP_OBJ_TLV_TYPE_IPV4_LSP_IDENTIFIERS:
case PCEP_OBJ_TLV_TYPE_IPV6_LSP_IDENTIFIERS:
case PCEP_OBJ_TLV_TYPE_LSP_ERROR_CODE:
case PCEP_OBJ_TLV_TYPE_RSVP_ERROR_SPEC:
case PCEP_OBJ_TLV_TYPE_LSP_DB_VERSION:
case PCEP_OBJ_TLV_TYPE_SPEAKER_ENTITY_ID:
case PCEP_OBJ_TLV_TYPE_SR_PCE_CAPABILITY:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_POL_ID:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_POL_NAME:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_CPATH_ID:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_CPATH_PREFERENCE:
case PCEP_OBJ_TLV_TYPE_STATEFUL_PCE_CAPABILITY:
case PCEP_OBJ_TLV_TYPE_UNKNOWN:
case PCEP_OBJ_TLV_TYPE_ARBITRARY:
case PCEP_OBJ_TLV_TYPE_SYMBOLIC_PATH_NAME:
case PCEP_OBJ_TYPE_CISCO_BSID:
case PCEP_OBJ_TLV_TYPE_PATH_SETUP_TYPE_CAPABILITY:
flog_warn(EC_PATH_PCEP_UNEXPECTED_PCEP_TLV, flog_warn(EC_PATH_PCEP_UNEXPECTED_PCEP_TLV,
"Unexpected RP's TLV %s (%u)", "Unexpected RP's TLV %s (%u)",
pcep_tlv_type_name(tlv->type), tlv->type); pcep_tlv_type_name(tlv->type), tlv->type);
@ -945,7 +983,26 @@ void pcep_lib_parse_srp(struct path *path, struct pcep_object_srp *srp)
case PCEP_OBJ_TLV_TYPE_PATH_SETUP_TYPE: case PCEP_OBJ_TLV_TYPE_PATH_SETUP_TYPE:
// TODO: enforce the path setup type is SR_TE_PST // TODO: enforce the path setup type is SR_TE_PST
break; break;
default: case PCEP_OBJ_TLV_TYPE_NO_PATH_VECTOR:
case PCEP_OBJ_TLV_TYPE_OBJECTIVE_FUNCTION_LIST:
case PCEP_OBJ_TLV_TYPE_VENDOR_INFO:
case PCEP_OBJ_TLV_TYPE_STATEFUL_PCE_CAPABILITY:
case PCEP_OBJ_TLV_TYPE_SYMBOLIC_PATH_NAME:
case PCEP_OBJ_TLV_TYPE_IPV4_LSP_IDENTIFIERS:
case PCEP_OBJ_TLV_TYPE_IPV6_LSP_IDENTIFIERS:
case PCEP_OBJ_TLV_TYPE_LSP_ERROR_CODE:
case PCEP_OBJ_TLV_TYPE_RSVP_ERROR_SPEC:
case PCEP_OBJ_TLV_TYPE_LSP_DB_VERSION:
case PCEP_OBJ_TLV_TYPE_SPEAKER_ENTITY_ID:
case PCEP_OBJ_TLV_TYPE_SR_PCE_CAPABILITY:
case PCEP_OBJ_TLV_TYPE_PATH_SETUP_TYPE_CAPABILITY:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_POL_ID:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_POL_NAME:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_CPATH_ID:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_CPATH_PREFERENCE:
case PCEP_OBJ_TLV_TYPE_UNKNOWN:
case PCEP_OBJ_TYPE_CISCO_BSID:
case PCEP_OBJ_TLV_TYPE_ARBITRARY:
flog_warn(EC_PATH_PCEP_UNEXPECTED_PCEP_TLV, flog_warn(EC_PATH_PCEP_UNEXPECTED_PCEP_TLV,
"Unexpected SRP's TLV %s (%u)", "Unexpected SRP's TLV %s (%u)",
pcep_tlv_type_name(tlv->type), tlv->type); pcep_tlv_type_name(tlv->type), tlv->type);
@ -991,7 +1048,25 @@ void pcep_lib_parse_lsp(struct path *path, struct pcep_object_lsp *lsp)
path->binding_sid = ntohl(path->binding_sid); path->binding_sid = ntohl(path->binding_sid);
path->binding_sid = (path->binding_sid >> 12); path->binding_sid = (path->binding_sid >> 12);
break; break;
default: case PCEP_OBJ_TLV_TYPE_NO_PATH_VECTOR:
case PCEP_OBJ_TLV_TYPE_OBJECTIVE_FUNCTION_LIST:
case PCEP_OBJ_TLV_TYPE_VENDOR_INFO:
case PCEP_OBJ_TLV_TYPE_IPV4_LSP_IDENTIFIERS:
case PCEP_OBJ_TLV_TYPE_IPV6_LSP_IDENTIFIERS:
case PCEP_OBJ_TLV_TYPE_LSP_ERROR_CODE:
case PCEP_OBJ_TLV_TYPE_RSVP_ERROR_SPEC:
case PCEP_OBJ_TLV_TYPE_LSP_DB_VERSION:
case PCEP_OBJ_TLV_TYPE_SPEAKER_ENTITY_ID:
case PCEP_OBJ_TLV_TYPE_SR_PCE_CAPABILITY:
case PCEP_OBJ_TLV_TYPE_PATH_SETUP_TYPE:
case PCEP_OBJ_TLV_TYPE_PATH_SETUP_TYPE_CAPABILITY:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_POL_ID:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_POL_NAME:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_CPATH_ID:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_CPATH_PREFERENCE:
case PCEP_OBJ_TLV_TYPE_STATEFUL_PCE_CAPABILITY:
case PCEP_OBJ_TLV_TYPE_UNKNOWN:
case PCEP_OBJ_TLV_TYPE_ARBITRARY:
flog_warn(EC_PATH_PCEP_UNEXPECTED_PCEP_TLV, flog_warn(EC_PATH_PCEP_UNEXPECTED_PCEP_TLV,
"Unexpected LSP TLV %s (%u)", "Unexpected LSP TLV %s (%u)",
pcep_tlv_type_name(tlv->type), tlv->type); pcep_tlv_type_name(tlv->type), tlv->type);
@ -1082,7 +1157,12 @@ void pcep_lib_parse_ero(struct path *path, struct pcep_object_ro *ero)
hop = pcep_lib_parse_ero_sr( hop = pcep_lib_parse_ero_sr(
hop, (struct pcep_ro_subobj_sr *)obj); hop, (struct pcep_ro_subobj_sr *)obj);
break; break;
default: case RO_SUBOBJ_TYPE_IPV4:
case RO_SUBOBJ_TYPE_IPV6:
case RO_SUBOBJ_TYPE_LABEL:
case RO_SUBOBJ_TYPE_UNNUM:
case RO_SUBOBJ_TYPE_ASN:
case RO_SUBOBJ_UNKNOWN:
flog_warn(EC_PATH_PCEP_UNEXPECTED_PCEP_ERO_SUBOBJ, flog_warn(EC_PATH_PCEP_UNEXPECTED_PCEP_ERO_SUBOBJ,
"Unexpected ERO sub-object %s (%u)", "Unexpected ERO sub-object %s (%u)",
pcep_ro_type_name(obj->ro_subobj_type), pcep_ro_type_name(obj->ro_subobj_type),
@ -1181,7 +1261,9 @@ struct path_hop *pcep_lib_parse_ero_sr(struct path_hop *next,
assert(n->data != NULL); assert(n->data != NULL);
hop->nai.remote_iface = *(uint32_t *)n->data; hop->nai.remote_iface = *(uint32_t *)n->data;
break; break;
default: case PCEP_SR_SUBOBJ_NAI_ABSENT:
case PCEP_SR_SUBOBJ_NAI_LINK_LOCAL_IPV6_ADJACENCY:
case PCEP_SR_SUBOBJ_NAI_UNKNOWN:
hop->has_nai = false; hop->has_nai = false;
flog_warn(EC_PATH_PCEP_UNEXPECTED_SR_NAI, flog_warn(EC_PATH_PCEP_UNEXPECTED_SR_NAI,
"Unexpected SR segment NAI type %s (%u)", "Unexpected SR segment NAI type %s (%u)",

View File

@ -450,9 +450,11 @@ int pcep_pcc_disable(struct ctrl_state *ctrl_state, struct pcc_state *pcc_state)
pcc_state->sess = NULL; pcc_state->sess = NULL;
pcc_state->status = PCEP_PCC_DISCONNECTED; pcc_state->status = PCEP_PCC_DISCONNECTED;
return 0; return 0;
default: case PCEP_PCC_INITIALIZED:
return 1; return 1;
} }
assert(!"Reached end of function where we are not expecting to");
} }
void pcep_pcc_sync_path(struct ctrl_state *ctrl_state, void pcep_pcc_sync_path(struct ctrl_state *ctrl_state,
@ -614,7 +616,8 @@ void pcep_pcc_timeout_handler(struct ctrl_state *ctrl_state,
free_req_entry(req); free_req_entry(req);
} }
break; break;
default: case TO_UNDEFINED:
case TO_MAX:
break; break;
} }
} }
@ -674,7 +677,7 @@ void pcep_pcc_pathd_event_handler(struct ctrl_state *ctrl_state,
if (pcc_state->caps.is_stateful) if (pcc_state->caps.is_stateful)
send_report(pcc_state, path); send_report(pcc_state, path);
return; return;
default: case PCEP_PATH_UNDEFINED:
flog_warn(EC_PATH_PCEP_RECOVERABLE_INTERNAL_ERROR, flog_warn(EC_PATH_PCEP_RECOVERABLE_INTERNAL_ERROR,
"Unexpected pathd event received by pcc %s: %u", "Unexpected pathd event received by pcc %s: %u",
pcc_state->tag, type); pcc_state->tag, type);
@ -748,7 +751,7 @@ void pcep_pcc_pcep_event_handler(struct ctrl_state *ctrl_state,
|| pcc_state->status == PCEP_PCC_OPERATING); || pcc_state->status == PCEP_PCC_OPERATING);
handle_pcep_message(ctrl_state, pcc_state, event->message); handle_pcep_message(ctrl_state, pcc_state, event->message);
break; break;
default: case PCC_CONNECTION_FAILURE:
flog_warn(EC_PATH_PCEP_UNEXPECTED_PCEPLIB_EVENT, flog_warn(EC_PATH_PCEP_UNEXPECTED_PCEPLIB_EVENT,
"Unexpected event from pceplib: %s", "Unexpected event from pceplib: %s",
format_pcep_event(event)); format_pcep_event(event));
@ -1179,7 +1182,15 @@ void handle_pcep_message(struct ctrl_state *ctrl_state,
case PCEP_TYPE_PCREP: case PCEP_TYPE_PCREP:
handle_pcep_comp_reply(ctrl_state, pcc_state, msg); handle_pcep_comp_reply(ctrl_state, pcc_state, msg);
break; break;
default: case PCEP_TYPE_OPEN:
case PCEP_TYPE_KEEPALIVE:
case PCEP_TYPE_PCREQ:
case PCEP_TYPE_PCNOTF:
case PCEP_TYPE_ERROR:
case PCEP_TYPE_CLOSE:
case PCEP_TYPE_REPORT:
case PCEP_TYPE_START_TLS:
case PCEP_TYPE_MAX:
flog_warn(EC_PATH_PCEP_UNEXPECTED_PCEP_MESSAGE, flog_warn(EC_PATH_PCEP_UNEXPECTED_PCEP_MESSAGE,
"Unexpected pcep message from pceplib: %s", "Unexpected pcep message from pceplib: %s",
format_pcep_message(msg)); format_pcep_message(msg));
@ -1953,9 +1964,11 @@ static uint32_t hash_nbkey(const struct lsp_nb_key *nbkey)
case IPADDR_V6: case IPADDR_V6:
return jhash(&nbkey->endpoint.ipaddr_v6, return jhash(&nbkey->endpoint.ipaddr_v6,
sizeof(nbkey->endpoint.ipaddr_v6), hash); sizeof(nbkey->endpoint.ipaddr_v6), hash);
default: case IPADDR_NONE:
return hash; return hash;
} }
assert(!"Reached end of function where we were not expecting to");
} }
static int cmp_nbkey(const struct lsp_nb_key *a, const struct lsp_nb_key *b) static int cmp_nbkey(const struct lsp_nb_key *a, const struct lsp_nb_key *b)

View File

@ -527,7 +527,7 @@ uint32_t path_ted_config_write(struct vty *vty)
case IMPORT_OSPFv3: case IMPORT_OSPFv3:
vty_out(vty, " mpls-te import ospfv3\n"); vty_out(vty, " mpls-te import ospfv3\n");
break; break;
default: case IMPORT_UNKNOWN:
break; break;
} }
} }

View File

@ -281,7 +281,8 @@ int srte_segment_entry_set_nai(struct srte_segment_entry *segment,
segment->nai_local_iface = local_iface; segment->nai_local_iface = local_iface;
status = srte_ted_do_query_type_e(segment, &pre, local_iface); status = srte_ted_do_query_type_e(segment, &pre, local_iface);
break; break;
default: case SRTE_SEGMENT_NAI_TYPE_NONE:
case SRTE_SEGMENT_NAI_TYPE_IPV6_ADJACENCY_LINK_LOCAL_ADDRESSES:
segment->nai_local_addr.ipa_type = IPADDR_NONE; segment->nai_local_addr.ipa_type = IPADDR_NONE;
segment->nai_local_iface = 0; segment->nai_local_iface = 0;
segment->nai_remote_addr.ipa_type = IPADDR_NONE; segment->nai_remote_addr.ipa_type = IPADDR_NONE;
@ -472,7 +473,11 @@ int srte_policy_update_ted_sid(void)
s_entry, &prefix_cli, s_entry, &prefix_cli,
s_entry->nai_algorithm); s_entry->nai_algorithm);
break; break;
default: case SRTE_SEGMENT_NAI_TYPE_NONE:
case SRTE_SEGMENT_NAI_TYPE_IPV4_NODE:
case SRTE_SEGMENT_NAI_TYPE_IPV6_NODE:
case SRTE_SEGMENT_NAI_TYPE_IPV4_UNNUMBERED_ADJACENCY:
case SRTE_SEGMENT_NAI_TYPE_IPV6_ADJACENCY_LINK_LOCAL_ADDRESSES:
break; break;
} }
} }
@ -1025,9 +1030,11 @@ static uint32_t filter_type_to_flag(enum affinity_filter_type type)
return F_CANDIDATE_HAS_INCLUDE_ANY; return F_CANDIDATE_HAS_INCLUDE_ANY;
case AFFINITY_FILTER_INCLUDE_ALL: case AFFINITY_FILTER_INCLUDE_ALL:
return F_CANDIDATE_HAS_INCLUDE_ALL; return F_CANDIDATE_HAS_INCLUDE_ALL;
default: case AFFINITY_FILTER_UNDEFINED:
return 0; return 0;
} }
assert(!"Reached end of function we should never hit");
} }
static const char *filter_type_name(enum affinity_filter_type type) static const char *filter_type_name(enum affinity_filter_type type)
@ -1039,9 +1046,11 @@ static const char *filter_type_name(enum affinity_filter_type type)
return "include-any"; return "include-any";
case AFFINITY_FILTER_INCLUDE_ALL: case AFFINITY_FILTER_INCLUDE_ALL:
return "include-all"; return "include-all";
default: case AFFINITY_FILTER_UNDEFINED:
return "unknown"; return "unknown";
} }
assert(!"Reached end of function we should never hit");
} }
/** /**
@ -1155,7 +1164,9 @@ void srte_candidate_status_update(struct srte_candidate *candidate, int status)
case SRTE_POLICY_STATUS_GOING_UP: case SRTE_POLICY_STATUS_GOING_UP:
case SRTE_POLICY_STATUS_DOWN: case SRTE_POLICY_STATUS_DOWN:
return; return;
default: case SRTE_POLICY_STATUS_UNKNOWN:
case SRTE_POLICY_STATUS_UP:
case SRTE_POLICY_STATUS_GOING_DOWN:
policy->status = SRTE_POLICY_STATUS_DOWN; policy->status = SRTE_POLICY_STATUS_DOWN;
srte_policy_status_log(policy); srte_policy_status_log(policy);
break; break;
@ -1165,7 +1176,10 @@ void srte_candidate_status_update(struct srte_candidate *candidate, int status)
switch (policy->status) { switch (policy->status) {
case SRTE_POLICY_STATUS_UP: case SRTE_POLICY_STATUS_UP:
return; return;
default: case SRTE_POLICY_STATUS_UNKNOWN:
case SRTE_POLICY_STATUS_DOWN:
case SRTE_POLICY_STATUS_GOING_DOWN:
case SRTE_POLICY_STATUS_GOING_UP:
policy->status = SRTE_POLICY_STATUS_UP; policy->status = SRTE_POLICY_STATUS_UP;
srte_policy_status_log(policy); srte_policy_status_log(policy);
break; break;
@ -1263,9 +1277,11 @@ const char *srte_origin2str(enum srte_protocol_origin origin)
return "BGP"; return "BGP";
case SRTE_ORIGIN_LOCAL: case SRTE_ORIGIN_LOCAL:
return "Local"; return "Local";
default: case SRTE_ORIGIN_UNDEFINED:
return "Unknown"; return "Unknown";
} }
assert(!"Reached end of function we should never hit");
} }
void path_policy_show_debugging(struct vty *vty) void path_policy_show_debugging(struct vty *vty)

View File

@ -547,7 +547,8 @@ void pbr_nht_set_seq_nhg_data(struct pbr_map_sequence *pbrms,
case NEXTHOP_TYPE_IPV4: case NEXTHOP_TYPE_IPV4:
case NEXTHOP_TYPE_IPV4_IFINDEX: case NEXTHOP_TYPE_IPV4_IFINDEX:
pbrms->family = AF_INET; pbrms->family = AF_INET;
default: case NEXTHOP_TYPE_IFINDEX:
case NEXTHOP_TYPE_BLACKHOLE:
break; break;
} }
} }

View File

@ -923,12 +923,13 @@ uint16_t pcep_encode_obj_ro(struct pcep_object_header *hdr,
index += LENGTH_10WORDS; index += LENGTH_10WORDS;
break; break;
default: case PCEP_SR_SUBOBJ_NAI_ABSENT:
case PCEP_SR_SUBOBJ_NAI_UNKNOWN:
break; break;
} }
} break; } break;
default: case RO_SUBOBJ_UNKNOWN:
break; break;
} }
} }
@ -1712,7 +1713,7 @@ struct pcep_object_header *pcep_decode_obj_ro(struct pcep_object_header *hdr,
} break; } break;
case PCEP_SR_SUBOBJ_NAI_ABSENT: case PCEP_SR_SUBOBJ_NAI_ABSENT:
default: case PCEP_SR_SUBOBJ_NAI_UNKNOWN:
break; break;
} }
} break; } break;

View File

@ -313,7 +313,25 @@ void pcep_obj_free_tlv(struct pcep_object_tlv_header *tlv)
} }
break; break;
default: case PCEP_OBJ_TLV_TYPE_NO_PATH_VECTOR:
case PCEP_OBJ_TLV_TYPE_OBJECTIVE_FUNCTION_LIST:
case PCEP_OBJ_TLV_TYPE_VENDOR_INFO:
case PCEP_OBJ_TLV_TYPE_STATEFUL_PCE_CAPABILITY:
case PCEP_OBJ_TLV_TYPE_SYMBOLIC_PATH_NAME:
case PCEP_OBJ_TLV_TYPE_IPV4_LSP_IDENTIFIERS:
case PCEP_OBJ_TLV_TYPE_IPV6_LSP_IDENTIFIERS:
case PCEP_OBJ_TLV_TYPE_LSP_ERROR_CODE:
case PCEP_OBJ_TLV_TYPE_RSVP_ERROR_SPEC:
case PCEP_OBJ_TLV_TYPE_LSP_DB_VERSION:
case PCEP_OBJ_TLV_TYPE_SR_PCE_CAPABILITY:
case PCEP_OBJ_TLV_TYPE_PATH_SETUP_TYPE:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_POL_ID:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_POL_NAME:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_CPATH_ID:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_CPATH_PREFERENCE:
case PCEP_OBJ_TLV_TYPE_UNKNOWN:
case PCEP_OBJ_TYPE_CISCO_BSID:
case PCEP_OBJ_TLV_TYPE_ARBITRARY:
break; break;
} }
@ -387,7 +405,25 @@ void pcep_obj_free_object(struct pcep_object_header *obj)
} }
break; break;
default: case PCEP_OBJ_CLASS_OPEN:
case PCEP_OBJ_CLASS_RP:
case PCEP_OBJ_CLASS_NOPATH:
case PCEP_OBJ_CLASS_ENDPOINTS:
case PCEP_OBJ_CLASS_BANDWIDTH:
case PCEP_OBJ_CLASS_METRIC:
case PCEP_OBJ_CLASS_LSPA:
case PCEP_OBJ_CLASS_NOTF:
case PCEP_OBJ_CLASS_ERROR:
case PCEP_OBJ_CLASS_CLOSE:
case PCEP_OBJ_CLASS_OF:
case PCEP_OBJ_CLASS_LSP:
case PCEP_OBJ_CLASS_SRP:
case PCEP_OBJ_CLASS_VENDOR_INFO:
case PCEP_OBJ_CLASS_INTER_LAYER:
case PCEP_OBJ_CLASS_REQ_ADAP_CAP:
case PCEP_OBJ_CLASS_SERVER_IND:
case PCEP_OBJ_CLASS_ASSOCIATION:
case PCEP_OBJ_CLASS_MAX:
break; break;
} }

View File

@ -242,7 +242,22 @@ bool verify_pcep_open_object(pcep_session *session,
case PCEP_OBJ_TLV_TYPE_SR_PCE_CAPABILITY: case PCEP_OBJ_TLV_TYPE_SR_PCE_CAPABILITY:
break; break;
default: case PCEP_OBJ_TLV_TYPE_NO_PATH_VECTOR:
case PCEP_OBJ_TLV_TYPE_OBJECTIVE_FUNCTION_LIST:
case PCEP_OBJ_TLV_TYPE_VENDOR_INFO:
case PCEP_OBJ_TLV_TYPE_SYMBOLIC_PATH_NAME:
case PCEP_OBJ_TLV_TYPE_IPV4_LSP_IDENTIFIERS:
case PCEP_OBJ_TLV_TYPE_IPV6_LSP_IDENTIFIERS:
case PCEP_OBJ_TLV_TYPE_LSP_ERROR_CODE:
case PCEP_OBJ_TLV_TYPE_RSVP_ERROR_SPEC:
case PCEP_OBJ_TLV_TYPE_PATH_SETUP_TYPE:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_POL_ID:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_POL_NAME:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_CPATH_ID:
case PCEP_OBJ_TLV_TYPE_SRPOLICY_CPATH_PREFERENCE:
case PCEP_OBJ_TLV_TYPE_UNKNOWN:
case PCEP_OBJ_TYPE_CISCO_BSID:
case PCEP_OBJ_TLV_TYPE_ARBITRARY:
/* TODO how to handle unrecognized TLV ?? */ /* TODO how to handle unrecognized TLV ?? */
pcep_log( pcep_log(
LOG_INFO, LOG_INFO,
@ -895,7 +910,7 @@ void handle_timer_event(pcep_session_event *event)
case SESSION_STATE_INITIALIZED: case SESSION_STATE_INITIALIZED:
case SESSION_STATE_PCEP_CONNECTED: case SESSION_STATE_PCEP_CONNECTED:
default: case SESSION_STATE_UNKNOWN:
pcep_log( pcep_log(
LOG_INFO, LOG_INFO,
"%s: handle_timer_event unrecognized state transition, timer_id [%d] state [%d] session [%d]", "%s: handle_timer_event unrecognized state transition, timer_id [%d] state [%d] session [%d]",
@ -1120,7 +1135,8 @@ void handle_socket_comm_event(pcep_session_event *event)
message_enqueued = true; message_enqueued = true;
break; break;
default: case PCEP_TYPE_START_TLS:
case PCEP_TYPE_MAX:
pcep_log(LOG_INFO, "%s: \t UnSupported message", pcep_log(LOG_INFO, "%s: \t UnSupported message",
__func__); __func__);
send_pcep_error(session, send_pcep_error(session,

View File

@ -529,7 +529,7 @@ static void on_assert_timer(struct thread *t)
case PIM_IFASSERT_I_AM_LOSER: case PIM_IFASSERT_I_AM_LOSER:
assert_action_a5(ch); assert_action_a5(ch);
break; break;
default: { case PIM_IFASSERT_NOINFO: {
if (PIM_DEBUG_PIM_EVENTS) if (PIM_DEBUG_PIM_EVENTS)
zlog_warn( zlog_warn(
"%s: (S,G)=%s invalid assert state %d on interface %s", "%s: (S,G)=%s invalid assert state %d on interface %s",

View File

@ -871,7 +871,11 @@ int pim_zebra_mlag_handle_msg(int cmd, struct zclient *zclient,
pim_mlag_process_mroute_del(msg); pim_mlag_process_mroute_del(msg);
} }
} break; } break;
default: case MLAG_MSG_NONE:
case MLAG_REGISTER:
case MLAG_DEREGISTER:
case MLAG_DUMP:
case MLAG_PIM_CFG_DUMP:
break; break;
} }
return 0; return 0;

View File

@ -281,7 +281,12 @@ void pim_msdp_write(struct thread *thread)
case PIM_MSDP_V4_SOURCE_ACTIVE: case PIM_MSDP_V4_SOURCE_ACTIVE:
mp->sa_tx_cnt++; mp->sa_tx_cnt++;
break; break;
default:; case PIM_MSDP_V4_SOURCE_ACTIVE_REQUEST:
case PIM_MSDP_V4_SOURCE_ACTIVE_RESPONSE:
case PIM_MSDP_RESERVED:
case PIM_MSDP_TRACEROUTE_PROGRESS:
case PIM_MSDP_TRACEROUTE_REPLY:
break;
} }
if (PIM_DEBUG_MSDP_PACKETS) { if (PIM_DEBUG_MSDP_PACKETS) {
pim_msdp_pkt_dump(mp, type, len, false /*rx*/, s); pim_msdp_pkt_dump(mp, type, len, false /*rx*/, s);
@ -626,8 +631,13 @@ static void pim_msdp_pkt_rx(struct pim_msdp_peer *mp)
mp->sa_rx_cnt++; mp->sa_rx_cnt++;
pim_msdp_pkt_sa_rx(mp, len); pim_msdp_pkt_sa_rx(mp, len);
break; break;
default: case PIM_MSDP_V4_SOURCE_ACTIVE_REQUEST:
case PIM_MSDP_V4_SOURCE_ACTIVE_RESPONSE:
case PIM_MSDP_RESERVED:
case PIM_MSDP_TRACEROUTE_PROGRESS:
case PIM_MSDP_TRACEROUTE_REPLY:
mp->unk_rx_cnt++; mp->unk_rx_cnt++;
break;
} }
} }

View File

@ -354,6 +354,9 @@ bool pim_nht_bsr_rpf_check(struct pim_instance *pim, pim_addr bsr_addr,
case NEXTHOP_TYPE_IPV4_IFINDEX: case NEXTHOP_TYPE_IPV4_IFINDEX:
nhaddr = nh->gate.ipv4; nhaddr = nh->gate.ipv4;
break; break;
case NEXTHOP_TYPE_IPV6:
case NEXTHOP_TYPE_IPV6_IFINDEX:
continue;
#else #else
case NEXTHOP_TYPE_IPV6: case NEXTHOP_TYPE_IPV6:
if (nh->ifindex == IFINDEX_INTERNAL) if (nh->ifindex == IFINDEX_INTERNAL)
@ -363,12 +366,15 @@ bool pim_nht_bsr_rpf_check(struct pim_instance *pim, pim_addr bsr_addr,
case NEXTHOP_TYPE_IPV6_IFINDEX: case NEXTHOP_TYPE_IPV6_IFINDEX:
nhaddr = nh->gate.ipv6; nhaddr = nh->gate.ipv6;
break; break;
case NEXTHOP_TYPE_IPV4:
case NEXTHOP_TYPE_IPV4_IFINDEX:
continue;
#endif #endif
case NEXTHOP_TYPE_IFINDEX: case NEXTHOP_TYPE_IFINDEX:
nhaddr = bsr_addr; nhaddr = bsr_addr;
break; break;
default: case NEXTHOP_TYPE_BLACKHOLE:
continue; continue;
} }

View File

@ -263,6 +263,7 @@ static int zclient_read_nexthop(struct pim_instance *pim,
&nh_ip4, nh_ifi, &addr); &nh_ip4, nh_ifi, &addr);
#endif #endif
break; break;
case NEXTHOP_TYPE_IPV6:
case NEXTHOP_TYPE_IPV6_IFINDEX: case NEXTHOP_TYPE_IPV6_IFINDEX:
stream_get(&nh_ip6, s, sizeof(nh_ip6)); stream_get(&nh_ip6, s, sizeof(nh_ip6));
nh_ifi = stream_getl(s); nh_ifi = stream_getl(s);
@ -307,7 +308,7 @@ static int zclient_read_nexthop(struct pim_instance *pim,
++num_ifindex; ++num_ifindex;
#endif #endif
break; break;
default: case NEXTHOP_TYPE_BLACKHOLE:
/* do nothing */ /* do nothing */
zlog_warn( zlog_warn(
"%s: found non-ifindex nexthop type=%d for address %pPAs(%s)", "%s: found non-ifindex nexthop type=%d for address %pPAs(%s)",

View File

@ -35,7 +35,7 @@ int32_t mlag_bulk_cnt;
static void pim_mlag_zebra_fill_header(enum mlag_msg_type msg_type) static void pim_mlag_zebra_fill_header(enum mlag_msg_type msg_type)
{ {
uint32_t fill_msg_type = msg_type; uint32_t fill_msg_type = msg_type;
uint16_t data_len; uint16_t data_len = 0;
uint16_t msg_cnt = 1; uint16_t msg_cnt = 1;
if (msg_type == MLAG_MSG_NONE) if (msg_type == MLAG_MSG_NONE)
@ -54,7 +54,14 @@ static void pim_mlag_zebra_fill_header(enum mlag_msg_type msg_type)
data_len = sizeof(struct mlag_mroute_del); data_len = sizeof(struct mlag_mroute_del);
fill_msg_type = MLAG_MROUTE_DEL_BULK; fill_msg_type = MLAG_MROUTE_DEL_BULK;
break; break;
default: case MLAG_MSG_NONE:
case MLAG_STATUS_UPDATE:
case MLAG_DUMP:
case MLAG_MROUTE_ADD_BULK:
case MLAG_MROUTE_DEL_BULK:
case MLAG_PIM_CFG_DUMP:
case MLAG_VXLAN_UPDATE:
case MLAG_PEER_FRR_STATUS:
data_len = 0; data_len = 0;
break; break;
} }

View File

@ -77,7 +77,7 @@ static inline int qpb__address_family__get(Qpb__AddressFamily pb_family,
case QPB__ADDRESS_FAMILY__UNKNOWN_AF: case QPB__ADDRESS_FAMILY__UNKNOWN_AF:
return 0; return 0;
default: /* protobuf "magic value" _QPB__ADDRESS_FAMILY_IS_INT_SIZE */ case _QPB__ADDRESS_FAMILY_IS_INT_SIZE:
return 0; return 0;
} }

View File

@ -236,9 +236,14 @@ struct yang_data *ripd_instance_state_routes_route_next_hop_get_elem(
case NEXTHOP_TYPE_IPV4: case NEXTHOP_TYPE_IPV4:
case NEXTHOP_TYPE_IPV4_IFINDEX: case NEXTHOP_TYPE_IPV4_IFINDEX:
return yang_data_new_ipv4(args->xpath, &rinfo->nh.gate.ipv4); return yang_data_new_ipv4(args->xpath, &rinfo->nh.gate.ipv4);
default: case NEXTHOP_TYPE_IFINDEX:
case NEXTHOP_TYPE_IPV6:
case NEXTHOP_TYPE_IPV6_IFINDEX:
case NEXTHOP_TYPE_BLACKHOLE:
return NULL; return NULL;
} }
assert(!"Reached end of function where we do not expect to reach");
} }
/* /*
@ -257,9 +262,14 @@ struct yang_data *ripd_instance_state_routes_route_interface_get_elem(
return yang_data_new_string( return yang_data_new_string(
args->xpath, args->xpath,
ifindex2ifname(rinfo->nh.ifindex, rip->vrf->vrf_id)); ifindex2ifname(rinfo->nh.ifindex, rip->vrf->vrf_id));
default: case NEXTHOP_TYPE_IPV4:
case NEXTHOP_TYPE_IPV6:
case NEXTHOP_TYPE_IPV6_IFINDEX:
case NEXTHOP_TYPE_BLACKHOLE:
return NULL; return NULL;
} }
assert(!"Reached end of function where we do not expect to reach");
} }
/* /*

View File

@ -1933,7 +1933,8 @@ void ripng_event(struct ripng *ripng, enum ripng_event event, int sock)
thread_add_event(master, ripng_triggered_update, ripng, thread_add_event(master, ripng_triggered_update, ripng,
0, &ripng->t_triggered_update); 0, &ripng->t_triggered_update);
break; break;
default: case RIPNG_ZEBRA:
case RIPNG_REQUEST_EVENT:
break; break;
} }
} }

View File

@ -209,7 +209,8 @@ bool static_add_nexthop_validate(const char *nh_vrf_name,
vrf->vrf_id)) vrf->vrf_id))
return false; return false;
break; break;
default: case STATIC_IFNAME:
case STATIC_BLACKHOLE:
break; break;
} }
@ -302,7 +303,8 @@ struct static_nexthop *static_add_nexthop(struct static_path *pn,
case STATIC_IPV6_GATEWAY_IFNAME: case STATIC_IPV6_GATEWAY_IFNAME:
nh->addr.ipv6 = ipaddr->ipaddr_v6; nh->addr.ipv6 = ipaddr->ipaddr_v6;
break; break;
default: case STATIC_IFNAME:
case STATIC_BLACKHOLE:
break; break;
} }
/* /*

View File

@ -135,7 +135,9 @@ static int static_route_nb_run(struct vty *vty, struct static_route_args *args)
if (args->source) if (args->source)
assert(!!str2prefix(args->source, &src)); assert(!!str2prefix(args->source, &src));
break; break;
default: case AFI_L2VPN:
case AFI_UNSPEC:
case AFI_MAX:
break; break;
} }

View File

@ -885,7 +885,7 @@ static int run_stop_schedule(void)
strerror(errno)); strerror(errno));
} }
default: case sched_forever:
assert(!"schedule[].type value must be valid"); assert(!"schedule[].type value must be valid");
} }

View File

@ -247,7 +247,9 @@ void connected_up(struct interface *ifp, struct connected *ifc)
return; return;
#endif #endif
break; break;
default: case AFI_UNSPEC:
case AFI_L2VPN:
case AFI_MAX:
flog_warn(EC_ZEBRA_CONNECTED_AFI_UNKNOWN, flog_warn(EC_ZEBRA_CONNECTED_AFI_UNKNOWN,
"Received unknown AFI: %s", afi2str(afi)); "Received unknown AFI: %s", afi2str(afi));
return; return;
@ -435,7 +437,9 @@ void connected_down(struct interface *ifp, struct connected *ifc)
if (IN6_IS_ADDR_UNSPECIFIED(&p.u.prefix6)) if (IN6_IS_ADDR_UNSPECIFIED(&p.u.prefix6))
return; return;
break; break;
default: case AFI_UNSPEC:
case AFI_L2VPN:
case AFI_MAX:
zlog_warn("Unknown AFI: %s", afi2str(afi)); zlog_warn("Unknown AFI: %s", afi2str(afi));
break; break;
} }

View File

@ -1362,7 +1362,57 @@ static ssize_t netlink_intf_msg_encoder(struct zebra_dplane_ctx *ctx, void *buf,
case DPLANE_OP_INTF_DELETE: case DPLANE_OP_INTF_DELETE:
cmd = RTM_DELLINK; cmd = RTM_DELLINK;
break; break;
default: case DPLANE_OP_NONE:
case DPLANE_OP_ROUTE_INSTALL:
case DPLANE_OP_ROUTE_UPDATE:
case DPLANE_OP_ROUTE_DELETE:
case DPLANE_OP_ROUTE_NOTIFY:
case DPLANE_OP_NH_INSTALL:
case DPLANE_OP_NH_UPDATE:
case DPLANE_OP_NH_DELETE:
case DPLANE_OP_LSP_INSTALL:
case DPLANE_OP_LSP_DELETE:
case DPLANE_OP_LSP_NOTIFY:
case DPLANE_OP_LSP_UPDATE:
case DPLANE_OP_PW_INSTALL:
case DPLANE_OP_PW_UNINSTALL:
case DPLANE_OP_SYS_ROUTE_ADD:
case DPLANE_OP_SYS_ROUTE_DELETE:
case DPLANE_OP_ADDR_INSTALL:
case DPLANE_OP_ADDR_UNINSTALL:
case DPLANE_OP_MAC_INSTALL:
case DPLANE_OP_MAC_DELETE:
case DPLANE_OP_NEIGH_INSTALL:
case DPLANE_OP_NEIGH_UPDATE:
case DPLANE_OP_NEIGH_DELETE:
case DPLANE_OP_NEIGH_DISCOVER:
case DPLANE_OP_VTEP_ADD:
case DPLANE_OP_VTEP_DELETE:
case DPLANE_OP_RULE_ADD:
case DPLANE_OP_RULE_DELETE:
case DPLANE_OP_RULE_UPDATE:
case DPLANE_OP_BR_PORT_UPDATE:
case DPLANE_OP_IPTABLE_ADD:
case DPLANE_OP_IPTABLE_DELETE:
case DPLANE_OP_IPSET_ADD:
case DPLANE_OP_IPSET_ENTRY_ADD:
case DPLANE_OP_IPSET_ENTRY_DELETE:
case DPLANE_OP_IPSET_DELETE:
case DPLANE_OP_NEIGH_IP_INSTALL:
case DPLANE_OP_NEIGH_IP_DELETE:
case DPLANE_OP_NEIGH_TABLE_UPDATE:
case DPLANE_OP_GRE_SET:
case DPLANE_OP_INTF_ADDR_ADD:
case DPLANE_OP_INTF_ADDR_DEL:
case DPLANE_OP_INTF_NETCONFIG:
case DPLANE_OP_TC_QDISC_INSTALL:
case DPLANE_OP_TC_QDISC_UNINSTALL:
case DPLANE_OP_TC_CLASS_ADD:
case DPLANE_OP_TC_CLASS_DELETE:
case DPLANE_OP_TC_CLASS_UPDATE:
case DPLANE_OP_TC_FILTER_ADD:
case DPLANE_OP_TC_FILTER_DELETE:
case DPLANE_OP_TC_FILTER_UPDATE:
flog_err( flog_err(
EC_ZEBRA_NHG_FIB_UPDATE, EC_ZEBRA_NHG_FIB_UPDATE,
"Context received for kernel interface update with incorrect OP code (%u)", "Context received for kernel interface update with incorrect OP code (%u)",

View File

@ -1226,7 +1226,8 @@ int rtm_write(int message, union sockunion *dest, union sockunion *mask,
case BLACKHOLE_REJECT: case BLACKHOLE_REJECT:
msg.rtm.rtm_flags |= RTF_REJECT; msg.rtm.rtm_flags |= RTF_REJECT;
break; break;
default: case BLACKHOLE_NULL:
case BLACKHOLE_ADMINPROHIB:
msg.rtm.rtm_flags |= RTF_BLACKHOLE; msg.rtm.rtm_flags |= RTF_BLACKHOLE;
break; break;
} }

View File

@ -113,9 +113,13 @@ int router_id_get(afi_t afi, struct prefix *p, struct zebra_vrf *zvrf)
if (addr) if (addr)
memcpy(&p->u.prefix6, addr, sizeof(struct in6_addr)); memcpy(&p->u.prefix6, addr, sizeof(struct in6_addr));
return 0; return 0;
default: case AFI_UNSPEC:
case AFI_L2VPN:
case AFI_MAX:
return -1; return -1;
} }
assert(!"Reached end of function we should never hit");
} }
static int router_id_set(afi_t afi, struct prefix *p, struct zebra_vrf *zvrf) static int router_id_set(afi_t afi, struct prefix *p, struct zebra_vrf *zvrf)
@ -133,7 +137,9 @@ static int router_id_set(afi_t afi, struct prefix *p, struct zebra_vrf *zvrf)
case AFI_IP6: case AFI_IP6:
zvrf->rid6_user_assigned.u.prefix6 = p->u.prefix6; zvrf->rid6_user_assigned.u.prefix6 = p->u.prefix6;
break; break;
default: case AFI_UNSPEC:
case AFI_L2VPN:
case AFI_MAX:
return -1; return -1;
} }

View File

@ -1569,7 +1569,16 @@ static bool _netlink_route_build_singlepath(const struct prefix *p,
ctx->table)) ctx->table))
return false; return false;
break; break;
default: case ZEBRA_SEG6_LOCAL_ACTION_END_DX2:
case ZEBRA_SEG6_LOCAL_ACTION_END_DX6:
case ZEBRA_SEG6_LOCAL_ACTION_END_B6:
case ZEBRA_SEG6_LOCAL_ACTION_END_B6_ENCAP:
case ZEBRA_SEG6_LOCAL_ACTION_END_BM:
case ZEBRA_SEG6_LOCAL_ACTION_END_S:
case ZEBRA_SEG6_LOCAL_ACTION_END_AS:
case ZEBRA_SEG6_LOCAL_ACTION_END_AM:
case ZEBRA_SEG6_LOCAL_ACTION_END_BPF:
case ZEBRA_SEG6_LOCAL_ACTION_UNSPEC:
zlog_err("%s: unsupport seg6local behaviour action=%u", zlog_err("%s: unsupport seg6local behaviour action=%u",
__func__, __func__,
nexthop->nh_srv6->seg6local_action); nexthop->nh_srv6->seg6local_action);
@ -2151,7 +2160,8 @@ ssize_t netlink_route_multipath_msg_encode(int cmd,
case BLACKHOLE_REJECT: case BLACKHOLE_REJECT:
req->r.rtm_type = RTN_UNREACHABLE; req->r.rtm_type = RTN_UNREACHABLE;
break; break;
default: case BLACKHOLE_UNSPEC:
case BLACKHOLE_NULL:
req->r.rtm_type = RTN_BLACKHOLE; req->r.rtm_type = RTN_BLACKHOLE;
break; break;
} }
@ -4448,7 +4458,7 @@ static int netlink_neigh_table_update_ctx(const struct zebra_dplane_ctx *ctx,
static ssize_t netlink_neigh_msg_encoder(struct zebra_dplane_ctx *ctx, static ssize_t netlink_neigh_msg_encoder(struct zebra_dplane_ctx *ctx,
void *buf, size_t buflen) void *buf, size_t buflen)
{ {
ssize_t ret; ssize_t ret = 0;
switch (dplane_ctx_get_op(ctx)) { switch (dplane_ctx_get_op(ctx)) {
case DPLANE_OP_NEIGH_INSTALL: case DPLANE_OP_NEIGH_INSTALL:
@ -4472,7 +4482,51 @@ static ssize_t netlink_neigh_msg_encoder(struct zebra_dplane_ctx *ctx,
case DPLANE_OP_NEIGH_TABLE_UPDATE: case DPLANE_OP_NEIGH_TABLE_UPDATE:
ret = netlink_neigh_table_update_ctx(ctx, buf, buflen); ret = netlink_neigh_table_update_ctx(ctx, buf, buflen);
break; break;
default: case DPLANE_OP_ROUTE_INSTALL:
case DPLANE_OP_ROUTE_UPDATE:
case DPLANE_OP_ROUTE_DELETE:
case DPLANE_OP_ROUTE_NOTIFY:
case DPLANE_OP_NH_INSTALL:
case DPLANE_OP_NH_UPDATE:
case DPLANE_OP_NH_DELETE:
case DPLANE_OP_LSP_INSTALL:
case DPLANE_OP_LSP_UPDATE:
case DPLANE_OP_LSP_DELETE:
case DPLANE_OP_LSP_NOTIFY:
case DPLANE_OP_PW_INSTALL:
case DPLANE_OP_PW_UNINSTALL:
case DPLANE_OP_SYS_ROUTE_ADD:
case DPLANE_OP_SYS_ROUTE_DELETE:
case DPLANE_OP_ADDR_INSTALL:
case DPLANE_OP_ADDR_UNINSTALL:
case DPLANE_OP_MAC_INSTALL:
case DPLANE_OP_MAC_DELETE:
case DPLANE_OP_RULE_ADD:
case DPLANE_OP_RULE_DELETE:
case DPLANE_OP_RULE_UPDATE:
case DPLANE_OP_BR_PORT_UPDATE:
case DPLANE_OP_IPTABLE_ADD:
case DPLANE_OP_IPTABLE_DELETE:
case DPLANE_OP_IPSET_ADD:
case DPLANE_OP_IPSET_DELETE:
case DPLANE_OP_IPSET_ENTRY_ADD:
case DPLANE_OP_IPSET_ENTRY_DELETE:
case DPLANE_OP_GRE_SET:
case DPLANE_OP_INTF_ADDR_ADD:
case DPLANE_OP_INTF_ADDR_DEL:
case DPLANE_OP_INTF_NETCONFIG:
case DPLANE_OP_INTF_INSTALL:
case DPLANE_OP_INTF_UPDATE:
case DPLANE_OP_INTF_DELETE:
case DPLANE_OP_TC_QDISC_INSTALL:
case DPLANE_OP_TC_QDISC_UNINSTALL:
case DPLANE_OP_TC_CLASS_ADD:
case DPLANE_OP_TC_CLASS_DELETE:
case DPLANE_OP_TC_CLASS_UPDATE:
case DPLANE_OP_TC_FILTER_ADD:
case DPLANE_OP_TC_FILTER_DELETE:
case DPLANE_OP_TC_FILTER_UPDATE:
case DPLANE_OP_NONE:
ret = -1; ret = -1;
} }

View File

@ -745,7 +745,8 @@ int netlink_qdisc_change(struct nlmsghdr *h, ns_id_t ns_id, int startup)
case TC_QDISC_NOQUEUE: case TC_QDISC_NOQUEUE:
/* "noqueue" is the default qdisc */ /* "noqueue" is the default qdisc */
break; break;
default: case TC_QDISC_HTB:
case TC_QDISC_UNSPEC:
break; break;
} }

View File

@ -143,7 +143,7 @@ static int zserv_encode_nexthop(struct stream *s, struct nexthop *nexthop)
case NEXTHOP_TYPE_IFINDEX: case NEXTHOP_TYPE_IFINDEX:
stream_putl(s, nexthop->ifindex); stream_putl(s, nexthop->ifindex);
break; break;
default: case NEXTHOP_TYPE_BLACKHOLE:
/* do nothing */ /* do nothing */
break; break;
} }
@ -576,7 +576,9 @@ int zsend_redistribute_route(int cmd, struct zserv *client,
else else
client->redist_v6_del_cnt++; client->redist_v6_del_cnt++;
break; break;
default: case AFI_L2VPN:
case AFI_MAX:
case AFI_UNSPEC:
break; break;
} }
@ -3424,7 +3426,10 @@ static inline void zread_tc_filter(ZAPI_HANDLER_ARGS)
STREAM_GETL(s, filter.filter.u.flower.classid); STREAM_GETL(s, filter.filter.u.flower.classid);
break; break;
} }
default: case TC_FILTER_BPF:
case TC_FILTER_FLOW:
case TC_FILTER_U32:
case TC_FILTER_UNSPEC:
break; break;
} }

View File

@ -902,7 +902,7 @@ static inline int zfpm_encode_route(rib_dest_t *dest, struct route_entry *re,
#endif /* HAVE_NETLINK */ #endif /* HAVE_NETLINK */
break; break;
default: case ZFPM_MSG_FORMAT_NONE:
break; break;
} }

View File

@ -315,7 +315,7 @@ static int netlink_route_info_fill(struct netlink_route_info *ri, int cmd,
ri->rtm_type = RTN_UNREACHABLE; ri->rtm_type = RTN_UNREACHABLE;
break; break;
case BLACKHOLE_NULL: case BLACKHOLE_NULL:
default: case BLACKHOLE_UNSPEC:
ri->rtm_type = RTN_BLACKHOLE; ri->rtm_type = RTN_BLACKHOLE;
break; break;
} }

View File

@ -186,7 +186,8 @@ static Fpm__AddRoute *create_add_route_message(qpb_allocator_t *allocator,
msg->route_type = FPM__ROUTE_TYPE__UNREACHABLE; msg->route_type = FPM__ROUTE_TYPE__UNREACHABLE;
break; break;
case BLACKHOLE_NULL: case BLACKHOLE_NULL:
default: case BLACKHOLE_UNSPEC:
case BLACKHOLE_ADMINPROHIB:
msg->route_type = FPM__ROUTE_TYPE__BLACKHOLE; msg->route_type = FPM__ROUTE_TYPE__BLACKHOLE;
break; break;
} }

View File

@ -888,7 +888,14 @@ int zebra_mlag_protobuf_encode_client_data(struct stream *s, uint32_t *msg_type)
if (cleanup) if (cleanup)
return -1; return -1;
} break; } break;
default: case MLAG_REGISTER:
case MLAG_DEREGISTER:
case MLAG_STATUS_UPDATE:
case MLAG_DUMP:
case MLAG_PIM_CFG_DUMP:
case MLAG_VXLAN_UPDATE:
case MLAG_PEER_FRR_STATUS:
case MLAG_MSG_NONE:
break; break;
} }

View File

@ -1848,7 +1848,57 @@ void zebra_mpls_lsp_dplane_result(struct zebra_dplane_ctx *ctx)
ZEBRA_SR_POLICY_LABEL_REMOVED); ZEBRA_SR_POLICY_LABEL_REMOVED);
break; break;
default: case DPLANE_OP_LSP_NOTIFY:
case DPLANE_OP_NONE:
case DPLANE_OP_ROUTE_INSTALL:
case DPLANE_OP_ROUTE_UPDATE:
case DPLANE_OP_ROUTE_DELETE:
case DPLANE_OP_ROUTE_NOTIFY:
case DPLANE_OP_NH_INSTALL:
case DPLANE_OP_NH_UPDATE:
case DPLANE_OP_NH_DELETE:
case DPLANE_OP_PW_INSTALL:
case DPLANE_OP_PW_UNINSTALL:
case DPLANE_OP_SYS_ROUTE_ADD:
case DPLANE_OP_SYS_ROUTE_DELETE:
case DPLANE_OP_ADDR_INSTALL:
case DPLANE_OP_ADDR_UNINSTALL:
case DPLANE_OP_MAC_INSTALL:
case DPLANE_OP_MAC_DELETE:
case DPLANE_OP_NEIGH_INSTALL:
case DPLANE_OP_NEIGH_UPDATE:
case DPLANE_OP_NEIGH_DELETE:
case DPLANE_OP_VTEP_ADD:
case DPLANE_OP_VTEP_DELETE:
case DPLANE_OP_RULE_ADD:
case DPLANE_OP_RULE_DELETE:
case DPLANE_OP_RULE_UPDATE:
case DPLANE_OP_NEIGH_DISCOVER:
case DPLANE_OP_BR_PORT_UPDATE:
case DPLANE_OP_IPTABLE_ADD:
case DPLANE_OP_IPTABLE_DELETE:
case DPLANE_OP_IPSET_ADD:
case DPLANE_OP_IPSET_DELETE:
case DPLANE_OP_IPSET_ENTRY_ADD:
case DPLANE_OP_IPSET_ENTRY_DELETE:
case DPLANE_OP_NEIGH_IP_INSTALL:
case DPLANE_OP_NEIGH_IP_DELETE:
case DPLANE_OP_NEIGH_TABLE_UPDATE:
case DPLANE_OP_GRE_SET:
case DPLANE_OP_INTF_ADDR_ADD:
case DPLANE_OP_INTF_ADDR_DEL:
case DPLANE_OP_INTF_NETCONFIG:
case DPLANE_OP_INTF_INSTALL:
case DPLANE_OP_INTF_UPDATE:
case DPLANE_OP_INTF_DELETE:
case DPLANE_OP_TC_QDISC_INSTALL:
case DPLANE_OP_TC_QDISC_UNINSTALL:
case DPLANE_OP_TC_CLASS_ADD:
case DPLANE_OP_TC_CLASS_DELETE:
case DPLANE_OP_TC_CLASS_UPDATE:
case DPLANE_OP_TC_FILTER_ADD:
case DPLANE_OP_TC_FILTER_DELETE:
case DPLANE_OP_TC_FILTER_UPDATE:
break; break;
} /* Switch */ } /* Switch */

View File

@ -255,7 +255,57 @@ static int kernel_lsp_cmd(struct zebra_dplane_ctx *ctx)
case DPLANE_OP_LSP_UPDATE: case DPLANE_OP_LSP_UPDATE:
action = RTM_CHANGE; action = RTM_CHANGE;
break; break;
default: case DPLANE_OP_NONE:
case DPLANE_OP_ROUTE_INSTALL:
case DPLANE_OP_ROUTE_UPDATE:
case DPLANE_OP_ROUTE_DELETE:
case DPLANE_OP_ROUTE_NOTIFY:
case DPLANE_OP_NH_INSTALL:
case DPLANE_OP_NH_UPDATE:
case DPLANE_OP_NH_DELETE:
case DPLANE_OP_LSP_NOTIFY:
case DPLANE_OP_PW_INSTALL:
case DPLANE_OP_PW_UNINSTALL:
case DPLANE_OP_SYS_ROUTE_ADD:
case DPLANE_OP_SYS_ROUTE_DELETE:
case DPLANE_OP_ADDR_INSTALL:
case DPLANE_OP_ADDR_UNINSTALL:
case DPLANE_OP_MAC_INSTALL:
case DPLANE_OP_MAC_DELETE:
case DPLANE_OP_NEIGH_INSTALL:
case DPLANE_OP_NEIGH_UPDATE:
case DPLANE_OP_NEIGH_DELETE:
case DPLANE_OP_VTEP_ADD:
case DPLANE_OP_VTEP_DELETE:
case DPLANE_OP_RULE_ADD:
case DPLANE_OP_RULE_DELETE:
case DPLANE_OP_RULE_UPDATE:
case DPLANE_OP_NEIGH_DISCOVER:
case DPLANE_OP_BR_PORT_UPDATE:
case DPLANE_OP_IPTABLE_ADD:
case DPLANE_OP_IPTABLE_DELETE:
case DPLANE_OP_IPSET_ADD:
case DPLANE_OP_IPSET_DELETE:
case DPLANE_OP_IPSET_ENTRY_ADD:
case DPLANE_OP_IPSET_ENTRY_DELETE:
case DPLANE_OP_NEIGH_IP_INSTALL:
case DPLANE_OP_NEIGH_IP_DELETE:
case DPLANE_OP_NEIGH_TABLE_UPDATE:
case DPLANE_OP_GRE_SET:
case DPLANE_OP_INTF_ADDR_ADD:
case DPLANE_OP_INTF_ADDR_DEL:
case DPLANE_OP_INTF_NETCONFIG:
case DPLANE_OP_INTF_INSTALL:
case DPLANE_OP_INTF_UPDATE:
case DPLANE_OP_INTF_DELETE:
case DPLANE_OP_TC_QDISC_INSTALL:
case DPLANE_OP_TC_QDISC_UNINSTALL:
case DPLANE_OP_TC_CLASS_ADD:
case DPLANE_OP_TC_CLASS_DELETE:
case DPLANE_OP_TC_CLASS_UPDATE:
case DPLANE_OP_TC_FILTER_ADD:
case DPLANE_OP_TC_FILTER_DELETE:
case DPLANE_OP_TC_FILTER_UPDATE:
return -1; return -1;
} }
@ -415,7 +465,58 @@ enum zebra_dplane_result kernel_pw_update(struct zebra_dplane_ctx *ctx)
case DPLANE_OP_PW_UNINSTALL: case DPLANE_OP_PW_UNINSTALL:
result = kmpw_uninstall(ctx); result = kmpw_uninstall(ctx);
break; break;
default: case DPLANE_OP_NONE:
case DPLANE_OP_ROUTE_INSTALL:
case DPLANE_OP_ROUTE_UPDATE:
case DPLANE_OP_ROUTE_DELETE:
case DPLANE_OP_ROUTE_NOTIFY:
case DPLANE_OP_NH_INSTALL:
case DPLANE_OP_NH_UPDATE:
case DPLANE_OP_NH_DELETE:
case DPLANE_OP_LSP_INSTALL:
case DPLANE_OP_LSP_UPDATE:
case DPLANE_OP_LSP_DELETE:
case DPLANE_OP_LSP_NOTIFY:
case DPLANE_OP_SYS_ROUTE_ADD:
case DPLANE_OP_SYS_ROUTE_DELETE:
case DPLANE_OP_ADDR_INSTALL:
case DPLANE_OP_ADDR_UNINSTALL:
case DPLANE_OP_MAC_INSTALL:
case DPLANE_OP_MAC_DELETE:
case DPLANE_OP_NEIGH_INSTALL:
case DPLANE_OP_NEIGH_UPDATE:
case DPLANE_OP_NEIGH_DELETE:
case DPLANE_OP_VTEP_ADD:
case DPLANE_OP_VTEP_DELETE:
case DPLANE_OP_RULE_ADD:
case DPLANE_OP_RULE_DELETE:
case DPLANE_OP_RULE_UPDATE:
case DPLANE_OP_NEIGH_DISCOVER:
case DPLANE_OP_BR_PORT_UPDATE:
case DPLANE_OP_IPTABLE_ADD:
case DPLANE_OP_IPTABLE_DELETE:
case DPLANE_OP_IPSET_ADD:
case DPLANE_OP_IPSET_DELETE:
case DPLANE_OP_IPSET_ENTRY_ADD:
case DPLANE_OP_IPSET_ENTRY_DELETE:
case DPLANE_OP_NEIGH_IP_INSTALL:
case DPLANE_OP_NEIGH_IP_DELETE:
case DPLANE_OP_NEIGH_TABLE_UPDATE:
case DPLANE_OP_GRE_SET:
case DPLANE_OP_INTF_ADDR_ADD:
case DPLANE_OP_INTF_ADDR_DEL:
case DPLANE_OP_INTF_NETCONFIG:
case DPLANE_OP_INTF_INSTALL:
case DPLANE_OP_INTF_UPDATE:
case DPLANE_OP_INTF_DELETE:
case DPLANE_OP_TC_QDISC_INSTALL:
case DPLANE_OP_TC_QDISC_UNINSTALL:
case DPLANE_OP_TC_CLASS_ADD:
case DPLANE_OP_TC_CLASS_DELETE:
case DPLANE_OP_TC_CLASS_UPDATE:
case DPLANE_OP_TC_FILTER_ADD:
case DPLANE_OP_TC_FILTER_DELETE:
case DPLANE_OP_TC_FILTER_UPDATE:
break; break;
} }

View File

@ -706,7 +706,7 @@ lib_vrf_zebra_ribs_rib_route_route_entry_nexthop_group_nexthop_nh_type_get_elem(
case NEXTHOP_TYPE_IPV6_IFINDEX: case NEXTHOP_TYPE_IPV6_IFINDEX:
return yang_data_new_string(args->xpath, "ip6-ifindex"); return yang_data_new_string(args->xpath, "ip6-ifindex");
break; break;
default: case NEXTHOP_TYPE_BLACKHOLE:
break; break;
} }

View File

@ -2250,7 +2250,9 @@ static int nexthop_active(struct nexthop *nexthop, struct nhg_hash_entry *nhe,
endpoint.ipa_type = IPADDR_V6; endpoint.ipa_type = IPADDR_V6;
endpoint.ipaddr_v6 = nexthop->gate.ipv6; endpoint.ipaddr_v6 = nexthop->gate.ipv6;
break; break;
default: case AFI_UNSPEC:
case AFI_L2VPN:
case AFI_MAX:
flog_err(EC_LIB_DEVELOPMENT, flog_err(EC_LIB_DEVELOPMENT,
"%s: unknown address-family: %u", __func__, "%s: unknown address-family: %u", __func__,
afi); afi);
@ -2291,7 +2293,9 @@ static int nexthop_active(struct nexthop *nexthop, struct nhg_hash_entry *nhe,
p.prefixlen = IPV6_MAX_BITLEN; p.prefixlen = IPV6_MAX_BITLEN;
p.u.prefix6 = nexthop->gate.ipv6; p.u.prefix6 = nexthop->gate.ipv6;
break; break;
default: case AFI_UNSPEC:
case AFI_L2VPN:
case AFI_MAX:
assert(afi != AFI_IP && afi != AFI_IP6); assert(afi != AFI_IP && afi != AFI_IP6);
break; break;
} }

View File

@ -648,7 +648,8 @@ static void zebra_pbr_expand_rule(struct zebra_pbr_rule *rule)
zebra_neigh_ref(action->ifindex, &ip, rule); zebra_neigh_ref(action->ifindex, &ip, rule);
break; break;
default: case NEXTHOP_TYPE_BLACKHOLE:
case NEXTHOP_TYPE_IFINDEX:
action->afi = AFI_UNSPEC; action->afi = AFI_UNSPEC;
} }
} }

View File

@ -2158,7 +2158,58 @@ static void rib_process_result(struct zebra_dplane_ctx *ctx)
(old_re && RIB_SYSTEM_ROUTE(old_re))) (old_re && RIB_SYSTEM_ROUTE(old_re)))
zebra_rib_fixup_system(rn); zebra_rib_fixup_system(rn);
break; break;
default:
case DPLANE_OP_NONE:
case DPLANE_OP_ROUTE_NOTIFY:
case DPLANE_OP_NH_INSTALL:
case DPLANE_OP_NH_UPDATE:
case DPLANE_OP_NH_DELETE:
case DPLANE_OP_LSP_INSTALL:
case DPLANE_OP_LSP_UPDATE:
case DPLANE_OP_LSP_DELETE:
case DPLANE_OP_LSP_NOTIFY:
case DPLANE_OP_PW_INSTALL:
case DPLANE_OP_PW_UNINSTALL:
case DPLANE_OP_SYS_ROUTE_ADD:
case DPLANE_OP_SYS_ROUTE_DELETE:
case DPLANE_OP_ADDR_INSTALL:
case DPLANE_OP_ADDR_UNINSTALL:
case DPLANE_OP_MAC_INSTALL:
case DPLANE_OP_MAC_DELETE:
case DPLANE_OP_NEIGH_INSTALL:
case DPLANE_OP_NEIGH_UPDATE:
case DPLANE_OP_NEIGH_DELETE:
case DPLANE_OP_VTEP_ADD:
case DPLANE_OP_VTEP_DELETE:
case DPLANE_OP_RULE_ADD:
case DPLANE_OP_RULE_DELETE:
case DPLANE_OP_RULE_UPDATE:
case DPLANE_OP_NEIGH_DISCOVER:
case DPLANE_OP_BR_PORT_UPDATE:
case DPLANE_OP_IPTABLE_ADD:
case DPLANE_OP_IPTABLE_DELETE:
case DPLANE_OP_IPSET_ADD:
case DPLANE_OP_IPSET_DELETE:
case DPLANE_OP_IPSET_ENTRY_ADD:
case DPLANE_OP_IPSET_ENTRY_DELETE:
case DPLANE_OP_NEIGH_IP_INSTALL:
case DPLANE_OP_NEIGH_IP_DELETE:
case DPLANE_OP_NEIGH_TABLE_UPDATE:
case DPLANE_OP_GRE_SET:
case DPLANE_OP_INTF_ADDR_ADD:
case DPLANE_OP_INTF_ADDR_DEL:
case DPLANE_OP_INTF_NETCONFIG:
case DPLANE_OP_INTF_INSTALL:
case DPLANE_OP_INTF_UPDATE:
case DPLANE_OP_INTF_DELETE:
case DPLANE_OP_TC_QDISC_INSTALL:
case DPLANE_OP_TC_QDISC_UNINSTALL:
case DPLANE_OP_TC_CLASS_ADD:
case DPLANE_OP_TC_CLASS_DELETE:
case DPLANE_OP_TC_CLASS_UPDATE:
case DPLANE_OP_TC_FILTER_ADD:
case DPLANE_OP_TC_FILTER_DELETE:
case DPLANE_OP_TC_FILTER_UPDATE:
break; break;
} }
@ -4334,7 +4385,7 @@ void rib_update_table(struct route_table *table, enum rib_update_event event,
case RIB_UPDATE_OTHER: case RIB_UPDATE_OTHER:
rib_update_route_node(rn, rtype); rib_update_route_node(rn, rtype);
break; break;
default: case RIB_UPDATE_MAX:
break; break;
} }
} }

View File

@ -1401,7 +1401,8 @@ void show_nexthop_json_helper(json_object *json_nexthop,
json_object_string_addf(json_nexthop, "source", "%pI6", json_object_string_addf(json_nexthop, "source", "%pI6",
&nexthop->src.ipv6); &nexthop->src.ipv6);
break; break;
default: case NEXTHOP_TYPE_IFINDEX:
case NEXTHOP_TYPE_BLACKHOLE:
break; break;
} }
@ -1523,7 +1524,8 @@ void show_route_nexthop_helper(struct vty *vty, const struct route_entry *re,
if (!IPV6_ADDR_SAME(&nexthop->src.ipv6, &in6addr_any)) if (!IPV6_ADDR_SAME(&nexthop->src.ipv6, &in6addr_any))
vty_out(vty, ", src %pI6", &nexthop->src.ipv6); vty_out(vty, ", src %pI6", &nexthop->src.ipv6);
break; break;
default: case NEXTHOP_TYPE_IFINDEX:
case NEXTHOP_TYPE_BLACKHOLE:
break; break;
} }

View File

@ -1049,7 +1049,9 @@ route_match_ip_next_hop(void *rule, const struct prefix *prefix, void *object)
p.prefix = nh_data->nexthop->gate.ipv4; p.prefix = nh_data->nexthop->gate.ipv4;
p.prefixlen = IPV4_MAX_BITLEN; p.prefixlen = IPV4_MAX_BITLEN;
break; break;
default: case NEXTHOP_TYPE_IPV6:
case NEXTHOP_TYPE_IPV6_IFINDEX:
case NEXTHOP_TYPE_BLACKHOLE:
return RMAP_NOMATCH; return RMAP_NOMATCH;
} }
alist = access_list_lookup(AFI_IP, (char *)rule); alist = access_list_lookup(AFI_IP, (char *)rule);
@ -1105,7 +1107,9 @@ route_match_ip_next_hop_prefix_list(void *rule, const struct prefix *prefix,
p.prefix = nh_data->nexthop->gate.ipv4; p.prefix = nh_data->nexthop->gate.ipv4;
p.prefixlen = IPV4_MAX_BITLEN; p.prefixlen = IPV4_MAX_BITLEN;
break; break;
default: case NEXTHOP_TYPE_IPV6:
case NEXTHOP_TYPE_IPV6_IFINDEX:
case NEXTHOP_TYPE_BLACKHOLE:
return RMAP_NOMATCH; return RMAP_NOMATCH;
} }
plist = prefix_list_lookup(AFI_IP, (char *)rule); plist = prefix_list_lookup(AFI_IP, (char *)rule);
@ -1364,7 +1368,9 @@ route_match_ip_nexthop_prefix_len(void *rule, const struct prefix *prefix,
p.prefix = nh_data->nexthop->gate.ipv4; p.prefix = nh_data->nexthop->gate.ipv4;
p.prefixlen = IPV4_MAX_BITLEN; p.prefixlen = IPV4_MAX_BITLEN;
break; break;
default: case NEXTHOP_TYPE_IPV6:
case NEXTHOP_TYPE_IPV6_IFINDEX:
case NEXTHOP_TYPE_BLACKHOLE:
return RMAP_NOMATCH; return RMAP_NOMATCH;
} }
return ((p.prefixlen == *prefixlen) ? RMAP_MATCH : RMAP_NOMATCH); return ((p.prefixlen == *prefixlen) ? RMAP_MATCH : RMAP_NOMATCH);

View File

@ -140,7 +140,7 @@ static int zebra_sr_policy_notify_update_client(struct zebra_sr_policy *policy,
stream_putc(s, IPV6_MAX_BITLEN); stream_putc(s, IPV6_MAX_BITLEN);
stream_put(s, &policy->endpoint.ipaddr_v6, IPV6_MAX_BYTELEN); stream_put(s, &policy->endpoint.ipaddr_v6, IPV6_MAX_BYTELEN);
break; break;
default: case IPADDR_NONE:
flog_warn(EC_LIB_DEVELOPMENT, flog_warn(EC_LIB_DEVELOPMENT,
"%s: unknown policy endpoint address family: %u", "%s: unknown policy endpoint address family: %u",
__func__, policy->endpoint.ipa_type); __func__, policy->endpoint.ipa_type);
@ -202,7 +202,7 @@ static void zebra_sr_policy_notify_update(struct zebra_sr_policy *policy)
p.prefixlen = IPV6_MAX_BITLEN; p.prefixlen = IPV6_MAX_BITLEN;
p.u.prefix6 = policy->endpoint.ipaddr_v6; p.u.prefix6 = policy->endpoint.ipaddr_v6;
break; break;
default: case IPADDR_NONE:
flog_warn(EC_LIB_DEVELOPMENT, flog_warn(EC_LIB_DEVELOPMENT,
"%s: unknown policy endpoint address family: %u", "%s: unknown policy endpoint address family: %u",
__func__, policy->endpoint.ipa_type); __func__, policy->endpoint.ipa_type);

View File

@ -405,7 +405,8 @@ static void show_nexthop_detail_helper(struct vty *vty,
} }
break; break;
default: case NEXTHOP_TYPE_IFINDEX:
case NEXTHOP_TYPE_BLACKHOLE:
break; break;
} }