diff options
-rw-r--r-- | input/flow/ulogd_inpflow_NFCT.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/input/flow/ulogd_inpflow_NFCT.c b/input/flow/ulogd_inpflow_NFCT.c index bdfd7dd..fe827a7 100644 --- a/input/flow/ulogd_inpflow_NFCT.c +++ b/input/flow/ulogd_inpflow_NFCT.c @@ -181,6 +181,8 @@ enum nfct_keys { NFCT_REPLY_RAW_PKTCOUNT, NFCT_ICMP_CODE, NFCT_ICMP_TYPE, + NFCT_ICMPV6_CODE, + NFCT_ICMPV6_TYPE, NFCT_CT_MARK, NFCT_CT_ID, NFCT_CT_EVENT, @@ -343,6 +345,24 @@ static struct ulogd_key nfct_okeys[] = { }, }, { + .type = ULOGD_RET_UINT8, + .flags = ULOGD_RETF_NONE, + .name = "icmpv6.code", + .ipfix = { + .vendor = IPFIX_VENDOR_IETF, + .field_id = IPFIX_icmpCodeIPv6, + }, + }, + { + .type = ULOGD_RET_UINT8, + .flags = ULOGD_RETF_NONE, + .name = "icmpv6.type", + .ipfix = { + .vendor = IPFIX_VENDOR_IETF, + .field_id = IPFIX_icmpTypeIPv6, + }, + }, + { .type = ULOGD_RET_UINT32, .flags = ULOGD_RETF_NONE, .name = "ct.mark", @@ -547,6 +567,12 @@ static int propagate_ct(struct ulogd_pluginstance *main_upi, okey_set_u16(&ret[NFCT_ICMP_TYPE], nfct_get_attr_u8(ct, ATTR_ICMP_TYPE)); break; + case IPPROTO_ICMPV6: + okey_set_u16(&ret[NFCT_ICMPV6_CODE], + nfct_get_attr_u8(ct, ATTR_ICMP_CODE)); + okey_set_u16(&ret[NFCT_ICMPV6_TYPE], + nfct_get_attr_u8(ct, ATTR_ICMP_TYPE)); + break; } switch (nfct_get_attr_u8(ct, ATTR_REPL_L4PROTO)) { |