Hi Martine,

I will change the interface and protocol IDs to `kernel_type_t` as you suggested. For the FIB handling perspective this seems also to be the best (and easiest) way to have the IDs unique on one RIOT/node.

> Shouldn't https://github.com/BytesGalore/RIOT/blob/add_fib/sys/net/include/fib/fib.h#L119 return the iface_id too?...
absolutely. It just slipped through somehow.

thx for your input.

Best regards,
Martin

On 14.11.2014 14:29, Martine Lenders wrote:
Hi Martin,
now that I'm in the refactoring of IPv6 I have some suggestions/considerations:

  * considering the current refactoring of the network stack to
    PID-based identification of a network layer / protocol shouldn't
    iface_id in
    
https://github.com/BytesGalore/RIOT/blob/add_fib/sys/net/include/fib/fib.h#L80
    et.al <http://et.al> be of type kernel_type_t?
    Interface IDs as with the current net_if module will still be
    available, since they are "useful waste" from my reworked ipv6_if
    implementation (they are the indices of the buffer array where I
    store the (mac_pid, IP addresses) tuples), but maybe we don't want
    to use those in the future publicly anymore.
    … On the other hand, if we find that a single-threaded network
    stack is superior to our current approach (part of my master
    thesis ;-)), we might have to rethink that again, hmmmm. Sorry,
    this bullet point is more loud thinking than suggesting ^^"
  * Shouldn't
    
https://github.com/BytesGalore/RIOT/blob/add_fib/sys/net/include/fib/fib.h#L119
    return the iface_id too? The IP layer needs to now which MAC layer
    it has to give the packet and this information is not encoded in
    the address.

If I find more, I'll let you know

Cheers,
Martine

2014-11-06 20:45 GMT+01:00 Thomas C. Schmidt <[email protected] <mailto:[email protected]>>:

    Hi Martine & Martin,

    following a personal discussion, the approach of multiple FIB
    tables (per IF / protocol) is off the table, now. There will and
    can be only one FIB.

    Important for the next steps are discussion and conclusion about a
    viable (internal) data structure for the FIB ... it seems there
    are trade-offs between memory and processing constraints. Marin
    shall present proposals for a thorough review discussion soon.

    Cheers,

    Thomas

    On 05.11.2014 15:10, Landsmann, Martin wrote:

        Hi all,

        I started a prototype implementation [1] under consideration
        of the
        diagram on the wiki page [2].
        - It provides a generic address handling and access
        - a basic FIB table management (add, remove, update)
        - collision detection for next_hops and resolving the conflict
        based on
        a preference table
        - reactive RP signalling using `msg_send_receive()`

        This prototype is not included between any RP and the
        `get_next_hop()`
        right now.

        Best regards,
        Martin

        [1] git pull https://github.com/BytesGalore/RIOT add_fib
        [2]
        
https://github.com/RIOT-OS/RIOT/wiki/Rough-sketch-of-a-possible-FIB-modularization


        On 04.11.2014 11:05, Martin wrote:

            Hi Martine,

            thx for the input :)

            > Are you planning to only consider stateless compression
            (Prefix is assumed link-local) or also stateful
            compression (Prefix is determined by a 4-bit context ID
            [1] ...

            I plan to make it more generic, e.g. allow for providing even
            proprietary "solutions" for FIB table entry compression.
            LOWPAN_IPHC
            provides wonderful mechanisms to save bytes in
            transmissions, but
            there are probably (most likely) more possibilities to
            save bytes on
            the individual nodes RAM when maintaining a FIB table.
            Eventually the FIB will "resolve" the applied compression
            to provide
            the type required by a `get_next_hop()` request.

            >... we might want to consider to put those information
            into the same data structure (so the later of my 2
            suggestions above would be)

            Indeed, that would by great. That's the reason I want to
            outsource the
            "Generic address" from the FIB table entry. These blobs
            can be shared
            among processes, e.g. FIB, routing protocol and ND.
            Liftime invalidation and such is controlled by the
            individual process.
            For instance, an expired FIB table entry would mark its
            internal
            structure as invalid and decrease the usecount of the
            "Generic address".

            > Also: have you considered Mesh-under routing [5]? (Do we
            have to consider this here I wonder myself? We don't have
            support for it anyways, so far.) [6] states some
            requirements for this.

            No, I only considered to "play" at the network layer level
            for now.
            But I will have a look.


            Best Regards,
            Martin

            Hi,
            I finally came to it to read your suggestions, too.
            Regarding the fact
            that you keep 6LoWPAN header compression in mind, too: Are you
            planning to only consider stateless compression (Prefix is
            assumed
            link-local) or also stateful compression (Prefix is
            determined by a
            4-bit context ID [1], disseminated through the PAN via the
            context
            identifier option in RS [2]). Since Neighbor Cache [3], Prefix
            Information [4], Forwarding information, and Context
            Information are
            all very related, and we may want to save memory, we might
            want to
            consider to put those information into the same data
            structure (so the
            later of my 2 suggestions above would be). Keep in mind
            though, that
            both Prefix Information Base and Context information Base
            have their
            own lifecycles (see regarding RFCs).

            Also: have you considered Mesh-under routing [5]? (Do we
            have to
            consider this here I wonder myself? We don't have support
            for it
            anyways, so far.) [6] states some requirements for this.

            Hope this was more helpful, than confusing ;-).

            Cheers,
            Martine

            [1] https://tools.ietf.org/html/rfc6282#section-3.1.2
            [2] https://tools.ietf.org/html/rfc6775#section-4.2
            [3] http://tools.ietf.org/html/rfc4861#section-5.1
            [4] https://tools.ietf.org/html/rfc4861#section-4.6.2
            [5] https://tools.ietf.org/html/rfc4944#section-11
            [6] http://tools.ietf.org/html/rfc6606


            _______________________________________________
            devel mailing list
            [email protected] <mailto:[email protected]>
            http://lists.riot-os.org/mailman/listinfo/devel



--
    Prof. Dr. Thomas C. Schmidt
    ° Hamburg University of Applied Sciences    Berliner Tor 7 °
    ° Dept. Informatik, Internet Technologies Group    20099 Hamburg,
    Germany °
    ° http://www.haw-hamburg.de/inet                  Fon:
    +49-40-42875-8452 <tel:%2B49-40-42875-8452> °
    ° http://www.informatik.haw-hamburg.de/~schmidt
    <http://www.informatik.haw-hamburg.de/%7Eschmidt>   Fax:
    +49-40-42875-8409 <tel:%2B49-40-42875-8409> °

    _______________________________________________
    devel mailing list
    [email protected] <mailto:[email protected]>
    http://lists.riot-os.org/mailman/listinfo/devel




_______________________________________________
devel mailing list
[email protected]
http://lists.riot-os.org/mailman/listinfo/devel

_______________________________________________
devel mailing list
[email protected]
http://lists.riot-os.org/mailman/listinfo/devel

Reply via email to