mirror of
https://github.com/systemd/systemd
synced 2024-11-05 18:25:39 +00:00
Merge pull request #13807 from 1848/ip6gre_key_fix
networkd: Set key (IFLA_GRE_IKEY,IFLA_GRE_OKEY) on ip6gre interfaces.
This commit is contained in:
commit
69ec2fdd9c
2 changed files with 46 additions and 0 deletions
|
@ -2018,6 +2018,16 @@ Local=10.65.223.238
|
|||
Remote=10.65.223.239</programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>/etc/systemd/network/25-ip6gre.netdev</title>
|
||||
<programlisting>[NetDev]
|
||||
Name=ip6gre-tun
|
||||
Kind=ip6gre
|
||||
|
||||
[Tunnel]
|
||||
Key=123</programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>/etc/systemd/network/25-vti.netdev</title>
|
||||
|
||||
|
|
|
@ -226,6 +226,10 @@ static int netdev_gre_erspan_fill_message_create(NetDev *netdev, Link *link, sd_
|
|||
}
|
||||
|
||||
static int netdev_ip6gre_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
|
||||
uint32_t ikey = 0;
|
||||
uint32_t okey = 0;
|
||||
uint16_t iflags = 0;
|
||||
uint16_t oflags = 0;
|
||||
Tunnel *t;
|
||||
int r;
|
||||
|
||||
|
@ -267,6 +271,38 @@ static int netdev_ip6gre_fill_message_create(NetDev *netdev, Link *link, sd_netl
|
|||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_FLAGS attribute: %m");
|
||||
|
||||
if (t->key != 0) {
|
||||
ikey = okey = htobe32(t->key);
|
||||
iflags |= GRE_KEY;
|
||||
oflags |= GRE_KEY;
|
||||
}
|
||||
|
||||
if (t->ikey != 0) {
|
||||
ikey = htobe32(t->ikey);
|
||||
iflags |= GRE_KEY;
|
||||
}
|
||||
|
||||
if (t->okey != 0) {
|
||||
okey = htobe32(t->okey);
|
||||
oflags |= GRE_KEY;
|
||||
}
|
||||
|
||||
r = sd_netlink_message_append_u32(m, IFLA_GRE_IKEY, ikey);
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_IKEY attribute: %m");
|
||||
|
||||
r = sd_netlink_message_append_u32(m, IFLA_GRE_OKEY, okey);
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_OKEY attribute: %m");
|
||||
|
||||
r = sd_netlink_message_append_u16(m, IFLA_GRE_IFLAGS, iflags);
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_IFLAGS attribute: %m");
|
||||
|
||||
r = sd_netlink_message_append_u16(m, IFLA_GRE_OFLAGS, oflags);
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not append IFLA_GRE_OFLAGS, attribute: %m");
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue