distributed subscriber lookup library
- 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)
- % Done changed from 0 to 20
- 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
- % Done changed from 20 to 30
- 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.
- % 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.