From 928e90790609938cb90419244a86316f4abf6a8d Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Sat, 20 Aug 2016 18:33:27 +0200 Subject: [PATCH] nflog: add fields for interface indices Allows me to see the interface indices in a column. Change-Id: I0dd31d7ec06eb860e7c80a4273779ec9034ee42d Reviewed-on: https://code.wireshark.org/review/17193 Petri-Dish: Michael Mann Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann --- epan/dissectors/packet-nflog.c | 44 ++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/epan/dissectors/packet-nflog.c b/epan/dissectors/packet-nflog.c index 82df074dcc..6de5efc6ad 100644 --- a/epan/dissectors/packet-nflog.c +++ b/epan/dissectors/packet-nflog.c @@ -111,6 +111,18 @@ static header_field_info hfi_nflog_tlv_hwprotocol NFLOG_HFI_INIT = static header_field_info hfi_nflog_tlv_hook NFLOG_HFI_INIT = { "Netfilter hook", "nflog.hook", FT_UINT8, BASE_DEC, VALS(netfilter_hooks_vals), 0x00, NULL, HFILL }; +static header_field_info hfi_nflog_tlv_ifindex_indev NFLOG_HFI_INIT = + { "IFINDEX_INDEV", "nflog.ifindex_indev", FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL }; + +static header_field_info hfi_nflog_tlv_ifindex_outdev NFLOG_HFI_INIT = + { "IFINDEX_OUTDEV", "nflog.ifindex_outdev", FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL }; + +static header_field_info hfi_nflog_tlv_ifindex_physindev NFLOG_HFI_INIT = + { "IFINDEX_PHYSINDEV", "nflog.ifindex_physindev", FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL }; + +static header_field_info hfi_nflog_tlv_ifindex_physoutdev NFLOG_HFI_INIT = + { "IFINDEX_PHYSOUTDEV", "nflog.ifindex_physoutdev", FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL }; + static header_field_info hfi_nflog_tlv_prefix NFLOG_HFI_INIT = { "Prefix", "nflog.prefix", FT_STRINGZ, BASE_NONE, NULL, 0x00, "TLV Prefix Value", HFILL }; @@ -203,6 +215,34 @@ dissect_nflog(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U } break; + case WS_NFULA_IFINDEX_INDEV: + if (value_len == 4) { + proto_tree_add_item(tlv_tree, &hfi_nflog_tlv_ifindex_indev, tvb, offset + 4, value_len, ENC_BIG_ENDIAN); + handled = TRUE; + } + break; + + case WS_NFULA_IFINDEX_OUTDEV: + if (value_len == 4) { + proto_tree_add_item(tlv_tree, &hfi_nflog_tlv_ifindex_outdev, tvb, offset + 4, value_len, ENC_BIG_ENDIAN); + handled = TRUE; + } + break; + + case WS_NFULA_IFINDEX_PHYSINDEV: + if (value_len == 4) { + proto_tree_add_item(tlv_tree, &hfi_nflog_tlv_ifindex_physindev, tvb, offset + 4, value_len, ENC_BIG_ENDIAN); + handled = TRUE; + } + break; + + case WS_NFULA_IFINDEX_PHYSOUTDEV: + if (value_len == 4) { + proto_tree_add_item(tlv_tree, &hfi_nflog_tlv_ifindex_physoutdev, tvb, offset + 4, value_len, ENC_BIG_ENDIAN); + handled = TRUE; + } + break; + case WS_NFULA_PAYLOAD: handled = TRUE; break; @@ -295,6 +335,10 @@ proto_register_nflog(void) /* TLV values */ &hfi_nflog_tlv_hwprotocol, &hfi_nflog_tlv_hook, + &hfi_nflog_tlv_ifindex_indev, + &hfi_nflog_tlv_ifindex_outdev, + &hfi_nflog_tlv_ifindex_physindev, + &hfi_nflog_tlv_ifindex_physoutdev, &hfi_nflog_tlv_prefix, &hfi_nflog_tlv_uid, &hfi_nflog_tlv_gid,