components/wireshark/patches/evb.patch
author Petr Sumbera <petr.sumbera@oracle.com>
Wed, 02 Mar 2016 08:40:04 -0800
changeset 5619 4d97a998cbcc
parent 3878 b6ed43d2d1b8
permissions -rw-r--r--
22866734 Upgrade Wireshark to version 2.0.2 22857432 problem in UTILITY/WIRESHARK 22857450 problem in UTILITY/WIRESHARK
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3878
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
     1
Patch origin: in-house
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
     2
Patch status: Will be sent to upstream.
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
     3
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
     4
Oracle Solaris ECP/VDP dissection based on IEEE 802.1Qbg Draft 2.1. 
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
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)
3878
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
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 */
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
    16
 #define OUI_ARUBA           0x000B86    /* Aruba Networks */
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    17
 #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
    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)
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
    22
@@ -538,6 +538,10 @@
955
d73530a1bcea 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
1488
04528ffd139d 17508584 Upgrade Wireshark to version 1.10.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 955
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)
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
    37
@@ -0,0 +1,624 @@
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>
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
    67
+#include <epan/to_str.h>
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    68
+#include <epan/oui.h>
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    69
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    70
+static int proto_ecp = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    71
+static int hf_ecp_version = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    72
+static int hf_ecp_op = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    73
+static int hf_ecp_subtype = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    74
+static int hf_ecp_seqno = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    75
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    76
+static int proto_vdp = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    77
+static int hf_vdp_tlv_type = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    78
+static int hf_vdp_tlv_len = -1;
3878
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
    79
+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
    80
+static int hf_vdp_tlv_assoc_reason = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    81
+static int hf_vdp_tlv_org_oui = -1;
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
    82
+static int hf_vdp_vidstr = -1;
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    83
+static int hf_vdp_vsitypeid = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    84
+static int hf_vdp_vsiversion = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    85
+static int hf_vdp_vsiid_format = -1;
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
    86
+static int hf_vdp_vsiid = -1;
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    87
+static int hf_vdp_filter_format = -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 int hf_oui_oracle_subtype = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    90
+static int hf_oui_oracle_encoding = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    91
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    92
+static gint ett_ecp = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    93
+static gint ett_vdp_tlv = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    94
+static gint ett_vdp_tlv_mgrid = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    95
+static gint ett_vdp_tlv_assoc = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    96
+static gint ett_vdp_tlv_org = -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    97
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
    98
+static dissector_handle_t data_handle;
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_OP_REQ		0x0
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   101
+#define	ECP_OP_ACK		0x1
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	ECP_SUBTYPE_VDP		0x0001
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   104
+#define	ECP_SUBTYPE_PECSP	0x0002
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   105
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   106
+#define VDP_TLV_PREASSOC	0x01
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   107
+#define VDP_TLV_PREASSOCRR	0x02
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   108
+#define VDP_TLV_ASSOC		0x03
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   109
+#define VDP_TLV_DEASSOC		0x04
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   110
+#define VDP_TLV_MGRID		0x05
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   111
+#define	VDP_TLV_ORG		0x7F
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   112
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   113
+#define	VSI_FMT_IPv4		0x01
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   114
+#define	VSI_FMT_IPv6		0x02
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   115
+#define	VSI_FMT_MAC		0x03
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   116
+#define	VSI_FMT_LOCAL		0x04
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   117
+#define	VSI_FMT_UUID		0x05
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   118
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   119
+#define	VDP_FILTER_VID		0x01
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   120
+#define	VDP_FILTER_MACVID	0x02
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   121
+#define	VDP_FILTER_GRPVID	0x03
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   122
+#define	VDP_FILTER_GRPMACVID	0x04
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   123
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   124
+/* Masks - from packet-lldp.c */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   125
+#define TLV_TYPE_MASK		0xFE00
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   126
+#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
   127
+#define TLV_INFO_LEN_MASK	0x01FF
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   128
+#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
   129
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   130
+#define	ECP_VERSION_MASK	0xF000
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   131
+#define	ECP_OP_MASK		0x0C00
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   132
+#define	ECP_SUBTYPE_MASK	0x03FF
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   133
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   134
+#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
   135
+#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
   136
+#define	ECP_SUBTYPE(value)	(((value) & ECP_SUBTYPE_MASK))
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
+#define	OUI_ORACLE_VSIMGR_SUBTYPE	0x01
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   139
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   140
+/*
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   141
+ * 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
   142
+ * 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
   143
+ * corresponds to the PID for that OUI.
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   144
+ */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   145
+typedef struct {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   146
+	dissector_table_t table;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   147
+	hf_register_info *field_info;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   148
+} oui_info_t;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   149
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   150
+static GHashTable *oui_info_table = NULL;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   151
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   152
+static const value_string ecp_op_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   153
+	{ ECP_OP_REQ,	"ECP request" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   154
+	{ ECP_OP_ACK,	"ECP acknowledgement" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   155
+	{ 0,	NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   156
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   157
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   158
+static const value_string ecp_subtype_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   159
+	{ ECP_SUBTYPE_VDP,	"VDP" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   160
+	{ 0,			NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   161
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   162
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   163
+static const value_string vdp_tlv_type_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   164
+	{ VDP_TLV_PREASSOC,		"PreAssociate" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   165
+	{ VDP_TLV_PREASSOCRR,		"PreAssociate with RR" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   166
+	{ VDP_TLV_ASSOC,		"Associate" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   167
+	{ VDP_TLV_DEASSOC,		"DeAssociate" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   168
+	{ VDP_TLV_MGRID,		"VSI Manager ID" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   169
+	{ VDP_TLV_ORG,			"Orgnaizationally defined TLV" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   170
+	{ 0x0,				NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   171
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   172
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   173
+static const value_string vdp_tlv_oui_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   174
+	{ OUI_ORACLE,		"Oracle" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   175
+	{ 0x0,			NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   176
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   177
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   178
+static const value_string oui_oracle_subtype_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   179
+	{ OUI_ORACLE_VSIMGR_SUBTYPE,		"VSI Manager Subtype" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   180
+	{ 0x0,					NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   181
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   182
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   183
+static const value_string oui_oracle_encoding_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   184
+	{ 0x1,		"oracle_vsi_v1" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   185
+	{ 0x0,		NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   186
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   187
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   188
+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
   189
+	{ 0x0,	"Success" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   190
+	{ 0x1,	"Invalid Format" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   191
+	{ 0x2,	"Insufficient Resource" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   192
+	{ 0x3,	"Unable to Contact VSI Manager" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   193
+	{ 0x4,	"Other Failure" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   194
+	{ 0x5,	"Invalid VID, GroupID, or Mac address" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   195
+	{ 0x0,	NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   196
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   197
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   198
+static const value_string vdp_vsiid_format_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   199
+	{ VSI_FMT_IPv4,		"IPv4" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   200
+	{ VSI_FMT_IPv6,		"IPv6" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   201
+	{ VSI_FMT_MAC,		"MAC" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   202
+	{ VSI_FMT_LOCAL,	"Local" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   203
+	{ VSI_FMT_UUID,		"UUID" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   204
+	{ 0x0,	NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   205
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   206
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   207
+static const value_string vdp_filter_format_vals[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   208
+	{ VDP_FILTER_VID,		"VID" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   209
+	{ VDP_FILTER_MACVID,		"MAC/VID" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   210
+	{ VDP_FILTER_GRPVID,		"GroupID/VID" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   211
+	{ VDP_FILTER_GRPMACVID,		"GroupID/MAC/VID" },
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   212
+	{ 0x0,				NULL }
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   213
+};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   214
+
3878
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   215
+static const true_false_string tfs_tlv_len_invalid = {
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   216
+        "",
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   217
+        ""
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   218
+};
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   219
+
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   220
+
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   221
+static void
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   222
+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
   223
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   224
+	guint16 val;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   225
+	guint ps, pcp, vid;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   226
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   227
+	val = tvb_get_ntohs(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   228
+	ps = (val >> 12) & 0x8;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   229
+	pcp = (val >> 12) & 0x7;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   230
+	vid = val & 0x0FFF;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   231
+	if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   232
+		if (ti == NULL)
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   233
+			proto_tree_add_bytes_format_value(tree, hf_vdp_vidstr, tvb, offset, 2, NULL,
872
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
+		else
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   236
+			proto_item_append_text(ti,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   237
+			    "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
   238
+	}	
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   239
+}
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
+static gint32
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   242
+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
   243
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   244
+	proto_tree *vdp_tlv_assoc_tree;	 
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   245
+	proto_item *ti;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   246
+	guint16 tlvhdr;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   247
+	guint32 tlvlen = 0;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   248
+	guint8 reason, flags;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   249
+	gboolean request;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   250
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   251
+	if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   252
+		if (tlvtype == VDP_TLV_ASSOC)
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   253
+			vdp_tlv_assoc_tree = proto_tree_add_subtree(tree, tvb, offset, 2,
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   254
+			    ett_vdp_tlv_assoc, &ti, "VDP Associate");
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   255
+		else
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   256
+			vdp_tlv_assoc_tree = proto_tree_add_subtree(tree, tvb, offset, 2,
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   257
+			    ett_vdp_tlv_assoc, &ti, "VDP DeAssociate");
872
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
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   260
+	tlvhdr = tvb_get_ntohs(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   261
+	tlvlen = TLV_INFO_LEN(tlvhdr);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   262
+	offset += 2;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   263
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   264
+	/* Reason */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   265
+	reason = tvb_get_bits8(tvb, offset, 8);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   266
+	flags = reason >> 4;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   267
+	request = !(flags & 0x4);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   268
+	if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   269
+		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
   270
+		    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
   271
+		if (request) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   272
+			proto_item_append_text(ti, " Request");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   273
+			if (flags != 0) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   274
+				proto_item_append_text(ti, "; Flags (%x)",
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   275
+				    flags);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   276
+				if (flags & 0x1)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   277
+					proto_item_append_text(ti, " M-Bit");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   278
+				if (flags & 0x2)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   279
+					proto_item_append_text(ti, " S-Bit");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   280
+			}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   281
+		} else {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   282
+			guint8 error = reason & 0x0F;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   283
+			const char *errorstr;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   284
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   285
+			proto_item_append_text(ti, " Response");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   286
+			errorstr = val_to_str(error,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   287
+			    vdp_response_error_type_vals, "Unknown error");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   288
+			proto_item_append_text(ti, "%s", errorstr); 
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   289
+			if ((flags & 0x0F) != 0) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   290
+				proto_item_append_text(ti, "; Flags (%x)",
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   291
+				    flags);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   292
+				if (flags & 0x1)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   293
+					proto_item_append_text(ti,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   294
+					    " Hard Error");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   295
+				if (flags & 0x2)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   296
+					proto_item_append_text(ti, " Keep");
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
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   300
+	offset++;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   301
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   302
+	if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   303
+		guint8 filter_format;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   304
+		const char *str;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   305
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   306
+		/* VSITYPEID/VERSION */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   307
+		proto_tree_add_item(vdp_tlv_assoc_tree,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   308
+		    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
   309
+		offset += 3;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   310
+		proto_tree_add_item(vdp_tlv_assoc_tree,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   311
+		    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
   312
+		offset++;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   313
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   314
+		/* VSIID Format */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   315
+		proto_tree_add_item(vdp_tlv_assoc_tree,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   316
+		    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
   317
+		offset++;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   318
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   319
+		/* VSIID */
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   320
+		str = tvb_bytes_to_str_punct(wmem_packet_scope(), tvb, offset, 16, ':');
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   321
+		proto_tree_add_string(vdp_tlv_assoc_tree, hf_vdp_vsiid, tvb, offset, 16,
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   322
+		     str);
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   323
+		offset += 16;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   324
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   325
+		/* Filter Format */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   326
+		proto_tree_add_item(vdp_tlv_assoc_tree,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   327
+		    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
   328
+		filter_format = tvb_get_guint8(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   329
+		offset++;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   330
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   331
+		switch (filter_format) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   332
+		case VDP_FILTER_VID:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   333
+			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
   334
+			offset += 2;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   335
+			break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   336
+		case VDP_FILTER_MACVID:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   337
+			str = tvb_ether_to_str(tvb, offset);
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   338
+			proto_tree_add_subtree_format(vdp_tlv_assoc_tree, tvb,
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   339
+			    offset, 6, ett_vdp_tlv_assoc, &ti, "MAC %s. ", str);
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   340
+			offset += 6;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   341
+			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
   342
+			offset += 2;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   343
+			break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   344
+		}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   345
+	} else {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   346
+		offset += 30;
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
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   349
+	return offset; 
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
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   352
+static gint32
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   353
+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
   354
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   355
+	proto_tree *vdp_tlv_mgrid_tree = NULL;	
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   356
+	proto_item *ti = NULL;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   357
+	guint16 tlvhdr;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   358
+	guint32 tlvlen = 0;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   359
+	const char *str;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   360
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   361
+	if (tree) {
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   362
+		vdp_tlv_mgrid_tree = proto_tree_add_subtree(tree, tvb, offset, 2,
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   363
+		    ett_vdp_tlv_mgrid, &ti, "VDP Manager ID");
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   364
+	}
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
+	tlvhdr = tvb_get_ntohs(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   367
+	tlvlen = TLV_INFO_LEN(tlvhdr);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   368
+	if (tlvlen != 16) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   369
+		if (tree) {
3878
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   370
+			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
   371
+		}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   372
+		return -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   373
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   374
+	offset += 2;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   375
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   376
+	str = tvb_ip6_to_str(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   377
+	if (ti != NULL) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   378
+		proto_item_append_text(ti, ": %s", str);	
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   379
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   380
+	offset += 16;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   381
+	return offset;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   382
+}
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
+static gint32
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   385
+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
   386
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   387
+	if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   388
+		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
   389
+		    offset, 1, ENC_BIG_ENDIAN);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   390
+	}
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
+	return offset + 1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   393
+}
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
+static gint32
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   396
+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
   397
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   398
+	guint16 tlvhdr;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   399
+	guint32 tlvlen = 0;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   400
+	guint32 oui;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   401
+	guint8 subtype;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   402
+	const char *ouistr;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   403
+	const char *subtypestr;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   404
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   405
+	/* TLV header */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   406
+	tlvhdr = tvb_get_ntohs(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   407
+	tlvlen = TLV_INFO_LEN(tlvhdr);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   408
+	if (tlvlen < 3) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   409
+		if (tree) {
3878
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   410
+			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
   411
+		}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   412
+		return -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   413
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   414
+	offset += 2;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   415
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   416
+	oui = tvb_get_ntoh24(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   417
+	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
   418
+	
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   419
+	/* XXX only support Oracle OUI for now */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   420
+	if (oui != OUI_ORACLE)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   421
+		return -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   422
+	offset += 3;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   423
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   424
+	subtype = tvb_get_guint8(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   425
+	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
   426
+	    "Unknown subtype 0x%x"); 
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   427
+	offset++;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   428
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   429
+	if (tree) {
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   430
+		proto_tree_add_subtree_format(tree, tvb, offset, 0, ett_vdp_tlv_org, NULL, "%s - %s",
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   431
+		    ouistr, subtypestr);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   432
+		/* XXX create a org tlv tree if neccessary */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   433
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   434
+	switch (subtype) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   435
+	case OUI_ORACLE_VSIMGR_SUBTYPE:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   436
+		offset = dissect_oracle_tlv(tvb, pinfo, tree, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   437
+		break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   438
+	default:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   439
+		return -1;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   440
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   441
+	return offset;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   442
+}
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
+static void
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   445
+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
   446
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   447
+	proto_tree *vdp_tlv_tree = NULL;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   448
+	proto_item *ti;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   449
+	guint8	tlvtype;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   450
+	guint16 tlvhdr;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   451
+	guint32 tlvlen = 0;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   452
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   453
+	while (offset > 0) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   454
+		tlvhdr = tvb_get_ntohs(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   455
+		tlvtype = TLV_TYPE(tlvhdr);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   456
+		tlvlen = TLV_INFO_LEN(tlvhdr);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   457
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   458
+		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
   459
+			break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   460
+		if (tree) {
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   461
+			vdp_tlv_tree = proto_tree_add_subtree(tree, tvb, offset,
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   462
+			    tlvlen + 2, ett_vdp_tlv, &ti, "VDP TLV");
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   463
+			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
   464
+			    offset, 2, ENC_BIG_ENDIAN);
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_len, 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
+		}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   468
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   469
+		switch (tlvtype) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   470
+		case VDP_TLV_PREASSOC:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   471
+			break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   472
+		case VDP_TLV_PREASSOCRR:
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_ASSOC:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   475
+		case VDP_TLV_DEASSOC:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   476
+			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
   477
+			    offset, tlvtype);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   478
+			break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   479
+		case VDP_TLV_MGRID:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   480
+			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
   481
+			    offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   482
+			break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   483
+		case VDP_TLV_ORG:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   484
+			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
   485
+			    offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   486
+			break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   487
+		default:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   488
+			/* unknown type */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   489
+			goto done;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   490
+		}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   491
+	}
883
50516829ab64 7174457 EVB patch for wireshark userland (fix parfait build)
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 872
diff changeset
   492
+done: ;
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   493
+}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   494
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   495
+static void
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   496
+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
   497
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   498
+	proto_item *ti;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   499
+	proto_tree *ecp_tree = NULL;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   500
+	int offset = 0;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   501
+	guint16 hdr, ver, op, subtype, seqno;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   502
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   503
+	col_set_str(pinfo->cinfo, COL_PROTOCOL, "ECP");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   504
+	col_clear(pinfo->cinfo, COL_INFO);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   505
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   506
+	/* Version/OP/Subtype */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   507
+	hdr = tvb_get_ntohs(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   508
+	ver = ECP_VERSION(hdr);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   509
+	op = ECP_OP(hdr);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   510
+	subtype = ECP_SUBTYPE(hdr);
3878
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   511
+	col_append_fstr(pinfo->cinfo, COL_INFO,
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   512
+	    "PDU Version = %x OP = %x"
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   513
+	    " Subtype = %x", ver, op, subtype);
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   514
+
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   515
+	if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   516
+		/* details */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   517
+		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
   518
+		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
   519
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   520
+		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
   521
+		    ENC_BIG_ENDIAN);
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_op, 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_subtype, 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
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   527
+	offset += 2;
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
+	/* Seqno */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   530
+	if (tree) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   531
+		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
   532
+		    ENC_BIG_ENDIAN);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   533
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   534
+	seqno = tvb_get_ntohs(tvb, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   535
+	switch (op) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   536
+	case ECP_OP_REQ:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   537
+		col_append_fstr(pinfo->cinfo, COL_INFO,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   538
+		    " SEQ = 0x%x", seqno);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   539
+		break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   540
+	case ECP_OP_ACK:
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   541
+		col_append_fstr(pinfo->cinfo, COL_INFO,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   542
+		    " ACK = 0x%x", seqno);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   543
+		break;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   544
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   545
+	offset += 2;
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
+	/* XXX todo: use sub-dissector */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   548
+	if (subtype == ECP_SUBTYPE_VDP) {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   549
+		dissect_vdp_tlv(tvb, pinfo, ecp_tree, offset);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   550
+	}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   551
+}
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
+void
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   554
+proto_register_ecp(void)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   555
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   556
+	static hf_register_info hf_ecp[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   557
+		{ &hf_ecp_version,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   558
+		{ "Version",	"ecp.ver", FT_UINT16, BASE_DEC,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   559
+		    NULL, ECP_VERSION_MASK, NULL, HFILL }},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   560
+		{ &hf_ecp_op,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   561
+		{ "Operation", "ecp.op", FT_UINT16, BASE_HEX,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   562
+		    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
   563
+		{ &hf_ecp_subtype,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   564
+		{ "Subtype", "ecp.subtype", FT_UINT16, BASE_HEX,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   565
+		    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
   566
+		{ &hf_ecp_seqno,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   567
+		{ "Sequence number", "ecp.seqno", FT_UINT16, BASE_DEC,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   568
+		    NULL, 0x0, NULL, HFILL }},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   569
+	};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   570
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   571
+	static hf_register_info hf_vdp[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   572
+		{ &hf_vdp_tlv_type,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   573
+		{ "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
   574
+			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
   575
+		{ &hf_vdp_tlv_len,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   576
+		{ "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
   577
+			NULL, TLV_INFO_LEN_MASK, NULL, HFILL }},
3878
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   578
+		{ &hf_vdp_tlv_len_invalid,
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   579
+		{ "VDP TLV Invalid Length", "vdp.tlvlen_invalid", FT_BOOLEAN,
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   580
+		    	16, TFS(&tfs_tlv_len_invalid), TLV_INFO_LEN_MASK,
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   581
+			NULL, HFILL}},
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   582
+		{ &hf_vdp_tlv_assoc_reason,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   583
+		{ "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
   584
+			NULL, 0x0, NULL, HFILL }},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   585
+		{ &hf_vdp_tlv_org_oui,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   586
+		{ "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
   587
+			VALS(vdp_tlv_oui_vals), 0x0, NULL, HFILL}},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   588
+		{ &hf_oui_oracle_subtype,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   589
+		{ "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
   590
+			VALS(oui_oracle_subtype_vals), 0x0, NULL, HFILL}},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   591
+		{ &hf_oui_oracle_encoding,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   592
+		{ "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
   593
+		    	BASE_HEX, VALS(oui_oracle_encoding_vals),
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   594
+			0x0, NULL, HFILL}},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   595
+		{ &hf_vdp_vsitypeid,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   596
+		{ "VSI Type ID", "vdp.vsitypeid", FT_UINT24,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   597
+		    	BASE_HEX, NULL, 0x0, NULL, HFILL}},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   598
+		{ &hf_vdp_vsiversion,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   599
+		{ "VSI Version", "vdp.vsiversion", FT_UINT8,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   600
+		    	BASE_HEX, NULL, 0x0, NULL, HFILL}},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   601
+		{ &hf_vdp_vsiid_format,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   602
+		{ "VSIID Format ", "vdp.vsiidformat", FT_UINT8,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   603
+		    	BASE_HEX, VALS(vdp_vsiid_format_vals), 0x0,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   604
+			NULL, HFILL}},
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   605
+		{ &hf_vdp_filter_format,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   606
+		{ "VDP Filter Format ", "vdp.filterformat", FT_UINT8,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   607
+		    	BASE_HEX, VALS(vdp_filter_format_vals), 0x0,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   608
+			NULL, HFILL}},
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   609
+		{ &hf_vdp_vsiid,
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   610
+		{ "VSIID", "vdp.VSIID", FT_STRING, BASE_NONE,
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   611
+			NULL, 0x0, NULL, HFILL }},
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   612
+		{ &hf_vdp_vidstr,
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   613
+		{ "VIDSTR", "vdp.vidstr", FT_BYTES, BASE_NONE,
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   614
+			NULL, 0x0, NULL, HFILL }},
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   615
+
872
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   616
+		
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   617
+	};
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   618
+		
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   619
+	static gint *ett[] = {
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   620
+		&ett_ecp,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   621
+		&ett_vdp_tlv,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   622
+		&ett_vdp_tlv_assoc,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   623
+		&ett_vdp_tlv_mgrid,
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   624
+		&ett_vdp_tlv_org,
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
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   627
+	proto_ecp = proto_register_protocol("Edge Control Protocol",
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   628
+	    "ECP21", "ecp21");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   629
+	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
   630
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   631
+	proto_vdp = proto_register_protocol("VSI protocol",
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   632
+	    "VDP21", "vdp21");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   633
+	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
   634
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   635
+	proto_register_subtree_array(ett, array_length(ett));
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   636
+}
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
+static void
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   639
+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
   640
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   641
+	oui_info_t *info = value;
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   642
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   643
+	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
   644
+}
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
+void
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   647
+proto_reg_handoff_ecp_21(void)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   648
+{
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   649
+	dissector_handle_t 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
+	data_handle = find_dissector("data");
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   652
+
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   653
+	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
   654
+	dissector_add_uint("ethertype", ETHERTYPE_ECP, ecp_handle);
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   655
+
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
+	 * 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
   658
+	 */
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   659
+	if (oui_info_table != NULL)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   660
+		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
   661
+}
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   662
Index: epan/dissectors/Makefile.common
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   663
===================================================================
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   664
--- epan/dissectors/Makefile.common	(revision 41973)
4ce8edeb91bf 7174457 EVB patch for wireshark userland
Xiangning Yu<xiangning.yu@oracle.com>
parents:
diff changeset
   665
+++ epan/dissectors/Makefile.common	(working copy)
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   666
@@ -114,6 +114,7 @@
3878
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   667
 	packet-dop.c	\
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   668
 	packet-dsp.c	\
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   669
 	packet-ess.c	\
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   670
+	packet-ecp.c	\
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   671
 	packet-ftam.c	\
b6ed43d2d1b8 20530019 Upgrade Wireshark to version 1.12.3
Petr Sumbera <petr.sumbera@oracle.com>
parents: 1488
diff changeset
   672
 	packet-goose.c	\
5619
4d97a998cbcc 22866734 Upgrade Wireshark to version 2.0.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 3878
diff changeset
   673
 	packet-gsm_map.c	\