<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hello Caroline,<br>
    <br>
    I hope you don't mind that I put this particular email back on the
    mailing list, because this might<br>
    be of interest to others, too.<br>
    <br>
    While it is possible to do some extra tinkering on the
    `gnrc_networking` example in order<br>
    to receive the udp payload in the application's thread, I rather
    would suggest to look into<br>
    the posix sockets that are now merged into master. An example usage
    can be found here [1].<br>
    <br>
    You have to adjust the Makefile of the example in [1] the following
    way:<br>
    * replace `gnrc_ipv6_default` with `gnrc_ipv6_router_default`<br>
    * add a new line `USEMODULE += gnrc_rpl`<br>
    <br>
    This should suffice to get rpl into this new example. (Martine,
    correct me if I am wrong).<br>
    <br>
    Best,<br>
    Cenk<br>
    <span style="color: rgb(51, 51, 51); font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.8px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: pre; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none; background-color: rgb(255, 255, 255);"></span><br>
    [1]
    <a class="moz-txt-link-freetext" href="https://github.com/RIOT-OS/RIOT/tree/master/examples/posix_sockets">https://github.com/RIOT-OS/RIOT/tree/master/examples/posix_sockets</a><br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 24.09.2015 15:33, QUEVA Caroline
      242137 wrote:<br>
    </div>
    <blockquote
cite="mid:74A9FC8776783847842D562366F4DDBA015B2649@EXDAG0-B2.intra.cea.fr"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <div style="direction: ltr;font-family: Tahoma;color:
        #000000;font-size: 10pt;">Thanks for the answer, it seems to
        solve my problem.<br>
        <br>
        Just another question, for now the udp server prints information
        from packet dump. Do you know how I can get the information in
        packet received (for example an integer) to print it or better
        to do calculations with it ?<br>
        <br>
        For desvirt, I just modified xml files to create my own topology
        and use vnet commands (in desvirt) to define and start my grid
        network.<br>
        Then I start my nodes with "make term PORT=grid1_1_7_aX" with
        grid1_1_7 the name of my xml file (in attachment) and X from 0
        to n (with n the number of total nodes).<br>
        I didn't hear about problem using desvirt with RIOT.<br>
        <div><br>
          <div class="BodyFragment"><font size="2"><span
                style="font-size:10pt;">
                <div class="PlainText">Caroline QUEVA<br>
                  Research Engineer at CEA-LIST<br>
                  DRT/LIST/DACLE/LIALP<br>
                  Laboratoire Infrastructures et Ateliers pour le
                  Logiciel sur Puces<br>
                  <br>
                  Commissariat à l’énergie atomique et aux énergies
                  alternatives<br>
                  MINATEC Campus | 17 rue des Martyrs | 38054 Grenoble
                  Cedex 9<br>
                </div>
              </span></font></div>
        </div>
        <div style="font-family: Times New Roman; color: #000000;
          font-size: 16px">
          <hr tabindex="-1">
          <div style="direction: ltr;" id="divRpF401810"><font
              face="Tahoma" color="#000000" size="2"><b>De :</b> Cenk
              Gündogan [<a class="moz-txt-link-abbreviated" href="mailto:cenk.guendogan@fu-berlin.de">cenk.guendogan@fu-berlin.de</a>]<br>
              <b>Envoyé :</b> jeudi 24 septembre 2015 15:19<br>
              <b>À :</b> QUEVA Caroline 242137<br>
              <b>Objet :</b> Re: [riot-users] Multihop Network<br>
            </font><br>
          </div>
          <div>Hey Caroline,<br>
            <br>
            I can guess:<br>
            Can you try using a global IPv6 address for the root node?<br>
            e.g. by executing: `ifconfig <interface_id>
            2001:db8::1` (or any other global IPv6 address you desire)
            in the shell of the root node.<br>
            You have to replace <interface_id> with the interface
            id you see when you type `ifconfig` without parameters.<br>
            <br>
            Rationale:<br>
            Dodag-IDs must be global IPv6 addresses or unique local IPv6
            addresses.<br>
            So using any address with a link-local prefix like `fe80...`
            will not work.<br>
            <br>
            So when starting the RPL dodag on the root, you use the
            global IPv6 address instead:<br>
            `rpl root 1 2001:db8::1`.<br>
            <br>
            I hope this solves the problem.<br>
            <br>
            By the way, you mentioned desvirt. Can I ask you how you are
            using desvirt?<br>
            Because AFAIK, desvirt is not able to run the RIOT native
            port right now.<br>
            I made a pull request here [1] and here [2]. Are you using
            any of these patches?<br>
            Would be interesting to know (:<br>
            <br>
            Best,<br>
            Cenk<br>
            <br>
            [1] <a moz-do-not-send="true" class="moz-txt-link-freetext"
              href="https://github.com/RIOT-OS/RIOT/pull/3908"
              target="_blank">
              https://github.com/RIOT-OS/RIOT/pull/3908</a><br>
            [2] <a moz-do-not-send="true" class="moz-txt-link-freetext"
              href="https://github.com/des-testbed/desvirt/pull/17"
              target="_blank">
              https://github.com/des-testbed/desvirt/pull/17</a><br>
            <br>
            <div class="moz-cite-prefix">On 24.09.2015 15:04, QUEVA
              Caroline 242137 wrote:<br>
            </div>
            <blockquote type="cite">
              <style id="owaParaStyle" type="text/css">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
BODY {direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;}P {margin-top:0;margin-bottom:0;}BODY {scrollbar-base-color:undefined;scrollbar-highlight-color:undefined;scrollbar-darkshadow-color:undefined;scrollbar-track-color:undefined;scrollbar-arrow-color:undefined}</style>
              <div style="direction:ltr; font-family:Tahoma;
                color:#000000; font-size:10pt">Hej Cenk,<br>
                <br>
                Thanks again for your answer,<br>
                <br>
                I updated my branch, I am currently on the last version
                of the master branch and it's still not working.<br>
                <br>
                To explain in more details, I created a network using
                desvirt tool with three nodes.<br>
                The first node is the dodag's root with the address
                fe80::8c6f:cdff:fe13:1 and runs the UDP server.<br>
                My second node is connected to the root, has the address
                fe80::8c6f:cdff:fe13:cb2a and can send message to the
                root via udp.<br>
                The third node is not connected to the root but it is
                connected to the second node, and should be able to send
                messages to the root via the second node.
                <br>
                <br>
                This is what I get on the third node :<br>
                <i>> fibroute<br>
                  fibroute<br>
                  Destination                             Flags  Next
                  Hop                                Flags 
                  Expires          Interface<br>
                  ::                                      0x0003
                  fe80::8c6f:cdff:fe13:cb2a               0x0003
                  98.4643706<br>
                  > udp send fe80::947d:6ff:fe40:1 8088 hello<br>
                  udp send fe80::947d:6ff:fe40:1 8088 hello<br>
                  Success: send 5 byte to [fe80::947d:6ff:fe40:1]:8088</i><br>
                <br>
                On the second node I have this :<br>
                <i>fibroute<br>
                  Destination                                       
                  Flags  Next Hop                                Flags 
                  Expires          Interface<br>
                  ::                                                    
                    0x0003 fe80::947d:6ff:fe40:b46d               
                  0x0003 74.4523616<br>
                  fe80::2878:adff:fe49:c384               0x0003
                  fe80::2878:adff:fe49:c384               0x0003
                  68.3986206</i><br>
                <br>
                On the root node I have this :<br>
                <i>> fibroute<br>
                  fibroute<br>
                  Destination                                     
                  Flags  Next Hop                                Flags 
                  Expires          Interface<br>
                  fe80::8c6f:cdff:fe13:cb2a                0x0003
                  fe80::8c6f:cdff:fe13:cb2a               0x0003
                  117.677536<br>
                  fe80::2878:adff:fe49:c384               0x0003
                  fe80::8c6f:cdff:fe13:cb2a               0x0003
                  112.132266</i><br>
                And no packet is dumped as expected...<br>
                <br>
                Do you know what's wrong ?<br>
                <br>
                Best,<br>
                Caroline<br>
                <br>
                <div><span id="spnFrom" class="rwRRO"
                    title="cenk.guendogan@fu-berlin.de"></span>
                  <div class="BodyFragment"><font size="2"><span
                        style="font-size:10pt">
                        <div class="PlainText">Caroline QUEVA<br>
                          Research Engineer at CEA-LIST<br>
                          DRT/LIST/DACLE/LIALP<br>
                          Laboratoire Infrastructures et Ateliers pour
                          le Logiciel sur Puces<br>
                          <br>
                          Commissariat à l’énergie atomique et aux
                          énergies alternatives<br>
                          MINATEC Campus | 17 rue des Martyrs | 38054
                          Grenoble Cedex 9<br>
                        </div>
                      </span></font></div>
                </div>
                <div style="font-family:Times New Roman; color:#000000;
                  font-size:16px">
                  <hr tabindex="-1">
                  <div id="divRpF300928" style="direction:ltr"><font
                      face="Tahoma" color="#000000" size="2"><b>De :</b>
                      users [<a moz-do-not-send="true"
                        class="moz-txt-link-abbreviated"
                        href="mailto:users-bounces@riot-os.org"
                        target="_blank">users-bounces@riot-os.org</a>]
                      de la part de Cenk Gündogan [<a
                        moz-do-not-send="true"
                        class="moz-txt-link-abbreviated"
                        href="mailto:cenk.guendogan@fu-berlin.de"
                        target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:cenk.guendogan@fu-berlin.de">cenk.guendogan@fu-berlin.de</a></a>]<br>
                      <b>Envoyé :</b> jeudi 24 septembre 2015 11:17<br>
                      <b>À :</b> <a moz-do-not-send="true"
                        class="moz-txt-link-abbreviated"
                        href="mailto:users@riot-os.org" target="_blank">
                        users@riot-os.org</a><br>
                      <b>Objet :</b> Re: [riot-users] Multihop Network<br>
                    </font><br>
                  </div>
                  <div>Hey Caroline,<br>
                    <br>
                    <blockquote type="cite">
                      <div style="direction:ltr; font-family:Tahoma;
                        color:#000000; font-size:10pt">Thanks a lot for
                        your information, it's very helpful.<br>
                      </div>
                    </blockquote>
                    You're welcome! I am happy to help.<br>
                    <br>
                    There was a bug in the RPL implementation some days
                    ago that resulted in wrong entries in the FIB table.<br>
                    However, this should be fixed in the current master
                    branch of RIOT. In case you haven't tried it
                    already:<br>
                    could you rebase/update your branch?<br>
                    <br>
                    If this doesn't fix the multi-hop communication
                    problem, then I would be interested in the output of
                    your fib table. You can dump the fib entries by
                    issueing the command `fibroutes` in your RIOT shell.<br>
                    (To reduce noise on the mailing list, you can send
                    the dump directly to me)<br>
                    <br>
                    Let me know if you have further questions/feedback.<br>
                    <br>
                    Best,<br>
                    Cenk<br>
                    <br>
                    <blockquote type="cite">
                      <div style="direction:ltr; font-family:Tahoma;
                        color:#000000; font-size:10pt"><br>
                        I tried to follow the process using rpl for
                        routing and udp to send messages but I don't
                        manage to send messages via multihop. I can send
                        a message to the udp server with single hop but
                        as soon as multihop is necessary to reach the
                        udp server, the message is not received.<br>
                        When I check the rpl dodag, everything is fine,
                        nodes have the right parent in the parent
                        list...<br>
                        Do you have any idea what's could be wrong ?<br>
                        <br>
                        Thanks for your help !<br>
                        <div><br>
                          <div class="BodyFragment"><font size="2"><span
                                style="font-size:10pt">
                                <div class="PlainText">Caroline QUEVA<br>
                                  Research Engineer at CEA-LIST<br>
                                  DRT/LIST/DACLE/LIALP<br>
                                  Laboratoire Infrastructures et
                                  Ateliers pour le Logiciel sur Puces<br>
                                  <br>
                                  Commissariat à l’énergie atomique et
                                  aux énergies alternatives<br>
                                  MINATEC Campus | 17 rue des Martyrs |
                                  38054 Grenoble Cedex 9<br>
                                </div>
                              </span></font></div>
                        </div>
                        <div style="font-family:Times New Roman;
                          color:#000000; font-size:16px">
                          <hr tabindex="-1">
                          <div id="divRpF864699" style="direction:ltr"><font
                              face="Tahoma" color="#000000" size="2"><b>De
                                :</b> users [<a moz-do-not-send="true"
                                class="moz-txt-link-abbreviated"
                                href="mailto:users-bounces@riot-os.org"
                                target="_blank">users-bounces@riot-os.org</a>]
                              de la part de Cenk Gündogan [<a
                                moz-do-not-send="true"
                                class="moz-txt-link-abbreviated"
                                href="mailto:cenk.guendogan@fu-berlin.de"
                                target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:cenk.guendogan@fu-berlin.de">cenk.guendogan@fu-berlin.de</a></a>]<br>
                              <b>Envoyé :</b> lundi 21 septembre 2015
                              15:30<br>
                              <b>À :</b> <a moz-do-not-send="true"
                                class="moz-txt-link-abbreviated"
                                href="mailto:users@riot-os.org"
                                target="_blank">
                                users@riot-os.org</a><br>
                              <b>Objet :</b> Re: [riot-users] Multihop
                              Network<br>
                            </font><br>
                          </div>
                          <div>Hey Santiago,<br>
                            <blockquote type="cite">
                              <div style="font-family:times new
                                roman,new york,times,serif;
                                font-size:12pt; color:#000000">
                                <div style="">I am quite new in this
                                  brave new world of IOT. Sorry if the
                                  question then is maybe trivial.
                                  <br>
                                </div>
                              </div>
                            </blockquote>
                            All questions regarding IoT and RIOT are
                            welcome on this mailing list (:<br>
                            <br>
                            You are right, `desvirt` is suitable for
                            creating virtualized networks and is a great
                            tool to test your<br>
                            application in a controlled environment.<br>
                            If you want to deploy your app on real
                            hardware though, `desvirt` will not help you
                            here.<br>
                            <br>
                            If you want to communicate over multiple
                            hops, then you need to configure routes so
                            that your nodes<br>
                            know in which direction incoming traffic
                            must flow.<br>
                            These routes can be configured either
                            statically by using the `fibroute` command
                            from within the RIOT shell, or by using a
                            routing protocol that configures the routes
                            dynamically.<br>
                            <br>
                            Let's try both ways:<br>
                            <br>
                            Pre:<br>
                            You can start an experiment from the IoT-Lab
                            website or directly from the command line
                            via a Makefile that we provide in
                            `RIOTBASE/dist/testbed-support/Makefile.iotlab`.<br>
                            From within the `gnrc_networking` example
                            folder in RIOT you can call:<br>
                            <br>
                            `IOTLAB_USER=user_name IOTLAB_PHY_NODES=1-10
                            IOTLAB_EXP_NAME=multihop_test
                            IOTLAB_DURATION=30 BOARD=iotlab-m3 make
                            iotlab-exp -I ../../dist/testbed-support`<br>
                            <br>
                            user_name must be replaced by your login
                            account for the IoT-Lab Testbed.<br>
                            With IOTLAB_PHY_NODES you can specify the
                            nodes you want to use for your experiment.
                            You can also choose single nodes that are
                            further apart like this:
                            IOTLAB_PHY_NODES=1-3+7-10+15<br>
                            IOTLAB_DURATION=30 <-- this is the
                            duration of the experiment in minutes<br>
                            <br>
                            Assuming the experiment started
                            successfully, you can then communicate with
                            the nodes directly from the command line
                            like this:<br>
                            `IOTLAB_USER=user_name BOARD=iotlab-m3 make
                            iotlab-term -I ../../dist/testbed-support`<br>
                            <br>
                            This command may prompt you for a password
                            if your SSH key that you uploaded to the
                            IoT-Lab testbed for SSH usage is password
                            protected.<br>
                            <br>
                            Once you are connected, the serial
                            aggregator of the iot-lab testbed will be
                            started and you have a console<br>
                            from where you can control every node.<br>
                            <br>
                            For the following I assume you have an
                            experiment with nodes 1 + 5 + 10 and the
                            `gnrc_networking` example flashed on every
                            node.<br>
                            <br>
                            Static routing:<br>
                            1) configure a global IPv6 address for every
                            node like this:<br>
                                m3-1;ifconfig 7 add dead:beef::1 (or any
                            other ipv6 address you desire)<br>
                                m3-5;ifconfig 7 add dead:beef::5<br>
                                m3-10;ifconfig 7 add dead:beef::10<br>
                            2) configure static routes:<br>
                                m3-1;fibroute add dead:beef::5 via
                            fe80::x_5<br>
                                m3-1;fibroute add dead:beef::10 via
                            fe80::x_5<br>
                                m3-5;fibroute add :: via fe80::x_1<br>
                                m3-5;fibroute add dead:beef::10 via
                            fe80::x_10<br>
                                m3-10;fibroute add :: via fe80::x_5<br>
                            <br>
                            you have to look up the link local addresses
                            (fe80::x_1,5,10) via the `m3-x;ifconfig`
                            command.<br>
                            Now you can start e.g. a udp server on all
                            nodes with this single command `udp start
                            server 8888`.<br>
                            <br>
                            To communicate e.g. from node m1 over node
                            m5 to node m10 you can then do:<br>
                            `m3-1;udp send dead:beef::10 8888 hello`. Et
                            voilà, multi hop communication with static
                            routes.<br>
                            <br>
                            To save most of the preconfiguration needed
                            for multi-hop communication, you can use a
                            routing protocol.<br>
                            Currently, you can only use RPL, but we also
                            have an AODVV2 implementation, which is
                            mostly done porting to the new network stack
                            (AFAIK, correct me if I'm wrong).<br>
                            <br>
                            Starting from a running experiment with the
                            same preconditions as above (just execute
                            `reboot` to bring the nodes back to the
                            initial state):<br>
                            1) configure a global IPv6 address for the
                            root node of RPL<br>
                                m3-1;ifconfig 7 add dead:beef::1<br>
                            2) initialize RPL on interface 7 for all
                            nodes<br>
                                rpl init 7<br>
                            3) start a RPL DODAG with m3-1 as root node
                            and an instance id of 1<br>
                                m3-1;rpl root 1 dead:beef::1<br>
                            <br>
                            Within a couple of seconds, all nodes should
                            have correctly configured routes and you
                            should be able to ping or send udp packets
                            from one node to any other node that
                            participates in the RPL dodag.<br>
                            You can check the RPL state of a node by
                            issueing the `rpl` command, e.g. `m3-1;rpl`.<br>
                            <br>
                            Let me know if you have further questions (:<br>
                            <br>
                            Best,<br>
                            Cenk<br>
                            <br>
                            <br>
                            <br>
                            <div class="moz-cite-prefix">On 21.09.2015
                              12:20, Santiago Bragagnolo wrote:<br>
                            </div>
                            <blockquote type="cite">
                              <div style="font-family:times new
                                roman,new york,times,serif;
                                font-size:12pt; color:#000000">
                                <div><span style="">Hi all! </span></div>
                                <div style=""><br>
                                </div>
                                <div style="">I am quite new in this
                                  brave new world of IOT. Sorry if the
                                  question then is maybe trivial. </div>
                                <div style=""><br>
                                </div>
                                <div style="">I am looking for a
                                  solution for sending a packet from a
                                  node to an other through an other node
                                  using a wireless radio connection. For
                                  this I'am using iot-lab platform
                                  (iot-lab.info), working strictly with
                                  M3 cortex based nodes. </div>
                                <div style=""><br>
                                </div>
                                <div style="">These nodes of course will
                                  not be in direct range, and that is
                                  why i need a multihop network. </div>
                                <div style=""><br>
                                </div>
                                <div style="">Then my question is how to
                                  build up a network in between
                                  different IOT nodes and finally being
                                  able to send packets. </div>
                                <div style=""><br>
                                </div>
                                <div style="">I already tried searching
                                  in google and in the documentation,
                                  and the best link I arrived is the
                                  following :</div>
                                <div style=""><span class="Object"
                                    id="OBJ_PREFIX_DWT295_com_zimbra_url"
                                    style="color:#336699"><span
                                      class="Object"
                                      id="OBJ_PREFIX_DWT297_com_zimbra_url"
                                      style=""><a moz-do-not-send="true"
                                        class="moz-txt-link-freetext"
                                        href="https://github.com/RIOT-OS/RIOT/wiki/Virtual-riot-network"
                                        target="_blank">https://github.com/RIOT-OS/RIOT/wiki/Virtual-riot-network</a></span></span></div>
                                <div style=""><br>
                                </div>
                                <div style="">from the following
                                  conversation: </div>
                                <div style=""><span class="Object"
                                    id="OBJ_PREFIX_DWT296_com_zimbra_url"
                                    style="color:#336699"><span
                                      class="Object"
                                      id="OBJ_PREFIX_DWT298_com_zimbra_url"
                                      style=""><a moz-do-not-send="true"
                                        class="moz-txt-link-freetext"
                                        href="https://lists.riot-os.org/pipermail/users/2015-July/000389.html"
                                        target="_blank">https://lists.riot-os.org/pipermail/users/2015-July/000389.html</a></span></span></div>
                                <div style=""><br>
                                </div>
                                <div style="">I understand that desvirt
                                  creates a virtual network for me, but
                                  i cannot arrive to understand how to
                                  deploy that into a real set of nodes,
                                  since it looks more as a simulation
                                  than to a real deployment. </div>
                                <div style=""><br>
                                </div>
                                <div style="">If any one can give me a
                                  better clue about how to solve this
                                  problem it would be great. </div>
                                <div style=""><br>
                                </div>
                                <div style=""><br>
                                </div>
                                <div style="">Thank you very much! </div>
                                <div style=""><br>
                                </div>
                                <div style="">Santiago.</div>
                                <div><br>
                                </div>
                              </div>
                              <br>
                              <fieldset class="mimeAttachmentHeader"
                                target="_blank"></fieldset>
                              <br>
                              <pre>_______________________________________________
users mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:users@riot-os.org" target="_blank">users@riot-os.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.riot-os.org/mailman/listinfo/users" target="_blank">http://lists.riot-os.org/mailman/listinfo/users</a>
</pre>
                            </blockquote>
                            <br>
                          </div>
                        </div>
                      </div>
                      <br>
                      <fieldset class="mimeAttachmentHeader"
                        target="_blank"></fieldset>
                      <br>
                      <pre>_______________________________________________
users mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:users@riot-os.org" target="_blank">users@riot-os.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.riot-os.org/mailman/listinfo/users" target="_blank">http://lists.riot-os.org/mailman/listinfo/users</a>
</pre>
                    </blockquote>
                    <br>
                  </div>
                </div>
              </div>
            </blockquote>
            <br>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>