#
dbc16e67 |
|
14-Jun-2018 |
Simon Goldschmidt <goldsimon@gmx.de> |
minor whitespace cleanup
|
#
6ac21515 |
|
14-Jun-2018 |
Matthias Hofmann <matthias.hofmann@diehl.com> |
Add missing null checks. Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
|
#
944f286d |
|
13-Jun-2018 |
Simon Goldschmidt <goldsimon@gmx.de> |
fix bug in RA MTU validation Also fix that RA could change IPv4 MTU. See bug #53696 Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
|
#
61e3f49f |
|
13-Jun-2018 |
Axel Lin <axel.lin@ingics.com> |
netif: Don't return error if pass NULL netif_input_fn to netif_add The new NULL checking against netif_input_fn make ppp stop working because in ppp_new() it calls netif_add with NULL netif_input_fn. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
|
#
392c676e |
|
13-Jun-2018 |
Simon Goldschmidt <goldsimon@gmx.de> |
fix bug #53273: IPv6 link-local address generation for non-ethernet type netif does not convert byte order
|
#
342d0ead |
|
12-Jun-2018 |
Matthias Hofmann <matthias.hofmann@diehl.com> |
Add null pointer checks for TCP, UDP and netif Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
|
#
fd050b8a |
|
08-Jun-2018 |
Simon Goldschmidt <goldsimon@gmx.de> |
fix bug #53971 Lwip sends Router Solicitation on address changes ... and add a unit test for it. Moved resetting netif->rs_count from all reports to link-up and netif-up only. While at it, clean up the interface a bit so that netif->rs_count is touched from nd6.c only. Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
|
#
ffaee59f |
|
27-Apr-2018 |
Joel Cunningham <joel.cunningham@me.com> |
loopif: only schedule poll when first packet is enqueued This optimizes the netif_loop_output to only schedule a call to poll when the first packet is enqueued. This ensures netif_poll is ran once per burst of packets that are sent (which is typical in a TCP transfer) The old behavior scheduled a call to poll for every packet that was enqueued and this lead to exhaustion of the MEMP_TCPIP_MSG_API memory pool and tcpip_mbox (if port is using static mbox size). The extra callbacks are wasted work because netif_poll drains the entire queue when ran This issue presented itself when large TCP transfer go across the loopback netif
|
#
070e4496 |
|
27-Apr-2018 |
Joel Cunningham <joel.cunningham@me.com> |
loopif: disable checksums This disable checksum generation and checking for the loopback netif when LWIP_CHECKSUM_CTRL_PER_NETIF is enabled Checksums are not needed for the loopback adapter and this will increase performance for loopback communication
|
#
c881c48e |
|
21-Mar-2018 |
goldsimon <goldsimon@gmx.de> |
netif_add: check that the new netif is not already added
|
#
6070a7ef |
|
14-Mar-2018 |
Axel Lin <axel.lin@ingics.com> |
netif: Add netif_do_ip_addr_changed function to reduce duplicated code As the common code to call tcp/udp/raw_netif_ip_addr_changed is called by multiple places, add netif_do_ip_addr_changed() to call them. Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Simon Goldschmidt <goldsimon@gmx.de>
|
#
08bcfa2b |
|
13-Mar-2018 |
goldsimon <goldsimon@gmx.de> |
netif: initialize netif->output with a dummy function for IPv6 only netifs
|
#
f9300c1f |
|
07-Feb-2018 |
goldsimon <goldsimon@gmx.de> |
netif: ext_callback: clean up netif_set_addr after last change
|
#
6606c401 |
|
25-Jan-2018 |
goldsimon <goldsimon@gmx.de> |
bug #52893: Add 'old_stat' save in LWIP_NSC_IPV6_ADDR_STATE_CHANGED callback message
|
#
fe2c249f |
|
24-Jan-2018 |
goldsimon <goldsimon@gmx.de> |
bug #52937: raw_input() must tell ip4/6_input() if protocol has been received This also moves "raw_input" and "raw_netif_ip_addr_changed" to a new file raw_priv.h
|
#
4a997217 |
|
13-Jan-2018 |
goldsimon <goldsimon@gmx.de> |
netif: try to fix gcc error (-Werror=c++-compat)
|
#
734b6ab5 |
|
12-Jan-2018 |
goldsimon <goldsimon@gmx.de> |
netif: ensure netif_set_addr() only results in one "ext_status_callback" This can be used e.g. in mdns to create one, not multiple "changed" triggers if IP address and netmask change at the same time.
|
#
452c6a53 |
|
12-Jan-2018 |
goldsimon <goldsimon@gmx.de> |
netif: add netif_remove_ext_callback() (counterpart to netif_add_ext_callback())
|
#
deab51c3 |
|
09-Jan-2018 |
Axel Lin <axel.lin@ingics.com> |
netif: Remove unnecessary NULL checking in netif_do_set_{ipaddr|netmask|gw} The callers already ensure the ipaddr/netmask/gw won't be NULL, so remove the duplicated NULL checking in these static functions. While at it, also move the code saving old_address for netmask/gw as it's only used when address is actually being changed. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Dirk Ziegelmeier <dirk@ziegelmeier.net>
|
#
efa90d42 |
|
05-Jan-2018 |
Axel Lin <axel.lin@ingics.com> |
netif: Add LWIP_ASSERT_CORE_LOCKED() to netif_set_remove_callback Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Dirk Ziegelmeier <dirk@ziegelmeier.net>
|
#
05ded551 |
|
08-Jan-2018 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Apply patch #9536: netif: Prevent possible NULL pointer dereference in netif_set_addr in a modified version Replace NULL pointers by IP4_ADDR_ANY4 - at sometime in the future, we make the NULL pointer handling obsolete and we can remove all the NULL pointer checks in the code
|
#
2cb220d7 |
|
03-Jan-2018 |
Axel Lin <axel.lin@ingics.com> |
netif: Move LWIP_ASSERT_CORE_LOCKED out of static functions The netif_do_set_{ipaddr|netmask|gw} are static functions what won't be called directly, thus move LWIP_ASSERT_CORE_LOCKED to netif_set_{ipaddr|netmask|gw}. This avoid duplicated LWIP_ASSERT_CORE_LOCKED checking by netif_set_addr(). Signed-off-by: Axel Lin <axel.lin@ingics.com>
|
#
01e227d2 |
|
02-Jan-2018 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
netif.c: Fix that when using LWIP_NETIF_EXT_STATUS_CALLBACK multiple callbacks instead of only one are fired when netif_set_addr() is used
|
#
f334ac68 |
|
02-Jan-2018 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Work on task #14780: Add debug helper asserts to ensure threading/locking requirements are met Add LWIP_ASSERT_CORE_LOCKED() in several places
|
#
b33b3bb8 |
|
02-Jan-2018 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Start working on task #14780: Add debug helper asserts to ensure threading/locking requirements are met
|
#
2ff0ef02 |
|
17-Nov-2017 |
Axel Lin <axel.lin@ingics.com> |
Use NETIF_FOREACH macro at appropriate places Use NETIF_FOREACH macro to get some optimizations for LWIP_SINGLE_NETIF case. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: goldsimon <goldsimon@gmx.de>
|
#
d20a7aba |
|
16-Nov-2017 |
Axel Lin <axel.lin@ingics.com> |
netif: Use ip6_addr_isvalid() at appropriate places Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: goldsimon <goldsimon@gmx.de>
|
#
637bce91 |
|
07-Nov-2017 |
Joel Cunningham <joel.cunningham@me.com> |
netif: ensure link and admin states are up in issue reports (bug #52353) This fixes a bug where some callers of netif_issue_reports were not checking that both link and admin states were up, leading to extraneous reports when calling one of the following 1) netif_set_ipaddr 2) netif_ip6_addr_set_parts 3) netif_ip6_addr_set_state The bug has been fixed by placing link and admin state checks in netif_issue_reports and not requiring the callers to perform this checking
|
#
931b5e64 |
|
17-Sep-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Reformat core code using astylerc
|
#
ba6b504c |
|
04-Jul-2017 |
goldsimon <goldsimon@gmx.de> |
work on -Wconversion...
|
#
5efe26eb |
|
26-Jun-2017 |
goldsimon <goldsimon@gmx.de> |
Fix the fix for LWIP_LOOPBACK_MAX_PBUFS :-)
|
#
5b152348 |
|
25-Jun-2017 |
goldsimon <goldsimon@gmx.de> |
work on -Wconversion...
|
#
197166d9 |
|
25-Jun-2017 |
goldsimon <goldsimon@gmx.de> |
LWIP_LOOPBACK_MAX_PBUFS: fix compilation or memory leak for LWIP_LOOPBACK_MAX_PBUFS > 255
|
#
d02a73c2 |
|
22-Jun-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Replace usages of tcpip_callback_with_block(foo, bar, 0) with tcpip_try_callback()
|
#
a942582b |
|
05-May-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Minor #ifdef cleanup in netif.c
|
#
89d825f6 |
|
05-May-2017 |
Axel Lin <axel.lin@ingics.com> |
netif: Fix IPv6-only build Fix below build error if LWIP_IPV4 == 0. cc -g -Wall -DLWIP_DEBUG -pedantic -Werror -Wparentheses -Wsequence-point -Wswitch-default -Wextra -Wundef -Wshadow -Wpointer-arith -Wcast-qual -Wc++-compat -Wwrite-strings -Wold-style-definition -Wcast-align -Wmissing-prototypes -Wredundant-decls -Wnested-externs -Wno-address -Wunreachable-code -Wuninitialized -Wlogical-op -I. -I../../.. -I../../../../lwip/src/include -I../../../ports/unix/port/include -I../../../../mbedtls/include -Wno-redundant-decls -DLWIP_HAVE_MBEDTLS=1 -c ../../../../lwip/src/core/netif.c ../../../../lwip/src/core/netif.c: In function ‘netif_add’: ../../../../lwip/src/core/netif.c:284:7: error: ‘ipaddr’ undeclared (first use in this function) if (ipaddr == NULL) { ^~~~~~ ../../../../lwip/src/core/netif.c:284:7: note: each undeclared identifier is reported only once for each function it appears in ../../../../lwip/src/core/netif.c:285:14: error: implicit declaration of function ‘ip_2_ip4’ [-Werror=implicit-function-declaration] ipaddr = ip_2_ip4(IP4_ADDR_ANY); ^~~~~~~~ ../../../../lwip/src/core/netif.c:285:5: error: nested extern declaration of ‘ip_2_ip4’ [-Werror=nested-externs] ipaddr = ip_2_ip4(IP4_ADDR_ANY); ^~~~~~ ../../../../lwip/src/core/netif.c:285:23: error: ‘IP4_ADDR_ANY’ undeclared (first use in this function) ipaddr = ip_2_ip4(IP4_ADDR_ANY); ^~~~~~~~~~~~ ../../../../lwip/src/core/netif.c:287:7: error: ‘netmask’ undeclared (first use in this function) if (netmask == NULL) { ^~~~~~~ ../../../../lwip/src/core/netif.c:290:7: error: ‘gw’ undeclared (first use in this function) if (gw == NULL) { ^~ cc1: all warnings being treated as errors ../../Common.allports.mk:94: recipe for target 'netif.o' failed make: *** [netif.o] Error 1 Fixes: 5967380c2034 ("netif_add: avoid passing NULL pointers to subsequent functions") Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Dirk Ziegelmeier <dirk@ziegelmeier.net>
|
#
5967380c |
|
05-May-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
netif_add: avoid passing NULL pointers to subsequent functions (reported by Axel Lin)
|
#
eab2ae5d |
|
01-May-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Cleanup netif_name_to_index() implementation
|
#
6aac9377 |
|
26-Apr-2017 |
goldsimon <goldsimon@gmx.de> |
Clean up LWIP_NETIF_HWADDRHINT a bit: create a struct holding the hint(s) and pass a pointer to that struct around. That way we are free to add more hints if required (e.g. see task #11620)
|
#
ca961b9b |
|
24-Apr-2017 |
goldsimon <goldsimon@gmx.de> |
minor whitespace cleanups only
|
#
d02bc648 |
|
24-Apr-2017 |
goldsimon <goldsimon@gmx.de> |
Fixed bug #50816 (netif_add() prototype depends on configuration) by adding a new function netif_add_noaddrthat doesn't change
|
#
f28c1c85 |
|
15-Apr-2017 |
Joel Cunningham <joel.cunningham@me.com> |
loopif: set pbuf if_idx during poll This sets the pbuf's if_idx during the loopif poll function (the equivalent netif input function). This was found during IP_PKTINFO development where p->if_idx is read and was uninitialized
|
#
2a30fedb |
|
04-Apr-2017 |
goldsimon <goldsimon@gmx.de> |
fix passing NULL to netif_set_gw & netif_set_netmask (or netif_set_addr or netif_add) (broken on 18.03.2017 by 2d9ef2215b5f276d8c7d34839bc6becfb063faab)
|
#
2d9ef221 |
|
18-Mar-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Fix bug #50576: LWIP_NSC_IPV4_GATEWAY/NETMASK/SETTINGS_CHANGED should check if the setting is actually being changed
|
#
aef2accf |
|
17-Mar-2017 |
goldsimon <goldsimon@gmx.de> |
try to satisfy clang's '-Wempty-body'
|
#
0d585d55 |
|
01-Mar-2017 |
goldsimon <goldsimon@gmx.de> |
Added LWIP_SINGLE_NETIF for small targets with only one netif (see task #13515, there might be more optimizations to come with this option)
|
#
27c835aa |
|
27-Feb-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Remove netif_invoke_ext_callback() from doxygen docs, it is intended for internal use only
|
#
01cc06bc |
|
23-Feb-2017 |
goldsimon <goldsimon@gmx.de> |
netif_add: ensure netif->num is unique even if more than 255 netifs have been added/removed since system startup (e.g. by ppp)
|
#
498913b9 |
|
15-Feb-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Third draft of task #14283: Add more detailed status callback Implement Joel's idea of a union
|
#
45492715 |
|
14-Feb-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Continue working on ext netif callback Docs, better callback points (e.g. before netif is set down)
|
#
d46d8bcd |
|
14-Feb-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Add some asserts to netif callback functions
|
#
4434762a |
|
14-Feb-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Some minor documentation fixes
|
#
bbedb35b |
|
14-Feb-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Fix name clash between typedef and struct definition. Interesting, all three compilers in Erik Ekman's travis-ci don't complain. But my gcc at home does...
|
#
f4f204b8 |
|
14-Feb-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Implement a better way to initialize all fields in ip address than using memset() (better fix than my last commit)
|
#
feba38a1 |
|
14-Feb-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Fix unportable struct initializer I introcduced while working on task #14283: Add more detailed status callback
|
#
8025b856 |
|
14-Feb-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Second draft of task #14283: Add more detailed status callback
|
#
7dd21e93 |
|
13-Feb-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Fix my last commits (unused variable warning) my gcc at home did not show this warning...
|
#
3c171340 |
|
13-Feb-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Work on task #14283: Add more detailed status callback Cleanups and IPv6 address status
|
#
58c48af5 |
|
13-Feb-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Start working on task #14283: Add more detailed status callback IPv6 stuff is not implemented
|
#
45f3c28e |
|
13-Feb-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Fix netif_find() function for many netifs (should use atoi) and move it to the bottom of the file where similar functions are located
|
#
400c41ff |
|
13-Feb-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Also base netif_index_to_name function on netif_get_by_index
|
#
d4d8fd81 |
|
13-Feb-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Some code cleanup related to netif index handling Made the macro "netif_index_to_num" private, if someone needs it externally, please complain.
|
#
eae41298 |
|
09-Feb-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Documentation updates related to Joel's if_api changes
|
#
4fb7d741 |
|
03-Feb-2017 |
Joel Cunningham <joel.cunningham@me.com> |
task #14314: include cleanups Couple of more cleanups for task #14314 involving includes: 1) if.h name should match if_api.c due to LwIP convention and history. Standard if.h include can be used with compatibility header in posix/net/if.h 2) API header (if.h) should not be included in core code. This include has been eliminated by moving the definition of IF_NAMESIZE to netif.h as NETIF_NAMESIZE. This is now the canonical definition and IF_NAMESIZE just maps to it to provide the standard type
|
#
29ddfd1d |
|
23-Jan-2017 |
David van Moolenbroek <david@minix3.org> |
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.
|
#
7a99d2f8 |
|
24-Jan-2017 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Fix documentation on netif_index_to_name
|
#
fbfe987a |
|
23-Jan-2017 |
Joel Cunningham <joel.cunningham@me.com> |
netif: clean up remaining index shadowing from if APIs This commit cleans up the remaining instance of global variable "index" shadowing caused by using local variables and function parameters named "index" These were introduced in the recent interface index API commits
|
#
e158f872 |
|
20-Jan-2017 |
Joel Cunningham <joel.cunningham@me.com> |
Netif: add allowance for init to override netif->num Adjusts assert logic from 9c80a6625344768572777accbe77ac968c10250f to allow for a netif driver's init callback to manually override the number. When the init function is taking care of the unique assignment, the assert simply checks that a valid number was provided
|
#
1b20e664 |
|
19-Jan-2017 |
Joel Cunningham <joel.cunningham@me.com> |
Task #14314: Add interface name/index APIs This commit adds the following sets of interface name/index APIs: Interface Identification APIs from RFC 3493: * lwip_if_nametoindex (COMPAT macro if_nametoindex) * lwip_if_indextoname (COMPAT macro if_indextoname) netifapi: * netifapi_netif_name_to_index * netifapi_netif_index_to_name netif: * netif_name_to_index * netif_index_to_name * netif_num_to_index * netif_index_to_num
|
#
9c80a662 |
|
20-Jan-2017 |
Joel Cunningham <joel.cunningham@me.com> |
Netif: add netif_num overflow assert This commit adds an LWIP_ASSERT to detect when netif_num overflows and we no longer have unique numbers per netif. Unique netif numbers are needed to support interface indexes (task #14314) The only cases where this could occur are with a deployment that attempts to use the maximum 256 netifs at the same time or where netifs are being constantly adding and removed. Neither of these use cases fit the lightweight goals of LwIP See discussion in task #14314 for more details
|
#
901664ec |
|
29-Dec-2016 |
David van Moolenbroek <david@minix3.org> |
netif: more ip6 state changes invoke status callback For applications that use NETIF_STATUS_CALLBACK to help keep track of extra per-address shadow state of IPv6 addresses, even in the light of autogenerated addresses (which may "spontaneously" appear/disappear), state transitions between tentative, duplicated, and invalid are important as well. Therefore, invoke the status callback for all such state transitions. Continue to filter out state changes between various levels of progress of the tentative state, though.
|
#
e0c5e198 |
|
29-Dec-2016 |
David van Moolenbroek <david@minix3.org> |
nd6: improve address autoconfiguration support In summary, this patch aims to resolve bugs #47923 and #48162, by decoupling address autoconfiguration from the on-link prefix list, since those are not related. Important necessary changes are needed to meet this goal, ultimately bringing the lwIP ND6 implementation closer to compliance with RFC 4862. The main changes are: 1. support for address lifetimes, and, 2. addition of a new DUPLICATED address state. The decoupling implies that the prefix list can no longer be used to maintain state for address autoconfiguration. Most importantly, the lifetime of each address, which was previously derived from the prefix slot's lifetime, must now be associated with the address itself. This patch implements address lifetime tracking, maintaining both a valid and a preferred lifetime for each address, along with the corresponding address state changes (e.g., between PREFERRED and DEPRECATED), all as required by RFC 4862. The support for address lifetimes can be enabled with a new LWIP_IPV6_ADDRESS_LIFETIMES setting in lwipopts.h. It is required for autoconfiguration and enabled by default if autoconfiguration is enabled as well, but it may also be enabled separately, so as to allow application-controlled lifetime management (e.g., if autoconfiguration is implemented in a separate application). A special valid-lifetime of zero is used to denote a static address--that is, an address that was configured manually, that does not have lifetimes, and that should be left alone by the autoconfiguration functionality. Addresses assigned without setting a lifetime are deemed static, thus preserving compatibility with existing lwIP-based applications in this respect. Similarly, the decoupling implies that the prefix list can no longer be used to remember cases of address duplication. Previously, the detection of a duplicated address would simply result in removal of the address altogether. Instead, this patch introduces a new state "DUPLICATED", indicating that the address, while technically still present, has been found to conflict with other node addresses, and no attempt should be made to produce an autoconfiguration address for that prefix. Manually added addresses, including the link-local address, once set to DUPLICATED, will remain in that state until manual intervention. Autoconfigured DUPLICATED addresses will expire according to their valid-lifetime, essentially preserving the current behavior but without the use of the prefix list. As a first attempt to approach compliance with RFC 4862 Sec. 5.4.5, if the link-local address is detected to be duplicated, all derived addresses are marked duplicated as well, and no new addresses will be autoconfigured. More work is to be done for full compliance with that section, however. Together, those two main changes indeed do fully decouple address autoconfiguration from the on-link prefix list. Changes to the latter thus no longer affect the former, resolving bug #47923. Moreover, as a result, autoconfiguration can, and does, now also take place on advertised prefixes that do not have the on-link flag set, resolving bug #48162. The routing changes mentioned in the discussion of that bug are left to a separate patch, though.
|
#
71810d04 |
|
16-Dec-2016 |
David van Moolenbroek <david@minix3.org> |
ipv6: adjust MLD membership on address state changes If MLD support is enabled, each locally assigned IPv6 address in the appropriate state must be a member of the solicited-node multicast group corresponding to that address. Ensure that this is always the case by (re-)deciding on the membership upon every address state change. By doing so, this patch enforces that user-initiated state changes to addresses (e.g., deletion) never cause a desynchronization with the corresponding solicited-node multicast group membership, thereby making such user-initiated state changes simpler and safer.
|
#
dd96c712 |
|
19-Dec-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Fix a few -Wconversion warnings (there are many more to do)
|
#
9d199a6d |
|
13-Dec-2016 |
sg <goldsimon@gmx.de> |
netif_create_ip6_linklocal_address(): use macros to assign address state to ensure callbacks are triggered; netif_add_ip6_address(): only overwrite invalid addresses, not tentative addresses
|
#
aae0fc49 |
|
07-Dec-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Use new IPv6 init macro in netif.c
|
#
cac3dc8a |
|
28-Nov-2016 |
Axel Lin <axel.lin@ingics.com> |
netif: Trivial indent fix Signed-off-by: Axel Lin <axel.lin@ingics.com>
|
#
1d4cbe76 |
|
25-Nov-2016 |
Axel Lin <axel.lin@ingics.com> |
netif: Add proper lock protect for accessing netif->loop_first All the reset part of the code accessing netif->loop_first has lock protection, the only missing part is "while (netif->loop_first != NULL)". Fix it by adding lock protect around the while loop. Also convert the code to use while{} loop instead of do .. while{} loop, then we can avoid NULL test for in pointer in each loop and reduce a level of indent. Signed-off-by: Axel Lin <axel.lin@ingics.com>
|
#
1c9e6032 |
|
28-Oct-2016 |
David van Moolenbroek <david@minix3.org> |
netif: fix reset of IPv6 addresses in netif_add() Previously, only the state of the first IPv6 address would be reset, thus possibly keeping other addresses valid (even though zeroed).
|
#
13fb616b |
|
05-Oct-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
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>
|
#
df5a7996 |
|
01-Oct-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Fix bug #48886: raw pcbs are not handled on netif address change
|
#
149701b3 |
|
30-Sep-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Fix bug #49218: pbuf_clen() overflow as a result of tcp_write concatenation Let pbuf_clen() return u16_t
|
#
65796cd8 |
|
28-Sep-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
"Fix" bug #49078: lwip cannot establish ipv6 connection, because of failed to fill ipv6 source address in Neighbor Solicitation Message by adding a note to netif_add not to forget to create a link-local IPv6 address
|
#
633696c1 |
|
27-Sep-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Implement consistent IPx_ADDR_ANYx macro naming between IPv4 and IPv6 - rename IP4_ADDR_ANY to IP4_ADDR_ANY4 - IP4_ADDR_ANY (= IP_ADDR_ANY) is now IPv4 any address in ip_addr_t format
|
#
97b774ce |
|
26-Sep-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Minor: Documentation updates
|
#
c7c6b7ce |
|
21-Sep-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Rework IGMP and MLD6 code to store group info per-netif. Reasoning: - Makes code in single-netif case perform better and smaller - IGMP / MLD6 code is a little bit easier to read and understand - Easier to get multicast groups per netif when implementing drivers Downside: In multi-netif mode, there are two more pointers on each netif, even if IGMP/MLD6 is not used on it. But these systems should not be so memory-constrained that this will matter.
|
#
d66442ba |
|
07-Sep-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Fix compile when TCP, UDP and RAW are disabled
|
#
0d510dd6 |
|
26-Aug-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Add API macros for netif client data handling and update documentation accordingly
|
#
57468b8a |
|
25-Aug-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Minor: Several documentation updates
|
#
4c390ad3 |
|
24-Aug-2016 |
sg <goldsimon@gmx.de> |
update netif address change triggers to tpc & udp to work with IPv6, too
|
#
a1db05c1 |
|
24-Aug-2016 |
Erik Ekman <erik.ekman@verisure.com> |
Fix const argument warning in netif_ip6_addr_set ../../../../../lwip/src/netif/ppp/ppp.c:1276:37: error: passing 'const ip6_addr_t *' (aka 'const struct ip6_addr *') to parameter of type 'ip6_addr_t *' (aka 'struct ip6_addr *') discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] netif_ip6_addr_set(pcb->netif, 0, IP6_ADDR_ANY6); ^~~~~~~~~~~~~ ../../../../../lwip/src/include/lwip/ip_addr.h:340:24: note: expanded from macro 'IP6_ADDR_ANY6' ^~~~~~~~~~~~~~~~~~~~~~~~~ ../../../../../lwip/src/include/lwip/netif.h:436:73: note: passing argument to parameter 'addr6' here void netif_ip6_addr_set(struct netif *netif, s8_t addr_idx, ip6_addr_t *addr6);
|
#
298ec340 |
|
24-Aug-2016 |
goldsimon <goldsimon@gmx.de> |
set netif IPv6 address & state via function to implement change triggers (task #13517)
|
#
8eb9db18 |
|
19-Aug-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Reduce usage of netif/ethernet.h header, mostly lwip/prot/ethernet.h is sufficient
|
#
7f60cb38 |
|
17-Aug-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Improve netif client data API for lwIP internal clients - these can use a compile-time constant to access their data now
|
#
ebf79598 |
|
18-Aug-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Coding style fixes in netif.c
|
#
c62bfd81 |
|
17-Aug-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Port AUTOIP to new netif client data API
|
#
1db9631e |
|
17-Aug-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Port DHCP to new netif client data API
|
#
c28fb298 |
|
17-Aug-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Introduce an API to store arbitrary data pointers in struct netif Let MDNS to use the new API TODO: AutoIP, DHCP
|
#
efb7b3d5 |
|
16-Aug-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Rename LWIP_MDNS to LWIP_MDNS_RESPONDER
|
#
4919932c |
|
14-Aug-2016 |
Erik Ekman <erik@kryo.se> |
Apply patch #8755: Multicast DNS responder support from Erik Ekman
|
#
0a7db8a9 |
|
07-Aug-2016 |
Axel Lin <axel.lin@ingics.com> |
PPP: remove double include for lwip/sys.h Including it once is enough. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Sylvain Rochet <gradator@gradator.net>
|
#
8d07629b |
|
07-Aug-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Some documentation cleanups and include more comments that have been already in code into doxygen docs
|
#
018294d2 |
|
01-Aug-2016 |
goldsimon <goldsimon@gmx.de> |
remove doubled include (tcpip.h)
|
#
2f7e6d06 |
|
01-Aug-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Remove hard reference from netif.c to tcpip.c - avoids pulling in unnecessary code
|
#
2c2d11fa |
|
30-Jul-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Update documentation of netif_input function
|
#
4cb7e31d |
|
30-Jul-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Add missing #include in netif.c
|
#
0c7d015e |
|
30-Jul-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Further improvement to netif input function autoselection: Select between netif_input() and tcpip_input() depending on NO_SYS setting
|
#
4b67c582 |
|
30-Jul-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Create netif_input function that decides according to netif flags where to pass an incoming packet. Allow to pass a NULL pointer to netif_add() input function - if so, use the function mentioned above as input function.
|
#
8a9de94b |
|
26-Jul-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Restructure documentation. Create two top-level sections for thread-safe and callback-style APIs.
|
#
0fea2bc0 |
|
26-Jul-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Document netconn API in doxygen module style
|
#
8643782e |
|
26-Jul-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Document netif and lwIP in doxygen module style
|
#
97b8e88e |
|
19-Jul-2016 |
sg <goldsimon@gmx.de> |
netif_set_addr(): when removing an address (setting address to ANY), we have to remove it *before* changing netmask/gw to ensure that tcp RST segment can be sent correctly
|
#
7037b340 |
|
19-Jul-2016 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Move etharp to core/ipv4, which is a more appropriate place for it
|
#
ac21a5f3 |
|
06-May-2016 |
Jan Breuer <jan.breuer@jaybee.cz> |
nd6: add cleanup function
|
#
62037370 |
|
12-Nov-2015 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
Rename snmp_mib2.h to snmp.h so source compatibility for user netif implementations is preserved
|
#
c12fa7b4 |
|
09-Oct-2015 |
sg <goldsimon@gmx.de> |
started to move "private" header files containing implementation details to "lwip/priv/" include directory to seperate the API from the implementation.
|
#
77f90637 |
|
07-Oct-2015 |
goldsimon <goldsimon@gmx.de> |
minor: fixed coding style (lwip style)
|
#
b401f425 |
|
07-Oct-2015 |
goldsimon <goldsimon@gmx.de> |
minor: fixed coding style (lwip style)
|
#
2b971400 |
|
06-Oct-2015 |
sg <goldsimon@gmx.de> |
minor: coding style
|
#
490581a0 |
|
06-Oct-2015 |
sg <goldsimon@gmx.de> |
minor/coding style: removed spaces before line ending
|
#
f80d0dab |
|
02-Oct-2015 |
Erik Ekman <erik.ekman@verisure.com> |
Remove old comments about DHCP setting netif up
|
#
3f4d75c8 |
|
30-Sep-2015 |
Dirk Zigelmeier <dirk@ziegelmeier.net> |
netif_get_ip6_addr_match/netif_add_ip6_address must take a const ip6addr to be usable
|
#
0fbdd5e5 |
|
23-Sep-2015 |
goldsimon <goldsimon@gmx.de> |
fixed compiling LWIP_HAVE_LOOPIF after changing struct netif.ip6_addr to ip_addr_t
|
#
db76671d |
|
23-Sep-2015 |
sg <goldsimon@gmx.de> |
task #13729: Convert netif addresses (IPv4 & IPv6) to ip_addr_t (so they can be used without conversion/temporary storage)
|
#
e00e4a6c |
|
23-Sep-2015 |
Dirk Ziegelmeier <dirk@ziegelmeier.net> |
make netif_ip4_* get accessors return const pointers
|
#
4f9bcc5e |
|
17-Sep-2015 |
sg <goldsimon@gmx.de> |
fixed compiler warnings reported by mingw-64
|
#
7702ed66 |
|
08-Sep-2015 |
goldsimon <goldsimon@gmx.de> |
fixed compiler warning (stray 'a ' in code) - why is this a warning only???
|
#
8a0fb03e |
|
08-Sep-2015 |
goldsimon <goldsimon@gmx.de> |
Separate mib2 counter/table callbacks from snmp agent. This both cleans up the code and should allow integration of a 3rd party agent/mib2.
|
#
aa0e41c3 |
|
01-Sep-2015 |
sg <goldsimon@gmx.de> |
task #12178: hardware checksum capabilities can be configured per netif (use NETIF_SET_CHECKSUM_CTRL() in your netif's init function)
|
#
5eb1c411 |
|
26-Aug-2015 |
sg <goldsimon@gmx.de> |
LWIP_LOOPIF_MCAST -> LWIP_LOOPIF_MULTICAST
|
#
0ab21da8 |
|
24-Aug-2015 |
Joel Cunningham <joel.cunningham@me.com> |
Add multicast support to loopif This commit adds support to send and receive multicast on the loopback netif by enabling IGMP via NETIF_FLAG_IGMP This commit also introduces an LwIP configuration option, LWIP_LOOPIF_MCAST, to control the behavior and it defaults to off
|
#
94550682 |
|
24-Aug-2015 |
sg <goldsimon@gmx.de> |
more cleanup prework to fix bug #45029
|
#
177c06b1 |
|
20-Aug-2015 |
sg <goldsimon@gmx.de> |
- prework for fixing bug #45029: access IPv4 configuration of struct netif via new API (netif_ip4_addr()/netif_ip4_netmask()/netif_ip4_gw()) instead of accessing the struct member directly. This way, we can change the struct member types from ip4_addr_t to ip_addr_t; - fixed some bugs in calls to ip4_addr*() where the cast to u8_t* did not reveal the wrong address type
|
#
877fcb35 |
|
27-Jul-2015 |
chrysn <chrysn@fsfe.org> |
fix return type of netif_add_ip6_address mismatch the netif_add_ip6_address function was declared err_t in src/include/lwip/netif.h, but defined as s8_t (the default value of err_t) in its implementation in src/core/netif.c. this causes "conflicting types for 'netif_add_ip6_address'" errors if err_t is defined differently in cc.h (as for example recommended in [1]). as it only returns error constants, it is changed to use err_t throughout. [1] http://lwip.wikia.com/wiki/Porting_For_Bare_Metal
|
#
13801ebd |
|
03-Aug-2015 |
goldsimon <goldsimon@gmx.de> |
netif_find(): name parameter can be const
|
#
4dc3c7a6 |
|
03-Aug-2015 |
goldsimon <goldsimon@gmx.de> |
Fixed warnings about NULL check not required (ip_addr_isany) and implicit conversion (~)
|
#
5b0d9338 |
|
26-Jul-2015 |
Joel Cunningham <joel.cunningham@me.com> |
netif, loopif: set link up on loopback interface When LWIP_HAVE_LOOPIF is enabled, a separate loopback interface is added as a netif. A netif need to have its link state set to up to be able to be selected as a route in ip4_route or ip6_route. The regression appears to be when bug #43904 (ip_route() and ip6_route() must detect linkup status) was fixed. Furthermore, there is no point of having the loopif down by default.
|
#
c1c65777 |
|
12-Apr-2015 |
sg <goldsimon@gmx.de> |
worked on task #13480: added LWIP_IPV4 define - IPv4 can be disabled, leaving an IPv6-only stack (SNMP is still missing)
|
#
ce7e31cd |
|
09-Apr-2015 |
sg <goldsimon@gmx.de> |
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
|
#
12e3b52f |
|
18-Mar-2015 |
Ivan Delamer <delamer@inicotech.com> |
fixed bug #39226: Validity of netif IPv6 address is not always checked
|
#
12d374d4 |
|
06-Mar-2015 |
sg <goldsimon@gmx.de> |
Added function documentation, fixed coding style
|
#
0ddd7de1 |
|
06-Mar-2015 |
sg <goldsimon@gmx.de> |
patch #8359 (Provide utility function to add an IPv6 address to an interface)
|
#
4e520cdd |
|
05-Mar-2015 |
sg <goldsimon@gmx.de> |
fixed bug #37068 (netif up/down handling is unclear): correclty separated administrative status of a netif (up/down) from 'valid address' status ATTENTION: netif_set_up() now always has to be called, even when dhcp/autoip is used!
|
#
12514c09 |
|
04-Mar-2015 |
sg <goldsimon@gmx.de> |
Fixed bug #39956 (netif_create_ip6_linklocal_address out of bounds access of netif::hwaddr)
|
#
a310bc19 |
|
26-Feb-2015 |
Sylvain Rochet <gradator@gradator.net> |
netif: fixed compiler warning lwip/src/core/netif.c: In function ‘netif_set_ipaddr’: lwip/src/core/netif.c:403:5: warning: implicit declaration of function ‘udp_netif_ipv4_addr_changed’ [-Wimplicit-function-declaration] udp_netif_ipv4_addr_changed(&netif->ip_addr, ipaddr); ^
|
#
0647533f |
|
26-Feb-2015 |
sg <goldsimon@gmx.de> |
fixed bug #44378 (TCP connections are not aborted on netif remove)
|
#
99dd7896 |
|
26-Feb-2015 |
sg <goldsimon@gmx.de> |
fixed bug #40753 (re-bind UDP pcbs on change of IP address)
|
#
ec5cf859 |
|
22-Feb-2015 |
sg <goldsimon@gmx.de> |
Continued chrysn's work: changed nearly all functions taking 'ip(X)_addr_t' pointer to take const pointers (changed user callbacks: raw_recv_fn, udp_recv_fn; changed port callbacks: netif_output_fn, netif_igmp_mac_filter_fn)
|
#
9f065c0e |
|
23-Jan-2015 |
chrysn <chrysn@fsfe.org> |
(api break) qualify ip_addr_t as const where feasible this changes the callback signatures of the ip_output and the {udp,raw}_recv functions. changes were made by going through all header files, searching for occurrences of ip_addr_t, qualifying them as const and if required modifying the corresponding c files, looking for other uses of ip_addr_t that would be required. the following header files were not treated as i'm not using them and wouldn't see them compiled: api.h api_msg.h dhcp.h dns.h igmp.h netifapi.h pppapi.h snmp.h snmp_msg.h snmp_structs.h ppp.h pppol2tp.h test/* no modifications were done on ip6_addr_t.
|
#
dceed2ea |
|
25-Feb-2014 |
Simon Goldschmidt <goldsimon@gmx.de> |
fixed bug #39225 udp.c uses netif_matches_ip6_addr() incorrectly; renamed function netif_matches_ip6_addr() to netif_get_ip6_addr_match()
|
#
5070cc07 |
|
17-Jan-2014 |
Simon Goldschmidt <goldsimon@gmx.de> |
Fixed LWIP_IPV6==0
|
#
1e65eb49 |
|
17-Jan-2014 |
Simon Goldschmidt <goldsimon@gmx.de> |
Added IPv6 loopback address to loopback-netif, fixed last commit
|
#
13e40f75 |
|
28-Jan-2013 |
Jay Logue <jay-lwip@toaster.com> |
Enable support for IPv6 loopback Packets are sent through the loopback path when they are addressed to any of the valid local IPv6 addresses.
|
#
039737ff |
|
12-Dec-2012 |
Stathis Voukelatos <stathis.voukelatos@linn.co.uk> |
Fixed netif_poll() operation when LWIP_LOOPBACK_MAX_PBUFS > 0. Using the pbuf_clen() function to calculate the number of pbufs for the first packet in the queue is not correct here, as pbuf_clen() will return the total number of pbufs in the loopback I/F queue.
|
#
9809f1ff |
|
24-Apr-2013 |
Simon Goldschmidt <goldsimon@gmx.de> |
Fixed bug #38586
|
#
c762c06b |
|
17-Aug-2012 |
Ivan Delamer <delamer@inicotech.com> |
Fixed typo in previous commit. Change-Id: I97f85f4593509911829cfbbb6e309eecedd5465b
|
#
8bab5435 |
|
17-Aug-2012 |
Ivan Delamer <delamer@inicotech.com> |
Add a "NULL" output function for ipv6 by default, to avoid NULL dereferencing in case of non-IPv6-enabled netifs (e.g. PPP). Change-Id: I45f08ca89bfa0b8d61962f7052b11cc81a5e3cd1
|
#
08b497fa |
|
22-Nov-2011 |
goldsimon <goldsimon@gmx.de> |
fixed bug #34684: Clear the arp table cache when netif is brought down
|
#
0a575514 |
|
24-Aug-2011 |
Simon Goldschmidt <goldsimon@gmx.de> |
added netif remove callback (bug #32397)
|
#
bf4ec9be |
|
24-Aug-2011 |
Simon Goldschmidt <goldsimon@gmx.de> |
fixed bug #34121 netif_add/netif_set_ipaddr fail on NULL ipaddr
|
#
732cac1c |
|
07-Jun-2011 |
goldsimon <goldsimon> |
Moved static variable from inside the function to global scope
|
#
6865806b |
|
25-May-2011 |
goldsimon <goldsimon> |
Combined IPv4 and IPv6 code where possible, added defines to access IPv4/IPv6 in non-IP code so that the code is more readable.
|
#
4bfbe7eb |
|
17-May-2011 |
goldsimon <goldsimon> |
... and finally, we got a first working version of a dual-stack lwIP runnin IPv4 and IPv6 in parallel - big thanks to Ivan Delamer! (this is work in progress, so please beware, test a lot and report problems!)
|
#
e25c9f79 |
|
15-Mar-2010 |
goldsimon <goldsimon> |
Fixed compiler warning when LWIP_SNMP==0
|
#
2a2be49d |
|
08-Mar-2010 |
goldsimon <goldsimon> |
task #10241 (AutoIP: don't break existing connections when assiging routable address): when checking incoming packets and aborting existing connection on address change, filter out link-local addresses.
|
#
bcd4b76d |
|
21-Feb-2010 |
goldsimon <goldsimon> |
Moved stack-internal parts of tcp.h to tcp_impl.h, tcp.h now only contains the actual application programmer's API
|
#
7c205409 |
|
15-Feb-2010 |
goldsimon <goldsimon> |
Link status does not depend on LWIP_NETIF_LINK_CALLBACK (fixes bug #28899)
|
#
e04e0cb9 |
|
14-Feb-2010 |
goldsimon <goldsimon> |
Fixed bug #28877 (Duplicate ARP gratuitous packet with LWIP_NETIF_LINK_CALLBACK set on) by only sending if both link- and admin-status of a netif are up
|
#
29eb56a2 |
|
12-Feb-2010 |
goldsimon <goldsimon> |
netif_set_link_up/down: only do something if the link state actually changes
|
#
a668a4e4 |
|
09-Feb-2010 |
goldsimon <goldsimon> |
Fixed compilation for NO_SYS==1
|
#
b1250f00 |
|
09-Feb-2010 |
goldsimon <goldsimon> |
For loopback packets, adjust the stats- and snmp-counters for the loopback netif.
|
#
077caac7 |
|
09-Feb-2010 |
goldsimon <goldsimon> |
task #10153 (Integrate loopif into netif.c) - loopif does not have to be created by the port any more, just define LWIP_HAVE_LOOPIF to 1.
|
#
5d360a67 |
|
04-Feb-2010 |
goldsimon <goldsimon> |
Replaced struct ip_addr by typedef ip_addr_t to make changing the actual implementation behind the typedef easier.
|
#
a23b446d |
|
04-Feb-2010 |
goldsimon <goldsimon> |
Use macros defined in ip_addr.h (some of them new) to work with IP addresses (preparation for bug #27352 - Change ip_addr from struct to typedef (u32_t) - and better code).
|
#
8712deb0 |
|
31-Jan-2010 |
goldsimon <goldsimon> |
Don't call the link-callback from netif_set_up/down() since this invalidly retriggers DHCP.
|
#
2d4e7687 |
|
14-Jan-2010 |
goldsimon <goldsimon> |
Using typedefs for function prototypes and -pointers throughout the stack for clarity
|
#
c483c13d |
|
10-Jan-2010 |
goldsimon <goldsimon> |
Fixed bug #28248 (netif_remove doesn't call netif callback) by calling netif_set_down() from netif_remove()
|
#
86f2942c |
|
10-Jan-2010 |
goldsimon <goldsimon> |
Minor coding style changes, added assertion
|
#
32833bcd |
|
09-Jan-2010 |
goldsimon <goldsimon> |
Inlined netif_is_up() and netif_is_link_up() as defines for speed reasons; fixed type and macro definition.
|
#
f4c06551 |
|
22-Nov-2009 |
goldsimon <goldsimon> |
Fixed usage of logging levels (bug #27948: Incorrect logging levels used in various places)
|
#
103ba9b0 |
|
24-Aug-2009 |
stoklund <stoklund> |
The DHCP client should enter the REBOOTING state when connecting to a new network. If DHCP has bound to an address, it must be verified after netif_set_link_up.
|
#
d83fc689 |
|
24-Aug-2009 |
stoklund <stoklund> |
Don't use an AutoIP-configured address on a new network until the address has been configured. When connecting to a new network with an AutoIP address, take the interface down until the old address has passed the AUTOIP_STATE_PROBING state.
|
#
ce5699f4 |
|
09-Jul-2009 |
fbernon <fbernon> |
minor changes: typos and coding style
|
#
30acd166 |
|
12-May-2009 |
goldsimon <goldsimon> |
fixed bug #26507: "Gratuitous ARP depends on arp_table / uses etharp_query" by adding etharp_gratuitous()
|
#
42c59e10 |
|
28-Apr-2009 |
fbernon <fbernon> |
netif.c: minor, fix a warning
|
#
3d8e5003 |
|
19-Jun-2008 |
goldsimon <goldsimon> |
Fixed includes in netif.c, removed loop_cnt_max member in struct netif (instead the define LWIP_LOOPBACK_MAX_PBUFS is used directly)
|
#
eba83ab7 |
|
17-Jun-2008 |
goldsimon <goldsimon> |
Changed loopback code (less difference between NO_SYS = 0 / 1), added setting LWIP_LOOPBACK_MAX_PBUFS to limit loopback-queued pbufs
|
#
88ff8c83 |
|
12-Jun-2008 |
goldsimon <goldsimon> |
Checked in slightly modified version of patch # 6370: Moved loopif code to netif.c so that loopback traffic is supported on all netifs (all local IPs).
|
#
c13ec867 |
|
09-Oct-2007 |
goldsimon <goldsimon> |
Forgot two explicit initializations...
|
#
199648ff |
|
09-Oct-2007 |
goldsimon <goldsimon> |
Changed initialization: many init functions are not needed any more since we now rely on the compiler initializing global and static variables to zero!
|
#
939180c1 |
|
09-Sep-2007 |
fbernon <fbernon> |
igmp.h, igmp.c, netif.h, netif.c, ip.c: To enable to have interfaces with IGMP, and others without it, there is a new NETIF_FLAG_IGMP flag to set in netif->flags if you want IGMP on an interface. igmp_stop() is now called inside netif_remove(). igmp_report_groups() is now called inside netif_set_link_up() (need to have LWIP_NETIF_LINK_CALLBACK=1) to resend reports once the link is up (avoid to wait the next query message to receive the matching multicast streams).
|
#
e3cd1ac1 |
|
07-Sep-2007 |
fbernon <fbernon> |
Minor changes (but in lot of files): add #if/#endif for options where they could miss. #if LWIP_xxx if always put after #include "lwip/opt.h" (note this one indirectly include cc.h). Move others includes inside #if/#endif block.
|
#
62b4741b |
|
03-Sep-2007 |
fbernon <fbernon> |
Changes for "#20503 IGMP Improvement". Initialize igmp_mac_filter to NULL in netif_add (this field should be set in the netif's "init" function). Use the "imr_interface" field (for socket layer) and/or the "interface" field (for netconn layer), for join/leave operations. The igmp_join/leavegroup first parameter change from a netif to an ipaddr. This field could be a netif's ipaddr, or "any" (same meaning than ip_addr_isany).
|
#
327f06bb |
|
02-Sep-2007 |
fbernon <fbernon> |
Replace "netif_default = NULL;" by "netif_set_default(NULL);" in netif_remove (do some processing, like for SNMP...)
|
#
cd208314 |
|
29-Aug-2007 |
fbernon <fbernon> |
igmp.h, igmp.c, tcpip.c, init.c, netif.c: change igmp_init and add igmp_start. igmp_start is call inside netif_add. Now, igmp initialization is in the same spirit than the others modules. Modify some IGMP debug traces.
|
#
acbf25f2 |
|
25-Aug-2007 |
fbernon <fbernon> |
netif.h, netif.c: Integrate "patch #6163 : Function to check if link layer is up". Add a netif_is_link_up() function if LWIP_NETIF_LINK_CALLBACK option is set.
|
#
261af8dc |
|
22-Aug-2007 |
fbernon <fbernon> |
netif.h, netif.c, opt.h: Rename LWIP_NETIF_CALLBACK in LWIP_NETIF_STATUS_CALLBACK to be coherent with new LWIP_NETIF_LINK_CALLBACK option before next release.
|
#
9152d667 |
|
09-Aug-2007 |
fbernon <fbernon> |
Comments Fix for Doxygen documentation
|
#
c555b532 |
|
08-Aug-2007 |
jgrubb <jgrubb> |
Add NETIF_LINK_CALLBACK into the netif_set_link_up/down functions
|
#
116bcb9d |
|
13-Jul-2007 |
fbernon <fbernon> |
opt.h, netif.h, netif.c, ethernetif.c: Add new configuration option to add a link callback in the netif struct, and functions to handle it. Be carefull for port maintainers to add the NETIF_FLAG_LINK_UP flag (like in ethernetif.c) if you want to be sure to be compatible with future changes...
|
#
96e4ec4a |
|
02-Jul-2007 |
goldsimon <goldsimon> |
Added option LWIP_NETIF_HWADDRHINT (default=off) to cache ARP table indices with each pcb instead of single-entry cache for the complete stack.
|
#
cbf28158 |
|
16-Jun-2007 |
goldsimon <goldsimon> |
Fixed bug #20180 (TCP pcbs listening on IP_ADDR_ANY could get changed in netif_set_ipaddr if previous netif->ip_addr.addr was 0.
|
#
e01f3420 |
|
09-Jun-2007 |
fbernon <fbernon> |
Contrib module by Dominik Spies: autoip.h, autoip.c, dhcp.h, dhcp.c, netif.h, netif.c, etharp.h, etharp.c, opt.h: AutoIP implementation available for IPv4, with new options LWIP_AUTOIP and LWIP_DHCP_AUTOIP_COOP if you want to cooperate with DHCP. Some tips to adapt (see TODO mark in the source code).
|
#
1a25062a |
|
07-Jun-2007 |
goldsimon <goldsimon> |
Done some work on task #1549 (function documentation)
|
#
4208bcd8 |
|
30-Mar-2007 |
fbernon <fbernon> |
Fix on NETIF_FLAG_ETHARP test (test inverted)
|
#
5368a760 |
|
30-Mar-2007 |
fbernon <fbernon> |
most of files: prefix all debug.h define with "LWIP_" to avoid any conflict with others environment defines (these were too "generic").
|
#
cd1c96db |
|
28-Mar-2007 |
fbernon <fbernon> |
netif.h, netif.c: A new NETIF_FLAG_ETHARP flag is defined in netif.h, to allow to initialize a network interface's flag with. It tell this interface is an ethernet device, and we can use ARP with it to do a "gratuitous ARP" (RFC 3220 "IP Mobility Support for IPv4" section 4.6) when interface is "up" with netif_set_up().
|
#
028d7070 |
|
26-Mar-2007 |
goldsimon <goldsimon> |
Remove warning in netif_add(): "converting from 's16' to 'u8_t': possible loss of data" (static variable netifnum)
|
#
e5147d55 |
|
21-Mar-2007 |
kieranm <kieranm> |
* netif.c, netif.h: Apply patch#4197 with some changes (originator: rireland@hmgsl.com). Provides callback on netif up/down state change.
|
#
5a6b26d6 |
|
28-Nov-2006 |
christiaans <christiaans> |
In netif_add() fixed clearing of ip_addr, netmask, gw and flags.
|
#
65768022 |
|
07-Sep-2006 |
christiaans <christiaans> |
Fixed compilation for LWIP_SNMP 0.
|
#
130d39cc |
|
01-Sep-2006 |
christiaans <christiaans> |
Changed index structs to mib_list_node structs to place the table index trees directly in the mib tree.
|
#
54bb20b4 |
|
14-Jul-2006 |
christiaans <christiaans> |
Added SNMP statistics to struct netif and changed SNMP macro glue.
|
#
e1b215aa |
|
24-Nov-2005 |
christiaans <christiaans> |
Introduced cc.h formatters and removed SO_REUSE from transport layers.
|
#
d7699ca8 |
|
21-Jul-2004 |
softins <softins> |
Changed debug statements to use the tidier ip4_addrN() macros.
|
#
d11fcafa |
|
30-Jun-2004 |
likewise <likewise> |
Added netif up/down basics.
|
#
4eadc22a |
|
03-May-2004 |
likewise <likewise> |
Some updates on "gratuitious ARP" from RFC3220. Cleanup of some code and comments.
|
#
82f852ab |
|
11-Mar-2004 |
likewise <likewise> |
Fix cyclic dependencies by careful re-ordering of #includes. This is really nasty. Can we forward-declare pointers to structs?
|
#
a6f11114 |
|
04-Mar-2004 |
likewise <likewise> |
Matched interface documentation for netif_add() API change in 1.28.2.5.
|
#
47984b04 |
|
19-Feb-2004 |
lukem <lukem> |
removed redundant redeclaration of tcp_active_pcbs (already defined by tcp.h)
|
#
7bfea6ed |
|
16-Feb-2004 |
likewise <likewise> |
Applied Ian Wienand's patches (4-2-2004). Was partly applied earlier.
|
#
e1c4bfad |
|
06-Feb-2004 |
likewise <likewise> |
Merged from DEVEL, except for the API change in etharp.c.
|
#
1ed40e79 |
|
06-Feb-2004 |
likewise <likewise> |
Applied alias.diff by Ian Wienand on lwip-devel on February 4th 2004. Using union to make explicit either tcp_listen_pcb or tcp_pcb.
|
#
eed8ea5b |
|
27-Dec-2003 |
uid67528 <uid67528> |
Merged from DEVEL. etharp prepared for queueing feature. DHCP fix.
|
#
e4a6d199 |
|
14-Nov-2003 |
likewise <likewise> |
Merged from DEVEL into main tree.
|
#
ba786dc4 |
|
11-Jun-2003 |
likewise <likewise> |
Applied patch #1596 fixing wrongly cast LWIP_DEBUGF arguments. (printf expects integers on the var args stack)
|
#
80145519 |
|
10-Jun-2003 |
kieranm <kieranm> |
Changed DEBUGF to LWIP_DEBUGF
|
#
c699921f |
|
09-Jun-2003 |
likewise <likewise> |
Fixed a multi-line comment.
|
#
df99ce9d |
|
09-Jun-2003 |
likewise <likewise> |
Replaced all tabs with two spaces (regardless of indentation is correct).
|
#
829744df |
|
09-Jun-2003 |
likewise <likewise> |
More precise comments on address change.
|
#
b0273c92 |
|
27-May-2003 |
jani <jani> |
fix warning
|
#
03bc7c86 |
|
01-May-2003 |
likewise <likewise> |
Major stylo search/replace for "One space between keyword and opening bracket."
|
#
7662015d |
|
15-Apr-2003 |
jani <jani> |
obsolete PCB handling only active when TCP is enabled
|
#
4ecb01f4 |
|
15-Apr-2003 |
likewise <likewise> |
Changed netif name formatting from %s to %c%c.
|
#
40f10b69 |
|
11-Apr-2003 |
likewise <likewise> |
All debug messages now show actual config _after_ setting netif config.
|
#
1254b42e |
|
09-Apr-2003 |
likewise <likewise> |
Enabled code to abort/replace TCP pcbs upon netif address change.
|
#
a389b630 |
|
07-Apr-2003 |
likewise <likewise> |
Added (non-active) code handling pcbs upon changing IP address.
|
#
6d314971 |
|
02-Apr-2003 |
likewise <likewise> |
Print debug message before actually changing netif IP address config.
|
#
af8f2808 |
|
01-Apr-2003 |
likewise <likewise> |
Fixed ip_addr_set() to deal with IP_ADDR_ANY. Added "ip_addr.h" include.
|
#
1a72feb1 |
|
01-Apr-2003 |
likewise <likewise> |
etharp_query() has error return type now. Matched dhcp.c with this change. Added debug messages in other places.
|
#
6c147709 |
|
31-Mar-2003 |
likewise <likewise> |
Documentation changes. Added missing trailing newlines to debug messages.
|
#
fa34d51b |
|
24-Mar-2003 |
likewise <likewise> |
Added documentation and comments.
|
#
cea002a0 |
|
24-Mar-2003 |
likewise <likewise> |
Forgot #if LWIP_DHCP around netif->dhcp = NULL;
|
#
ce4dbcec |
|
24-Mar-2003 |
likewise <likewise> |
Initialized netif->dhcp to NULL.
|
#
dbdd0f52 |
|
13-Mar-2003 |
likewise <likewise> |
Added source comments.
|
#
8613f2a4 |
|
07-Mar-2003 |
jani <jani> |
factor out netif_set_addr so address of netif can be changed
|
#
18df3961 |
|
21-Feb-2003 |
jani <jani> |
byte-order handling functions are in inet.c now and the uperrcase counterparts are gone. opt.h has all the configurable items debug does not need to be directly included.
|
#
cc31bb93 |
|
20-Feb-2003 |
jani <jani> |
make netif->init return err_t instead of void.Patch from David Le Corfec
|
#
f2d35751 |
|
11-Feb-2003 |
jani <jani> |
fix doxygen comment for netif_add
|
#
c68ee2b2 |
|
10-Feb-2003 |
likewise <likewise> |
SNMP functions are now unconditionally called and defined empty if LWIP_SNMP == 0 This removes a lot of #if #endif cluttering the source code.
|
#
dd2fa15e |
|
06-Feb-2003 |
davidhaas <davidhaas> |
Add the following features and bugfixes: Added select() functionality to sockets library. Support for errno in sockets library. Byte ordering fixes. basic lwip_ioctl(), FIONREAD, get/setsockopt() etc. support - added additional argument to netif_add to pass state pointer so that the if_init function has access to context information before the interface is added, without accessing globals. - added netif_remove() - to conserve cpu load the tcpip_tcp_timer should only be active when tcbs that need it exist. - pass length of available data to callbacks for NETCONN_EVT_RCV events - added tcpip_link_input(), a hack to allow processing of PPP packets in tcpip_thread() context. This saves threads and context switches. - renamed incompatible ASSERT() macro to LWIP_ASSERT() to avoid name collision. - changed a bunch of %d's to %u's in format strings for unsigned values. - added ip_frag to lwip_stats. - changed IP_REASS_MAXAGE and IP_REASS_TMO defaults to more realistic values. - added sys_timeout_remove() function to cancel timeouts (needed by PPP amongst other things). - tolerate NULL returns from sys_arch_timeouts() since some threads might not need to use or have timeouts. - added sys_sem_wait_timeout() - moved mem_malloc() function to end of mem.c to work around tasking compiler bug. - automatically bind to local tcp port if 0. - allow customization of port ranges for automatic local bindings. - corrected various typos, spelling errors, etc.. Thanks to Marc Boucher for many of these changes.
|
#
cc4df710 |
|
08-Jan-2003 |
likewise <likewise> |
Updated lwIP module copyright years to include 2003. Committers must check theirs.
|
#
f06e9550 |
|
18-Oct-2002 |
likewise <likewise> |
Initial revision
|