diff options
author | Guy Harris <guy@alum.mit.edu> | 2002-06-27 22:46:48 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2002-06-27 22:46:48 +0000 |
commit | 9745ed6988d92f8d7042a18d3fb8c5299545c815 (patch) | |
tree | 0368714c6c0dc3182644c60e432f875aefa892f0 /wiretap/lanalyzer.h | |
parent | 83dc23831a86172318115027725328c34e5a1908 (diff) |
From Markus Steinmann: support for writing LANalyzer files.
svn path=/trunk/; revision=5771
Diffstat (limited to 'wiretap/lanalyzer.h')
-rw-r--r-- | wiretap/lanalyzer.h | 157 |
1 files changed, 152 insertions, 5 deletions
diff --git a/wiretap/lanalyzer.h b/wiretap/lanalyzer.h index 190d2bbb76..e42a347699 100644 --- a/wiretap/lanalyzer.h +++ b/wiretap/lanalyzer.h @@ -1,20 +1,20 @@ /* lanalyzer.h * - * $Id: lanalyzer.h,v 1.5 2001/11/13 23:55:43 gram Exp $ + * $Id: lanalyzer.h,v 1.6 2002/06/27 22:46:48 guy Exp $ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez <gram@alumni.rice.edu> - * + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. @@ -24,6 +24,153 @@ #ifndef __LANALYZER_H__ #define __LANALYZER_H__ -int lanalyzer_open(wtap *wth, int *err); +/* Record type codes: */ + +#define RT_HeaderRegular 0x1001 +#define RT_HeaderCyclic 0x1007 +#define RT_RxChannelName 0x1006 +#define RT_TxChannelName 0x100b +#define RT_FilterName 0x1032 +#define RT_RxTemplateName 0x1035 +#define RT_TxTemplateName 0x1036 +#define RT_DisplayOptions 0x100a +#define RT_Summary 0x1002 +#define RT_SubfileSummary 0x1003 +#define RT_CyclicInformation 0x1009 +#define RT_Index 0x1004 +#define RT_PacketData 0x1005 + +#define LA_ProFileLimit (1024 * 1024 * 32) + +typedef guint8 Eadr[6]; +typedef guint16 TimeStamp[3]; /* 0.5 microseconds since start of trace */ + +/* + * These records have only 2-byte alignment for 4-byte quantities, + * so the structures aren't necessarily valid; they're kept as comments + * for reference purposes. + */ + +/* + * typedef struct { + * guint8 day; + * guint8 mon; + * gint16 year; + * } Date; + */ + +/* + * typedef struct { + * guint8 second; + * guint8 minute; + * guint8 hour; + * guint8 day; + * gint16 reserved; + * } Time; + */ + +/* + * typedef struct { + * guint16 rx_channels; + * guint16 rx_errors; + * gint16 rx_frm_len; + * gint16 rx_frm_sln; + * TimeStamp rx_time; + * guint32 pktno; + * gint16 prvlen; + * gint16 offset; + * gint16 tx_errs; + * gint16 rx_filters; + * gint8 unused[2]; + * gint16 hwcolls; + * gint16 hwcollschans; + * Packetdata ....; + * } LA_PacketRecord; + */ + +#define LA_PacketRecordSize 32 + +/* + * typedef struct { + * Date datcre; + * Date datclo; + * Time timeopn; + * Time timeclo; + * Eadr statadr; + * gint16 mxseqno; + * gint16 slcoff; + * gint16 mxslc; + * gint32 totpktt; + * gint32 statrg; + * gint32 stptrg; + * gint32 mxpkta[36]; + * gint16 board_type; + * gint16 board_version; + * gint8 reserved[18]; + * } Summary; + */ + +#define SummarySize (18+22+(4*36)+6+6+6+4+4) + + +/* + * typedef struct { + * gint16 rid; + * gint16 rlen; + * Summary s; + * } LA_SummaryRecord; + */ + +#define LA_SummaryRecordSize (SummarySize + 4) + + +/* + * typedef struct { + * gint16 rid; + * gint16 rlen; + * gint16 seqno; + * gint32 totpktf; + * } LA_SubfileSummaryRecord; + */ + +#define LA_SubfileSummaryRecordSize 10 + + +#define LA_IndexSize 500 + +/* + * typedef struct { + * gint16 rid; + * gint16 rlen; + * gint16 idxsp; = LA_IndexSize + * gint16 idxct; + * gint8 idxgranu; + * gint8 idxvd; + * gint32 trcidx[LA_IndexSize + 2]; +2 undocumented but used by La 2.2 + * } LA_IndexRecord; + */ + +#define LA_IndexRecordSize (10 + 4 * (LA_IndexSize + 2)) + +/* + * typedef struct { + * gint16 rid; + * gint16 rlen; + * } LA_RecordHeader; + */ + +#define LA_RecordHeaderSize 4 + +typedef struct { + gboolean init; + struct timeval start; + guint32 pkts; + int encap; + int lastlen; + } LA_TmpInfo; + +int lanalyzer_open(wtap *wth, int *err); +gboolean lanalyzer_dump_open(wtap_dumper *wdh, int *err); +int lanalyzer_dump_can_write_encap(int encap); #endif |