netifd: add possibility to switch off route config
authorFlorian Eckert <fe@dev.tdt.de>
Tue, 24 Nov 2020 07:18:00 +0000 (08:18 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 3 Apr 2021 15:24:32 +0000 (17:24 +0200)
This change adds the new configuration option `disabled` for the route
section, which can be used to temporarily disable the section so that
the route is not set. The advantage is that we do not have to delete
this route configuration section to achieve this.

config route
  option disabled '1

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
interface-ip.c

index 1444fbfcdecf1e53927ae19a184649d7895dd182..648f521c407f3cde8c4eed7f4de29666b9012fd0 100644 (file)
@@ -43,6 +43,7 @@ enum {
        ROUTE_ONLINK,
        ROUTE_TYPE,
        ROUTE_PROTO,
+       ROUTE_DISABLED,
        __ROUTE_MAX
 };
 
@@ -59,6 +60,7 @@ static const struct blobmsg_policy route_attr[__ROUTE_MAX] = {
        [ROUTE_ONLINK] = { .name = "onlink", .type = BLOBMSG_TYPE_BOOL },
        [ROUTE_TYPE] = { .name = "type", .type = BLOBMSG_TYPE_STRING },
        [ROUTE_PROTO] = { .name = "proto", .type = BLOBMSG_TYPE_STRING },
+       [ROUTE_DISABLED] = { .name = "disabled", .type = BLOBMSG_TYPE_BOOL },
 };
 
 const struct uci_blob_param_list route_attr_list = {
@@ -394,6 +396,9 @@ interface_ip_add_route(struct interface *iface, struct blob_attr *attr, bool v6)
 
        blobmsg_parse(route_attr, __ROUTE_MAX, tb, blobmsg_data(attr), blobmsg_data_len(attr));
 
+       if ((cur = tb[ROUTE_DISABLED]) != NULL && blobmsg_get_bool(cur))
+               return;
+
        if (!iface) {
                if ((cur = tb[ROUTE_INTERFACE]) == NULL)
                        return;