path: root/src/meta.c
diff options
authorPatrick McHardy <>2014-01-16 17:11:12 +0000
committerPatrick McHardy <>2014-01-16 17:11:12 +0000
commit655fb611aecca135a3f09fe9a4c50ddb2c76a122 (patch)
tree1fb7124d5c644038148d1bc3366bf6b287c1cd3e /src/meta.c
parent001661033e177a5f580ff49de8d1a56a2e9b8cb8 (diff)
segtree: only use prefix expressions for ranges for selected datatypes
It is uncommon to represent f.i. port number ranges as prefix expressions. Introduce a datatype DTYPE_F_PREFIX flag to indicate that the preferred representation of a range is a prefix and use it for segtree decomposition to decide whether to use a range or prefix expression. The ipaddr, ip6addr, mark and realm datatypes are changed to include the DTYPE_F_PREFIX flag. This fixes completely unreadable output in cases where the ranges are representable as prefixes, f.i. in case of port number: { 0/6 => jump chain1, 0/5 => jump chain2, 0/4 => continue} becomes: { 0-1023 => jump chain1, 1024-2047 => jump chain2, 2048-4095 => continue} Signed-off-by: Patrick McHardy <>
Diffstat (limited to 'src/meta.c')
1 files changed, 1 insertions, 0 deletions
diff --git a/src/meta.c b/src/meta.c
index f06a2fbd..849acd15 100644
--- a/src/meta.c
+++ b/src/meta.c
@@ -61,6 +61,7 @@ static const struct datatype realm_type = {
.basetype = &integer_type,
.print = realm_type_print,
.parse = realm_type_parse,
+ .flags = DTYPE_F_PREFIX,
static void tchandle_type_print(const struct expr *expr)