projects
/
project
/
netifd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
system-linux: fix strncpy bounds
[project/netifd.git]
/
iprule.h
diff --git
a/iprule.h
b/iprule.h
index
75c6a2b
..
b723bdb
100644
(file)
--- a/
iprule.h
+++ b/
iprule.h
@@
-17,6
+17,11
@@
#include "interface-ip.h"
#include "interface-ip.h"
+#define IPRULE_PRIORITY_ADDR 10000
+#define IPRULE_PRIORITY_ADDR_MASK 20000
+#define IPRULE_PRIORITY_NW 90000
+#define IPRULE_PRIORITY_REJECT 4200000000
+
enum iprule_flags {
/* address family for rule */
IPRULE_INET4 = (0 << 0),
enum iprule_flags {
/* address family for rule */
IPRULE_INET4 = (0 << 0),
@@
-24,22
+29,22
@@
enum iprule_flags {
IPRULE_FAMILY = IPRULE_INET4 | IPRULE_INET6,
/* rule specifies input device */
IPRULE_FAMILY = IPRULE_INET4 | IPRULE_INET6,
/* rule specifies input device */
- IPRULE_IN
= (1 << 2),
+ IPRULE_IN = (1 << 2),
/* rule specifies output device */
/* rule specifies output device */
- IPRULE_OUT
= (1 << 3),
+ IPRULE_OUT = (1 << 3),
/* rule specifies src */
/* rule specifies src */
- IPRULE_SRC
= (1 << 4),
+ IPRULE_SRC = (1 << 4),
/* rule specifies dest */
/* rule specifies dest */
- IPRULE_DEST
= (1 << 5),
+ IPRULE_DEST = (1 << 5),
/* rule specifies priority */
IPRULE_PRIORITY = (1 << 6),
/* rule specifies diffserv/tos */
/* rule specifies priority */
IPRULE_PRIORITY = (1 << 6),
/* rule specifies diffserv/tos */
- IPRULE_TOS
= (1 << 7),
+ IPRULE_TOS = (1 << 7),
/* rule specifies fwmark */
IPRULE_FWMARK = (1 << 8),
/* rule specifies fwmark */
IPRULE_FWMARK = (1 << 8),
@@
-54,11
+59,15
@@
enum iprule_flags {
IPRULE_ACTION = (1 << 11),
/* rule is a goto */
IPRULE_ACTION = (1 << 11),
/* rule is a goto */
- IPRULE_GOTO = (1 << 12),
+ IPRULE_GOTO = (1 << 12),
+
+ /* rule suppresses results by prefix length */
+ IPRULE_SUP_PREFIXLEN = (1 << 13),
};
struct iprule {
struct vlist_node node;
};
struct iprule {
struct vlist_node node;
+ unsigned int order;
/* everything below is used as avl tree key */
enum iprule_flags flags;
/* everything below is used as avl tree key */
enum iprule_flags flags;
@@
-81,12
+90,13
@@
struct iprule {
unsigned int fwmask;
unsigned int lookup;
unsigned int fwmask;
unsigned int lookup;
+ unsigned int sup_prefixlen;
unsigned int action;
unsigned int gotoid;
};
extern struct vlist_tree iprules;
unsigned int action;
unsigned int gotoid;
};
extern struct vlist_tree iprules;
-extern const struct
config
_param_list rule_attr_list;
+extern const struct
uci_blob
_param_list rule_attr_list;
void iprule_add(struct blob_attr *attr, bool v6);
void iprule_update_start(void);
void iprule_add(struct blob_attr *attr, bool v6);
void iprule_update_start(void);