mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-16 17:15:14 +00:00
lib: Convert ospf_opaque.c to use the err-card system
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
c9cc11f669
commit
34f74c7a37
@ -49,6 +49,18 @@ static struct log_ref ferr_ospf_warn[] = {
|
|||||||
.description = "OSPF has received data that is causing it to recalculate how large packets should be and has discovered that the packet size needed would be too large and we will need to fragment packets",
|
.description = "OSPF has received data that is causing it to recalculate how large packets should be and has discovered that the packet size needed would be too large and we will need to fragment packets",
|
||||||
.suggestion = "Further divide up your network with areas",
|
.suggestion = "Further divide up your network with areas",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.code = OSPF_WARN_LSA_UNEXPECTED,
|
||||||
|
.title = "OSPF has received a LSA-type that it was not expecting",
|
||||||
|
.description = "OSPF has received a LSA-type that it was not expecting during processing",
|
||||||
|
.suggestion = "Gather log data from this machine and it's peer and open an Issue",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.code = OSPF_WARN_LSA,
|
||||||
|
.title = "OSPF has discovered inconsistent internal state for a LSA",
|
||||||
|
.description = "During handling of a LSA, OSPF has discovered that the LSA's internal state is inconsistent",
|
||||||
|
.suggestion = "Gather log data and open an Issue",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.code = END_FERR,
|
.code = END_FERR,
|
||||||
}
|
}
|
||||||
@ -107,6 +119,7 @@ static struct log_ref ferr_ospf_err[] = {
|
|||||||
.code = END_FERR,
|
.code = END_FERR,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
/* clang-format on */
|
||||||
|
|
||||||
void ospf_error_init(void)
|
void ospf_error_init(void)
|
||||||
{
|
{
|
||||||
|
@ -36,6 +36,8 @@ enum ospf_log_refs {
|
|||||||
OSPF_WARN_MD5,
|
OSPF_WARN_MD5,
|
||||||
OSPF_WARN_PACKET,
|
OSPF_WARN_PACKET,
|
||||||
OSPF_WARN_LARGE_LSA,
|
OSPF_WARN_LARGE_LSA,
|
||||||
|
OSPF_WARN_LSA_UNEXPECTED,
|
||||||
|
OSPF_WARN_LSA,
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void ospf_error_init(void);
|
extern void ospf_error_init(void);
|
||||||
|
@ -54,6 +54,7 @@
|
|||||||
#include "ospfd/ospf_sr.h"
|
#include "ospfd/ospf_sr.h"
|
||||||
#include "ospfd/ospf_ri.h"
|
#include "ospfd/ospf_ri.h"
|
||||||
#include "ospfd/ospf_ext.h"
|
#include "ospfd/ospf_ext.h"
|
||||||
|
#include "ospfd/ospf_errors.h"
|
||||||
|
|
||||||
DEFINE_MTYPE_STATIC(OSPFD, OSPF_OPAQUE_FUNCTAB, "OSPF opaque function table")
|
DEFINE_MTYPE_STATIC(OSPFD, OSPF_OPAQUE_FUNCTAB, "OSPF opaque function table")
|
||||||
DEFINE_MTYPE_STATIC(OSPFD, OPAQUE_INFO_PER_TYPE, "OSPF opaque per-type info")
|
DEFINE_MTYPE_STATIC(OSPFD, OPAQUE_INFO_PER_TYPE, "OSPF opaque per-type info")
|
||||||
@ -352,7 +353,8 @@ static struct list *ospf_get_opaque_funclist(uint8_t lsa_type)
|
|||||||
funclist = ospf_opaque_type11_funclist;
|
funclist = ospf_opaque_type11_funclist;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
zlog_warn("ospf_get_opaque_funclist: Unexpected LSA-type(%u)",
|
flog_warn(OSPF_WARN_LSA_UNEXPECTED,
|
||||||
|
"ospf_get_opaque_funclist: Unexpected LSA-type(%u)",
|
||||||
lsa_type);
|
lsa_type);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -377,27 +379,21 @@ int ospf_register_opaque_functab(
|
|||||||
{
|
{
|
||||||
struct list *funclist;
|
struct list *funclist;
|
||||||
struct ospf_opaque_functab *new;
|
struct ospf_opaque_functab *new;
|
||||||
int rc = -1;
|
|
||||||
|
|
||||||
if ((funclist = ospf_get_opaque_funclist(lsa_type)) == NULL) {
|
if ((funclist = ospf_get_opaque_funclist(lsa_type)) == NULL)
|
||||||
zlog_warn(
|
return -1;
|
||||||
"ospf_register_opaque_functab: Cannot get funclist"
|
|
||||||
" for Type-%u LSAs?",
|
|
||||||
lsa_type);
|
|
||||||
goto out;
|
|
||||||
} else {
|
|
||||||
struct listnode *node, *nnode;
|
|
||||||
struct ospf_opaque_functab *functab;
|
|
||||||
|
|
||||||
for (ALL_LIST_ELEMENTS(funclist, node, nnode, functab))
|
struct listnode *node, *nnode;
|
||||||
if (functab->opaque_type == opaque_type) {
|
struct ospf_opaque_functab *functab;
|
||||||
zlog_warn(
|
|
||||||
"ospf_register_opaque_functab: Duplicated entry?:"
|
for (ALL_LIST_ELEMENTS(funclist, node, nnode, functab))
|
||||||
" lsa_type(%u), opaque_type(%u)",
|
if (functab->opaque_type == opaque_type) {
|
||||||
lsa_type, opaque_type);
|
flog_warn(
|
||||||
goto out;
|
OSPF_WARN_LSA,
|
||||||
}
|
"ospf_register_opaque_functab: Duplicated entry?: lsa_type(%u), opaque_type(%u)",
|
||||||
}
|
lsa_type, opaque_type);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
new = XCALLOC(MTYPE_OSPF_OPAQUE_FUNCTAB,
|
new = XCALLOC(MTYPE_OSPF_OPAQUE_FUNCTAB,
|
||||||
sizeof(struct ospf_opaque_functab));
|
sizeof(struct ospf_opaque_functab));
|
||||||
@ -418,10 +414,8 @@ int ospf_register_opaque_functab(
|
|||||||
new->del_lsa_hook = del_lsa_hook;
|
new->del_lsa_hook = del_lsa_hook;
|
||||||
|
|
||||||
listnode_add(funclist, new);
|
listnode_add(funclist, new);
|
||||||
rc = 0;
|
|
||||||
|
|
||||||
out:
|
return 0;
|
||||||
return rc;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ospf_delete_opaque_functab(uint8_t lsa_type, uint8_t opaque_type)
|
void ospf_delete_opaque_functab(uint8_t lsa_type, uint8_t opaque_type)
|
||||||
@ -573,7 +567,8 @@ register_opaque_info_per_type(struct ospf_opaque_functab *functab,
|
|||||||
listnode_add(top->opaque_lsa_self, oipt);
|
listnode_add(top->opaque_lsa_self, oipt);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
|
OSPF_WARN_LSA_UNEXPECTED,
|
||||||
"register_opaque_info_per_type: Unexpected LSA-type(%u)",
|
"register_opaque_info_per_type: Unexpected LSA-type(%u)",
|
||||||
new->data->type);
|
new->data->type);
|
||||||
free_opaque_info_per_type((void *)oipt);
|
free_opaque_info_per_type((void *)oipt);
|
||||||
@ -618,7 +613,8 @@ static void free_opaque_info_owner(void *val)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
zlog_warn("free_opaque_info_owner: Unexpected LSA-type(%u)",
|
flog_warn(OSPF_WARN_LSA_UNEXPECTED,
|
||||||
|
"free_opaque_info_owner: Unexpected LSA-type(%u)",
|
||||||
oipt->lsa_type);
|
oipt->lsa_type);
|
||||||
break; /* This case may not exist. */
|
break; /* This case may not exist. */
|
||||||
}
|
}
|
||||||
@ -662,27 +658,31 @@ lookup_opaque_info_by_type(struct ospf_lsa *lsa)
|
|||||||
if ((oi = lsa->oi) != NULL)
|
if ((oi = lsa->oi) != NULL)
|
||||||
listtop = oi->opaque_lsa_self;
|
listtop = oi->opaque_lsa_self;
|
||||||
else
|
else
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
|
OSPF_WARN_LSA,
|
||||||
"Type-9 Opaque-LSA: Reference to OI is missing?");
|
"Type-9 Opaque-LSA: Reference to OI is missing?");
|
||||||
break;
|
break;
|
||||||
case OSPF_OPAQUE_AREA_LSA:
|
case OSPF_OPAQUE_AREA_LSA:
|
||||||
if ((area = lsa->area) != NULL)
|
if ((area = lsa->area) != NULL)
|
||||||
listtop = area->opaque_lsa_self;
|
listtop = area->opaque_lsa_self;
|
||||||
else
|
else
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
|
OSPF_WARN_LSA,
|
||||||
"Type-10 Opaque-LSA: Reference to AREA is missing?");
|
"Type-10 Opaque-LSA: Reference to AREA is missing?");
|
||||||
break;
|
break;
|
||||||
case OSPF_OPAQUE_AS_LSA:
|
case OSPF_OPAQUE_AS_LSA:
|
||||||
top = ospf_lookup_by_vrf_id(lsa->vrf_id);
|
top = ospf_lookup_by_vrf_id(lsa->vrf_id);
|
||||||
if ((area = lsa->area) != NULL && (top = area->ospf) == NULL) {
|
if ((area = lsa->area) != NULL && (top = area->ospf) == NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
|
OSPF_WARN_LSA,
|
||||||
"Type-11 Opaque-LSA: Reference to OSPF is missing?");
|
"Type-11 Opaque-LSA: Reference to OSPF is missing?");
|
||||||
break; /* Unlikely to happen. */
|
break; /* Unlikely to happen. */
|
||||||
}
|
}
|
||||||
listtop = top->opaque_lsa_self;
|
listtop = top->opaque_lsa_self;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
zlog_warn("lookup_opaque_info_by_type: Unexpected LSA-type(%u)",
|
flog_warn(OSPF_WARN_LSA_UNEXPECTED,
|
||||||
|
"lookup_opaque_info_by_type: Unexpected LSA-type(%u)",
|
||||||
lsa->data->type);
|
lsa->data->type);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1286,9 +1286,10 @@ void ospf_opaque_lsa_originate_schedule(struct ospf_interface *oi, int *delay0)
|
|||||||
int delay = 0;
|
int delay = 0;
|
||||||
|
|
||||||
if ((top = oi_to_top(oi)) == NULL || (area = oi->area) == NULL) {
|
if ((top = oi_to_top(oi)) == NULL || (area = oi->area) == NULL) {
|
||||||
zlog_warn(
|
if (IS_DEBUG_OSPF_EVENT)
|
||||||
"ospf_opaque_lsa_originate_schedule: Invalid argument?");
|
zlog_debug(
|
||||||
goto out;
|
"ospf_opaque_lsa_originate_schedule: Invalid argument?");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* It may not a right time to schedule origination now. */
|
/* It may not a right time to schedule origination now. */
|
||||||
@ -1296,7 +1297,7 @@ void ospf_opaque_lsa_originate_schedule(struct ospf_interface *oi, int *delay0)
|
|||||||
if (IS_DEBUG_OSPF_EVENT)
|
if (IS_DEBUG_OSPF_EVENT)
|
||||||
zlog_debug(
|
zlog_debug(
|
||||||
"ospf_opaque_lsa_originate_schedule: Not operational.");
|
"ospf_opaque_lsa_originate_schedule: Not operational.");
|
||||||
goto out; /* This is not an error. */
|
return; /* This is not an error. */
|
||||||
}
|
}
|
||||||
|
|
||||||
if (delay0 != NULL)
|
if (delay0 != NULL)
|
||||||
@ -1443,9 +1444,6 @@ void ospf_opaque_lsa_originate_schedule(struct ospf_interface *oi, int *delay0)
|
|||||||
|
|
||||||
if (delay0 != NULL)
|
if (delay0 != NULL)
|
||||||
*delay0 = delay;
|
*delay0 = delay;
|
||||||
|
|
||||||
out:
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ospf_opaque_type9_lsa_originate(struct thread *t)
|
static int ospf_opaque_type9_lsa_originate(struct thread *t)
|
||||||
@ -1524,7 +1522,8 @@ static void ospf_opaque_lsa_reoriginate_resume(struct list *listtop, void *arg)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ((*functab->lsa_originator)(arg) != 0) {
|
if ((*functab->lsa_originator)(arg) != 0) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
|
OSPF_WARN_LSA,
|
||||||
"ospf_opaque_lsa_reoriginate_resume: Failed (opaque-type=%u)",
|
"ospf_opaque_lsa_reoriginate_resume: Failed (opaque-type=%u)",
|
||||||
oipt->opaque_type);
|
oipt->opaque_type);
|
||||||
continue;
|
continue;
|
||||||
@ -1564,7 +1563,8 @@ struct ospf_lsa *ospf_opaque_lsa_install(struct ospf_lsa *lsa, int rt_recalc)
|
|||||||
}
|
}
|
||||||
/* Register the new lsa entry and get its control info. */
|
/* Register the new lsa entry and get its control info. */
|
||||||
else if ((oipi = register_opaque_lsa(lsa)) == NULL) {
|
else if ((oipi = register_opaque_lsa(lsa)) == NULL) {
|
||||||
zlog_warn("ospf_opaque_lsa_install: register_opaque_lsa() ?");
|
flog_warn(OSPF_WARN_LSA,
|
||||||
|
"ospf_opaque_lsa_install: register_opaque_lsa() ?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1576,14 +1576,16 @@ struct ospf_lsa *ospf_opaque_lsa_install(struct ospf_lsa *lsa, int rt_recalc)
|
|||||||
case OSPF_OPAQUE_LINK_LSA:
|
case OSPF_OPAQUE_LINK_LSA:
|
||||||
if ((top = oi_to_top(lsa->oi)) == NULL) {
|
if ((top = oi_to_top(lsa->oi)) == NULL) {
|
||||||
/* Above conditions must have passed. */
|
/* Above conditions must have passed. */
|
||||||
zlog_warn("ospf_opaque_lsa_install: Sonmething wrong?");
|
flog_warn(OSPF_WARN_LSA,
|
||||||
|
"ospf_opaque_lsa_install: Something wrong?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case OSPF_OPAQUE_AREA_LSA:
|
case OSPF_OPAQUE_AREA_LSA:
|
||||||
if (lsa->area == NULL || (top = lsa->area->ospf) == NULL) {
|
if (lsa->area == NULL || (top = lsa->area->ospf) == NULL) {
|
||||||
/* Above conditions must have passed. */
|
/* Above conditions must have passed. */
|
||||||
zlog_warn("ospf_opaque_lsa_install: Sonmething wrong?");
|
flog_warn(OSPF_WARN_LSA,
|
||||||
|
"ospf_opaque_lsa_install: Something wrong?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1591,12 +1593,14 @@ struct ospf_lsa *ospf_opaque_lsa_install(struct ospf_lsa *lsa, int rt_recalc)
|
|||||||
top = ospf_lookup_by_vrf_id(lsa->vrf_id);
|
top = ospf_lookup_by_vrf_id(lsa->vrf_id);
|
||||||
if (lsa->area != NULL && (top = lsa->area->ospf) == NULL) {
|
if (lsa->area != NULL && (top = lsa->area->ospf) == NULL) {
|
||||||
/* Above conditions must have passed. */
|
/* Above conditions must have passed. */
|
||||||
zlog_warn("ospf_opaque_lsa_install: Sonmething wrong?");
|
flog_warn(OSPF_WARN_LSA,
|
||||||
|
"ospf_opaque_lsa_install: Something wrong?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
zlog_warn("ospf_opaque_lsa_install: Unexpected LSA-type(%u)",
|
flog_warn(OSPF_WARN_LSA_UNEXPECTED,
|
||||||
|
"ospf_opaque_lsa_install: Unexpected LSA-type(%u)",
|
||||||
lsa->data->type);
|
lsa->data->type);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -1668,13 +1672,14 @@ void ospf_opaque_lsa_reoriginate_schedule(void *lsa_type_dependent,
|
|||||||
case OSPF_OPAQUE_LINK_LSA:
|
case OSPF_OPAQUE_LINK_LSA:
|
||||||
if ((oi = (struct ospf_interface *)lsa_type_dependent)
|
if ((oi = (struct ospf_interface *)lsa_type_dependent)
|
||||||
== NULL) {
|
== NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
"ospf_opaque_lsa_reoriginate_schedule:"
|
OSPF_WARN_LSA,
|
||||||
" Type-9 Opaque-LSA: Invalid parameter?");
|
"ospf_opaque_lsa_reoriginate_schedule: Type-9 Opaque-LSA: Invalid parameter?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if ((top = oi_to_top(oi)) == NULL) {
|
if ((top = oi_to_top(oi)) == NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
|
OSPF_WARN_LSA,
|
||||||
"ospf_opaque_lsa_reoriginate_schedule: OI(%s) -> TOP?",
|
"ospf_opaque_lsa_reoriginate_schedule: OI(%s) -> TOP?",
|
||||||
IF_NAME(oi));
|
IF_NAME(oi));
|
||||||
goto out;
|
goto out;
|
||||||
@ -1682,9 +1687,9 @@ void ospf_opaque_lsa_reoriginate_schedule(void *lsa_type_dependent,
|
|||||||
if (!list_isempty(ospf_opaque_type9_funclist)
|
if (!list_isempty(ospf_opaque_type9_funclist)
|
||||||
&& list_isempty(oi->opaque_lsa_self)
|
&& list_isempty(oi->opaque_lsa_self)
|
||||||
&& oi->t_opaque_lsa_self != NULL) {
|
&& oi->t_opaque_lsa_self != NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
"Type-9 Opaque-LSA (opaque_type=%u):"
|
OSPF_WARN_LSA,
|
||||||
" Common origination for OI(%s) has already started",
|
"Type-9 Opaque-LSA (opaque_type=%u): Common origination for OI(%s) has already started",
|
||||||
opaque_type, IF_NAME(oi));
|
opaque_type, IF_NAME(oi));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -1692,24 +1697,24 @@ void ospf_opaque_lsa_reoriginate_schedule(void *lsa_type_dependent,
|
|||||||
break;
|
break;
|
||||||
case OSPF_OPAQUE_AREA_LSA:
|
case OSPF_OPAQUE_AREA_LSA:
|
||||||
if ((area = (struct ospf_area *)lsa_type_dependent) == NULL) {
|
if ((area = (struct ospf_area *)lsa_type_dependent) == NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
"ospf_opaque_lsa_reoriginate_schedule:"
|
OSPF_WARN_LSA,
|
||||||
" Type-10 Opaque-LSA: Invalid parameter?");
|
"ospf_opaque_lsa_reoriginate_schedule: Type-10 Opaque-LSA: Invalid parameter?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if ((top = area->ospf) == NULL) {
|
if ((top = area->ospf) == NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
"ospf_opaque_lsa_reoriginate_schedule:"
|
OSPF_WARN_LSA,
|
||||||
" AREA(%s) -> TOP?",
|
"ospf_opaque_lsa_reoriginate_schedule: AREA(%s) -> TOP?",
|
||||||
inet_ntoa(area->area_id));
|
inet_ntoa(area->area_id));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if (!list_isempty(ospf_opaque_type10_funclist)
|
if (!list_isempty(ospf_opaque_type10_funclist)
|
||||||
&& list_isempty(area->opaque_lsa_self)
|
&& list_isempty(area->opaque_lsa_self)
|
||||||
&& area->t_opaque_lsa_self != NULL) {
|
&& area->t_opaque_lsa_self != NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
"Type-10 Opaque-LSA (opaque_type=%u):"
|
OSPF_WARN_LSA,
|
||||||
" Common origination for AREA(%s) has already started",
|
"Type-10 Opaque-LSA (opaque_type=%u): Common origination for AREA(%s) has already started",
|
||||||
opaque_type, inet_ntoa(area->area_id));
|
opaque_type, inet_ntoa(area->area_id));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -1717,17 +1722,17 @@ void ospf_opaque_lsa_reoriginate_schedule(void *lsa_type_dependent,
|
|||||||
break;
|
break;
|
||||||
case OSPF_OPAQUE_AS_LSA:
|
case OSPF_OPAQUE_AS_LSA:
|
||||||
if ((top = (struct ospf *)lsa_type_dependent) == NULL) {
|
if ((top = (struct ospf *)lsa_type_dependent) == NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
"ospf_opaque_lsa_reoriginate_schedule:"
|
OSPF_WARN_LSA,
|
||||||
" Type-11 Opaque-LSA: Invalid parameter?");
|
"ospf_opaque_lsa_reoriginate_schedule: Type-11 Opaque-LSA: Invalid parameter?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if (!list_isempty(ospf_opaque_type11_funclist)
|
if (!list_isempty(ospf_opaque_type11_funclist)
|
||||||
&& list_isempty(top->opaque_lsa_self)
|
&& list_isempty(top->opaque_lsa_self)
|
||||||
&& top->t_opaque_lsa_self != NULL) {
|
&& top->t_opaque_lsa_self != NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
"Type-11 Opaque-LSA (opaque_type=%u):"
|
OSPF_WARN_LSA,
|
||||||
" Common origination has already started",
|
"Type-11 Opaque-LSA (opaque_type=%u): Common origination has already started",
|
||||||
opaque_type);
|
opaque_type);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -1739,9 +1744,9 @@ void ospf_opaque_lsa_reoriginate_schedule(void *lsa_type_dependent,
|
|||||||
func = ospf_opaque_type11_lsa_reoriginate_timer;
|
func = ospf_opaque_type11_lsa_reoriginate_timer;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
"ospf_opaque_lsa_reoriginate_schedule:"
|
OSPF_WARN_LSA_UNEXPECTED,
|
||||||
" Unexpected LSA-type(%u)",
|
"ospf_opaque_lsa_reoriginate_schedule: Unexpected LSA-type(%u)",
|
||||||
lsa_type);
|
lsa_type);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -1761,19 +1766,17 @@ void ospf_opaque_lsa_reoriginate_schedule(void *lsa_type_dependent,
|
|||||||
if ((oipt = lookup_opaque_info_by_type(lsa)) == NULL) {
|
if ((oipt = lookup_opaque_info_by_type(lsa)) == NULL) {
|
||||||
struct ospf_opaque_functab *functab;
|
struct ospf_opaque_functab *functab;
|
||||||
if ((functab = ospf_opaque_functab_lookup(lsa)) == NULL) {
|
if ((functab = ospf_opaque_functab_lookup(lsa)) == NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
"ospf_opaque_lsa_reoriginate_schedule:"
|
OSPF_WARN_LSA,
|
||||||
" No associated function?: lsa_type(%u),"
|
"ospf_opaque_lsa_reoriginate_schedule: No associated function?: lsa_type(%u), opaque_type(%u)",
|
||||||
" opaque_type(%u)",
|
|
||||||
lsa_type, opaque_type);
|
lsa_type, opaque_type);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if ((oipt = register_opaque_info_per_type(functab, lsa))
|
if ((oipt = register_opaque_info_per_type(functab, lsa))
|
||||||
== NULL) {
|
== NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
"ospf_opaque_lsa_reoriginate_schedule:"
|
OSPF_WARN_LSA,
|
||||||
" Cannot get a control info?: lsa_type(%u),"
|
"ospf_opaque_lsa_reoriginate_schedule: Cannot get a control info?: lsa_type(%u), opaque_type(%u)",
|
||||||
" opaque_type(%u)",
|
|
||||||
lsa_type, opaque_type);
|
lsa_type, opaque_type);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -1844,14 +1847,16 @@ static int ospf_opaque_type9_lsa_reoriginate_timer(struct thread *t)
|
|||||||
|
|
||||||
if ((functab = oipt->functab) == NULL
|
if ((functab = oipt->functab) == NULL
|
||||||
|| functab->lsa_originator == NULL) {
|
|| functab->lsa_originator == NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
|
OSPF_WARN_LSA,
|
||||||
"ospf_opaque_type9_lsa_reoriginate_timer: No associated function?");
|
"ospf_opaque_type9_lsa_reoriginate_timer: No associated function?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
oi = (struct ospf_interface *)oipt->owner;
|
oi = (struct ospf_interface *)oipt->owner;
|
||||||
if ((top = oi_to_top(oi)) == NULL) {
|
if ((top = oi_to_top(oi)) == NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
|
OSPF_WARN_LSA,
|
||||||
"ospf_opaque_type9_lsa_reoriginate_timer: Something wrong?");
|
"ospf_opaque_type9_lsa_reoriginate_timer: Something wrong?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -1894,14 +1899,16 @@ static int ospf_opaque_type10_lsa_reoriginate_timer(struct thread *t)
|
|||||||
|
|
||||||
if ((functab = oipt->functab) == NULL
|
if ((functab = oipt->functab) == NULL
|
||||||
|| functab->lsa_originator == NULL) {
|
|| functab->lsa_originator == NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
|
OSPF_WARN_LSA,
|
||||||
"ospf_opaque_type10_lsa_reoriginate_timer: No associated function?");
|
"ospf_opaque_type10_lsa_reoriginate_timer: No associated function?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
area = (struct ospf_area *)oipt->owner;
|
area = (struct ospf_area *)oipt->owner;
|
||||||
if (area == NULL || (top = area->ospf) == NULL) {
|
if (area == NULL || (top = area->ospf) == NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
|
OSPF_WARN_LSA,
|
||||||
"ospf_opaque_type10_lsa_reoriginate_timer: Something wrong?");
|
"ospf_opaque_type10_lsa_reoriginate_timer: Something wrong?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -1948,14 +1955,15 @@ static int ospf_opaque_type11_lsa_reoriginate_timer(struct thread *t)
|
|||||||
|
|
||||||
if ((functab = oipt->functab) == NULL
|
if ((functab = oipt->functab) == NULL
|
||||||
|| functab->lsa_originator == NULL) {
|
|| functab->lsa_originator == NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
"ospf_opaque_type11_lsa_reoriginate_timer:"
|
OSPF_WARN_LSA,
|
||||||
" No associated function?");
|
"ospf_opaque_type11_lsa_reoriginate_timer: No associated function?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((top = (struct ospf *)oipt->owner) == NULL) {
|
if ((top = (struct ospf *)oipt->owner) == NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
|
OSPF_WARN_LSA,
|
||||||
"ospf_opaque_type11_lsa_reoriginate_timer: Something wrong?");
|
"ospf_opaque_type11_lsa_reoriginate_timer: Something wrong?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -1991,14 +1999,16 @@ void ospf_opaque_lsa_refresh_schedule(struct ospf_lsa *lsa0)
|
|||||||
|
|
||||||
if ((oipt = lookup_opaque_info_by_type(lsa0)) == NULL
|
if ((oipt = lookup_opaque_info_by_type(lsa0)) == NULL
|
||||||
|| (oipi = lookup_opaque_info_by_id(oipt, lsa0)) == NULL) {
|
|| (oipi = lookup_opaque_info_by_id(oipt, lsa0)) == NULL) {
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
|
OSPF_WARN_LSA,
|
||||||
"ospf_opaque_lsa_refresh_schedule: Invalid parameter?");
|
"ospf_opaque_lsa_refresh_schedule: Invalid parameter?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Given "lsa0" and current "oipi->lsa" may different, but harmless. */
|
/* Given "lsa0" and current "oipi->lsa" may different, but harmless. */
|
||||||
if ((lsa = oipi->lsa) == NULL) {
|
if ((lsa = oipi->lsa) == NULL) {
|
||||||
zlog_warn("ospf_opaque_lsa_refresh_schedule: Something wrong?");
|
flog_warn(OSPF_WARN_LSA,
|
||||||
|
"ospf_opaque_lsa_refresh_schedule: Something wrong?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2025,7 +2035,8 @@ void ospf_opaque_lsa_refresh_schedule(struct ospf_lsa *lsa0)
|
|||||||
ospf_ls_retransmit_delete_nbr_as(top, lsa);
|
ospf_ls_retransmit_delete_nbr_as(top, lsa);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
|
OSPF_WARN_LSA_UNEXPECTED,
|
||||||
"ospf_opaque_lsa_refresh_schedule: Unexpected LSA-type(%u)",
|
"ospf_opaque_lsa_refresh_schedule: Unexpected LSA-type(%u)",
|
||||||
lsa->data->type);
|
lsa->data->type);
|
||||||
goto out;
|
goto out;
|
||||||
@ -2077,13 +2088,15 @@ void ospf_opaque_lsa_flush_schedule(struct ospf_lsa *lsa0)
|
|||||||
|
|
||||||
if ((oipt = lookup_opaque_info_by_type(lsa0)) == NULL
|
if ((oipt = lookup_opaque_info_by_type(lsa0)) == NULL
|
||||||
|| (oipi = lookup_opaque_info_by_id(oipt, lsa0)) == NULL) {
|
|| (oipi = lookup_opaque_info_by_id(oipt, lsa0)) == NULL) {
|
||||||
zlog_warn("ospf_opaque_lsa_flush_schedule: Invalid parameter?");
|
flog_warn(OSPF_WARN_LSA,
|
||||||
|
"ospf_opaque_lsa_flush_schedule: Invalid parameter?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Given "lsa0" and current "oipi->lsa" may different, but harmless. */
|
/* Given "lsa0" and current "oipi->lsa" may different, but harmless. */
|
||||||
if ((lsa = oipi->lsa) == NULL) {
|
if ((lsa = oipi->lsa) == NULL) {
|
||||||
zlog_warn("ospf_opaque_lsa_flush_schedule: Something wrong?");
|
flog_warn(OSPF_WARN_LSA,
|
||||||
|
"ospf_opaque_lsa_flush_schedule: Something wrong?");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2099,7 +2112,8 @@ void ospf_opaque_lsa_flush_schedule(struct ospf_lsa *lsa0)
|
|||||||
ospf_ls_retransmit_delete_nbr_as(top, lsa);
|
ospf_ls_retransmit_delete_nbr_as(top, lsa);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
|
OSPF_WARN_LSA_UNEXPECTED,
|
||||||
"ospf_opaque_lsa_flush_schedule: Unexpected LSA-type(%u)",
|
"ospf_opaque_lsa_flush_schedule: Unexpected LSA-type(%u)",
|
||||||
lsa->data->type);
|
lsa->data->type);
|
||||||
goto out;
|
goto out;
|
||||||
@ -2156,7 +2170,8 @@ void ospf_opaque_self_originated_lsa_received(struct ospf_neighbor *nbr,
|
|||||||
ospf_flood_through_as(top, NULL /*inbr*/, lsa);
|
ospf_flood_through_as(top, NULL /*inbr*/, lsa);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
zlog_warn(
|
flog_warn(
|
||||||
|
OSPF_WARN_LSA_UNEXPECTED,
|
||||||
"ospf_opaque_self_originated_lsa_received: Unexpected LSA-type(%u)",
|
"ospf_opaque_self_originated_lsa_received: Unexpected LSA-type(%u)",
|
||||||
lsa->data->type);
|
lsa->data->type);
|
||||||
return;
|
return;
|
||||||
@ -2175,7 +2190,8 @@ struct ospf *oi_to_top(struct ospf_interface *oi)
|
|||||||
|
|
||||||
if (oi == NULL || (area = oi->area) == NULL
|
if (oi == NULL || (area = oi->area) == NULL
|
||||||
|| (top = area->ospf) == NULL)
|
|| (top = area->ospf) == NULL)
|
||||||
zlog_warn("Broken relationship for \"OI -> AREA -> OSPF\"?");
|
flog_warn(OSPF_WARN_LSA,
|
||||||
|
"Broken relationship for \"OI -> AREA -> OSPF\"?");
|
||||||
|
|
||||||
return top;
|
return top;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user