projects
/
project
/
netifd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert "vlan: reset device state on init"
[project/netifd.git]
/
macvlan.c
diff --git
a/macvlan.c
b/macvlan.c
index
f42f3e5
..
019a7ff
100644
(file)
--- a/
macvlan.c
+++ b/
macvlan.c
@@
-19,6
+19,10
@@
#include <errno.h>
#include <net/ethernet.h>
#include <errno.h>
#include <net/ethernet.h>
+#ifdef linux
+#include <netinet/ether.h>
+#endif
+
#include "netifd.h"
#include "device.h"
#include "interface.h"
#include "netifd.h"
#include "device.h"
#include "interface.h"
@@
-40,6
+44,9
@@
static const struct blobmsg_policy macvlan_attrs[__MACVLAN_ATTR_MAX] = {
static const struct uci_blob_param_list macvlan_attr_list = {
.n_params = __MACVLAN_ATTR_MAX,
.params = macvlan_attrs,
static const struct uci_blob_param_list macvlan_attr_list = {
.n_params = __MACVLAN_ATTR_MAX,
.params = macvlan_attrs,
+
+ .n_next = 1,
+ .next = { &device_attr_list },
};
struct macvlan_device {
};
struct macvlan_device {
@@
-65,6
+72,12
@@
macvlan_base_cb(struct device_user *dev, enum device_event ev)
case DEV_EVENT_REMOVE:
device_set_present(&mvdev->dev, false);
break;
case DEV_EVENT_REMOVE:
device_set_present(&mvdev->dev, false);
break;
+ case DEV_EVENT_LINK_UP:
+ device_set_link(&mvdev->dev, true);
+ break;
+ case DEV_EVENT_LINK_DOWN:
+ device_set_link(&mvdev->dev, false);
+ break;
default:
return;
}
default:
return;
}
@@
-245,6
+258,7
@@
macvlan_create(const char *name, struct blob_attr *attr)
const struct device_type macvlan_device_type = {
.name = "MAC VLAN",
.config_params = &macvlan_attr_list,
const struct device_type macvlan_device_type = {
.name = "MAC VLAN",
.config_params = &macvlan_attr_list,
+ .keep_link_status = true,
.create = macvlan_create,
.config_init = macvlan_config_init,
.create = macvlan_create,
.config_init = macvlan_config_init,