summaryrefslogtreecommitdiff
path: root/src/network/networkd-netdev.c
AgeCommit message (Collapse)Author
2014-07-15Constify ConfigTableItem tablesZbigniew Jędrzejewski-Szmek
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-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-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: tuntap - enable PacketInfo by defaultTom Gundersen
2014-07-03networkd: netdev - move tunnel address parsing to networkd-tunnel.cTom Gundersen
2014-07-03networkd: tunnels - make tunnel address parsing genericTom Gundersen
It had a bug in the typing, fix that and also make it save the address family so we can print proper error messages.
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-01networkd: netdev - add dummy supportTom Gundersen
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: 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: netdev add one separate lineSusant Sahani
2014-06-20networkd: veth - fix creation of veth netdevTom Gundersen
Avoid freeing the netdev structure in the cleanup macro.
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-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-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-02networkd: introduce vti tunnelSusant Sahani
This patch enables vti tunnel support. example conf: file : vti.netdev [NetDev] Name=vti-tun Kind=vti MTUBytes=1480 [Tunnel] Local=X.X.X.X Remote=X.X.X.X file: vti.network [Match] Name=em1 [Network] Tunnel=vti-tun TODO: Add more attributes for vti tunnel IFLA_VTI_IKEY IFLA_VTI_OKEY
2014-06-02networkd: sit-tunnel add support for pmtudiscSusant Sahani
This patch adds path of mtu discovery for sit tunnel. To enable/disable DiscoverPathMTU is introduced. Example configuration file: sit.netdev [NetDev] Name=sit-tun Kind=sit MTUBytes=1480 [Tunnel] DiscoverPathMTU=1 Local=X.X.X.X Remote=X.X.X.X By default pmtudisc is turned on , if DiscoverPathMTU is missing from the config. To turn it off DiscoverPathMTU=0 needs to be set.
2014-06-02networkd-netdev: fix white spaceSusant Sahani
2014-06-02networkd: introduce veth device supportSusant Sahani
This patch adds veth device support to networkd. Example conf: File: veth.netdev [NetDev] Name=veth-test Kind=veth [Peer] Name=veth-peer
2014-05-16networkd: fix typoTom 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-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-10networkd: netdev - rephrase logging message a bitTom Gundersen
Make it fit with what is logged from the link.
2014-05-09networkd: netdev - drop if creation failsTom Gundersen
This ensures that all links waiting to be enslaved are notified that the netdev does not exist.
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: netdev - introduce LINGER state and netdev_drop()Tom Gundersen
We need the LINGER state in case we still have references to the netdev after it has been dropped.
2014-05-09networkd: netdev - cancel all callbacks when freeingTom Gundersen
This notifies the link that the netdev no longer exists.
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-04-28networkd: netdev - log when loading a .netdev fileTom Gundersen
2014-04-21Revert "networkd: netdev - set predictable mac address when creating netdev"Tom Gundersen
This reverts commit cdc85c875b842b9309f72caefc51c262f521cf92. There appears to be a kernel bug that (among other things) cause bridges not to get a bridge id set when supplying IFLA_ADDRESS when creating the netdev. Simply revert the whole thing until we sort this out in the kernel. See: http://www.spinics.net/lists/netdev/msg279807.html Reported-by: C. R. Oldham <cr@saltstack.com>
2014-04-19network: implement masking of .link, .network and .netdev filesTom Gundersen
2014-04-19networkd: netdev - give up early when setting already set ifindexTom Gundersen
We may receive RTM_NEWLINK messages with missing LINKINFO after the initial NEWLINK message, don't bother verifying these, just drop out early after checking that the ifindex is not in conflict.
2014-04-19networkd: netdev - verify name of newlink messagesTom Gundersen
2014-04-19networkd: netdev - set predictable mac address when creating netdevTom Gundersen
2014-04-19networkd: tie links to rtnl rather than udevTom Gundersen
This essentially swaps the roles of rtnl and udev in networkd. After this change libudev is only used for waiting for udev to initialize devices and to get udev-specific information needed for some [Match] attributes. This in particular simplifies the code in containers where udev is not really useful, but also simplifies things and reduces round-trips in the non-container case.
2014-04-05Fix a few return codes in error pathsZbigniew Jędrzejewski-Szmek
2014-03-28networkd: netdev - improve logging when setting ifindexTom Gundersen