bgpd: Add missing enum's to case statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
This commit is contained in:
Donald Sharp 2023-01-30 10:05:41 -05:00
parent ca411e386f
commit 58cf0823bf
13 changed files with 139 additions and 48 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

@ -12056,9 +12056,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. */
@ -13283,7 +13290,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;
} }
@ -13538,7 +13546,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");