sg
60cd25c6a1
Moved nd6 implementation details to new file nd6_priv.h (possible after David's cleanups)
2016-12-14 21:04:53 +01:00
sg
4c16ea920c
Minor: nd6_packet_send_check() -> nd6_get_next_hop_addr_or_queue() (too long, but a little more self-explaining); cosmetics...
2016-12-14 20:52:44 +01:00
David van Moolenbroek
69a7039f75
nd6: centralize link-local packet send decision
...
Previously, ethip6 and lowpan6 each had their own copy of code that
used internal nd6 data structures to decide whether to send a packet
on the local link right away, or queue it while nd6 performed local
address resolution. This patch moves that code into nd6, thereby
eliminating all remaining cases of external access to internal nd6
data structures, as well as the need to expose two specific nd6
functions.
As a side effect, the patch effectively fixes two bugs in the lowpan6
code that were already fixed in the ethip6 code.
2016-12-14 20:19:50 +01:00
David van Moolenbroek
06ff89cbe4
nd6: use default_router_list internally only
...
This patch rearranges the code division between nd6.c and ip6.c such
that the latter does not need to access ND6-internal data structures
(specifically, "default_router_list") directly anymore.
2016-12-14 20:16:38 +01:00
David van Moolenbroek
cee59ba8cd
nd6: add nd6_clear_destination_cache() function
...
The new function, while currently not used internally, allows external
code to clear the ND destination cache in the case that it may have
become inconsistent with the current situation, for example as the
result of a change of locally assigned addresses, or a change in
routing tables implemented through the LWIP_HOOK_ND6_GET_GW hook.
2016-12-14 20:12:40 +01:00
goldsimon
d4fad5929c
nd6_input(): allow using NA without lladdr_opt for DAD
2016-12-14 13:11:13 +01:00
David van Moolenbroek
7d119fd86b
nd6: add LWIP_HOOK_ND6_GET_GW hook
2016-12-14 08:36:57 +01:00
Dirk Ziegelmeier
e3a9f01fe4
Implement task #14180 : IPv6 code should not reuse ip6_current_dest_addr() as temporary storage
2016-10-12 21:41:02 +02:00
Dirk Ziegelmeier
13fb616bb2
Cleanup hton*/ntoh* function handling and platform abstraction
...
Let lwip use functions/macros prefixed by lwip_ internally to avoid naming clashes with external #includes.
Remove over-complicated #define handling in def.h
Make functions easier to override in cc.h. The following is sufficient now (no more LWIP_PLATFORM_BYTESWAP):
#define lwip_htons(x) <your_htons>
#define lwip_htonl(x) <your_htonl>
2016-10-06 12:55:57 +02:00
Dirk Ziegelmeier
bef7873042
ND6: Always set neighbor_cache.state together with counter value to avoid inconsistency
2016-10-04 13:59:05 +02:00
Dirk Ziegelmeier
ee27daffc4
Fix bug #48876 : nd6: timers should be in ticks, not ms
...
delay_time and stale_time are ticks now.
reachable_time and invalidation_timer are untouched since they may originate from telegram values -> not converting them to ticks avoids an integer division
2016-10-04 13:30:23 +02:00
Daniel Elstner
2f085aa441
ND6: Join/leave groups directly on the netif
2016-09-26 11:44:00 +02:00
Daniel Elstner
22907c7b27
bug #74921 : check prefix_length, not length
2016-09-19 18:38:05 +02:00
Dirk Ziegelmeier
2137f49d32
Fix usage of uninitialized data in nd6.c because of unchecked pbuf_copy_partial() return value
2016-08-30 21:20:58 +02:00
goldsimon
89aa4e7d79
fixed bug #47921 : link-local prefix in router advertisement must not be processes for SLAAC (patch by abhishek ambure)
2016-08-25 14:21:30 +02:00
goldsimon
298ec340e5
set netif IPv6 address & state via function to implement change triggers (task #13517 )
2016-08-24 09:19:53 +02:00
goldsimon
e4c74109cd
fixed bug #47652 : there is always a delay to send the first Neighbor Solicitation for the new add INCOMPLETE state neighbor entry
2016-08-23 15:50:48 +02:00
sg
43d6812b3e
IPv6 addr: clarify tentative count/LWIP_IPV6_DUP_DETECT_ATTEMPTS
2016-08-18 22:02:57 +02:00
Dirk Ziegelmeier
2d503f4433
Work on bug #48728 : headers should cleanly separate API vs. implementation
...
ICMP6
2016-08-18 20:52:00 +02:00
Dirk Ziegelmeier
8d68400387
Work on bug #48728 : headers should cleanly separate API vs. implementation
...
ND6
2016-08-18 20:28:03 +02:00
goldsimon
bf3e8e6a48
minor coding style fixes in IPv6 code
2016-08-11 09:23:43 +02:00
sg
5f774270b6
minor: tabs -> spaces
2016-08-03 21:25:32 +02:00
goldsimon
14ca418ac0
minor: coding style fixes
2016-07-05 07:36:51 +02:00
Dirk Ziegelmeier
8dc77ef558
doxygen updates - include IPv6 in documentation. Exclude include/netif/ppp/polarssl.
...
Convert TODO -> @todo
2016-06-22 20:18:23 +02:00
Erik Ekman
d98e25a783
nd6: Handle incorrect ICMP option length in RA
...
Make sure ICMPv6 options have a valid length before
parsing them.
Found with afl-fuzz.
2016-06-14 15:06:49 +02:00
goldsimon
bd177ff38f
added comment, fixed coding style
2016-05-23 09:47:14 +02:00
Jan Breuer
ac21a5f370
nd6: add cleanup function
2016-05-23 09:44:27 +02:00
goldsimon
c981b726f8
fixed bug #47601 (wrong NS request at DAD)
2016-04-27 10:19:13 +02:00
sg
f5fef6eebc
fixed bug #45353 : IPv6 router / neighbor relationship is not always consistent - patch by Stian Sebastian Skjelstad
2016-03-06 14:48:41 +01:00
Axel Lin
a709041b8b
Remove unnecessary p->len checking for pbuf_alloc calls with PBUF_RAM type
...
pbuf_alloc() for PBUF_RAM type always return big enough memory on success.
So checking p->len is not necessary. Testing if p is NULL or not is enough.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
2015-12-05 21:21:59 +01:00
goldsimon
b401f42520
minor: fixed coding style (lwip style)
2015-10-07 10:03:12 +02:00
sg
2b971400fa
minor: coding style
2015-10-06 21:57:40 +02:00
sg
db76671d4d
task #13729 : Convert netif addresses (IPv4 & IPv6) to ip_addr_t (so they can be used without conversion/temporary storage)
2015-09-23 22:09:37 +02:00
Stian Sebastian Skjelstad
aea87a9a2f
Forget addresses set up by SLAAC when prefix expires.
2015-09-02 13:12:52 -06:00
sg
aa0e41c389
task #12178 : hardware checksum capabilities can be configured per netif (use NETIF_SET_CHECKSUM_CTRL() in your netif's init function)
2015-09-01 22:04:15 +02:00
sg
94550682d7
more cleanup prework to fix bug #45029
2015-08-24 22:46:34 +02:00
goldsimon
8622af77c1
nd6: adapt to constness of IP6_ADDR_ANY6 for IPv6-only configuration
2015-08-20 16:35:49 +02:00
Ivan Delamer
2c79332de7
Only send RS messages if we have a LL address in some state other than
...
invalid.
2015-05-05 13:05:41 -06:00
Ivan Delamer
2aec025e16
Bug fix: properly use unspecified source address for router solicitation
...
if needed.
2015-05-05 13:00:17 -06:00
goldsimon
e60bc69515
added more missing casts
2015-04-23 07:24:45 +02:00
sg
ce7e31cd04
task #12722 (improve IPv4/v6 address handling): renamed ip_addr_t to ip4_addr_t, renamed ipX_addr_t to ip_addr_t and added IP version;
...
ip_addr_t is used for all generic IP addresses for the API, ip(4/6)_addr_t are only used internally or when initializing netifs or when calling version-related functions
2015-04-09 22:21:15 +02:00
Sylvain Rochet
f7a5b71dba
nd6: fixed compiler warnings
...
nd6.c: In function ‘nd6_send_rs’:
nd6.c:997:52: warning: suggest parentheses around ‘+’ inside ‘<<’ [-Wparentheses]
p = pbuf_alloc(PBUF_IP, sizeof(struct rs_header) + lladdr_opt_len << 3, PBUF_RAM);
^
nd6.c:998:58: warning: suggest parentheses around ‘+’ inside ‘<<’ [-Wparentheses]
if ((p == NULL) || (p->len < (sizeof(struct rs_header) + lladdr_opt_len << 3))) {
2015-03-20 20:11:59 +01:00
Ivan Delamer
a4d14fc987
fix bug #44586 : nd6_send_rs() pbuf size error
2015-03-20 09:04:22 -06:00
Ivan Delamer
bc08c1d2b7
fixed bug #43095 . Check actual link-layer address option length, versus
...
maximum length defined in struct. Bug would express itself if we have a
netif with 8-byte addresses and other netifs with 6-byte-or-less
addresses.
2015-03-18 13:21:39 -06:00
Ivan Delamer
8451feaa7a
fixed bug #42885 nd6_reachability_hint() accepts an address of an
...
unknown neighbour
2015-03-18 12:22:49 -06:00
Ivan Delamer
12e3b52f4d
fixed bug #39226 : Validity of netif IPv6 address is not always checked
2015-03-18 11:56:48 -06:00
sg
f385193a89
Patch #8207 (Don't Use ND6 Prefix Flags Field When LWIP_IPV6_AUTOCONFIG Is Deasserted)
2015-03-06 21:03:21 +01:00
Philip Gladstone
ff078920bc
Patch #8360 (Speed up the acquisition of SLAAC addresses) - adapted to bug #43784
2015-03-06 20:58:30 +01:00
sg
72dcdb7655
fixed bug #43784 (a host should send at least one Router Solicitation)
2015-03-04 21:21:49 +01:00
sg
90a0590de1
patch by Zach Smith: fixed bug #38153 (nd6_input() byte order issues)
2015-03-04 20:49:02 +01:00