diff options
Diffstat (limited to 'ospfd/ospf_te.c')
| -rw-r--r-- | ospfd/ospf_te.c | 87 |
1 files changed, 49 insertions, 38 deletions
diff --git a/ospfd/ospf_te.c b/ospfd/ospf_te.c index a9dc1c18e3..f45682c770 100644 --- a/ospfd/ospf_te.c +++ b/ospfd/ospf_te.c @@ -61,6 +61,7 @@ #include "ospfd/ospf_zebra.h" #include "ospfd/ospf_te.h" #include "ospfd/ospf_vty.h" +#include "ospfd/ospf_errors.h" /* * Global variable to manage Opaque-LSA/MPLS-TE on this node. @@ -102,7 +103,8 @@ int ospf_mpls_te_init(void) ospf_mpls_te_lsa_refresh, NULL, /* ospf_mpls_te_new_lsa_hook */ NULL /* ospf_mpls_te_del_lsa_hook */); if (rc != 0) { - zlog_warn( + flog_warn( + EC_OSPF_OPAQUE_REGISTRATION, "ospf_mpls_te_init: Failed to register Traffic Engineering functions"); return rc; } @@ -139,7 +141,8 @@ static int ospf_mpls_te_register(enum inter_as_mode mode) ospf_mpls_te_lsa_refresh, NULL, NULL); if (rc != 0) { - zlog_warn( + flog_warn( + EC_OSPF_OPAQUE_REGISTRATION, "ospf_router_info_init: Failed to register Inter-AS functions"); return rc; } @@ -231,7 +234,7 @@ static struct mpls_te_link *lookup_linkparams_by_instance(struct ospf_lsa *lsa) if (lp->instance == key) return lp; - zlog_warn("lookup_linkparams_by_instance: Entry not found: key(%x)", + zlog_info("lookup_linkparams_by_instance: Entry not found: key(%x)", key); return NULL; } @@ -783,7 +786,7 @@ static void initialize_linkparams(struct mpls_te_link *lp) if ((oi == NULL) || (oi->ifp != ifp)) { if (IS_DEBUG_OSPF_TE) - zlog_warn( + zlog_debug( "MPLS-TE(initialize_linkparams) Could not find corresponding OSPF Interface for %s", ifp->name); return; @@ -816,18 +819,21 @@ static int is_mandated_params_set(struct mpls_te_link *lp) int rc = 0; if (ntohs(OspfMplsTE.router_addr.header.type) == 0) { - zlog_warn( + flog_warn( + EC_OSPF_TE_UNEXPECTED, "MPLS-TE(is_mandated_params_set) Missing Router Address"); return rc; } if (ntohs(lp->link_type.header.type) == 0) { - zlog_warn("MPLS-TE(is_mandated_params_set) Missing Link Type"); + flog_warn(EC_OSPF_TE_UNEXPECTED, + "MPLS-TE(is_mandated_params_set) Missing Link Type"); return rc; } if (!IS_INTER_AS(lp->type) && (ntohs(lp->link_id.header.type) == 0)) { - zlog_warn("MPLS-TE(is_mandated_params_set) Missing Link ID"); + flog_warn(EC_OSPF_TE_UNEXPECTED, + "MPLS-TE(is_mandated_params_set) Missing Link ID"); return rc; } @@ -842,19 +848,14 @@ static int is_mandated_params_set(struct mpls_te_link *lp) static int ospf_mpls_te_new_if(struct interface *ifp) { struct mpls_te_link *new; - int rc = -1; if (IS_DEBUG_OSPF_TE) zlog_debug( "MPLS-TE(ospf_mpls_te_new_if) Add new %s interface %s to MPLS-TE list", ifp->link_params ? "Active" : "Inactive", ifp->name); - if (lookup_linkparams_by_ifp(ifp) != NULL) { - zlog_warn("ospf_mpls_te_new_if: ifp(%p) already in use?", - (void *)ifp); - rc = 0; /* Do nothing here. */ - return rc; - } + if (lookup_linkparams_by_ifp(ifp) != NULL) + return 0; new = XCALLOC(MTYPE_OSPF_MPLS_TE, sizeof(struct mpls_te_link)); @@ -882,9 +883,7 @@ static int ospf_mpls_te_new_if(struct interface *ifp) ifp->name, new->flags, new->type); /* Schedule Opaque-LSA refresh. */ /* XXX */ - - rc = 0; - return rc; + return 0; } static int ospf_mpls_te_del_if(struct interface *ifp) @@ -925,7 +924,8 @@ void ospf_mpls_te_update_if(struct interface *ifp) /* Get Link context from interface */ if ((lp = lookup_linkparams_by_ifp(ifp)) == NULL) { - zlog_warn( + flog_warn( + EC_OSPF_TE_UNEXPECTED, "OSPF MPLS-TE Update: Did not find Link Parameters context for interface %s", ifp->name); return; @@ -969,14 +969,16 @@ static void ospf_mpls_te_ism_change(struct ospf_interface *oi, int old_state) struct mpls_te_link *lp; if ((lp = lookup_linkparams_by_ifp(oi->ifp)) == NULL) { - zlog_warn( + flog_warn( + EC_OSPF_TE_UNEXPECTED, "ospf_mpls_te_ism_change: Cannot get linkparams from OI(%s)?", IF_NAME(oi)); return; } if (oi->area == NULL || oi->area->ospf == NULL) { - zlog_warn( + flog_warn( + EC_OSPF_TE_UNEXPECTED, "ospf_mpls_te_ism_change: Cannot refer to OSPF from OI(%s)?", IF_NAME(oi)); return; @@ -986,7 +988,8 @@ static void ospf_mpls_te_ism_change(struct ospf_interface *oi, int old_state) && !IPV4_ADDR_SAME(&lp->area->area_id, &oi->area->area_id)) || (lp->area != NULL && oi->area == NULL)) { /* How should we consider this case? */ - zlog_warn( + flog_warn( + EC_OSPF_TE_UNEXPECTED, "MPLS-TE: Area for OI(%s) has changed to [%s], flush previous LSAs", IF_NAME(oi), oi->area ? inet_ntoa(oi->area->area_id) : "N/A"); @@ -1146,10 +1149,7 @@ static struct ospf_lsa *ospf_mpls_te_lsa_new(struct ospf *ospf, uint16_t length; /* Create a stream for LSA. */ - if ((s = stream_new(OSPF_MAX_LSA_SIZE)) == NULL) { - zlog_warn("ospf_mpls_te_lsa_new: stream_new() ?"); - return NULL; - } + s = stream_new(OSPF_MAX_LSA_SIZE); lsah = (struct lsa_header *)STREAM_DATA(s); options = OSPF_OPTION_O; /* Don't forget this :-) */ @@ -1223,14 +1223,16 @@ static int ospf_mpls_te_lsa_originate1(struct ospf_area *area, /* Create new Opaque-LSA/MPLS-TE instance. */ new = ospf_mpls_te_lsa_new(area->ospf, area, lp); if (new == NULL) { - zlog_warn( + flog_warn( + EC_OSPF_TE_UNEXPECTED, "ospf_mpls_te_lsa_originate1: ospf_mpls_te_lsa_new() ?"); return rc; } /* Install this LSA into LSDB. */ if (ospf_lsa_install(area->ospf, NULL /*oi*/, new) == NULL) { - zlog_warn("ospf_mpls_te_lsa_originate1: ospf_lsa_install() ?"); + flog_warn(EC_OSPF_LSA_INSTALL_FAILURE, + "ospf_mpls_te_lsa_originate1: ospf_lsa_install() ?"); ospf_lsa_unlock(&new); return rc; } @@ -1286,7 +1288,7 @@ static int ospf_mpls_te_lsa_originate_area(void *arg) if (CHECK_FLAG(lp->flags, LPFLG_LSA_ENGAGED)) { if (CHECK_FLAG(lp->flags, LPFLG_LSA_FORCED_REFRESH)) { UNSET_FLAG(lp->flags, LPFLG_LSA_FORCED_REFRESH); - zlog_warn( + zlog_info( "OSPF MPLS-TE (ospf_mpls_te_lsa_originate_area): Refresh instead of Originate"); ospf_mpls_te_lsa_schedule(lp, REFRESH_THIS_LSA); } @@ -1294,7 +1296,7 @@ static int ospf_mpls_te_lsa_originate_area(void *arg) } if (!is_mandated_params_set(lp)) { - zlog_warn( + zlog_info( "ospf_mpls_te_lsa_originate_area: Link(%s) lacks some mandated MPLS-TE parameters.", lp->ifp ? lp->ifp->name : "?"); continue; @@ -1323,7 +1325,8 @@ static int ospf_mpls_te_lsa_originate2(struct ospf *top, /* Create new Opaque-LSA/Inter-AS instance. */ new = ospf_mpls_te_lsa_new(top, NULL, lp); if (new == NULL) { - zlog_warn( + flog_warn( + EC_OSPF_LSA_UNEXPECTED, "ospf_mpls_te_lsa_originate2: ospf_router_info_lsa_new() ?"); return rc; } @@ -1331,7 +1334,8 @@ static int ospf_mpls_te_lsa_originate2(struct ospf *top, /* Install this LSA into LSDB. */ if (ospf_lsa_install(top, NULL /*oi */, new) == NULL) { - zlog_warn("ospf_mpls_te_lsa_originate2: ospf_lsa_install() ?"); + flog_warn(EC_OSPF_LSA_INSTALL_FAILURE, + "ospf_mpls_te_lsa_originate2: ospf_lsa_install() ?"); ospf_lsa_unlock(&new); return rc; } @@ -1385,7 +1389,8 @@ static int ospf_mpls_te_lsa_originate_as(void *arg) } if (!is_mandated_params_set(lp)) { - zlog_warn( + flog_warn( + EC_OSPF_TE_UNEXPECTED, "ospf_mpls_te_lsa_originate_as: Link(%s) lacks some mandated MPLS-TE parameters.", lp->ifp ? lp->ifp->name : "?"); continue; @@ -1432,7 +1437,8 @@ static struct ospf_lsa *ospf_mpls_te_lsa_refresh(struct ospf_lsa *lsa) /* At first, resolve lsa/lp relationship. */ if ((lp = lookup_linkparams_by_instance(lsa)) == NULL) { - zlog_warn("ospf_mpls_te_lsa_refresh: Invalid parameter?"); + flog_warn(EC_OSPF_TE_UNEXPECTED, + "ospf_mpls_te_lsa_refresh: Invalid parameter?"); lsa->data->ls_age = htons(OSPF_LSA_MAXAGE); /* Flush it anyway. */ ospf_opaque_lsa_flush_schedule(lsa); @@ -1441,7 +1447,8 @@ static struct ospf_lsa *ospf_mpls_te_lsa_refresh(struct ospf_lsa *lsa) /* Check if lp was not disable in the interval */ if (!CHECK_FLAG(lp->flags, LPFLG_LSA_ACTIVE)) { - zlog_warn( + flog_warn( + EC_OSPF_TE_UNEXPECTED, "ospf_mpls_te_lsa_refresh: lp was disabled: Flush it!"); lsa->data->ls_age = htons(OSPF_LSA_MAXAGE); /* Flush it anyway. */ @@ -1457,7 +1464,8 @@ static struct ospf_lsa *ospf_mpls_te_lsa_refresh(struct ospf_lsa *lsa) /* Create new Opaque-LSA/MPLS-TE instance. */ new = ospf_mpls_te_lsa_new(top, area, lp); if (new == NULL) { - zlog_warn("ospf_mpls_te_lsa_refresh: ospf_mpls_te_lsa_new() ?"); + flog_warn(EC_OSPF_TE_UNEXPECTED, + "ospf_mpls_te_lsa_refresh: ospf_mpls_te_lsa_new() ?"); return NULL; } new->data->ls_seqnum = lsa_seqnum_increment(lsa); @@ -1470,7 +1478,8 @@ static struct ospf_lsa *ospf_mpls_te_lsa_refresh(struct ospf_lsa *lsa) top = area->ospf; if (ospf_lsa_install(top, NULL /*oi */, new) == NULL) { - zlog_warn("ospf_mpls_te_lsa_refresh: ospf_lsa_install() ?"); + flog_warn(EC_OSPF_LSA_INSTALL_FAILURE, + "ospf_mpls_te_lsa_refresh: ospf_lsa_install() ?"); ospf_lsa_unlock(&new); return NULL; } @@ -1524,7 +1533,8 @@ void ospf_mpls_te_lsa_schedule(struct mpls_te_link *lp, enum lsa_opcode opcode) top, OspfMplsTE.interas_areaid); /* Unable to set the area context. Abort! */ if (lp->area == NULL) { - zlog_warn( + flog_warn( + EC_OSPF_TE_UNEXPECTED, "MPLS-TE(ospf_mpls_te_lsa_schedule) Area context is null. Abort !"); return; } @@ -1567,7 +1577,8 @@ void ospf_mpls_te_lsa_schedule(struct mpls_te_link *lp, enum lsa_opcode opcode) ospf_opaque_lsa_flush_schedule(&lsa); break; default: - zlog_warn("ospf_mpls_te_lsa_schedule: Unknown opcode (%u)", + flog_warn(EC_OSPF_TE_UNEXPECTED, + "ospf_mpls_te_lsa_schedule: Unknown opcode (%u)", opcode); break; } |
