[NETDEV_KIND_GRE] = "gre",
[NETDEV_KIND_SIT] = "sit",
[NETDEV_KIND_VETH] = "veth",
+ [NETDEV_KIND_VTI] = "vti"
};
DEFINE_STRING_TABLE_LOOKUP(netdev_kind, NetDevKind);
free(netdev->description);
free(netdev->ifname);
+ free(netdev->mac);
+ free(netdev->mac_peer);
condition_free_list(netdev->match_host);
condition_free_list(netdev->match_virt);
return r;
}
- if(netdev->mtu) {
+ if (netdev->mtu) {
r = sd_rtnl_message_append_u32(req, IFLA_MTU, netdev->mtu);
if (r < 0) {
log_error_netdev(netdev,
}
}
+ if (netdev->mac) {
+ r = sd_rtnl_message_append_ether_addr(req, IFLA_ADDRESS, netdev->mac);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Colud not append IFLA_ADDRESS attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
r = sd_rtnl_message_open_container(req, IFLA_LINKINFO);
if (r < 0) {
log_error_netdev(netdev,
if(netdev->kind == NETDEV_KIND_IPIP ||
netdev->kind == NETDEV_KIND_GRE ||
- netdev->kind == NETDEV_KIND_SIT)
+ netdev->kind == NETDEV_KIND_SIT ||
+ netdev->kind == NETDEV_KIND_VTI)
return netdev_create_tunnel(link, netdev_create_handler);
if (netdev->state == NETDEV_STATE_READY) {
netdev->kind != NETDEV_KIND_MACVLAN &&
netdev->kind != NETDEV_KIND_IPIP &&
netdev->kind != NETDEV_KIND_GRE &&
- netdev->kind != NETDEV_KIND_SIT) {
+ netdev->kind != NETDEV_KIND_SIT &&
+ netdev->kind != NETDEV_KIND_VTI) {
r = netdev_create(netdev, NULL, NULL);
if (r < 0)
return r;