mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-29 04:42:58 +00:00
commit
96475dfde9
@ -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,
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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,
|
||||||
|
23
bgpd/bgpd.h
23
bgpd/bgpd.h
@ -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 */
|
||||||
|
@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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) {
|
||||||
|
@ -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);
|
||||||
|
@ -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");
|
||||||
|
@ -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])
|
||||||
|
@ -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");
|
||||||
|
}
|
||||||
|
@ -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)
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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,
|
||||||
|
10
ldpd/lde.c
10
ldpd/lde.c
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
22
ldpd/pfkey.c
22
ldpd/pfkey.c
@ -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
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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."
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
|
13
lib/prefix.c
13
lib/prefix.c
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
@ -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),
|
||||||
|
@ -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)
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
20
nhrpd/vici.c
20
nhrpd/vici.c
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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,
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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");
|
||||||
}
|
}
|
||||||
|
@ -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");
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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)",
|
||||||
|
@ -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)
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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,
|
||||||
|
@ -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",
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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)",
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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)",
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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 */
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user