diff options
author | Guy Harris <guy@alum.mit.edu> | 2014-03-14 12:38:52 -0700 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2014-03-16 03:04:13 +0000 |
commit | 4342323c08e210236469e5f4e17dc8175153c5aa (patch) | |
tree | 6a88ca2030024b009634ccc3b2a121dd85bad1b8 /epan/dissectors/packet-nstrace.c | |
parent | f1996885d2e7bd4c191014a77cd1dcc359697dd9 (diff) |
Support to version 3.0 of netscaler packet wire format.
From shekhar.chandra@citrix.com. See bug 9280.
Change-Id: If3abbc653bb1f127b151976d4183af4c4f1e71eb
Reviewed-on: https://code.wireshark.org/review/658
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-nstrace.c')
-rw-r--r-- | epan/dissectors/packet-nstrace.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/epan/dissectors/packet-nstrace.c b/epan/dissectors/packet-nstrace.c index 8b841ba12d..a143ca4d46 100644 --- a/epan/dissectors/packet-nstrace.c +++ b/epan/dissectors/packet-nstrace.c @@ -68,10 +68,13 @@ static gint ett_ns_activity_flags = -1; static const value_string ns_dir_vals[] = { { NSPR_PDPKTRACEFULLTX_V10, "TX" }, { NSPR_PDPKTRACEFULLTX_V20, "TX" }, + { NSPR_PDPKTRACEFULLTX_V30, "TX" }, { NSPR_PDPKTRACEFULLTXB_V10, "TXB" }, { NSPR_PDPKTRACEFULLTXB_V20, "TXB" }, + { NSPR_PDPKTRACEFULLTXB_V30, "TXB" }, { NSPR_PDPKTRACEFULLRX_V10, "RX" }, { NSPR_PDPKTRACEFULLRX_V20, "RX" }, + { NSPR_PDPKTRACEFULLRX_V30, "RX" }, { NSPR_PDPKTRACEPARTTX_V10, "TX" }, { NSPR_PDPKTRACEPARTTX_V20, "TX" }, { NSPR_PDPKTRACEPARTTXB_V10, "TXB" }, @@ -102,6 +105,7 @@ static const value_string ns_dir_vals[] = { { NSPR_PDPKTRACEFULLNEWRX_V24, "NEW_RX" }, { NSPR_PDPKTRACEFULLNEWRX_V25, "NEW_RX" }, { NSPR_PDPKTRACEFULLNEWRX_V26, "NEW_RX" }, + { NSPR_PDPKTRACEFULLNEWRX_V30, "NEW_RX" }, { NSPR_PDPKTRACEPARTTX_V22, "TX" }, { NSPR_PDPKTRACEPARTTX_V23, "TX" }, { NSPR_PDPKTRACEPARTTX_V24, "TX" }, @@ -157,13 +161,12 @@ dissect_nstrace(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) wmem_strbuf_append(flags_strbuf, "None"); - if (pnstr->rec_type == NSPR_HEADER_VERSION205) - { + if (pnstr->rec_type == NSPR_HEADER_VERSION205 || pnstr->rec_type == NSPR_HEADER_VERSION300 || pnstr->rec_type == NSPR_HEADER_VERSION206) { src_vmname_len = tvb_get_guint8(tvb,pnstr->src_vmname_len_offset); dst_vmname_len = tvb_get_guint8(tvb,pnstr->dst_vmname_len_offset); variable_ns_len = src_vmname_len + dst_vmname_len; pnstr->eth_offset += variable_ns_len; - } + } ti = proto_tree_add_protocol_format(tree, proto_nstrace, tvb, 0, pnstr->eth_offset, "NetScaler Packet Trace"); ns_tree = proto_item_add_subtree(ti, ett_ns); @@ -173,6 +176,7 @@ dissect_nstrace(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) switch (pnstr->rec_type) { + case NSPR_HEADER_VERSION300: case NSPR_HEADER_VERSION206: flagoffset = pnstr->ns_activity_offset; flagval32 = tvb_get_letohl(tvb, flagoffset); @@ -429,4 +433,5 @@ void proto_reg_handoff_ns(void) nstrace_handle = create_dissector_handle(dissect_nstrace, proto_nstrace); dissector_add_uint("wtap_encap", WTAP_ENCAP_NSTRACE_1_0, nstrace_handle); dissector_add_uint("wtap_encap", WTAP_ENCAP_NSTRACE_2_0, nstrace_handle); + dissector_add_uint("wtap_encap", WTAP_ENCAP_NSTRACE_3_0, nstrace_handle); } |