From bad260cc2fc0e3daacb99cbeef85b917e008ced9 Mon Sep 17 00:00:00 2001 From: Sebastien Merle Date: Thu, 25 Jun 2020 17:15:39 +0200 Subject: [PATCH] pathd: pcep module: update for the new pceplib error definitions --- pathd/path_pcep_debug.c | 489 +++++++++++++++++++++++++++++++++------- pathd/path_pcep_pcc.c | 8 +- 2 files changed, 408 insertions(+), 89 deletions(-) diff --git a/pathd/path_pcep_debug.c b/pathd/path_pcep_debug.c index d5beeb7a1c23..80b5f73f9f36 100644 --- a/pathd/path_pcep_debug.c +++ b/pathd/path_pcep_debug.c @@ -166,6 +166,7 @@ const char *pcep_event_type_name(pcep_event_type event_type) const char *pcep_error_type_name(enum pcep_error_type error_type) { switch (error_type) { + case PCEP_ERRT_SESSION_FAILURE: return "SESSION_FAILURE"; case PCEP_ERRT_CAPABILITY_NOT_SUPPORTED: @@ -186,14 +187,46 @@ const char *pcep_error_type_name(enum pcep_error_type error_type) return "ATTEMPT_TO_ESTABLISH_2ND_PCEP_SESSION"; case PCEP_ERRT_RECEPTION_OF_INV_OBJECT: return "RECEPTION_OF_INV_OBJECT"; + case PCEP_ERRT_UNRECOGNIZED_EXRS_SUBOBJ: + return "UNRECOGNIZED_EXRS_SUBOBJ"; + case PCEP_ERRT_DIFFSERV_AWARE_TE_ERROR: + return "DIFFSERV_AWARE_TE_ERROR"; + case PCEP_ERRT_BRPC_PROC_COMPLETION_ERROR: + return "BRPC_PROC_COMPLETION_ERROR"; + case PCEP_ERRT_UNASSIGNED14: + return "UNASSIGNED14"; + case PCEP_ERRT_GLOBAL_CONCURRENT_ERROR: + return "GLOBAL_CONCURRENT_ERROR"; + case PCEP_ERRT_P2PMP_CAP_ERROR: + return "P2PMP_CAP_ERROR"; + case PCEP_ERRT_P2P_ENDPOINTS_ERROR: + return "P2P_ENDPOINTS_ERROR"; + case PCEP_ERRT_P2P_FRAGMENTATION_ERROR: + return "P2P_FRAGMENTATION_ERROR"; case PCEP_ERRT_INVALID_OPERATION: return "INVALID_OPERATION"; case PCEP_ERRT_LSP_STATE_SYNC_ERROR: return "LSP_STATE_SYNC_ERROR"; + case PCEP_ERRT_INVALID_TE_PATH_SETUP_TYPE: + return "INVALID_TE_PATH_SETUP_TYPE"; + case PCEP_ERRT_UNASSIGNED22: + return "UNASSIGNED22"; case PCEP_ERRT_BAD_PARAMETER_VALUE: return "BAD_PARAMETER_VALUE"; case PCEP_ERRT_LSP_INSTANTIATE_ERROR: return "LSP_INSTANTIATE_ERROR"; + case PCEP_ERRT_START_TLS_FAILURE: + return "START_TLS_FAILURE"; + case PCEP_ERRT_ASSOCIATION_ERROR: + return "ASSOCIATION_ERROR"; + case PCEP_ERRT_WSON_RWA_ERROR: + return "WSON_RWA_ERROR"; + case PCEP_ERRT_H_PCE_ERROR: + return "H_PCE_ERROR"; + case PCEP_ERRT_PATH_COMP_FAILURE: + return "PATH_COMP_FAILURE"; + case PCEP_ERRT_UNASSIGNED30: + return "UNASSIGNED30"; default: return "UNKNOWN"; } @@ -209,123 +242,413 @@ const char *pcep_error_value_name(enum pcep_error_type error_type, case TUP(PCEP_ERRT_UNKNOWN_REQ_REF, PCEP_ERRV_UNASSIGNED): case TUP(PCEP_ERRT_ATTEMPT_TO_ESTABLISH_2ND_PCEP_SESSION, PCEP_ERRV_UNASSIGNED): + case TUP(PCEP_ERRT_UNRECOGNIZED_EXRS_SUBOBJ, PCEP_ERRV_UNASSIGNED): return "UNASSIGNED"; - case TUP(PCEP_ERRT_SESSION_FAILURE, PCEP_ERRV_RECVD_INVALID_OPEN_MSG): + case TUP(PCEP_ERRV_RECVD_INVALID_OPEN_MSG, PCEP_ERRT_SESSION_FAILURE): return "RECVD_INVALID_OPEN_MSG"; - case TUP(PCEP_ERRT_SESSION_FAILURE, PCEP_ERRV_OPENWAIT_TIMED_OUT): + case TUP(PCEP_ERRV_OPENWAIT_TIMED_OUT, PCEP_ERRT_SESSION_FAILURE): return "OPENWAIT_TIMED_OUT"; - case TUP(PCEP_ERRT_SESSION_FAILURE, - PCEP_ERRV_UNACCEPTABLE_OPEN_MSG_NO_NEG): + case TUP(PCEP_ERRV_UNACCEPTABLE_OPEN_MSG_NO_NEG, + PCEP_ERRT_SESSION_FAILURE): return "UNACCEPTABLE_OPEN_MSG_NO_NEG"; - case TUP(PCEP_ERRT_SESSION_FAILURE, - PCEP_ERRV_UNACCEPTABLE_OPEN_MSG_NEG): + case TUP(PCEP_ERRV_UNACCEPTABLE_OPEN_MSG_NEG, + PCEP_ERRT_SESSION_FAILURE): return "UNACCEPTABLE_OPEN_MSG_NEG"; - case TUP(PCEP_ERRT_SESSION_FAILURE, - PCEP_ERRV_RECVD_SECOND_OPEN_MSG_UNACCEPTABLE): + case TUP(PCEP_ERRV_RECVD_SECOND_OPEN_MSG_UNACCEPTABLE, + PCEP_ERRT_SESSION_FAILURE): return "RECVD_SECOND_OPEN_MSG_UNACCEPTABLE"; - case TUP(PCEP_ERRT_SESSION_FAILURE, PCEP_ERRV_RECVD_PCERR): + case TUP(PCEP_ERRV_RECVD_PCERR, PCEP_ERRT_SESSION_FAILURE): return "RECVD_PCERR"; - case TUP(PCEP_ERRT_SESSION_FAILURE, PCEP_ERRV_KEEPALIVEWAIT_TIMED_OUT): + case TUP(PCEP_ERRV_KEEPALIVEWAIT_TIMED_OUT, PCEP_ERRT_SESSION_FAILURE): return "KEEPALIVEWAIT_TIMED_OUT"; + case TUP(PCEP_ERRV_PCEP_VERSION_NOT_SUPPORTED, + PCEP_ERRT_SESSION_FAILURE): + return "PCEP_VERSION_NOT_SUPPORTED"; - case TUP(PCEP_ERRT_UNKNOW_OBJECT, PCEP_ERRV_UNREC_OBJECT_CLASS): + case TUP(PCEP_ERRV_UNREC_OBJECT_CLASS, PCEP_ERRT_UNKNOW_OBJECT): return "UNREC_OBJECT_CLASS"; - case TUP(PCEP_ERRT_UNKNOW_OBJECT, PCEP_ERRV_UNREC_OBJECT_TYPE): + case TUP(PCEP_ERRV_UNREC_OBJECT_TYPE, PCEP_ERRT_UNKNOW_OBJECT): return "UNREC_OBJECT_TYPE"; - case TUP(PCEP_ERRT_NOT_SUPPORTED_OBJECT, - PCEP_ERRV_NOT_SUPPORTED_OBJECT_CLASS): + case TUP(PCEP_ERRV_NOT_SUPPORTED_OBJECT_CLASS, + PCEP_ERRT_NOT_SUPPORTED_OBJECT): return "NOT_SUPPORTED_OBJECT_CLASS"; - case TUP(PCEP_ERRT_NOT_SUPPORTED_OBJECT, - PCEP_ERRV_NOT_SUPPORTED_OBJECT_TYPE): + case TUP(PCEP_ERRV_NOT_SUPPORTED_OBJECT_TYPE, + PCEP_ERRT_NOT_SUPPORTED_OBJECT): return "NOT_SUPPORTED_OBJECT_TYPE"; - - case TUP(PCEP_ERRT_POLICY_VIOLATION, - PCEP_ERRV_C_BIT_SET_IN_METRIC_OBJECT): + case TUP(PCEP_ERRV_UNSUPPORTED_PARAM, PCEP_ERRT_NOT_SUPPORTED_OBJECT): + return "UNSUPPORTED_PARAM"; + case TUP(PCEP_ERRV_UNSUPPORTED_NW_PERF_CONSTRAINT, + PCEP_ERRT_NOT_SUPPORTED_OBJECT): + return "UNSUPPORTED_NW_PERF_CONSTRAINT"; + case TUP(PCEP_ERRV_NOT_SUPPORTED_BW_OBJECT_3_4, + PCEP_ERRT_NOT_SUPPORTED_OBJECT): + return "NOT_SUPPORTED_BW_OBJECT_3_4"; + case TUP(PCEP_ERRV_UNSUPPORTED_ENDPOINT_TYPE, + PCEP_ERRT_NOT_SUPPORTED_OBJECT): + return "UNSUPPORTED_ENDPOINT_TYPE"; + case TUP(PCEP_ERRV_UNSUPPORTED_ENDPOINT_TLV, + PCEP_ERRT_NOT_SUPPORTED_OBJECT): + return "UNSUPPORTED_ENDPOINT_TLV"; + case TUP(PCEP_ERRV_UNSUPPORTED_RP_FLAG_GRANULARITY, + PCEP_ERRT_NOT_SUPPORTED_OBJECT): + return "UNSUPPORTED_RP_FLAG_GRANULARITY"; + + case TUP(PCEP_ERRV_C_BIT_SET_IN_METRIC_OBJECT, + PCEP_ERRT_POLICY_VIOLATION): return "C_BIT_SET_IN_METRIC_OBJECT"; - case TUP(PCEP_ERRT_POLICY_VIOLATION, - PCEP_ERRV_O_BIT_CLEARD_IN_RP_OBJECT): + case TUP(PCEP_ERRV_O_BIT_CLEARD_IN_RP_OBJECT, + PCEP_ERRT_POLICY_VIOLATION): return "O_BIT_CLEARD_IN_RP_OBJECT"; - - case TUP(PCEP_ERRT_MANDATORY_OBJECT_MISSING, - PCEP_ERRV_RP_OBJECT_MISSING): + case TUP(PCEP_ERRV_OBJECTIVE_FUNC_NOT_ALLOWED, + PCEP_ERRT_POLICY_VIOLATION): + return "OBJECTIVE_FUNC_NOT_ALLOWED"; + case TUP(PCEP_ERRV_RP_OF_BIT_SET, PCEP_ERRT_POLICY_VIOLATION): + return "RP_OF_BIT_SET"; + case TUP(PCEP_ERRV_GLOBAL_CONCURRENCY_NOT_ALLOWED, + PCEP_ERRT_POLICY_VIOLATION): + return "GLOBAL_CONCURRENCY_NOT_ALLOWED"; + case TUP(PCEP_ERRV_MONITORING_MSG_REJECTED, PCEP_ERRT_POLICY_VIOLATION): + return "MONITORING_MSG_REJECTED"; + case TUP(PCEP_ERRV_P2MP_PATH_COMP_NOT_ALLOWED, + PCEP_ERRT_POLICY_VIOLATION): + return "P2MP_PATH_COMP_NOT_ALLOWED"; + case TUP(PCEP_ERRV_UNALLOWED_NW_PERF_CONSTRAINT, + PCEP_ERRT_POLICY_VIOLATION): + return "UNALLOWED_NW_PERF_CONSTRAINT"; + + case TUP(PCEP_ERRV_RP_OBJECT_MISSING, + PCEP_ERRT_MANDATORY_OBJECT_MISSING): return "RP_OBJECT_MISSING"; - case TUP(PCEP_ERRT_MANDATORY_OBJECT_MISSING, - PCEP_ERRV_RRO_OBJECT_MISSING_FOR_REOP): + case TUP(PCEP_ERRV_RRO_OBJECT_MISSING_FOR_REOP, + PCEP_ERRT_MANDATORY_OBJECT_MISSING): return "RRO_OBJECT_MISSING_FOR_REOP"; - case TUP(PCEP_ERRT_MANDATORY_OBJECT_MISSING, - PCEP_ERRV_EP_OBJECT_MISSING): + case TUP(PCEP_ERRV_EP_OBJECT_MISSING, + PCEP_ERRT_MANDATORY_OBJECT_MISSING): return "EP_OBJECT_MISSING"; - case TUP(PCEP_ERRT_MANDATORY_OBJECT_MISSING, - PCEP_ERRV_LSP_OBJECT_MISSING): + case TUP(PCEP_ERRV_MONITOR_OBJECT_MISSING, + PCEP_ERRT_MANDATORY_OBJECT_MISSING): + return "MONITOR_OBJECT_MISSING"; + case TUP(PCEP_ERRV_LSP_OBJECT_MISSING, + PCEP_ERRT_MANDATORY_OBJECT_MISSING): return "LSP_OBJECT_MISSING"; - case TUP(PCEP_ERRT_MANDATORY_OBJECT_MISSING, - PCEP_ERRV_ERO_OBJECT_MISSING): + case TUP(PCEP_ERRV_ERO_OBJECT_MISSING, + PCEP_ERRT_MANDATORY_OBJECT_MISSING): return "ERO_OBJECT_MISSING"; - case TUP(PCEP_ERRT_MANDATORY_OBJECT_MISSING, - PCEP_ERRV_SRP_OBJECT_MISSING): + case TUP(PCEP_ERRV_SRP_OBJECT_MISSING, + PCEP_ERRT_MANDATORY_OBJECT_MISSING): return "SRP_OBJECT_MISSING"; - case TUP(PCEP_ERRT_MANDATORY_OBJECT_MISSING, - PCEP_ERRV_LSP_ID_TLV_MISSING): + case TUP(PCEP_ERRV_LSP_ID_TLV_MISSING, + PCEP_ERRT_MANDATORY_OBJECT_MISSING): return "LSP_ID_TLV_MISSING"; - - case TUP(PCEP_ERRT_RECEPTION_OF_INV_OBJECT, - PCEP_ERRV_P_FLAG_NOT_CORRECT_IN_OBJECT): + case TUP(PCEP_ERRV_LSP_DB_TLV_MISSING, + PCEP_ERRT_MANDATORY_OBJECT_MISSING): + return "LSP_DB_TLV_MISSING"; + case TUP(PCEP_ERRV_S2LS_OBJECT_MISSING, + PCEP_ERRT_MANDATORY_OBJECT_MISSING): + return "S2LS_OBJECT_MISSING"; + case TUP(PCEP_ERRV_P2MP_LSP_ID_TLV_MISSING, + PCEP_ERRT_MANDATORY_OBJECT_MISSING): + return "P2MP_LSP_ID_TLV_MISSING"; + case TUP(PCEP_ERRV_DISJOINTED_CONF_TLV_MISSING, + PCEP_ERRT_MANDATORY_OBJECT_MISSING): + return "DISJOINTED_CONF_TLV_MISSING"; + + case TUP(PCEP_ERRV_P_FLAG_NOT_CORRECT_IN_OBJECT, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): return "P_FLAG_NOT_CORRECT_IN_OBJECT"; - case TUP(PCEP_ERRT_RECEPTION_OF_INV_OBJECT, - PCEP_ERRV_PCC_SYMBOLIC_PATH_NAME_TLV_MISSING): - return "PCC_SYMBOLIC_PATH_NAME_TLV_MISSING"; - - case TUP(PCEP_ERRT_INVALID_OPERATION, - PCEP_ERRV_LSP_UPDATE_FOR_NON_DELEGATED_LSP): - return "LSP_UPDATE_FOR_NON_DELEGATED_LSP"; - case TUP(PCEP_ERRT_INVALID_OPERATION, - PCEP_ERRV_LSP_UPDATE_NON_ADVERTISED_PCE): - return "LSP_UPDATE_NON_ADVERTISED_PCE"; - case TUP(PCEP_ERRT_INVALID_OPERATION, - PCEP_ERRV_LSP_UPDATE_UNKNOWN_PLSP_ID): - return "LSP_UPDATE_UNKNOWN_PLSP_ID"; - case TUP(PCEP_ERRT_INVALID_OPERATION, - PCEP_ERRV_LSP_REPORT_NON_ADVERTISED_PCE): - return "LSP_REPORT_NON_ADVERTISED_PCE"; - case TUP(PCEP_ERRT_INVALID_OPERATION, - PCEP_ERRV_PCE_INIT_LSP_LIMIT_REACHED): - return "PCE_INIT_LSP_LIMIT_REACHED"; - case TUP(PCEP_ERRT_INVALID_OPERATION, - PCEP_ERRV_PCE_INIT_LSP_DELEGATION_CANT_REVOKE): - return "PCE_INIT_LSP_DELEGATION_CANT_REVOKE"; - case TUP(PCEP_ERRT_INVALID_OPERATION, - PCEP_ERRV_LSP_INIT_NON_ZERO_PLSP_ID): - return "LSP_INIT_NON_ZERO_PLSP_ID"; - case TUP(PCEP_ERRT_INVALID_OPERATION, PCEP_ERRV_LSP_NOT_PCE_INITIATED): - return "LSP_NOT_PCE_INITIATED"; - case TUP(PCEP_ERRT_INVALID_OPERATION, - PCEP_ERRV_PCE_INIT_OP_FREQ_LIMIT_REACHED): - return "PCE_INIT_OP_FREQ_LIMIT_REACHED"; - - case TUP(PCEP_ERRT_LSP_STATE_SYNC_ERROR, - PCEP_ERRV_PCE_CANT_PROCESS_LSP_REPORT): + case TUP(PCEP_ERRV_BAD_LABEL_VALUE, PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "BAD_LABEL_VALUE"; + case TUP(PCEP_ERRV_UNSUPPORTED_NUM_SR_ERO_SUBOBJECTS, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "UNSUPPORTED_NUM_SR_ERO_SUBOBJECTS"; + case TUP(PCEP_ERRV_BAD_LABEL_FORMAT, PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "BAD_LABEL_FORMAT"; + case TUP(PCEP_ERRV_ERO_SR_ERO_MIX, PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "ERO_SR_ERO_MIX"; + case TUP(PCEP_ERRV_SR_ERO_SID_NAI_ABSENT, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "SR_ERO_SID_NAI_ABSENT"; + case TUP(PCEP_ERRV_SR_RRO_SID_NAI_ABSENT, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "SR_RRO_SID_NAI_ABSENT"; + case TUP(PCEP_ERRV_SYMBOLIC_PATH_NAME_TLV_MISSING, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "SYMBOLIC_PATH_NAME_TLV_MISSING"; + case TUP(PCEP_ERRV_MSD_EXCEEDS_PCEP_SESSION_MAX, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "MSD_EXCEEDS_PCEP_SESSION_MAX"; + case TUP(PCEP_ERRV_RRO_SR_RRO_MIX, PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "RRO_SR_RRO_MIX"; + case TUP(PCEP_ERRV_MALFORMED_OBJECT, PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "MALFORMED_OBJECT"; + case TUP(PCEP_ERRV_MISSING_PCE_SR_CAP_TLV, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "MISSING_PCE_SR_CAP_TLV"; + case TUP(PCEP_ERRV_UNSUPPORTED_NAI, PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "UNSUPPORTED_NAI"; + case TUP(PCEP_ERRV_UNKNOWN_SID, PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "UNKNOWN_SID"; + case TUP(PCEP_ERRV_CANNOT_RESOLVE_NAI_TO_SID, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "CANNOT_RESOLVE_NAI_TO_SID"; + case TUP(PCEP_ERRV_COULD_NOT_FIND_SRGB, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "COULD_NOT_FIND_SRGB"; + case TUP(PCEP_ERRV_SID_EXCEEDS_SRGB, PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "SID_EXCEEDS_SRGB"; + case TUP(PCEP_ERRV_COULD_NOT_FIND_SRLB, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "COULD_NOT_FIND_SRLB"; + case TUP(PCEP_ERRV_SID_EXCEEDS_SRLB, PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "SID_EXCEEDS_SRLB"; + case TUP(PCEP_ERRV_INCONSISTENT_SID, PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "INCONSISTENT_SID"; + case TUP(PCEP_ERRV_MSD_MUST_BE_NONZERO, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "MSD_MUST_BE_NONZERO"; + case TUP(PCEP_ERRV_MISMATCH_O_S2LS_LSP, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "MISMATCH_O_S2LS_LSP"; + case TUP(PCEP_ERRV_INCOMPATIBLE_H_PCE_OF, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "INCOMPATIBLE_H_PCE_OF"; + case TUP(PCEP_ERRV_BAD_BANDWIDTH_TYPE_3_4, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "BAD_BANDWIDTH_TYPE_3_4"; + case TUP(PCEP_ERRV_UNSUPPORTED_LSP_PROT_FLAGS, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "UNSUPPORTED_LSP_PROT_FLAGS"; + case TUP(PCEP_ERRV_UNSUPPORTED_2ND_LSP_PROT_FLAGS, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "UNSUPPORTED_2ND_LSP_PROT_FLAGS"; + case TUP(PCEP_ERRV_UNSUPPORTED_LINK_PROT_TYPE, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "UNSUPPORTED_LINK_PROT_TYPE"; + case TUP(PCEP_ERRV_LABEL_SET_TLV_NO_RP_R, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "LABEL_SET_TLV_NO_RP_R"; + case TUP(PCEP_ERRV_WRONG_LABEL_SET_TLV_O_L_SET, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "WRONG_LABEL_SET_TLV_O_L_SET"; + case TUP(PCEP_ERRV_WRONG_LABEL_SET_O_SET, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "WRONG_LABEL_SET_O_SET"; + case TUP(PCEP_ERRV_MISSING_GMPLS_CAP_TLV, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "MISSING_GMPLS_CAP_TLV"; + case TUP(PCEP_ERRV_INCOMPATIBLE_OF_CODE, + PCEP_ERRT_RECEPTION_OF_INV_OBJECT): + return "INCOMPATIBLE_OF_CODE"; + + case TUP(PCEP_ERRV_UNSUPPORTED_CLASS_TYPE, + PCEP_ERRT_DIFFSERV_AWARE_TE_ERROR): + return "UNSUPPORTED_CLASS_TYPE"; + case TUP(PCEP_ERRV_INVALID_CLASS_TYPE, + PCEP_ERRT_DIFFSERV_AWARE_TE_ERROR): + return "INVALID_CLASS_TYPE"; + case TUP(PCEP_ERRV_CLASS_SETUP_TYPE_NOT_TE_CLASS, + PCEP_ERRT_DIFFSERV_AWARE_TE_ERROR): + return "CLASS_SETUP_TYPE_NOT_TE_CLASS"; + + case TUP(PCEP_ERRV_BRPC_PROC_NOT_SUPPORTED, + PCEP_ERRT_BRPC_PROC_COMPLETION_ERROR): + return "BRPC_PROC_NOT_SUPPORTED"; + + case TUP(PCEP_ERRV_INSUFFICIENT_MEMORY, + PCEP_ERRT_GLOBAL_CONCURRENT_ERROR): + return "INSUFFICIENT_MEMORY"; + case TUP(PCEP_ERRV_GLOBAL_CONCURRENT_OPT_NOT_SUPPORTED, + PCEP_ERRT_GLOBAL_CONCURRENT_ERROR): + return "GLOBAL_CONCURRENT_OPT_NOT_SUPPORTED"; + + case TUP(PCEP_ERRV_PCE_INSUFFICIENT_MEMORY, PCEP_ERRT_P2PMP_CAP_ERROR): + return "PCE_INSUFFICIENT_MEMORY"; + case TUP(PCEP_ERRV_PCE_NOT_CAPABLE_P2MP_COMP, + PCEP_ERRT_P2PMP_CAP_ERROR): + return "PCE_NOT_CAPABLE_P2MP_COMP"; + + case TUP(PCEP_ERRV_NO_EP_WITH_LEAF_TYPE2, + PCEP_ERRT_P2P_ENDPOINTS_ERROR): + return "NO_EP_WITH_LEAF_TYPE2"; + case TUP(PCEP_ERRV_NO_EP_WITH_LEAF_TYPE3, + PCEP_ERRT_P2P_ENDPOINTS_ERROR): + return "NO_EP_WITH_LEAF_TYPE3"; + case TUP(PCEP_ERRV_NO_EP_WITH_LEAF_TYPE4, + PCEP_ERRT_P2P_ENDPOINTS_ERROR): + return "NO_EP_WITH_LEAF_TYPE4"; + case TUP(PCEP_ERRV_INCONSITENT_EP, PCEP_ERRT_P2P_ENDPOINTS_ERROR): + return "INCONSITENT_EP"; + + case TUP(PCEP_ERRV_FRAG_REQUEST_FAILURE, + PCEP_ERRT_P2P_FRAGMENTATION_ERROR): + return "FRAG_REQUEST_FAILURE"; + case TUP(PCEP_ERRV_FRAG_REPORT_FAILURE, + PCEP_ERRT_P2P_FRAGMENTATION_ERROR): + return "FRAG_REPORT_FAILURE"; + case TUP(PCEP_ERRV_FRAG_UPDATE_FAILURE, + PCEP_ERRT_P2P_FRAGMENTATION_ERROR): + return "FRAG_UPDATE_FAILURE"; + case TUP(PCEP_ERRV_FRAG_INSTANTIATION_FAILURE, + PCEP_ERRT_P2P_FRAGMENTATION_ERROR): + return "FRAG_INSTANTIATION_FAILURE"; + + case TUP(PCEP_ERRV_LSP_UPDATE_FOR_NON_DELEGATED_LSP, + PCEP_ERRT_INVALID_OPERATION): + return "LSP_UPDATE_FOR_NON_DELEGATED_LS"; + case TUP(PCEP_ERRV_LSP_UPDATE_NON_ADVERTISED_PCE, + PCEP_ERRT_INVALID_OPERATION): + return "LSP_UPDATE_NON_ADVERTISED_PC"; + case TUP(PCEP_ERRV_LSP_UPDATE_UNKNOWN_PLSP_ID, + PCEP_ERRT_INVALID_OPERATION): + return "LSP_UPDATE_UNKNOWN_PLSP_I"; + case TUP(PCEP_ERRV_LSP_REPORT_NON_ADVERTISED_PCE, + PCEP_ERRT_INVALID_OPERATION): + return "LSP_REPORT_NON_ADVERTISED_PC"; + case TUP(PCEP_ERRV_PCE_INIT_LSP_LIMIT_REACHED, + PCEP_ERRT_INVALID_OPERATION): + return "PCE_INIT_LSP_LIMIT_REACHE"; + case TUP(PCEP_ERRV_PCE_INIT_LSP_DELEGATION_CANT_REVOKE, + PCEP_ERRT_INVALID_OPERATION): + return "PCE_INIT_LSP_DELEGATION_CANT_REVOK"; + case TUP(PCEP_ERRV_LSP_INIT_NON_ZERO_PLSP_ID, + PCEP_ERRT_INVALID_OPERATION): + return "LSP_INIT_NON_ZERO_PLSP_I"; + case TUP(PCEP_ERRV_LSP_NOT_PCE_INITIATED, PCEP_ERRT_INVALID_OPERATION): + return "LSP_NOT_PCE_INITIATE"; + case TUP(PCEP_ERRV_PCE_INIT_OP_FREQ_LIMIT_REACHED, + PCEP_ERRT_INVALID_OPERATION): + return "PCE_INIT_OP_FREQ_LIMIT_REACHE"; + case TUP(PCEP_ERRV_LSP_REPORT_P2MP_NOT_ADVERTISED, + PCEP_ERRT_INVALID_OPERATION): + return "LSP_REPORT_P2MP_NOT_ADVERTISE"; + case TUP(PCEP_ERRV_LSP_UPDATE_P2MP_NOT_ADVERTISED, + PCEP_ERRT_INVALID_OPERATION): + return "LSP_UPDATE_P2MP_NOT_ADVERTISE"; + case TUP(PCEP_ERRV_LSP_INSTANTIATION_P2MP_NOT_ADVERTISED, + PCEP_ERRT_INVALID_OPERATION): + return "LSP_INSTANTIATION_P2MP_NOT_ADVERTISE"; + case TUP(PCEP_ERRV_AUTO_BW_CAP_NOT_ADVERTISED, + PCEP_ERRT_INVALID_OPERATION): + return "AUTO_BW_CAP_NOT_ADVERTISE"; + + case TUP(PCEP_ERRV_PCE_CANT_PROCESS_LSP_REPORT, + PCEP_ERRT_LSP_STATE_SYNC_ERROR): return "PCE_CANT_PROCESS_LSP_REPORT"; - case TUP(PCEP_ERRT_LSP_STATE_SYNC_ERROR, - PCEP_ERRV_PCC_CANT_COMPLETE_STATE_SYNC): + case TUP(PCEP_ERRV_LSP_DB_VERSION_MISMATCH, + PCEP_ERRT_LSP_STATE_SYNC_ERROR): + return "LSP_DB_VERSION_MISMATCH"; + case TUP(PCEP_ERRV_TRIGGER_ATTEMPT_BEFORE_PCE_TRIGGER, + PCEP_ERRT_LSP_STATE_SYNC_ERROR): + return "TRIGGER_ATTEMPT_BEFORE_PCE_TRIGGER"; + case TUP(PCEP_ERRV_TRIGGER_ATTEMPT_NO_PCE_TRIGGER_CAP, + PCEP_ERRT_LSP_STATE_SYNC_ERROR): + return "TRIGGER_ATTEMPT_NO_PCE_TRIGGER_CAP"; + case TUP(PCEP_ERRV_PCC_CANT_COMPLETE_STATE_SYNC, + PCEP_ERRT_LSP_STATE_SYNC_ERROR): return "PCC_CANT_COMPLETE_STATE_SYNC"; - - case TUP(PCEP_ERRT_BAD_PARAMETER_VALUE, - PCEP_ERRV_SYMBOLIC_PATH_NAME_IN_USE): + case TUP(PCEP_ERRV_INVALID_LSP_DB_VERSION_NUMBER, + PCEP_ERRT_LSP_STATE_SYNC_ERROR): + return "INVALID_LSP_DB_VERSION_NUMBER"; + case TUP(PCEP_ERRV_INVALID_SPEAKER_ENTITY_ID, + PCEP_ERRT_LSP_STATE_SYNC_ERROR): + return "INVALID_SPEAKER_ENTITY_ID"; + + case TUP(PCEP_ERRV_UNSUPPORTED_PATH_SETUP_TYPE, + PCEP_ERRT_INVALID_TE_PATH_SETUP_TYPE): + return "UNSUPPORTED_PATH_SETUP_TYPE"; + case TUP(PCEP_ERRV_MISMATCHED_PATH_SETUP_TYPE, + PCEP_ERRT_INVALID_TE_PATH_SETUP_TYPE): + return "MISMATCHED_PATH_SETUP_TYPE"; + + case TUP(PCEP_ERRV_SYMBOLIC_PATH_NAME_IN_USE, + PCEP_ERRT_BAD_PARAMETER_VALUE): return "SYMBOLIC_PATH_NAME_IN_USE"; - case TUP(PCEP_ERRT_BAD_PARAMETER_VALUE, - PCEP_ERRV_LSP_SPEAKER_ID_NOT_PCE_INITIATED): + case TUP(PCEP_ERRV_LSP_SPEAKER_ID_NOT_PCE_INITIATED, + PCEP_ERRT_BAD_PARAMETER_VALUE): return "LSP_SPEAKER_ID_NOT_PCE_INITIATED"; - case TUP(PCEP_ERRT_LSP_INSTANTIATE_ERROR, - PCEP_ERRV_UNACCEPTABLE_INSTANTIATE_ERROR): + case TUP(PCEP_ERRV_UNACCEPTABLE_INSTANTIATE_ERROR, + PCEP_ERRT_LSP_INSTANTIATE_ERROR): return "UNACCEPTABLE_INSTANTIATE_ERROR"; - case TUP(PCEP_ERRT_LSP_INSTANTIATE_ERROR, PCEP_ERRV_INTERNAL_ERROR): + case TUP(PCEP_ERRV_INTERNAL_ERROR, PCEP_ERRT_LSP_INSTANTIATE_ERROR): return "INTERNAL_ERROR"; - case TUP(PCEP_ERRT_LSP_INSTANTIATE_ERROR, PCEP_ERRV_SIGNALLING_ERROR): + case TUP(PCEP_ERRV_SIGNALLING_ERROR, PCEP_ERRT_LSP_INSTANTIATE_ERROR): return "SIGNALLING_ERROR"; + case TUP(PCEP_ERRV_START_TLS_AFTER_PCEP_EXCHANGE, + PCEP_ERRT_START_TLS_FAILURE): + return "START_TLS_AFTER_PCEP_EXCHANGE"; + case TUP(PCEP_ERRV_MSG_NOT_START_TLS_OPEN_ERROR, + PCEP_ERRT_START_TLS_FAILURE): + return "MSG_NOT_START_TLS_OPEN_ERROR"; + case TUP(PCEP_ERRV_CONNECTION_WO_TLS_NOT_POSSIBLE, + PCEP_ERRT_START_TLS_FAILURE): + return "CONNECTION_WO_TLS_NOT_POSSIBLE"; + case TUP(PCEP_ERRV_CONNECTION_WO_TLS_IS_POSSIBLE, + PCEP_ERRT_START_TLS_FAILURE): + return "CONNECTION_WO_TLS_IS_POSSIBLE"; + case TUP(PCEP_ERRV_NO_START_TLS_BEFORE_START_TLS_WAIT_TIMER, + PCEP_ERRT_START_TLS_FAILURE): + return "NO_START_TLS_BEFORE_START_TLS_WAIT_TIMER"; + + case TUP(PCEP_ERRV_ASSOC_TYPE_NOT_SUPPORTED, + PCEP_ERRT_ASSOCIATION_ERROR): + return "ASSOC_TYPE_NOT_SUPPORTED"; + case TUP(PCEP_ERRV_TOO_MANY_LSPS_IN_ASSOC_GRP, + PCEP_ERRT_ASSOCIATION_ERROR): + return "TOO_MANY_LSPS_IN_ASSOC_GRP"; + case TUP(PCEP_ERRV_TOO_MANY_ASSOC_GROUPS, PCEP_ERRT_ASSOCIATION_ERROR): + return "TOO_MANY_ASSOC_GROUPS"; + case TUP(PCEP_ERRV_ASSOCIATION_UNKNOWN, PCEP_ERRT_ASSOCIATION_ERROR): + return "ASSOCIATION_UNKNOWN"; + case TUP(PCEP_ERRV_OP_CONF_ASSOC_INFO_MISMATCH, + PCEP_ERRT_ASSOCIATION_ERROR): + return "OP_CONF_ASSOC_INFO_MISMATCH"; + case TUP(PCEP_ERRV_ASSOC_INFO_MISMATCH, PCEP_ERRT_ASSOCIATION_ERROR): + return "ASSOC_INFO_MISMATCH"; + case TUP(PCEP_ERRV_CANNOT_JOIN_ASSOC_GROUP, + PCEP_ERRT_ASSOCIATION_ERROR): + return "CANNOT_JOIN_ASSOC_GROUP"; + case TUP(PCEP_ERRV_ASSOC_ID_NOT_IN_RANGE, PCEP_ERRT_ASSOCIATION_ERROR): + return "ASSOC_ID_NOT_IN_RANGE"; + case TUP(PCEP_ERRV_TUNNEL_EP_MISMATCH_PATH_PROT_ASSOC, + PCEP_ERRT_ASSOCIATION_ERROR): + return "TUNNEL_EP_MISMATCH_PATH_PROT_ASSOC"; + case TUP(PCEP_ERRV_ATTEMPTED_ADD_LSP_PATH_PROT_ASSOC, + PCEP_ERRT_ASSOCIATION_ERROR): + return "ATTEMPTED_ADD_LSP_PATH_PROT_ASSOC"; + case TUP(PCEP_ERRV_PROTECTION_TYPE_NOT_SUPPORTED, + PCEP_ERRT_ASSOCIATION_ERROR): + return "PROTECTION_TYPE_NOT_SUPPORTED"; + + case TUP(PCEP_ERRV_RWA_INSUFFICIENT_MEMORY, PCEP_ERRT_WSON_RWA_ERROR): + return "RWA_INSUFFICIENT_MEMORY"; + case TUP(PCEP_ERRV_RWA_COMP_NOT_SUPPORTED, PCEP_ERRT_WSON_RWA_ERROR): + return "RWA_COMP_NOT_SUPPORTED"; + case TUP(PCEP_ERRV_SYNTAX_ENC_ERROR, PCEP_ERRT_WSON_RWA_ERROR): + return "SYNTAX_ENC_ERROR"; + + case TUP(PCEP_ERRV_H_PCE_CAP_NOT_ADVERTISED, PCEP_ERRT_H_PCE_ERROR): + return "H_PCE_CAP_NOT_ADVERTISED"; + case TUP(PCEP_ERRV_PARENT_PCE_CAP_CANT_BE_PROVIDED, + PCEP_ERRT_H_PCE_ERROR): + return "PARENT_PCE_CAP_CANT_BE_PROVIDED"; + + case TUP(PCEP_ERRV_UNACCEPTABLE_REQUEST_MSG, + PCEP_ERRT_PATH_COMP_FAILURE): + return "UNACCEPTABLE_REQUEST_MSG"; + case TUP(PCEP_ERRV_GENERALIZED_BW_VAL_NOT_SUPPORTED, + PCEP_ERRT_PATH_COMP_FAILURE): + return "GENERALIZED_BW_VAL_NOT_SUPPORTED"; + case TUP(PCEP_ERRV_LABEL_SET_CONSTRAINT_COULD_NOT_BE_MET, + PCEP_ERRT_PATH_COMP_FAILURE): + return "LABEL_SET_CONSTRAINT_COULD_NOT_BE_MET"; + case TUP(PCEP_ERRV_LABEL_CONSTRAINT_COULD_NOT_BE_MET, + PCEP_ERRT_PATH_COMP_FAILURE): + return "LABEL_CONSTRAINT_COULD_NOT_BE_MET"; + default: return "UNKNOWN"; } diff --git a/pathd/path_pcep_pcc.c b/pathd/path_pcep_pcc.c index 4447579704cb..47cc1b4c7b3f 100644 --- a/pathd/path_pcep_pcc.c +++ b/pathd/path_pcep_pcc.c @@ -901,18 +901,14 @@ bool validate_incoming_path(struct pcc_state *pcc_state, struct path *path, if (!hop->has_sid) { snprintfrr(errbuff, buffsize, "SR segment without SID"); err_type = PCEP_ERRT_RECEPTION_OF_INV_OBJECT; - /* FIXME: Use the constant when added to pceplib */ - /* NAI cannot be resolved to a SID */ - err_value = 15; + err_value = PCEP_ERRV_DISJOINTED_CONF_TLV_MISSING; break; } /* Hops with non-MPLS SID are not supported */ if (!hop->is_mpls) { snprintfrr(errbuff, buffsize, "SR segment with non-MPLS SID"); err_type = PCEP_ERRT_RECEPTION_OF_INV_OBJECT; - /* FIXME: Use the constant when added to pceplib */ - /* Unsupported NAI Type in the SR-ERO/SR-RRO subobject */ - err_value = 13; + err_value = PCEP_ERRV_UNSUPPORTED_NAI; break; } }