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
This commit is contained in:
Guy Harris 2004-09-04 20:35:29 +00:00
parent 6968bc1c0d
commit a686d1b953
2 changed files with 90 additions and 59 deletions

View File

@ -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)

View File

@ -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);