summaryrefslogtreecommitdiff
path: root/src/network
AgeCommit message (Collapse)Author
2014-08-03Unify parse_argv styleZbigniew Jędrzejewski-Szmek
getopt is usually good at printing out a nice error message when commandline options are invalid. It distinguishes between an unknown option and a known option with a missing arg. It is better to let it do its job and not use opterr=0 unless we actually want to suppress messages. So remove opterr=0 in the few places where it wasn't really useful. When an error in options is encountered, we should not print a lengthy help() and overwhelm the user, when we know precisely what is wrong with the commandline. In addition, since help() prints to stdout, it should not be used except when requested with -h or --help. Also, simplify things here and there.
2014-08-01networkd: track the MTU of each linkTom Gundersen
And inform the DHCPv4 clients about it.
2014-08-01Revert "networkd: don't assume udev_device_new_from_device_id sets errno"Tom Gundersen
libudev now does set errno correctly, so we can indeed rely on this. This reverts commit 2b49732c3d511007ae2c413997e56c40f678d79a.
2014-07-30networkd: don't assume udev_device_new_from_device_id sets errnoTom Gundersen
This reverts 6f4d55a8ae04e344a41fc2adef12ad99c2bb2927, as we cannot rely on errno here. Reported by David Herrmann.
2014-07-30networkd: improve error message when udev device can not be foundTom Gundersen
Reported by Raimonds Cicans <ray@apollo.lv>
2014-07-30networkd: ipv4ll - configure link-local address independently of DHCPv4Tom Gundersen
This changes the behavior when both DHCPv4 and IPv4LL are enabled. Before, we would disable IPv4LL when we got a DHCPv4 lease and enable it if the lease was lost. Now we just always set up both, if both are enabled, but the DHCPv4 addresses and routes will always take precedence due to their metric and scope.
2014-07-30resolved: when answer A or AAAA questions, order responses by whether ↵Lennart Poettering
addresses are link-local or not
2014-07-29networkd: fix reporting errors from hostnamedMichael Marineau
The return value may be -EINVAL or a positive errno from the dbus message. Check both ranges, otherwise most errors are silently ignored.
2014-07-28networkd: route/address - use trivial hash functionsTom Gundersen
2014-07-28networkd: unify handling of stacked netdevsTom Gundersen
2014-07-28networkd: store ifindex as intTom Gundersen
2014-07-28sd-dhcp-client: drop event DHCP_EVENT_NO_LEASETom Gundersen
Keep this internal to the client and simply restart it when NAK is receieved, as per the RFC.
2014-07-25networkd: ipv4ll - default to setting up ipv4ll routesTom Gundersen
This is necessary for non-ipv4ll hosts to communicate with ipv4ll-only hosts on the same link. Defaults to being enabled, but can be opted out. See: <http://avahi.org/wiki/AvahiAutoipd#Routes>
2014-07-25networkd: ipv4ll - drop unnecessary get_address()Tom Gundersen
2014-07-23sd-network: expose DNS/NTP servers as stringsTom Gundersen
This avoids having to distinguish between IPv4 and IPv6, allowing us to keep their internal orderings. The consumers now has to turn the strings into addresses.
2014-07-23networkd: merge DNS and NTP entries when exportingTom Gundersen
In the state files, do not distinguish where the various entries came from (static or DHCP), but include them all in the same list.
2014-07-23networkd: set route protocolDan Williams
All routes added by networkd are currently set RTPROT_BOOT, which according to the kernel means "Route installed during boot" (rtnetlink.h). But this is not always the case as networkd changes routing after boot too. Since the kernel gives more detailed protocols, use them. With this patch, user-configured static routes now use RTPROT_STATIC (which they are) and DHCP routes use RTPROT_DHCP. There is no define for IPv4LL yet, so those are installed as RTPROT_STATIC (though perhaps RTPROT_RA is better?). [tomegun: fixup src/network/networkd-link.c:972:33: error: too few arguments to function 'route_new_dynamic']
2014-07-21networkd: bridge - use USEC_PER_MSEC macrosTom Gundersen
Lennart said: > We have these nice USEC_PER_MSEC-style macro definitions which make it a > little bit clearer what we are converting here from what into > what... please use that instead of writing "1000"... > > (we stole those from gstreamer btw)
2014-07-21networkd: add support for bond optionsSusant Sahani
The following bond options are supported by this patch. MIIMonitorSec: Specifies the frequency in milli-seconds that MII link monitoring will occur. UpDelaySec: Specifies the delay time in milli-seconds to enable a link after a link up status has been detected. DownDelaySec: Specifies the delay time in milli-seconds to disable a link after a link failure has been detected. changes: 1. Added gconf variables. 2. man page conf: [NetDev] Name=bond1 Kind=bond [Bond] Mode=802.3ad TransmitHashPolicy=layer2+3 LacpduTransmitRate=fast MIIMonitorSec=1s UpDelaySec=2s DownDelaySec=8s cat /proc/net/bonding/bond1 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: IEEE 802.3ad Dynamic link aggregation Transmit Hash Policy: layer2+3 (2) MII Status: up MII Polling Interval (ms): 1000 Up Delay (ms): 2000 Down Delay (ms): 8000 802.3ad info LACP rate: fast Min links: 0 Aggregator selection policy (ad_select): stable bond bond1 has no active aggregator [tomegun: rephrased manpage, dropped bond_ prefix from variables]
2014-07-21networkd: bond add support for lacp rateSusant Sahani
LacpduTransmitRate option specifies the rate in which link partner to transmit LACPDU packets in 802.3ad mode. Possible values slow : Request partner to transmit LACPDUs every 30 seconds fast : Request partner to transmit LACPDUs every 1 second The default is slow. chages: 1. Added enum bond_lacp_rate_table 2. gperf LacpduTransmitRate Test: conf file: [NetDev] Name=bond1 Kind=bond [Bond] Mode=802.3ad LacpduTransmitRate=fast test: cat /proc/net/bonding/bond1 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: IEEE 802.3ad Dynamic link aggregation Transmit Hash Policy: layer2+3 (2) MII Status: up MII Polling Interval (ms): 0 Up Delay (ms): 0 Down Delay (ms): 0 802.3ad info LACP rate: fast Min links: 0 Aggregator selection policy (ad_select): stable bond bond1 has no active aggregator [tomegun: renamed from LacpduTransmitRate to LACPTransmitRate, manpage fixes and dropped bond_ prefix from variables]
2014-07-21networkd: add support for bond transmit hash policySusant Sahani
This patch adds support the transmit hash policy to use for slave selection in balance-xor, 802.3ad, and tlb modes layer2, layer3+4, layer2+3, encap3+4, encap3+4 Added: 1. BondXmitHashPolicy 2. conf param TransmitHashPolicy Test conf: [NetDev] Name=bond1 Kind=bond [Bond] Mode=802.3ad TransmitHashPolicy=layer2+3 test output: cat /proc/net/bonding/bond1 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: IEEE 802.3ad Dynamic link aggregation Transmit Hash Policy: layer2+3 (2) MII Status: up MII Polling Interval (ms): 0 Up Delay (ms): 0 Down Delay (ms): 0 802.3ad info LACP rate: slow Min links: 0 Aggregator selection policy (ad_select): stable bond bond1 has no active aggregator [tomegun: dropped bond_ prefix from new Bond variable, drop repeated man-page section]
2014-07-21networkd: netdev - split NetDev struct into per-kind structsTom Gundersen
Similarly to how unit types work.
2014-07-21sd-network: drop get_ifindicesTom Gundersen
People should use rtnl for this, and then only query sd-network by the ifindices it finds.
2014-07-18change type for address family to "int"Lennart Poettering
Let's settle on a single type for all address family values, even if UNIX is very inconsitent on the precise type otherwise. Given that socket() is the primary entrypoint for the sockets API, and that uses "int", and "int" is relatively simple and generic, we settle on "int" for this.
2014-07-18networkd-wait-online: fix comilation warningTom Gundersen
sd_rtnl_message_read_string() was changed to take a const argument, update the users.
2014-07-18sd-rtnl: make string returned by sd_rtnl_message_read_string() constLennart Poettering
2014-07-17sd-network: fixup apiTom Gundersen
Do not expose link_is_loopback, people should just get this from rtnl directly. Do not expose NTP servers as IP addresses, these must be strings. Expose ifindex as int, not unsigned. This is what the kernel (mostly) and glibc uses.
2014-07-17networkd-wait-online: track linksTom Gundersen
Rather than refetching the link information on ever event, we liston to rtnl to track them. Much code stolen from resolved. This will allow us to simplify the sd-network api and don't expose information available over rtnl.
2014-07-17sd-network: expose 'unmanaged' as a regular stateTom Gundersen
This is useful to save in the consumer of the lib, unlike ENODATA/EBUSY which means that the user should wait until a useful state is available.
2014-07-17networkd: fix colud typoZbigniew Jędrzejewski-Szmek
sztanpet> if your already there, might fixing "Colud" to Could in 53af3b7
2014-07-17sd-network: if a boolean is mising, we should just take it as falseLennart Poettering
That way, we can deprecate fields later on without problems
2014-07-17sd-network: remove redundant array size parameter from functions that return ↵Lennart Poettering
arrays As long as the number of array entries is relatively small it's nicer to simply return the number of entries directly, instead of using a size_t* return parameter for it.
2014-07-17sd-network: fix parameter order for sd_network_monitor_new()Lennart Poettering
Constructors should return the object they created as first parameter, except when they are generated as a child/member object of some other object in which case that should be first.
2014-07-16test-tables: add new entriesZbigniew Jędrzejewski-Szmek
One missing string found. A few things had to be moved around to make it possible to test them.
2014-07-16tty-ask-password-agent: modernizationZbigniew Jędrzejewski-Szmek
2014-07-16Be more careful when checking for empty filesZbigniew Jędrzejewski-Szmek
If we want to avoid reading a totally empty file, it seems better to check after we have opened the file, not before.
2014-07-16Let config_parse open file where applicableZbigniew Jędrzejewski-Szmek
Special care is needed so that we get an error message if the file failed to parse, but not when it is missing. To avoid duplicating the same error check in every caller, add an additional 'warn' boolean to tell config_parse whether a message should be issued. This makes things both shorter and more robust wrt. to error reporting.
2014-07-15Constify ConfigTableItem tablesZbigniew Jędrzejewski-Szmek
2014-07-15networkd: remove unused variableThomas Hindoe Paaboel Andersen
2014-07-15networkd: netdev - set mac for bond/bridge devicseTom Gundersen
Suggested by poma.
2014-07-15sd-dhcp-client: make request broadcasts opt-inTom Gundersen
It appears there is no good way to decide whether or not broadcasts should be enabled, there is hardware that must have broadcast, and there are networks that only allow unicast. So we give up and make this configurable. By default, unicast is used, but if the kernel were to inform us abotu certain interfaces requiring broadcast, we could change this to opt-in by default in those cases.
2014-07-14networkd: link - fix memory leakTom Gundersen
Make link_initialized() idempotent to avoid taking refs on several udev_device objects.
2014-07-14test: network - skip if we don't have permissions to create netdevsTom Gundersen
2014-07-14networkd: netdev - introduce vtable for netdev kindsTom Gundersen
Split each netdev kind into its own .h/.c.
2014-07-14networkd: netdev - rework load_oneTom Gundersen
We now: - parse config - match on environment - verify and complement config - create netdev
2014-07-14networkd: netdev - split out bridge creationTom Gundersen
2014-07-14networkd: netdev - rename 'enslave' to 'join'Tom Gundersen
Enslave only really makes sense when referring to bridges and bonds, so try to be a bit more neutral.
2014-07-14networkd: add back route destination supportTom Gundersen
This was accidentally dropped when adding metric support.
2014-07-14networkd: bond - explicitly map to kernel mode valuesTom Gundersen
2014-07-14networkd: dhcp add vendor class indentifier option 60Susant Sahani
Vendor Class Identifier be used by DHCP clients to identify their vendor type and configuration. When using this option, vendors can define their own specific identifier values, such as to convey a particular hardware or operating system configuration or other identifying information. Vendor-specified DHCP options—features that let administrators assign separate options to clients with similar configuration requirements. For example, if DHCP-aware clients for example we want to separate different gateway and option for different set of people (dev/test/hr/finance) in a org or devices for example web/database servers or let's say in a embedded device etc and require a different default gateway or DNS server than the rest of clients.