} else if (iface->device &&
!(iface->proto_handler->flags & PROTO_FLAG_NODEV)) {
dev = device_get(iface->device, true);
- interface_set_device_config(iface, dev);
+ if (!(iface->proto_handler->flags & PROTO_FLAG_NODEV_CONFIG))
+ interface_set_device_config(iface, dev);
} else {
dev = iface->ext_dev.dev;
}
if (tmp && json_object_get_boolean(tmp))
handler->proto.flags |= PROTO_FLAG_NODEV;
+ tmp = json_get_field(obj, "no-device-config", json_type_boolean);
+ if (tmp && json_object_get_boolean(tmp))
+ handler->proto.flags |= PROTO_FLAG_NODEV_CONFIG;
+
tmp = json_get_field(obj, "no-proto-task", json_type_boolean);
if (tmp && json_object_get_boolean(tmp))
handler->proto.flags |= PROTO_FLAG_NO_TASK;
PROTO_FLAG_LASTERROR = (1 << 5),
PROTO_FLAG_TEARDOWN_ON_L3_LINK_DOWN = (1 << 6),
PROTO_FLAG_NO_TASK = (1 << 7),
+ PROTO_FLAG_NODEV_CONFIG = (1 << 8),
};
struct interface_proto_state {
dump)
add_protocol() {
no_device=0
+ no_device_config=0
no_proto_task=0
available=0
renew_handler=0
eval "proto_$1_init_config"
json_close_array
json_add_boolean no-device "$no_device"
+ json_add_boolean no-device-config "$no_device_config"
json_add_boolean no-proto-task "$no_proto_task"
json_add_boolean available "$available"
json_add_boolean renew-handler "$renew_handler"