summaryrefslogtreecommitdiff
path: root/src/network
AgeCommit message (Collapse)Author
2014-07-03networkd: Introduce tun/tap deviceSusant Sahani
This patch introduces TUN/TAP device creation support to networkd. Example conf to create a tap device: file: tap.netdev ------------------ [NetDev] Name=tap-test Kind=tap [Tap] OneQueue=true MultiQueue=true PacketInfo=true User=sus Group=sus ------------------ Test: 1. output of ip link tap-test: tap pi one_queue UNKNOWN_FLAGS:900 user 1000 group 1000 id: uid=1000(sus) gid=10(wheel) groups=10(wheel),1000(sus) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 Modifications: Added: 1. file networkd-tuntap.c 3. netdev kind NETDEV_KIND_TUN and NETDEV_KIND_TAP 2. Tun and Tap Sections and config params to parse conf and gperf conf parameters [tomegun: tweak the 'kind' checking for received ifindex]
2014-07-03networkd: netdev - drop the link callbacks after calling them onceTom Gundersen
We should never call them again, so make sure they are cleaned up correctly.
2014-07-03networkd: netdev - take ref immediately after calling outTom Gundersen
Keeping the refcounting next to the sd_bus_call_async() makes it easier to check.
2014-07-03networkd: split out vlan and macvlan handlingTom Gundersen
2014-07-02util: generalize is_localhost() and use it everywhere where applicableLennart Poettering
2014-07-01networkd: fix alignment of gperf sourceFilipe Brandenburger
2014-07-01networkd: netdev - add dummy supportTom Gundersen
2014-07-01networkd: send hostname to dhcp serverEugene Yakubovich
Send hostname (option 12) in DISCOVER and REQUEST messages so the DHCP server could use it to register with dynamic DNS and such. To opt-out of this behaviour set SendHostname to false in [DHCP] section of .network file [tomegun: rebased, made sure a failing set_hostname is a noop and moved config from DHCPv4 to DHCP]
2014-07-01networkd: netdev - take ref when creating netdevsTom Gundersen
We were doing this correctly for when the callback takes the Link object, but must also do it for the cases it takes the NetDev object.
2014-07-01networkd: link - don't fail if master netdev already existsTom Gundersen
This allows restarts to work gracefully.
2014-07-01networkd: tunnel - ensure that enslave callback is always invokedTom Gundersen
The Link statemachine relies on this, as it would otherwise wait forever. Hook up the tunnels in the same way as the other NetDev's.
2014-07-01networkd: link - ignore missing MAC addressTom Gundersen
Currently DHCP/IPv4LL only works on ethernet devices, but no reason not to otherwise manage them.
2014-07-01networkd: address_acquire use cleanup macroSusant Sahani
use cleanup macro for Address na [tomegun: dropped unneccessary braces]
2014-07-01networkd: netdev add one separate lineSusant Sahani
2014-07-01networkd: link - drop assert from _free()Tom Gundersen
_free() should always succeed, even if object is not fully allocated.
2014-07-01networkd: link - improve refcountingTom Gundersen
We failed to take a ref when waiting for udev synchronization. Fix that and also make unreffing in callbacks simpler throughout by using _cleanup_ macros. Fixes <https://bugs.freedesktop.org/show_bug.cgi?id=80556>.
2014-06-30networkd: dhcp - use same metric for all DHCP-related routesTom Gundersen
2014-06-29networkd: dhcp - update the lifetime of an existing addressTom Gundersen
The logic otherwise is that we leave anything preconfigured alone, but in the case of DHCP we actually need to update it whenever the lease is renewed.
2014-06-29networkd: improve DHCP error loggingTom Gundersen
2014-06-29networkd: set static addresses immediatelyTom Gundersen
Don't wait for IPv4LL nor DHCP to finish before setting statically configured addresses.
2014-06-29Add support for DHCP static route optionsEugene Yakubovich
This adds support for DHCP options 33 and 121: Static Route and Classless Static Route. To enable this feature, set UseRoutes=true in .network file. Returned routes are added to the routing table.
2014-06-29networkd: merge DHCPv4 and DHCPv6 configTom Gundersen
If there are v4 or v6 specific options we can keep those in separate sections, but for the common options, we will use only one. Moreovere only use DHCP=[yes/both|no/none|v4|v6] to enable or disable the clients.
2014-06-29sd-dhcp-client/networkd: set lifetimes for IPv4 addressesPatrik Flykt
Note that /proc/sys/net/ipv4/ip_dynaddr needs to be non-zero. [tomegun: hook up DHCP renew events to increase the lifetime when necessary]
2014-06-29networkd/sd-dhcp-server: only start dhcp server when necessaryTom Gundersen
2014-06-26networkd: Properly stop router solicitation and DHCPv6 clientPatrik Flykt
When a link fails or looses carrier, always stop ongoing router solicitation and any DHCPv6 client that may be running.
2014-06-20missing.h: add various network enumsZbigniew Jędrzejewski-Szmek
We used to check if e.g. IFLA_BOND_MAX is defined and provide fallback values in missing.h is it wasn't. But over time, various kernel versions added IFLA_* defines, so checking for IFLA_BOND_MAX is not enough if the kernel is new enough to have some of them but too old to have all. In case we detect that the latest known enum value is missing, #define most of them. https://bugs.freedesktop.org/show_bug.cgi?id=80095
2014-06-20networkd: link - fix memleak of icmp6 structTom Gundersen
2014-06-20networkd: veth - fix creation of veth netdevTom Gundersen
Avoid freeing the netdev structure in the cleanup macro.
2014-06-19networkd: fix refcounting with UseMTU=yesSteven Noonan
The link was unintentionally being unreferenced instead of referenced for the MTU setup.
2014-06-19networkd: Add initial DHCPv6 supportPatrik Flykt
Enable DHCPv6 support by creating a DHCPv6 boolean in the Network section. Add necessary DHCPv6 structures and initial function calls.
2014-06-18networkd: configure dhcp server range only after successfully setting an IP ↵Lennart Poettering
address on the interface This way we can make use of the addresses of the IP pool.
2014-06-18networkd: add address pool supportLennart Poettering
When an address is configured to be all zeroes, networkd will now automatically find a locally unused network of the right size from a list of pre-configured pools. Currently those pools are 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 and fc00::/7, i.e. the network ranges for private networks. They are compiled in, but should be configurable eventually. This allows applying the same configuration to a large number of interfaces with each time a different IP range block, and management of these IP ranges is fully automatic. When allocating an address range from the pool it is made sure the range is not used otherwise.
2014-06-18socket-util: introduce in_addr_union similar to sockaddr_union and make use ↵Lennart Poettering
of it everywhere
2014-06-17networkd: veth - fix parsing verificationTom Gundersen
2014-06-17networkd: vxlan - fix parsing verificationTom Gundersen
2014-06-17networkd: veth - fix memleakTom Gundersen
2014-06-17networkd: link - fix carrier check on new linkTom Gundersen
We were comparing against our own internal enum rather than the kernel exposed one. Found by Thomas Ritter.
2014-06-16networkd: unref tunnelSusant Sahani
Unref tunnel while shutting down
2014-06-16networkd: introduce vxlanSusant Sahani
This patch enables netwokd to create vxlan Changes: Added: 1. File networkd networkd-vxlan.c 2. to netdev bool learning struct in_addr group uint64_t vxlanid; 3. VXLAN subsection and config parameters
2014-06-16networkd: rename netdev variablesSusant Sahani
Rename the netdev variables. Remove tunnel_ so that it can be reused .
2014-06-14networkd: link - flush all pending NEWLINK events before trying to matchTom Gundersen
We could still have an old interface name and/or mac address when libudev tells us that the device is initialized, as the up-to-date info could still be on its way from the kernel.
2014-06-14Revert "Revert "networkd: netdev - set predictable mac address when creating ↵Tom Gundersen
netdev"" This reverts (and rewrites) commit 7d95c772cba1836545459760273b13f2e01dd2a8. The issue blocking this feature has now been fixed in the kernel, and backported to the various stable kernels. Our netdevs will now have stable MAC addresses, even if one is not specified.
2014-06-14networkd: netdev - allow setting MACAddress in .netdev filesTom Gundersen
It may sometimes be necessary to specify the MAC address of a netdev. Let us set the correct one from the get-go, rather than having the kernel generate a random one, and then change it after.
2014-06-14networkd: add assertTom Gundersen
It should not be possible to have a DHCP lease on a link without also having an associated network. Add assert() to avoid compiler warnings. Reported by Thomas H. P. Andersen
2014-06-13networkd: link - check returned value from set_lease_poolThomas Hindoe Paaboel Andersen
2014-06-13networkd: link - left-align debug messagesTom Gundersen
Still add some whitespace betwen ifname and the message to get the messages aligned (as I find it easier to spot specific messages this way).
2014-06-13networkd: add dhcp server supportTom Gundersen
When enabled in [Network] it will set up a dhcp server on the interface, listening on one of its statically configured IPv4 addresses and with a fixed size pool of leases determined from it. Example: [Match] Name=ve-arch-tree [Network] Address=192.168.12.5/24 DHCPServer=yes [Route] Gateway=192.168.12.5 Destination=192.168.12.0/24 In this case we will configure ve-arch-tree with the address 192.168.12.5 and hand out addresses in the range 192.168.12.6 - 192.168.12.38. In the future, we should (as suggested by Lennart) introduce a syntax to pick the server address automatically.
2014-06-04networkd: link - intialize mac addressTom Gundersen
Otherwise .netwrok matching on MAC address will not work. Based on patch by Dave Reisner, and bug originally reported by Max Pray.
2014-06-03networkd: split runtime config dir from state dirTom Gundersen
Configuration will be in root:root /run/systemd/network and state will be in systemd-network:systemd-network /run/systemd/netif This matches what we do for logind's seat/session state.
2014-06-03networkd: drop CAP_SYS_MODULETom Gundersen
Rely on modules being built-in or autoloaded on-demand. As networkd is a network facing service, we want to limits its capabilities, as much as possible. Also, we may not have CAP_SYS_MODULE in a container, and we want networkd to work the same there. Module autoloading does not always work, but should be fixed by the kernel patch f98f89a0104454f35a: 'net: tunnels - enable module autoloading', which is currently in net-next and which people may consider backporting if they want tunneling support without compiling in the modules. Early adopters may also use a module-load.d snippet and order systemd-modules-load.service before networkd to force the module loading of tunneling modules. This sholud fix the various build issues people have reported.