--- a/components/wireshark/patches/evb.patch Tue May 19 10:36:23 2015 -0700
+++ b/components/wireshark/patches/evb.patch Wed May 13 04:53:25 2015 -0700
@@ -1,8 +1,13 @@
+Patch origin: in-house
+Patch status: Will be sent to upstream.
+
+Oracle Solaris ECP/VDP dissection based on IEEE 802.1Qbg Draft 2.1.
+
Index: epan/oui.h
===================================================================
--- epan/oui.h (revision 41973)
+++ epan/oui.h (working copy)
-@@ -47,6 +47,7 @@
+@@ -45,6 +45,7 @@
#define OUI_ERICSSON 0x0001EC /* Ericsson Group */
#define OUI_CATENA 0x00025A /* Catena Networks */
#define OUI_ATHEROS 0x00037F /* Atheros Communications */
@@ -14,7 +19,7 @@
===================================================================
--- epan/etypes.h (revision 41973)
+++ epan/etypes.h (working copy)
-@@ -514,6 +514,10 @@
+@@ -526,6 +526,10 @@
#define ETHERTYPE_HSR 0x892F /* High-availability Seamless Redundancy (IEC62439 Part 3) */
#endif
@@ -29,7 +34,7 @@
===================================================================
--- epan/dissectors/packet-ecp.c (revision 0)
+++ epan/dissectors/packet-ecp.c (revision 0)
-@@ -0,0 +1,616 @@
+@@ -0,0 +1,619 @@
+/* packet-ecp.c
+ * Routines for Solaris ECP/VDP dissection based on IEEE 802.1Qbg Draft 2.1
+ *
@@ -70,6 +75,7 @@
+static int proto_vdp = -1;
+static int hf_vdp_tlv_type = -1;
+static int hf_vdp_tlv_len = -1;
++static int hf_vdp_tlv_len_invalid = -1;
+static int hf_vdp_tlv_assoc_reason = -1;
+static int hf_vdp_tlv_org_oui = -1;
+static int hf_vdp_vsitypeid = -1;
@@ -203,6 +209,12 @@
+ { 0x0, NULL }
+};
+
++static const true_false_string tfs_tlv_len_invalid = {
++ "",
++ ""
++};
++
++
+static void
+vdp_add_vidstr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, proto_item *ti)
+{
@@ -304,7 +316,7 @@
+ offset++;
+
+ /* VSIID */
-+ str = tvb_bytes_to_str_punct(tvb, offset, 16, ':');
++ str = tvb_bytes_to_ep_str_punct(tvb, offset, 16, ':');
+ proto_tree_add_text(vdp_tlv_assoc_tree, tvb, offset, 16,
+ "VSIID: %s", str);
+ offset += 16;
@@ -356,10 +368,7 @@
+ tlvlen = TLV_INFO_LEN(tlvhdr);
+ if (tlvlen != 16) {
+ if (tree) {
-+ proto_tree_add_text(vdp_tlv_mgrid_tree, tvb, offset, 2,
-+ "%s Invalid Length: %u",
-+ decode_boolean_bitfield(tlvlen, TLV_INFO_LEN_MASK,
-+ 16, "", ""), tlvlen);
++ proto_tree_add_boolean(vdp_tlv_mgrid_tree, hf_vdp_tlv_len_invalid, tvb, offset, 2, tlvlen);
+ }
+ return -1;
+ }
@@ -399,10 +408,7 @@
+ tlvlen = TLV_INFO_LEN(tlvhdr);
+ if (tlvlen < 3) {
+ if (tree) {
-+ proto_tree_add_text(tree, tvb, offset, 2,
-+ "%s Invalid Length: %u",
-+ decode_boolean_bitfield(tlvlen, TLV_INFO_LEN_MASK,
-+ 16, "", ""), tlvlen);
++ proto_tree_add_boolean(tree, hf_vdp_tlv_len_invalid, tvb, offset, 2, tlvlen);
+ }
+ return -1;
+ }
@@ -504,11 +510,10 @@
+ ver = ECP_VERSION(hdr);
+ op = ECP_OP(hdr);
+ subtype = ECP_SUBTYPE(hdr);
-+ if (check_col(pinfo->cinfo, COL_INFO)) {
-+ col_append_fstr(pinfo->cinfo, COL_INFO,
-+ "PDU Version = %x OP = %x"
-+ " Subtype = %x", ver, op, subtype);
-+ }
++ col_append_fstr(pinfo->cinfo, COL_INFO,
++ "PDU Version = %x OP = %x"
++ " Subtype = %x", ver, op, subtype);
++
+ if (tree) {
+ /* details */
+ ti = proto_tree_add_item(tree, proto_ecp, tvb, 0, -1, ENC_NA);
@@ -572,7 +577,10 @@
+ { &hf_vdp_tlv_len,
+ { "VDP TLV Length", "vdp.tlvlen", FT_UINT16, BASE_DEC,
+ NULL, TLV_INFO_LEN_MASK, NULL, HFILL }},
-+
++ { &hf_vdp_tlv_len_invalid,
++ { "VDP TLV Invalid Length", "vdp.tlvlen_invalid", FT_BOOLEAN,
++ 16, TFS(&tfs_tlv_len_invalid), TLV_INFO_LEN_MASK,
++ NULL, HFILL}},
+ { &hf_vdp_tlv_assoc_reason,
+ { "Reason/Status", "vdp.assoc.reason", FT_UINT8, BASE_HEX,
+ NULL, 0x0, NULL, HFILL }},
@@ -650,11 +658,11 @@
===================================================================
--- epan/dissectors/Makefile.common (revision 41973)
+++ epan/dissectors/Makefile.common (working copy)
-@@ -114,6 +114,7 @@
- packet-dop.c \
- packet-dsp.c \
- packet-ess.c \
-+ packet-ecp.c \
- packet-ftam.c \
- packet-goose.c \
- packet-HI2Operations.c \
+@@ -118,6 +118,7 @@
+ packet-dop.c \
+ packet-dsp.c \
+ packet-ess.c \
++ packet-ecp.c \
+ packet-ftam.c \
+ packet-goose.c \
+ packet-HI2Operations.c \