Commit Graph
233 Commits
Author SHA1 Message Date
Tom Gundersen 3c4cb0645c networkd: log the initialization status of links 2014-05-16 14:52:02 +02:00
Tom Gundersen 3d94b7870c networkd: fix typo 2014-05-16 14:52:02 +02:00
Tom Gundersen 3d3d425547 networkd: rename Address and Route list fields 2014-05-16 14:52:02 +02:00
Tom Gundersen 987efa17dd networkd: logging - align messages 2014-05-15 18:16:31 +02:00
Tom Gundersen 5261692fe5 networkd: log ifindices when links and netdevs are added 2014-05-15 18:16:31 +02:00
Tom Gundersen af4e9e2c56 networkd: rename NetDev variable for consistency with Link 2014-05-15 18:15:21 +02:00
Zbigniew Jędrzejewski-Szmek 5ea846cc51 networkd, build-sys: spelling fix 2014-05-15 15:29:59 +02:00
Lennart Poettering 19befb2d5f sd-bus: introduce sd_bus_slot objects encapsulating callbacks or vtables 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-15 01:15:30 +02:00
Susant Sahani 9ae7021104 networkd-ipip-tunnel: add support ttl
Add support for ipip tunnel ttl.
2014-05-12 18:15:31 +02:00
Tom Gundersen 0b44d8c3d7 networkd: manager - don't leak kmod context
Also, keep the kmod_new internal to networkd-manager.c
2014-05-12 17:37:58 +02:00
Susant Sahani 7951dea209 networkd: introduce ipip tunnel
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-12 17:37:12 +02:00
Tom Gundersen fbbeb65a93 networkd: get preexiting addresses when a link is added 2014-05-11 14:26:10 +02:00
Tom Gundersen 2e9f08eaf1 networkd: listen for address changes
This is proof-of-concept only, as we only log the changes but don't do anything
with it.
2014-05-10 20:56:37 +02:00
Tom Gundersen 897e184c7d rtnl: change from bitmask to enum for rtnl groups
The bitmask is deprecated in the kernel, so move to the new interface. At the moment
this does not make a difference for us, but it avoids having to change the API in the future.
2014-05-10 20:56:37 +02:00
Tom Gundersen 389cc5f743 networkd: link - redo flag change logging
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-10 20:56:37 +02:00
Tom Gundersen 31d0ac36c6 networkd: network - fix leak 2014-05-10 20:56:37 +02:00
Tom Gundersen 86e6e5d1b4 networkd: manager - initialize variables 2014-05-10 20:56:37 +02:00
Tom Gundersen 5e273efec5 networkd: netdev - rephrase logging message a bit
Make it fit with what is logged from the link.
2014-05-10 20:56:37 +02:00
Tom Gundersen 4d473d5dde networkd: manager - refactor link tracking a bit 2014-05-10 20:56:37 +02:00
Tom Gundersen b90b025af1 networkd: link - don't log errors when missing routes/addresses are dropped
We were ignoring the wrong errno.
2014-05-09 14:41:27 +02:00
Tom Gundersen 7619683b46 networkd: link - handle links coming back to life
When enslaving devices, we may receieve DELLINK/NEWLINK for the same ifindex,
let's not be confused by this.
2014-05-09 14:41:27 +02:00
Tom Gundersen d9c67ea112 networkd: reorder bonding and bridging
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-09 14:41:27 +02:00
Tom Gundersen f22364691b networkd: manager - drop links and netdevs when we receive DELLINK 2014-05-09 14:41:27 +02:00
Tom Gundersen 37ebeb77cf networkd: netdev - drop if creation fails
This ensures that all links waiting to be enslaved are notified that the netdev does not exist.
2014-05-09 14:41:27 +02:00
Tom Gundersen 370e9930c3 networkd: link - introduce LINGER state and link_drop()
We need the LINGER state in case we still have references to the link after it has been dropped.
2014-05-09 14:41:27 +02:00
Tom Gundersen 2cc7e981af networkd: netdev - introduce LINGER state and netdev_drop()
We need the LINGER state in case we still have references to the netdev after it has been dropped.
2014-05-09 14:41:27 +02:00
Tom Gundersen 59cb64e625 networkd: netdev - cancel all callbacks when freeing
This notifies the link that the netdev no longer exists.
2014-05-09 14:41:27 +02:00
Tom Gundersen b226d99b04 networkd: link - take refcounts on links
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-09 14:41:27 +02:00
Tom Gundersen 47e2dc3168 networkd: network - do reference counting on netdevs 2014-05-09 14:41:27 +02:00
Tom Gundersen 69a93e7db4 networkd: network - merge all netdev parsing into one function 2014-05-09 14:41:27 +02:00
Tom Gundersen 14b746f721 networkd: introduce refcounting for Links and NetDevs 2014-05-09 14:41:27 +02:00
Tom Gundersen 68a8723c85 networkd: link - clean up state files
Also keep the path to the lease file around rather than regenarating it all the time.
2014-05-09 14:41:27 +02:00
Tom Gundersen bbf7c04821 sd-network: expose global operational state 2014-05-08 17:21:37 +02:00
Tom Gundersen 3a9c5a32be networkd-wait-online: flush monitor events after processing
Otherwise the event will trigger immediately again.
2014-05-08 15:27:55 +02:00
Tom Gundersen d91d3c1580 networkd-wait-online: fix false positives when checking if a link is managed by networkd 2014-05-08 15:27:55 +02:00
Tom Gundersen 75adc2189b networkd: link - operstate is an enum, not a bitmask 2014-05-08 15:27:55 +02:00
Tom Gundersen bc6345767e networkd-wait-online: rely purely on sd-network events and drop rtnl hooks 2014-05-07 16:54:02 +02:00
Tom Gundersen 99b4cc3e75 networkd: link - always maintain link operstate regardless of admin state 2014-05-07 16:54:02 +02:00
Tom Gundersen deb2e5230b sd-network: expose both admin and operational state directly
Also add a call to check if a link is loopback, as this should commonly be ignored.
2014-05-07 16:54:02 +02:00
Umut Tezduyar Lindskog 8ddbeaa23c networkd: dont configure route if lease doesn't have one 2014-04-30 00:05:28 +02:00
Tom Gundersen 7e141e498c sd-network: add support for only listening to some types of changes 2014-04-30 00:05:28 +02:00
Tom Gundersen 9b86b3930a networkd: link - don't fail a link if RF kill is active 2014-04-28 00:16:46 +02:00
Tom Gundersen 69ceb044c8 networkd: netdev - log when loading a .netdev file 2014-04-28 00:06:06 +02:00
Umut Tezduyar Lindskog d96e629fd7 networkd: do not complain about IFF_RUNNING
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-27 23:36:30 +02:00
Tom Gundersen 27134b2f05 networkd-wait-online: refactor a bit
Clarify that we are waiting for any link to reach 'carrier' state, regardless
of who manages it. This will be useful when we add support for waiting for more
operational states.
2014-04-26 01:20:12 +02:00
Tom Gundersen cef8b07358 networkd-wait-online: drop config file and add commandline options instead 2014-04-26 01:20:12 +02:00
Tom Gundersen 3a67e927e3 networkd-wait-online: improve interoptability and enable by default
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-24 00:23:07 +02:00
Thomas Hindoe Paaboel Andersen cc544d5fb4 networkd: link - add missing curly brackets
introduced in 1e9be60bba
2014-04-22 21:45:17 +02:00
Tom Gundersen df9aa406e8 networkd: link - reduce default verbosity a bit 2014-04-22 21:06:00 +02:00
Tom Gundersen 1e9be60bba networkd: link - support IFLA_OPERSTATE
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-22 21:06:00 +02:00