<p><b>@benpicco</b> commented on this pull request.</p>

<p>I don't know much about the details here, but as nobody else has looked into this PR yet, I thought I'll give it a try.</p>
<p>Just tested this with <code>examples/gnrc_networking</code> and <code>radvd</code> on a raspberry pi, where it prints:</p>
<pre><code>2019-09-11 19:39:50,148 - INFO #  nib abr
2019-09-11 19:39:50,151 - INFO # fd00:1:2:3:a:b:c:d v0 expires 65394min
</code></pre>
<p>(Really, 45 days?)</p>
<p>When I do <code>nib abr del fd00:1:2:3:a:b:c:d</code>, the address immediately shows up again afterwards, <del>but I guess this is to be expected as the advertisement is still going on.</del><br>
It still shows up after <code>nib abr del</code> when I shutdown the raspi too.</p>
<p>This adds 536 bytes of ROM on samr21-xpro with <code>examples/gnrc_networking</code>.</p>
<p>Code looks good, just noticed a minor thing where you have the <code>#ifdef</code> logic reversed and print the wrong usage output.</p>
<p>Oh, and Travis thinks you should clean up a coccinelle warning in <code>sc_gnrc_ipv6_nib.c</code> when you are touching that file.</p><hr>

<p>In <a href="https://github.com/RIOT-OS/RIOT/pull/10951#discussion_r323368984">sys/shell/commands/sc_gnrc_ipv6_nib.c</a>:</p>
<pre style='color:#555'>> @@ -49,7 +57,11 @@ int _gnrc_ipv6_nib(int argc, char **argv)
 
 static void _usage(char **argv)
 {
+#if GNRC_IPV6_NIB_CONF_MULTIHOP_P6C
     printf("usage: %s {neigh|prefix|route|help} ...\n", argv[0]);
</pre>
<p>This case and the <code>#else</code> case should be swapped.</p>

<hr>

<p>In <a href="https://github.com/RIOT-OS/RIOT/pull/10951#discussion_r323374818">sys/net/gnrc/network_layer/ipv6/nib/nib_abr.c</a>:</p>
<pre style='color:#555'>> @@ -50,8 +55,39 @@ void gnrc_ipv6_nib_abr_del(const ipv6_addr_t *addr)
     _nib_abr_remove(addr);
     mutex_unlock(&_nib_mutex);
 }
+#endif  /* GNRC_IPV6_NIB_CONF_6LBR */
+
+bool gnrc_ipv6_nib_abr_iter(void **state, gnrc_ipv6_nib_abr_t *entry)
+{
+    _nib_abr_entry_t *abr = *state;
+
+    mutex_lock(&_nib_mutex);
+    while ((abr = _nib_abr_iter(abr)) != NULL) {
+        if (!ipv6_addr_is_unspecified(&abr->addr)) {
+            memcpy(&entry->addr, &abr->addr, sizeof(abr->addr));
</pre>
⬇️ Suggested change
<pre style="color: #555">-            memcpy(&entry->addr, &abr->addr, sizeof(abr->addr));
+            memcpy(&entry->addr, &abr->addr, sizeof(entry->addr));
</pre>

<p>just to be save ;)</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/RIOT-OS/RIOT/pull/10951?email_source=notifications&email_token=ABE7WYCMWVEBAHOHJKBCNFTQJEX57A5CNFSM4GUNPCB2YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCENJRXQ#pullrequestreview-286955742">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABE7WYFMO3UT2UKXKKGUJBTQJEX57ANCNFSM4GUNPCBQ">mute the thread</a>.<img src="https://github.com/notifications/beacon/ABE7WYCERSNRXTH5AV74OU3QJEX57A5CNFSM4GUNPCB2YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCENJRXQ.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/RIOT-OS/RIOT/pull/10951?email_source=notifications\u0026email_token=ABE7WYCMWVEBAHOHJKBCNFTQJEX57A5CNFSM4GUNPCB2YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCENJRXQ#pullrequestreview-286955742",
"url": "https://github.com/RIOT-OS/RIOT/pull/10951?email_source=notifications\u0026email_token=ABE7WYCMWVEBAHOHJKBCNFTQJEX57A5CNFSM4GUNPCB2YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCENJRXQ#pullrequestreview-286955742",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>