filter.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00023
00024 #ifndef _NAF_FILTER_H_
00025 #define _NAF_FILTER_H_
00026
00027 #include <naf/autoinc.h>
00028 #include <naf/nafcore.h>
00029 #include <naf/lexcore.h>
00030
00032 typedef struct _NAFilter {
00034 GArray *binrl;
00036 gboolean sipnot;
00038 GArray *siprl;
00040 gboolean dipnot;
00042 GArray *diprl;
00044 gboolean spnot;
00046 GArray *sprl;
00048 gboolean dpnot;
00050 GArray *dprl;
00052 gboolean protonot;
00054 GArray *protorl;
00056 GArray *florl;
00058 GArray *rflorl;
00060 GArray *pktrl;
00062 GArray *rpktrl;
00064 GArray *octrl;
00066 GArray *roctrl;
00067 } NAFilter;
00068
00070 #define naf_filter_active(_filter_) (((_filter_).binrl) || \
00071 ((_filter_).siprl) || \
00072 ((_filter_).diprl) || \
00073 ((_filter_).sprl) || \
00074 ((_filter_).dprl) || \
00075 ((_filter_).protorl) || \
00076 ((_filter_).florl) || \
00077 ((_filter_).rflorl) || \
00078 ((_filter_).pktrl) || \
00079 ((_filter_).rpktrl) || \
00080 ((_filter_).octrl) || \
00081 ((_filter_).roctrl))
00082
00092 void naf_filter_rl_add(
00093 GArray **rl,
00094 uint32_t a,
00095 uint32_t b);
00096
00105 gboolean naf_filter_rl_contains(
00106 GArray *rl,
00107 uint32_t v);
00108
00119 gboolean naf_filter_key(
00120 NAFilter *filter,
00121 NAFlowKey *key);
00122
00133 gboolean naf_filter_val(
00134 NAFilter *filter,
00135 NAFlowVal *val);
00136
00144 void naf_filter_init(
00145 NAFilter *filter);
00146
00154 void naf_filter_reinit(
00155 NAFilter *filter);
00156
00164 void naf_filter_rl_print(
00165 GArray *rl,
00166 GString *str);
00167
00175 void naf_filter_rl_print_ipaddr(
00176 GArray *rl,
00177 GString *str);
00178
00186 void naf_filter_print(
00187 NAFilter *filter,
00188 GString *str);
00189
00201 gboolean naf_filter_rl_parse_ipaddr(
00202 GScanner *scanner,
00203 GArray **rl);
00204
00218 gboolean naf_filter_rl_parse_uint(
00219 GScanner *scanner,
00220 GArray **rl,
00221 uint32_t max);
00222
00235 gboolean naf_filter_parse(
00236 GScanner *scanner,
00237 NAFilter *filter);
00238
00239 #endif