+
+ iprule_update_complete();
+}
+
+static void
+config_init_globals(void)
+{
+ struct uci_section *globals = uci_lookup_section(
+ uci_ctx, uci_network, "globals");
+ if (!globals)
+ return;
+
+ const char *ula_prefix = uci_lookup_option_string(
+ uci_ctx, globals, "ula_prefix");
+ interface_ip_set_ula_prefix(ula_prefix);
+}
+
+void
+config_init_all(void)
+{
+ uci_network = config_init_package("network");
+ if (!uci_network) {
+ fprintf(stderr, "Failed to load network config\n");
+ return;
+ }
+
+ vlist_update(&interfaces);
+ config_init = true;
+ device_lock();
+
+ device_reset_config();
+ config_init_devices();
+ config_init_interfaces();
+ config_init_routes();
+ config_init_rules();
+ config_init_globals();
+