]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/network/networkd-netdev-vrf.c
networkd-wait-online: move to separate subdirectory
[thirdparty/systemd.git] / src / network / networkd-netdev-vrf.c
1 /***
2 This file is part of systemd.
3
4 Copyright 2016 Andreas Rammhold <andreas@rammhold.de>
5
6 systemd is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published by
8 the Free Software Foundation; either version 2.1 of the License, or
9 (at your option) any later version.
10
11 systemd is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public License
17 along with systemd; If not, see <http://www.gnu.org/licenses/>.
18 ***/
19
20 #include <net/if.h>
21
22 #include "sd-netlink.h"
23 #include "missing.h"
24 #include "networkd-netdev-vrf.h"
25
26 static int netdev_vrf_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
27 Vrf *v;
28 int r;
29
30 assert(netdev);
31 assert(!link);
32 assert(m);
33
34 v = VRF(netdev);
35
36 assert(v);
37
38 r = sd_netlink_message_append_u32(m, IFLA_VRF_TABLE, v->table_id);
39 if (r < 0)
40 return log_netdev_error_errno(netdev, r, "Could not append IPLA_VRF_TABLE attribute: %m");
41
42 return r;
43 }
44
45 const NetDevVTable vrf_vtable = {
46 .object_size = sizeof(Vrf),
47 .sections = "NetDev\0VRF\0",
48 .fill_message_create = netdev_vrf_fill_message_create,
49 .create_type = NETDEV_CREATE_MASTER,
50 };