aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2004-09-04 20:35:29 +0000
committerGuy Harris <guy@alum.mit.edu>2004-09-04 20:35:29 +0000
commita686d1b9539e7a6575c7566cf8ac5997a040ee2e (patch)
tree9b02eed17353d7c41c305aba7325629a244e1306 /wiretap
parent6968bc1c0d170aa29d1675d0e8fbab7568d03bfc (diff)
From Mark C. Brown:
1) Change nettl subsystem ID's to decimal so as to match /etc/nettlgen.conf and ease maintenance 2) Add support for hp_apaport (PAgP), hp_apalacp, and IPv6 subsystem trace records 3) Correct handling of LOOPBACK trace records svn path=/trunk/; revision=11901
Diffstat (limited to 'wiretap')
-rw-r--r--wiretap/nettl.c31
-rw-r--r--wiretap/nettl.h118
2 files changed, 90 insertions, 59 deletions
diff --git a/wiretap/nettl.c b/wiretap/nettl.c
index c7aa7f18a7..702b0e8f0e 100644
--- a/wiretap/nettl.c
+++ b/wiretap/nettl.c
@@ -302,14 +302,19 @@ nettl_read_rec_header(wtap *wth, FILE_T fh, struct wtap_pkthdr *phdr,
case NETTL_SUBSYS_NS_LS_LOOPBACK :
case NETTL_SUBSYS_NS_LS_TCP :
case NETTL_SUBSYS_NS_LS_UDP :
+ case NETTL_SUBSYS_HP_APAPORT :
+ case NETTL_SUBSYS_HP_APALACP :
+ case NETTL_SUBSYS_NS_LS_IPV6 :
+ case NETTL_SUBSYS_NS_LS_ICMPV6 :
case NETTL_SUBSYS_NS_LS_ICMP :
if( (encap[3] == NETTL_SUBSYS_NS_LS_IP)
|| (encap[3] == NETTL_SUBSYS_NS_LS_LOOPBACK)
|| (encap[3] == NETTL_SUBSYS_NS_LS_UDP)
- || (encap[3] == NETTL_SUBSYS_NS_LS_TCP) ) {
+ || (encap[3] == NETTL_SUBSYS_NS_LS_TCP)
+ || (encap[3] == NETTL_SUBSYS_NS_LS_ICMP)
+ || (encap[3] == NETTL_SUBSYS_NS_LS_IPV6)
+ || (encap[3] == NETTL_SUBSYS_NS_LS_ICMPV6) ) {
phdr->pkt_encap = WTAP_ENCAP_RAW_IP;
- } else if (encap[3] == NETTL_SUBSYS_NS_LS_ICMP) {
- phdr->pkt_encap = WTAP_ENCAP_UNKNOWN;
} else if (encap[3] == NETTL_SUBSYS_PCI_FDDI) {
phdr->pkt_encap = WTAP_ENCAP_FDDI;
} else if( (encap[3] == NETTL_SUBSYS_PCI_TR)
@@ -371,6 +376,26 @@ nettl_read_rec_header(wtap *wth, FILE_T fh, struct wtap_pkthdr *phdr,
phdr->len = length - 3;
length = pntohl(&ip_hdr.caplen);
phdr->caplen = length - 3;
+ } else if (encap[3] == NETTL_SUBSYS_NS_LS_LOOPBACK) {
+ /* LOOPBACK has an extra 26 bytes of padding */
+ bytes_read = file_read(dummy, 1, 26, fh);
+ if (bytes_read != 26) {
+ *err = file_error(fh);
+ if (*err != 0)
+ return -1;
+ if (bytes_read != 0) {
+ *err = WTAP_ERR_SHORT_READ;
+ return -1;
+ }
+ return 0;
+ }
+ offset += 26;
+ length = pntohl(&ip_hdr.length);
+ if (length <= 0)
+ return 0;
+ phdr->len = length - 26;
+ length = pntohl(&ip_hdr.caplen);
+ phdr->caplen = length - 26;
} else {
length = pntohl(&ip_hdr.length);
if (length <= 0)
diff --git a/wiretap/nettl.h b/wiretap/nettl.h
index 5aa5a5fad9..add1c51250 100644
--- a/wiretap/nettl.h
+++ b/wiretap/nettl.h
@@ -24,68 +24,74 @@
#ifndef __NETTL_H__
#define __NETTL_H__
-#define NETTL_SUBSYS_NS_LS_LOGGING 0x00
-#define NETTL_SUBSYS_NS_LS_NFT 0x01
-#define NETTL_SUBSYS_NS_LS_LOOPBACK 0x02
-#define NETTL_SUBSYS_NS_LS_NI 0x03
-#define NETTL_SUBSYS_NS_LS_IPC 0x04
-#define NETTL_SUBSYS_NS_LS_SOCKREGD 0x05
-#define NETTL_SUBSYS_NS_LS_TCP 0x06
-#define NETTL_SUBSYS_NS_LS_PXP 0x07
-#define NETTL_SUBSYS_NS_LS_UDP 0x08
-#define NETTL_SUBSYS_NS_LS_IP 0x09
-#define NETTL_SUBSYS_NS_LS_PROBE 0x0A
-#define NETTL_SUBSYS_NS_LS_DRIVER 0x0B
-#define NETTL_SUBSYS_NS_LS_RLBD 0x0C
-#define NETTL_SUBSYS_NS_LS_BUFS 0x0D
-#define NETTL_SUBSYS_NS_LS_CASE21 0x0E
-#define NETTL_SUBSYS_NS_LS_ROUTER21 0x0F
-#define NETTL_SUBSYS_NS_LS_NFS 0x10
-#define NETTL_SUBSYS_NS_LS_NETISR 0x11
-#define NETTL_SUBSYS_NS_LS_NSE 0x13
-#define NETTL_SUBSYS_NS_LS_STRLOG 0x14
-#define NETTL_SUBSYS_NS_LS_TIRDWR 0x15
-#define NETTL_SUBSYS_NS_LS_TIMOD 0x16
-#define NETTL_SUBSYS_NS_LS_ICMP 0x17
-#define NETTL_SUBSYS_FILTER 0x1A
-#define NETTL_SUBSYS_NAME 0x1B
-#define NETTL_SUBSYS_IGMP 0x1D
-#define NETTL_SUBSYS_SX25L2 0x22
-#define NETTL_SUBSYS_SX25L3 0x23
-#define NETTL_SUBSYS_FTAM_INIT 0x40
-#define NETTL_SUBSYS_FTAM_RESP 0x41
-#define NETTL_SUBSYS_FTAM_VFS 0x46
-#define NETTL_SUBSYS_FTAM_USER 0x48
-#define NETTL_SUBSYS_OTS 0x5A
-#define NETTL_SUBSYS_NETWORK 0x5B
-#define NETTL_SUBSYS_TRANSPORT 0x5C
-#define NETTL_SUBSYS_SESSION 0x5D
-#define NETTL_SUBSYS_ACSE_PRES 0x5E
-#define NETTL_SUBSYS_SHM 0x74
-#define NETTL_SUBSYS_ACSE_US 0x77
-#define NETTL_SUBSYS_HPS 0x79
-#define NETTL_SUBSYS_CM 0x7A
-#define NETTL_SUBSYS_ULA_UTILS 0x7B
-#define NETTL_SUBSYS_EM 0x7C
+/* nettl subsystems are defined in /etc/nettlgen.conf */
+
+#define NETTL_SUBSYS_NS_LS_LOGGING 0
+#define NETTL_SUBSYS_NS_LS_NFT 1
+#define NETTL_SUBSYS_NS_LS_LOOPBACK 2
+#define NETTL_SUBSYS_NS_LS_NI 3
+#define NETTL_SUBSYS_NS_LS_IPC 4
+#define NETTL_SUBSYS_NS_LS_SOCKREGD 5
+#define NETTL_SUBSYS_NS_LS_TCP 6
+#define NETTL_SUBSYS_NS_LS_PXP 7
+#define NETTL_SUBSYS_NS_LS_UDP 8
+#define NETTL_SUBSYS_NS_LS_IP 9
+#define NETTL_SUBSYS_NS_LS_PROBE 10
+#define NETTL_SUBSYS_NS_LS_DRIVER 11
+#define NETTL_SUBSYS_NS_LS_RLBD 12
+#define NETTL_SUBSYS_NS_LS_BUFS 13
+#define NETTL_SUBSYS_NS_LS_CASE21 14
+#define NETTL_SUBSYS_NS_LS_ROUTER21 15
+#define NETTL_SUBSYS_NS_LS_NFS 16
+#define NETTL_SUBSYS_NS_LS_NETISR 17
+#define NETTL_SUBSYS_NS_LS_NSE 18
+#define NETTL_SUBSYS_NS_LS_STRLOG 19
+#define NETTL_SUBSYS_NS_LS_TIRDWR 21
+#define NETTL_SUBSYS_NS_LS_TIMOD 22
+#define NETTL_SUBSYS_NS_LS_ICMP 23
+#define NETTL_SUBSYS_FILTER 26
+#define NETTL_SUBSYS_NAME 27
+#define NETTL_SUBSYS_IGMP 29
+#define NETTL_SUBSYS_SX25L2 34
+#define NETTL_SUBSYS_SX25L3 35
+#define NETTL_SUBSYS_FTAM_INIT 64
+#define NETTL_SUBSYS_FTAM_RESP 65
+#define NETTL_SUBSYS_FTAM_VFS 70
+#define NETTL_SUBSYS_FTAM_USER 72
+#define NETTL_SUBSYS_OTS 90
+#define NETTL_SUBSYS_NETWORK 91
+#define NETTL_SUBSYS_TRANSPORT 92
+#define NETTL_SUBSYS_SESSION 93
+#define NETTL_SUBSYS_ACSE_PRES 94
+#define NETTL_SUBSYS_SHM 116
+#define NETTL_SUBSYS_ACSE_US 119
+#define NETTL_SUBSYS_HPS 121
+#define NETTL_SUBSYS_CM 122
+#define NETTL_SUBSYS_ULA_UTILS 123
+#define NETTL_SUBSYS_EM 124
+#define NETTL_SUBSYS_HP_APAPORT 189
+#define NETTL_SUBSYS_HP_APALACP 190
+#define NETTL_SUBSYS_NS_LS_IPV6 244
+#define NETTL_SUBSYS_NS_LS_ICMPV6 245
/* Ethernet cards */
-#define NETTL_SUBSYS_LAN100 0xA4
-#define NETTL_SUBSYS_BASE100 0xAD
-#define NETTL_SUBSYS_GSC100BT 0xB2
-#define NETTL_SUBSYS_PCI100BT 0xB3
-#define NETTL_SUBSYS_SPP100BT 0xB4
-#define NETTL_SUBSYS_GELAN 0xB9
-#define NETTL_SUBSYS_BTLAN 0xD2
-#define NETTL_SUBSYS_INTL100 0xE9
-#define NETTL_SUBSYS_IGELAN 0xFC
-#define NETTL_SUBSYS_IETHER 0xFD
+#define NETTL_SUBSYS_LAN100 164
+#define NETTL_SUBSYS_BASE100 173
+#define NETTL_SUBSYS_GSC100BT 178
+#define NETTL_SUBSYS_PCI100BT 179
+#define NETTL_SUBSYS_SPP100BT 180
+#define NETTL_SUBSYS_GELAN 185
+#define NETTL_SUBSYS_BTLAN 210
+#define NETTL_SUBSYS_INTL100 233
+#define NETTL_SUBSYS_IGELAN 252
+#define NETTL_SUBSYS_IETHER 253
/* FDDI cards */
-#define NETTL_SUBSYS_PCI_FDDI 0xB0
+#define NETTL_SUBSYS_PCI_FDDI 176
/* Token Ring cards */
-#define NETTL_SUBSYS_TOKEN 0x1F
-#define NETTL_SUBSYS_PCI_TR 0xBB
+#define NETTL_SUBSYS_TOKEN 31
+#define NETTL_SUBSYS_PCI_TR 187
int nettl_open(wtap *wth, int *err, gchar **err_info);