lwip-commits
[Top][All Lists]
Advanced

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

[lwip-commits] [SCM] lwIP - A Lightweight TCPIP stack branch, master, up


From: Simon Goldschmidt
Subject: [lwip-commits] [SCM] lwIP - A Lightweight TCPIP stack branch, master, updated. master_at_STABLE-2_0_0-260-g3d80e51
Date: Fri, 3 Feb 2017 21:39:01 +0000 (UTC)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "lwIP - A Lightweight TCPIP stack".

The branch, master has been updated
       via  3d80e51b2a15638b1071ef3a409ad06e42f5a390 (commit)
       via  29ddfd1d719c21671f3f94f3e015d03ef6fe0c21 (commit)
      from  1839153609e1513186bb67e7a2b80fe074cecd5d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 3d80e51b2a15638b1071ef3a409ad06e42f5a390
Author: David van Moolenbroek <address@hidden>
Date:   Thu Jan 26 23:33:57 2017 +0000

    tcp: eliminate some redundant route lookups
    
    Now that tcp_connect() always determines the outgoing netif with a
    route lookup, we can compute the effective MSS without doing the same
    route lookup again. The outgoing netif is already known from one
    other location that computes the MSS, so we can eliminate a redundant
    route lookup there too. Reduce some macro clutter as a side effect.

commit 29ddfd1d719c21671f3f94f3e015d03ef6fe0c21
Author: David van Moolenbroek <address@hidden>
Date:   Mon Jan 23 23:04:39 2017 +0000

    Add support for IPv6 address scopes
    
    This patch adds full support for IPv6 address scopes, thereby aiming
    to be compliant with IPv6 standards in general and RFC 4007 in
    particular. The high-level summary is that link-local addresses are
    now meaningful only in the context of their own link, guaranteeing
    full isolation between links (and their addresses) in this respect.
    This isolation even allows multiple interfaces to have the same
    link-local addresses locally assigned.
    
    The implementation achieves this by extending the lwIP IPv6 address
    structure with a zone field that, for addresses that have a scope,
    carries the scope's zone in which that address has meaning. The zone
    maps to one or more interfaces. By default, lwIP uses a policy that
    provides a 1:1 mapping between links and interfaces, and considers
    all other addresses unscoped, corresponding to the default policy
    sketched in RFC 4007 Sec. 6. The implementation allows for replacing
    the default policy with a custom policy if desired, though.
    
    The lwIP core implementation has been changed to provide somewhat of
    a balance between correctness and efficiency on on side, and backward
    compatibility on the other. In particular, while the application would
    ideally always provide a zone for a scoped address, putting this in as
    a requirement would likely break many applications. Instead, the API
    accepts both "properly zoned" IPv6 addresses and addresses that, while
    scoped, "lack" a zone. lwIP will try to add a zone as soon as possible
    for efficiency reasons, in particular from TCP/UDP/RAW PCB bind and
    connect calls, but this may fail, and sendto calls may bypass that
    anyway. Ultimately, a zone is always added when an IP packet is sent
    when needed, because the link-layer lwIP code (and ND6 in particualar)
    requires that all addresses be properly zoned for correctness: for
    example, to provide isolation between links in the ND6 destination
    cache. All this applies to packet output only, because on packet
    input, all scoped addresses will be given a zone automatically.
    
    It is also worth remarking that on output, no attempt is made to stop
    outgoing packets with addresses for a zone not matching the outgoing
    interface. However, unless the application explicitly provides
    addresses that will result in such zone violations, the core API
    implementation (and the IPv6 routing algorithm in particular) itself
    will never take decisions that result in zone violations itself.
    
    This patch adds a new header file, ip6_zone.h, which contains comments
    that explain several implementation aspects in a bit more detail.
    
    For now, it is possible to disable scope support by changing the new
    LWIP_IPV6_SCOPES configuration option. For users of the core API, it
    is important to note that scoped addresses that are locally assigned
    to a netif must always have a zone set; the standard netif address
    assignment functions always do this on behalf of the caller, though.
    Also, core API users will want to enable LWIP_IPV6_SCOPES_DEBUG at
    least initially when upgrading, to ensure that all addresses are
    properly initialized.

-----------------------------------------------------------------------

Summary of changes:
 UPGRADING                        |   13 ++
 src/api/netdb.c                  |    1 +
 src/api/sockets.c                |    5 +-
 src/core/ipv6/ethip6.c           |    3 +
 src/core/ipv6/icmp6.c            |   87 +++++++++---
 src/core/ipv6/ip6.c              |  222 ++++++++++++++++++++++--------
 src/core/ipv6/ip6_addr.c         |    2 +
 src/core/ipv6/ip6_frag.c         |   28 +++-
 src/core/ipv6/mld6.c             |   53 ++++++--
 src/core/ipv6/nd6.c              |   76 +++++++----
 src/core/netif.c                 |   41 ++++--
 src/core/raw.c                   |   17 +++
 src/core/tcp.c                   |   48 +++++--
 src/core/tcp_out.c               |    2 +-
 src/core/udp.c                   |   35 +++--
 src/include/lwip/icmp6.h         |    2 +
 src/include/lwip/inet.h          |    7 +-
 src/include/lwip/ip6_addr.h      |   86 +++++++++---
 src/include/lwip/ip6_frag.h      |    4 +
 src/include/lwip/ip6_zone.h      |  278 ++++++++++++++++++++++++++++++++++++++
 src/include/lwip/ip_addr.h       |   20 ++-
 src/include/lwip/opt.h           |   19 +++
 src/include/lwip/priv/tcp_priv.h |   14 +-
 src/netif/lowpan6.c              |   13 +-
 24 files changed, 885 insertions(+), 191 deletions(-)
 create mode 100644 src/include/lwip/ip6_zone.h


hooks/post-receive
-- 
lwIP - A Lightweight TCPIP stack



reply via email to

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