Yu Watanabe
0894cfe41c
network: also read BSSID
2019-10-15 01:59:13 +09:00
Yu Watanabe
8d968fdd99
network: support matching based on wifi SSID
2019-10-15 01:59:06 +09:00
Yu Watanabe
ad932b156c
network: introduce link_reconfigure()
...
Will be used in later commits.
2019-10-15 01:57:19 +09:00
Yu Watanabe
1a6bb31fae
network: split link_free() into two parts
2019-10-15 01:57:19 +09:00
Susant Sahani
c16c780804
network: introduce ip nexthop routing
...
Used to manipulate entries in the kernel's nexthop tables.
Example:
```
[NextHop]
Id=3
Gateway=192.168.5.1
```
2019-10-14 21:32:48 +09:00
Zbigniew Jędrzejewski-Szmek
800603524a
networkd: drop DHCPv4 config on stop, keep on restart, by default
...
This partially reverts 95355a281c
.
It seems that other parts of link_stop_clients() should be skipped
when restarting, but I don't know enough about those other clients to have
an opinion if it is better to stop&start them on restart or not.
Anyway, that can be done in later patches now that the support for restarts
is there.
Fixes #13625 .
2019-10-02 14:01:42 +02:00
Yu Watanabe
55a1729fd0
network: drop noisy log message
...
Closes #13595 .
2019-09-26 11:37:50 +09:00
Frantisek Sumsal
38288f0bb8
tree-wide: various code-formatting improvements
...
Reported/found by Coccinelle
2019-09-22 07:17:27 +02:00
Susant Sahani
299d578f7f
network: DHCP server Add support to transmit SIP server
...
1. DHCP server trasmit
2. Client parses and saves in leases
Implements http://www.rfc-editor.org/rfc/rfc3361.txt
```
Frame 134: 348 bytes on wire (2784 bits), 348 bytes captured (2784 bits) on interface 0
Ethernet II, Src: 42:65:85:d6:4e:32 (42:65:85:d6:4e:32), Dst: 1e:04:f8:b8:2f:d4 (1e:04:f8:b8:2f:d4)
Internet Protocol Version 4, Src: 192.168.5.1, Dst: 192.168.5.11
User Datagram Protocol, Src Port: 67, Dst Port: 68
Dynamic Host Configuration Protocol (ACK)
Message type: Boot Reply (2)
Hardware type: Ethernet (0x01)
Hardware address length: 6
Hops: 0
Transaction ID: 0x7cc87cb4
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
Client IP address: 0.0.0.0
Your (client) IP address: 192.168.5.11
Next server IP address: 0.0.0.0
Relay agent IP address: 0.0.0.0
Client MAC address: 1e:04:f8:b8:2f:d4 (1e:04:f8:b8:2f:d4)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (53) DHCP Message Type (ACK)
Length: 1
DHCP: ACK (5)
Option: (51) IP Address Lease Time
Length: 4
IP Address Lease Time: (3600s) 1 hour
Option: (1) Subnet Mask (255.255.255.0)
Length: 4
Subnet Mask: 255.255.255.0
Option: (3) Router
Length: 4
Router: 192.168.5.1
Option: (6) Domain Name Server
Length: 4
Domain Name Server: 192.168.5.1
Option: (42) Network Time Protocol Servers
Length: 4
Network Time Protocol Server: 192.168.1.1
Option: (120) SIP Servers <=====here
Length: 9
SIP Server Encoding: IPv4 Address (1)
SIP Server Address: 192.168.1.1
SIP Server Address: 192.168.5.2
Option: (101) TCode
Length: 13
TZ TCode: Europe/Berlin
Option: (54) DHCP Server Identifier (192.168.5.1)
Length: 4
DHCP Server Identifier: 192.168.5.1
Option: (255) End
Option End: 255
```
```
cat /run/systemd/netif/state ✔ ⚡ 3148 16:40:51
OPER_STATE=routable
CARRIER_STATE=carrier
ADDRESS_STATE=routable
DNS=192.168.94.2 192.168.5.1
NTP=192.168.5.1
SIP=192.168.1.1 192.168.5.2
```
aa
2019-09-20 21:22:23 +09:00
Frantisek Sumsal
59a224d728
Merge pull request #13577 from yuwata/network-fix-ci-failure
...
network: fix CI failure
2019-09-17 17:42:26 +00:00
Yu Watanabe
f136875549
network: make route_get() or friends take Route object
2019-09-17 21:53:42 +09:00
Yu Watanabe
4d59e14f32
network: do not enter failed state if device's sysfs entry does not exist yet
2019-09-17 21:34:06 +09:00
Yu Watanabe
b1b0b42e48
network: add missing link->network checks
...
When the function is called, no network file may be assigned to the
link.
2019-09-17 21:29:35 +09:00
Yu Watanabe
5539fc0f73
network: drop IPv6LL address when LinkLocalAddressing=no|ipv4
...
C.f. disscussion in #13533 .
Hopefully fixes #12886 .
2019-09-17 09:45:22 +09:00
Yu Watanabe
2aa7d367ec
network: do not create default route for ipv4 link local addressing
...
When nspawn container with private network starts, networkd creates
the default route for the interface. The route may cause problem on
the host side, and it can be created with DefaultRouteOnDevice= now.
Hence, this makes networkd not create the route implicitly any more.
Closes #13418 .
2019-09-15 22:33:11 +09:00
Yu Watanabe
b977347498
Merge pull request #13412 from yuwata/network-check-and-warn-more
...
network: check more static IPv6 configurations and add more warnings
2019-08-28 15:23:01 +09:00
Yu Watanabe
adfeee49c5
network: enable ipv6 when the network has static ipv6 configurations
2019-08-27 23:53:46 +09:00
Zbigniew Jędrzejewski-Szmek
57ad760746
network: drop all checks of ipv6_disabled sysctl
...
*We* control the sysctl setting. If the user configured IPv6, then we apply the
settings, and just make sure that at some point during the configuration the
sysctl is disabled (i.e. ipv6 enabled) if we have IPv6 configured.
Replaces #13283 .
2019-08-27 15:31:48 +02:00
Susant Sahani
482efedc08
network: Do not disable IPv6 by writing to sysctl
...
Only enable is and do not disable IPv6
2019-08-22 13:21:57 +02:00
Yu Watanabe
2d79289525
network: rename AddressFamilyBoolean -> AddressFamily
...
We usually do not call an extended boolean as XxxBoolean.
2019-08-16 22:02:17 +09:00
Lennart Poettering
24f36fb180
Merge pull request #13302 from yuwata/network-set-put-fixes
...
network: fixes related to set_put()
2019-08-14 16:18:06 +02:00
William A. Kennington III
d1bdafd214
networkd: Keep track of static neighbors
...
We need to keep track of the static neighbors that are configured on the
interface so that we can delete stale entries that were removed.
2019-08-12 20:28:19 +09:00
Yu Watanabe
3dc2e7af5f
network: add missing link_ref()
2019-08-11 09:11:25 +09:00
Yu Watanabe
75a302b561
network: fix potential memleaks related to set_put()
2019-08-11 08:57:01 +09:00
William A. Kennington III
0b1cd3e25a
networkd: Routes should take the gateway into account
...
Otherwise, changing the default gateway doesn't purge old gateway routes
left on the system during daemon restart. This also fixes removing other
foreign gateway routes that don't match the expected configuration.
Tested:
Changed gateway addresses prior to the patch and they lingered on
the system during each reconfiguration. Applied this patch and
reconfigured gateways and other routes multiple times and it removed
the foreign routes that had gateways that didn't match.
Signed-off-by: William A. Kennington III <william@wkennington.com>
2019-08-07 20:32:36 +09:00
Yu Watanabe
500b96eb34
network: drop redundant Link::kind check
...
All CAN devices' iftype are ARPHRD_CAN. So, checking Link::kind is
redundant.
Follow-up for c6ac3729c9
.
2019-07-25 16:47:16 +09:00
Yu Watanabe
c6ac3729c9
network: support slcan
...
The device driver does not have IFLA_INFO_KIND attribute. So, we need to
check iftype.
Closes #13150 .
2019-07-24 23:13:22 +09:00
Yu Watanabe
8f815e8b03
tree-wide: drop netinet/ether.h from socket-util.h and sd-netlink.h
2019-07-24 18:23:08 +09:00
Yu Watanabe
bd7d6cec33
network: do not touch kernel-created multicast route
...
Fixes #6088 .
2019-07-23 22:08:49 +09:00
Yu Watanabe
d4c52ee5b5
network: store routes provided by DHCPv4 in Set
...
This re-writes d03073ddcd
.
2019-07-19 01:44:44 +09:00
Yu Watanabe
8107f4731e
network: drop fallback mechanism to assign DHCPv6 addresses with IFA_F_NOPREFIXROUTE
...
The flag IFA_F_NOPREFIXROUTE was introduced in kernel-3.14. But even if
the kernel does not support the flag, it should be just ignored. So, it
is not necessary to do the fallback logic. Moreover, the current logic
is not a fallback mechanism but just retrying. So, it should not work.
Let's drop that.
2019-07-17 23:13:40 +09:00
Yu Watanabe
1576154957
network: implement DBus methods to set DNS related properties
2019-07-17 06:59:12 +09:00
Yu Watanabe
4e2ef9d9d1
network: do not configure routes when dropping addresses
...
Follow-up for 4ff296b024
.
2019-07-17 00:51:46 +09:00
Yu Watanabe
4ff296b024
network: make link enter failed state when a configuration fails
...
Some path of configuring address, route or etc., go to failed state, but
some do not. E.g., failure in address configuration which is provided by
DHCPv4 goes to failed state, but static address does not.
This is just for consistency. This should not change anything if
everything is fine.
This also voidify manager_rtnl_process_address().
2019-07-15 21:52:06 +09:00
Yu Watanabe
a0cd6da5bb
network: honor IPv6AcceptRA.UseDomains= setting
2019-07-14 22:08:29 +09:00
Yu Watanabe
b425c3ae02
network: do not change to configuring state needlessly
...
When DHCP or any other dynamic addresses are changed, then
link_request_set_routes() is invoked, and even if no static routes
are configured, the operational state is needlessly changed to
configuring state.
This makes the state is changed only when static routes are configured.
2019-07-14 07:37:12 +02:00
Lennart Poettering
7e82b4059b
Merge pull request #13006 from yuwata/network-split-dhcp-12917
...
networkd: DHCPv6 - separate DHCPv6 options from DHCPv4 options
2019-07-11 10:28:03 +02:00
Lennart Poettering
a082157282
Merge pull request #13005 from keszybz/fix-gcc-warning
...
Fix two gcc warnings
2019-07-10 16:20:31 +02:00
1848
b7700511ef
Fixed condition checked twice
2019-07-10 23:02:24 +09:00
1848
98d20a17a9
Added support for xfrm interfaces
2019-07-10 23:02:19 +09:00
Zbigniew Jędrzejewski-Szmek
573e9a3310
networkd: silence bogus gcc warning about %s
...
Fixes #12931 .
In file included from ../src/basic/macro.h:558,
from ../src/basic/alloc-util.h:9,
from ../src/network/networkd-link.c:7:
../src/network/networkd-link.c: In function ‘link_sysctl_ipv6_enabled’:
../src/basic/log.h:107:9: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
107 | log_internal_realm(LOG_REALM_PLUS_LEVEL(LOG_REALM, (level)), __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/shared/log-link.h:21:25: note: in expansion of macro ‘log_internal’
21 | log_internal(level, error, _FILE_, __LINE__, __func__, ##__VA_ARGS__); \
| ^~~~~~~~~~~~
../src/shared/log-link.h:33:50: note: in expansion of macro ‘log_link_full’
33 | #define log_link_warning_errno(link, error, ...) log_link_full(link, LOG_WARNING, error, ##__VA_ARGS__)
| ^~~~~~~~~~~~~
../src/network/networkd-link.c:83:24: note: in expansion of macro ‘log_link_warning_errno’
83 | return log_link_warning_errno(link, r,
| ^~~~~~~~~~~~~~~~~~~~~~
../src/network/networkd-link.c:84:77: note: format string is defined here
84 | "Failed to read net.ipv6.conf.%s.disable_ipv6 sysctl property: %m",
| ^~
cc1: some warnings being treated as errors
2019-07-10 10:32:39 +02:00
Susant Sahani
caa8ca4286
networkd: DHCPv6 - separate DHCPv6 options from DHCPv4 options
...
Closes https://github.com/systemd/systemd/issues/12917
2019-07-10 16:59:29 +09:00
Yu Watanabe
593aee8f3c
network: read sysctl value only once ( #12990 )
...
Follow-up for bafa964144
.
When the value is changed, networkd needs to be restarted.
2019-07-09 09:56:50 +02:00
Yu Watanabe
8fcf1d6180
network: move DHCP server related functions to networkd-dhcp-server.c
2019-06-30 04:46:27 +09:00
Yu Watanabe
ca5ad760a5
network: move conf parsers and function prototypes
2019-06-30 04:45:56 +09:00
Lennart Poettering
762267cdc1
Merge pull request #12762 from yuwata/network-introduce-carrier-and-network-state-12752
...
network: introduce carrier and address state to fix network_is_online()
2019-06-20 13:36:30 +02:00
Yu Watanabe
b80a511b1b
network: add missing entries in routing_policy_rule_{hash,compare}_func()
...
This also makes routing_policy_rule_get() or friends take
a RoutingPolicyRule object as an input.
2019-06-19 21:10:07 +09:00
Yu Watanabe
ff14e2ebcb
network: do not configure routing policy rule if it is already configured
2019-06-18 13:10:23 +09:00
Yu Watanabe
ac999bf07d
sd-network: introduce functions for new link and manager states
2019-06-16 23:17:28 +09:00
Yu Watanabe
35c5a9cae4
network: expose carrier and address states over dbus
...
Previously, when a bridge or bonding interface is in degraded-carrier
state, then we cannot judge the interface has addresses or not.
By using the new states, dbus clients can distinguish such situation.
2019-06-16 23:17:28 +09:00
Yu Watanabe
1678fbb3c5
network: split operational states into carrier and address states
...
This should not change any behavior. The new states will be exposed by
later commits.
2019-06-16 23:17:23 +09:00
Yu Watanabe
6a1af3d4ca
network: split out DBus related prototypes to networkd-link-bus.h
2019-06-16 09:13:12 +09:00
Yu Watanabe
bafa964144
network: read link specific sysctl value
...
This introduce link_sysctl_ipv6_enabled() and replaces
manager_sysctl_ipv6_enabled() with it.
2019-06-15 14:56:42 +02:00
Yu Watanabe
463797c104
network: skip to check dynamic addresses when ConfigureWithoutCarrier=yes
...
Otherwise, the interface cannot be in "configured" state, as ipv6 link local
addressing is enabled by default. Note that even if ConfigureWithoutCarrier=
is set, all dynamic configurations are checked when the interface has
carrier.
2019-06-14 05:25:35 +09:00
Yu Watanabe
7ef7e5509b
network: ignore requested ipv6 routing policy rule when ipv6 is disabled by sysctl
2019-06-12 11:03:37 +09:00
Yu Watanabe
c442331750
network: ignore requested ipv6 route when ipv6 is disabled by sysctl
2019-06-12 11:03:08 +09:00
Yu Watanabe
54a1a535bd
network: ignore requested ipv6 addresses when ipv6 is disabled by sysctl
2019-06-12 11:02:33 +09:00
Yu Watanabe
d03073ddcd
network: assign new DHCP address before removing old lease address
...
Closes #12676 .
2019-06-07 16:22:00 +09:00
Zbigniew Jędrzejewski-Szmek
2db18cdd46
Merge pull request #12738 from yuwata/network-routing-policy-cleanup
...
network: several cleanups for routing policy rule
2019-06-06 18:53:20 +02:00
Yu Watanabe
db51778f85
network: make KeepConfiguration=static drop DHCP addresses and routes
...
Also, KeepConfiguration=dhcp drops static foreign addresses and routes.
2019-06-06 22:50:29 +09:00
Yu Watanabe
95355a281c
network: add KeepConfiguration=dhcp-on-stop
...
The option prevents to drop lease address on stop.
By setting this, we can safely restart networkd.
2019-06-06 22:50:29 +09:00
Susant Sahani
7da377ef16
networkd: add support to keep configuration
2019-06-06 22:50:29 +09:00
Yu Watanabe
9f08a578a8
network: remove unused argument in routing_policy_rule_configure()
2019-06-04 16:23:18 +09:00
Zbigniew Jędrzejewski-Szmek
c2babfc2f5
networkd: rewrite condition to make it easier to understand
2019-05-30 15:31:44 +02:00
Yu Watanabe
d61e4c5b6e
network: add nlmon support
...
nlmon is a Netlink monitor device.
2019-05-28 22:47:15 +09:00
Yu Watanabe
cab042b843
network: make VXCAN devices go through LINK_STATE_CONFIGURING
2019-05-24 10:55:33 +09:00
Yu Watanabe
910feb787f
network: unify link_ipv4ll_enabled() and link_ipv4ll_fallback_enabled()
2019-05-22 17:59:39 +09:00
Yu Watanabe
a0ae96149a
network: drop unused variable
2019-05-22 17:59:39 +09:00
Yu Watanabe
bb262ef02b
network: update master's ifindex in link_update()
...
And use it in link_is_enslaved().
2019-05-22 17:59:39 +09:00
Yu Watanabe
2292a4c6db
network: drop duplicated logs
...
link_set_state() already logs about state change.
2019-05-22 17:58:46 +09:00
Yu Watanabe
af9ba57aa2
network: make CAN devices go through LINK_STATE_CONFIGURING
2019-05-22 17:58:46 +09:00
Yu Watanabe
f410d46358
network: disable IPv4LL for ipvlan with L3 or L3S mode
...
As L3 or L3S mode do not support ARP.
2019-05-22 17:58:46 +09:00
Yu Watanabe
b26ea30801
network: tighten the condition whether link has carrier
...
ip command requires that IFF_RUNNING is set for that the link has
carrier.
2019-05-19 05:39:45 +09:00
Yu Watanabe
a32a00831c
Merge pull request #12574 from yuwata/network-mtu-issue-12552
...
network: do not always bump MTU with additional 4bytes
2019-05-16 08:25:48 +02:00
Yu Watanabe
fe0e16db09
network: do not use ordered_set_printf() for DOMAINS= or ROUTE_DOMAINS=
...
This partially reverts 5e2a51d588
.
Fixes #12531 .
2019-05-16 05:17:26 +02:00
Yu Watanabe
f6fcc1c2a4
network: bump MTU bytes only when MTUByte= is not set
2019-05-16 11:51:03 +09:00
Yu Watanabe
933c70a0a4
network: honor MTUBytes= setting
...
Closes #12552 .
2019-05-16 11:47:41 +09:00
Yu Watanabe
af2fa2c116
network: disable link local addressing on ipip, gre, sit, and vti netdevs
...
Closes #12547 .
2019-05-16 05:53:41 +09:00
Yu Watanabe
710ce9e537
network: link_check_ready() returns earlier if routes are not configured yet
...
link_request_set_routes() calls link_check_ready(), so it is not
necessary to continue that here.
2019-05-16 05:53:41 +09:00
Yu Watanabe
d8f31d7d32
Merge pull request #12537 from yuwata/network-link-local-follow-ups
...
network: do not send ipv6 token to kernel
2019-05-14 02:22:18 +02:00
Yu Watanabe
9f6e82e6eb
network: do not send ipv6 token to kernel
...
We disabled kernel RA support. Then, we should not send
IFLA_INET6_TOKEN.
Thus, we do not need to send IFLA_INET6_ADDR_GEN_MODE twice.
Follow-up for 0e2fdb83bb
and
4eb086a387
.
2019-05-12 07:32:00 +09:00
Yu Watanabe
86e2be7bc3
network: drop unnecessary initializations
2019-05-11 06:24:04 +09:00
Yu Watanabe
4799f19e30
network: move link_set_bond() to netdev/bond.c
2019-05-11 06:24:04 +09:00
Yu Watanabe
9a81f11956
network: move link_set_bridge to netdev/bridge.c
2019-05-11 06:24:04 +09:00
Yu Watanabe
3ddcbeea45
network: move CAN link related functions to networkd-can.c
2019-05-11 06:24:00 +09:00
Yu Watanabe
06d7cee589
network: make BindCarrier= work with CAN devices
...
If CAN device is set `BindCarrier=` then the interface could not be
down. This fixes the issue.
2019-05-11 06:21:43 +09:00
Yu Watanabe
8e54db83e2
network: make link_drop() can take custom handler
...
It will be used in the later commit.
2019-05-11 06:15:35 +09:00
Yu Watanabe
7f8539504c
network: move sd_lldp related functions to networkd-lldp-rx.c
2019-05-11 06:14:39 +09:00
Susant Sahani
be7468f07a
LLDP: Fix logs for LLDP
...
```
May 10 11:08:54 test systemd-networkd[447]: wwan0: Failed to stop LLDP: Success
May 10 11:08:54 test systemd-networkd[447]: wwan0: Gained carrier
May 10 11:08:54 test systemd-networkd[447]: wwan0: Failed to start LLDP: Success
```
2019-05-11 06:14:39 +09:00
Yu Watanabe
0b20047244
network: move link_lldp_emit_enabled() to networkd-lldp-tx.c
2019-05-11 06:14:39 +09:00
Yu Watanabe
5af7bc6f4c
Merge pull request #12480 from ssahani/proxy-arp
...
network: bridge add support to configure proxy ARP/WIFI
2019-05-10 15:30:41 +02:00
Susant Sahani
8185ca6c0a
networkd: Log error if LLDP fails to start/stop
...
Now LLDP does not log anything why it failed which
is hard to debug. Let's just add some logs.
https://github.com/systemd/systemd/issues/10881
2019-05-10 00:01:01 +02:00
Susant Sahani
0fadb2a46f
network: add support to configure proxy ARP/WIFI
2019-05-09 15:03:04 +09:00
Susant Sahani
4eb086a387
networkd: fix link_up() ( #12505 )
...
Fillup IFLA_INET6_ADDR_GEN_MODE while we do link_up.
Fixes the following error:
```
dummy-test: Could not bring up interface: Invalid argument
```
After reading the kernel code when we do a link up
```
net/core/rtnetlink.c
IFLA_AF_SPEC
af_ops->set_link_af(dev, af);
inet6_set_link_af
if (tb[IFLA_INET6_ADDR_GEN_MODE])
Here it looks for IFLA_INET6_ADDR_GEN_MODE
```
Since link up we didn't filling up that it's failing.
Closes #12504 .
2019-05-09 04:05:35 +02:00
Yu Watanabe
9aa5d8ba84
network: include glibc headers before including kernel headers
2019-05-09 03:21:31 +02:00
Yu Watanabe
004aadcacd
network: replace inet_pton() with in_addr_from_string()
2019-05-09 01:44:31 +02:00
Susant Sahani
1087623bac
networkd: Add support to configure proxy ARP and proxy ARP Wifi
2019-05-09 01:44:26 +02:00
Lennart Poettering
b2adc2ae3a
Merge pull request #12501 from keszybz/silence-strncpy-warnings
...
Silence strncpy warnings
2019-05-08 01:39:32 +02:00
Yu Watanabe
2c448c8a17
network: fix use-after-free
...
The function sd_radv_add_prefix() in dhcp6_pd_prefix_assign() may
return -EEXIST, and in that case the sd_radv_prefix object allocated
in dhcp6_pd_prefix_assign() will be freed when the function returns.
Hence, the key value in Manager::dhcp6_prefixes hashmap is lost.
2019-05-07 16:55:19 +02:00
Yu Watanabe
f535e35417
network: simplify link_free()
2019-05-07 16:55:19 +02:00