X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=interface.h;h=5b89b176e5b2f95d849e981e1d70ceb7137b63c4;hp=90087fc0298fe137102c01e8dfdb433f4e4f005e;hb=c007f08413edc15805c248a8d65f075bb5fb0bdd;hpb=922c169147fc6e4c4ecf94029528192636e917e7 diff --git a/interface.h b/interface.h index 90087fc..5b89b17 100644 --- a/interface.h +++ b/interface.h @@ -26,6 +26,7 @@ enum interface_event { IFEV_UPDATE, IFEV_FREE, IFEV_RELOAD, + IFEV_LINK_UP, }; enum interface_state { @@ -41,6 +42,12 @@ enum interface_config_state { IFC_REMOVE }; +enum interface_id_selection_type { + IFID_FIXED, + IFID_RANDOM, + IFID_EUI64 +}; + enum interface_update_flags { IUF_ADDRESS = (1 << 0), IUF_ROUTE = (1 << 1), @@ -106,6 +113,8 @@ struct interface { bool link_state; bool force_link; bool dynamic; + bool policy_rules_set; + bool link_up_event; time_t start_time; enum interface_state state; @@ -114,6 +123,7 @@ struct interface { struct list_head users; + /* for alias interface */ const char *parent_ifname; struct interface_user parent_iface; @@ -139,6 +149,8 @@ struct interface { unsigned int ip6table; /* IPv6 assignment parameters */ + enum interface_id_selection_type assignment_iface_id_selection; + struct in6_addr assignment_fixed_iface_id; uint8_t assignment_length; int32_t assignment_hint; struct list_head assignment_classes; @@ -184,6 +196,7 @@ void interface_add_error(struct interface *iface, const char *subsystem, const char *code, const char **data, int n_data); int interface_add_data(struct interface *iface, const struct blob_attr *data); +int interface_parse_data(struct interface *iface, const struct blob_attr *attr); void interface_update_start(struct interface *iface); void interface_update_complete(struct interface *iface);