-/* SPDX-License-Identifier: LGPL-2.1+ */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/* Make sure the net/if.h header is included before any linux/ one */
#include <net/if.h>
+#include <linux/if_arp.h>
+#include <netinet/in.h>
-#include "sd-netlink.h"
-#include "missing.h"
-#include "netdev/vrf.h"
+#include "vrf.h"
static int netdev_vrf_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
- Vrf *v;
- int r;
-
- assert(netdev);
assert(!link);
assert(m);
- v = VRF(netdev);
-
- assert(v);
+ Vrf *v = VRF(netdev);
+ int r;
r = sd_netlink_message_append_u32(m, IFLA_VRF_TABLE, v->table);
if (r < 0)
- return log_netdev_error_errno(netdev, r, "Could not append IPLA_VRF_TABLE attribute: %m");
+ return r;
- return r;
+ return 0;
}
const NetDevVTable vrf_vtable = {
.object_size = sizeof(Vrf),
- .sections = "NetDev\0VRF\0",
+ .sections = NETDEV_COMMON_SECTIONS "VRF\0",
.fill_message_create = netdev_vrf_fill_message_create,
- .create_type = NETDEV_CREATE_MASTER,
+ .create_type = NETDEV_CREATE_INDEPENDENT,
+ .iftype = ARPHRD_ETHER,
+ .generate_mac = true,
};