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
Felix Fietkau [Thu, 12 Jul 2012 21:20:01 +0000 (23:20 +0200)]
fix device_lock/device_unlock imbalance in the hotplug device handling
Felix Fietkau [Thu, 12 Jul 2012 21:17:38 +0000 (23:17 +0200)]
add some debug messages for device user count
Jo-Philipp Wich [Wed, 11 Jul 2012 18:22:42 +0000 (20:22 +0200)]
system-linux.c: fix sysctl setting
The system_set_dev_sysctl() function erroneously used the value instead of the
device name to format the sysctl path, this change corrects that.
Felix Fietkau [Thu, 5 Jul 2012 18:32:07 +0000 (20:32 +0200)]
when specifying hotplug devices that already have existing configured devices, set the external flag
Felix Fietkau [Thu, 5 Jul 2012 18:30:46 +0000 (20:30 +0200)]
avoid setting device presence for wifi interfaces via hotplug messages
Felix Fietkau [Thu, 5 Jul 2012 18:28:31 +0000 (20:28 +0200)]
alias: use a callback for managing device presence state, track alias deps in a separate list to avoid recursion issues
Felix Fietkau [Thu, 5 Jul 2012 17:58:46 +0000 (19:58 +0200)]
split alias support into a separate source file for better readability
Felix Fietkau [Thu, 5 Jul 2012 16:17:46 +0000 (18:17 +0200)]
zero-initialize the ifreq when adding/removing bridge member interfaces
Felix Fietkau [Thu, 5 Jul 2012 16:16:31 +0000 (18:16 +0200)]
zero-initialize the ifreq when setting interfaces up or down
Felix Fietkau [Thu, 5 Jul 2012 16:15:09 +0000 (18:15 +0200)]
memset the on-stack device route when clearing local subnet routes
Felix Fietkau [Thu, 5 Jul 2012 12:33:04 +0000 (14:33 +0200)]
make alias devices attach to interface l2 devs
Felix Fietkau [Thu, 5 Jul 2012 12:18:04 +0000 (14:18 +0200)]
fix ifname for alias+vlan chains
Felix Fietkau [Thu, 5 Jul 2012 13:08:55 +0000 (15:08 +0200)]
make vlan devices virtual to avoid avl tree issues with changing ifnames when bound to alias interfaces
Felix Fietkau [Thu, 5 Jul 2012 13:06:09 +0000 (15:06 +0200)]
device: initialize dev->set_state for virtual devices
Felix Fietkau [Thu, 5 Jul 2012 13:09:40 +0000 (15:09 +0200)]
device: export device_broadcast_event
Jo-Philipp Wich [Thu, 5 Jul 2012 11:57:25 +0000 (13:57 +0200)]
vlan.c: prevent segfault in get_vlan_device_chain() if the base device does not exist