projects
/
project
/
netifd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add source-restricted routes
[project/netifd.git]
/
interface.h
diff --git
a/interface.h
b/interface.h
index
d186903
..
8c69958
100644
(file)
--- a/
interface.h
+++ b/
interface.h
@@
-23,6
+23,7
@@
struct interface_proto_state;
enum interface_event {
IFEV_DOWN,
IFEV_UP,
enum interface_event {
IFEV_DOWN,
IFEV_UP,
+ IFEV_UPDATE,
IFEV_FREE,
IFEV_RELOAD,
};
IFEV_FREE,
IFEV_RELOAD,
};
@@
-60,9
+61,6
@@
struct interface_ip_settings {
bool no_defaultroute;
bool no_dns;
bool no_defaultroute;
bool no_dns;
- uint8_t assignment_length;
- int32_t assignment_hint;
-
struct vlist_tree addr;
struct vlist_tree route;
struct vlist_tree prefix;
struct vlist_tree addr;
struct vlist_tree route;
struct vlist_tree prefix;
@@
-76,6
+74,11
@@
struct interface_data {
struct blob_attr data[];
};
struct blob_attr data[];
};
+struct interface_assignment_class {
+ struct list_head head;
+ char name[];
+};
+
/*
* interface configuration
*/
/*
* interface configuration
*/
@@
-91,6
+94,7
@@
struct interface {
bool autostart;
bool config_autostart;
bool device_config;
bool autostart;
bool config_autostart;
bool device_config;
+ bool dynamic;
time_t start_time;
enum interface_state state;
time_t start_time;
enum interface_state state;
@@
-121,6
+125,11
@@
struct interface {
unsigned int ip4table;
unsigned int ip6table;
unsigned int ip4table;
unsigned int ip6table;
+ /* IPv6 assignment parameters */
+ uint8_t assignment_length;
+ int32_t assignment_hint;
+ struct list_head assignment_classes;
+
/* errors/warnings while trying to bring up the interface */
struct list_head errors;
/* errors/warnings while trying to bring up the interface */
struct list_head errors;
@@
-133,10
+142,10
@@
struct interface {
extern struct vlist_tree interfaces;
extern struct vlist_tree interfaces;
-extern const struct
config
_param_list interface_attr_list;
+extern const struct
uci_blob
_param_list interface_attr_list;
void interface_init(struct interface *iface, const char *name,
void interface_init(struct interface *iface, const char *name,
- struct blob_attr *config);
+ struct blob_attr *config
, bool dynamic
);
void interface_add(struct interface *iface, struct blob_attr *config);
bool interface_add_alias(struct interface *iface, struct blob_attr *config);
void interface_add(struct interface *iface, struct blob_attr *config);
bool interface_add_alias(struct interface *iface, struct blob_attr *config);