Steven Barth [Mon, 3 Jun 2013 16:42:10 +0000 (18:42 +0200)]
IPv6: Improve source-routing policies
* Set a default policy-failed rule per prefix (based on a patch by Jonas Gorski)
* Use input interface in addition to source for filtering
* Avoid duplicate routing policies
Steven Barth [Fri, 31 May 2013 15:05:58 +0000 (17:05 +0200)]
IPv6: fix device_prefix vlist_key to not include prefix class
Steven Barth [Fri, 31 May 2013 14:56:07 +0000 (16:56 +0200)]
move excluded prefix and length out of key for device_prefix
Steven Barth [Thu, 30 May 2013 14:33:44 +0000 (16:33 +0200)]
Add missing update-triggers for source-based routing
Steven Barth [Thu, 30 May 2013 14:32:00 +0000 (16:32 +0200)]
IPv6: reorganize prefix assignment
* put parameters in a more suitable place
* add support for prefix classes
Steven Barth [Thu, 30 May 2013 07:37:34 +0000 (09:37 +0200)]
IPv6: Log a warning if users have prefixes but haven't assigned them
Steven Barth [Wed, 29 May 2013 07:36:20 +0000 (09:36 +0200)]
IPv6: remove ULA prefix-trigger (unused)
Steven Barth [Tue, 28 May 2013 18:47:33 +0000 (20:47 +0200)]
IPv6: fix address-lifetime overflows on 64-bit architectures
Steven Barth [Tue, 28 May 2013 17:59:19 +0000 (19:59 +0200)]
IPv6: fix wrap-arounds in address lifetimes
Jo-Philipp Wich [Tue, 28 May 2013 10:11:12 +0000 (12:11 +0200)]
Make sure that iprule flushing happens after system_init(), otherwise the rtnl_socket is not available
Jo-Philipp Wich [Mon, 27 May 2013 17:57:58 +0000 (19:57 +0200)]
Move iprule flushing to the init function to make the timing predictable
Jo-Philipp Wich [Mon, 27 May 2013 17:45:20 +0000 (19:45 +0200)]
Move initial iprule flushing to system_add_iprule() to not collide with generic multiwan support
Steven Barth [Fri, 17 May 2013 14:24:37 +0000 (16:24 +0200)]
Add option to define target routing table for protocol routes.
This unifies source-routing for both IPv6 and IPv4 (default off).
Based on a patch by Kristian Evensen
Steven Barth [Mon, 13 May 2013 16:41:00 +0000 (18:41 +0200)]
IPv6: Set loopback-policy for output traffic
Signed-off-by: Steven Barth <steven@midlink.org>
Steven Barth [Mon, 13 May 2013 09:12:10 +0000 (11:12 +0200)]
Use logical instead of physical name for tunnel underlying link.
Signed-off-by: Steven Barth <steven@midlink.org>
Steven Barth [Mon, 13 May 2013 08:55:01 +0000 (10:55 +0200)]
Add support for IPv6 and interface target-routes & dependencies
Signed-off-by: Steven Barth <steven@midlink.org>
Steven Barth [Mon, 13 May 2013 07:23:06 +0000 (09:23 +0200)]
Add support for IP in IPv6 tunnels (DS-Lite)
Signed-off-by: Steven Barth <steven@midlink.org>
Steven Barth [Sat, 11 May 2013 10:56:02 +0000 (12:56 +0200)]
IPv6: Use source-routing to allow multi-wan
Steven Barth [Wed, 8 May 2013 14:47:55 +0000 (16:47 +0200)]
IPv6: Use key=val format for prefix options
Jo-Philipp Wich [Thu, 2 May 2013 08:47:40 +0000 (10:47 +0200)]
utils: use list_add_tail() in vlist_simple_add() to preserve user-defined order of entries
Jo-Philipp Wich [Sat, 27 Apr 2013 09:14:07 +0000 (11:14 +0200)]
bridge: disable multicast snooping by default
Felix Fietkau [Thu, 25 Apr 2013 16:27:20 +0000 (18:27 +0200)]
interface: fix removing main_dev on config reload changes if ifname is reset to NULL
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Thu, 25 Apr 2013 16:19:45 +0000 (18:19 +0200)]
interface: rework reload, ensure that all changes are applied before restarting the interface
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Jo-Philipp Wich [Tue, 23 Apr 2013 14:04:36 +0000 (16:04 +0200)]
set default bridge priority to 0x7FFF
Niels Boehm [Mon, 4 Feb 2013 18:05:17 +0000 (18:05 +0000)]
add bridge priority option
[netifd] add bridge priority option
Using the bridge priority (lower numbers are higher in the
hierarchy), one can ensure that the router is chosen as root
bridge in a setup with spanning tree protocol.
For instance, one can set the priority of network lan to 32767,
causing the router to win over all directly and indirectly
connected nodes that have a default priority of 32768.
The reason for doing that is that otherwise it has a default
priority 32768 as well and any other connected node could win and
get root bridge. In a home setup, those nodes are often desktop
or laptop boxes and get switched off from time to time. As a
consequence, root bridges vanish or new root bridges get chosen
relatively often, resulting in frequent topology changes to the
STP network. While the new topology has not settled, packets can
get lost, causing noticeable interruptions of network traffic.
Setting the router's bridge on a lower numbered priority (and thus
higher in the selection hierarchy) solves the problem in the vast
majority of the cases by ensuring that the device that is most
likely powered on 24/7 gets chosen as root and prevents topology
changes.
Signed-off-by: Niels Boehm <blubberdiblub@gmail.com>
Steven Barth [Fri, 19 Apr 2013 13:36:19 +0000 (15:36 +0200)]
IPv6: Try harder to assign prefix parts
Felix Fietkau [Mon, 15 Apr 2013 14:20:50 +0000 (16:20 +0200)]
device: use safe_list for device event, fixes some hang issues
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Steven Barth [Tue, 9 Apr 2013 13:41:00 +0000 (15:41 +0200)]
IPv6: Remove local ULA if there is an external one
Jo-Philipp Wich [Tue, 9 Apr 2013 12:16:19 +0000 (14:16 +0200)]
Fix comparisation conditions in route_cmp()
Steven Barth [Fri, 5 Apr 2013 13:25:38 +0000 (15:25 +0200)]
Fix a memory corruption when updating IPv6 prefixes
Jo-Philipp Wich [Fri, 5 Apr 2013 11:45:08 +0000 (13:45 +0200)]
Maintain config order of ip rules unless user explicitely provides priority
Felix Fietkau [Fri, 5 Apr 2013 11:14:44 +0000 (13:14 +0200)]
fix route sorting order
New sorting order:
- prefix length (descending)
- metric (ascending)
- flags
- target address
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Steven Barth [Fri, 5 Apr 2013 11:31:37 +0000 (13:31 +0200)]
Add myself to header for IPv6 work
Jo-Philipp Wich [Fri, 5 Apr 2013 10:24:13 +0000 (12:24 +0200)]
Fix system_resolve_rt_table() stub in system-dummy.c
Jo-Philipp Wich [Fri, 5 Apr 2013 09:15:58 +0000 (11:15 +0200)]
Incorperate route table into avl key
Jo-Philipp Wich [Thu, 4 Apr 2013 12:41:40 +0000 (14:41 +0200)]
Expose route table if route is not in the main table
Jo-Philipp Wich [Thu, 4 Apr 2013 12:41:39 +0000 (14:41 +0200)]
Add support for ip rules
Jo-Philipp Wich [Thu, 4 Apr 2013 12:41:38 +0000 (14:41 +0200)]
Implement support for route / route6 table attribute
Steven Barth [Wed, 3 Apr 2013 18:03:15 +0000 (20:03 +0200)]
Rewrite IPv6 prefix assignment
Steven Barth [Tue, 19 Mar 2013 10:13:15 +0000 (11:13 +0100)]
Fix IPv6 RDNSS writing to resolv.conf (buffer was too short)
Thomas Gstädtner [Sun, 3 Mar 2013 17:20:10 +0000 (18:20 +0100)]
fix libnl detection
Steven Barth [Tue, 19 Feb 2013 08:36:23 +0000 (09:36 +0100)]
Only update resolv.conf if changed (avoid logspam)
Felix Fietkau [Mon, 11 Feb 2013 21:10:03 +0000 (22:10 +0100)]
prefer to link against libjson-c over libjson (the new library name in git versions of json-c)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sun, 10 Feb 2013 18:14:35 +0000 (19:14 +0100)]
device: protect device event broadcast against simultaneous deletions of multiple receivers in the callback (can happen with aliases)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sun, 10 Feb 2013 18:02:49 +0000 (19:02 +0100)]
proto: default to 128 instead of the "netmask" option for ipv6 addresses
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Steven Barth [Fri, 1 Feb 2013 12:17:41 +0000 (13:17 +0100)]
Improved IPv6 featureset
* Fix reloading of ula-prefixes
* Added support for temporary addresses and routes
* Added support for offlink addresses
* Improved status-output for assigned prefixes
Felix Fietkau [Tue, 29 Jan 2013 14:36:51 +0000 (15:36 +0100)]
proto-shell: use the new network.interface object
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Tue, 29 Jan 2013 14:33:22 +0000 (15:33 +0100)]
ubus: add a network.interface object to access network.interface.* methods without racing wrt. object add/remove
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Tue, 29 Jan 2013 14:00:01 +0000 (15:00 +0100)]
fix cleaning up interface state for reload
Do not clean up config related state or interface dependencies
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Steven Barth [Tue, 29 Jan 2013 10:57:18 +0000 (11:57 +0100)]
Add deprecation for static IPv6 prefixes
Steven Barth [Tue, 29 Jan 2013 10:36:32 +0000 (11:36 +0100)]
IPv6 prefixes: conform to RFC 6204 requirement L13
Felix Fietkau [Mon, 28 Jan 2013 20:33:05 +0000 (21:33 +0100)]
alias: set ifindex on alias device to fix setting addresses/routes
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Tue, 22 Jan 2013 16:04:40 +0000 (17:04 +0100)]
alias: if the underlying device changes (or goes away), set the device present status to false to make its users shut down
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Steven Barth [Tue, 22 Jan 2013 15:42:40 +0000 (16:42 +0100)]
Don't segfault with an unset ula_prefix
Steven Barth [Mon, 21 Jan 2013 08:50:43 +0000 (09:50 +0100)]
Fix segfaults in prefix handling
Felix Fietkau [Sun, 20 Jan 2013 15:45:59 +0000 (16:45 +0100)]
alias: rework device updates
Apply immediately if alias device is not claimed, otherwise defer until release
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Steven Barth [Wed, 16 Jan 2013 13:56:10 +0000 (14:56 +0100)]
alias: use layer 3 device instead of main device
Steven Barth [Tue, 15 Jan 2013 12:19:34 +0000 (13:19 +0100)]
Fix a race-condition in prefix-assignment
Felix Fietkau [Tue, 15 Jan 2013 10:08:19 +0000 (11:08 +0100)]
interface-ip: use calloc_a to get rid of an extra allocation
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Tue, 15 Jan 2013 10:00:23 +0000 (11:00 +0100)]
interface-ip: replace prefix_assignment_cmp with avl_strcmp
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Tue, 15 Jan 2013 09:57:14 +0000 (10:57 +0100)]
remove commented out TODO items
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Steven Barth [Tue, 8 Jan 2013 17:52:32 +0000 (18:52 +0100)]
Initial IPv6 prefix support
Signed-off-by: Steven Barth <steven@midlink.org>
Felix Fietkau [Tue, 15 Jan 2013 09:54:37 +0000 (10:54 +0100)]
add mac os x compat #define for in6_addr s6_addr32
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Jo-Philipp Wich [Sun, 13 Jan 2013 19:34:36 +0000 (20:34 +0100)]
system-linux.c: use uin64_t datatype to read and store interface statistics, pass values as u64 blob type
Nathan Hintz [Sun, 6 Jan 2013 02:41:45 +0000 (18:41 -0800)]
fix removal of unknown device
Netifd will crash if an attempt is made to remove a device that is not
known to netifd. For instance:
ubus call network.interface.lan remove_device "{ \"name\": \"xxx\" }"
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
Felix Fietkau [Sat, 5 Jan 2013 15:13:29 +0000 (16:13 +0100)]
proto-shell: use calloc_a
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sat, 5 Jan 2013 14:48:57 +0000 (15:48 +0100)]
utils.h: get rid of the duplicate BUILD_BUG_ON definition, use the one from libubox
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Mon, 31 Dec 2012 15:36:01 +0000 (16:36 +0100)]
use calloc_a for interface error allocations
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Mon, 31 Dec 2012 15:35:13 +0000 (16:35 +0100)]
interface: do not clear errors after an interface is marked as down, the user might like to read them
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sat, 29 Dec 2012 17:54:54 +0000 (18:54 +0100)]
log: fix processing of incomplete lines
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Mon, 17 Dec 2012 22:22:46 +0000 (23:22 +0100)]
duplicate error subsystem and code for interface errors to prevent accessing stale data
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Mon, 17 Dec 2012 14:55:45 +0000 (15:55 +0100)]
netifd: stop using jshn_append
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Thu, 13 Dec 2012 16:13:43 +0000 (17:13 +0100)]
rewrite resolv.conf after any interface state change (not just up)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Wed, 5 Dec 2012 13:26:09 +0000 (14:26 +0100)]
rewrite resolv.conf after interface up setting updates
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Frank Meerkötter [Mon, 3 Dec 2012 18:29:16 +0000 (19:29 +0100)]
fix error checking of asprintf
see man asprintf
[...]
RETURN VALUE
When successful, these functions return the number of bytes printed, just like sprintf(3).
If memory allocation wasn't possible, or some other error occurs, these functions will return -1,
and the contents of strp is undefined.
Signed-off-by: Frank Meerkötter <frank@meerkoetter.org>
Felix Fietkau [Tue, 30 Oct 2012 00:21:35 +0000 (01:21 +0100)]
alias: add (and call) a check_state function to fix dynamically creating aliases for interfaces that are already up
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Tue, 30 Oct 2012 00:13:17 +0000 (01:13 +0100)]
fix container_of for the log ustream
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Tue, 30 Oct 2012 00:12:35 +0000 (01:12 +0100)]
move uloop_process_delete call to get rid of an unnecessary check
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Mon, 29 Oct 2012 23:50:47 +0000 (00:50 +0100)]
proto-shell: ensure that the teardown timeout gets killed
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Mon, 29 Oct 2012 23:03:47 +0000 (00:03 +0100)]
log: the ustream notify_state callback is now optional, remove the stub
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Mon, 29 Oct 2012 22:55:14 +0000 (23:55 +0100)]
use ustream for process message logging
Felix Fietkau [Mon, 29 Oct 2012 22:08:01 +0000 (23:08 +0100)]
use FD_CLOEXEC instead of tracking lists of fds
Felix Fietkau [Fri, 19 Oct 2012 13:49:46 +0000 (15:49 +0200)]
bridge: toggle device present state after freeing a bridge member to ensure that it can be reassigned to a different bridge
Felix Fietkau [Fri, 19 Oct 2012 13:49:21 +0000 (15:49 +0200)]
free unused devices after cleaning up interfaces to get rid of recently-freed bridge devices
Felix Fietkau [Fri, 19 Oct 2012 13:48:52 +0000 (15:48 +0200)]
fix device_lock/device_unlock imbalances
Felix Fietkau [Fri, 28 Sep 2012 23:07:59 +0000 (01:07 +0200)]
system-linux: do not delete kernel-generated ipv6 routes to fix using advertised routes
Jo-Philipp Wich [Fri, 28 Sep 2012 15:41:08 +0000 (17:41 +0200)]
device.c: use format_macaddr() helper to convert mac addresses to strings, ether_ntoa() does not guarantee a canonical format
Jo-Philipp Wich [Fri, 28 Sep 2012 15:40:38 +0000 (17:40 +0200)]
utils.c: add helper function to format mac addresses as strings
Jo-Philipp Wich [Thu, 13 Sep 2012 07:24:12 +0000 (10:24 +0300)]
ubus.c: now that disabled routes are in the inactive subtable it makes no sense to expose the enabled attribute anymore
Jo-Philipp Wich [Thu, 13 Sep 2012 06:57:16 +0000 (09:57 +0300)]
ubus.c: move disabled routes, ips, dns server into an "inactive" subtable
Jo-Philipp Wich [Thu, 13 Sep 2012 06:56:14 +0000 (09:56 +0300)]
interface-ip.c: fix possible null pointer access if calloc() fails
Felix Fietkau [Thu, 6 Sep 2012 14:54:16 +0000 (16:54 +0200)]
add optional flag for disabling compiler optimization (debug only)
Felix Fietkau [Thu, 6 Sep 2012 14:53:50 +0000 (16:53 +0200)]
do not prematurely release the main dev on link loss, should fix DHCP NAK handling
Felix Fietkau [Thu, 6 Sep 2012 10:57:20 +0000 (12:57 +0200)]
clean up and fix system-dummy addr/route messages
Jo-Philipp Wich [Sat, 11 Aug 2012 16:01:28 +0000 (18:01 +0200)]
system-linux.c: install user routes with RTPROT_STATIC instead of RTPROT_BOOT so that routing daemons like quagga will pick it up
Felix Fietkau [Thu, 12 Jul 2012 21:48:29 +0000 (23:48 +0200)]
do not recreate or restart external devices on settings changes, apply them at runtime
Felix Fietkau [Thu, 12 Jul 2012 21:46:32 +0000 (23:46 +0200)]
apply basic device settings for hotplug devices, e.g. mtu and txqueuelen
Felix Fietkau [Thu, 12 Jul 2012 21:28:22 +0000 (23:28 +0200)]
add simple device config params to interface blob attributes, and add a flag that indicates if it is present
Felix Fietkau [Thu, 12 Jul 2012 21:25:21 +0000 (23:25 +0200)]
expose system_if_apply_settings, make it ignore the mac address for external devices
Felix Fietkau [Thu, 12 Jul 2012 21:20:38 +0000 (23:20 +0200)]
ensure hotplug devices are marked as present in the add path - they are not cleaned up if they have config settings attached to them