lwip-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [patch #9207] ip6/nd6 improvements


From: David van Moolenbroek
Subject: [lwip-devel] [patch #9207] ip6/nd6 improvements
Date: Tue, 3 Jan 2017 19:31:09 +0000 (UTC)
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0

URL:
  <http://savannah.nongnu.org/patch/?9207>

                 Summary: ip6/nd6 improvements
                 Project: lwIP - A Lightweight TCP/IP stack
            Submitted by: dcvmoole
            Submitted on: Tue 03 Jan 2017 07:31:07 PM GMT
                Category: IPv6
                Priority: 5 - Normal
                  Status: None
                 Privacy: Public
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
         Planned Release: None

    _______________________________________________________

Details:

This set of patches aims to improve the IPv6 support in lwIP; the Neighbor
Discovery implementation in particular. Many of the patches are implementing
or improving on required parts of RFCs with which lwIP aims to be compliant.
As part of this, several of the patches add extra comments to document of the
current state, including known but yet unresolved shortcomings. The attached
zip file (I hope that's okay - savannah only allows attaching four files it
seems) contains the following nine patches:

0001-nd6-improve-address-autoconfiguration-support: This patch, which is the
largest of the set, aims to resolve bug #47923 and bug #48162, by properly
decoupling on-link prefixes from address auto-configuration. The commit
message explains why this change requires the introduction of per-address
lifetimes and a new DUPLICATED address state.

0002-nd6-check-link-status-before-sending-packets: A small patch to change
link status in addition to interface status, bringing one aspect of the ND
implementation more in line with the rest of lwIP.

0003-nd6-fix-Duplicate-Address-Detection: Testing revealed that DAD is broken
for non-link-local addresses. This patch fixes that.

0004-netif-more-ip6-state-changes-invoke-status-callback: Applications that
keep shadow state per IPv6 address need to be aware of more state changes. I
am aware of task #14283, but I needed this now in order to allow proper
testing of my changes, and I imagine it might be useful for others as well.

0005-nd6-improve-router-selection: This patch was basically required for a
clean implementation of the next patch (0006) by altering the expectations for
nd6_find_route(), but ended up changing router selection for the better: netif
status is now considered when picking a router; invalid routers may now
actually be selected (as was the intention before); and, while round-robin
selection was only partially implemented (as I mentioned in the patch #8680
thread), it is now fully supported.

0006-ip6-nd6-route-using-on-link-prefixes-not-addresses: This patch implements
compliance with at least the most important aspects of RFC 5942. The change
was also suggested by Jan Breuer in the two bug threads mentioned earlier. In
short: on-link prefixes are now used for routing, while dynamically assigned
(= auto-configured) addresses no longer imply a local subnet. Statically
assigned (= manual) address assignments do keep working exactly as before,
though, as that is what anyone would expect.

0007-ip6-improve-source-address-selection: The current IPv6 source selection
algorithm does not support the DEPRECATED address state and takes a few too
many other shortcuts. This patch rewrites the algorithm to be much more in
accordance with RFCs 3484/6724.

0008-nd6-some-work-on-basic-RFC-4861-compliance: RFC 4861 has very clear and
required rules on basic message handling, but the implementation of those
rules was missing almost entirely. This patch makes a start and documents the
rest.

0009-nd6-cull-destination-cache-on-router-removal: I mentioned missing
destination cache invalidation in the patch #8680 thread; this patch adds
support for such (as it turns out, required) invalidation.

Even though the current lwIP IPv6 implementation is unfortunately still far
from standards compliant, I hope that these patches at least push it in the
right direction. The patches have been tested to the best of my abilities. As
always, feedback welcome etc..

(CC people associated with the previous bug reports, my apologies if this is
not interesting to you though!)



    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Tue 03 Jan 2017 07:31:07 PM GMT  Name: ip6-nd6-improvements.zip  Size:
25kB   By: dcvmoole

<http://savannah.nongnu.org/patch/download.php?file_id=39356>

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/patch/?9207>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]