+ if (!route->mask)
+ sprintf(addr, "default");
+ else
+ inet_ntop(af, &route->addr.in, addr, sizeof(addr));
+
+ if (memcmp(&route->nexthop.in, (void *) zero_addr, alen) != 0)
+ inet_ntop(af, &route->nexthop.in, gw + 4, sizeof(gw) - 4);
+ else
+ gw[0] = 0;
+
+ if (dev)
+ sprintf(devstr, " dev %s", dev->ifname);
+
+ if (route->metric > 0)
+ sprintf(devstr, " metric %d", route->metric);
+
+ D(SYSTEM, "route %s %s%s%s\n", type, addr, gw, devstr);
+ return 0;
+}
+
+int system_add_route(struct device *dev, struct device_route *route)
+{
+ return system_route_msg(dev, route, "add");
+}
+
+int system_del_route(struct device *dev, struct device_route *route)
+{
+ return system_route_msg(dev, route, "del");
+}
+
+int system_flush_routes(void)
+{
+ return 0;
+}
+
+bool system_resolve_rt_type(const char *type, unsigned int *id)
+{
+ *id = 0;
+ return true;
+}
+
+bool system_resolve_rt_table(const char *name, unsigned int *id)
+{
+ *id = 0;
+ return true;
+}
+
+bool system_is_default_rt_table(unsigned int id)
+{
+ return true;
+}
+
+bool system_resolve_rpfilter(const char *filter, unsigned int *id)
+{
+ *id = 0;
+ return true;
+}
+
+int system_add_iprule(struct iprule *rule)
+{
+ return 0;
+}
+
+int system_del_iprule(struct iprule *rule)
+{
+ return 0;
+}
+
+int system_flush_iprules(void)
+{
+ return 0;
+}
+
+bool system_resolve_iprule_action(const char *action, unsigned int *id)
+{
+ *id = 0;
+ return true;
+}
+
+time_t system_get_rtime(void)
+{
+ struct timeval tv;
+
+ if (gettimeofday(&tv, NULL) == 0)
+ return tv.tv_sec;
+
+ return 0;
+}
+
+int system_del_ip_tunnel(const char *name, struct blob_attr *attr)
+{
+ return 0;
+}
+
+int system_add_ip_tunnel(const char *name, struct blob_attr *attr)
+{
+ return 0;
+}
+
+int system_update_ipv6_mtu(struct device *dev, int mtu)
+{
+ return 0;
+}
+
+int system_macvlan_add(struct device *macvlan, struct device *dev, struct macvlan_config *cfg)
+{
+ return 0;
+}
+
+int system_macvlan_del(struct device *macvlan)
+{
+ return 0;
+}
+
+int system_vlandev_add(struct device *vlandev, struct device *dev, struct vlandev_config *cfg)
+{
+ return 0;
+}
+
+int system_vlandev_del(struct device *vlandev)
+{