From: Sven Eckelmann <sven@narfation.org>
Date: Sun, 9 Jun 2019 19:11:37 +0200
Subject: batadv: Fix filtering by mcast flags

The mcast tvlv flags field was incorrectly mapped to "batadv.iv_ogm.flags".
But this is the generic B.A.T.M.A.N IV's flags field and not the
specialized mcast TVLV's flag.

Just add a special field "batadv.tvlv.mcast.flags" to handle these flags.

Change-Id: Ia1f37f10d8d58146bd71ef607933f61d7dbc6e88
Fixes: 4cc431579363 ("batadv: Add dissector support for batadv v15")
Signed-off-by: Sven Eckelmann <sven@narfation.org>

diff --git a/epan/dissectors/packet-batadv.c b/epan/dissectors/packet-batadv.c
index b56bc6f1839ee89845fcf32bf17886b8dbbc76f0..eb51ec312dcf8345ce149400a9b4201d97943f74 100644
--- a/epan/dissectors/packet-batadv.c
+++ b/epan/dissectors/packet-batadv.c
@@ -633,6 +633,7 @@ static int hf_batadv_unicast_frag_flags_largetail = -1;
 static int hf_batadv_iv_ogm_flags_not_best_next_hop = -1;
 static int hf_batadv_iv_ogm_flags_primaries_first_hop = -1;
 static int hf_batadv_iv_ogm_flags_directlink = -1;
+static int hf_batadv_tvlv_mcast_flags = -1;
 static int hf_batadv_tvlv_mcast_flags_unsnoopables = -1;
 static int hf_batadv_tvlv_mcast_flags_ipv4 = -1;
 static int hf_batadv_tvlv_mcast_flags_ipv6 = -1;
@@ -3998,7 +3999,7 @@ static void dissect_batadv_tvlv_v15_mcast(tvbuff_t *tvb, packet_info *pinfo,
 		return;
 	}
 
-	proto_tree_add_bitmask(tree, tvb, offset, hf_batadv_iv_ogm_flags,
+	proto_tree_add_bitmask(tree, tvb, offset, hf_batadv_tvlv_mcast_flags,
 			       ett_batadv_tvlv_mcast_flags, flags, ENC_NA);
 
 	/* 3 byte of padding. */
@@ -4909,6 +4910,11 @@ void proto_register_batadv(void)
 		    FT_UINT16, BASE_DEC, NULL, 0x0,
 		    NULL, HFILL }
 		},
+		{ &hf_batadv_tvlv_mcast_flags,
+		  { "Flags", "batadv.tvlv.mcast.flags",
+		    FT_UINT8, BASE_HEX, NULL, 0x0,
+		    NULL, HFILL }
+		},
 		{ &hf_batadv_tvlv_mcast_flags_unsnoopables,
 		  { "Unsnoopables", "batadv.tvlv.mcast.flags.unsnoopables",
 		    FT_BOOLEAN, 8, TFS(&tfs_set_notset), 0x1,
