summaryrefslogtreecommitdiff
path: root/src/network
AgeCommit message (Collapse)Author
2015-05-04network: Implement fallback DHCPv6 prefix handling for older kernelsPatrik Flykt
When setting IPv6 addresses acquired by DHCPv6, systemd-networkd sets the IFA_F_NOPREFIXROUTE flag in the IFA_FLAGS netlink attribute. As the flag and the attribute are present starting with Linux 3.14, older kernels will need systemd-network to manage prefix route expiry. By default, DHCPv6 addresses are first assigned setting the IFA_F_NOPREFIXROUTE flag in the IFA_FLAGS netlink attribute. Should the address assignment fail, the same assignment is tried without the IFA_FLAGS attribute. Should also the second attempt fail, an error is printed and address assignment ends with failure. As successful use of the IFA_FLAGS netlink attribute is recorded in the Link structure, the DHCPv6 code will know if the kernel or systemd-network fallback code handles expiring prefixes. The prefix expiration and IPv6 address updating fallback code is resurrected from the parts deleted with commit 47d45d3cde45d6545367570264e4e3636bc9e345. This patch can be removed once the minimum kernel requirements are greater than or equal to 3.14.
2015-04-29networkd: introduce vti6 tunnelSusant Sahani
This patch add support to create vti6 tunnel test: vt6.network [Match] Name=wlan0 [Network] Tunnel=ip6vti vti6.netdev [NetDev] Name=ip6vti Kind=vti6 [Tunnel] Local=2a00:ffde:4567:edde::4987 Remote=2001:473:fece:cafe::5179 ip link 11: ip6_vti0@NONE: <NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default link/tunnel6 :: brd :: 12: ip6vti@wlan0: <POINTOPOINT,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default link/tunnel6 2a00:ffde:4567:edde::4987 peer 2001:473:fece:cafe::5179
2015-04-29networkd: tunnel improve loggingSusant Sahani
Replaces a lof ot strerror() usage with log_netdev_error_errno()
2015-04-29sd-bus: drop bus parameter from message callback prototypeLennart Poettering
This should simplify the prototype a bit. The bus parameter is redundant in most cases, and in the few where it matters it can be derived from the message via sd_bus_message_get_bus().
2015-04-21networkd-fdb: indentation/whitespace fixesLennart Poettering
2015-04-21networkd: improve how networkd logs thingsLennart Poettering
This makes adds a couple of fixes: - Introduces log_netdev_error_errno() and friends, which takes an error number, and matches what log_link_error_errno() and friends do. - Replaces a lof ot strerror() usage with log_netdev_error_errno(), log_link_error_errno() and log_erro_errno() - Uppercases the first character of many log messages, after all this is supposed to be english language - Drops manual negating of error codes before passing them to log functions, the log functions all do that internally anyway. Some other minor fixes. Behaviour should not change really.
2015-04-21networkd man: fix man and config name.Susant Sahani
Rename bond confs and man as well. [tomegun: dropped a stray comma]
2015-04-21networkd: fix confusion between log_netdev_error() but log_warning_netdev()Lennart Poettering
We should always name the object first, the level second, like everywhere else in the sources.
2015-04-20networkd: Add support for bond option.Susant Sahani
This patch adds configurational support for bond option. Test conf: bond.netdev --- [NetDev] Name=bond1 Kind=bond [Bond] ArpAllTargets=all PrimaryReselect=better ArpIntervalSec=10s ArpIpTargets= 192.168.8.102 192.168.8.101 192.168.8.102 --- $cat /proc/net/bonding/bond1 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: load balancing (round-robin) MII Status: up MII Polling Interval (ms): 0 Up Delay (ms): 0 Down Delay (ms): 0 ARP Polling Interval (ms): 10000 ARP IP target/s (n.n.n.n form): 192.168.8.100, 192.168.8.101, 192.168.8.102
2015-04-20networkd vxlan: Add support for enabling UDP checksumsSusant Sahani
Add UDPCheckSum option to enable transmitting UDP checksums when doing VXLAN/IPv4. Add UDP6ZeroChecksumRx, and UDP6ZeroChecksumTx options to enable sending zero checksums and receiving zero checksums in VXLAN/IPv6 [tomegun: rebase manpage due to whitespace changes]
2015-04-11shared: add terminal-util.[ch]Ronny Chevalier
2015-04-09networkd: do not assign the variable twiceThomas Hindoe Paaboel Andersen
2015-04-03networkd: improve logging when processing links and addressesTom Gundersen
2015-04-02networkctl: port from libudev to sd-deviceTom Gundersen
2015-03-27network: don't pass NULL to udev_device_get_driver()Tom Gundersen
2015-03-27fix gcc warnings about uninitialized variablesHarald Hoyer
like: src/shared/install.c: In function ‘unit_file_lookup_state’: src/shared/install.c:1861:16: warning: ‘r’ may be used uninitialized in this function [-Wmaybe-uninitialized] return r < 0 ? r : state; ^ src/shared/install.c:1796:13: note: ‘r’ was declared here int r; ^
2015-03-27networkd-dhcp6: Do not handle prefix expiryPatrik Flykt
Expiring prefixes need not be handled anymore as the kernel has been instructed not to create routes for DHCPv6 assigned addresses via the IFA_F_NOPREFIXROUTE flag.
2015-03-27systemd-networkd: Use IFA_F_NOPREFIXROUTE with IPv6 addressesPatrik Flykt
The IFA_F_NOPREFIXROUTE flag prevents the kernel from creating new onlink prefixes when a DHCPv6 IPv6 address with a prefix length is set from user space. IPv6 routing will follow the onlink status from Router Advertisment Prefix Information options or any manually set route, which is the correct thing to do. As this flag has a larger value than what fits into an unsigned char, update the flag attribute to an uint32_t and set it with an IFA_FLAGS attribute when writing netlink messages to the kernel.
2015-03-21networkd: use LOG_WARN not LOG_ERR for non-fatal errorsZbigniew Jędrzejewski-Szmek
2015-03-15network: add UseNTP DHCP optionMichael Marineau
Despite having the internal logic in place to enable/disable using NTP servers provided by DHCP the network config didn't expose the option.
2015-03-13Use space after a silencing (void)Zbigniew Jędrzejewski-Szmek
We were using a space more often than not, and this way is codified in CODING_STYLE.
2015-03-07networkctl: avoid leak if a field was specified twiceZbigniew Jędrzejewski-Szmek
The input data would have to be borked, so this is unlikely to happen, but since we have a nice helper function to do it properly... why not? CID #1261390.
2015-03-04networkd: Make DHCP client ID creation configurableJan Janssen
2015-03-04networkd: netdev - inform when we take over an existing netdevTom Gundersen
The crucial point here is that we will not change the settings of a netdev created by someone else we simply use it as is and trust it was set up as intended. This is confusing in the case of the pre-created netdev's (bond0 etc.), the solution should probably be to simply make the kernel stop creating these devices as they are pretty useless.
2015-02-27networkd: add support for Uplink Failure DetectionAlin Rauta
Introduce BindCarrier= to indicate the set of links that determine if the current link should be brought UP or DOWN. [tomegun: add a bit to commit message]
2015-02-23remove unused includesThomas Hindoe Paaboel Andersen
This patch removes includes that are not used. The removals were found with include-what-you-use which checks if any of the symbols from a header is in use.
2015-02-14networkd: network - rename ipv6token parserTom Gundersen
Too generic name.
2015-02-14networkd: .network - rename LinkLocal to LinkLocalAddressingTom Gundersen
Makes it a bit less ambiguous.
2015-02-12networkd: explicitly enable/disable ipv6ll addressesTom Gundersen
The kernel does not like getting an empty container, so just always pass the parameter, even if it is the default.
2015-02-11networkd: fdb - fix const warningTom Gundersen
2015-02-11networkd: don't do exit-on-idle if there is something wrong with the dbus ↵Tom Gundersen
connection Just fall back to plain old event loop in this (highly unlikely) case. In the glorious future when kdbus is upstream we can of course drop all this.
2015-02-11networkd DHCPv4 logging endian fixPaul Martin
On Tue, Feb 10, 2015 at 08:10:43PM +0100, Lennart Poettering wrote: > Hmm, I think it would be nicer to use be32toh() here instead, since it > ensures the macro is (to a limited degree) typesafe. > > Any chance you could rework that? From: Paul Martin <paul.martin@codethink.co.uk> Date: Wed, 11 Feb 2015 11:47:16 +0000 Subject: [PATCH] networkd dhcpv4 logging endian fix On a big-endian host, systemd-networkd prints out IPv4 network addresses byte reversed: Feb 10 16:43:32 hostname systemd-networkd[151]: eth0 : DHCPv4 address 158.1.24.10/16 via 1.1.24.10 The address obtained is 10.24.1.158/16 and the route is 10.24.0.0/16 dev eth0 src 10.24.1.187 The macro ADDRESS_FMT_VAL() unpacks a "struct in_addr" in a little-endian specific manner. This patch forces the passed address into host order, then unpacks it. On an x86 later than i486, compiled with -O2, the only extra overhead is a single bswap instruction.
2015-02-10net: support globbing and disjunction in Match logicTom Gundersen
Match{Name,OrginalName,Type,Driver,Path} can now take a space-separated glob of matches.
2015-02-10networkd: fdb - refactor a bitTom Gundersen
Pass around Link objcets rather than FdbEntry objects. The link objects have an up-to-date ifname we can use for logging. match_name sholud _never_ be used for anything except matching. Firstly, it may be unset (usually is), and secondly it may not be up-to-date.
2015-02-10networkd: bus - expose MatchMACTom Gundersen
2015-02-10networkd: network-bus - use sd_bus_path_{en,de}codeTom Gundersen
2015-02-09networkd: link_object_find - don't accept invalid inputTom Gundersen
Reported by Zbigniew.
2015-02-09networkd: support route scopesTom Gundersen
For now we only support the hardcoded values RT_SCOPE_{UNIVERSE,LOCAL,HOST}, and not numerical values or values from /etc/iproute2/rt_scopes. This addresses https://bugs.freedesktop.org/show_bug.cgi?id=88508.
2015-02-09treewide: correct typos and use consistent "MAC" spellingTorstein Husebø
2015-02-09networkd: bus - switch to properly escaped object pathsTom Gundersen
2015-02-09networkd: add support for IPv6 tokensTom Gundersen
This allows the admin to set the host-specific part of IPv6 addresses, but still receive the prefix via SLAAC. .network file snippet: [Network] IPv6Token=::12 gives: $ ip token token ::12 dev eth0 This closes https://bugs.freedesktop.org/show_bug.cgi?id=81177.
2015-02-09networkd: generalize IPv4LL to LinkLocalTom Gundersen
This allows both IPv4 and IPv6 link-local addresses to be enabled or disabled. By default we still enable IPv6LL and disable IPv4LL. The old config option is kept for backwards compatibility, but removed from the documentation.
2015-02-08networkd: add basic org.freedesktop.network1.Network interfaceTom Gundersen
2015-02-08networkd: add network_get_by_nameTom Gundersen
2015-02-08networkd: use valid bus pathsMantas Mikulėnas
Object path components must start with [A-Za-z_] (AFAIK). Also the value of 'p' is undefined if asprintf fails. Compare to user_bus_path() in src/login/logind-user-dbus.c:281.
2015-02-05networkd: move the connection to the bus out of manager_new (again)Tom Gundersen
This would otherwise make the tests fail as we cannot grab the bus name.
2015-02-05networkd: gracefully handle failure to emit signals when dbus is not connectedTom Gundersen
When we get kdbus we don't need these hackse.
2015-02-05networkd: exit on idleTom Gundersen
We will be woken up on rtnl or dbus activity, so let's just quit if some time has passed and that is the only thing that can happen. Note that we will always stay around if we expect network activity (e.g. DHCP is enabled), as we are not restarted on that.
2015-02-05networkd: don't unlink state files on exitTom Gundersen
Only unlink state files on DELLINK. This allows sd-network to be used even when networkd is not running.
2015-02-05networkd: add basic dbus APITom Gundersen
Only the very basics, more to come. For now: $ busctl tree org.freedesktop.network1 └─/org/freedesktop/network1 └─/org/freedesktop/network1/link ├─/org/freedesktop/network1/link/1 ├─/org/freedesktop/network1/link/2 ├─/org/freedesktop/network1/link/3 ├─/org/freedesktop/network1/link/4 ├─/org/freedesktop/network1/link/5 ├─/org/freedesktop/network1/link/6 ├─/org/freedesktop/network1/link/7 ├─/org/freedesktop/network1/link/8 └─/org/freedesktop/network1/link/9 $ busctl introspect org.freedesktop.network1 /org/freedesktop/network1 NAME TYPE SIGNATURE RESULT/VALUE FLAGS org.freedesktop.network1.Manager interface - - - .OperationalState property s "carrier" emits-change $ busctl introspect org.freedesktop.network1 /org/freedesktop/network1/link/1 NAME TYPE SIGNATURE RESULT/VALUE FLAGS org.freedesktop.network1.Link interface - - - .AdministrativeState property s "unmanaged" emits-change .OperationalState property s "carrier" emits-change