#define CLASSIFY_PIN_PATH "/sys/fs/bpf/qosify"
#define CLASSIFY_DATA_PATH "/sys/fs/bpf/qosify_data"
+#define QOSIFY_DNS_IFNAME "ifb-dns"
+
enum qosify_map_id {
CL_MAP_TCP_PORTS,
CL_MAP_UDP_PORTS,
struct in_addr ip;
struct in6_addr ip6;
struct {
+ uint32_t seq : 30;
+ uint32_t only_cname : 1;
const char *pattern;
regex_t regex;
} dns;
extern struct qosify_config config;
extern struct qosify_flow_config flow_config;
+int qosify_run_cmd(char *cmd, bool ignore_error);
+
int qosify_loader_init(void);
int qosify_map_init(void);
int qosify_map_dscp_value(const char *val, uint8_t *dscp);
int qosify_map_load_file(const char *file);
+void __qosify_map_set_entry(struct qosify_map_data *data);
int qosify_map_set_entry(enum qosify_map_id id, bool file, const char *str,
uint8_t dscp);
void qosify_map_reload(void);
void qosify_map_reset_config(void);
void qosify_map_update_config(void);
void qosify_map_set_classes(struct blob_attr *val);
+int qosify_map_lookup_dns_entry(char *host, bool cname, uint8_t *dscp, uint32_t *seq);
int qosify_map_add_dns_host(char *host, const char *addr, const char *type, int ttl);
int map_parse_flow_config(struct qosify_flow_config *cfg, struct blob_attr *attr,
bool reset);
void qosify_iface_status(struct blob_buf *b);
void qosify_iface_stop(void);
+int qosify_dns_init(void);
+void qosify_dns_stop(void);
+
int qosify_ubus_init(void);
void qosify_ubus_stop(void);
int qosify_ubus_check_interface(const char *name, char *ifname, int ifname_len);