[OOR-Devel] [OOR maintainers] LISP Beta network allocation

Albert López alopez at ac.upc.edu
Wed Apr 12 09:21:19 CEST 2017


I think it should work. We used to do the test with android 4.3. The 
master branch doesn't have the last code and it is not ported to android 
studio. I recommend you to use the testing branch.

Best regards

Albert


El 12/04/17 a les 03:14, Kevin Shen ha escrit:
> Hi Albert,
>
> Thanks for the help. Quick question, since the new behavior of routes 
> being moved from the main routing table to interface specific tables 
> started in Android 5.0, would that mean that OOR for rooted devices 
> should work for Android 4.4.4? Or does it not work for any version of 
> Android? We are compiling the code in the master branch.
>
> Best regards,
> Kevin
>
> On Fri, Apr 7, 2017 at 4:53 AM, Albert López <alopez at ac.upc.edu 
> <mailto:alopez at ac.upc.edu>> wrote:
>
>     Hi Kevin,
>
>     I have fixed the logs and now the file is generated. The new code
>     is in the testing branch. I recommend that if your modifications
>     are in the oor code and not in the Android app, to run oor from a
>     terminal. Connect to your device using adb shell and you will find
>     the executable in the directory
>     /data/app/org.openoverlayrouter.noroot-?/lib/arm/. The command to
>     run is "liboorexec.so -f /sdcard/oor.conf". You should be root to
>     run this command (su).
>
>     Best regards
>
>     Albert
>
>
>
>     On 06/04/17 23:27, Kevin Shen wrote:
>>     Hi Albert,
>>
>>     Thanks for the help. Quick question, are you seeing anything in
>>     the log file when you run OOR for rooted devices? We don't see
>>     anything being written to the log on any of our devices. Thanks
>>     in advance!
>>
>>     Best,
>>     Kevin
>>
>>     On Wed, Apr 5, 2017 at 8:00 AM, Albert López <alopez at ac.upc.edu
>>     <mailto:alopez at ac.upc.edu>> wrote:
>>
>>         Hi Gaurav,
>>
>>         I have found a video
>>         <https://www.youtube.com/watch?v=dMp21rAp9Hw> 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.
>>
>>         0.0.0.0/1 dev lisTun0 table x
>>         128.0.0.0/1 dev lispTun0 table x
>>
>>
>>         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.
>>
>>         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:
>>             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.
>>
>>         I hope with this information you can start to work.
>>
>>         Best regards
>>
>>         Albert
>>
>>
>>
>>
>>
>>
>>         El 04/04/17 a les 18:09, Gaurav Mishra ha escrit:
>>>         Hi Albert,
>>>
>>>         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.
>>>
>>>         Regards,
>>>         Gaurav
>>>
>>>         On Apr 4, 2017 09:45, "Albert López" <alopez at ac.upc.edu
>>>         <mailto:alopez at ac.upc.edu>> wrote:
>>>
>>>             Hi Kevin,
>>>
>>>             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.
>>>
>>>             Best regards
>>>
>>>             Albert
>>>
>>>
>>>             El 30/03/17 a les 06:47, Kevin Shen ha escrit:
>>>>             Hi Albert,
>>>>
>>>>             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?
>>>>
>>>>             Thanks,
>>>>             Kevin
>>>>
>>>>             On Wed, Mar 29, 2017 at 4:44 AM, Albert López
>>>>             <alopez at ac.upc.edu <mailto:alopez at ac.upc.edu>> wrote:
>>>>
>>>>                 [--- Changed maintainers by devel mailing list ---]
>>>>
>>>>                 Hi Kevin,
>>>>
>>>>                 OOR in root mode works like the linux version of OOR.
>>>>
>>>>                   * We define the RLOC interfaces in the
>>>>                     configuration file
>>>>                   * 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)
>>>>                   * Add two routes to get all the traffic and
>>>>                     overpass the gateways:
>>>>                       o 0.0.0.0/1 dev lispTun0 proto static
>>>>                       o 128.0.0.0/1 dev lispTun0 proto static
>>>>                   * Assign EID to the lispTun0 interface
>>>>                   * 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.
>>>>                   * 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
>>>>                   * Same process for IPv6
>>>>
>>>>                 Example once OOR is started:
>>>>
>>>>                 ## ifconfig
>>>>                 eth0      Link encap:Ethernet HWaddr 00:0c:29:c2:84:b0
>>>>                           inet addr:8.88.81.70 Bcast:84.88.81.79
>>>>                 Mask:255.255.255.240
>>>>                           inet6 addr: fe80::20c:29ff:fec2:84b0/64
>>>>                 Scope:Link
>>>>                           UP BROADCAST RUNNING MULTICAST MTU:1500 
>>>>                 Metric:1
>>>>                           RX packets:1234255 errors:0 dropped:0
>>>>                 overruns:0 frame:0
>>>>                           TX packets:339517 errors:0 dropped:0
>>>>                 overruns:0 carrier:0
>>>>                 collisions:0 txqueuelen:1000
>>>>                           RX bytes:174935927 (174.9 MB)  TX
>>>>                 bytes:65482397 (65.4 MB)
>>>>
>>>>                 lispTun0  Link encap:UNSPEC HWaddr
>>>>                 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
>>>>                           inet addr:153.16.30.48
>>>>                 P-t-P:153.16.30.48  Mask:255.255.255.255
>>>>                           UP POINTOPOINT RUNNING  MTU:1440 Metric:1
>>>>                           RX packets:0 errors:0 dropped:0
>>>>                 overruns:0 frame:0
>>>>                           TX packets:4 errors:0 dropped:0
>>>>                 overruns:0 carrier:0
>>>>                 collisions:0 txqueuelen:500
>>>>                           RX bytes:0 (0.0 B) TX bytes:248 (248.0 B)
>>>>
>>>>                 lo        Link encap:Local Loopback
>>>>                           inet addr:127.0.0.1 Mask:255.0.0.0
>>>>                           inet6 addr: ::1/128 Scope:Host
>>>>                           UP LOOPBACK RUNNING MTU:65536 Metric:1
>>>>                           RX packets:0 errors:0 dropped:0
>>>>                 overruns:0 frame:0
>>>>                           TX packets:0 errors:0 dropped:0
>>>>                 overruns:0 carrier:0
>>>>                 collisions:0 txqueuelen:0
>>>>                           RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
>>>>
>>>>                 # ip route
>>>>                 0.0.0.0/1 dev lispTun0 proto static
>>>>                 default via 8.88.81.65 dev eth0  metric 10
>>>>                 8.88.81.64/28 dev eth0  proto kernel  scope link 
>>>>                 src 8.88.81.70
>>>>                 128.0.0.0/1 dev lispTun0 proto static
>>>>
>>>>                 # ip rule
>>>>                 0:    from all lookup local
>>>>                 2:    from 8.88.81.70 lookup 2
>>>>                 32766:    from all lookup main
>>>>                 32767:    from all lookup default
>>>>
>>>>                 # ip route show table 2
>>>>                 default via 8.88.81.65 dev eth0  proto static 
>>>>                 metric 100
>>>>
>>>>
>>>>                 We obtain the gateway from the main routing table.
>>>>
>>>>                 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):
>>>>
>>>>                 $ ip route
>>>>                 10.61.76.252/30 dev rmnet_data0 proto kernel scope
>>>>                 link  src 10.61.76.253
>>>>
>>>>                 $ ip rule
>>>>                 0:    from all lookup local
>>>>                 10000:    from all fwmark 0xc0000/0xd0000 lookup 99
>>>>                 10500:    from all oif dummy0 uidrange 0-0 lookup 1002
>>>>                 10500:    from all oif rmnet_data0 uidrange 0-0
>>>>                 lookup 1012
>>>>                 13000:    from all fwmark 0x10063/0x1ffff lookup 97
>>>>                 13000:    from all fwmark 0x10068/0x1ffff lookup 1012
>>>>                 14000:    from all oif dummy0 lookup 1002
>>>>                 14000:    from all oif rmnet_data0 lookup 1012
>>>>                 15000:    from all fwmark 0x0/0x10000 lookup 99
>>>>                 16000:    from all fwmark 0x0/0x10000 lookup 98
>>>>                 17000:    from all fwmark 0x0/0x10000 lookup 97
>>>>                 19000:    from all fwmark 0x68/0x1ffff lookup 1012
>>>>                 22000:    from all fwmark 0x0/0xffff lookup 1012
>>>>                 23000:    from all fwmark 0x0/0xffff uidrange 0-0
>>>>                 lookup main
>>>>                 32000:    from all unreachable
>>>>
>>>>                 $ ip route show table 1012
>>>>                 default via 10.61.76.254 dev rmnet_data0  proto static
>>>>
>>>>
>>>>                 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.
>>>>                 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.
>>>>
>>>>                 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.
>>>>
>>>>                 If OOR stops without reason, the first thing to
>>>>                 check is the log file to try to find any clue.
>>>>
>>>>                 Best regards
>>>>
>>>>                 Albert
>>>>
>>>>
>>>>
>>>>
>>>>                 El 29/03/17 a les 06:31, Kevin Shen ha escrit:
>>>>>                 Hi Albert,
>>>>>
>>>>>                 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.
>>>>>
>>>>>                 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.
>>>>>
>>>>>                 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!
>>>>>
>>>>>                 Best Regards,
>>>>>                 Kevin
>>>>>
>>>>>                 On Mon, Mar 27, 2017 at 4:13 AM, Albert López
>>>>>                 <alopez at ac.upc.edu <mailto:alopez at ac.upc.edu>> wrote:
>>>>>
>>>>>                     Hi Kevin,
>>>>>
>>>>>                     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).
>>>>>
>>>>>                     Best regards
>>>>>
>>>>>                     Albert
>>>>>
>>>>>                     El 24/03/17 a les 12:13, Kevin Shen ha escrit:
>>>>>>                     Hi Albert,
>>>>>>
>>>>>>                     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.
>>>>>>
>>>>>>                     Best Regards,
>>>>>>                     Kevin
>>>>>>
>>>>>>                     On Thu, Mar 23, 2017 at 5:29 AM, Albert López
>>>>>>                     <alopez at ac.upc.edu
>>>>>>                     <mailto:alopez at ac.upc.edu>> wrote:
>>>>>>
>>>>>>                         Hi Kevin,
>>>>>>
>>>>>>
>>>>>>                         El 23/03/17 a les 02:31, Kevin Shen ha
>>>>>>                         escrit:
>>>>>>>                         Hi Albert,
>>>>>>>
>>>>>>>                         Thanks a lot for setting it up!
>>>>>>>
>>>>>>>                         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.
>>>>>>                         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.
>>>>>>>
>>>>>>>                         Our use case is: developing an API which
>>>>>>>                         when triggered with necessary parameters
>>>>>>>                         can seamlessly transition over
>>>>>>>                         heterogeneous networks using LISP.
>>>>>>>
>>>>>>                         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.
>>>>>>
>>>>>>                         Best regards
>>>>>>
>>>>>>                         Albert
>>>>>>
>>>>>>>                         Any help would be greatly appreciated.
>>>>>>>                         Thanks in advance!
>>>>>>>
>>>>>>>                         Best Regards,
>>>>>>>                         Kevin Shen
>>>>>>>
>>>>>>>                         On Mon, Mar 20, 2017 at 5:21 AM, Albert
>>>>>>>                         López <alopez at ac.upc.edu
>>>>>>>                         <mailto:alopez at ac.upc.edu>> wrote:
>>>>>>>
>>>>>>>                             Dear Kevin,
>>>>>>>
>>>>>>>                             Here's your allocation data:
>>>>>>>
>>>>>>>                             Device name: columbia-xtr
>>>>>>>                             Region: US-East
>>>>>>>                             Geographic location: New York - USA
>>>>>>>                             EID-prefix: 153.16.29.128/28 (more
>>>>>>>                             specifics allowed)
>>>>>>>                             EID loopback: 153.16.29.129
>>>>>>>                             EID-prefix ipv6: 2610:D0:1153::/48
>>>>>>>                             (more specifics allowed)
>>>>>>>                             EID loopback ipv6:
>>>>>>>                             2610:D0:1153::153:16:29:129
>>>>>>>                             Map Servers: {ARIN}
>>>>>>>                             {cisco-sjc-mr-ms-1 173.36.254.164,
>>>>>>>                             eqx-ash-mr-ms 206.223.132.89}
>>>>>>>                             Map Server password: wju6C2ZjV3
>>>>>>>                             Map Resolvers: {ARIN}
>>>>>>>                             {cisco-sjc-mr-ms-1 173.36.254.164,
>>>>>>>                             eqx-ash-mr-ms 206.223.132.89}
>>>>>>>                             PETR: 69.31.31.98
>>>>>>>                             Contact: Kevin Shen
>>>>>>>                             <ks3206 at columbia.edu>
>>>>>>>                             <mailto:ks3206 at columbia.edu>
>>>>>>>                             Expiration date: 30/06/2017
>>>>>>>
>>>>>>>                             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:
>>>>>>>                             http://www.lisp4.net/lisp-site/
>>>>>>>                             <http://www.lisp4.net/lisp-site/>
>>>>>>>                             After one day it will probably show
>>>>>>>                             up on the LISPmon website as well:
>>>>>>>                             http://lispmon.net
>>>>>>>
>>>>>>>                             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.
>>>>>>>
>>>>>>>                             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.
>>>>>>>                             http://webchat.freenode.net/?randomnick=1channels=#openoverlayrouter&prompt=1
>>>>>>>                             <http://webchat.freenode.net/?randomnick=1channels=#openoverlayrouter&prompt=1>
>>>>>>>
>>>>>>>                             The assigned EIDs will expire the 30
>>>>>>>                             of June of 2017. You can request to
>>>>>>>                             renew them by mail.
>>>>>>>
>>>>>>>                             Best regards,
>>>>>>>
>>>>>>>                             Albert
>>>>>>>
>>>>>>>
>>>>>>>                             PS: Notice that OOR for Android is
>>>>>>>                             limited to one active interface. The
>>>>>>>                             other ones are in backup mode
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>                             El 20/03/17 a les 00:40, Kevin Shen
>>>>>>>                             ha escrit:
>>>>>>>>                             Dear OpenOverlayRouter Team,
>>>>>>>>
>>>>>>>>                             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:
>>>>>>>>
>>>>>>>>                             Full name: Kevin Shen
>>>>>>>>                             Geographical location: New York, NY
>>>>>>>>                             Flavor of OOR: Android
>>>>>>>>                             Make/model: SM-G935U (Samsung
>>>>>>>>                             Galaxy S7 Edge)
>>>>>>>>                             Use cases: Mobility
>>>>>>>>                             How we learned about OOR: Research
>>>>>>>>                             paper on multihoming protocols
>>>>>>>>
>>>>>>>>                             Please let me know if you need
>>>>>>>>                             anything else. Thanks so much!
>>>>>>>>
>>>>>>>>                             Best Regards,
>>>>>>>>                             Kevin Shen
>>>>>>>>                             Columbia University | Class of 2018
>>>>>>>>                             B.S. Candidate in Computer Science
>>>>>>>>
>>>>>>>>
>>>>>>>>                             _______________________________________________
>>>>>>>>                             Maintainers mailing list
>>>>>>>>                             Maintainers at mail.openoverlayrouter.org
>>>>>>>>                             <mailto:Maintainers at mail.openoverlayrouter.org>
>>>>>>>>                             http://mail.openoverlayrouter.org/cgi-bin/mailman/listinfo/maintainers
>>>>>>>>                             <http://mail.openoverlayrouter.org/cgi-bin/mailman/listinfo/maintainers>
>>>>>>>
>>>>>>>                         -- 
>>>>>>>                         Kevin Shen
>>>>>>>                         Columbia University | Class of 2018
>>>>>>>                         B.S. Candidate in Computer Science
>>>>>>
>>>>>>                         -
>>>>>>
>>>>>>                     -- 
>>>>>>                     Kevin Shen
>>>>>>                     Columbia University | Class of 2018
>>>>>>                     B.S. Candidate in Computer Science
>>>>>
>>>>>                 -- 
>>>>>                 Kevin Shen
>>>>>                 Columbia University | Class of 2018
>>>>>                 B.S. Candidate in Computer Science
>>>>
>>>>             -- 
>>>>             Kevin Shen
>>>>             Columbia University | Class of 2018
>>>>             B.S. Candidate in Computer Science
>>>
>>     -- 
>>     Kevin Shen
>>     Columbia University | Class of 2018
>>     B.S. Candidate in Computer Science
>
> -- 
> Kevin Shen
> Columbia University | Class of 2018
> B.S. Candidate in Computer Science

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openoverlayrouter.org/pipermail/devel/attachments/20170412/456db77e/attachment-0001.html>


More information about the devel mailing list