Hi Florian, This patchset removes the need to self invoke the parser and the evaluation to fetch the datatype. Instead, the expression type and the expression description are stored into the userdata area. This patch only supports for the payload expression, but it should be relatively easy to extend it to support for other existing expressions types. This patch could be squashed into 06/11 src: add "typeof" print support of your patch series, which is actually not just adding support for printing but also for building the userdata. Thanks. Pablo Neira Ayuso (3): proto: add proto_desc_id enumeration expr: add expr_ops_by_type() expr: add parse and build userdata interface include/expression.h | 5 +++ include/proto.h | 27 +++++++++++++ src/expression.c | 12 ++++++ src/mnl.c | 28 +++++--------- src/netlink.c | 105 +++++++++++++++++---------------------------------- src/payload.c | 80 +++++++++++++++++++++++++++++++++++++++ src/proto.c | 46 ++++++++++++++++++++++ 7 files changed, 214 insertions(+), 89 deletions(-) -- 2.11.0