summaryrefslogtreecommitdiffhomepage
path: root/system-linux.c
AgeCommit message (Collapse)Author
2015-02-09netifd: Add option to configure base_reachable_time_ms for each deviceHans Dedecker
The UCI parameter neighreachabletime allows to control the hardware address to IP mapping lifetime in the neighbour table for both IPv4 and IPv6 Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> Signed-off-by: Jean-Francois Remy <jeff@melix.org>
2014-12-23netifd: Add mldversion config supportSteven Barth
Config support to set the MLD host version on device level; possible values are : 1 : MLDv1 2 : MLDv2 Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> Cleaned up and simplified. Signed-off-by: Steven Barth <steven@midlink.org>
2014-12-08netifd: Add igmpversion config supportHans Dedecker
Config support to set the IGMP host version on device level; possible values are : 1 : IGMPv1 2 : IGMPv2 3 : IGMPv3 Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> Cleand up and simplified Signed-off-by: Steven Barth <steven@midlink.org>
2014-12-08netifd: Fix restore of original device settingsHans Dedecker
Don't restore original device settings based on the device settings flags in system_if_down as device flags are already reset when the device config is deleted. Therefore move the masking of the relevant original device settings to system_if_up. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2014-11-27netifd v2: Fix source routing for IPv4Kristian Evensen
According to the OpenWRT Network documentation for route, the 'source' option is "The preferred source address when sending to destinations covered by the target". However, netifd currently stores this value in RTA_SRC on NEWROUTE/DELROUTE. RTA_SRC is not used by kernel when handling NEWROUTE nor DELROUTE for IPv4 routes. When adding a new IPv4 route, the source is stored in RTA_PREFSRC and the option works as specified in documentation. For IPv6, the address is still stored in RTA_SRC as to not break source-destination routing for IPv6. v2: Limit patch to IPv4, to prevent breaking IPv6 configurations (thanks Steven Barth) Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com>
2014-11-25Fix setting blackhole-routes to kernelSteven Barth
Signed-off-by: Steven Barth <steven@midlink.org>
2014-11-19netifd: Add acceptlocal config supportHans Dedecker
Adds support to accept packets with local source address. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2014-11-19netifd: Add rpfilter config supportHans Dedecker
Reverse path filtering config support; possible values are: 0: no source validation 1|strict: strict mode as packet will be dropped if the incoming interface is not the best reverse path 2|loose: loose mode as packet will be dropped if the source address is not reachable via any interface Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2014-11-19netifd: Remove superfluous system_if_resolve callsHans Dedecker
Don't resolve the ifindex of the parent device again when adding vlandev and macvlan devices as the ifindex has already been resolved. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2014-11-19netifd: Fix device ifindex overwrite when processing netlink event messagesHans Dedecker
When a device with the same name is deleted and created again in the kernel the ifindex changes. A race condition will occur when netlink event messages linked to the old device are processed and will thus overwrite the correct ifindex of the new device. Further make sure a valid ifindex is in place for both external and internal devices when setting the state to enabled. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2014-10-24netifd: Read current link state when processing netlink eventHans Dedecker
Netifd commit b2dcb02570939d98b92c7c55db1c328693a5d52a introduces a race condition resulting into infinite toggling interfaces (eg static interfaces with linksensing enabled, vlan interfaces with proto none (#18106)) when linksensing is enabled resulting into a crash. As netlink event messages will be queued on the netlink event socket the included lower up interface flag will not always represent the current link state when netifd processes the netlink messages; by reading the current link state when a netlink event message is parsed the correct info is passed to the device layer. This will avoid continuous interface toggling (down/up) triggered by link state changes based on outdated netlink interface info. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2014-10-24system-linux: fix a glob related memleakFelix Fietkau
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2014-10-20device: make link status detection optional for vlan devicesFelix Fietkau
Fixes a race condition that triggers endless link loss / detect calls when VLAN devices are created. Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2014-10-02netifd: IPIP tunnel supportHans Dedecker
Adds IPIP tunnel support to netifd. Following IPIP tunnel parameters can be configured : -peeraddr (IPv4 remote address) -ipaddr (IPv4 local address) -mtu (IPIP tunnel mtu) -ttl (time to live of encapsulting packets) -tos (type of service either inherit (outer header inherits the value of the inner header) or hex value) -df (don't fragment flag of encapsulating packets) -tunlink (bind tunnel to this interface) Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2014-09-29netifd: GRE Tos supportHans Dedecker
Tos support is added as a generic gre parameter which can have the following values : -inherit (outer header inherits the tos value of the inner header) -hex value Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2014-09-17netifd-device: add support for promisc settingMartin Hundebøll
Signed-off-by: Martin Hundebøll <martin@hundeboll.net>
2014-08-06Disable new-style tunnel creation for older kernelsSteven Barth
Signed-off-by: Steven Barth <steven@midlink.org>
2014-07-30netifd: GRE tunnel supportHans Dedecker
Adds support for gre, gretap, grev6 and grev6tap tunnels Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2014-07-24bridge: enable multicast querier functionality by defaultFelix Fietkau
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2014-06-29bridge: enable multicast_to_unicast on all wireless bridge portsFelix Fietkau
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2014-06-20system: fix treatment of RT_TABLE_MAINSteven Barth
Do not treat RT_TABLE_MAIN as RT_TABLE_UNSPEC in system_resolve_rt_table() in order to allow ip rules with lookup main to work as expected. Provide a new function system_is_default_rt_table() to allow calling code to specifically test for RT_TABLE_MAIN, this is going to be needed for the backwards compatible handling of the table attribute in route objects. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2014-06-18linux: unify functions to delete linksSteven Barth
Signed-off-by: Steven Barth <steven@midlink.org>
2014-06-18netifd: Route type supportHans Dedecker
Patch adds route type support in netifd by means of the route parameter type. By default the route type was unicast; the parameter adss support for local/broadcast/multicast/unicast routes which will be put into the appropriate routing table. If route type parameter is unset the route type will be unicast as before. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2014-06-18netifd: Fix ipip6 tunnel memleak in case of tunnel creation failureHans Dedecker
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2014-06-18netifd: Fix macvlan delete via netlinkHans Dedecker
Fix macvlan delete via netlink as netlink attribute IFLA_IFNAME data size was incorrect (size reject by the kernel) and NLM_F_REQUEST flag was missing. In addition some minor improvements (attribute IFLA_INFO_KIND can be left out as RTM_DELLINK does not require the attribute) Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2014-06-18netifd: Fix vlan delete via netlinkHans Dedecker
Fix vlan delete via netlink as netlink attribute IFLA_IFNAME data size was incorrect. In addition some minor improvements. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2014-06-11Add vlan 802.1q/802.1ad support as netifd devicesGioacchino Mazzurco
At moment netifd supports just 802.1q vlan, you can configure them using a concise but "hacky" syntax using an interface config section, with this patch netifd acquire the capability of configuring 802.1ad and 802.1q vlan using config device sections, so you can define a vlan device plus interface with something like this: config device 'test' option type '8021ad' option name 'test' option ifname 'eth0' option vid '1000' config interface 'testif' option ifname 'test' option proto 'none' option auto '1' old syntax for 802.1q keeps working so no retrocompatibility problems, to keep retrocompatibility means also that user must not use name/ifname like eth0.2 for devices declared with the new style because this would trigger the "old style" when interface config section is parsed Signed-off-by: Gioacchino Mazzurco <gmazzurco89@gmail.com>
2014-06-10Add support for onlink-flags for IPv4 routesSteven Barth
Signed-off-by: Steven Barth <steven@midlink.org>
2014-05-21Rewrite ipip6-tunnel setup to use netlink and add support for FMRsSteven Barth
Signed-off-by: Steven Barth <steven@midlink.org>
2014-05-10system-linux: always set the ifindex for hotplug devices on initFelix Fietkau
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2014-05-09netifd: Effectively apply configured route mtuHans Dedecker
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2014-04-26netifd: Add interface config support to enable/disable IPv6 in the kernel ↵Hans Dedecker
per device Main use case is being able to disable IPv6 on (a) WAN interface(s) when only IPv4 connectivity is offered or 6rd is used. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2014-03-11netifd: Fix bridge MTU setting when a bridge member is addedHans Dedecker
Reapply bridge mtu setting as adding a bridge member will override the bridge mtu in the kernel Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2014-02-27netifd: Link layer state awareness support on device levelHans Dedecker
Device layer is informed by netlink events regarding the link layer status. Link layer status change results in a DEV_EVENT_LINK_UP/DEV_EVENT_LINK_DOWN broadcast event for a given device. Depends on uloop error callback patch. Solves issue reported in https://dev.openwrt.org/ticket/14590 Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> Acked-by: Karl Vogel <karl.vogel@gmail.com>
2014-02-16Work around warn_unused_result in recent gcc/libcSteven Barth
2014-02-14netifd : Disable netlink auto ackHans Dedecker
Disable netlink auto ack when doing a delete in the get callback handler to avoid race conditions resulting into stalled message on the netlink socket. Solves issue reported in https://dev.openwrt.org/ticket/14590 Signed-off-by: Karl Vogel <karl.vogel@gmail.com> Acked-by: Hans Dedecker <dedeckeh@gmail.com>
2013-12-14Revert "netifd: Link layer state support on device level"Felix Fietkau
This reverts commit c439b52400978dd3799c66e1f632ee68d2c7c9eb.
2013-12-11IPv6: Remove IPv6 source-routing workaround (kernel is fixed)Steven Barth
Signed-off-by: Steven Barth <steven@midlink.org>
2013-12-08netifd: Link layer state support on device levelHans Dedecker
Patch implements link layer state awareness (aka carrier detection) in netifd on device level. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2013-12-08Tunnel don't fragment bit configurableHans Dedecker
Make tunnel don't fragment bit configurable via UCI Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2013-12-08netifd: Apply tunnel MTUHans Dedecker
Tunnel MTU is applied according to the tunnel MTU UCI parameter Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2013-10-22utils: add a function for checking if a process given by pid is still aliveFelix Fietkau
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2013-10-03device: add macvlan supportFelix Fietkau
Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2013-06-03IPv6: Improve source-routing policiesSteven Barth
* 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
2013-05-28IPv6: fix address-lifetime overflows on 64-bit architecturesSteven Barth
2013-05-27Move iprule flushing to the init function to make the timing predictableJo-Philipp Wich
2013-05-27Move initial iprule flushing to system_add_iprule() to not collide with ↵Jo-Philipp Wich
generic multiwan support
2013-05-13Use logical instead of physical name for tunnel underlying link.Steven Barth
Signed-off-by: Steven Barth <steven@midlink.org>
2013-05-13Add support for IP in IPv6 tunnels (DS-Lite)Steven Barth
Signed-off-by: Steven Barth <steven@midlink.org>
2013-05-11IPv6: Use source-routing to allow multi-wanSteven Barth