-static void __uci_to_blob(struct blob_buf *b, struct uci_section *s,
- const struct config_param_list *p)
+static void
+config_parse_route(struct uci_section *s, bool v6)
+{
+ void *route;
+
+ blob_buf_init(&b, 0);
+ route = blobmsg_open_array(&b, "route");
+ uci_to_blob(&b, s, &route_attr_list);
+ blobmsg_close_array(&b, route);
+ interface_ip_add_route(NULL, blob_data(b.head), v6);
+}
+
+static void
+config_parse_rule(struct uci_section *s, bool v6)
+{
+ void *rule;
+
+ blob_buf_init(&b, 0);
+ rule = blobmsg_open_array(&b, "rule");
+ uci_to_blob(&b, s, &rule_attr_list);
+ blobmsg_close_array(&b, rule);
+ iprule_add(blob_data(b.head), v6);
+}
+
+static void
+config_init_devices(void)