- From: Michael Tuexen <Michael.Tuexen AT micmac.franken.de>
- To: Dag Ove <daggy2k AT hotmail.com>
- Cc: Thomas Dreibholz <dreibh AT simula.no>, "sctp-discussion AT sctp.de" <sctp-discussion AT sctp.de>
- Subject: Re: [SCTP-Discussion] Sctplib on Android
- Date: Thu, 27 Feb 2014 15:26:06 +0100
- List-archive: <http://lists.franken.de/pipermail/sctp-discussion>
- List-id: SCTP Discussions <sctp-discussion.sctp.de>
On 27 Feb 2014, at 14:12, Dag Ove
<daggy2k AT hotmail.com>
wrote:
>
In the SCTP-API of sctplib:
>
6.4 ULP-to-SCTP
>
6.4.1. sctp_initLibrary()
>
"This function will open raw sockets for capturing SCTP packets (IPv4 and
>
if possible, IPv6 too) from the network and initialize the timer list. It
>
needs to be called before any other functions of the libsctp-library are
>
called"
>
>
I interpret the above line that function sctp_library() needs to be called
>
regardless if using SCTP/IP or SCTP/UDP. Is it possible that if I only
>
intend to use SCTP/UDP I dont need to call sctp_initLibrary() ?
No, you need to initialise the library.
>
>
The context I want to use SCTP/UDP is as an example protocol for comparing
>
it to HTTP/TCP and plain UDP when exchanging SOAP messages/XML data with a
>
Web service server, so I simply want to use in a peer-to-peer system
>
between Android and a java server.
OK.
>
>
It had a look at usrsctp, but I had more trouble compiling the native C for
>
Android, some classes/headers were missing (ifaddrs.h, umem.h, pthread.h).
>
I am not very familiar with freeBSD.
I haven't build the library on a plain Android system, but you might want to
the build
process of Firefox and the corresponding files:
http://mxr.mozilla.org/mozilla-central/source/netwerk/sctp/src/
>
>
SCTPLIB was easier to compile and install on Android, but the problem
>
arised when" sctp_initLibrary()" calls "adl_init_adaptation_layer()", which
>
in turn calls "adl_open_sctp_socket()". I don't understand why the function
>
"adl_open_sctp_socket()" in adaptation.c tries to open a raw socket even if
>
SCTP_OVER_UDP is set
>
(ref lines 571-585 in
>
https://github.com/dreibh/sctplib/blob/master/sctplib/sctp/adaptation.c)
>
>
I this is not an implementation error, I would be very interrested in what
>
functions to use to enable SCTP_over_UDP.
OK, I looked at the code. It is implemented using raw sockets. This could be
changed
for UDP encapsulation to not use raw sockets in the same way as it is done n
the usrsctp
code. I don't have to time to do that, maybe Thomas has. Not sure. It is not
very difficult...
Best regards
Michael
>
>
Best Regards,
>
Dag Ove,
>
Norway
>
>
>
> Subject: Re: [SCTP-Discussion] Sctplib on Android
>
> From:
>
> Michael.Tuexen AT micmac.franken.de
>
> Date: Wed, 26 Feb 2014 14:22:08 +0100
>
> CC:
>
> sctp-discussion AT sctp.de;
>
>
>
> dreibh AT simula.no
>
> To:
>
> daggy2k AT hotmail.com
>
>
>
> On Feb 26, 2014, at 1:37 PM, Dag Ove
>
> <daggy2k AT hotmail.com>
>
> wrote:
>
>
>
> > Thank you for quick response!
>
> >
>
> > In "Documentation of the SCTP-Implementation - Release: sctplib-1.0"
>
> > under "2 General Concepts" it says:
>
> >
>
> > "All of these functions may be made use of by simply linking the static
>
> > libsctp-library to an application,
>
> > and including the file sctp.h. As SCTP operates on top of IP, we chose
>
> > to open a raw socket to catch
>
> > all incoming packets with the IP protocol id byte set to 132 (=SCTP).
>
> > For this, it is necessary that an
>
> > application using the library functions have privileges to do so. On
>
> > most Unix machines that means this
>
> > application has to be run by root (i.e. be made setuid 0)."
>
> And this is true for running SCTP/IP.
>
> >
>
> > After examining the adaption.c file I believe that this is the case
>
> > also when the macro SCTP_OVER_UDP is set.
>
> > Since Android does not allow opening of raw socket, i don't think
>
> > sctplib can be used on Android
>
> Then this is not implemented in an optimal way. Please note that I moved
>
> from developing sctplib
>
> to the FreeBSD kernel implementation and its port to userland, the
>
> usrsctp library.
>
>
>
> From my perspective, the sctplib only get bug fixes. Not sure if someone
>
> will change the above code.
>
> Thomas: Do you have any intention to do so?
>
> > without rooting the Android device.
>
> >
>
> > I haven't heard about usrsctp before, but will take a look at it!
>
> It is the port of the FreeBSD kernel implementation to userland and is
>
> used for RTCWeb by Firefox, Chrome and Opera.
>
> > Does it provide the same functionality as sctplib?
>
> It supports much more features and is actively maintained and used in a
>
> couple
>
> of browsers for RTCWeb. What is the context you want to use SCTP for?
>
> > Do you know if it has been tested on Android before?
>
> I think so, since some of the browsers run on Android...
>
>
>
> Best regards
>
> Michael
>
> >
>
> > Best Regards,
>
> > Dag Ove,
>
> > Norway
>
> >
>
> >> Subject: Re: [SCTP-Discussion] Sctplib on Android
>
> >> From:
>
> >> Michael.Tuexen AT micmac.franken.de
>
> >> Date: Wed, 26 Feb 2014 12:40:53 +0100
>
> >> CC:
>
> >> sctp-discussion AT sctp.de
>
> >> To:
>
> >> daggy2k AT hotmail.com
>
> >>
>
> >> On Feb 26, 2014, at 11:25 AM, Dag Ove
>
> >> <daggy2k AT hotmail.com>
>
> >> wrote:
>
> >>
>
> >>> Hello,
>
> >>>
>
> >>> I am trying to enable SCTP over UDP using the sctplib-1.0.15 as a
>
> >>> native library in an Android app, using Androids Native Development
>
> >>> Kit (NDK). The installation works since the Android kernel is Linux,
>
> >>> but when I call the function "sctp_initLibrary();" I get in return "
>
> >>> 1 - adaptation error ". The reason for this is that the function
>
> >>> "adl_open_sctp_socket" fails and returns -1 when trying to create a
>
> >>> raw socket "sfd = socket(af, SOCK_RAW, IPPROTO_UDP"
>
> >>> Opening raw sockets in Android is not permitted unless having root
>
> >>> access/superuser, and I don't want to root.
>
> >>>
>
> >>> My question is: Is it possible to use the sctplib-1.0.15 to send
>
> >>> SCTP-over-UDP without having root or superuser?
>
> >> Im not sure why a raw socket is used. For SCTP/UDP you only need UDP
>
> >> sockets.
>
> >> You can have a look at usrsctp, which is the FreeBSD stack running in
>
> >> userland,
>
> >> which does it like that. See
>
> >> http://code.google.com/p/sctp-refimpl/source/browse/#svn%2Ftrunk%2FKERN%2Fusrsctp
>
> >>
>
> >> Best regards
>
> >> Michael
>
> >>>
>
> >>> Best Regards,
>
> >>> Dag Ove,
>
> >>> Norway
>
> >>> _______________________________________________
>
> >>> sctp-discussion mailing list
>
> >>> sctp-discussion AT sctp.de
>
> >>> http://www.sctp.de/mailman/listinfo/sctp-discussion
>
> >>
>
>
Archive powered by MHonArc 2.6.19+.