pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/40294?usp=email )
Change subject: m3ua: Discard rx MSUs for non-active AS ......................................................................
m3ua: Discard rx MSUs for non-active AS
TODO originally added long time ago in d11fa298c5f179a03307c185b0d433e6ba61d40f.
Change-Id: Ibd3c85b9c5ac24fe1447c82b1f2cff4453105b84 --- M src/m3ua.c M src/ss7_as.c M src/ss7_as.h 3 files changed, 9 insertions(+), 2 deletions(-)
Approvals: daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified
diff --git a/src/m3ua.c b/src/m3ua.c index 35e2bb7..f073c8e 100644 --- a/src/m3ua.c +++ b/src/m3ua.c @@ -625,9 +625,14 @@ if (rc) goto ret_free;
- rate_ctr_inc2(as->ctrg, SS7_AS_CTR_RX_MSU_TOTAL); + if (!osmo_ss7_as_active(as)) { + rate_ctr_inc2(as->ctrg, SS7_AS_CTR_RX_MSU_DISCARD); + LOGPAS(as, DLM3UA, LOGL_INFO, "Discarding received XUA Message %s, AS state %s\n", + xua_hdr_dump(xua, &xua_dialect_sua), osmo_fsm_inst_state_name(as->fi)); + goto ret_free; + }
- /* FIXME: check for AS state == ACTIVE */ + rate_ctr_inc2(as->ctrg, SS7_AS_CTR_RX_MSU_TOTAL);
/* store the MTP-level information in the xua_msg for use by * higher layer protocols */ diff --git a/src/ss7_as.c b/src/ss7_as.c index 4dedfc3..fac5ffe 100644 --- a/src/ss7_as.c +++ b/src/ss7_as.c @@ -58,6 +58,7 @@ #define SS7_AS_CTR_RX_MSU_SLS_STR "Number of MSU received on SLS " #define SS7_AS_CTR_TX_MSU_SLS_STR "Number of MSU transmitted on SLS " static const struct rate_ctr_desc ss7_as_rcd[] = { + [SS7_AS_CTR_RX_MSU_DISCARD] = { "rx:msu:discard", "Total number of incoming MSU discarded" }, [SS7_AS_CTR_RX_MSU_TOTAL] = { "rx:msu:total", "Total number of MSU received" }, [SS7_AS_CTR_RX_MSU_SLS_0] = { "rx:msu:sls:0", SS7_AS_CTR_RX_MSU_SLS_STR "0" }, [SS7_AS_CTR_RX_MSU_SLS_1] = { "rx:msu:sls:1", SS7_AS_CTR_RX_MSU_SLS_STR "1" }, diff --git a/src/ss7_as.h b/src/ss7_as.h index bc17726..5bc3574 100644 --- a/src/ss7_as.h +++ b/src/ss7_as.h @@ -25,6 +25,7 @@ };
enum ss7_as_ctr { + SS7_AS_CTR_RX_MSU_DISCARD, SS7_AS_CTR_RX_MSU_TOTAL, SS7_AS_CTR_RX_MSU_SLS_0, SS7_AS_CTR_RX_MSU_SLS_1,