summaryrefslogtreecommitdiff
path: root/src/network
AgeCommit message (Collapse)Author
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.
2014-07-14networkd: make metric of routes configurableSusant Sahani
Now route metric can be configuted via conf file: example conf: [Match] Name=em1 [Route] Gateway=192.168.1.12 Metric=10 Test: ip route output default via 192.168.1.12 dev em1 metric 10 [tomegun: squash TODO update and reword man page a bit]
2014-07-14networkd: return 1 from successful event handlersTom Gundersen
2014-07-10networkd: always prefer dhcp routes over ipv4ll routesLennart Poettering
2014-07-10shared: split out in_addr related calls from socket-util.[ch] into its ↵Lennart Poettering
private in-addr-util.[ch] These are enough calls for a new file, and they are sufficiently different from the sockaddr-related calls, hence let's split this out.
2014-07-07networkd: simplify signal handling of SIGTERM/SIGINTLennart Poettering
sd-event makes handling SIGTERM/SIGINT a lot easier than it used to, let's make use of this
2014-07-07networkd: add support for modeSusant Sahani
This patch adds supports networkd to configure bond mode during creation via persistent conf. Mode can be configured with conf param 'Mode'. A new section Bond is added to the conf to support bond mode. These modes can be configured now. balance-rr active-backup balance-xor broadcast 802.3ad balance-tlb balance-alb Example conf file: test-bond.conf [NetDev] Name=bond1 Kind=bond [Bond] Mode=balance-xor Test case: 1. start networkd service: 12: bond1: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default link/ether 22:89:6c:47:23:d2 brd ff:ff:ff:ff:ff:ff 2. find bond mode: cat /proc/net/bonding/bond1 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: load balancing (xor) Transmit Hash Policy: layer2 (0) MII Status: up MII Polling Interval (ms): 0 Up Delay (ms): 0 Down Delay (ms): 0 Changes: 1. Added file networkd-bond.c 2. Bond mode enum BondMode 3. conf section [Bond] [tomegun: whitespace]
2014-07-07networkd veth: Make kind assertSusant Sahani
It's more appropriate to make it's assert than -ENOTSUP
2014-07-07networkd: netdev - add missing refsTom Gundersen
Without this, the underlying device would get freed (and hence fail).
2014-07-07networkd: add support for peer addressSusant Sahani
This patch adds peer address support for networkd . In the [Address] a new configurable param is Peer. [Match] Name=ipip-tun [Address] Address=10.0.0.1/32 Peer=10.0.0.2/32
2014-07-04networkd: accept section DHCP in systemd.network filesSteven Noonan
2014-07-03networkd: properly track addresses when first addedTom Gundersen
When doing a NEWADDR, the reply we get back is the NEWADDR itself, rather than just an empty ack (unlike how NEWLINK works). For this reason, the process that did the NEWADDR does not get the broadcast message. We were only listening for broadcast messages, and hence not tracking the addresses we added ourselves. This went unnoticed as the kernel will usually send NEWADDR messages from time to time anyway, so things would mostly work, but in the worst case we would not notice that a routable address was available and consider ourselves offline.
2014-07-03networkd: link - improve link tracking loggingTom Gundersen
2014-07-03networkd: tuntap - default to no packet informationTom Gundersen
Susant says: > ip tuntap turns this off by default. Let's follow ip(8) here as that should be the least surprising.
2014-07-03networkd vxlan: Pass correct typeSusant Sahani
The group argument is a union. We need to pass the correct type