pespin submitted this change.

View Change

Approvals: osmith: Looks good to me, but someone else must approve daniel: Looks good to me, approved Jenkins Builder: Verified
Use osmo_ss7_pointcode_print_buf() instead of static buffer API

During logging, the logging macro may already be using the static buffer
API to log context about a related PC. Hence, calling it here may
overwrite it.
Instead, use osmo_ss7_pointcode_print_buf().

Change-Id: I5daeecfae77932e2e52e1a36a620349efa878bbd
---
M src/osmo_ss7_combined_linkset.c
M src/osmo_ss7_route_table.c
2 files changed, 16 insertions(+), 22 deletions(-)

diff --git a/src/osmo_ss7_combined_linkset.c b/src/osmo_ss7_combined_linkset.c
index 412555f..6f4f506 100644
--- a/src/osmo_ss7_combined_linkset.c
+++ b/src/osmo_ss7_combined_linkset.c
@@ -241,6 +241,7 @@
struct osmo_ss7_instance *inst = clset->rtable->inst;
ext_sls_t esls = osmo_ss7_instance_calc_itu_ext_sls(inst, rtlabel);
struct osmo_ss7_esls_entry *eslse = &clset->esls_table[esls];
+ char buf[256];

/* First check if we have a cached route for this ESLS */
rt = current_rt(eslse);
@@ -249,20 +250,16 @@
/* We can transmit over normal route.
* Clean up alternative route since it's not needed anymore */
if (eslse->alt_rt) {
- LOGPCLSET(clset, DLSS7, LOGL_NOTICE, "RT lookup: OPC=%u=%s,DPC=%u=%s,SLS=%u -> eSLS=%u: "
+ LOGPCLSET(clset, DLSS7, LOGL_NOTICE, "RT lookup: %s -> eSLS=%u: "
"Normal Route via '%s' became available, drop use of Alternative Route via '%s'\n",
- rtlabel->opc, osmo_ss7_pointcode_print(inst, rtlabel->opc),
- rtlabel->dpc, osmo_ss7_pointcode_print2(inst, rtlabel->dpc),
- rtlabel->sls, esls,
+ ss7_route_label_to_str(buf, sizeof(buf), inst, rtlabel), esls,
eslse->normal_rt->dest.as ? eslse->normal_rt->dest.as->cfg.name : "<linkset>",
eslse->alt_rt->dest.as ? eslse->alt_rt->dest.as->cfg.name : "<linkset>");
eslse->alt_rt = NULL;
}
LOGPCLSET(clset, DLSS7, LOGL_DEBUG,
- "RT lookup: OPC=%u=%s,DPC=%u=%s,SLS=%u -> eSLS=%u: use Normal Route via '%s'\n",
- rtlabel->opc, osmo_ss7_pointcode_print(inst, rtlabel->opc),
- rtlabel->dpc, osmo_ss7_pointcode_print2(inst, rtlabel->dpc),
- rtlabel->sls, esls,
+ "RT lookup: %s -> eSLS=%u: use Normal Route via '%s'\n",
+ ss7_route_label_to_str(buf, sizeof(buf), inst, rtlabel), esls,
eslse->normal_rt->dest.as ? eslse->normal_rt->dest.as->cfg.name : "<linkset>");
return rt;
}
@@ -282,11 +279,9 @@
return NULL;
eslse->normal_rt = rt;
rt_avail = ss7_route_is_available(eslse->normal_rt);
- LOGPCLSET(clset, DLSS7, LOGL_INFO, "RT loookup: OPC=%u=%s,DPC=%u=%s,SLS=%u -> eSLS=%u: "
+ LOGPCLSET(clset, DLSS7, LOGL_INFO, "RT loookup: %s -> eSLS=%u: "
"picked Normal Route via '%s' round-robin style (%s)\n",
- rtlabel->opc, osmo_ss7_pointcode_print(inst, rtlabel->opc),
- rtlabel->dpc, osmo_ss7_pointcode_print2(inst, rtlabel->dpc),
- rtlabel->sls, esls,
+ ss7_route_label_to_str(buf, sizeof(buf), inst, rtlabel), esls,
rt->dest.as ? rt->dest.as->cfg.name : "<linkset>",
rt_avail ? "available" : "unavailable");
if (rt_avail) {
@@ -302,20 +297,16 @@
rt = ss7_combined_linkset_select_route_roundrobin(clset);
if (rt) {
eslse->alt_rt = rt;
- LOGPCLSET(clset, DLSS7, LOGL_NOTICE, "RT Lookup: OPC=%u=%s,DPC=%u=%s,SLS=%u -> eSLS=%u: "
+ LOGPCLSET(clset, DLSS7, LOGL_NOTICE, "RT Lookup: %s -> eSLS=%u: "
"Normal Route via '%s' unavailable, picked Alternative Route via '%s' round-robin style\n",
- rtlabel->opc, osmo_ss7_pointcode_print(inst, rtlabel->opc),
- rtlabel->dpc, osmo_ss7_pointcode_print2(inst, rtlabel->dpc),
- rtlabel->sls, esls,
+ ss7_route_label_to_str(buf, sizeof(buf), inst, rtlabel), esls,
eslse->normal_rt->dest.as ? eslse->normal_rt->dest.as->cfg.name : "<linkset>",
eslse->alt_rt->dest.as ? eslse->alt_rt->dest.as->cfg.name : "<linkset>");
} else {
/* No alternative route found, NULL is returned. */
- LOGPCLSET(clset, DLSS7, LOGL_INFO, "RT Lookup: OPC=%u=%s,DPC=%u=%s,SLS=%u -> eSLS=%u: "
+ LOGPCLSET(clset, DLSS7, LOGL_INFO, "RT Lookup: %s -> eSLS=%u: "
"Normal Route via '%s' unavailable, all Alternative Routes unavailable\n",
- rtlabel->opc, osmo_ss7_pointcode_print(inst, rtlabel->opc),
- rtlabel->dpc, osmo_ss7_pointcode_print2(inst, rtlabel->dpc),
- rtlabel->sls, esls,
+ ss7_route_label_to_str(buf, sizeof(buf), inst, rtlabel), esls,
eslse->normal_rt->dest.as ? eslse->normal_rt->dest.as->cfg.name : "<linkset>");
}
return rt;
diff --git a/src/osmo_ss7_route_table.c b/src/osmo_ss7_route_table.c
index 734db88..d2f34a6 100644
--- a/src/osmo_ss7_route_table.c
+++ b/src/osmo_ss7_route_table.c
@@ -38,11 +38,14 @@

char *ss7_route_label_to_str(char *buf, size_t buf_len, const struct osmo_ss7_instance *inst, const struct osmo_ss7_route_label *rtlb)
{
+ char buf_opc[MAX_PC_STR_LEN];
+ char buf_dpc[MAX_PC_STR_LEN];
+
if (buf_len == 0)
return NULL;
snprintf(buf, buf_len, "OPC=%u=%s,DPC=%u=%s,SLS=%u",
- rtlb->opc, osmo_ss7_pointcode_print(inst, rtlb->opc),
- rtlb->dpc, osmo_ss7_pointcode_print2(inst, rtlb->dpc),
+ rtlb->opc, osmo_ss7_pointcode_print_buf(buf_opc, sizeof(buf_opc), inst, rtlb->opc),
+ rtlb->dpc, osmo_ss7_pointcode_print_buf(buf_dpc, sizeof(buf_dpc), inst, rtlb->dpc),
rtlb->sls);
return buf;
}

To view, visit change 40286. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: I5daeecfae77932e2e52e1a36a620349efa878bbd
Gerrit-Change-Number: 40286
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann@sysmocom.de>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>