pathd: Add missing enum's to switch statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
This commit is contained in:
Donald Sharp 2023-01-30 10:08:25 -05:00
parent da21ae9dc7
commit d5dea3506e
10 changed files with 220 additions and 49 deletions

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)