datatype: use DTYPE_F_PREFIX only for IP address datatype

DTYPE_F_PREFIX flag provides a hint to the netlink delinearize path to
use prefix notation.

It seems use of prefix notation in meta mark causes confusion, users
expect to see prefix in the listing only in IP address datatypes.

Untoggle this flag so (more lengthy) binop output such as:

  meta mark & 0xffffff00 == 0xffffff00

is used instead.

Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=1739
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
Pablo Neira Ayuso 2024-03-21 12:40:53 +01:00
parent c0a5b8c6a6
commit a2a7fbdfdd
5 changed files with 10 additions and 13 deletions

View File

@ -1015,7 +1015,6 @@ const struct datatype mark_type = {
.print = mark_type_print,
.json = mark_type_json,
.parse = mark_type_parse,
.flags = DTYPE_F_PREFIX,
};
static const struct symbol_table icmp_code_tbl = {

View File

@ -363,7 +363,6 @@ const struct datatype devgroup_type = {
.print = devgroup_type_print,
.json = devgroup_type_json,
.parse = devgroup_type_parse,
.flags = DTYPE_F_PREFIX,
};
const struct datatype ifname_type = {

View File

@ -61,7 +61,6 @@ const struct datatype realm_type = {
.basetype = &integer_type,
.print = realm_type_print,
.parse = realm_type_parse,
.flags = DTYPE_F_PREFIX,
};
const struct rt_template rt_templates[] = {

View File

@ -56,7 +56,7 @@ meta mark and 0x03 == 0x01;ok;meta mark & 0x00000003 == 0x00000001
meta mark and 0x03 != 0x01;ok;meta mark & 0x00000003 != 0x00000001
meta mark 0x10;ok;meta mark 0x00000010
meta mark != 0x10;ok;meta mark != 0x00000010
meta mark 0xffffff00/24;ok
meta mark 0xffffff00/24;ok;meta mark & 0xffffff00 == 0xffffff00
meta mark or 0x03 == 0x01;ok;meta mark | 0x00000003 == 0x00000001
meta mark or 0x03 != 0x01;ok;meta mark | 0x00000003 != 0x00000001

View File

@ -667,17 +667,17 @@
{
"match": {
"left": {
"meta": {
"key": "mark"
}
"&": [
{
"meta": {
"key": "mark"
}
},
4294967040
]
},
"op": "==",
"right": {
"prefix": {
"addr": 4294967040,
"len": 24
}
}
"right": 4294967040
}
}
]