<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">Hi Gaurav,<br>
<br>
I have found a <a
href="https://www.youtube.com/watch?v=dMp21rAp9Hw">video</a>
where they explain how it works networking in Android 6. May be it
could be interesting. The first thing you will have to do is to
know the table assigned to each interface (It will be better if
you use netlink). As you can see in the video, Android 6 (5 also
works the same), have a table for each interface and a lot of
rules that forward the packets to the correct table. So now you
will have to add the following two rules to each of the rloc
interfaces. You can check the function
configure_routing_to_tun_mn.<br>
<br>
0.0.0.0/1 dev lisTun0 table x<br>
128.0.0.0/1 dev lispTun0 table x<br>
<br>
<br>
One thing I have detected in my device is that when I have LTE up
and I activate wifi, the table of LTE and the rules that foward
traffic to LTE disappears (at least i have not been able to found
them). I don't know if this is the normal behavior of android but
if it is, you will have to monitor the creation and destruction of
rules in order to create the previous routes when the table is
created. To do that you can check iface_mgmt.c file.<br>
<br>
In the video, they say that one of the reasons for the new
networking architecture used in android is to avoid adding IPs in
the routing rules. Unfortunately we need to add rules that use IP
addresses. An example of rules that we add is:<br>
from <rloc address> lookup <table num> ->
in <table num> we copy the default route associated with the
interface. I have seen that in Android 5 the default address
is not copied to this table. When I have time I will check this
point.<br>
<br>
I hope with this information you can start to work. <br>
<br>
Best regards<br>
<br>
Albert<br>
<br>
<br>
<br>
<br>
<br>
<br>
El 04/04/17 a les 18:09, Gaurav Mishra ha escrit:<br>
</div>
<blockquote
cite="mid:CABRizesQRDoXN6UGfLHFkFxPwrpVue-WMsZxvU_EMo1YOxqqdw@mail.gmail.com"
type="cite">
<div dir="auto">Hi Albert,
<div dir="auto"><br>
</div>
<div dir="auto">Since this is something we are really interested
in would it be possible for you to help us understand the
current code flow and the problem associated with it and what
changes are required. We can then try to correct this on our
end and try to make a contribution for the same. </div>
<div dir="auto"><br>
</div>
<div dir="auto">Regards,</div>
<div dir="auto">Gaurav</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Apr 4, 2017 09:45, "Albert López"
<<a moz-do-not-send="true" href="mailto:alopez@ac.upc.edu">alopez@ac.upc.edu</a>>
wrote:<br type="attribution">
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<div class="m_1539264495427164882moz-cite-prefix">Hi
Kevin,<br>
<br>
I have been checking and it seems that this behavior I
was describing started in Android 5. Apart from moving
the routes from the main route table to interface
specific tables, it seems that the routes we add in the
main table are ignored. Unfortunately, to allow OOR
works in root devices, we need to do big changes and at
this moments we don't have the required time resources.
If you are interested to do it, we will be glad to
assesorate you. <br>
<br>
Best regards<br>
<br>
Albert<br>
<br>
<br>
El 30/03/17 a les 06:47, Kevin Shen ha escrit:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hi Albert,
<div><br>
</div>
<div>Thanks again for the help. We are using Android
5.0.2, and when the ./liboor.so command is executed
without any errors, nothing is written to the OOR
log file. Does the current version of the OOR code
work for your rooted Android devices? </div>
<div><br>
</div>
<div>Thanks,</div>
<div>Kevin</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Mar 29, 2017 at 4:44
AM, Albert López <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:alopez@ac.upc.edu" target="_blank">alopez@ac.upc.edu</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<div
class="m_1539264495427164882m_7718028606098474153moz-cite-prefix">[---
Changed maintainers by devel mailing list ---]<br>
<br>
Hi Kevin,<br>
<br>
OOR in root mode works like the linux version
of OOR.<br>
<br>
<ul>
<li>We define the RLOC interfaces in the
configuration file</li>
<li>We obtain the IP address and the
gateway associated with the interface (OOR
needs to have a gateway defined for each
interface despite they have different
metric)</li>
<li>Add two routes to get all the traffic
and overpass the gateways:</li>
<ul>
<li><!-- <a href="http://0.0.0.0/1" target="_blank"> -->0.0.0.0/1<!-- </a> -->
dev lispTun0 proto static</li>
<li><!-- <a href="http://128.0.0.0/1" target="_blank"> -->128.0.0.0/1<!-- </a> -->
dev lispTun0 proto static</li>
</ul>
<li>Assign EID to the lispTun0 interface</li>
<li>For each RLOC address we create a new
routing table with a higher priority than
the main table . We send to this table all
packets with source address the RLOC IP.</li>
<li>We add to the new table the gateway
route associated with the RLOC interface
-> Once the packet is encapsulated will
be reach this table and sent through the
gateway</li>
<li>Same process for IPv6<br>
</li>
</ul>
Example once OOR is started:<br>
<br>
## ifconfig<br>
eth0 Link encap:Ethernet HWaddr
00:0c:29:c2:84:b0 <br>
inet addr:8.88.81.70
Bcast:84.88.81.79 Mask:255.255.255.240<br>
inet6 addr:
fe80::20c:29ff:fec2:84b0/64 Scope:Link<br>
UP BROADCAST RUNNING MULTICAST
MTU:1500 Metric:1<br>
RX packets:1234255 errors:0
dropped:0 overruns:0 frame:0<br>
TX packets:339517 errors:0 dropped:0
overruns:0 carrier:0<br>
collisions:0 txqueuelen:1000 <br>
RX bytes:174935927 (174.9 MB) TX
bytes:65482397 (65.4 MB)<br>
<br>
lispTun0 Link encap:UNSPEC HWaddr
00-00-00-00-00-00-00-00-00-00-<wbr>00-00-00-00-00-00
<br>
inet addr:153.16.30.48
P-t-P:153.16.30.48 Mask:255.255.255.255<br>
UP POINTOPOINT RUNNING MTU:1440
Metric:1<br>
RX packets:0 errors:0 dropped:0
overruns:0 frame:0<br>
TX packets:4 errors:0 dropped:0
overruns:0 carrier:0<br>
collisions:0 txqueuelen:500 <br>
RX bytes:0 (0.0 B) TX bytes:248
(248.0 B)<br>
<br>
lo Link encap:Local Loopback <br>
inet addr:127.0.0.1 Mask:255.0.0.0<br>
inet6 addr: ::1/128 Scope:Host<br>
UP LOOPBACK RUNNING MTU:65536
Metric:1<br>
RX packets:0 errors:0 dropped:0
overruns:0 frame:0<br>
TX packets:0 errors:0 dropped:0
overruns:0 carrier:0<br>
collisions:0 txqueuelen:0 <br>
RX bytes:0 (0.0 B) TX bytes:0 (0.0
B)<br>
<br>
# ip route<br>
<!-- <a href="http://0.0.0.0/1" target="_blank"> -->0.0.0.0/1<!-- </a> -->
dev lispTun0 proto static <br>
default via 8.88.81.65 dev eth0 metric 10 <br>
<!-- <a href="http://8.88.81.64/28" target="_blank"> -->8.88.81.64/28<!-- </a> -->
dev eth0 proto kernel scope link src
8.88.81.70 <br>
<!-- <a href="http://128.0.0.0/1" target="_blank"> -->128.0.0.0/1<!-- </a> -->
dev lispTun0 proto static <br>
<br>
# ip rule<br>
0: from all lookup local <br>
2: from 8.88.81.70 lookup 2 <br>
32766: from all lookup main <br>
32767: from all lookup default <br>
<br>
# ip route show table 2<br>
default via 8.88.81.65 dev eth0 proto static
metric 100 <br>
<br>
<br>
We obtain the gateway from the main routing
table.<br>
<br>
Previous to Android version 6, the routing in
Android worked like in Linux (what I explained
before). From Android 6 this has changed. The
gateway of the interfaces is no longer stored
in the main routing table. Instead of this, a
new table is created for each interface and it
is in this table where the gateway is stored.
For instance, I show you the information of my
phone (OOR is not running):<br>
<br>
$ ip route<br>
<!-- <a href="http://10.61.76.252/30" target="_blank"> -->10.61.76.252/30<!-- </a> -->
dev rmnet_data0 proto kernel scope link src
10.61.76.253<br>
<br>
$ ip rule<br>
0: from all lookup local <br>
10000: from all fwmark 0xc0000/0xd0000
lookup 99 <br>
10500: from all oif dummy0 uidrange 0-0
lookup 1002 <br>
10500: from all oif rmnet_data0 uidrange
0-0 lookup 1012 <br>
13000: from all fwmark 0x10063/0x1ffff
lookup 97 <br>
13000: from all fwmark 0x10068/0x1ffff
lookup 1012 <br>
14000: from all oif dummy0 lookup 1002 <br>
14000: from all oif rmnet_data0 lookup 1012
<br>
15000: from all fwmark 0x0/0x10000 lookup
99 <br>
16000: from all fwmark 0x0/0x10000 lookup
98 <br>
17000: from all fwmark 0x0/0x10000 lookup
97 <br>
19000: from all fwmark 0x68/0x1ffff lookup
1012 <br>
22000: from all fwmark 0x0/0xffff lookup
1012 <br>
23000: from all fwmark 0x0/0xffff uidrange
0-0 lookup main <br>
32000: from all unreachable<br>
<br>
$ ip route show table 1012<br>
default via 10.61.76.254 dev rmnet_data0
proto static <br>
<br>
<br>
If you check the OOR log file you will see
that the system is not able to find the
gateway and as a consequence it can not finish
with the process I explained before.<br>
Here you have two options. Use a device with
an Android version previous to 6 to focus in
your case or try to solve this problem. If you
try to solve it, considerer that you not only
have to know the gateway but also detect the
change of gateway through netlink.<br>
<br>
Another thing you should know is that the
netconf module to configure OOR while runing
is only available in Linux. If you want to
change OOR configuration in Android ( add a
new RLOC interface, change MS, change EID
...), you have to restart OOR.<br>
<br>
If OOR stops without reason, the first thing
to check is the log file to try to find any
clue.<br>
<br>
Best regards<br>
<br>
Albert<br>
<br>
<br>
<br>
<br>
El 29/03/17 a les 06:31, Kevin Shen ha escrit:<br>
</div>
<div>
<div class="m_1539264495427164882h5">
<blockquote type="cite">
<div dir="ltr">Hi Albert,
<div><br>
</div>
<div>Thanks a lot for the help. We are
now trying to get the rooted version
of OOR working on Android, but
whenever we tap the checkbox to run
OOR, the service icon quickly appears
and disappears in the status bar. </div>
<div><br>
</div>
<div>We made sure that the NDK generated
library liboor.so was copied over to
OOR's app data in the lib/ folder, and
that the command ./liboor.so was
executed without any error message
from the shell or exception thrown in
the Java code. The device we are using
is properly rooted. However, the
OORService still quits immediately,
which could mean ./liboor.so
terminates right away.</div>
<div><br>
</div>
<div>Do you maybe have any insight on
this issue? If possible, we would also
be willing to Skype at any time to
solve this. We really appreciate all
the time you've taken to help us with
OOR. Thanks so much!</div>
<div><br>
</div>
<div>Best Regards,</div>
<div>Kevin</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, Mar 27,
2017 at 4:13 AM, Albert López <span
dir="ltr"><<a
moz-do-not-send="true"
href="mailto:alopez@ac.upc.edu"
target="_blank">alopez@ac.upc.edu</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div text="#000000"
bgcolor="#FFFFFF">
<div
class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904moz-cite-prefix">Hi
Kevin,<br>
<br>
You should select the interface
that has an IP assigned. In my
device the name is rmnet_data0.
You can check it using "ip
address" from a terminal (if you
have wifi on, the data interface
may not have an IP assigned). If
you still have problems, you can
send me the logs file located in
your storage card (oor.log). <br>
<br>
Best regards<br>
<br>
Albert<br>
<br>
El 24/03/17 a les 12:13, Kevin
Shen ha escrit:<br>
</div>
<div>
<div
class="m_1539264495427164882m_7718028606098474153h5">
<blockquote type="cite">
<div dir="ltr">Hi Albert,
<div><br>
</div>
<div>Thanks so much for
the help! We managed to
successfully ping an EID
with the wlan0 Wi-Fi
interface, but for some
reason the rmnet0 LTE
interface doesn't work.
Would you mind taking a
look at the screenshot
attached? We are using a
device running Android
6, if that makes a
difference. Thanks in
advance - we really
appreciate your time.</div>
<div><br>
</div>
<div>Best Regards,</div>
<div>Kevin</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On
Thu, Mar 23, 2017 at
5:29 AM, Albert López <span
dir="ltr"><<a
moz-do-not-send="true"
href="mailto:alopez@ac.upc.edu" target="_blank">alopez@ac.upc.edu</a>></span>
wrote:<br>
<blockquote
class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<div text="#000000"
bgcolor="#FFFFFF">
<div
class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904m_105837505510758388moz-cite-prefix">Hi
Kevin,<br>
<br>
<br>
El 23/03/17 a les
02:31, Kevin Shen
ha escrit:<br>
</div>
<span>
<blockquote
type="cite">
<div dir="ltr">Hi
Albert,
<div><br>
</div>
<div>Thanks a
lot for
setting it
up! </div>
<div><br>
</div>
<div>We've
entered the
configuration
into the OOR
Android app
and
successfully
registered
into the LISP
Site Status
page. However,
when we ping
active EIDs,
we don't get
any response.
It works when
we use
Wi-Fi/LTE
without OOR
enabled.
Attached are
screenshots of
the
configuration.
<br>
</div>
</div>
</blockquote>
</span> I think you
have selected the
wrong intrefaces in
the RLOC interface
selection. You
should select
something like
wlan0, rmnet0 (the
interfaces with an
IP selected). If
your RLOCs are
behind NAT, you will
need to select NAT
Traversal Aware. <span>
<blockquote
type="cite">
<div dir="ltr">
<div><br>
</div>
<div><span
style="font-size:12.8px">Our
use case is:
developing an
API which when
triggered with
necessary
parameters can
seamlessly
transition
over
heterogeneous
networks using
LISP.</span><br>
</div>
<div><br>
</div>
</div>
</blockquote>
</span> I am not an
expert in Android
but the last time we
tried to select the
output interface we
couldn't. By default
Android only have
one active interface
that you can not
select (if you are
connected to wifi I
think you can not
choose to use the
LTE interface to
send data). May be
it is possible to do
it if you have a
rooted device but we
didn0t have time to
work with this. On
the other hand, we
only have support
for root devices for
Android versions
previous to 6.
Android 6 and above
changed the way to
implement the
network and we
haven't had time to
adapt OOR to it. For
this devices we only
support the none
root version of OOR
which is based on
the VPN API of
Android. As far as I
know, with VPN API
you can not select
the output
interface.<br>
<br>
Best regards<span
class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904HOEnZb"><font
color="#888888"><br>
<br>
Albert</font></span>
<div>
<div
class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904h5"><br>
<blockquote
type="cite">
<div dir="ltr">
<div>Any help
would be
greatly
appreciated.
Thanks in
advance! </div>
<div><br>
</div>
<div>Best
Regards,</div>
<div>Kevin
Shen</div>
</div>
<div
class="gmail_extra"><br>
<div
class="gmail_quote">On
Mon, Mar 20,
2017 at 5:21
AM, Albert
López <span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:alopez@ac.upc.edu" target="_blank">alopez@ac.upc.edu</a>></span>
wrote:<br>
<blockquote
class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div
text="#000000"
bgcolor="#FFFFFF">
<div
class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904m_105837505510758388m_-1200784778883405156moz-cite-prefix">Dear
Kevin,<br>
<br>
Here's your
allocation
data:<br>
<br>
Device name:
columbia-xtr<br>
Region:
US-East<br>
Geographic
location: New
York - USA<br>
EID-prefix:
<!-- <a href="http://153.16.29.128/28" target="_blank"> -->153.16.29.128/28<!-- </a> -->
(more
specifics
allowed)<br>
EID loopback:
153.16.29.129<br>
EID-prefix
ipv6:
2610:D0:1153::/48
(more
specifics
allowed)<br>
EID loopback
ipv6:
2610:D0:1153::153:16:29:129<br>
Map Servers:
{ARIN}
{cisco-sjc-mr-ms-1
173.36.254.164, eqx-ash-mr-ms 206.223.132.89}<br>
Map Server
password:
wju6C2ZjV3<br>
Map Resolvers:
{ARIN}
{cisco-sjc-mr-ms-1
173.36.254.164, eqx-ash-mr-ms 206.223.132.89}<br>
PETR:
69.31.31.98<br>
Contact: Kevin
Shen <a
moz-do-not-send="true"
class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904m_105837505510758388m_-1200784778883405156moz-txt-link-rfc2396E"
href="mailto:ks3206@columbia.edu" target="_blank"><ks3206@columbia.edu></a><br>
Expiration
date:
30/06/2017<br>
<br>
Please take a
look at the
`oor/oor.conf.example`
file in the
source
distribution
to see how to
build a
configuration
from the above
data. You can
check if you
correctly
registered
your site into
the mapping
system on the
LISP Site
Status page
here: <a
moz-do-not-send="true"
class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904m_105837505510758388m_-1200784778883405156moz-txt-link-freetext"
href="http://www.lisp4.net/lisp-site/" target="_blank">http://www.lisp4.net/lisp-site<wbr>/</a>
After one day
it will
probably show
up on the
LISPmon
website as
well: <a
moz-do-not-send="true"
class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904m_105837505510758388m_-1200784778883405156moz-txt-link-freetext"
href="http://lispmon.net" target="_blank">http://lispmon.net</a><br>
<br>
You can slice
up your
prefixes into
more specifics
and distribute
them between
more than one
device if that
becomes
necessary,
just make sure
they don’t
overlap.<br>
<br>
If you have
any issues or
questions,
please post to
the users
mailing list
for support,
or join
#openoverlayrouter
on Freenode
for more
interactive
help. <a
moz-do-not-send="true"
class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904m_105837505510758388m_-1200784778883405156moz-txt-link-freetext"
href="http://webchat.freenode.net/?randomnick=1channels=#openoverlayrouter&prompt=1"
target="_blank">http://webchat.freenode.net/?r<wbr>andomnick=1channels=#openoverl<wbr>ayrouter&prompt=1</a><br>
<br>
The assigned
EIDs will
expire the 30
of June of
2017. You can
request to
renew them by
mail.<br>
<br>
Best regards,<br>
<br>
Albert <br>
<br>
<br>
PS: Notice
that OOR for
Android is
limited to one
active
interface. The
other ones are
in backup mode<br>
<br>
<br>
<br>
<br>
El 20/03/17 a
les 00:40,
Kevin Shen ha
escrit:<br>
</div>
<blockquote
type="cite">
<div>
<div
class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904m_105837505510758388h5">
<div dir="ltr">Dear
OpenOverlayRouter Team,
<div><br>
</div>
<div>My name
is Kevin Shen,
and I am a
student at
Columbia
University
conducting
research with
Prof. Henning
Schulzrinne.
My team and I
are interested
in the beta
network
because we are
working on
seamless
transitioning
between
heterogeneous
networks. Here
is the
information
requested:</div>
<div><br>
</div>
<div>Full
name: Kevin
Shen</div>
<div>Geographical
location: New
York, NY</div>
<div>Flavor of
OOR: Android</div>
<div>Make/model:
SM-G935U
(Samsung
Galaxy S7
Edge)</div>
<div>Use
cases:
Mobility</div>
<div>How we
learned about
OOR: Research
paper on
multihoming
protocols<br
clear="all">
<div><br>
</div>
<div>Please
let me know if
you need
anything else.
Thanks so
much!</div>
<div><br>
</div>
Best Regards,<br>
<div
class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904m_105837505510758388m_-1200784778883405156gmail_signature"
data-smartmail="gmail_signature">
<div dir="ltr">Kevin
Shen
<div>Columbia
University |
Class of 2018</div>
<div>B.S.
Candidate in
Computer
Science</div>
</div>
</div>
</div>
</div>
<br>
<fieldset
class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904m_105837505510758388m_-1200784778883405156mimeAttachmentHeader"></fieldset>
<br>
</div>
</div>
<pre>______________________________<wbr>_________________
Maintainers mailing list
<a moz-do-not-send="true" class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904m_105837505510758388m_-1200784778883405156moz-txt-link-abbreviated" href="mailto:Maintainers@mail.openoverlayrouter.org" target="_blank">Maintainers@mail.openoverlayro<wbr>uter.org</a>
<a moz-do-not-send="true" class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904m_105837505510758388m_-1200784778883405156moz-txt-link-freetext" href="http://mail.openoverlayrouter.org/cgi-bin/mailman/listinfo/maintainers" target="_blank">http://mail.openoverlayrouter.<wbr>org/cgi-bin/mailman/listinfo/m<wbr>aintainers</a>
</pre>
</blockquote>
</div>
</blockquote></div>
<div>
</div>--
<div class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904m_105837505510758388gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Kevin Shen <div>Columbia University | Class of 2018</div><div>B.S. Candidate in Computer Science</div></div></div>
</div>
</blockquote>
<p>
</p></div></div><pre class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904m_105837505510758388moz-signature" cols="72">-</pre></div></blockquote></div>
<div>
</div>--
<div class="m_1539264495427164882m_7718028606098474153m_-9033851212241776904gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Kevin Shen <div>Columbia University | Class of 2018</div><div>B.S. Candidate in Computer Science</div></div></div>
</div>
</blockquote>
<p>
</p></div></div></div></blockquote></div>
<div>
</div>--
<div class="m_1539264495427164882m_7718028606098474153gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Kevin Shen <div>Columbia University | Class of 2018</div><div>B.S. Candidate in Computer Science</div></div></div>
</div>
</blockquote>
</div></div></div></blockquote></div>
<div>
</div>--
<div class="m_1539264495427164882gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Kevin Shen <div>Columbia University | Class of 2018</div><div>B.S. Candidate in Computer Science</div></div></div>
</div>
</blockquote>
</div></blockquote></div></div>
</blockquote>
</body></html>