Project

General

Profile

Feature #4237

distributed subscriber lookup library

Added by osmith about 1 year ago. Updated 6 months ago.

Status:
Resolved
Priority:
High
Assignee:
Target version:
-
Start date:
10/21/2019
Due date:
% Done:

100%

Spec Reference:

Description

As discussed:
  • have generic subscriber lookup functions
  • mDNS should be the first implemented protocol
  • GSUP could be added at some point in the future (out of scope for now)

History

#1 Updated by osmith about 1 year ago

  • % Done changed from 0 to 20
Status:
  • hacked up udp multicast proof of concept code to get a hang of how it works
  • started work on new "mslookup" library as part of libosmocore.git (as discussed with neels), adjusted all the autofoo stuff
  • created enc and dec functions and a test for the dns qname
  • created enc functions for dns header, question, resource record (untested)

WIP branch: osmith/mslookup

#2 Updated by osmith about 1 year ago

  • % Done changed from 20 to 30
Status:
  • Neels reviewed my patches, and added a blueprint for the high level api with a working test "fake provider". I've continued according to the review:
  • Researched if it makes sense to use libc-ares, which we use in osmo-sgsn already. But that does not seem to support mdns, and besides, it is only a client implementation; we need client and server. We also can't use just the decoding and encoding functions, because it does not decode requests and not encode answers (only the other way around). So using our own dns implementation seems to be the better way forward.
  • Decoupled the dns related code from the mslookup use case (domains don't need to end in .mslookup and don't have a fixed format), so we have clearer layer separation and could theoretically switch out the dns code with a third party library
  • Started to implement the dns/mdns provider based on the fake provider. I've added stubs for the necessary header and c files, filled out the header files and implemented de/encode functions for the qname together with a working test.

#3 Updated by neels 12 months ago

  • % Done changed from 30 to 80

we have libosmomslookup (MS lookup) with an mDNS lookup method in libosmocore,
which osmo-hlr uses to build an MS lookup client (to find IMSIs for LU) and server (to answer to voice/SMS/... requests).
There also is a python test program that shows how to integrate in python clients (like smpp handler or SIP dialplan integration).

Everything already works, but there is still some polishing we would like to do, as well as patch grooming before we'll submit to gerrit.

#4 Updated by neels 12 months ago

#5 Updated by neels 12 months ago

  • Priority changed from Normal to High

#6 Updated by neels 12 months ago

#7 Updated by osmith 11 months ago

  • % Done changed from 80 to 90

Submitted as https://gerrit.osmocom.org/c/osmo-hlr/+/16202 and follow up patches.

#8 Updated by laforge 6 months ago

  • Status changed from In Progress to Resolved
  • % Done changed from 90 to 100

patch merged long ago

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)