Ethereal-dev: [Ethereal-dev] nettl (HP-UX) Added ixgbe support
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: "Mark C. Brown" <mbrown@xxxxxxxxxx>
Date: Sat, 22 Jan 2005 21:40:02 -0500
Greetings, Added support for new ixgbe card... Mark -- "If a train station is where a train stops, | Mark C. Brown then what's a workstation?" -- D. Huber | mbrown@xxxxxxxxxx
Index: wiretap/nettl.c
===================================================================
--- wiretap/nettl.c (revision 13162)
+++ wiretap/nettl.c (working copy)
@@ -164,7 +164,8 @@
int nettl_open(wtap *wth, int *err, gchar **err_info _U_)
{
char magic[12], os_vers[2];
- guint8 dummy[4];
+ guint16 dummy[2];
+ int subsys;
int bytes_read;
/* Read in the string that should be at the start of a HP file */
@@ -221,7 +222,8 @@
return 0;
}
- switch (dummy[3]) {
+ subsys = g_ntohs(dummy[1]);
+ switch (subsys) {
case NETTL_SUBSYS_HPPB_FDDI :
case NETTL_SUBSYS_EISA_FDDI :
case NETTL_SUBSYS_PCI_FDDI :
@@ -335,9 +337,9 @@
struct nettlrec_ns_ls_drv_eth_hdr drv_eth_hdr;
guint16 length;
int offset = 0;
- int encap;
+ int subsys;
int padlen;
- guint8 dummy[4];
+ guint16 dummy[2];
guchar dummyc[12];
errno = WTAP_ERR_CANT_READ;
@@ -353,9 +355,9 @@
return 0;
}
offset += 4;
- encap=dummy[3];
- switch (encap) {
+ subsys = g_ntohs(dummy[1]);
+ switch (subsys) {
case NETTL_SUBSYS_LAN100 :
case NETTL_SUBSYS_EISA100BT :
case NETTL_SUBSYS_BASE100 :
@@ -368,6 +370,7 @@
case NETTL_SUBSYS_INTL100 :
case NETTL_SUBSYS_IGELAN :
case NETTL_SUBSYS_IETHER :
+ case NETTL_SUBSYS_IXGBE :
case NETTL_SUBSYS_HPPB_FDDI :
case NETTL_SUBSYS_EISA_FDDI :
case NETTL_SUBSYS_PCI_FDDI :
@@ -383,23 +386,23 @@
case NETTL_SUBSYS_NS_LS_IPV6 :
case NETTL_SUBSYS_NS_LS_ICMPV6 :
case NETTL_SUBSYS_NS_LS_ICMP :
- if( (encap == NETTL_SUBSYS_NS_LS_IP)
- || (encap == NETTL_SUBSYS_NS_LS_LOOPBACK)
- || (encap == NETTL_SUBSYS_NS_LS_UDP)
- || (encap == NETTL_SUBSYS_NS_LS_TCP)
- || (encap == NETTL_SUBSYS_NS_LS_IPV6)) {
+ if( (subsys == NETTL_SUBSYS_NS_LS_IP)
+ || (subsys == NETTL_SUBSYS_NS_LS_LOOPBACK)
+ || (subsys == NETTL_SUBSYS_NS_LS_UDP)
+ || (subsys == NETTL_SUBSYS_NS_LS_TCP)
+ || (subsys == NETTL_SUBSYS_NS_LS_IPV6)) {
phdr->pkt_encap = WTAP_ENCAP_RAW_IP;
- } else if (encap == NETTL_SUBSYS_NS_LS_ICMP) {
+ } else if (subsys == NETTL_SUBSYS_NS_LS_ICMP) {
phdr->pkt_encap = WTAP_ENCAP_RAW_ICMP;
- } else if (encap == NETTL_SUBSYS_NS_LS_ICMPV6) {
+ } else if (subsys == NETTL_SUBSYS_NS_LS_ICMPV6) {
phdr->pkt_encap = WTAP_ENCAP_RAW_ICMPV6;
- } else if( (encap == NETTL_SUBSYS_HPPB_FDDI)
- || (encap == NETTL_SUBSYS_EISA_FDDI)
- || (encap == NETTL_SUBSYS_PCI_FDDI)
- || (encap == NETTL_SUBSYS_HSC_FDDI) ) {
+ } else if( (subsys == NETTL_SUBSYS_HPPB_FDDI)
+ || (subsys == NETTL_SUBSYS_EISA_FDDI)
+ || (subsys == NETTL_SUBSYS_PCI_FDDI)
+ || (subsys == NETTL_SUBSYS_HSC_FDDI) ) {
phdr->pkt_encap = WTAP_ENCAP_FDDI_BITSWAPPED;
- } else if( (encap == NETTL_SUBSYS_PCI_TR)
- || (encap == NETTL_SUBSYS_TOKEN) ) {
+ } else if( (subsys == NETTL_SUBSYS_PCI_TR)
+ || (subsys == NETTL_SUBSYS_TOKEN) ) {
phdr->pkt_encap = WTAP_ENCAP_TOKEN_RING;
} else {
phdr->pkt_encap = WTAP_ENCAP_ETHERNET;
@@ -438,7 +441,7 @@
}
/* HPPB FDDI has different inbound vs outbound trace records */
- if (encap == NETTL_SUBSYS_HPPB_FDDI) {
+ if (subsys == NETTL_SUBSYS_HPPB_FDDI) {
if (ip_hdr.rectype == NETTL_HDR_PDUIN) {
/* inbound is very strange...
there are an extra 3 bytes after the DSAP and SSAP
@@ -486,9 +489,9 @@
length = pntohl(&ip_hdr.caplen);
phdr->caplen = length - padlen;
}
- } else if ( (encap == NETTL_SUBSYS_PCI_FDDI)
- || (encap == NETTL_SUBSYS_EISA_FDDI)
- || (encap == NETTL_SUBSYS_HSC_FDDI) ) {
+ } else if ( (subsys == NETTL_SUBSYS_PCI_FDDI)
+ || (subsys == NETTL_SUBSYS_EISA_FDDI)
+ || (subsys == NETTL_SUBSYS_HSC_FDDI) ) {
/* other flavor FDDI cards have an extra 3 bytes of padding */
bytes_read = file_read(dummy, 1, 3, fh);
if (bytes_read != 3) {
@@ -508,7 +511,7 @@
phdr->len = length - 3;
length = pntohl(&ip_hdr.caplen);
phdr->caplen = length - 3;
- } else if (encap == NETTL_SUBSYS_NS_LS_LOOPBACK) {
+ } else if (subsys == 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) {
@@ -642,7 +645,7 @@
default:
*err = WTAP_ERR_UNSUPPORTED_ENCAP;
*err_info = g_strdup_printf("nettl: subsystem %u unknown or unsupported",
- encap);
+ subsys);
return -1;
}
return offset;
Index: wiretap/nettl.h
===================================================================
--- wiretap/nettl.h (revision 13162)
+++ wiretap/nettl.h (working copy)
@@ -87,6 +87,7 @@
#define NETTL_SUBSYS_INTL100 233
#define NETTL_SUBSYS_IGELAN 252
#define NETTL_SUBSYS_IETHER 253
+#define NETTL_SUBSYS_IXGBE 265
/* FDDI cards */
#define NETTL_SUBSYS_HPPB_FDDI 95
- Prev by Date: Re: [Ethereal-dev] Lost somewhere in the Plugin API ... please bring up the "modern style" API!
- Next by Date: Re: [Ethereal-dev] [patch] conversations demarked by setup frame number
- Previous by thread: [Ethereal-dev] Patch for MPLS Echo
- Next by thread: [Ethereal-dev] Columns on Ethereal
- Index(es):





