Skip to content

gnrc_nib: Initial import of a general information base for GNRC#5293

Closed
miri64 wants to merge 7 commits into
RIOT-OS:masterfrom
miri64:gnrc_nib/feat/init
Closed

gnrc_nib: Initial import of a general information base for GNRC#5293
miri64 wants to merge 7 commits into
RIOT-OS:masterfrom
miri64:gnrc_nib/feat/init

Conversation

@miri64

@miri64 miri64 commented Apr 11, 2016

Copy link
Copy Markdown
Member

Next step on the route to a new NDP.

Depends on #5269.

@miri64 miri64 added Area: network Area: Networking State: WIP State: The PR is still work-in-progress and its code is not in its final presentable form yet Type: new feature The issue requests / The PR implemements a new feature for RIOT State: waiting for other PR State: The PR requires another PR to be merged first GNRC labels Apr 11, 2016
@miri64 miri64 added this to the Release 2016.07 milestone Apr 11, 2016
@miri64 miri64 changed the title Gnrc nib/feat/init gnrc_nib: Initial import of a general information base for GNRC Apr 11, 2016
@OlegHahm

Copy link
Copy Markdown
Member

Can you give a little more information, about the purpose of this module? E.g. how many instances of gnrc_nib_entry_t do you expect to exist on a typical 6LoWPAN node? The struct lukes quiet huge.

@miri64

miri64 commented Apr 11, 2016

Copy link
Copy Markdown
Member Author

It's not much bigger than a neighbor cache entry (or probably smaller due to the extimer_event_ts instead of xtimer_t + msg_t). This module is to be targeted to replace the neighbor cache along with the prefix and default router list (as a list of gnrc_nib_entry_ts). Additional it introduces the destination cache which wasn't present in GNRC up until now.

@OlegHahm

Copy link
Copy Markdown
Member

Wow, haven't realized how huge the neighbor cache entries are. Thanks for the explanation anyway.

gnrc_ipv6_netif_t *iface; /**< the interface associated with this
* information */
ipv6_addr_t *prefix; /**< prefix or destination */
ipv6_addr_t *next_hop; /**< next hop to the destination */

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where are the actual IPv6 addresses stored?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In some central array, to avoid duplicate addresses.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about using universal_address_ts [1] for prefix and next_hop?
Using this container allows for sharing the stored address with the FIB and other modules.
However, it requires to use the provided functions for thread safety, and creating a new container with an address requires to iterate/search the current container entries.

[1] https://github.com/RIOT-OS/RIOT/blob/master/sys/include/universal_address.h#L63

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be honest I would like to merge the NIB and the FIB in the long term, since they are basically doing the same thing (except that the FIB is providing source routing too and the NIB in addition is containing link-layer and prefix list information). Since your FIB however had proven to be more of a GNRC thing (since other stack implementations come with their own FIB in most cases), I'm not sure if the universality universal_address_t is providing isn't too much overkill

@kYc0o

kYc0o commented Jul 22, 2016

Copy link
Copy Markdown
Contributor

This is a new feature and is waiting for other PR, so I think it won't make it for this release... postponing...

@kYc0o kYc0o modified the milestones: Release 2016.10, Release 2016.07 Jul 22, 2016
@miri64 miri64 added the State: archived State: The PR has been archived for possible future re-adaptation label Jul 28, 2016
@miri64

miri64 commented Jul 28, 2016

Copy link
Copy Markdown
Member Author

Considering #5704, I'm not sure I will continue the work on this PR the way I intended to, so I close it for now.

@miri64 miri64 closed this Jul 28, 2016
@miri64 miri64 deleted the gnrc_nib/feat/init branch July 28, 2016 13:26
@miri64 miri64 removed the State: archived State: The PR has been archived for possible future re-adaptation label Dec 6, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: network Area: Networking State: waiting for other PR State: The PR requires another PR to be merged first State: WIP State: The PR is still work-in-progress and its code is not in its final presentable form yet Type: new feature The issue requests / The PR implemements a new feature for RIOT

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants