
#include "xrmonwatch.h" 

struct TABLE *ether_addrs;
struct TABLE *ether_types;
struct TABLE *ether_mcasts;
struct PART  *parts;


/*
 * packet & packet field indices 
 */

short R_RMONIndex;
short R_Ethernet;
short R_EthernetType;
short R_EthernetLength;
short R_EthernetSrcAddress;
short R_EthernetSrcVendor;
short R_EthernetDstAddress;
short R_EthernetDstVendor;
short R_EthernetMulticast;
short R_EthernetVersion;
short R_EthernetNull;
short R_LLC;
short R_LLCDstAddress;
short R_LLCSrcAddress;
short R_LLCSrcAddrDesig;
short R_LLCDstAddrDesig;
short R_LLCCRIdentifier;
short R_LLCType;
short R_LLCClass;
short R_LLCFormat;
short R_LLCPFBit;
short R_LLCSendSequence;
short R_LLCRecvSequence;
short R_LLCSupervisoryBit;
short R_LLCCommand;
short R_LLCInformation;
short R_SNAP;
short R_SNAPAddress;
short R_SNAPNull;
short R_ARP;
short R_ARPSrcPhysicalAddress;
short R_ARPTargetPhysicalAddress;
short R_ARPSrcProtocolAddress;
short R_ARPSrcName;
short R_ARPTargetProtocolAddress;
short R_ARPTargetName;
short R_IP;
short R_IPVersion;
short R_IPHeaderLength;
short R_IPType;
short R_IPLength;
short R_IPFlags;
short R_IPFragmentOffset;
short R_IPIdentification;
short R_IPTTL;
short R_IPProtocol;
short R_IPChecksum;
short R_IPSrcAddress;
short R_IPSrcName;
short R_IPDstAddress;
short R_IPDstName;
short R_ICMP;
short R_ICMPType;
short R_ICMPCode;
short R_ICMPChecksum;
short R_ICMPIPHeader;
short R_ICMPPointer;
short R_ICMPGateway;
short R_ICMPIdentifier;
short R_ICMPSequence;
short R_ICMPOriginateTimestamp;
short R_ICMPReceiveTimestamp;
short R_ICMPTransmitTimestamp;
short R_ICMPData;
short R_RVD;
short R_RVDType;
short R_RVDVersion;
short R_RVDDrive;
short R_RVDIdentifier;
short R_RVDIndex;
short R_RVDChecksum;
short R_UDP;
short R_UDPChecksum;
short R_UDPLength;
short R_UDPSrcPort;
short R_UDPSrcPortName;
short R_UDPDstPort;
short R_UDPDstPortName;
#ifdef ZEPHYR
short R_Zephyr;
short R_ZPacket;
short R_ZVersion;
short R_ZKind;
short R_ZSender;
short R_ZRecipient;
short R_ZClass;
short R_ZInstance;
short R_ZOpcode;
short R_ZNull;
#endif /* ZEPHYR */
short R_TCP;
short R_TCPChecksum;
short R_TCPAck;
short R_TCPSequence;
short R_TCPWindow;
short R_TCPOffset;
short R_TCPUrgent;
short R_TCPSrcPort;
short R_TCPSrcPortName;
short R_TCPDstPort;
short R_TCPDstPortName;
short R_TCPFlags;
short R_TCPNull;
short R_Blank;
short R_AARP;
short R_AARPType;
short R_AARPNull;
short R_AARPHardwareType;
short R_AARPProtocolType;
short R_AARPHardwareLength;
short R_AARPProtocolLength;
short R_AARPSrcHardwareAddress;
short R_AARPSrcProtocolAddress;
short R_AARPDstHardwareAddress;
short R_AARPDstProtocolAddress;
short R_DDP;
short R_DDPLength;
short R_DDPHopCount;
short R_DDPType;
short R_DDPChecksum;
short R_DDPSrcNetwork;
short R_DDPDstNetwork;
short R_DDPSrcNode;
short R_DDPDstNode;
short R_DDPSrcSocket;
short R_DDPDstSocket;
short R_DDPSrcName;
short R_DDPDstName;
short R_DDPSrcType;
short R_DDPDstType;
short R_DDPSrcZone;
short R_DDPDstZone;
short R_RTMP;
short R_RTMPFunction;
short R_RTMPSrcNetwork;
short R_RTMPSrcNodeLength;
short R_RTMPSrcNode;
short R_RTMPRangeStart;
short R_RTMPRangeEnd;
short R_RTMPDistance;
short R_RTMPVersion;
short R_RTMPNetwork;
short R_RTMPHops;
short R_RTMPNull;
short R_AEP;
short R_AEPType;
short R_AEPNull;
short R_NBP;
short R_NBPType;
short R_NBPIdentification;
short R_NBPTupleCount;
short R_NBPNetwork;
short R_NBPNode;
short R_NBPSocket;
short R_NBPEnumerator;
short R_NBPObjectLength;
short R_NBPObjectEntity;
short R_NBPTypeLength;
short R_NBPTypeEntity;
short R_NBPZoneLength;
short R_NBPZoneEntity;
short R_NBPNull;
short R_ZIP;
short R_ZIPType;
short R_ZIPNetworkCount;
short R_ZIPNetwork;
short R_ZIPZoneLength;
short R_ZIPZone;
short R_ZIPNull;
short R_ADSP;
short R_ADSPConnId;
short R_ADSPFirstSeq;
short R_ADSPNextSeq;
short R_ADSPWindow;
short R_ADSPDescriptor;
short R_ADSPControlCode;
short R_LOOP;
short R_CHAOS;
short R_DECNET;
short R_MOP;
short R_XNS;


struct PIECE pieces[] = 
{
  {"Home",              0,               0},
  {"dpyRMONIndex",      0,               &R_RMONIndex},
  {"dpyEther",          0,               &R_Ethernet},
  {"dpyEtherType",      &R_Ethernet,     &R_EthernetType},
  {"dpyEtherLen",       &R_Ethernet,     &R_EthernetLength},
  {"dpyEtherSrcAddr",   &R_Ethernet,     &R_EthernetSrcAddress},
  {"dpyEtherSrcVendor", &R_Ethernet,     &R_EthernetSrcVendor},
  {"dpyEtherDstAddr",   &R_Ethernet,     &R_EthernetDstAddress},
  {"dpyEtherDstVendor", &R_Ethernet,     &R_EthernetDstVendor},
  {"dpyEtherMCast",     &R_Ethernet,     &R_EthernetMulticast},
  {"dpyEtherVersion",   &R_Ethernet,     &R_EthernetVersion},
  {"dpyEmpty",          &R_Ethernet,     &R_EthernetNull},
  {"dpyLLC",            &R_Ethernet,     &R_LLC},
  {"dpyLLCDstAddr",     &R_LLC,          &R_LLCDstAddress},
  {"dpyLLCSrcAddr",     &R_LLC,          &R_LLCSrcAddress},
  {"dpyLLCSrcAddrDes",  &R_LLC,          &R_LLCSrcAddrDesig},
  {"dpyLLCDstAddrDes",  &R_LLC,          &R_LLCDstAddrDesig},
  {"dpyLLCIdent",       &R_LLC,          &R_LLCCRIdentifier},
  {"dpyLLCType",        &R_LLC,          &R_LLCType},
  {"dpyLLCClass",       &R_LLC,          &R_LLCClass},
  {"dpyLLCFormat",      &R_LLC,          &R_LLCFormat},
  {"dpyLLCPFBit",       &R_LLC,          &R_LLCPFBit},
  {"dpyLLCSendSeq",     &R_LLC,          &R_LLCSendSequence},
  {"dpyLLCRecvSeq",     &R_LLC,          &R_LLCRecvSequence},
  {"dpyLLCSupervise",   &R_LLC,          &R_LLCSupervisoryBit},
  {"dpyLLCCommand",     &R_LLC,          &R_LLCCommand},
  {"dpyLLCInfo",        &R_LLC,          &R_LLCInformation},
  {"dpySNAP",           &R_LLC,          &R_SNAP},
  {"dpySNAPAddr",       &R_SNAP,         &R_SNAPAddress},
  {"dpyEmpty",          &R_SNAP,         &R_SNAPNull},
  {"dpyARP",            &R_Ethernet,     &R_ARP},
  {"dpyARPSrcHAddr",    &R_ARP,          &R_ARPSrcPhysicalAddress},
  {"dpyARPDstHAddr",    &R_ARP,          &R_ARPTargetPhysicalAddress},
  {"dpyARPSrcPAddr",    &R_ARP,          &R_ARPSrcProtocolAddress},
  {"dpyARPSrcName",     &R_ARP,          &R_ARPSrcName},
  {"dpyARPDstPAddr",    &R_ARP,          &R_ARPTargetProtocolAddress},
  {"dpyARPDstName",     &R_ARP,          &R_ARPTargetName},
  {"dpyIP",             &R_Ethernet,     &R_IP},
  {"dpyIPVersion",      &R_IP,           &R_IPVersion},
  {"dpyIPIHL",          &R_IP,           &R_IPHeaderLength},
  {"dpyIPType",         &R_IP,           &R_IPType},
  {"dpyIPLen",          &R_IP,           &R_IPLength},
  {"dpyIPFlags",        &R_IP,           &R_IPFlags},
  {"dpyIPFragOffset",   &R_IP,           &R_IPFragmentOffset},
  {"dpyIPIdent",        &R_IP,           &R_IPIdentification},
  {"dpyIPTTL",          &R_IP,           &R_IPTTL},
  {"dpyIPProto",        &R_IP,           &R_IPProtocol},
  {"dpyIPXSum",         &R_IP,           &R_IPChecksum},
  {"dpyIPSrcAddr",      &R_IP,           &R_IPSrcAddress},
  {"dpyIPSrcName",      &R_IP,           &R_IPSrcName},
  {"dpyIPDstAddr",      &R_IP,           &R_IPDstAddress},
  {"dpyIPDstName",      &R_IP,           &R_IPDstName},
  {"dpyICMP",           &R_IP,           &R_ICMP},
  {"dpyICMPType",       &R_ICMP,         &R_ICMPType},
  {"dpyICMPCode",       &R_ICMP,         &R_ICMPCode},
  {"dpyICMPXSum",       &R_ICMP,         &R_ICMPChecksum},
  {"dpyICMPIPData",     &R_ICMP,         &R_ICMPIPHeader},
  {"dpyICMPPtr",        &R_ICMP,         &R_ICMPPointer},
  {"dpyICMPGw",         &R_ICMP,         &R_ICMPGateway},
  {"dpyICMPIdent",      &R_ICMP,         &R_ICMPIdentifier},
  {"dpyICMPSeq",        &R_ICMP,         &R_ICMPSequence},
  {"dpyICMPTimeOrig",   &R_ICMP,         &R_ICMPOriginateTimestamp},
  {"dpyICMPTimeRecv",   &R_ICMP,         &R_ICMPReceiveTimestamp},
  {"dpyICMPTimeTrans",  &R_ICMP,         &R_ICMPTransmitTimestamp},
  {"dpyICMPData",       &R_ICMP,         &R_ICMPData},
  {"dpyRVD",            &R_IP,           &R_RVD},
  {"dpyRVDType",        &R_RVD,          &R_RVDType},
  {"dpyRVDVersion",     &R_RVD,          &R_RVDVersion},
  {"dpyRVDDrive",       &R_RVD,          &R_RVDDrive},
  {"dpyRVDIdent",       &R_RVD,          &R_RVDIdentifier},
  {"dpyRVDIndex",       &R_RVD,          &R_RVDIndex},
  {"dpyRVDXSum",        &R_RVD,          &R_RVDChecksum},
  {"dpyUDP",            &R_IP,           &R_UDP},
  {"dpyUDPXSum",        &R_UDP,          &R_UDPChecksum},
  {"dpyUDPLen",         &R_UDP,          &R_UDPLength},
  {"dpyUDPSrcPort",     &R_UDP,          &R_UDPSrcPort},
  {"dpyUDPSrcPortName", &R_UDP,          &R_UDPSrcPortName},
  {"dpyUDPDstPort",     &R_UDP,          &R_UDPDstPort},
  {"dpyUDPDstPortName", &R_UDP,          &R_UDPDstPortName},
#ifdef ZEPHYR
  {"dpyZephyr",         &R_UDP,          &R_Zephyr},
  {"dpyZPacket",        &R_Zephyr,       &R_ZPacket},
  {"dpyZVersion",       &R_Zephyr,       &R_ZVersion},
  {"dpyZKind",          &R_Zephyr,       &R_ZKind},
  {"dpyZSender",        &R_Zephyr,       &R_ZSender},
  {"dpyZRecipient",     &R_Zephyr,       &R_ZRecipient},
  {"dpyZClass",         &R_Zephyr,       &R_ZClass},
  {"dpyZInstance",      &R_Zephyr,       &R_ZInstance},
  {"dpyZOpcode",        &R_Zephyr,       &R_ZOpcode},
  {"dpyZNull",          &R_Zephyr,       &R_ZNull},
#endif /* ZEPHYR */
  {"dpyTCP",            &R_IP,           &R_TCP},
  {"dpyTCPXSum",        &R_TCP,          &R_TCPChecksum},
  {"dpyTCPAck",         &R_TCP,          &R_TCPAck},
  {"dpyTCPSeq",         &R_TCP,          &R_TCPSequence},
  {"dpyTCPWindow",      &R_TCP,          &R_TCPWindow},
  {"dpyTCPOffset",      &R_TCP,          &R_TCPOffset},
  {"dpyTCPUrgent",      &R_TCP,          &R_TCPUrgent},
  {"dpyTCPSrcPort",     &R_TCP,          &R_TCPSrcPort}, 
  {"dpyTCPSrcPortName", &R_TCP,          &R_TCPSrcPortName}, 
  {"dpyTCPDstPort",     &R_TCP,          &R_TCPDstPort},
  {"dpyTCPDstPortName", &R_TCP,          &R_TCPDstPortName},
  {"dpyTCPFlags",       &R_TCP,          &R_TCPFlags},
  {"dpyTCPNull",        &R_TCP,          &R_TCPNull},
  {"foo",               0,               0},
  {"dpyAARP",           &R_LLC,          &R_AARP},
  {"dpyAARPType",       &R_AARP,         &R_AARPType},
  {"dpyAARPNull",       &R_AARP,         &R_AARPNull},
  {"dpyAARPHType",      &R_AARP,         &R_AARPHardwareType},
  {"dpyAARPPType",      &R_AARP,         &R_AARPProtocolType},
  {"dpyAARPHLength",    &R_AARP,         &R_AARPHardwareLength},
  {"dpyAARPPLength",    &R_AARP,         &R_AARPProtocolLength},
  {"dpyAARPSrcHAddr",   &R_AARP,         &R_AARPSrcHardwareAddress},
  {"dpyAARPSrcPAddr",   &R_AARP,         &R_AARPSrcProtocolAddress},
  {"dpyAARPDstHAddr",   &R_AARP,         &R_AARPDstHardwareAddress},
  {"dpyAARPDstPAddr",   &R_AARP,         &R_AARPDstProtocolAddress},
  {"dpyDDP",            &R_LLC,          &R_DDP},
  {"dpyDDPLength",      &R_DDP,          &R_DDPLength},
  {"dpyDDPHop",         &R_DDP,          &R_DDPHopCount},
  {"dpyDDPType",        &R_DDP,          &R_DDPType},
  {"dpyDDPXSum",        &R_DDP,          &R_DDPChecksum},
  {"dpyDDPSrcNet",      &R_DDP,          &R_DDPSrcNetwork},
  {"dpyDDPDstNet",      &R_DDP,          &R_DDPDstNetwork},
  {"dpyDDPSrcNode",     &R_DDP,          &R_DDPSrcNode},
  {"dpyDDPDstNode",     &R_DDP,          &R_DDPDstNode},
  {"dpyDDPSrcSocket",   &R_DDP,          &R_DDPSrcSocket},
  {"dpyDDPDstSocket",   &R_DDP,          &R_DDPDstSocket},
  {"dpyDDPSrcName",     &R_DDP,          &R_DDPSrcName},
  {"dpyDDPDstName",     &R_DDP,          &R_DDPDstName},
  {"dpyDDPSrcType",     &R_DDP,          &R_DDPSrcType},
  {"dpyDDPDstType",     &R_DDP,          &R_DDPDstType},
  {"dpyDDPSrcZone",     &R_DDP,          &R_DDPSrcZone},
  {"dpyDDPDstZone",     &R_DDP,          &R_DDPDstZone},
  {"dpyRTMP",           &R_DDP,          &R_RTMP},
  {"dpyRTMPFunc",       &R_RTMP,         &R_RTMPFunction},
  {"dpyRTMPSrcNet",     &R_RTMP,         &R_RTMPSrcNetwork},
  {"dpyRTMPSrcNodeLen", &R_RTMP,         &R_RTMPSrcNodeLength},
  {"dpyRTMPSrcNode",    &R_RTMP,         &R_RTMPSrcNode},
  {"dpyRTMPRangeStart", &R_RTMP,         &R_RTMPRangeStart},
  {"dpyRTMPRangeEnd",   &R_RTMP,         &R_RTMPRangeEnd},
  {"dpyRTMPDistance",   &R_RTMP,         &R_RTMPDistance},
  {"dpyRTMPVersion",    &R_RTMP,         &R_RTMPVersion},
  {"dpyRTMPNet",        &R_RTMP,         &R_RTMPNetwork},
  {"dpyRTMPHops",       &R_RTMP,         &R_RTMPHops},
  {"dpyEmpty",          &R_RTMP,         &R_RTMPNull},
  {"dpyAEP",            &R_DDP,          &R_AEP},
  {"dpyAEPType",        &R_AEP,          &R_AEPType},
  {"dpyEmpty",          &R_AEP,          &R_AEPNull},
  {"dpyNBP",            &R_DDP,          &R_NBP},
  {"dpyNBPType",        &R_NBP,          &R_NBPType},
  {"dpyNBPId",          &R_NBP,          &R_NBPIdentification},
  {"dpyNBPTuples",      &R_NBP,          &R_NBPTupleCount},
  {"dpyNBPNet",         &R_NBP,          &R_NBPNetwork},
  {"dpyNBPNode",        &R_NBP,          &R_NBPNode},
  {"dpyNBPSocket",      &R_NBP,          &R_NBPSocket},
  {"dpyNBPEnum",        &R_NBP,          &R_NBPEnumerator},
  {"dpyNBPObjectLen",   &R_NBP,          &R_NBPObjectLength},
  {"dpyNBPObject",      &R_NBP,          &R_NBPObjectEntity},
  {"dpyNBPTypeLen",     &R_NBP,          &R_NBPTypeLength},
  {"dpyNBPTypeS",       &R_NBP,          &R_NBPTypeEntity},
  {"dpyNBPZoneLen",     &R_NBP,          &R_NBPZoneLength},
  {"dpyNBPZone",        &R_NBP,          &R_NBPZoneEntity},
  {"dpyEmpty",          &R_NBP,          &R_NBPNull},
  {"dpyZIP",            &R_DDP,          &R_ZIP},
  {"dpyZIPType",        &R_ZIP,          &R_ZIPType},
  {"dpyZIPNetworkCount",&R_ZIP,          &R_ZIPNetworkCount},
  {"dpyZIPNetwork",     &R_ZIP,          &R_ZIPNetwork},
  {"dpyZIPZoneLength",  &R_ZIP,          &R_ZIPZoneLength},
  {"dpyZIPZone",        &R_ZIP,          &R_ZIPZone},
  {"dpyEmpty",          &R_ZIP,          &R_ZIPNull},
  {"dpyADSP",           &R_DDP,          &R_ADSP},
  {"dpyADSPConnId",     &R_ADSP,         &R_ADSPConnId},
  {"dpyADSPFirstSeq",   &R_ADSP,         &R_ADSPFirstSeq},
  {"dpyADSPNextSeq",    &R_ADSP,         &R_ADSPNextSeq},
  {"dpyADSPWindow",     &R_ADSP,         &R_ADSPWindow},
  {"dpyADSPDescriptor", &R_ADSP,         &R_ADSPDescriptor},
  {"dpyADSPControlCode",&R_ADSP,         &R_ADSPControlCode},
  {"dpyLOOP",           &R_Ethernet,     &R_LOOP},
  {"dpyCHAOS",          &R_Ethernet,     &R_CHAOS},
  {"dpyDECnet",         &R_Ethernet,     &R_DECNET},
  {"dpyMOP",            &R_Ethernet,     &R_MOP},
  {"dpyXNS",            &R_Ethernet,     &R_XNS},
  {(char *) NULL,       0,              0},
};					
					
					
					
					
					
					
					
					
