aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-nstrace.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2014-03-14 12:38:52 -0700
committerMichael Mann <mmann78@netscape.net>2014-03-16 03:04:13 +0000
commit4342323c08e210236469e5f4e17dc8175153c5aa (patch)
tree6a88ca2030024b009634ccc3b2a121dd85bad1b8 /epan/dissectors/packet-nstrace.c
parentf1996885d2e7bd4c191014a77cd1dcc359697dd9 (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.c11
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);
}