enum fw3_target
{
- FW3_TARGET_UNSPEC = 0,
- FW3_TARGET_ACCEPT = 6,
- FW3_TARGET_REJECT = 7,
- FW3_TARGET_DROP = 8,
- FW3_TARGET_NOTRACK = 9,
- FW3_TARGET_DNAT = 10,
- FW3_TARGET_SNAT = 11,
+ FW3_TARGET_UNSPEC = 0,
+ FW3_TARGET_ACCEPT = 6,
+ FW3_TARGET_REJECT = 7,
+ FW3_TARGET_DROP = 8,
+ FW3_TARGET_NOTRACK = 9,
+ FW3_TARGET_DNAT = 10,
+ FW3_TARGET_SNAT = 11,
+ FW3_TARGET_CUSTOM_CHAINS = 12, /* alias to FW3_DEFAULT_CUSTOM_CHAINS */
};
enum fw3_default
FW3_IPSET_TYPE_SET = 5,
};
+enum fw3_include_type
+{
+ FW3_INC_TYPE_SCRIPT = 0,
+ FW3_INC_TYPE_RESTORE = 1,
+};
+
struct fw3_ipset_datatype
{
struct list_head list;
bool tcp_syncookies;
bool tcp_ecn;
- bool tcp_westwood;
bool tcp_window_scaling;
bool accept_redirects;
struct list_head list;
struct list_head running_list;
+ bool enabled;
const char *name;
enum fw3_family family;
{
struct list_head list;
+ bool enabled;
const char *name;
enum fw3_family family;
{
struct list_head list;
+ bool enabled;
const char *name;
enum fw3_family family;
{
struct list_head list;
+ bool enabled;
const char *name;
enum fw3_family family;
struct list_head list;
struct list_head running_list;
+ bool enabled;
const char *name;
enum fw3_family family;
uint16_t flags;
};
+struct fw3_include
+{
+ struct list_head list;
+ struct list_head running_list;
+
+ bool enabled;
+ const char *name;
+ enum fw3_family family;
+
+ const char *path;
+ enum fw3_include_type type;
+};
+
struct fw3_state
{
struct uci_context *uci;
struct list_head redirects;
struct list_head forwards;
struct list_head ipsets;
+ struct list_head includes;
struct fw3_defaults running_defaults;
struct list_head running_zones;
bool fw3_parse_ipset_method(void *ptr, const char *val);
bool fw3_parse_ipset_datatype(void *ptr, const char *val);
+bool fw3_parse_include_type(void *ptr, const char *val);
+
bool fw3_parse_date(void *ptr, const char *val);
bool fw3_parse_time(void *ptr, const char *val);
bool fw3_parse_weekdays(void *ptr, const char *val);