[OpenSIPS-Devel] New Transport Interface

Saúl Ibarra Corretgé saul at ag-projects.com
Tue Jan 13 12:12:17 CET 2015


Hi Razvan (and all!),

On 12 Jan 2015, at 14:52, Răzvan Crainea <razvan at opensips.org> wrote:

> Hi, All!
> 
> You can find here[2] the APIs that are going to be deeveloped for the Transport Interface.
> Please take a look and let us know what you think. Any feedback is welcome!
> 
> [1] http://www.opensips.org/Development/TransportInterfaceAPI
> 

Sorry for not having participated earlier. Hopefully I can do that more now!

I had a look at the API, and while the layer separation sounds good, I have some questions / concerns of different nature. Here is a brain-dump, in no particular order:

- If TLS is taken out of the core it would be best to rewrite it without looking at the current code. If we want to get OpenSIPS as an official Debian package, the TLS code needs to be a separate module, with a different license (GPL with the OpenSSL exception thing), but in order to relicense it all developers have to agree, doing it from scratch would avoid this.

- If TLS is a module now, has there been any thought on supporting implementations other than OpenSSL? gnuTLS and libreSSL come to mind.

- I see that the send / receive API is not designed with scatter / gather I/O in mind. It might be beneficial in the long run to support sending or receiving an array of buffers, and use readv / writev underneath.

- sockaddr_union is defined by OpenSIPS with no real purpose these days, since we can use sockaddr_storage for allocating space and sockaddr for passing around pointers.

- At what level are the TLS settings considered? Network or transport? Either way, all init functions get void, but where will the config be taken from, if it’s different per domain?

- The transport API has some inconsistencies in what parameters it takes: connect gets a sockaddr, but bind gets host and port.

- Where do DNS lookups happen? If the transport API only knows about IPs and ports then all functions should take sockaddr structures and the app would do the lookup. 

- Any thoughts on using “connected” UDP sockets, so the kernel does the filtering for incoming traffic?


I hope this helps.


Cheers,

--
Saúl Ibarra Corretgé
AG Projects



-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.opensips.org/pipermail/devel/attachments/20150113/0554bd7a/attachment.pgp>


More information about the Devel mailing list