components/wireshark/patches/evb.patch
author Petr Sumbera <petr.sumbera@oracle.com>
Wed, 13 May 2015 04:53:25 -0700
branchs11-update
changeset 4313 ab47f4c0c6fc
parent 2788 5d4a0834a077
child 5619 4d97a998cbcc
permissions -rw-r--r--
21081515 Upgrade Wireshark to version 1.12.5 19016321 Support for DCBx-CEE TLVs in wireshark 21081432 problem in UTILITY/WIRESHARK
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4313
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
     1
Patch origin: in-house
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
     2
Patch status: Will be sent to upstream.
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
     3
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
     4
Oracle Solaris ECP/VDP dissection based on IEEE 802.1Qbg Draft 2.1. 
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
     5
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
     6
Index: epan/oui.h
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
     7
===================================================================
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
     8
--- epan/oui.h	(revision 41973)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
     9
+++ epan/oui.h	(working copy)
4313
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
    10
@@ -45,6 +45,7 @@
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    11
 #define OUI_ERICSSON        0x0001EC    /* Ericsson Group */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    12
 #define OUI_CATENA          0x00025A    /* Catena Networks */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    13
 #define OUI_ATHEROS         0x00037F    /* Atheros Communications */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    14
+#define OUI_ORACLE          0x0003BA    /* Oracle */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    15
 #define OUI_SONY_ERICSSON   0x000AD9    /* Sony Ericsson Mobile Communications AB */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    16
 #define OUI_SONY_ERICSSON_2 0x000E07    /* Sony Ericsson Mobile Communications AB */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    17
 #define OUI_PROFINET        0x000ECF    /* PROFIBUS Nutzerorganisation e.V. */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    18
Index: epan/etypes.h
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    19
===================================================================
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    20
--- epan/etypes.h	(revision 41973)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    21
+++ epan/etypes.h	(working copy)
4313
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
    22
@@ -526,6 +526,10 @@
2332
63e5f5feab4b 7193164 upgrade wireshark to version 1.8.2
Petr Cvachoucek <petr.cvachoucek@oracle.com>
parents: 883
diff changeset
    23
 #define ETHERTYPE_HSR			0x892F  /* High-availability Seamless Redundancy (IEC62439 Part 3) */
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    24
 #endif
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    25
 
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    26
+#ifndef ETHERTYPE_ECP
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    27
+#define ETHERTYPE_ECP                   0x8940  /* Edge Control Protocol */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    28
+#endif
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    29
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    30
 #ifndef ETHERTYPE_LOOP
2788
5d4a0834a077 17508584 Upgrade Wireshark to version 1.10.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2332
diff changeset
    31
 #define ETHERTYPE_LOOP			0x9000	/* used for layer 2 testing (do i see my own frames on the wire) */
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    32
 #endif
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    33
Index: epan/dissectors/packet-ecp.c
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    34
===================================================================
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    35
--- epan/dissectors/packet-ecp.c	(revision 0)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    36
+++ epan/dissectors/packet-ecp.c	(revision 0)
4313
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
    37
@@ -0,0 +1,619 @@
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    38
+/* packet-ecp.c
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    39
+ * Routines for Solaris ECP/VDP dissection based on IEEE 802.1Qbg Draft 2.1
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    40
+ *
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    41
+ * Wireshark - Network traffic analyzer
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    42
+ * By Gerald Combs <[email protected]>
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    43
+ * Copyright 1998 Gerald Combs
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    44
+ *
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    45
+ * This program is free software; you can redistribute it and/or
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    46
+ * modify it under the terms of the GNU General Public License
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    47
+ * as published by the Free Software Foundation; either version 2
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    48
+ * of the License, or (at your option) any later version.
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    49
+ *
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    50
+ * This program is distributed in the hope that it will be useful,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    51
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    52
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    53
+ * GNU General Public License for more details.
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    54
+ *
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    55
+ * You should have received a copy of the GNU General Public License
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    56
+ * along with this program; if not, write to the Free Software
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    57
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    58
+ */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    59
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    60
+#ifdef HAVE_CONFIG_H
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    61
+# include "config.h"
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    62
+#endif
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    63
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    64
+#include <stdio.h>
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    65
+#include <epan/packet.h>
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    66
+#include <epan/etypes.h>
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    67
+#include <epan/oui.h>
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    68
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    69
+static int proto_ecp = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    70
+static int hf_ecp_version = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    71
+static int hf_ecp_op = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    72
+static int hf_ecp_subtype = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    73
+static int hf_ecp_seqno = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    74
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    75
+static int proto_vdp = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    76
+static int hf_vdp_tlv_type = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    77
+static int hf_vdp_tlv_len = -1;
4313
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
    78
+static int hf_vdp_tlv_len_invalid = -1;
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    79
+static int hf_vdp_tlv_assoc_reason = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    80
+static int hf_vdp_tlv_org_oui = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    81
+static int hf_vdp_vsitypeid = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    82
+static int hf_vdp_vsiversion = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    83
+static int hf_vdp_vsiid_format = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    84
+static int hf_vdp_filter_format = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    85
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    86
+static int hf_oui_oracle_subtype = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    87
+static int hf_oui_oracle_encoding = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    88
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    89
+static gint ett_ecp = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    90
+static gint ett_vdp_tlv = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    91
+static gint ett_vdp_tlv_mgrid = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    92
+static gint ett_vdp_tlv_assoc = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    93
+static gint ett_vdp_tlv_org = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    94
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    95
+static dissector_handle_t data_handle;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    96
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    97
+#define	ECP_OP_REQ		0x0
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    98
+#define	ECP_OP_ACK		0x1
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    99
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   100
+#define	ECP_SUBTYPE_VDP		0x0001
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   101
+#define	ECP_SUBTYPE_PECSP	0x0002
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   102
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   103
+#define VDP_TLV_PREASSOC	0x01
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   104
+#define VDP_TLV_PREASSOCRR	0x02
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   105
+#define VDP_TLV_ASSOC		0x03
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   106
+#define VDP_TLV_DEASSOC		0x04
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   107
+#define VDP_TLV_MGRID		0x05
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   108
+#define	VDP_TLV_ORG		0x7F
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   109
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   110
+#define	VSI_FMT_IPv4		0x01
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   111
+#define	VSI_FMT_IPv6		0x02
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   112
+#define	VSI_FMT_MAC		0x03
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   113
+#define	VSI_FMT_LOCAL		0x04
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   114
+#define	VSI_FMT_UUID		0x05
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   115
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   116
+#define	VDP_FILTER_VID		0x01
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   117
+#define	VDP_FILTER_MACVID	0x02
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   118
+#define	VDP_FILTER_GRPVID	0x03
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   119
+#define	VDP_FILTER_GRPMACVID	0x04
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   120
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   121
+/* Masks - from packet-lldp.c */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   122
+#define TLV_TYPE_MASK		0xFE00
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   123
+#define TLV_TYPE(value)		(((value) & TLV_TYPE_MASK) >> 9)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   124
+#define TLV_INFO_LEN_MASK	0x01FF
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   125
+#define TLV_INFO_LEN(value)	((value) & TLV_INFO_LEN_MASK)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   126
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   127
+#define	ECP_VERSION_MASK	0xF000
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   128
+#define	ECP_OP_MASK		0x0C00
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   129
+#define	ECP_SUBTYPE_MASK	0x03FF
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   130
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   131
+#define	ECP_VERSION(value)	(((value) & ECP_VERSION_MASK) >> 12)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   132
+#define	ECP_OP(value)		(((value) & ECP_OP_MASK) >> 10)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   133
+#define	ECP_SUBTYPE(value)	(((value) & ECP_SUBTYPE_MASK))
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   134
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   135
+#define	OUI_ORACLE_VSIMGR_SUBTYPE	0x01
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   136
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   137
+/*
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   138
+ * Hash table for translating OUIs to a dissector table/field info pair;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   139
+ * the dissector table maps PID values to dissectors, and the field
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   140
+ * corresponds to the PID for that OUI.
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   141
+ */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   142
+typedef struct {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   143
+	dissector_table_t table;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   144
+	hf_register_info *field_info;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   145
+} oui_info_t;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   146
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   147
+static GHashTable *oui_info_table = NULL;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   148
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   149
+static const value_string ecp_op_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   150
+	{ ECP_OP_REQ,	"ECP request" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   151
+	{ ECP_OP_ACK,	"ECP acknowledgement" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   152
+	{ 0,	NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   153
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   154
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   155
+static const value_string ecp_subtype_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   156
+	{ ECP_SUBTYPE_VDP,	"VDP" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   157
+	{ 0,			NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   158
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   159
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   160
+static const value_string vdp_tlv_type_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   161
+	{ VDP_TLV_PREASSOC,		"PreAssociate" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   162
+	{ VDP_TLV_PREASSOCRR,		"PreAssociate with RR" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   163
+	{ VDP_TLV_ASSOC,		"Associate" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   164
+	{ VDP_TLV_DEASSOC,		"DeAssociate" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   165
+	{ VDP_TLV_MGRID,		"VSI Manager ID" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   166
+	{ VDP_TLV_ORG,			"Orgnaizationally defined TLV" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   167
+	{ 0x0,				NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   168
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   169
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   170
+static const value_string vdp_tlv_oui_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   171
+	{ OUI_ORACLE,		"Oracle" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   172
+	{ 0x0,			NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   173
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   174
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   175
+static const value_string oui_oracle_subtype_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   176
+	{ OUI_ORACLE_VSIMGR_SUBTYPE,		"VSI Manager Subtype" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   177
+	{ 0x0,					NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   178
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   179
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   180
+static const value_string oui_oracle_encoding_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   181
+	{ 0x1,		"oracle_vsi_v1" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   182
+	{ 0x0,		NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   183
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   184
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   185
+static const value_string vdp_response_error_type_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   186
+	{ 0x0,	"Success" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   187
+	{ 0x1,	"Invalid Format" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   188
+	{ 0x2,	"Insufficient Resource" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   189
+	{ 0x3,	"Unable to Contact VSI Manager" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   190
+	{ 0x4,	"Other Failure" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   191
+	{ 0x5,	"Invalid VID, GroupID, or Mac address" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   192
+	{ 0x0,	NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   193
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   194
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   195
+static const value_string vdp_vsiid_format_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   196
+	{ VSI_FMT_IPv4,		"IPv4" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   197
+	{ VSI_FMT_IPv6,		"IPv6" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   198
+	{ VSI_FMT_MAC,		"MAC" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   199
+	{ VSI_FMT_LOCAL,	"Local" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   200
+	{ VSI_FMT_UUID,		"UUID" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   201
+	{ 0x0,	NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   202
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   203
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   204
+static const value_string vdp_filter_format_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   205
+	{ VDP_FILTER_VID,		"VID" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   206
+	{ VDP_FILTER_MACVID,		"MAC/VID" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   207
+	{ VDP_FILTER_GRPVID,		"GroupID/VID" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   208
+	{ VDP_FILTER_GRPMACVID,		"GroupID/MAC/VID" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   209
+	{ 0x0,				NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   210
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   211
+
4313
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   212
+static const true_false_string tfs_tlv_len_invalid = {
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   213
+        "",
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   214
+        ""
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   215
+};
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   216
+
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   217
+
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   218
+static void
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   219
+vdp_add_vidstr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, proto_item *ti)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   220
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   221
+	guint16 val;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   222
+	guint ps, pcp, vid;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   223
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   224
+	val = tvb_get_ntohs(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   225
+	ps = (val >> 12) & 0x8;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   226
+	pcp = (val >> 12) & 0x7;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   227
+	vid = val & 0x0FFF;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   228
+	if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   229
+		if (ti == NULL)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   230
+			proto_tree_add_text(tree, tvb, offset, 2,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   231
+			    "PS %u, PCP %u, VID %u", ps, pcp, vid);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   232
+		else
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   233
+			proto_item_append_text(ti,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   234
+			    "PS %u, PCP %u, VID %u", ps, pcp, vid);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   235
+	}	
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   236
+}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   237
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   238
+static gint32
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   239
+dissect_vdp_tlv_assoc(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint8 tlvtype)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   240
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   241
+	proto_tree *vdp_tlv_assoc_tree;	 
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   242
+	proto_item *ti;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   243
+	guint16 tlvhdr;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   244
+	guint32 tlvlen = 0;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   245
+	guint8 reason, flags;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   246
+	gboolean request;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   247
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   248
+	if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   249
+		if (tlvtype == VDP_TLV_ASSOC)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   250
+			ti = proto_tree_add_text(tree, tvb, offset, 2,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   251
+			    "VDP Associate");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   252
+		else
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   253
+			ti = proto_tree_add_text(tree, tvb, offset, 2,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   254
+			    "VDP DeAssociate");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   255
+		vdp_tlv_assoc_tree = proto_item_add_subtree(ti,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   256
+		    ett_vdp_tlv_assoc);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   257
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   258
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   259
+	tlvhdr = tvb_get_ntohs(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   260
+	tlvlen = TLV_INFO_LEN(tlvhdr);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   261
+	offset += 2;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   262
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   263
+	/* Reason */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   264
+	reason = tvb_get_bits8(tvb, offset, 8);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   265
+	flags = reason >> 4;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   266
+	request = !(flags & 0x4);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   267
+	if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   268
+		ti = proto_tree_add_item(vdp_tlv_assoc_tree,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   269
+		    hf_vdp_tlv_assoc_reason, tvb, offset, 1, ENC_BIG_ENDIAN);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   270
+		if (request) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   271
+			proto_item_append_text(ti, " Request");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   272
+			if (flags != 0) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   273
+				proto_item_append_text(ti, "; Flags (%x)",
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   274
+				    flags);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   275
+				if (flags & 0x1)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   276
+					proto_item_append_text(ti, " M-Bit");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   277
+				if (flags & 0x2)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   278
+					proto_item_append_text(ti, " S-Bit");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   279
+			}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   280
+		} else {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   281
+			guint8 error = reason & 0x0F;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   282
+			const char *errorstr;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   283
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   284
+			proto_item_append_text(ti, " Response");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   285
+			errorstr = val_to_str(error,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   286
+			    vdp_response_error_type_vals, "Unknown error");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   287
+			proto_item_append_text(ti, "%s", errorstr); 
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   288
+			if ((flags & 0x0F) != 0) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   289
+				proto_item_append_text(ti, "; Flags (%x)",
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   290
+				    flags);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   291
+				if (flags & 0x1)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   292
+					proto_item_append_text(ti,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   293
+					    " Hard Error");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   294
+				if (flags & 0x2)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   295
+					proto_item_append_text(ti, " Keep");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   296
+			}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   297
+		}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   298
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   299
+	offset++;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   300
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   301
+	if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   302
+		guint8 filter_format;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   303
+		const char *str;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   304
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   305
+		/* VSITYPEID/VERSION */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   306
+		proto_tree_add_item(vdp_tlv_assoc_tree,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   307
+		    hf_vdp_vsitypeid, tvb, offset, 3, ENC_BIG_ENDIAN);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   308
+		offset += 3;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   309
+		proto_tree_add_item(vdp_tlv_assoc_tree,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   310
+		    hf_vdp_vsiversion, tvb, offset, 1, ENC_BIG_ENDIAN);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   311
+		offset++;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   312
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   313
+		/* VSIID Format */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   314
+		proto_tree_add_item(vdp_tlv_assoc_tree,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   315
+		    hf_vdp_vsiid_format, tvb, offset, 1, ENC_BIG_ENDIAN);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   316
+		offset++;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   317
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   318
+		/* VSIID */
4313
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   319
+		str = tvb_bytes_to_ep_str_punct(tvb, offset, 16, ':');
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   320
+		proto_tree_add_text(vdp_tlv_assoc_tree, tvb, offset, 16,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   321
+		    "VSIID: %s", str);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   322
+		offset += 16;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   323
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   324
+		/* Filter Format */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   325
+		proto_tree_add_item(vdp_tlv_assoc_tree,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   326
+		    hf_vdp_filter_format, tvb, offset, 1, ENC_BIG_ENDIAN);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   327
+		filter_format = tvb_get_guint8(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   328
+		offset++;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   329
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   330
+		switch (filter_format) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   331
+		case VDP_FILTER_VID:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   332
+			vdp_add_vidstr(tvb, vdp_tlv_assoc_tree, offset, NULL);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   333
+			offset += 2;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   334
+			break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   335
+		case VDP_FILTER_MACVID:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   336
+			str = tvb_ether_to_str(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   337
+			ti = proto_tree_add_text(vdp_tlv_assoc_tree, tvb,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   338
+			    offset, 6, "MAC %s. ", str);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   339
+			offset += 6;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   340
+			vdp_add_vidstr(tvb, vdp_tlv_assoc_tree, offset, ti);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   341
+			offset += 2;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   342
+			break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   343
+		}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   344
+	} else {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   345
+		offset += 30;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   346
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   347
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   348
+	return offset; 
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   349
+}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   350
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   351
+static gint32
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   352
+dissect_vdp_tlv_mgrid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   353
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   354
+	proto_tree *vdp_tlv_mgrid_tree = NULL;	
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   355
+	proto_item *ti = NULL;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   356
+	guint16 tlvhdr;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   357
+	guint32 tlvlen = 0;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   358
+	const char *str;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   359
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   360
+	if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   361
+		ti = proto_tree_add_text(tree, tvb, offset, 2,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   362
+		    "%s", "VDP Manager ID");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   363
+		vdp_tlv_mgrid_tree = proto_item_add_subtree(ti,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   364
+		    ett_vdp_tlv_mgrid);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   365
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   366
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   367
+	tlvhdr = tvb_get_ntohs(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   368
+	tlvlen = TLV_INFO_LEN(tlvhdr);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   369
+	if (tlvlen != 16) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   370
+		if (tree) {
4313
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   371
+			proto_tree_add_boolean(vdp_tlv_mgrid_tree, hf_vdp_tlv_len_invalid, tvb, offset, 2, tlvlen);
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   372
+		}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   373
+		return -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   374
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   375
+	offset += 2;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   376
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   377
+	str = tvb_ip6_to_str(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   378
+	if (ti != NULL) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   379
+		proto_item_append_text(ti, ": %s", str);	
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   380
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   381
+	offset += 16;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   382
+	return offset;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   383
+}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   384
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   385
+static gint32
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   386
+dissect_oracle_tlv(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   387
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   388
+	if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   389
+		proto_tree_add_item(tree, hf_oui_oracle_encoding, tvb,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   390
+		    offset, 1, ENC_BIG_ENDIAN);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   391
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   392
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   393
+	return offset + 1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   394
+}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   395
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   396
+static gint32
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   397
+dissect_vdp_tlv_org(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   398
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   399
+	guint16 tlvhdr;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   400
+	guint32 tlvlen = 0;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   401
+	guint32 oui;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   402
+	guint8 subtype;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   403
+	const char *ouistr;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   404
+	const char *subtypestr;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   405
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   406
+	/* TLV header */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   407
+	tlvhdr = tvb_get_ntohs(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   408
+	tlvlen = TLV_INFO_LEN(tlvhdr);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   409
+	if (tlvlen < 3) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   410
+		if (tree) {
4313
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   411
+			proto_tree_add_boolean(tree, hf_vdp_tlv_len_invalid, tvb, offset, 2, tlvlen);
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   412
+		}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   413
+		return -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   414
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   415
+	offset += 2;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   416
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   417
+	oui = tvb_get_ntoh24(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   418
+	ouistr = val_to_str(oui, vdp_tlv_oui_vals, "Unknown");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   419
+	
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   420
+	/* XXX only support Oracle OUI for now */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   421
+	if (oui != OUI_ORACLE)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   422
+		return -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   423
+	offset += 3;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   424
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   425
+	subtype = tvb_get_guint8(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   426
+	subtypestr = val_to_str(subtype, oui_oracle_subtype_vals,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   427
+	    "Unknown subtype 0x%x"); 
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   428
+	offset++;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   429
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   430
+	if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   431
+		proto_tree_add_text(tree, tvb, offset, 0, "%s - %s",
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   432
+		    ouistr, subtypestr);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   433
+		/* XXX create a org tlv tree if neccessary */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   434
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   435
+	switch (subtype) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   436
+	case OUI_ORACLE_VSIMGR_SUBTYPE:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   437
+		offset = dissect_oracle_tlv(tvb, pinfo, tree, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   438
+		break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   439
+	default:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   440
+		return -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   441
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   442
+	return offset;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   443
+}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   444
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   445
+static void
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   446
+dissect_vdp_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint32 offset)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   447
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   448
+	proto_tree *vdp_tlv_tree = NULL;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   449
+	proto_item *ti;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   450
+	guint8	tlvtype;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   451
+	guint16 tlvhdr;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   452
+	guint32 tlvlen = 0;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   453
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   454
+	while (offset > 0) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   455
+		tlvhdr = tvb_get_ntohs(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   456
+		tlvtype = TLV_TYPE(tlvhdr);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   457
+		tlvlen = TLV_INFO_LEN(tlvhdr);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   458
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   459
+		if (tlvtype == 0) /* XXX most likely it's padding */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   460
+			break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   461
+		if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   462
+			ti = proto_tree_add_text(tree, tvb, offset, tlvlen + 2,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   463
+			    "VDP TLV");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   464
+			vdp_tlv_tree = proto_item_add_subtree(ti, ett_vdp_tlv);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   465
+			proto_tree_add_item(vdp_tlv_tree, hf_vdp_tlv_type, tvb,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   466
+			    offset, 2, ENC_BIG_ENDIAN);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   467
+			proto_tree_add_item(vdp_tlv_tree, hf_vdp_tlv_len, tvb,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   468
+			    offset, 2, ENC_BIG_ENDIAN);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   469
+		}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   470
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   471
+		switch (tlvtype) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   472
+		case VDP_TLV_PREASSOC:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   473
+			break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   474
+		case VDP_TLV_PREASSOCRR:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   475
+			break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   476
+		case VDP_TLV_ASSOC:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   477
+		case VDP_TLV_DEASSOC:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   478
+			offset = dissect_vdp_tlv_assoc(tvb, pinfo, vdp_tlv_tree,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   479
+			    offset, tlvtype);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   480
+			break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   481
+		case VDP_TLV_MGRID:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   482
+			offset = dissect_vdp_tlv_mgrid(tvb, pinfo, vdp_tlv_tree,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   483
+			    offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   484
+			break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   485
+		case VDP_TLV_ORG:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   486
+			offset = dissect_vdp_tlv_org(tvb, pinfo, vdp_tlv_tree,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   487
+			    offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   488
+			break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   489
+		default:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   490
+			/* unknown type */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   491
+			goto done;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   492
+		}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   493
+	}
883
50516829ab64 7174457 EVB patch for wireshark userland (fix parfait build)
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 872
diff changeset
   494
+done: ;
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   495
+}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   496
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   497
+static void
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   498
+dissect_ecp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   499
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   500
+	proto_item *ti;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   501
+	proto_tree *ecp_tree = NULL;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   502
+	int offset = 0;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   503
+	guint16 hdr, ver, op, subtype, seqno;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   504
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   505
+	col_set_str(pinfo->cinfo, COL_PROTOCOL, "ECP");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   506
+	col_clear(pinfo->cinfo, COL_INFO);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   507
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   508
+	/* Version/OP/Subtype */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   509
+	hdr = tvb_get_ntohs(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   510
+	ver = ECP_VERSION(hdr);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   511
+	op = ECP_OP(hdr);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   512
+	subtype = ECP_SUBTYPE(hdr);
4313
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   513
+	col_append_fstr(pinfo->cinfo, COL_INFO,
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   514
+	    "PDU Version = %x OP = %x"
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   515
+	    " Subtype = %x", ver, op, subtype);
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   516
+
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   517
+	if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   518
+		/* details */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   519
+		ti = proto_tree_add_item(tree, proto_ecp, tvb, 0, -1, ENC_NA);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   520
+		ecp_tree = proto_item_add_subtree(ti, ett_ecp);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   521
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   522
+		proto_tree_add_item(ecp_tree, hf_ecp_version, tvb, offset, 2,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   523
+		    ENC_BIG_ENDIAN);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   524
+		proto_tree_add_item(ecp_tree, hf_ecp_op, tvb, offset, 2,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   525
+		    ENC_BIG_ENDIAN);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   526
+		proto_tree_add_item(ecp_tree, hf_ecp_subtype, tvb, offset, 2,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   527
+		    ENC_BIG_ENDIAN);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   528
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   529
+	offset += 2;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   530
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   531
+	/* Seqno */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   532
+	if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   533
+		proto_tree_add_item(ecp_tree, hf_ecp_seqno, tvb, offset, 2,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   534
+		    ENC_BIG_ENDIAN);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   535
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   536
+	seqno = tvb_get_ntohs(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   537
+	switch (op) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   538
+	case ECP_OP_REQ:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   539
+		col_append_fstr(pinfo->cinfo, COL_INFO,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   540
+		    " SEQ = 0x%x", seqno);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   541
+		break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   542
+	case ECP_OP_ACK:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   543
+		col_append_fstr(pinfo->cinfo, COL_INFO,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   544
+		    " ACK = 0x%x", seqno);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   545
+		break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   546
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   547
+	offset += 2;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   548
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   549
+	/* XXX todo: use sub-dissector */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   550
+	if (subtype == ECP_SUBTYPE_VDP) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   551
+		dissect_vdp_tlv(tvb, pinfo, ecp_tree, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   552
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   553
+}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   554
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   555
+void
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   556
+proto_register_ecp(void)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   557
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   558
+	static hf_register_info hf_ecp[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   559
+		{ &hf_ecp_version,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   560
+		{ "Version",	"ecp.ver", FT_UINT16, BASE_DEC,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   561
+		    NULL, ECP_VERSION_MASK, NULL, HFILL }},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   562
+		{ &hf_ecp_op,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   563
+		{ "Operation", "ecp.op", FT_UINT16, BASE_HEX,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   564
+		    VALS(ecp_op_vals), ECP_OP_MASK, NULL, HFILL }},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   565
+		{ &hf_ecp_subtype,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   566
+		{ "Subtype", "ecp.subtype", FT_UINT16, BASE_HEX,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   567
+		    VALS(ecp_subtype_vals), ECP_SUBTYPE_MASK, NULL, HFILL }},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   568
+		{ &hf_ecp_seqno,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   569
+		{ "Sequence number", "ecp.seqno", FT_UINT16, BASE_DEC,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   570
+		    NULL, 0x0, NULL, HFILL }},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   571
+	};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   572
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   573
+	static hf_register_info hf_vdp[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   574
+		{ &hf_vdp_tlv_type,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   575
+		{ "VDP TLV Type",	"vdp.tlvtype", FT_UINT16, BASE_DEC,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   576
+			VALS(vdp_tlv_type_vals), TLV_TYPE_MASK, NULL, HFILL }},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   577
+		{ &hf_vdp_tlv_len,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   578
+		{ "VDP TLV Length",	"vdp.tlvlen", FT_UINT16, BASE_DEC,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   579
+			NULL, TLV_INFO_LEN_MASK, NULL, HFILL }},
4313
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   580
+		{ &hf_vdp_tlv_len_invalid,
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   581
+		{ "VDP TLV Invalid Length", "vdp.tlvlen_invalid", FT_BOOLEAN,
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   582
+		    	16, TFS(&tfs_tlv_len_invalid), TLV_INFO_LEN_MASK,
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   583
+			NULL, HFILL}},
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   584
+		{ &hf_vdp_tlv_assoc_reason,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   585
+		{ "Reason/Status",	"vdp.assoc.reason", FT_UINT8, BASE_HEX,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   586
+			NULL, 0x0, NULL, HFILL }},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   587
+		{ &hf_vdp_tlv_org_oui,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   588
+		{ "Org OUI", "vdp.org.oui", FT_UINT24, BASE_HEX,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   589
+			VALS(vdp_tlv_oui_vals), 0x0, NULL, HFILL}},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   590
+		{ &hf_oui_oracle_subtype,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   591
+		{ "Oracle Subtype", "vdp.oracle.subtype", FT_UINT8, BASE_HEX,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   592
+			VALS(oui_oracle_subtype_vals), 0x0, NULL, HFILL}},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   593
+		{ &hf_oui_oracle_encoding,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   594
+		{ "VSI Manager ID Encoding", "vdp.oracle.encoding", FT_UINT8,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   595
+		    	BASE_HEX, VALS(oui_oracle_encoding_vals),
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   596
+			0x0, NULL, HFILL}},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   597
+		{ &hf_vdp_vsitypeid,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   598
+		{ "VSI Type ID", "vdp.vsitypeid", FT_UINT24,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   599
+		    	BASE_HEX, NULL, 0x0, NULL, HFILL}},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   600
+		{ &hf_vdp_vsiversion,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   601
+		{ "VSI Version", "vdp.vsiversion", FT_UINT8,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   602
+		    	BASE_HEX, NULL, 0x0, NULL, HFILL}},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   603
+		{ &hf_vdp_vsiid_format,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   604
+		{ "VSIID Format ", "vdp.vsiidformat", FT_UINT8,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   605
+		    	BASE_HEX, VALS(vdp_vsiid_format_vals), 0x0,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   606
+			NULL, HFILL}},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   607
+		{ &hf_vdp_filter_format,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   608
+		{ "VDP Filter Format ", "vdp.filterformat", FT_UINT8,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   609
+		    	BASE_HEX, VALS(vdp_filter_format_vals), 0x0,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   610
+			NULL, HFILL}},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   611
+		
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   612
+	};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   613
+		
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   614
+	static gint *ett[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   615
+		&ett_ecp,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   616
+		&ett_vdp_tlv,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   617
+		&ett_vdp_tlv_assoc,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   618
+		&ett_vdp_tlv_mgrid,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   619
+		&ett_vdp_tlv_org,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   620
+	};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   621
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   622
+	proto_ecp = proto_register_protocol("Edge Control Protocol",
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   623
+	    "ECP21", "ecp21");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   624
+	proto_register_field_array(proto_ecp, hf_ecp, array_length(hf_ecp));
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   625
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   626
+	proto_vdp = proto_register_protocol("VSI protocol",
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   627
+	    "VDP21", "vdp21");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   628
+	proto_register_field_array(proto_vdp, hf_vdp, array_length(hf_vdp));
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   629
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   630
+	proto_register_subtree_array(ett, array_length(ett));
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   631
+}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   632
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   633
+static void
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   634
+register_hf(gpointer key _U_, gpointer value, gpointer user_data _U_)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   635
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   636
+	oui_info_t *info = value;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   637
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   638
+	proto_register_field_array(proto_ecp, info->field_info, 1);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   639
+}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   640
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   641
+void
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   642
+proto_reg_handoff_ecp_21(void)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   643
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   644
+	dissector_handle_t ecp_handle;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   645
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   646
+	data_handle = find_dissector("data");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   647
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   648
+	ecp_handle = create_dissector_handle(dissect_ecp, proto_ecp);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   649
+	dissector_add_uint("ethertype", ETHERTYPE_ECP, ecp_handle);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   650
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   651
+	/*
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   652
+	 * Register all the fields for PIDs for various OUIs.
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   653
+	 */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   654
+	if (oui_info_table != NULL)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   655
+		g_hash_table_foreach(oui_info_table, register_hf, NULL);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   656
+}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   657
Index: epan/dissectors/Makefile.common
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   658
===================================================================
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   659
--- epan/dissectors/Makefile.common	(revision 41973)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   660
+++ epan/dissectors/Makefile.common	(working copy)
4313
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   661
@@ -118,6 +118,7 @@
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   662
 	packet-dop.c	\
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   663
 	packet-dsp.c	\
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   664
 	packet-ess.c	\
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   665
+	packet-ecp.c	\
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   666
 	packet-ftam.c	\
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   667
 	packet-goose.c	\
ab47f4c0c6fc 21081515 Upgrade Wireshark to version 1.12.5
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2788
diff changeset
   668
 	packet-HI2Operations.c	\