aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap/netscaler.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2012-10-21 22:30:01 +0000
committerGuy Harris <guy@alum.mit.edu>2012-10-21 22:30:01 +0000
commit7c8f5f852b0a0dbdbc9823fde466d672d6972b61 (patch)
tree2df3af9ec7ea3068bf52d5a86b9bfcd68f58abde /wiretap/netscaler.c
parentb5bc45b118631c0daffa779983039938d61defc9 (diff)
Tabs -> spaces, and other whitespace cleanups.
svn path=/trunk/; revision=45700
Diffstat (limited to 'wiretap/netscaler.c')
-rw-r--r--wiretap/netscaler.c1904
1 files changed, 952 insertions, 952 deletions
diff --git a/wiretap/netscaler.c b/wiretap/netscaler.c
index c166626c58..899ad39f16 100644
--- a/wiretap/netscaler.c
+++ b/wiretap/netscaler.c
@@ -30,14 +30,14 @@
/* Defines imported from netscaler code: nsperfrc.h */
-#define NSPR_SIGSTR_V10 "NetScaler Performance Data"
-#define NSPR_SIGSTR_V20 "NetScaler V20 Performance Data"
-#define NSPR_SIGSTR NSPR_SIGSTR_V20
+#define NSPR_SIGSTR_V10 "NetScaler Performance Data"
+#define NSPR_SIGSTR_V20 "NetScaler V20 Performance Data"
+#define NSPR_SIGSTR NSPR_SIGSTR_V20
/* Defined but not used */
-#define NSPR_SIGSTR_V21 "NetScaler V21 Performance Data"
-#define NSPR_SIGSTR_V22 "NetScaler V22 Performance Data"
+#define NSPR_SIGSTR_V21 "NetScaler V21 Performance Data"
+#define NSPR_SIGSTR_V22 "NetScaler V22 Performance Data"
-#define NSPR_PAGESIZE 8192
+#define NSPR_PAGESIZE 8192
/* The different record types
** NOTE: The Record Type is two byte fields and unused space is recognized by
@@ -46,20 +46,20 @@
**
** New Performance Record Type is only one byte.
*/
-#define NSPR_UNUSEDSPACE_V10 0x0000 /* rest of the page is unused */
-#define NSPR_UNUSEDSPACE_V20 0x00 /* rest of the page is unused */
-#define NSPR_SIGNATURE_V10 0x0101 /* signature */
-#define NSPR_SIGNATURE_V20 0x01 /* signature */
-#define NSPR_ABSTIME_V10 0x0107 /* data capture time in secs from 1970*/
-#define NSPR_ABSTIME_V20 0x07 /* data capture time in secs from 1970*/
-#define NSPR_RELTIME_V10 0x0108 /* relative time in ms from last time */
-#define NSPR_RELTIME_V20 0x08 /* relative time in ms from last time */
-#define NSPR_RELTIMEHR_V10 0x0109 /* high resolution relative time */
-#define NSPR_RELTIMEHR_V20 0x09 /* high resolution relative time */
-#define NSPR_SYSTARTIME_V10 0x010A /* system start time */
-#define NSPR_SYSTARTIME_V20 0x0A /* system start time */
-#define NSPR_RELTIME2B_V10 0x010B /* relative time in ms from last time */
-#define NSPR_RELTIME2B_V20 0x0B /* relative time in ms from last time */
+#define NSPR_UNUSEDSPACE_V10 0x0000 /* rest of the page is unused */
+#define NSPR_UNUSEDSPACE_V20 0x00 /* rest of the page is unused */
+#define NSPR_SIGNATURE_V10 0x0101 /* signature */
+#define NSPR_SIGNATURE_V20 0x01 /* signature */
+#define NSPR_ABSTIME_V10 0x0107 /* data capture time in secs from 1970*/
+#define NSPR_ABSTIME_V20 0x07 /* data capture time in secs from 1970*/
+#define NSPR_RELTIME_V10 0x0108 /* relative time in ms from last time */
+#define NSPR_RELTIME_V20 0x08 /* relative time in ms from last time */
+#define NSPR_RELTIMEHR_V10 0x0109 /* high resolution relative time */
+#define NSPR_RELTIMEHR_V20 0x09 /* high resolution relative time */
+#define NSPR_SYSTARTIME_V10 0x010A /* system start time */
+#define NSPR_SYSTARTIME_V20 0x0A /* system start time */
+#define NSPR_RELTIME2B_V10 0x010B /* relative time in ms from last time */
+#define NSPR_RELTIME2B_V20 0x0B /* relative time in ms from last time */
/* The high resolution relative time format.
@@ -69,42 +69,42 @@
** 10 : time value is in micro second
** 11 : time value is in nano second
*/
-#define NSPR_HRTIME_MASKTM 0x3FFFFFFF /* mask to get time value */
-#define NSPR_HRTIME_MASKFMT 0xC0000000 /* time value format mask */
-#define NSPR_HRTIME_SEC 0x00000000 /* time value in second */
-#define NSPR_HRTIME_MSEC 0x40000000 /* time value in mili second */
-#define NSPR_HRTIME_USEC 0x80000000 /* time value in micro second */
-#define NSPR_HRTIME_NSEC 0xC0000000 /* time value in nano second */
+#define NSPR_HRTIME_MASKTM 0x3FFFFFFF /* mask to get time value */
+#define NSPR_HRTIME_MASKFMT 0xC0000000 /* time value format mask */
+#define NSPR_HRTIME_SEC 0x00000000 /* time value in second */
+#define NSPR_HRTIME_MSEC 0x40000000 /* time value in mili second */
+#define NSPR_HRTIME_USEC 0x80000000 /* time value in micro second */
+#define NSPR_HRTIME_NSEC 0xC0000000 /* time value in nano second */
-typedef struct nspr_header_v10
+typedef struct nspr_header_v10
{
- guint8 ph_RecordType[2]; /* Record Type */
- guint8 ph_RecordSize[2]; /* Record Size including header */
+ guint8 ph_RecordType[2]; /* Record Type */
+ guint8 ph_RecordSize[2]; /* Record Size including header */
} nspr_header_v10_t;
-#define nspr_header_v10_s sizeof(nspr_header_v10_t)
+#define nspr_header_v10_s sizeof(nspr_header_v10_t)
/* This is V20 short header (2 bytes long) to be included where needed */
#define NSPR_HEADER_V20(prefix) \
- guint8 prefix##_RecordType; /* Record Type */ \
- guint8 prefix##_RecordSize /* Record Size including header */ \
- /* end of declaration */
+ guint8 prefix##_RecordType; /* Record Type */ \
+ guint8 prefix##_RecordSize /* Record Size including header */ \
+ /* end of declaration */
/* This is new long header (3 bytes long) to be included where needed */
-#define NSPR_HEADER3B_V20(prefix) \
- guint8 prefix##_RecordType; /* Record Type */ \
- guint8 prefix##_RecordSizeLow; /* Record Size including header */ \
- guint8 prefix##_RecordSizeHigh /* Record Size including header */ \
- /* end of declaration */
+#define NSPR_HEADER3B_V20(prefix) \
+ guint8 prefix##_RecordType; /* Record Type */ \
+ guint8 prefix##_RecordSizeLow; /* Record Size including header */ \
+ guint8 prefix##_RecordSizeHigh /* Record Size including header */ \
+ /* end of declaration */
#define NSPR_HEADER3B_V21 NSPR_HEADER3B_V20
#define NSPR_HEADER3B_V22 NSPR_HEADER3B_V20
-typedef struct nspr_hd_v20
+typedef struct nspr_hd_v20
{
- NSPR_HEADER3B_V20(phd); /* long performance header */
+ NSPR_HEADER3B_V20(phd); /* long performance header */
} nspr_hd_v20_t;
-#define nspr_hd_v20_s sizeof(nspr_hd_v20_t)
+#define nspr_hd_v20_s sizeof(nspr_hd_v20_t)
/*
@@ -112,135 +112,135 @@ typedef struct nspr_hd_v20
** The short header size can be 0-127 bytes long. If MS Bit of ph_RecordSize
** is set then record size has 2 bytes
*/
-#define NSPR_V20RECORDSIZE_2BYTES 0x80
+#define NSPR_V20RECORDSIZE_2BYTES 0x80
/* Performance Data Header with device number */
-typedef struct nspr_headerdev_v10
+typedef struct nspr_headerdev_v10
{
- guint8 ph_RecordType[2]; /* Record Type */
- guint8 ph_RecordSize[2]; /* Record Size including header */
- guint8 ph_DevNo[4]; /* Network Device (NIC/CONN) number */
+ guint8 ph_RecordType[2]; /* Record Type */
+ guint8 ph_RecordSize[2]; /* Record Size including header */
+ guint8 ph_DevNo[4]; /* Network Device (NIC/CONN) number */
} nspr_headerdev_v10_t;
-#define nspr_headerdev_v10_s sizeof(nspr_headerdev_v10_t)
+#define nspr_headerdev_v10_s sizeof(nspr_headerdev_v10_t)
-typedef struct nspr_hd_v10
+typedef struct nspr_hd_v10
{
- nspr_header_v10_t phd; /* performance header */
+ nspr_header_v10_t phd; /* performance header */
} nspr_hd_v10_t;
-#define nspr_hd_v10_s sizeof(nspr_hd_v10_t)
+#define nspr_hd_v10_s sizeof(nspr_hd_v10_t)
-typedef struct nspr_hdev_v10
+typedef struct nspr_hdev_v10
{
- nspr_headerdev_v10_t phd; /* performance header */
+ nspr_headerdev_v10_t phd; /* performance header */
} nspr_hdev_v10_t;
-#define nspr_hdev_v10_s sizeof(nspr_hdev_v10_t)
+#define nspr_hdev_v10_s sizeof(nspr_hdev_v10_t)
/* if structure has defined phd as first field, it can use following names */
-#define nsprRecordType phd.ph_RecordType
-#define nsprRecordSize phd.ph_RecordSize
-#define nsprReserved phd.ph_Reserved
-#define nsprRecordTypeOrg phd.ph_Reserved
-#define nsprDevNo phd.ph_DevNo
+#define nsprRecordType phd.ph_RecordType
+#define nsprRecordSize phd.ph_RecordSize
+#define nsprReserved phd.ph_Reserved
+#define nsprRecordTypeOrg phd.ph_Reserved
+#define nsprDevNo phd.ph_DevNo
/* NSPR_SIGNATURE_V10 structure */
-#define NSPR_SIGSIZE_V10 56 /* signature value size in bytes */
-typedef struct nspr_signature_v10
+#define NSPR_SIGSIZE_V10 56 /* signature value size in bytes */
+typedef struct nspr_signature_v10
{
- nspr_header_v10_t phd; /* performance header */
- guint8 sig_EndianType; /* Endian Type for the data */
- guint8 sig_Reserved0;
- guint8 sig_Reserved1[2];
- gchar sig_Signature[NSPR_SIGSIZE_V10]; /* Signature value */
+ nspr_header_v10_t phd; /* performance header */
+ guint8 sig_EndianType; /* Endian Type for the data */
+ guint8 sig_Reserved0;
+ guint8 sig_Reserved1[2];
+ gchar sig_Signature[NSPR_SIGSIZE_V10]; /* Signature value */
} nspr_signature_v10_t;
-#define nspr_signature_v10_s sizeof(nspr_signature_v10_t)
+#define nspr_signature_v10_s sizeof(nspr_signature_v10_t)
/* NSPR_SIGNATURE_V20 structure */
-#define NSPR_SIGSIZE_V20 sizeof(NSPR_SIGSTR_V20) /* signature value size in bytes */
-typedef struct nspr_signature_v20
+#define NSPR_SIGSIZE_V20 sizeof(NSPR_SIGSTR_V20) /* signature value size in bytes */
+typedef struct nspr_signature_v20
{
- NSPR_HEADER_V20(sig); /* short performance header */
- guint8 sig_EndianType; /* Endian Type for the data */
- gchar sig_Signature[NSPR_SIGSIZE_V20]; /* Signature value */
+ NSPR_HEADER_V20(sig); /* short performance header */
+ guint8 sig_EndianType; /* Endian Type for the data */
+ gchar sig_Signature[NSPR_SIGSIZE_V20]; /* Signature value */
} nspr_signature_v20_t;
-#define nspr_signature_v20_s sizeof(nspr_signature_v20_t)
+#define nspr_signature_v20_s sizeof(nspr_signature_v20_t)
/* NSPR_ABSTIME_V10 and NSPR_SYSTARTIME_V10 structure */
-typedef struct nspr_abstime_v10
+typedef struct nspr_abstime_v10
{
- nspr_header_v10_t phd; /* performance header */
- guint8 abs_RelTime[4]; /* relative time is ms from last time */
- guint8 abs_Time[4]; /* absolute time in seconds from 1970 */
+ nspr_header_v10_t phd; /* performance header */
+ guint8 abs_RelTime[4]; /* relative time is ms from last time */
+ guint8 abs_Time[4]; /* absolute time in seconds from 1970 */
} nspr_abstime_v10_t;
-#define nspr_abstime_v10_s sizeof(nspr_abstime_v10_t)
+#define nspr_abstime_v10_s sizeof(nspr_abstime_v10_t)
/* NSPR_ABSTIME_V20 and NSPR_SYSTARTIME_V20 structure */
-typedef struct nspr_abstime_v20
+typedef struct nspr_abstime_v20
{
- NSPR_HEADER_V20(abs); /* short performance header */
- guint8 abs_RelTime[2]; /* relative time is ms from last time */
- guint8 abs_Time[4]; /* absolute time in seconds from 1970 */
+ NSPR_HEADER_V20(abs); /* short performance header */
+ guint8 abs_RelTime[2]; /* relative time is ms from last time */
+ guint8 abs_Time[4]; /* absolute time in seconds from 1970 */
} nspr_abstime_v20_t;
-#define nspr_abstime_v20_s sizeof(nspr_abstime_v20_t)
+#define nspr_abstime_v20_s sizeof(nspr_abstime_v20_t)
/* full packet trace structure */
-typedef struct nspr_pktracefull_v10
+typedef struct nspr_pktracefull_v10
{
- nspr_headerdev_v10_t phd; /* performance header */
- guint8 fp_RelTimeHr[4]; /* High resolution relative time */
- guint8 fp_Data[1]; /* packet data starts here */
+ nspr_headerdev_v10_t phd; /* performance header */
+ guint8 fp_RelTimeHr[4]; /* High resolution relative time */
+ guint8 fp_Data[1]; /* packet data starts here */
} nspr_pktracefull_v10_t;
-#define nspr_pktracefull_v10_s (nspr_hdev_v10_s + 4)
+#define nspr_pktracefull_v10_s (nspr_hdev_v10_s + 4)
/* new full packet trace structure v20 */
-typedef struct nspr_pktracefull_v20
+typedef struct nspr_pktracefull_v20
{
- NSPR_HEADER3B_V20(fp); /* long performance header */
- guint8 fp_DevNo; /* Network Device (NIC) number */
- guint8 fp_RelTimeHr[4]; /* High resolution relative time */
- guint8 fp_Data[4]; /* packet data starts here */
+ NSPR_HEADER3B_V20(fp); /* long performance header */
+ guint8 fp_DevNo; /* Network Device (NIC) number */
+ guint8 fp_RelTimeHr[4]; /* High resolution relative time */
+ guint8 fp_Data[4]; /* packet data starts here */
} nspr_pktracefull_v20_t;
-#define nspr_pktracefull_v20_s (sizeof(nspr_pktracefull_v20_t) - 4)
+#define nspr_pktracefull_v20_s (sizeof(nspr_pktracefull_v20_t) - 4)
/* new full packet trace structure v21 */
-typedef struct nspr_pktracefull_v21
+typedef struct nspr_pktracefull_v21
{
- NSPR_HEADER3B_V21(fp); /* long performance header */
- guint8 fp_DevNo; /* Network Device (NIC) number */
- guint8 fp_RelTimeHr[4]; /* High resolution relative time */
- guint8 fp_PcbDevNo[4]; /* PCB devno */
- guint8 fp_lPcbDevNo[4]; /* link PCB devno */
- guint8 fp_Data[4]; /* packet data starts here */
+ NSPR_HEADER3B_V21(fp); /* long performance header */
+ guint8 fp_DevNo; /* Network Device (NIC) number */
+ guint8 fp_RelTimeHr[4]; /* High resolution relative time */
+ guint8 fp_PcbDevNo[4]; /* PCB devno */
+ guint8 fp_lPcbDevNo[4]; /* link PCB devno */
+ guint8 fp_Data[4]; /* packet data starts here */
} nspr_pktracefull_v21_t;
-#define nspr_pktracefull_v21_s (sizeof(nspr_pktracefull_v21_t) - 4)
+#define nspr_pktracefull_v21_s (sizeof(nspr_pktracefull_v21_t) - 4)
/* new full packet trace structure v22 */
-typedef struct nspr_pktracefull_v22
+typedef struct nspr_pktracefull_v22
{
- NSPR_HEADER3B_V22(fp); /* long performance header */
- guint8 fp_DevNo; /* Network Device (NIC) number */
- guint8 fp_RelTimeHr[4]; /* High resolution relative time */
- guint8 fp_PcbDevNo[4]; /* PCB devno */
- guint8 fp_lPcbDevNo[4]; /* link PCB devno */
- guint8 fp_VlanTag[2]; /* vlan tag */
- guint8 fp_Data[2]; /* packet data starts here */
+ NSPR_HEADER3B_V22(fp); /* long performance header */
+ guint8 fp_DevNo; /* Network Device (NIC) number */
+ guint8 fp_RelTimeHr[4]; /* High resolution relative time */
+ guint8 fp_PcbDevNo[4]; /* PCB devno */
+ guint8 fp_lPcbDevNo[4]; /* link PCB devno */
+ guint8 fp_VlanTag[2]; /* vlan tag */
+ guint8 fp_Data[2]; /* packet data starts here */
} nspr_pktracefull_v22_t;
-#define nspr_pktracefull_v22_s (sizeof(nspr_pktracefull_v22_t) - 2)
+#define nspr_pktracefull_v22_s (sizeof(nspr_pktracefull_v22_t) - 2)
-typedef struct nspr_pktracefull_v23
+typedef struct nspr_pktracefull_v23
{
- NSPR_HEADER3B_V22(fp); /* long performance header */
- guint8 fp_DevNo; /* Network Device (NIC) number */
- guint8 fp_AbsTimeHr[8]; /* High resolution absolute time */
- guint8 fp_PcbDevNo[4]; /* PCB devno */
- guint8 fp_lPcbDevNo[4]; /* link PCB devno */
- guint8 fp_VlanTag[2]; /* vlan tag */
- guint8 fp_Coreid[2]; /* coreid of the packet */
- guint8 fp_Data[2]; /* packet data starts here */
+ NSPR_HEADER3B_V22(fp); /* long performance header */
+ guint8 fp_DevNo; /* Network Device (NIC) number */
+ guint8 fp_AbsTimeHr[8]; /* High resolution absolute time */
+ guint8 fp_PcbDevNo[4]; /* PCB devno */
+ guint8 fp_lPcbDevNo[4]; /* link PCB devno */
+ guint8 fp_VlanTag[2]; /* vlan tag */
+ guint8 fp_Coreid[2]; /* coreid of the packet */
+ guint8 fp_Data[2]; /* packet data starts here */
} nspr_pktracefull_v23_t;
-#define nspr_pktracefull_v23_s (sizeof(nspr_pktracefull_v23_t) - 2)
+#define nspr_pktracefull_v23_s (sizeof(nspr_pktracefull_v23_t) - 2)
/* New full packet trace structure v24 for cluster tracing */
typedef struct nspr_pktracefull_v24
@@ -282,181 +282,181 @@ typedef struct nspr_pktracefull_v25
/* partial packet trace structure */
-typedef struct nspr_pktracepart_v10
+typedef struct nspr_pktracepart_v10
{
- nspr_headerdev_v10_t phd; /* performance header */
- guint8 pp_RelTimeHr[4]; /* High resolution relative time */
- guint8 pp_PktSizeOrg[2]; /* Original packet size */
- guint8 pp_PktOffset[2]; /* starting offset in packet */
- guint8 pp_Data[1]; /* packet data starts here */
+ nspr_headerdev_v10_t phd; /* performance header */
+ guint8 pp_RelTimeHr[4]; /* High resolution relative time */
+ guint8 pp_PktSizeOrg[2]; /* Original packet size */
+ guint8 pp_PktOffset[2]; /* starting offset in packet */
+ guint8 pp_Data[1]; /* packet data starts here */
} nspr_pktracepart_v10_t;
-#define nspr_pktracepart_v10_s (nspr_pktracefull_v10_s + 4)
+#define nspr_pktracepart_v10_s (nspr_pktracefull_v10_s + 4)
/* new partial packet trace structure */
-typedef struct nspr_pktracepart_v20
+typedef struct nspr_pktracepart_v20
{
- NSPR_HEADER3B_V20(pp); /* long performance header */
- guint8 pp_DevNo; /* Network Device (NIC) number */
- guint8 pp_RelTimeHr[4]; /* High resolution relative time */
- guint8 pp_PktSizeOrg[2]; /* Original packet size */
- guint8 pp_PktOffset[2]; /* starting offset in packet */
- guint8 pp_Data[4]; /* packet data starts here */
+ NSPR_HEADER3B_V20(pp); /* long performance header */
+ guint8 pp_DevNo; /* Network Device (NIC) number */
+ guint8 pp_RelTimeHr[4]; /* High resolution relative time */
+ guint8 pp_PktSizeOrg[2]; /* Original packet size */
+ guint8 pp_PktOffset[2]; /* starting offset in packet */
+ guint8 pp_Data[4]; /* packet data starts here */
} nspr_pktracepart_v20_t;
-#define nspr_pktracepart_v20_s (sizeof(nspr_pktracepart_v20_t) -4)
+#define nspr_pktracepart_v20_s (sizeof(nspr_pktracepart_v20_t) -4)
/* new partial packet trace structure */
-typedef struct nspr_pktracepart_v21
+typedef struct nspr_pktracepart_v21
{
- NSPR_HEADER3B_V21(pp); /* long performance header */
- guint8 pp_DevNo; /* Network Device (NIC) number */
- guint8 pp_RelTimeHr[4]; /* High resolution relative time */
- guint8 pp_PktSizeOrg[2]; /* Original packet size */
- guint8 pp_PktOffset[2]; /* starting offset in packet */
- guint8 pp_PcbDevNo[4]; /* PCB devno */
- guint8 pp_lPcbDevNo[4]; /* link PCB devno */
- guint8 pp_Data[4]; /* packet data starts here */
+ NSPR_HEADER3B_V21(pp); /* long performance header */
+ guint8 pp_DevNo; /* Network Device (NIC) number */
+ guint8 pp_RelTimeHr[4]; /* High resolution relative time */
+ guint8 pp_PktSizeOrg[2]; /* Original packet size */
+ guint8 pp_PktOffset[2]; /* starting offset in packet */
+ guint8 pp_PcbDevNo[4]; /* PCB devno */
+ guint8 pp_lPcbDevNo[4]; /* link PCB devno */
+ guint8 pp_Data[4]; /* packet data starts here */
} nspr_pktracepart_v21_t;
-#define nspr_pktracepart_v21_s (sizeof(nspr_pktracepart_v21_t) -4)
+#define nspr_pktracepart_v21_s (sizeof(nspr_pktracepart_v21_t) -4)
/* new partial packet trace structure v22 */
-typedef struct nspr_pktracepart_v22
+typedef struct nspr_pktracepart_v22
{
- NSPR_HEADER3B_V22(pp); /* long performance header */
- guint8 pp_DevNo; /* Network Device (NIC) number */
- guint8 pp_RelTimeHr[4]; /* High resolution relative time */
- guint8 pp_PktSizeOrg[2]; /* Original packet size */
- guint8 pp_PktOffset[2]; /* starting offset in packet */
- guint8 pp_PcbDevNo[4]; /* PCB devno */
- guint8 pp_lPcbDevNo[4]; /* link PCB devno */
- guint8 pp_VlanTag[2]; /* Vlan Tag */
- guint8 pp_Data[2]; /* packet data starts here */
+ NSPR_HEADER3B_V22(pp); /* long performance header */
+ guint8 pp_DevNo; /* Network Device (NIC) number */
+ guint8 pp_RelTimeHr[4]; /* High resolution relative time */
+ guint8 pp_PktSizeOrg[2]; /* Original packet size */
+ guint8 pp_PktOffset[2]; /* starting offset in packet */
+ guint8 pp_PcbDevNo[4]; /* PCB devno */
+ guint8 pp_lPcbDevNo[4]; /* link PCB devno */
+ guint8 pp_VlanTag[2]; /* Vlan Tag */
+ guint8 pp_Data[2]; /* packet data starts here */
} nspr_pktracepart_v22_t;
-#define nspr_pktracepart_v22_s (sizeof(nspr_pktracepart_v22_t) -2)
+#define nspr_pktracepart_v22_s (sizeof(nspr_pktracepart_v22_t) -2)
-typedef struct nspr_pktracepart_v23
+typedef struct nspr_pktracepart_v23
{
- NSPR_HEADER3B_V22(pp); /* long performance header */
- guint8 pp_DevNo; /* Network Device (NIC) number */
- guint8 pp_AbsTimeHr[8]; /* High resolution absolute time */
- guint8 pp_PktSizeOrg[2]; /* Original packet size */
- guint8 pp_PktOffset[2]; /* starting offset in packet */
- guint8 pp_PcbDevNo[4]; /* PCB devno */
- guint8 pp_lPcbDevNo[4]; /* link PCB devno */
- guint8 pp_VlanTag[2]; /* vlan tag */
- guint8 pp_Coreid[2]; /* Coreid of the packet */
- guint8 pp_Data[4]; /* packet data starts here */
+ NSPR_HEADER3B_V22(pp); /* long performance header */
+ guint8 pp_DevNo; /* Network Device (NIC) number */
+ guint8 pp_AbsTimeHr[8]; /* High resolution absolute time */
+ guint8 pp_PktSizeOrg[2]; /* Original packet size */
+ guint8 pp_PktOffset[2]; /* starting offset in packet */
+ guint8 pp_PcbDevNo[4]; /* PCB devno */
+ guint8 pp_lPcbDevNo[4]; /* link PCB devno */
+ guint8 pp_VlanTag[2]; /* vlan tag */
+ guint8 pp_Coreid[2]; /* Coreid of the packet */
+ guint8 pp_Data[4]; /* packet data starts here */
} nspr_pktracepart_v23_t;
-#define nspr_pktracepart_v23_s (sizeof(nspr_pktracepart_v23_t) -4)
+#define nspr_pktracepart_v23_s (sizeof(nspr_pktracepart_v23_t) -4)
/* New partial packet trace structure v24 for cluster tracing */
-typedef struct nspr_pktracepart_v24
+typedef struct nspr_pktracepart_v24
{
- NSPR_HEADER3B_V22(pp); /* long performance header */
- guint8 pp_DevNo; /* Network Device (NIC) number */
+ NSPR_HEADER3B_V22(pp); /* long performance header */
+ guint8 pp_DevNo; /* Network Device (NIC) number */
guint8 pp_AbsTimeHr[8]; /*High resolution absolute time in nanosec*/
- guint8 pp_PktSizeOrg[2]; /* Original packet size */
- guint8 pp_PktOffset[2]; /* starting offset in packet */
- guint8 pp_PcbDevNo[4]; /* PCB devno */
- guint8 pp_lPcbDevNo[4]; /* link PCB devno */
- guint8 pp_VlanTag[2]; /* vlan tag */
- guint8 pp_Coreid[2]; /* Coreid of the packet */
- guint8 pp_srcNodeId[2]; /* source node # */
+ guint8 pp_PktSizeOrg[2]; /* Original packet size */
+ guint8 pp_PktOffset[2]; /* starting offset in packet */
+ guint8 pp_PcbDevNo[4]; /* PCB devno */
+ guint8 pp_lPcbDevNo[4]; /* link PCB devno */
+ guint8 pp_VlanTag[2]; /* vlan tag */
+ guint8 pp_Coreid[2]; /* Coreid of the packet */
+ guint8 pp_srcNodeId[2]; /* source node # */
guint8 pp_destNodeId[2]; /* destination node # */
- guint8 pp_clFlags; /* cluster flags */
- guint8 pp_Data[4]; /* packet data starts here */
+ guint8 pp_clFlags; /* cluster flags */
+ guint8 pp_Data[4]; /* packet data starts here */
} nspr_pktracepart_v24_t;
-#define nspr_pktracepart_v24_s (sizeof(nspr_pktracepart_v24_t) -4)
+#define nspr_pktracepart_v24_s (sizeof(nspr_pktracepart_v24_t) -4)
/* New partial packet trace structure v25 for vm info tracing */
-typedef struct nspr_pktracepart_v25
+typedef struct nspr_pktracepart_v25
{
- NSPR_HEADER3B_V22(pp); /* long performance header */
- guint8 pp_DevNo; /* Network Device (NIC) number */
- guint8 pp_AbsTimeHr[8]; /*High resolution absolute time in nanosec*/
+ NSPR_HEADER3B_V22(pp); /* long performance header */
+ guint8 pp_DevNo; /* Network Device (NIC) number */
+ guint8 pp_AbsTimeHr[8]; /*High resolution absolute time in nanosec*/
guint8 pp_PktSizeOrg[2]; /* Original packet size */
guint8 pp_PktOffset[2]; /* starting offset in packet */
guint8 pp_PcbDevNo[4]; /* PCB devno */
guint8 pp_lPcbDevNo[4]; /* link PCB devno */
- guint8 pp_VlanTag[2]; /* vlan tag */
- guint8 pp_Coreid[2]; /* Coreid of the packet */
- guint8 pp_srcNodeId[2]; /* source node # */
- guint8 pp_destNodeId[2]; /* destination node # */
- guint8 pp_clFlags; /* cluster flags */
+ guint8 pp_VlanTag[2]; /* vlan tag */
+ guint8 pp_Coreid[2]; /* Coreid of the packet */
+ guint8 pp_srcNodeId[2]; /* source node # */
+ guint8 pp_destNodeId[2]; /* destination node # */
+ guint8 pp_clFlags; /* cluster flags */
guint8 pp_src_vmname_len; /* vm info */
guint8 pp_dst_vmname_len; /* vm info */
- guint8 pp_Data[4]; /* packet data starts here */
+ guint8 pp_Data[4]; /* packet data starts here */
} nspr_pktracepart_v25_t;
-#define nspr_pktracepart_v25_s (sizeof(nspr_pktracepart_v25_t) -4)
+#define nspr_pktracepart_v25_s (sizeof(nspr_pktracepart_v25_t) -4)
#define pp_src_vmname pp_Data
#define pp_dst_vmname pp_Data
#define myoffsetof(type,fieldname) (&(((type*)0)->fieldname))
#define __TNO(enumprefix,structprefix,structname,hdrname,structfieldname) \
- guint8 enumprefix##_##hdrname##_offset = (guint8)GPOINTER_TO_INT(myoffsetof(nspr_##structname##_t,structprefix##_##structfieldname));
+ guint8 enumprefix##_##hdrname##_offset = (guint8)GPOINTER_TO_INT(myoffsetof(nspr_##structname##_t,structprefix##_##structfieldname));
#define __TNL(enumprefix,structprefix,structname,hdrname,structfieldname) \
- guint8 enumprefix##_##hdrname##_len = (guint8)sizeof(((nspr_##structname##_t*)0)->structprefix##_##structfieldname);
+ guint8 enumprefix##_##hdrname##_len = (guint8)sizeof(((nspr_##structname##_t*)0)->structprefix##_##structfieldname);
#define __TNV1O(enumprefix,structprefix,structname,hdrname,structfieldname) \
- guint8 enumprefix##_##hdrname##_offset = (guint8)GPOINTER_TO_INT(myoffsetof(nspr_##structname##_t,structfieldname));
+ guint8 enumprefix##_##hdrname##_offset = (guint8)GPOINTER_TO_INT(myoffsetof(nspr_##structname##_t,structfieldname));
#define __TNV1L(enumprefix,structprefix,structname,hdrname,structfieldname) \
- guint8 enumprefix##_##hdrname##_len = (guint8)sizeof(((nspr_##structname##_t*)0)->structfieldname);
+ guint8 enumprefix##_##hdrname##_len = (guint8)sizeof(((nspr_##structname##_t*)0)->structfieldname);
#define TRACE_V10_REC_LEN_OFF(enumprefix,structprefix,structname) \
- __TNV1O(enumprefix,structprefix,structname,dir,phd.ph_RecordType)\
- __TNV1L(enumprefix,structprefix,structname,dir,phd.ph_RecordType)\
- __TNV1O(enumprefix,structprefix,structname,nicno,phd.ph_DevNo)\
- __TNV1L(enumprefix,structprefix,structname,nicno,phd.ph_DevNo)\
- __TNO(enumprefix,structprefix,structname,eth,Data)
+ __TNV1O(enumprefix,structprefix,structname,dir,phd.ph_RecordType)\
+ __TNV1L(enumprefix,structprefix,structname,dir,phd.ph_RecordType)\
+ __TNV1O(enumprefix,structprefix,structname,nicno,phd.ph_DevNo)\
+ __TNV1L(enumprefix,structprefix,structname,nicno,phd.ph_DevNo)\
+ __TNO(enumprefix,structprefix,structname,eth,Data)
#define TRACE_V20_REC_LEN_OFF(enumprefix,structprefix,structname) \
- __TNO(enumprefix,structprefix,structname,dir,RecordType)\
- __TNL(enumprefix,structprefix,structname,dir,RecordType)\
- __TNO(enumprefix,structprefix,structname,nicno,DevNo)\
- __TNL(enumprefix,structprefix,structname,nicno,DevNo)\
- __TNO(enumprefix,structprefix,structname,eth,Data)
+ __TNO(enumprefix,structprefix,structname,dir,RecordType)\
+ __TNL(enumprefix,structprefix,structname,dir,RecordType)\
+ __TNO(enumprefix,structprefix,structname,nicno,DevNo)\
+ __TNL(enumprefix,structprefix,structname,nicno,DevNo)\
+ __TNO(enumprefix,structprefix,structname,eth,Data)
#define TRACE_V21_REC_LEN_OFF(enumprefix,structprefix,structname) \
- TRACE_V20_REC_LEN_OFF(enumprefix,structprefix,structname)\
- __TNO(enumprefix,structprefix,structname,pcb,PcbDevNo)\
- __TNO(enumprefix,structprefix,structname,l_pcb,lPcbDevNo)
+ TRACE_V20_REC_LEN_OFF(enumprefix,structprefix,structname)\
+ __TNO(enumprefix,structprefix,structname,pcb,PcbDevNo)\
+ __TNO(enumprefix,structprefix,structname,l_pcb,lPcbDevNo)
#define TRACE_V22_REC_LEN_OFF(enumprefix,structprefix,structname) \
- TRACE_V21_REC_LEN_OFF(enumprefix,structprefix,structname)\
- __TNO(enumprefix,structprefix,structname,vlantag,VlanTag)
+ TRACE_V21_REC_LEN_OFF(enumprefix,structprefix,structname)\
+ __TNO(enumprefix,structprefix,structname,vlantag,VlanTag)
#define TRACE_V23_REC_LEN_OFF(enumprefix,structprefix,structname) \
- TRACE_V22_REC_LEN_OFF(enumprefix,structprefix,structname)\
- __TNO(enumprefix,structprefix,structname,coreid,Coreid)
+ TRACE_V22_REC_LEN_OFF(enumprefix,structprefix,structname)\
+ __TNO(enumprefix,structprefix,structname,coreid,Coreid)
#define TRACE_V24_REC_LEN_OFF(enumprefix,structprefix,structname) \
- TRACE_V23_REC_LEN_OFF(enumprefix,structprefix,structname)\
- __TNO(enumprefix,structprefix,structname,srcnodeid,srcNodeId)\
- __TNO(enumprefix,structprefix,structname,destnodeid,destNodeId)\
- __TNO(enumprefix,structprefix,structname,clflags,clFlags)
+ TRACE_V23_REC_LEN_OFF(enumprefix,structprefix,structname)\
+ __TNO(enumprefix,structprefix,structname,srcnodeid,srcNodeId)\
+ __TNO(enumprefix,structprefix,structname,destnodeid,destNodeId)\
+ __TNO(enumprefix,structprefix,structname,clflags,clFlags)
#define TRACE_V25_REC_LEN_OFF(enumprefix,structprefix,structname) \
- TRACE_V24_REC_LEN_OFF(enumprefix,structprefix,structname)\
- __TNO(enumprefix,structprefix,structname,src_vmname_len,src_vmname_len)\
- __TNO(enumprefix,structprefix,structname,dst_vmname_len,dst_vmname_len)\
- __TNO(enumprefix,structprefix,structname,data,Data)
-
- TRACE_V10_REC_LEN_OFF(v10_part,pp,pktracepart_v10)
- TRACE_V10_REC_LEN_OFF(v10_full,fp,pktracefull_v10)
- TRACE_V20_REC_LEN_OFF(v20_part,pp,pktracepart_v20)
- TRACE_V20_REC_LEN_OFF(v20_full,fp,pktracefull_v20)
- TRACE_V21_REC_LEN_OFF(v21_part,pp,pktracepart_v21)
- TRACE_V21_REC_LEN_OFF(v21_full,fp,pktracefull_v21)
- TRACE_V22_REC_LEN_OFF(v22_part,pp,pktracepart_v22)
- TRACE_V22_REC_LEN_OFF(v22_full,fp,pktracefull_v22)
- TRACE_V23_REC_LEN_OFF(v23_part,pp,pktracepart_v23)
- TRACE_V23_REC_LEN_OFF(v23_full,fp,pktracefull_v23)
- TRACE_V24_REC_LEN_OFF(v24_part,pp,pktracepart_v24)
- TRACE_V24_REC_LEN_OFF(v24_full,fp,pktracefull_v24)
- TRACE_V25_REC_LEN_OFF(v25_part,pp,pktracepart_v25)
- TRACE_V25_REC_LEN_OFF(v25_full,fp,pktracefull_v25)
+ TRACE_V24_REC_LEN_OFF(enumprefix,structprefix,structname)\
+ __TNO(enumprefix,structprefix,structname,src_vmname_len,src_vmname_len)\
+ __TNO(enumprefix,structprefix,structname,dst_vmname_len,dst_vmname_len)\
+ __TNO(enumprefix,structprefix,structname,data,Data)
+
+ TRACE_V10_REC_LEN_OFF(v10_part,pp,pktracepart_v10)
+ TRACE_V10_REC_LEN_OFF(v10_full,fp,pktracefull_v10)
+ TRACE_V20_REC_LEN_OFF(v20_part,pp,pktracepart_v20)
+ TRACE_V20_REC_LEN_OFF(v20_full,fp,pktracefull_v20)
+ TRACE_V21_REC_LEN_OFF(v21_part,pp,pktracepart_v21)
+ TRACE_V21_REC_LEN_OFF(v21_full,fp,pktracefull_v21)
+ TRACE_V22_REC_LEN_OFF(v22_part,pp,pktracepart_v22)
+ TRACE_V22_REC_LEN_OFF(v22_full,fp,pktracefull_v22)
+ TRACE_V23_REC_LEN_OFF(v23_part,pp,pktracepart_v23)
+ TRACE_V23_REC_LEN_OFF(v23_full,fp,pktracefull_v23)
+ TRACE_V24_REC_LEN_OFF(v24_part,pp,pktracepart_v24)
+ TRACE_V24_REC_LEN_OFF(v24_full,fp,pktracefull_v24)
+ TRACE_V25_REC_LEN_OFF(v25_part,pp,pktracepart_v25)
+ TRACE_V25_REC_LEN_OFF(v25_full,fp,pktracefull_v25)
#undef __TNV1O
#undef __TNV1L
@@ -464,48 +464,48 @@ typedef struct nspr_pktracepart_v25
#undef __TNL
-#define ns_setabstime(nstrace, AbsoluteTime, RelativeTimems) \
- do { \
- (nstrace)->nspm_curtime = AbsoluteTime; \
- (nstrace)->nspm_curtimemsec += RelativeTimems; \
- (nstrace)->nspm_curtimelastmsec = nstrace->nspm_curtimemsec; \
- } while(0)
+#define ns_setabstime(nstrace, AbsoluteTime, RelativeTimems) \
+ do { \
+ (nstrace)->nspm_curtime = AbsoluteTime; \
+ (nstrace)->nspm_curtimemsec += RelativeTimems; \
+ (nstrace)->nspm_curtimelastmsec = nstrace->nspm_curtimemsec; \
+ } while(0)
-#define ns_setrelativetime(nstrace, RelativeTimems) \
- do { \
- guint32 rsec; \
- (nstrace)->nspm_curtimemsec += RelativeTimems; \
- rsec = (guint32)((nstrace)->nspm_curtimemsec - (nstrace)->nspm_curtimelastmsec)/1000; \
- (nstrace)->nspm_curtime += rsec; \
- (nstrace)->nspm_curtimelastmsec += rsec * 1000; \
- } while (0)
+#define ns_setrelativetime(nstrace, RelativeTimems) \
+ do { \
+ guint32 rsec; \
+ (nstrace)->nspm_curtimemsec += RelativeTimems; \
+ rsec = (guint32)((nstrace)->nspm_curtimemsec - (nstrace)->nspm_curtimelastmsec)/1000; \
+ (nstrace)->nspm_curtime += rsec; \
+ (nstrace)->nspm_curtimelastmsec += rsec * 1000; \
+ } while (0)
typedef struct {
- gchar *pnstrace_buf;
- gint64 xxx_offset;
- gint32 nstrace_buf_offset;
- gint32 nstrace_buflen;
- /* Performance Monitor Time variables */
- guint32 nspm_curtime; /* current time since 1970 */
- guint64 nspm_curtimemsec; /* current time in milliseconds */
- guint64 nspm_curtimelastmsec; /* nspm_curtime last update time in milliseconds */
- guint64 nsg_creltime;
- guint64 file_size;
+ gchar *pnstrace_buf;
+ gint64 xxx_offset;
+ gint32 nstrace_buf_offset;
+ gint32 nstrace_buflen;
+ /* Performance Monitor Time variables */
+ guint32 nspm_curtime; /* current time since 1970 */
+ guint64 nspm_curtimemsec; /* current time in milliseconds */
+ guint64 nspm_curtimelastmsec; /* nspm_curtime last update time in milliseconds */
+ guint64 nsg_creltime;
+ guint64 file_size;
} nstrace_t;
static guint32 nspm_signature_version(wtap*, gchar*, gint32);
static gboolean nstrace_read(wtap *wth, int *err, gchar **err_info,
- gint64 *data_offset);
+ gint64 *data_offset);
static gboolean nstrace_read_v10(wtap *wth, int *err, gchar **err_info,
- gint64 *data_offset);
+ gint64 *data_offset);
static gboolean nstrace_read_v20(wtap *wth, int *err, gchar **err_info,
- gint64 *data_offset);
+ gint64 *data_offset);
static gboolean nstrace_seek_read(wtap *wth, gint64 seek_off,
- struct wtap_pkthdr *phdr,
- guint8 *pd, int length,
- int *err, gchar **err_info);
+ struct wtap_pkthdr *phdr,
+ guint8 *pd, int length,
+ int *err, gchar **err_info);
static void nstrace_close(wtap *wth);
static gboolean nstrace_set_start_time_v10(wtap *wth);
@@ -514,7 +514,7 @@ static gboolean nstrace_set_start_time(wtap *wth);
static guint64 ns_hrtime2nsec(guint32 tm);
static gboolean nstrace_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
- const guint8 *pd, int *err);
+ const guint8 *pd, int *err);
#define GET_READ_PAGE_SIZE(remaining_file_size) ((gint32)((remaining_file_size>NSPR_PAGESIZE)?NSPR_PAGESIZE:remaining_file_size))
@@ -522,15 +522,15 @@ static gboolean nstrace_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
static guint64 ns_hrtime2nsec(guint32 tm)
{
- guint32 val = tm & NSPR_HRTIME_MASKTM;
- switch(tm & NSPR_HRTIME_MASKFMT)
- {
- case NSPR_HRTIME_SEC: return (guint64)val*1000000000;
- case NSPR_HRTIME_MSEC: return (guint64)val*1000000;
- case NSPR_HRTIME_USEC: return (guint64)val*1000;
- case NSPR_HRTIME_NSEC: return val;
- }
- return tm;
+ guint32 val = tm & NSPR_HRTIME_MASKTM;
+ switch(tm & NSPR_HRTIME_MASKFMT)
+ {
+ case NSPR_HRTIME_SEC: return (guint64)val*1000000000;
+ case NSPR_HRTIME_MSEC: return (guint64)val*1000000;
+ case NSPR_HRTIME_USEC: return (guint64)val*1000;
+ case NSPR_HRTIME_NSEC: return val;
+ }
+ return tm;
}
@@ -539,108 +539,108 @@ static guint64 ns_hrtime2nsec(guint32 tm)
*/
int nstrace_open(wtap *wth, int *err, gchar **err_info)
{
- gchar *nstrace_buf;
- gint64 file_size;
- gint32 page_size;
- nstrace_t *nstrace;
- int bytes_read;
-
- errno = WTAP_ERR_CANT_READ;
-
- if ((file_size = wtap_file_size(wth, err)) == -1)
- return 0;
-
- nstrace_buf = (gchar *)g_malloc(NSPR_PAGESIZE);
- page_size = GET_READ_PAGE_SIZE(file_size);
-
- switch ((wth->file_type = nspm_signature_version(wth, nstrace_buf, page_size)))
- {
- case WTAP_FILE_NETSCALER_1_0:
- wth->file_encap = WTAP_ENCAP_NSTRACE_1_0;
- break;
-
- case WTAP_FILE_NETSCALER_2_0:
- wth->file_encap = WTAP_ENCAP_NSTRACE_2_0;
- break;
-
- default:
- *err = WTAP_ERR_UNSUPPORTED;
- *err_info = g_strdup_printf("nstrace: file type %d unsupported", wth->file_type);
- g_free(nstrace_buf);
- return 0;
- }
-
- if ((file_seek(wth->fh, 0, SEEK_SET, err)) == -1)
- {
- *err = file_error(wth->fh, err_info);
- g_free(nstrace_buf);
- return 0;
- }
-
- bytes_read = file_read(nstrace_buf, page_size, wth->fh);
- if (bytes_read != page_size)
- {
- *err = file_error(wth->fh, err_info);
- g_free(nstrace_buf);
- return 0;
- }
-
- wth->subtype_read = nstrace_read;
- wth->subtype_seek_read = nstrace_seek_read;
- wth->subtype_close = nstrace_close;
-
- nstrace = (nstrace_t *)g_malloc(sizeof(nstrace_t));
- wth->priv = (void *)nstrace;
- nstrace->pnstrace_buf = nstrace_buf;
- nstrace->xxx_offset = 0;
- nstrace->nstrace_buflen = page_size;
- nstrace->nstrace_buf_offset = 0;
- nstrace->nspm_curtime = 0;
- nstrace->nspm_curtimemsec = 0;
- nstrace->nspm_curtimelastmsec = 0;
- nstrace->nsg_creltime = 0;
- nstrace->file_size = file_size;
-
-
- /* Set the start time by looking for the abstime record */
- if ((nstrace_set_start_time(wth)) == FALSE)
- {
- /* Reset the read pointer to start of the file. */
- if ((file_seek(wth->fh, 0, SEEK_SET, err)) == -1)
- {
- *err = file_error(wth->fh, err_info);
- g_free(nstrace->pnstrace_buf);
- g_free(nstrace);
- return 0;
- }
-
- /* Read the first page of data */
- bytes_read = file_read(nstrace_buf, page_size, wth->fh);
- if (bytes_read != page_size)
- {
- *err = file_error(wth->fh, err_info);
- g_free(nstrace->pnstrace_buf);
- g_free(nstrace);
- return 0;
- }
-
- /* reset the buffer offset */
- nstrace->nstrace_buf_offset = 0;
- }
-
- wth->tsprecision = WTAP_FILE_TSPREC_NSEC;
- wth->phdr.ts.secs = nstrace->nspm_curtime;
- wth->phdr.ts.nsecs = 0;
-
- *err = 0;
- return 1;
+ gchar *nstrace_buf;
+ gint64 file_size;
+ gint32 page_size;
+ nstrace_t *nstrace;
+ int bytes_read;
+
+ errno = WTAP_ERR_CANT_READ;
+
+ if ((file_size = wtap_file_size(wth, err)) == -1)
+ return 0;
+
+ nstrace_buf = (gchar *)g_malloc(NSPR_PAGESIZE);
+ page_size = GET_READ_PAGE_SIZE(file_size);
+
+ switch ((wth->file_type = nspm_signature_version(wth, nstrace_buf, page_size)))
+ {
+ case WTAP_FILE_NETSCALER_1_0:
+ wth->file_encap = WTAP_ENCAP_NSTRACE_1_0;
+ break;
+
+ case WTAP_FILE_NETSCALER_2_0:
+ wth->file_encap = WTAP_ENCAP_NSTRACE_2_0;
+ break;
+
+ default:
+ *err = WTAP_ERR_UNSUPPORTED;
+ *err_info = g_strdup_printf("nstrace: file type %d unsupported", wth->file_type);
+ g_free(nstrace_buf);
+ return 0;
+ }
+
+ if ((file_seek(wth->fh, 0, SEEK_SET, err)) == -1)
+ {
+ *err = file_error(wth->fh, err_info);
+ g_free(nstrace_buf);
+ return 0;
+ }
+
+ bytes_read = file_read(nstrace_buf, page_size, wth->fh);
+ if (bytes_read != page_size)
+ {
+ *err = file_error(wth->fh, err_info);
+ g_free(nstrace_buf);
+ return 0;
+ }
+
+ wth->subtype_read = nstrace_read;
+ wth->subtype_seek_read = nstrace_seek_read;
+ wth->subtype_close = nstrace_close;
+
+ nstrace = (nstrace_t *)g_malloc(sizeof(nstrace_t));
+ wth->priv = (void *)nstrace;
+ nstrace->pnstrace_buf = nstrace_buf;
+ nstrace->xxx_offset = 0;
+ nstrace->nstrace_buflen = page_size;
+ nstrace->nstrace_buf_offset = 0;
+ nstrace->nspm_curtime = 0;
+ nstrace->nspm_curtimemsec = 0;
+ nstrace->nspm_curtimelastmsec = 0;
+ nstrace->nsg_creltime = 0;
+ nstrace->file_size = file_size;
+
+
+ /* Set the start time by looking for the abstime record */
+ if ((nstrace_set_start_time(wth)) == FALSE)
+ {
+ /* Reset the read pointer to start of the file. */
+ if ((file_seek(wth->fh, 0, SEEK_SET, err)) == -1)
+ {
+ *err = file_error(wth->fh, err_info);
+ g_free(nstrace->pnstrace_buf);
+ g_free(nstrace);
+ return 0;
+ }
+
+ /* Read the first page of data */
+ bytes_read = file_read(nstrace_buf, page_size, wth->fh);
+ if (bytes_read != page_size)
+ {
+ *err = file_error(wth->fh, err_info);
+ g_free(nstrace->pnstrace_buf);
+ g_free(nstrace);
+ return 0;
+ }
+
+ /* reset the buffer offset */
+ nstrace->nstrace_buf_offset = 0;
+ }
+
+ wth->tsprecision = WTAP_FILE_TSPREC_NSEC;
+ wth->phdr.ts.secs = nstrace->nspm_curtime;
+ wth->phdr.ts.nsecs = 0;
+
+ *err = 0;
+ return 1;
}
#define nspm_signature_func(ver) \
- static guint32 nspm_signature_isv##ver(gchar *sigp) {\
- return strncmp(sigp,NSPR_SIGSTR_V##ver,(sizeof(NSPR_SIGSTR_V##ver)-1));\
- }
+ static guint32 nspm_signature_isv##ver(gchar *sigp) {\
+ return strncmp(sigp,NSPR_SIGSTR_V##ver,(sizeof(NSPR_SIGSTR_V##ver)-1));\
+ }
nspm_signature_func(10)
nspm_signature_func(20)
@@ -654,78 +654,78 @@ nspm_signature_func(20)
static guint32
nspm_signature_version(wtap *wth, gchar *nstrace_buf, gint32 len)
{
- gchar *dp = nstrace_buf;
- int bytes_read;
-
- bytes_read = file_read(dp, len, wth->fh);
- if (bytes_read == len) {
-
- for ( ; len > (gint32)(MIN(sizeof(NSPR_SIGSTR_V10), sizeof(NSPR_SIGSTR_V20))); dp++, len--)
- {
-#define sigv10p ((nspr_signature_v10_t*)dp)
- if ((pletohs(&sigv10p->nsprRecordType) == NSPR_SIGNATURE_V10) &&
- (pletohs(&sigv10p->nsprRecordSize) <= len) &&
- ((gint32)sizeof(NSPR_SIGSTR_V10) <= len) &&
- (!nspm_signature_isv10(sigv10p->sig_Signature)))
- return WTAP_FILE_NETSCALER_1_0;
-#undef sigv10p
-
-#define sigv20p ((nspr_signature_v20_t*)dp)
- if ((sigv20p->sig_RecordType == NSPR_SIGNATURE_V20) &&
- (sigv20p->sig_RecordSize <= len) &&
- ((gint32)sizeof(NSPR_SIGSTR_V20) <= len) &&
- (!nspm_signature_isv20(sigv20p->sig_Signature)))
- return WTAP_FILE_NETSCALER_2_0;
-#undef sigv20p
- }
- }
-
- return 0; /* no version found */
+ gchar *dp = nstrace_buf;
+ int bytes_read;
+
+ bytes_read = file_read(dp, len, wth->fh);
+ if (bytes_read == len) {
+
+ for ( ; len > (gint32)(MIN(sizeof(NSPR_SIGSTR_V10), sizeof(NSPR_SIGSTR_V20))); dp++, len--)
+ {
+#define sigv10p ((nspr_signature_v10_t*)dp)
+ if ((pletohs(&sigv10p->nsprRecordType) == NSPR_SIGNATURE_V10) &&
+ (pletohs(&sigv10p->nsprRecordSize) <= len) &&
+ ((gint32)sizeof(NSPR_SIGSTR_V10) <= len) &&
+ (!nspm_signature_isv10(sigv10p->sig_Signature)))
+ return WTAP_FILE_NETSCALER_1_0;
+#undef sigv10p
+
+#define sigv20p ((nspr_signature_v20_t*)dp)
+ if ((sigv20p->sig_RecordType == NSPR_SIGNATURE_V20) &&
+ (sigv20p->sig_RecordSize <= len) &&
+ ((gint32)sizeof(NSPR_SIGSTR_V20) <= len) &&
+ (!nspm_signature_isv20(sigv20p->sig_Signature)))
+ return WTAP_FILE_NETSCALER_2_0;
+#undef sigv20p
+ }
+ }
+
+ return 0; /* no version found */
}
#define nspr_getv10recordtype(hdp) (pletohs(&hdp->nsprRecordType))
#define nspr_getv10recordsize(hdp) (pletohs(&hdp->nsprRecordSize))
#define nspr_getv20recordtype(hdp) (hdp->phd_RecordType)
-#define nspr_getv20recordsize(hdp) \
- (((hdp)->phd_RecordSizeLow & NSPR_V20RECORDSIZE_2BYTES)? \
- (((hdp)->phd_RecordSizeHigh * NSPR_V20RECORDSIZE_2BYTES)+ \
- ((hdp)->phd_RecordSizeLow & ~NSPR_V20RECORDSIZE_2BYTES)) : \
- (hdp)->phd_RecordSizeLow)
+#define nspr_getv20recordsize(hdp) \
+ (((hdp)->phd_RecordSizeLow & NSPR_V20RECORDSIZE_2BYTES)? \
+ (((hdp)->phd_RecordSizeHigh * NSPR_V20RECORDSIZE_2BYTES)+ \
+ ((hdp)->phd_RecordSizeLow & ~NSPR_V20RECORDSIZE_2BYTES)) : \
+ (hdp)->phd_RecordSizeLow)
#define nstrace_set_start_time_ver(ver) \
- gboolean nstrace_set_start_time_v##ver(wtap *wth) \
- {\
- nstrace_t *nstrace = (nstrace_t *)wth->priv;\
- gchar* nstrace_buf = nstrace->pnstrace_buf;\
- gint32 nstrace_buf_offset = nstrace->nstrace_buf_offset;\
- gint32 nstrace_buflen = nstrace->nstrace_buflen;\
- int bytes_read;\
- do\
- {\
- while (nstrace_buf_offset < nstrace_buflen)\
- {\
- nspr_hd_v##ver##_t *fp = (nspr_hd_v##ver##_t *) &nstrace_buf[nstrace_buf_offset];\
- switch (nspr_getv##ver##recordtype(fp))\
- {\
- case NSPR_ABSTIME_V##ver:\
- ns_setabstime(nstrace, pletohl(&((nspr_abstime_v##ver##_t *) fp)->abs_Time), pletohs(&((nspr_abstime_v##ver##_t *) fp)->abs_RelTime));\
- nstrace->nstrace_buf_offset = nstrace_buf_offset + nspr_getv##ver##recordsize(fp);\
- nstrace->nstrace_buflen = nstrace_buflen;\
- return TRUE;\
- case NSPR_UNUSEDSPACE_V10:\
- nstrace_buf_offset = nstrace_buflen;\
- break;\
- default:\
- nstrace_buf_offset += nspr_getv##ver##recordsize(fp);\
- }\
- }\
- nstrace_buf_offset = 0;\
- nstrace->xxx_offset += nstrace_buflen;\
- nstrace_buflen = GET_READ_PAGE_SIZE((nstrace->file_size - nstrace->xxx_offset));\
- }while((nstrace_buflen > 0) && (bytes_read = file_read(nstrace_buf, nstrace_buflen, wth->fh)) && bytes_read == nstrace_buflen); \
- return FALSE;\
- }
+ gboolean nstrace_set_start_time_v##ver(wtap *wth) \
+ {\
+ nstrace_t *nstrace = (nstrace_t *)wth->priv;\
+ gchar* nstrace_buf = nstrace->pnstrace_buf;\
+ gint32 nstrace_buf_offset = nstrace->nstrace_buf_offset;\
+ gint32 nstrace_buflen = nstrace->nstrace_buflen;\
+ int bytes_read;\
+ do\
+ {\
+ while (nstrace_buf_offset < nstrace_buflen)\
+ {\
+ nspr_hd_v##ver##_t *fp = (nspr_hd_v##ver##_t *) &nstrace_buf[nstrace_buf_offset];\
+ switch (nspr_getv##ver##recordtype(fp))\
+ {\
+ case NSPR_ABSTIME_V##ver:\
+ ns_setabstime(nstrace, pletohl(&((nspr_abstime_v##ver##_t *) fp)->abs_Time), pletohs(&((nspr_abstime_v##ver##_t *) fp)->abs_RelTime));\
+ nstrace->nstrace_buf_offset = nstrace_buf_offset + nspr_getv##ver##recordsize(fp);\
+ nstrace->nstrace_buflen = nstrace_buflen;\
+ return TRUE;\
+ case NSPR_UNUSEDSPACE_V10:\
+ nstrace_buf_offset = nstrace_buflen;\
+ break;\
+ default:\
+ nstrace_buf_offset += nspr_getv##ver##recordsize(fp);\
+ }\
+ }\
+ nstrace_buf_offset = 0;\
+ nstrace->xxx_offset += nstrace_buflen;\
+ nstrace_buflen = GET_READ_PAGE_SIZE((nstrace->file_size - nstrace->xxx_offset));\
+ }while((nstrace_buflen > 0) && (bytes_read = file_read(nstrace_buf, nstrace_buflen, wth->fh)) && bytes_read == nstrace_buflen); \
+ return FALSE;\
+ }
nstrace_set_start_time_ver(10)
nstrace_set_start_time_ver(20)
@@ -742,25 +742,25 @@ nstrace_set_start_time_ver(20)
*/
static gboolean nstrace_set_start_time(wtap *wth)
{
- if (wth->file_type == WTAP_FILE_NETSCALER_1_0)
- return nstrace_set_start_time_v10(wth);
- else if (wth->file_type == WTAP_FILE_NETSCALER_2_0)
- return nstrace_set_start_time_v20(wth);
+ if (wth->file_type == WTAP_FILE_NETSCALER_1_0)
+ return nstrace_set_start_time_v10(wth);
+ else if (wth->file_type == WTAP_FILE_NETSCALER_2_0)
+ return nstrace_set_start_time_v20(wth);
- return FALSE;
+ return FALSE;
}
#define __TNO(enumprefix,structprefix,structname,hdrname,structfieldname) \
- wth->phdr.pseudo_header.nstr.hdrname##_offset = enumprefix##_##hdrname##_offset;
+ wth->phdr.pseudo_header.nstr.hdrname##_offset = enumprefix##_##hdrname##_offset;
#define __TNL(enumprefix,structprefix,structname,hdrname,structfieldname) \
- wth->phdr.pseudo_header.nstr.hdrname##_len = enumprefix##_##hdrname##_len;
+ wth->phdr.pseudo_header.nstr.hdrname##_len = enumprefix##_##hdrname##_len;
#define __TNV1O(enumprefix,structprefix,structname,hdrname,structfieldname) \
- __TNO(enumprefix,structprefix,structname,hdrname,structfieldname)
+ __TNO(enumprefix,structprefix,structname,hdrname,structfieldname)
#define __TNV1L(enumprefix,structprefix,structname,hdrname,structfieldname) \
- __TNL(enumprefix,structprefix,structname,hdrname,structfieldname)
+ __TNL(enumprefix,structprefix,structname,hdrname,structfieldname)
@@ -769,138 +769,138 @@ static gboolean nstrace_set_start_time(wtap *wth)
*/
static gboolean nstrace_read_v10(wtap *wth, int *err, gchar **err_info, gint64 *data_offset)
{
- nstrace_t *nstrace = (nstrace_t *)wth->priv;
- guint64 nsg_creltime = nstrace->nsg_creltime;
- gchar *nstrace_buf = nstrace->pnstrace_buf;
- gint32 nstrace_buf_offset = nstrace->nstrace_buf_offset;
- gint32 nstrace_buflen = nstrace->nstrace_buflen;
- nspr_pktracefull_v10_t *fp;
- nspr_pktracepart_v10_t *pp;
- int bytes_read;
+ nstrace_t *nstrace = (nstrace_t *)wth->priv;
+ guint64 nsg_creltime = nstrace->nsg_creltime;
+ gchar *nstrace_buf = nstrace->pnstrace_buf;
+ gint32 nstrace_buf_offset = nstrace->nstrace_buf_offset;
+ gint32 nstrace_buflen = nstrace->nstrace_buflen;
+ nspr_pktracefull_v10_t *fp;
+ nspr_pktracepart_v10_t *pp;
+ int bytes_read;
- *err = 0;
- *err_info = NULL;
- do
- {
- while ((nstrace_buf_offset < nstrace_buflen) &&
- ((nstrace_buflen - nstrace_buf_offset) >= ((gint32)sizeof(fp->nsprRecordType))))
- {
+ *err = 0;
+ *err_info = NULL;
+ do
+ {
+ while ((nstrace_buf_offset < nstrace_buflen) &&
+ ((nstrace_buflen - nstrace_buf_offset) >= ((gint32)sizeof(fp->nsprRecordType))))
+ {
- fp = (nspr_pktracefull_v10_t *) &nstrace_buf[nstrace_buf_offset];
- pp = (nspr_pktracepart_v10_t *) fp;
+ fp = (nspr_pktracefull_v10_t *) &nstrace_buf[nstrace_buf_offset];
+ pp = (nspr_pktracepart_v10_t *) fp;
- switch (pletohs(&fp->nsprRecordType))
- {
- case NSPR_PDPKTRACEFULLTX_V10:
- case NSPR_PDPKTRACEFULLTXB_V10:
- case NSPR_PDPKTRACEFULLRX_V10:
+ switch (pletohs(&fp->nsprRecordType))
+ {
+ case NSPR_PDPKTRACEFULLTX_V10:
+ case NSPR_PDPKTRACEFULLTXB_V10:
+ case NSPR_PDPKTRACEFULLRX_V10:
- wth->phdr.presence_flags = WTAP_HAS_TS;
+ wth->phdr.presence_flags = WTAP_HAS_TS;
- nsg_creltime += ns_hrtime2nsec(pletohl(&fp->fp_RelTimeHr));
- wth->phdr.ts.secs = nstrace->nspm_curtime + (guint32) (nsg_creltime / 1000000000);
- wth->phdr.ts.nsecs = (guint32) (nsg_creltime % 1000000000);
+ nsg_creltime += ns_hrtime2nsec(pletohl(&fp->fp_RelTimeHr));
+ wth->phdr.ts.secs = nstrace->nspm_curtime + (guint32) (nsg_creltime / 1000000000);
+ wth->phdr.ts.nsecs = (guint32) (nsg_creltime % 1000000000);
- wth->phdr.len = pletohs(&fp->nsprRecordSize);
- wth->phdr.caplen = wth->phdr.len;
+ wth->phdr.len = pletohs(&fp->nsprRecordSize);
+ wth->phdr.caplen = wth->phdr.len;
- TRACE_V10_REC_LEN_OFF(v10_full,fp,pktracefull_v10);
+ TRACE_V10_REC_LEN_OFF(v10_full,fp,pktracefull_v10);
- buffer_assure_space(wth->frame_buffer, wth->phdr.caplen);
- memcpy(buffer_start_ptr(wth->frame_buffer), fp, wth->phdr.caplen);
- *data_offset = nstrace->xxx_offset + nstrace_buf_offset;
+ buffer_assure_space(wth->frame_buffer, wth->phdr.caplen);
+ memcpy(buffer_start_ptr(wth->frame_buffer), fp, wth->phdr.caplen);
+ *data_offset = nstrace->xxx_offset + nstrace_buf_offset;
- nstrace->nstrace_buf_offset = nstrace_buf_offset + wth->phdr.len;
- nstrace->nstrace_buflen = nstrace_buflen;
- nstrace->nsg_creltime = nsg_creltime;
+ nstrace->nstrace_buf_offset = nstrace_buf_offset + wth->phdr.len;
+ nstrace->nstrace_buflen = nstrace_buflen;
+ nstrace->nsg_creltime = nsg_creltime;
- return TRUE;
+ return TRUE;
- case NSPR_PDPKTRACEPARTTX_V10:
- case NSPR_PDPKTRACEPARTTXB_V10:
- case NSPR_PDPKTRACEPARTRX_V10:
+ case NSPR_PDPKTRACEPARTTX_V10:
+ case NSPR_PDPKTRACEPARTTXB_V10:
+ case NSPR_PDPKTRACEPARTRX_V10:
- wth->phdr.presence_flags = WTAP_HAS_TS|WTAP_HAS_CAP_LEN;
+ wth->phdr.presence_flags = WTAP_HAS_TS|WTAP_HAS_CAP_LEN;
- nsg_creltime += ns_hrtime2nsec(pletohl(&pp->pp_RelTimeHr));
- wth->phdr.ts.secs = nstrace->nspm_curtime + (guint32) (nsg_creltime / 1000000000);
- wth->phdr.ts.nsecs = (guint32) (nsg_creltime % 1000000000);
+ nsg_creltime += ns_hrtime2nsec(pletohl(&pp->pp_RelTimeHr));
+ wth->phdr.ts.secs = nstrace->nspm_curtime + (guint32) (nsg_creltime / 1000000000);
+ wth->phdr.ts.nsecs = (guint32) (nsg_creltime % 1000000000);
- wth->phdr.len = pletohs(&pp->pp_PktSizeOrg) + nspr_pktracepart_v10_s;
- wth->phdr.caplen = pletohs(&pp->nsprRecordSize);
+ wth->phdr.len = pletohs(&pp->pp_PktSizeOrg) + nspr_pktracepart_v10_s;
+ wth->phdr.caplen = pletohs(&pp->nsprRecordSize);
- TRACE_V10_REC_LEN_OFF(v10_part,pp,pktracepart_v10);
+ TRACE_V10_REC_LEN_OFF(v10_part,pp,pktracepart_v10);
- buffer_assure_space(wth->frame_buffer, wth->phdr.caplen);
- memcpy(buffer_start_ptr(wth->frame_buffer), pp, wth->phdr.caplen);
- *data_offset = nstrace->xxx_offset + nstrace_buf_offset;
+ buffer_assure_space(wth->frame_buffer, wth->phdr.caplen);
+ memcpy(buffer_start_ptr(wth->frame_buffer), pp, wth->phdr.caplen);
+ *data_offset = nstrace->xxx_offset + nstrace_buf_offset;
- nstrace->nstrace_buf_offset = nstrace_buf_offset + wth->phdr.caplen;
- nstrace->nsg_creltime = nsg_creltime;
- nstrace->nstrace_buflen = nstrace_buflen;
+ nstrace->nstrace_buf_offset = nstrace_buf_offset + wth->phdr.caplen;
+ nstrace->nsg_creltime = nsg_creltime;
+ nstrace->nstrace_buflen = nstrace_buflen;
- return TRUE;
+ return TRUE;
- case NSPR_ABSTIME_V10:
+ case NSPR_ABSTIME_V10:
- ns_setabstime(nstrace, pletohl(((nspr_abstime_v10_t *) fp)->abs_Time), pletohl(&((nspr_abstime_v10_t *) fp)->abs_RelTime));
- nstrace_buf_offset += pletohs(&fp->nsprRecordSize);
- break;
+ ns_setabstime(nstrace, pletohl(((nspr_abstime_v10_t *) fp)->abs_Time), pletohl(&((nspr_abstime_v10_t *) fp)->abs_RelTime));
+ nstrace_buf_offset += pletohs(&fp->nsprRecordSize);
+ break;
- case NSPR_RELTIME_V10:
+ case NSPR_RELTIME_V10:
- ns_setrelativetime(nstrace, pletohl(((nspr_abstime_v10_t *) fp)->abs_RelTime));
- nstrace_buf_offset += pletohs(&fp->nsprRecordSize);
- break;
+ ns_setrelativetime(nstrace, pletohl(((nspr_abstime_v10_t *) fp)->abs_RelTime));
+ nstrace_buf_offset += pletohs(&fp->nsprRecordSize);
+ break;
- case NSPR_UNUSEDSPACE_V10:
+ case NSPR_UNUSEDSPACE_V10:
- nstrace_buf_offset = nstrace_buflen;
- break;
+ nstrace_buf_offset = nstrace_buflen;
+ break;
- default:
+ default:
- nstrace_buf_offset += pletohs(&fp->nsprRecordSize);
- break;
- }
- }
+ nstrace_buf_offset += pletohs(&fp->nsprRecordSize);
+ break;
+ }
+ }
- nstrace_buf_offset = 0;
- nstrace->xxx_offset += nstrace_buflen;
- nstrace_buflen = GET_READ_PAGE_SIZE((nstrace->file_size - nstrace->xxx_offset));
- }while((nstrace_buflen > 0) && (bytes_read = file_read(nstrace_buf, nstrace_buflen, wth->fh)) && (bytes_read == nstrace_buflen));
+ nstrace_buf_offset = 0;
+ nstrace->xxx_offset += nstrace_buflen;
+ nstrace_buflen = GET_READ_PAGE_SIZE((nstrace->file_size - nstrace->xxx_offset));
+ }while((nstrace_buflen > 0) && (bytes_read = file_read(nstrace_buf, nstrace_buflen, wth->fh)) && (bytes_read == nstrace_buflen));
- return FALSE;
+ return FALSE;
}
#define TIMEDEFV20(fp,type) \
- do {\
- wth->phdr.presence_flags |= WTAP_HAS_TS;\
- nsg_creltime += ns_hrtime2nsec(pletohl(fp->type##_RelTimeHr));\
- wth->phdr.ts.secs = nstrace->nspm_curtime + (guint32) (nsg_creltime / 1000000000);\
- wth->phdr.ts.nsecs = (guint32) (nsg_creltime % 1000000000);\
- }while(0)
+ do {\
+ wth->phdr.presence_flags |= WTAP_HAS_TS;\
+ nsg_creltime += ns_hrtime2nsec(pletohl(fp->type##_RelTimeHr));\
+ wth->phdr.ts.secs = nstrace->nspm_curtime + (guint32) (nsg_creltime / 1000000000);\
+ wth->phdr.ts.nsecs = (guint32) (nsg_creltime % 1000000000);\
+ }while(0)
#define TIMEDEFV23(fp,type) \
- do {\
- wth->phdr.presence_flags |= WTAP_HAS_TS;\
- /* access _AbsTimeHr as a 64bit value */\
- nsg_creltime = pletohll(fp->type##_AbsTimeHr);\
- wth->phdr.ts.secs = (guint32) (nsg_creltime / 1000000000);\
- wth->phdr.ts.nsecs = (guint32) (nsg_creltime % 1000000000);\
- }while(0)
+ do {\
+ wth->phdr.presence_flags |= WTAP_HAS_TS;\
+ /* access _AbsTimeHr as a 64bit value */\
+ nsg_creltime = pletohll(fp->type##_AbsTimeHr);\
+ wth->phdr.ts.secs = (guint32) (nsg_creltime / 1000000000);\
+ wth->phdr.ts.nsecs = (guint32) (nsg_creltime % 1000000000);\
+ }while(0)
#define TIMEDEFV21(fp,type) TIMEDEFV20(fp,type)
#define TIMEDEFV22(fp,type) TIMEDEFV20(fp,type)
#define TIMEDEFV24(fp,type) TIMEDEFV23(fp,type)
#define TIMEDEFV25(fp,type) TIMEDEFV24(fp,type)
#define PPSIZEDEFV20(pp,ver) \
- do {\
- wth->phdr.presence_flags |= WTAP_HAS_CAP_LEN;\
- wth->phdr.len = pletohs(&pp->pp_PktSizeOrg) + nspr_pktracepart_v##ver##_s;\
- wth->phdr.caplen = nspr_getv20recordsize((nspr_hd_v20_t *)pp);\
- }while(0)
+ do {\
+ wth->phdr.presence_flags |= WTAP_HAS_CAP_LEN;\
+ wth->phdr.len = pletohs(&pp->pp_PktSizeOrg) + nspr_pktracepart_v##ver##_s;\
+ wth->phdr.caplen = nspr_getv20recordsize((nspr_hd_v20_t *)pp);\
+ }while(0)
#define PPSIZEDEFV21(pp,ver) PPSIZEDEFV20(pp,ver)
#define PPSIZEDEFV22(pp,ver) PPSIZEDEFV20(pp,ver)
@@ -909,10 +909,10 @@ static gboolean nstrace_read_v10(wtap *wth, int *err, gchar **err_info, gint64 *
#define PPSIZEDEFV25(pp,ver) PPSIZEDEFV20(pp,ver)
#define FPSIZEDEFV20(fp,ver)\
- do {\
- wth->phdr.len = nspr_getv20recordsize((nspr_hd_v20_t *)fp);\
- wth->phdr.caplen = wth->phdr.len;\
- }while(0)
+ do {\
+ wth->phdr.len = nspr_getv20recordsize((nspr_hd_v20_t *)fp);\
+ wth->phdr.caplen = wth->phdr.len;\
+ }while(0)
#define FPSIZEDEFV21(pp,ver) FPSIZEDEFV20(fp,ver)
#define FPSIZEDEFV22(pp,ver) FPSIZEDEFV20(fp,ver)
@@ -921,124 +921,124 @@ static gboolean nstrace_read_v10(wtap *wth, int *err, gchar **err_info, gint64 *
#define FPSIZEDEFV25(pp,ver) FPSIZEDEFV20(fp,ver)
#define PACKET_DESCRIBE(FPTIMEDEF,SIZEDEF,ver,enumprefix,type,structname,TYPE)\
- do {\
- nspr_##structname##_t *fp= (nspr_##structname##_t*)&nstrace_buf[nstrace_buf_offset];\
- TIMEDEFV##ver(fp,type);\
- SIZEDEF##ver(fp,ver);\
- TRACE_V##ver##_REC_LEN_OFF(enumprefix,type,structname);\
- buffer_assure_space(wth->frame_buffer, wth->phdr.caplen);\
- memcpy(buffer_start_ptr(wth->frame_buffer), fp, wth->phdr.caplen);\
- *data_offset = nstrace->xxx_offset + nstrace_buf_offset;\
- nstrace->nstrace_buf_offset = nstrace_buf_offset + nspr_getv20recordsize((nspr_hd_v20_t *)fp);\
- nstrace->nstrace_buflen = nstrace_buflen;\
- nstrace->nsg_creltime = nsg_creltime;\
- wth->phdr.pseudo_header.nstr.rec_type = NSPR_HEADER_VERSION##TYPE;\
- return TRUE;\
- }while(0)
+ do {\
+ nspr_##structname##_t *fp= (nspr_##structname##_t*)&nstrace_buf[nstrace_buf_offset];\
+ TIMEDEFV##ver(fp,type);\
+ SIZEDEF##ver(fp,ver);\
+ TRACE_V##ver##_REC_LEN_OFF(enumprefix,type,structname);\
+ buffer_assure_space(wth->frame_buffer, wth->phdr.caplen);\
+ memcpy(buffer_start_ptr(wth->frame_buffer), fp, wth->phdr.caplen);\
+ *data_offset = nstrace->xxx_offset + nstrace_buf_offset;\
+ nstrace->nstrace_buf_offset = nstrace_buf_offset + nspr_getv20recordsize((nspr_hd_v20_t *)fp);\
+ nstrace->nstrace_buflen = nstrace_buflen;\
+ nstrace->nsg_creltime = nsg_creltime;\
+ wth->phdr.pseudo_header.nstr.rec_type = NSPR_HEADER_VERSION##TYPE;\
+ return TRUE;\
+ }while(0)
static gboolean nstrace_read_v20(wtap *wth, int *err, gchar **err_info, gint64 *data_offset)
{
- nstrace_t *nstrace = (nstrace_t *)wth->priv;
- guint64 nsg_creltime = nstrace->nsg_creltime;
- gchar *nstrace_buf = nstrace->pnstrace_buf;
- gint32 nstrace_buf_offset = nstrace->nstrace_buf_offset;
- gint32 nstrace_buflen = nstrace->nstrace_buflen;
- nspr_pktracefull_v20_t *fp20;
- nspr_pktracefull_v21_t *fp21;
- int bytes_read;
-
- *err = 0;
- *err_info = NULL;
- do
- {
- while ((nstrace_buf_offset < nstrace_buflen) &&
- ((nstrace_buflen - nstrace_buf_offset) >= ((gint32)sizeof(fp21->fp_RecordType))))
- {
- fp21 = (nspr_pktracefull_v21_t *) &nstrace_buf[nstrace_buf_offset];
-
- switch (fp21->fp_RecordType)
- {
+ nstrace_t *nstrace = (nstrace_t *)wth->priv;
+ guint64 nsg_creltime = nstrace->nsg_creltime;
+ gchar *nstrace_buf = nstrace->pnstrace_buf;
+ gint32 nstrace_buf_offset = nstrace->nstrace_buf_offset;
+ gint32 nstrace_buflen = nstrace->nstrace_buflen;
+ nspr_pktracefull_v20_t *fp20;
+ nspr_pktracefull_v21_t *fp21;
+ int bytes_read;
+
+ *err = 0;
+ *err_info = NULL;
+ do
+ {
+ while ((nstrace_buf_offset < nstrace_buflen) &&
+ ((nstrace_buflen - nstrace_buf_offset) >= ((gint32)sizeof(fp21->fp_RecordType))))
+ {
+ fp21 = (nspr_pktracefull_v21_t *) &nstrace_buf[nstrace_buf_offset];
+
+ switch (fp21->fp_RecordType)
+ {
#define GENERATE_CASE(type,acttype) \
- case NSPR_PDPKTRACEFULLTX_V##type:\
- case NSPR_PDPKTRACEFULLTXB_V##type:\
- case NSPR_PDPKTRACEFULLRX_V##type:\
- PACKET_DESCRIBE(TIMEDEF,FPSIZEDEFV,type,v##type##_full,fp,pktracefull_v##type,acttype);
+ case NSPR_PDPKTRACEFULLTX_V##type:\
+ case NSPR_PDPKTRACEFULLTXB_V##type:\
+ case NSPR_PDPKTRACEFULLRX_V##type:\
+ PACKET_DESCRIBE(TIMEDEF,FPSIZEDEFV,type,v##type##_full,fp,pktracefull_v##type,acttype);
#define GENERATE_CASE_V25(type,acttype) \
- case NSPR_PDPKTRACEFULLTX_V##type:\
- case NSPR_PDPKTRACEFULLTXB_V##type:\
- case NSPR_PDPKTRACEFULLRX_V##type:\
- case NSPR_PDPKTRACEFULLNEWRX_V##type:\
- PACKET_DESCRIBE(TIMEDEF,FPSIZEDEFV,type,v##type##_full,fp,pktracefull_v##type,acttype);
- GENERATE_CASE_V25(25,205);
- GENERATE_CASE_V25(24,204);
- GENERATE_CASE(23,203);
- GENERATE_CASE(22,202);
- GENERATE_CASE(21,201);
- GENERATE_CASE(20,200);
+ case NSPR_PDPKTRACEFULLTX_V##type:\
+ case NSPR_PDPKTRACEFULLTXB_V##type:\
+ case NSPR_PDPKTRACEFULLRX_V##type:\
+ case NSPR_PDPKTRACEFULLNEWRX_V##type:\
+ PACKET_DESCRIBE(TIMEDEF,FPSIZEDEFV,type,v##type##_full,fp,pktracefull_v##type,acttype);
+ GENERATE_CASE_V25(25,205);
+ GENERATE_CASE_V25(24,204);
+ GENERATE_CASE(23,203);
+ GENERATE_CASE(22,202);
+ GENERATE_CASE(21,201);
+ GENERATE_CASE(20,200);
#undef GENERATE_CASE
#undef GENERATE_CASE_V25
#define GENERATE_CASE(type,acttype) \
- case NSPR_PDPKTRACEPARTTX_V##type:\
- case NSPR_PDPKTRACEPARTTXB_V##type:\
- case NSPR_PDPKTRACEPARTRX_V##type:\
- PACKET_DESCRIBE(TIMEDEF,PPSIZEDEFV,type,v##type##_part,pp,pktracepart_v##type,acttype);
+ case NSPR_PDPKTRACEPARTTX_V##type:\
+ case NSPR_PDPKTRACEPARTTXB_V##type:\
+ case NSPR_PDPKTRACEPARTRX_V##type:\
+ PACKET_DESCRIBE(TIMEDEF,PPSIZEDEFV,type,v##type##_part,pp,pktracepart_v##type,acttype);
#define GENERATE_CASE_V25(type,acttype) \
- case NSPR_PDPKTRACEPARTTX_V##type:\
- case NSPR_PDPKTRACEPARTTXB_V##type:\
- case NSPR_PDPKTRACEPARTRX_V##type:\
- case NSPR_PDPKTRACEPARTNEWRX_V##type:\
- PACKET_DESCRIBE(TIMEDEF,PPSIZEDEFV,type,v##type##_part,pp,pktracepart_v##type,acttype);
- GENERATE_CASE_V25(25,205);
- GENERATE_CASE_V25(24,204);
- GENERATE_CASE(23,203);
- GENERATE_CASE(22,202);
- GENERATE_CASE(21,201);
- GENERATE_CASE(20,200);
+ case NSPR_PDPKTRACEPARTTX_V##type:\
+ case NSPR_PDPKTRACEPARTTXB_V##type:\
+ case NSPR_PDPKTRACEPARTRX_V##type:\
+ case NSPR_PDPKTRACEPARTNEWRX_V##type:\
+ PACKET_DESCRIBE(TIMEDEF,PPSIZEDEFV,type,v##type##_part,pp,pktracepart_v##type,acttype);
+ GENERATE_CASE_V25(25,205);
+ GENERATE_CASE_V25(24,204);
+ GENERATE_CASE(23,203);
+ GENERATE_CASE(22,202);
+ GENERATE_CASE(21,201);
+ GENERATE_CASE(20,200);
#undef GENERATE_CASE
#undef GENERATE_CASE_V25
- case NSPR_ABSTIME_V20:
- {
- fp20 = (nspr_pktracefull_v20_t *) &nstrace_buf[nstrace_buf_offset];
- nstrace_buf_offset += nspr_getv20recordsize((nspr_hd_v20_t *)fp20);
- ns_setabstime(nstrace, pletohl(&((nspr_abstime_v20_t *) fp20)->abs_Time), pletohs(&((nspr_abstime_v20_t *) fp20)->abs_RelTime));
- break;
- }
-
- case NSPR_RELTIME_V20:
- {
- fp20 = (nspr_pktracefull_v20_t *) &nstrace_buf[nstrace_buf_offset];
- ns_setrelativetime(nstrace, pletohs(&((nspr_abstime_v20_t *) fp20)->abs_RelTime));
- nstrace_buf_offset += nspr_getv20recordsize((nspr_hd_v20_t *)fp20);
- break;
- }
-
- case NSPR_UNUSEDSPACE_V20:
- {
- if (nstrace_buf_offset >= NSPR_PAGESIZE/2)
- nstrace_buf_offset = nstrace_buflen;
- else
- nstrace_buf_offset = NSPR_PAGESIZE/2;
- break;
- }
-
- default:
- {
- fp20 = (nspr_pktracefull_v20_t *) &nstrace_buf[nstrace_buf_offset];
- nstrace_buf_offset += nspr_getv20recordsize((nspr_hd_v20_t *)fp20);
- break;
- }
- }
- }
-
- nstrace_buf_offset = 0;
- nstrace->xxx_offset += nstrace_buflen;
- nstrace_buflen = GET_READ_PAGE_SIZE((nstrace->file_size - nstrace->xxx_offset));
- }while((nstrace_buflen > 0) && (bytes_read = file_read(nstrace_buf, nstrace_buflen, wth->fh)) && (bytes_read == nstrace_buflen));
-
- return FALSE;
+ case NSPR_ABSTIME_V20:
+ {
+ fp20 = (nspr_pktracefull_v20_t *) &nstrace_buf[nstrace_buf_offset];
+ nstrace_buf_offset += nspr_getv20recordsize((nspr_hd_v20_t *)fp20);
+ ns_setabstime(nstrace, pletohl(&((nspr_abstime_v20_t *) fp20)->abs_Time), pletohs(&((nspr_abstime_v20_t *) fp20)->abs_RelTime));
+ break;
+ }
+
+ case NSPR_RELTIME_V20:
+ {
+ fp20 = (nspr_pktracefull_v20_t *) &nstrace_buf[nstrace_buf_offset];
+ ns_setrelativetime(nstrace, pletohs(&((nspr_abstime_v20_t *) fp20)->abs_RelTime));
+ nstrace_buf_offset += nspr_getv20recordsize((nspr_hd_v20_t *)fp20);
+ break;
+ }
+
+ case NSPR_UNUSEDSPACE_V20:
+ {
+ if (nstrace_buf_offset >= NSPR_PAGESIZE/2)
+ nstrace_buf_offset = nstrace_buflen;
+ else
+ nstrace_buf_offset = NSPR_PAGESIZE/2;
+ break;
+ }
+
+ default:
+ {
+ fp20 = (nspr_pktracefull_v20_t *) &nstrace_buf[nstrace_buf_offset];
+ nstrace_buf_offset += nspr_getv20recordsize((nspr_hd_v20_t *)fp20);
+ break;
+ }
+ }
+ }
+
+ nstrace_buf_offset = 0;
+ nstrace->xxx_offset += nstrace_buflen;
+ nstrace_buflen = GET_READ_PAGE_SIZE((nstrace->file_size - nstrace->xxx_offset));
+ }while((nstrace_buflen > 0) && (bytes_read = file_read(nstrace_buf, nstrace_buflen, wth->fh)) && (bytes_read == nstrace_buflen));
+
+ return FALSE;
}
#undef __TNO
@@ -1051,111 +1051,111 @@ static gboolean nstrace_read_v20(wtap *wth, int *err, gchar **err_info, gint64 *
static gboolean nstrace_read(wtap *wth, int *err, gchar **err_info, gint64 *data_offset)
{
- if (wth->file_type == WTAP_FILE_NETSCALER_1_0)
- return nstrace_read_v10(wth, err, err_info, data_offset);
- else if (wth->file_type == WTAP_FILE_NETSCALER_2_0)
- return nstrace_read_v20(wth, err, err_info, data_offset);
+ if (wth->file_type == WTAP_FILE_NETSCALER_1_0)
+ return nstrace_read_v10(wth, err, err_info, data_offset);
+ else if (wth->file_type == WTAP_FILE_NETSCALER_2_0)
+ return nstrace_read_v20(wth, err, err_info, data_offset);
- return FALSE;
+ return FALSE;
}
#define __TNO(enumprefix,structprefix,structname,hdrname,structfieldname) \
- pseudo_header->nstr.hdrname##_offset = (guint8) enumprefix##_##hdrname##_offset;
+ pseudo_header->nstr.hdrname##_offset = (guint8) enumprefix##_##hdrname##_offset;
#define __TNL(enumprefix,structprefix,structname,hdrname,structfieldname) \
- pseudo_header->nstr.hdrname##_len = (guint8) enumprefix##_##hdrname##_len;
+ pseudo_header->nstr.hdrname##_len = (guint8) enumprefix##_##hdrname##_len;
#define __TNV1O(enumprefix,structprefix,structname,hdrname,structfieldname) \
- __TNO(enumprefix,structprefix,structname,hdrname,structfieldname)
+ __TNO(enumprefix,structprefix,structname,hdrname,structfieldname)
#define __TNV1L(enumprefix,structprefix,structname,hdrname,structfieldname) \
- __TNL(enumprefix,structprefix,structname,hdrname,structfieldname)
+ __TNL(enumprefix,structprefix,structname,hdrname,structfieldname)
static gboolean nstrace_seek_read(wtap *wth, gint64 seek_off,
struct wtap_pkthdr *phdr, guint8 *pd, int length,
int *err, gchar **err_info)
{
- union wtap_pseudo_header *pseudo_header = &phdr->pseudo_header;
- int bytes_read;
+ union wtap_pseudo_header *pseudo_header = &phdr->pseudo_header;
+ int bytes_read;
- *err = 0;
+ *err = 0;
- if (file_seek(wth->random_fh, seek_off, SEEK_SET, err) == -1)
- return FALSE;
+ if (file_seek(wth->random_fh, seek_off, SEEK_SET, err) == -1)
+ return FALSE;
- /*
- ** Read the packet data.
- */
- bytes_read = file_read(pd, length, wth->random_fh);
- if (bytes_read != length) {
- *err = file_error(wth->random_fh, err_info);
- if (*err == 0)
- *err = WTAP_ERR_SHORT_READ;
- return FALSE;
- }
+ /*
+ ** Read the packet data.
+ */
+ bytes_read = file_read(pd, length, wth->random_fh);
+ if (bytes_read != length) {
+ *err = file_error(wth->random_fh, err_info);
+ if (*err == 0)
+ *err = WTAP_ERR_SHORT_READ;
+ return FALSE;
+ }
- if (wth->file_type == WTAP_FILE_NETSCALER_1_0)
- {
+ if (wth->file_type == WTAP_FILE_NETSCALER_1_0)
+ {
#define GENERATE_CASE_FULL(type,acttype) \
- case NSPR_PDPKTRACEFULLTX_V##type:\
- case NSPR_PDPKTRACEFULLTXB_V##type:\
- case NSPR_PDPKTRACEFULLRX_V##type:\
- TRACE_V##type##_REC_LEN_OFF(v##type##_full,fp,pktracefull_v##type);\
- pseudo_header->nstr.rec_type = NSPR_HEADER_VERSION##acttype;\
- break;\
+ case NSPR_PDPKTRACEFULLTX_V##type:\
+ case NSPR_PDPKTRACEFULLTXB_V##type:\
+ case NSPR_PDPKTRACEFULLRX_V##type:\
+ TRACE_V##type##_REC_LEN_OFF(v##type##_full,fp,pktracefull_v##type);\
+ pseudo_header->nstr.rec_type = NSPR_HEADER_VERSION##acttype;\
+ break;\
#define GENERATE_CASE_PART(type,acttype) \
- case NSPR_PDPKTRACEPARTTX_V##type:\
- case NSPR_PDPKTRACEPARTTXB_V##type:\
- case NSPR_PDPKTRACEPARTRX_V##type:\
- TRACE_V##type##_REC_LEN_OFF(v##type##_part,pp,pktracepart_v##type);\
- pseudo_header->nstr.rec_type = NSPR_HEADER_VERSION##acttype;\
- break;\
-
- switch (pletohs(&(( nspr_header_v10_t*)pd)->ph_RecordType))
- {
- GENERATE_CASE_FULL(10,100)
- GENERATE_CASE_PART(10,100)
- }
- } else if (wth->file_type == WTAP_FILE_NETSCALER_2_0)
- {
+ case NSPR_PDPKTRACEPARTTX_V##type:\
+ case NSPR_PDPKTRACEPARTTXB_V##type:\
+ case NSPR_PDPKTRACEPARTRX_V##type:\
+ TRACE_V##type##_REC_LEN_OFF(v##type##_part,pp,pktracepart_v##type);\
+ pseudo_header->nstr.rec_type = NSPR_HEADER_VERSION##acttype;\
+ break;\
+
+ switch (pletohs(&(( nspr_header_v10_t*)pd)->ph_RecordType))
+ {
+ GENERATE_CASE_FULL(10,100)
+ GENERATE_CASE_PART(10,100)
+ }
+ } else if (wth->file_type == WTAP_FILE_NETSCALER_2_0)
+ {
#define GENERATE_CASE_FULL_V25(type,acttype) \
- case NSPR_PDPKTRACEFULLTX_V##type:\
- case NSPR_PDPKTRACEFULLTXB_V##type:\
- case NSPR_PDPKTRACEFULLRX_V##type:\
- case NSPR_PDPKTRACEFULLNEWRX_V##type:\
- TRACE_V##type##_REC_LEN_OFF(v##type##_full,fp,pktracefull_v##type);\
- pseudo_header->nstr.rec_type = NSPR_HEADER_VERSION##acttype;\
- break;\
+ case NSPR_PDPKTRACEFULLTX_V##type:\
+ case NSPR_PDPKTRACEFULLTXB_V##type:\
+ case NSPR_PDPKTRACEFULLRX_V##type:\
+ case NSPR_PDPKTRACEFULLNEWRX_V##type:\
+ TRACE_V##type##_REC_LEN_OFF(v##type##_full,fp,pktracefull_v##type);\
+ pseudo_header->nstr.rec_type = NSPR_HEADER_VERSION##acttype;\
+ break;\
#define GENERATE_CASE_PART_V25(type,acttype) \
- case NSPR_PDPKTRACEPARTTX_V##type:\
- case NSPR_PDPKTRACEPARTTXB_V##type:\
- case NSPR_PDPKTRACEPARTRX_V##type:\
- case NSPR_PDPKTRACEPARTNEWRX_V##type:\
- TRACE_V##type##_REC_LEN_OFF(v##type##_part,pp,pktracepart_v##type);\
- pseudo_header->nstr.rec_type = NSPR_HEADER_VERSION##acttype;\
- break;\
-
- switch ((( nspr_hd_v20_t*)pd)->phd_RecordType)
- {
- GENERATE_CASE_FULL(20,200)
- GENERATE_CASE_PART(20,200)
- GENERATE_CASE_FULL(21,201)
- GENERATE_CASE_PART(21,201)
- GENERATE_CASE_FULL(22,202)
- GENERATE_CASE_PART(22,202)
- GENERATE_CASE_FULL(23,203)
- GENERATE_CASE_PART(23,203)
- GENERATE_CASE_FULL_V25(24,204)
- GENERATE_CASE_PART_V25(24,204)
- GENERATE_CASE_FULL_V25(25,205)
- GENERATE_CASE_PART_V25(25,205)
- }
- }
-
- return TRUE;
+ case NSPR_PDPKTRACEPARTTX_V##type:\
+ case NSPR_PDPKTRACEPARTTXB_V##type:\
+ case NSPR_PDPKTRACEPARTRX_V##type:\
+ case NSPR_PDPKTRACEPARTNEWRX_V##type:\
+ TRACE_V##type##_REC_LEN_OFF(v##type##_part,pp,pktracepart_v##type);\
+ pseudo_header->nstr.rec_type = NSPR_HEADER_VERSION##acttype;\
+ break;\
+
+ switch ((( nspr_hd_v20_t*)pd)->phd_RecordType)
+ {
+ GENERATE_CASE_FULL(20,200)
+ GENERATE_CASE_PART(20,200)
+ GENERATE_CASE_FULL(21,201)
+ GENERATE_CASE_PART(21,201)
+ GENERATE_CASE_FULL(22,202)
+ GENERATE_CASE_PART(22,202)
+ GENERATE_CASE_FULL(23,203)
+ GENERATE_CASE_PART(23,203)
+ GENERATE_CASE_FULL_V25(24,204)
+ GENERATE_CASE_PART_V25(24,204)
+ GENERATE_CASE_FULL_V25(25,205)
+ GENERATE_CASE_PART_V25(25,205)
+ }
+ }
+
+ return TRUE;
}
#undef __TNL
@@ -1169,26 +1169,26 @@ static gboolean nstrace_seek_read(wtap *wth, gint64 seek_off,
*/
static void nstrace_close(wtap *wth)
{
- nstrace_t *nstrace = (nstrace_t *)wth->priv;
+ nstrace_t *nstrace = (nstrace_t *)wth->priv;
- g_free(nstrace->pnstrace_buf);
+ g_free(nstrace->pnstrace_buf);
}
typedef struct {
- guint16 page_offset;
- guint16 page_len;
- guint32 absrec_time;
+ guint16 page_offset;
+ guint16 page_len;
+ guint32 absrec_time;
} nstrace_dump_t;
/* Returns 0 if we could write the specified encapsulation type,
** an error indication otherwise. */
int nstrace_10_dump_can_write_encap(int encap)
{
- if (encap == WTAP_ENCAP_NSTRACE_1_0)
- return 0;
+ if (encap == WTAP_ENCAP_NSTRACE_1_0)
+ return 0;
- return WTAP_ERR_UNSUPPORTED_ENCAP;
+ return WTAP_ERR_UNSUPPORTED_ENCAP;
}
@@ -1196,10 +1196,10 @@ int nstrace_10_dump_can_write_encap(int encap)
** an error indication otherwise. */
int nstrace_20_dump_can_write_encap(int encap)
{
- if (encap == WTAP_ENCAP_NSTRACE_2_0)
- return 0;
+ if (encap == WTAP_ENCAP_NSTRACE_2_0)
+ return 0;
- return WTAP_ERR_UNSUPPORTED_ENCAP;
+ return WTAP_ERR_UNSUPPORTED_ENCAP;
}
@@ -1207,68 +1207,68 @@ int nstrace_20_dump_can_write_encap(int encap)
** failure */
gboolean nstrace_dump_open(wtap_dumper *wdh, int *err _U_)
{
- nstrace_dump_t *nstrace;
+ nstrace_dump_t *nstrace;
- wdh->subtype_write = nstrace_dump;
+ wdh->subtype_write = nstrace_dump;
- nstrace = (nstrace_dump_t *)g_malloc(sizeof(nstrace_dump_t));
- wdh->priv = (void *)nstrace;
- nstrace->page_offset = 0;
- nstrace->page_len = NSPR_PAGESIZE;
- nstrace->absrec_time = 0;
+ nstrace = (nstrace_dump_t *)g_malloc(sizeof(nstrace_dump_t));
+ wdh->priv = (void *)nstrace;
+ nstrace->page_offset = 0;
+ nstrace->page_len = NSPR_PAGESIZE;
+ nstrace->absrec_time = 0;
- return TRUE;
+ return TRUE;
}
static gboolean nstrace_add_signature(wtap_dumper *wdh, int *err)
{
- nstrace_dump_t *nstrace = (nstrace_dump_t *)wdh->priv;
-
- if (wdh->file_type == WTAP_FILE_NETSCALER_1_0)
- {
- guint16 val16b;
- nspr_signature_v10_t sig10;
-
- /* populate the record */
- val16b = htoles(NSPR_SIGNATURE_V10);
- memcpy(sig10.phd.ph_RecordType, &val16b, sizeof sig10.phd.ph_RecordType);
- val16b = htoles(nspr_signature_v10_s);
- memcpy(sig10.phd.ph_RecordSize, &val16b, sizeof sig10.phd.ph_RecordSize);
- memset(sig10.sig_Signature, 0, NSPR_SIGSIZE_V10);
- g_strlcpy(sig10.sig_Signature, NSPR_SIGSTR_V10, NSPR_SIGSIZE_V10);
-
- /* Write the record into the file */
- if (!wtap_dump_file_write(wdh, &sig10, nspr_signature_v10_s,
- err))
- return FALSE;
-
- /* Move forward the page offset */
- nstrace->page_offset += (guint16) nspr_signature_v10_s;
-
- } else if (wdh->file_type == WTAP_FILE_NETSCALER_2_0)
- {
- nspr_signature_v20_t sig20;
-
- sig20.sig_RecordType = NSPR_SIGNATURE_V20;
- sig20.sig_RecordSize = nspr_signature_v20_s;
- memcpy(sig20.sig_Signature, NSPR_SIGSTR_V20, sizeof(NSPR_SIGSTR_V20));
-
- /* Write the record into the file */
- if (!wtap_dump_file_write(wdh, &sig20, sig20.sig_RecordSize,
- err))
- return FALSE;
-
- /* Move forward the page offset */
- nstrace->page_offset += (guint16) sig20.sig_RecordSize;
-
- } else
- {
- g_assert_not_reached();
- return FALSE;
- }
-
- return TRUE;
+ nstrace_dump_t *nstrace = (nstrace_dump_t *)wdh->priv;
+
+ if (wdh->file_type == WTAP_FILE_NETSCALER_1_0)
+ {
+ guint16 val16b;
+ nspr_signature_v10_t sig10;
+
+ /* populate the record */
+ val16b = htoles(NSPR_SIGNATURE_V10);
+ memcpy(sig10.phd.ph_RecordType, &val16b, sizeof sig10.phd.ph_RecordType);
+ val16b = htoles(nspr_signature_v10_s);
+ memcpy(sig10.phd.ph_RecordSize, &val16b, sizeof sig10.phd.ph_RecordSize);
+ memset(sig10.sig_Signature, 0, NSPR_SIGSIZE_V10);
+ g_strlcpy(sig10.sig_Signature, NSPR_SIGSTR_V10, NSPR_SIGSIZE_V10);
+
+ /* Write the record into the file */
+ if (!wtap_dump_file_write(wdh, &sig10, nspr_signature_v10_s,
+ err))
+ return FALSE;
+
+ /* Move forward the page offset */
+ nstrace->page_offset += (guint16) nspr_signature_v10_s;
+
+ } else if (wdh->file_type == WTAP_FILE_NETSCALER_2_0)
+ {
+ nspr_signature_v20_t sig20;
+
+ sig20.sig_RecordType = NSPR_SIGNATURE_V20;
+ sig20.sig_RecordSize = nspr_signature_v20_s;
+ memcpy(sig20.sig_Signature, NSPR_SIGSTR_V20, sizeof(NSPR_SIGSTR_V20));
+
+ /* Write the record into the file */
+ if (!wtap_dump_file_write(wdh, &sig20, sig20.sig_RecordSize,
+ err))
+ return FALSE;
+
+ /* Move forward the page offset */
+ nstrace->page_offset += (guint16) sig20.sig_RecordSize;
+
+ } else
+ {
+ g_assert_not_reached();
+ return FALSE;
+ }
+
+ return TRUE;
}
@@ -1276,66 +1276,66 @@ static gboolean
nstrace_add_abstime(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
const guint8 *pd, int *err)
{
- nstrace_dump_t *nstrace = (nstrace_dump_t *)wdh->priv;
- guint64 nsg_creltime;
-
- if (wdh->file_type == WTAP_FILE_NETSCALER_1_0)
- {
- guint16 val16;
- guint32 reltime;
- guint64 abstime;
- nspr_abstime_v10_t abs10;
-
- /* populate the record */
- val16 = htoles(NSPR_ABSTIME_V10);
- memcpy(abs10.phd.ph_RecordType, &val16, sizeof abs10.phd.ph_RecordType);
- val16 = htoles(nspr_abstime_v10_s);
- memcpy(abs10.phd.ph_RecordSize, &val16, sizeof abs10.phd.ph_RecordSize);
-
- memcpy(&reltime, ((const nspr_pktracefull_v10_t *)pd)->fp_RelTimeHr, sizeof reltime);
- nsg_creltime = ns_hrtime2nsec(reltime);
-
- memset(abs10.abs_RelTime, 0, sizeof abs10.abs_RelTime);
- abstime = htolel((guint32)phdr->ts.secs - (guint32)(nsg_creltime/1000000000));
- memcpy(abs10.abs_Time, &abstime, sizeof abs10.abs_Time);
-
- /* Write the record into the file */
- if (!wtap_dump_file_write(wdh, &abs10, nspr_abstime_v10_s, err))
- return FALSE;
-
- /* Move forward the page offset */
- nstrace->page_offset += nspr_abstime_v10_s;
-
- } else if (wdh->file_type == WTAP_FILE_NETSCALER_2_0)
- {
- guint32 reltime;
- guint64 abstime;
- nspr_abstime_v20_t abs20;
-
- abs20.abs_RecordType = NSPR_ABSTIME_V20;
- abs20.abs_RecordSize = nspr_abstime_v20_s;
-
- memcpy(&reltime, ((const nspr_pktracefull_v20_t *)pd)->fp_RelTimeHr, sizeof reltime);
- nsg_creltime = ns_hrtime2nsec(reltime);
-
- memset(abs20.abs_RelTime, 0, sizeof abs20.abs_RelTime);
- abstime = htolel((guint32)phdr->ts.secs - (guint32)(nsg_creltime/1000000000));
- memcpy(abs20.abs_RelTime, &abstime, sizeof abs20.abs_RelTime);
-
- /* Write the record into the file */
- if (!wtap_dump_file_write(wdh, &abs20, nspr_abstime_v20_s, err))
- return FALSE;
-
- /* Move forward the page offset */
- nstrace->page_offset += nspr_abstime_v20_s;
-
- } else
- {
- g_assert_not_reached();
- return FALSE;
- }
-
- return TRUE;
+ nstrace_dump_t *nstrace = (nstrace_dump_t *)wdh->priv;
+ guint64 nsg_creltime;
+
+ if (wdh->file_type == WTAP_FILE_NETSCALER_1_0)
+ {
+ guint16 val16;
+ guint32 reltime;
+ guint64 abstime;
+ nspr_abstime_v10_t abs10;
+
+ /* populate the record */
+ val16 = htoles(NSPR_ABSTIME_V10);
+ memcpy(abs10.phd.ph_RecordType, &val16, sizeof abs10.phd.ph_RecordType);
+ val16 = htoles(nspr_abstime_v10_s);
+ memcpy(abs10.phd.ph_RecordSize, &val16, sizeof abs10.phd.ph_RecordSize);
+
+ memcpy(&reltime, ((const nspr_pktracefull_v10_t *)pd)->fp_RelTimeHr, sizeof reltime);
+ nsg_creltime = ns_hrtime2nsec(reltime);
+
+ memset(abs10.abs_RelTime, 0, sizeof abs10.abs_RelTime);
+ abstime = htolel((guint32)phdr->ts.secs - (guint32)(nsg_creltime/1000000000));
+ memcpy(abs10.abs_Time, &abstime, sizeof abs10.abs_Time);
+
+ /* Write the record into the file */
+ if (!wtap_dump_file_write(wdh, &abs10, nspr_abstime_v10_s, err))
+ return FALSE;
+
+ /* Move forward the page offset */
+ nstrace->page_offset += nspr_abstime_v10_s;
+
+ } else if (wdh->file_type == WTAP_FILE_NETSCALER_2_0)
+ {
+ guint32 reltime;
+ guint64 abstime;
+ nspr_abstime_v20_t abs20;
+
+ abs20.abs_RecordType = NSPR_ABSTIME_V20;
+ abs20.abs_RecordSize = nspr_abstime_v20_s;
+
+ memcpy(&reltime, ((const nspr_pktracefull_v20_t *)pd)->fp_RelTimeHr, sizeof reltime);
+ nsg_creltime = ns_hrtime2nsec(reltime);
+
+ memset(abs20.abs_RelTime, 0, sizeof abs20.abs_RelTime);
+ abstime = htolel((guint32)phdr->ts.secs - (guint32)(nsg_creltime/1000000000));
+ memcpy(abs20.abs_RelTime, &abstime, sizeof abs20.abs_RelTime);
+
+ /* Write the record into the file */
+ if (!wtap_dump_file_write(wdh, &abs20, nspr_abstime_v20_s, err))
+ return FALSE;
+
+ /* Move forward the page offset */
+ nstrace->page_offset += nspr_abstime_v20_s;
+
+ } else
+ {
+ g_assert_not_reached();
+ return FALSE;
+ }
+
+ return TRUE;
}
@@ -1344,106 +1344,106 @@ nstrace_add_abstime(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
static gboolean nstrace_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
const guint8 *pd, int *err)
{
- const union wtap_pseudo_header *pseudo_header = &phdr->pseudo_header;
- nstrace_dump_t *nstrace = (nstrace_dump_t *)wdh->priv;
-
- if (nstrace->page_offset == 0)
- {
- /* Add the signature record and abs time record */
- if (wdh->file_type == WTAP_FILE_NETSCALER_1_0)
- {
- if (!nstrace_add_signature(wdh, err) ||
- !nstrace_add_abstime(wdh, phdr, pd, err))
- return FALSE;
- } else if (wdh->file_type == WTAP_FILE_NETSCALER_2_0)
- {
- if (!nstrace_add_signature(wdh, err) ||
- !nstrace_add_abstime(wdh, phdr, pd, err))
- return FALSE;
- } else
- {
- g_assert_not_reached();
- return FALSE;
- }
- }
-
- switch (pseudo_header->nstr.rec_type)
- {
- case NSPR_HEADER_VERSION100:
-
- if (wdh->file_type == WTAP_FILE_NETSCALER_1_0)
- {
- if (nstrace->page_offset + phdr->caplen >= nstrace->page_len)
- {
- /* Start on the next page */
- if (fseek(wdh->fh, (nstrace->page_len - nstrace->page_offset), SEEK_CUR) == -1)
- {
- *err = errno;
- return FALSE;
- }
-
- nstrace->page_offset = 0;
-
- /* Possibly add signature and abstime records and increment offset */
- if (!nstrace_add_signature(wdh, err))
- return FALSE;
- }
-
- /* Write the actual record as is */
- if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err))
- return FALSE;
-
- nstrace->page_offset += (guint16) phdr->caplen;
- } else if (wdh->file_type == WTAP_FILE_NETSCALER_2_0)
- {
- *err = WTAP_ERR_UNSUPPORTED_FILE_TYPE;
- return FALSE;
- }
-
- break;
-
- case NSPR_HEADER_VERSION200:
- case NSPR_HEADER_VERSION201:
- case NSPR_HEADER_VERSION202:
- case NSPR_HEADER_VERSION203:
- case NSPR_HEADER_VERSION204:
- case NSPR_HEADER_VERSION205:
- if (wdh->file_type == WTAP_FILE_NETSCALER_1_0)
- {
- *err = WTAP_ERR_UNSUPPORTED_FILE_TYPE;
- return FALSE;
- } else if (wdh->file_type == WTAP_FILE_NETSCALER_2_0)
- {
- if (nstrace->page_offset + phdr->caplen >= nstrace->page_len)
- {
- /* Start on the next page */
- if (fseek(wdh->fh, (nstrace->page_len - nstrace->page_offset), SEEK_CUR) == -1)
- {
- *err = errno;
- return FALSE;
- }
-
- nstrace->page_offset = 0;
-
- /* Possibly add signature and abstime records and increment offset */
- if (!nstrace_add_signature(wdh, err))
- return FALSE;
- }
-
- /* Write the actual record as is */
- if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err))
- return FALSE;
-
- nstrace->page_offset += (guint16) phdr->caplen;
- }
-
- break;
-
- default:
- g_assert_not_reached();
- return FALSE;
- }
-
- return TRUE;
+ const union wtap_pseudo_header *pseudo_header = &phdr->pseudo_header;
+ nstrace_dump_t *nstrace = (nstrace_dump_t *)wdh->priv;
+
+ if (nstrace->page_offset == 0)
+ {
+ /* Add the signature record and abs time record */
+ if (wdh->file_type == WTAP_FILE_NETSCALER_1_0)
+ {
+ if (!nstrace_add_signature(wdh, err) ||
+ !nstrace_add_abstime(wdh, phdr, pd, err))
+ return FALSE;
+ } else if (wdh->file_type == WTAP_FILE_NETSCALER_2_0)
+ {
+ if (!nstrace_add_signature(wdh, err) ||
+ !nstrace_add_abstime(wdh, phdr, pd, err))
+ return FALSE;
+ } else
+ {
+ g_assert_not_reached();
+ return FALSE;
+ }
+ }
+
+ switch (pseudo_header->nstr.rec_type)
+ {
+ case NSPR_HEADER_VERSION100:
+
+ if (wdh->file_type == WTAP_FILE_NETSCALER_1_0)
+ {
+ if (nstrace->page_offset + phdr->caplen >= nstrace->page_len)
+ {
+ /* Start on the next page */
+ if (fseek(wdh->fh, (nstrace->page_len - nstrace->page_offset), SEEK_CUR) == -1)
+ {
+ *err = errno;
+ return FALSE;
+ }
+
+ nstrace->page_offset = 0;
+
+ /* Possibly add signature and abstime records and increment offset */
+ if (!nstrace_add_signature(wdh, err))
+ return FALSE;
+ }
+
+ /* Write the actual record as is */
+ if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err))
+ return FALSE;
+
+ nstrace->page_offset += (guint16) phdr->caplen;
+ } else if (wdh->file_type == WTAP_FILE_NETSCALER_2_0)
+ {
+ *err = WTAP_ERR_UNSUPPORTED_FILE_TYPE;
+ return FALSE;
+ }
+
+ break;
+
+ case NSPR_HEADER_VERSION200:
+ case NSPR_HEADER_VERSION201:
+ case NSPR_HEADER_VERSION202:
+ case NSPR_HEADER_VERSION203:
+ case NSPR_HEADER_VERSION204:
+ case NSPR_HEADER_VERSION205:
+ if (wdh->file_type == WTAP_FILE_NETSCALER_1_0)
+ {
+ *err = WTAP_ERR_UNSUPPORTED_FILE_TYPE;
+ return FALSE;
+ } else if (wdh->file_type == WTAP_FILE_NETSCALER_2_0)
+ {
+ if (nstrace->page_offset + phdr->caplen >= nstrace->page_len)
+ {
+ /* Start on the next page */
+ if (fseek(wdh->fh, (nstrace->page_len - nstrace->page_offset), SEEK_CUR) == -1)
+ {
+ *err = errno;
+ return FALSE;
+ }
+
+ nstrace->page_offset = 0;
+
+ /* Possibly add signature and abstime records and increment offset */
+ if (!nstrace_add_signature(wdh, err))
+ return FALSE;
+ }
+
+ /* Write the actual record as is */
+ if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err))
+ return FALSE;
+
+ nstrace->page_offset += (guint16) phdr->caplen;
+ }
+
+ break;
+
+ default:
+ g_assert_not_reached();
+ return FALSE;
+ }
+
+ return TRUE;
}