ROUTE_VALID,
ROUTE_TABLE,
ROUTE_SOURCE,
+ ROUTE_ONLINK,
__ROUTE_MAX
};
[ROUTE_TABLE] = { .name = "table", .type = BLOBMSG_TYPE_STRING },
[ROUTE_VALID] = { .name = "valid", .type = BLOBMSG_TYPE_INT32 },
[ROUTE_SOURCE] = { .name = "source", .type = BLOBMSG_TYPE_STRING },
+ [ROUTE_ONLINK] = { .name = "onlink", .type = BLOBMSG_TYPE_BOOL },
};
const struct uci_blob_param_list route_attr_list = {
route->sourcemask = (mask) ? atoi(mask) : ((af == AF_INET6) ? 128 : 32);
}
+ if ((cur = tb[ROUTE_ONLINK]) != NULL && blobmsg_get_bool(cur))
+ route->flags |= DEVROUTE_ONLINK;
+
if (is_proto_route) {
route->table = (v6) ? iface->ip6table : iface->ip4table;
route->flags |= DEVROUTE_SRCTABLE;
if (node_old && node_new)
keep = !memcmp(&route_old->nexthop, &route_new->nexthop, sizeof(route_old->nexthop)) &&
- !route_old->failed;
+ (route_old->mtu == route_new->mtu) && !route_old->failed;
if (node_old) {
if (!(route_old->flags & DEVADDR_EXTERNAL) && route_old->enabled && !keep)