X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=interface-ip.h;h=de8343d04e14643a135b14fdd7948ad440f5e6a5;hb=38c29e0bccabca0956498814729b2177b27e48a9;hp=5cc566537a21476bc37c6163de70bbb83644b2e5;hpb=39efab1db589c30317de9ed2c6dc700bb1252e13;p=project%2Fnetifd.git diff --git a/interface-ip.h b/interface-ip.h index 5cc5665..de8343d 100644 --- a/interface-ip.h +++ b/interface-ip.h @@ -77,6 +77,7 @@ struct device_prefix { struct device_addr { struct vlist_node node; bool enabled; + bool failed; /* ipv4 only */ uint32_t broadcast; @@ -85,6 +86,7 @@ struct device_addr { /* ipv6 only */ time_t valid_until; time_t preferred_until; + char *pclass; /* must be last */ enum device_addr_flags flags; @@ -98,6 +100,7 @@ struct device_route { bool enabled; bool keep; + bool failed; union if_addr nexthop; int mtu; @@ -108,6 +111,17 @@ struct device_route { int metric; // there can be multiple routes to the same target unsigned int table; unsigned int mask; + unsigned int sourcemask; + union if_addr addr; + union if_addr source; +}; + +struct device_source_table { + struct list_head head; + uint32_t table; + uint16_t refcount; + uint8_t v6; + uint8_t mask; union if_addr addr; }; @@ -122,7 +136,7 @@ struct dns_search_domain { char name[]; }; -extern const struct config_param_list route_attr_list; +extern const struct uci_blob_param_list route_attr_list; extern struct list_head prefixes; void interface_ip_init(struct interface *iface);