pespin has uploaded this change for review.

View Change

handle_rkey_dereg(): Optimize lookup

Instead of looking up on all AS configured in an instance, look up on
the subset associated to the ASP we are looking up for.
Since we are also not looking a 2nd pass to then validate if ASP and
returned AS is related, in worst case this would split lookup complexity
by half.

Change-Id: I56ac5caef9bcded9dd08ca532a413af94070a1bd
---
M src/xua_rkm.c
1 file changed, 1 insertion(+), 7 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/libosmo-sigtran refs/changes/33/42533/1
diff --git a/src/xua_rkm.c b/src/xua_rkm.c
index e9972b3..f3136e4 100644
--- a/src/xua_rkm.c
+++ b/src/xua_rkm.c
@@ -401,7 +401,7 @@
struct osmo_ss7_as *as;
struct osmo_ss7_route *rt;

- as = osmo_ss7_as_find_by_rctx(inst, rctx);
+ as = ss7_asp_find_as_by_rctx(asp, rctx);
if (!as) {
msgb_append_dereg_res(resp, M3UA_RKM_DEREG_ERR_INVAL_RCTX, 0);
return -1;
@@ -413,12 +413,6 @@
return -1;
}

- /* Reject if ASP is not even part of AS */
- if (!osmo_ss7_as_has_asp(as, asp)) {
- msgb_append_dereg_res(resp, M3UA_RKM_DEREG_ERR_INVAL_RCTX, 0);
- return -1;
- }
-
/* Reject if ASP is still active */
if (asp->fi->state == XUA_ASP_S_ACTIVE) {
msgb_append_dereg_res(resp, M3UA_RKM_DEREG_ERR_ASP_ACTIVE, 0);

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

Gerrit-MessageType: newchange
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: I56ac5caef9bcded9dd08ca532a413af94070a1bd
Gerrit-Change-Number: 42533
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>