summaryrefslogtreecommitdiff
path: root/src/network/networkd-link.c
AgeCommit message (Collapse)Author
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-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: 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-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-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-05-21networkd: link - serialize link when addresses changeTom Gundersen
Thanks to Kay for tracking this down.
2014-05-19networkd/sd-network: extend operational statesTom Gundersen
Expose states 'degraded' or 'routable' if a link has a site/link-local or a routable address, respectively.
2014-05-19networkd/sd-network: expose statically configured NTP serversTom Gundersen
2014-05-19networkd: fixup static DNS serializationTom Gundersen
2014-05-19resolved: add daemon to manage resolv.confTom Gundersen
Also remove the equivalent functionality from networkd.
2014-05-19networkd: link - serialize DNS informationTom Gundersen
2014-05-17networkd: log - only log about udev initalization on debug levelTom Gundersen
2014-05-17networkd: keep list of active addressesTom Gundersen
2014-05-16networkd: log the initialization status of linksTom Gundersen
2014-05-16networkd: rename Address and Route list fieldsTom Gundersen
2014-05-15networkd: logging - align messagesTom Gundersen
2014-05-15networkd: log ifindices when links and netdevs are addedTom Gundersen
2014-05-15networkd: rename NetDev variable for consistency with LinkTom Gundersen
2014-05-15networkd, build-sys: spelling fixZbigniew Jędrzejewski-Szmek
2014-05-15sd-bus: introduce sd_bus_slot objects encapsulating callbacks or vtables ↵Lennart Poettering
attached to a bus connection This makes callback behaviour more like sd-event or sd-resolve, and creates proper object for unregistering callbacks. Taking the refernce to the slot is optional. If not taken life time of the slot will be bound to the underlying bus object (or in the case of an async call until the reply has been recieved).
2014-05-12networkd: introduce ipip tunnelSusant Sahani
This patch enables basic ipip tunnel support. It works with kernel module ipip example conf: file: ipip.netdev [NetDev] Name=ipip-tun Kind=ipip MTUBytes=1480 [Tunnel] Local=192.168.223.238 Remote=192.169.224.239 TTL=64 file: ipip.network [Match] Name=em1 [Network] Tunnel=ipip-tun [tomegun: - drop unused variable - take ref when enslaving]
2014-05-11networkd: get preexiting addresses when a link is addedTom Gundersen
2014-05-10networkd: link - redo flag change loggingTom Gundersen
Make the logging less verbose by only printing all the changed flags on one line, at the same time make it more complete by supporting all flags currently supported by the kernel. We still fall back to printing the raw flags in case we get something we do not recognize This may be useful when running on new kernels.
2014-05-09networkd: link - don't log errors when missing routes/addresses are droppedTom Gundersen
We were ignoring the wrong errno.
2014-05-09networkd: link - handle links coming back to lifeTom Gundersen
When enslaving devices, we may receieve DELLINK/NEWLINK for the same ifindex, let's not be confused by this.
2014-05-09networkd: reorder bonding and bridgingTom Gundersen
A link should only ever be part of one, but if we accidentally do both, let's do it in the right order so the failure is more obvious in the logs.
2014-05-09networkd: link - introduce LINGER state and link_drop()Tom Gundersen
We need the LINGER state in case we still have references to the link after it has been dropped.
2014-05-09networkd: link - take refcounts on linksTom Gundersen
We need to take a refcount on the link whenever we expect a callback. The exceptions are the ipv4ll/dhcp clients as their lifetimes are guaranteed to be shorter than that of the link.
2014-05-09networkd: introduce refcounting for Links and NetDevsTom Gundersen
2014-05-09networkd: link - clean up state filesTom Gundersen
Also keep the path to the lease file around rather than regenarating it all the time.
2014-05-08sd-network: expose global operational stateTom Gundersen
2014-05-08networkd: link - operstate is an enum, not a bitmaskTom Gundersen
2014-05-07networkd: link - always maintain link operstate regardless of admin stateTom Gundersen
2014-05-07sd-network: expose both admin and operational state directlyTom Gundersen
Also add a call to check if a link is loopback, as this should commonly be ignored.
2014-04-30networkd: dont configure route if lease doesn't have oneUmut Tezduyar Lindskog
2014-04-28networkd: link - don't fail a link if RF kill is activeTom Gundersen
2014-04-27networkd: do not complain about IFF_RUNNINGUmut Tezduyar Lindskog
Otherwise: eth0: unknown link flags gained: 0x00040 (ignoring) [tomegun: hiding these messages is ok, as IFF_RUNNING is redundant and can be deduced from operstate and IFF_LOWER_UP]
2014-04-24networkd-wait-online: improve interoptability and enable by defaultTom Gundersen
To make sure we don't delay boot on systems where (some) network links are managed by someone else we don't block if something else has successfully brought up a link. We will still block until all links we are aware of that are managed by networkd have been configured, but if no such links exist, and someone else have configured a link sufficiently that it has a carrier, it may be that the link is ready so we should no longer block. Note that in all likelyhood the link is not ready (no addresses/routes configured), so whatever network managment daemon configured it should provide a similar wait-online service to block network-online.target until it is ready. The aim is to block as long as we know networking is not fully configured, but no longer. This will allow systemd-networkd-wait-online.service to be enabled on any system, even if we don't know whether networkd is the main/only network manager. Even in the case networking is fully configured by networkd, the default behavior may not be sufficient: if two links need to be configured, but the first is fully configured before the second one appears we will assume the network is up. To work around that, we allow specifying specific devices to wait for before considering the network up. This unit is enabled by default, just like systemd-networkd, but will only be pulled in if anyone pulls in network-online.target.
2014-04-22networkd: link - add missing curly bracketsThomas Hindoe Paaboel Andersen
introduced in 1e9be60bbabe179f5233217384f1daec757c17c7
2014-04-22networkd: link - reduce default verbosity a bitTom Gundersen
2014-04-22networkd: link - support IFLA_OPERSTATETom Gundersen
This properly detects the state of the link based on both the link flags and the operstate. Moreover, always log state-changes even if we are not yet managing the link.
2014-04-22networkd: link - don't react to successfull link upTom Gundersen
Avoid having two code-paths racing with eacother to do the same thing. The change of flags will be detected in the normal way, so only use the link_up_handler to detect if the 'up' failed and in that case fail the link.