-#include <string.h>
-#include <glib.h>
-#include "wiretap/wtap.h"
-
-#define array_length(x) (sizeof x / sizeof x[0])
-
-/* Types of produceable packets */
-enum {
- PKT_ARP,
- PKT_DNS,
- PKT_ETHERNET,
- PKT_FDDI,
- PKT_ICMP,
- PKT_IP,
- PKT_LLC,
- PKT_NBNS,
- PKT_SYSLOG,
- PKT_TCP,
- PKT_TR,
- PKT_UDP,
- PKT_BVLC,
- PKT_NCP2222,
- PKT_GIOP,
- PKT_BGP,
- PKT_TDS
-};
-
-typedef struct {
- char *abbrev;
- char *longname;
- int produceable_type;
- guint8 *sample_buffer;
- int sample_wtap_encap;
- int sample_length;
-} pkt_example;
-
-/* Ethernet, indicating ARP */
-guint8 pkt_arp[] = {
- 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x00, 0x00,
- 0x32, 0x25, 0x0f, 0xff,
- 0x08, 0x06
-};
-
-/* Ethernet+IP+UDP, indicating DNS */
-guint8 pkt_dns[] = {
- 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01,
- 0x08, 0x00,
-
- 0x45, 0x00, 0x00, 0x3c,
- 0xc5, 0x9e, 0x40, 0x00,
- 0xff, 0x11, 0xd7, 0xe0,
- 0xd0, 0x15, 0x02, 0xb8,
- 0x0a, 0x01, 0x01, 0x63,
-
- 0x05, 0xe8, 0x00, 0x35,
- 0x00, 0x00, 0x2a, 0xb9,
- 0x30
-};
-
-/* Ethernet+IP, indicating ICMP */
-guint8 pkt_icmp[] = {
- 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01,
- 0x08, 0x00,
-
- 0x45, 0x00, 0x00, 0x54,
- 0x8f, 0xb3, 0x40, 0x00,
- 0xfd, 0x01, 0x8a, 0x99,
- 0xcc, 0xfc, 0x66, 0x0b,
- 0xce, 0x41, 0x62, 0x12
-};
-
-/* Ethernet, indicating IP */
-guint8 pkt_ip[] = {
- 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01,
- 0x08, 0x00
-};
-
-/* TR, indicating LLC */
-guint8 pkt_llc[] = {
- 0x10, 0x40, 0x68, 0x00,
- 0x19, 0x69, 0x95, 0x8b,
- 0x00, 0x01, 0xfa, 0x68,
- 0xc4, 0x67
-};
-
-/* Ethernet+IP+UDP, indicating NBNS */
-guint8 pkt_nbns[] = {
- 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01,
- 0x08, 0x00,
-
- 0x45, 0x00, 0x00, 0x3c,
- 0xc5, 0x9e, 0x40, 0x00,
- 0xff, 0x11, 0xd7, 0xe0,
- 0xd0, 0x15, 0x02, 0xb8,
- 0x0a, 0x01, 0x01, 0x63,
-
- 0x00, 0x89, 0x00, 0x89,
- 0x00, 0x00, 0x2a, 0xb9,
- 0x30
-};
-
-/* Ethernet+IP+UDP, indicating syslog */
-guint8 pkt_syslog[] = {
- 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01,
- 0x08, 0x00,
-
- 0x45, 0x00, 0x00, 0x64,
- 0x20, 0x48, 0x00, 0x00,
- 0xfc, 0x11, 0xf8, 0x03,
- 0xd0, 0x15, 0x02, 0xb8,
- 0x0a, 0x01, 0x01, 0x63,
-
- 0x05, 0xe8, 0x02, 0x02,
- 0x00, 0x50, 0x51, 0xe1,
- 0x3c
-};
-
-/* TR+LLC+IP, indicating TCP */
-guint8 pkt_tcp[] = {
- 0x10, 0x40, 0x68, 0x00,
- 0x19, 0x69, 0x95, 0x8b,
- 0x00, 0x01, 0xfa, 0x68,
- 0xc4, 0x67,
-
- 0xaa, 0xaa, 0x03, 0x00,
- 0x00, 0x00, 0x08, 0x00,
-
- 0x45, 0x00, 0x00, 0x28,
- 0x0b, 0x0b, 0x40, 0x00,
- 0x20, 0x06, 0x85, 0x37,
- 0xc0, 0xa8, 0x27, 0x01,
- 0xc0, 0xa8, 0x22, 0x3c
-};
-
-/* Ethernet+IP, indicating UDP */
-guint8 pkt_udp[] = {
- 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01,
- 0x08, 0x00,
-
- 0x45, 0x00, 0x00, 0x3c,
- 0xc5, 0x9e, 0x40, 0x00,
- 0xff, 0x11, 0xd7, 0xe0,
- 0xd0, 0x15, 0x02, 0xb8,
- 0x0a, 0x01, 0x01, 0x63
-};
-
-/* Ethernet+IP+UDP, indicating BVLC */
-guint8 pkt_bvlc[] = {
- 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01,
- 0x08, 0x00,
-
- 0x45, 0x00, 0x00, 0x3c,
- 0xc5, 0x9e, 0x40, 0x00,
- 0xff, 0x11, 0x01, 0xaa,
- 0xc1, 0xff, 0x19, 0x1e,
- 0xc1, 0xff, 0x19, 0xff,
- 0xba, 0xc0, 0xba, 0xc0,
- 0x00, 0xff, 0x2d, 0x5e,
- 0x81
-};
-
-/* TR+LLC+IPX, indicating NCP, with NCP Type == 0x2222 */
-guint8 pkt_ncp2222[] = {
- 0x10, 0x40, 0x00, 0x00,
- 0xf6, 0x7c, 0x9b, 0x70,
- 0x68, 0x00, 0x19, 0x69,
- 0x95, 0x8b, 0xe0, 0xe0,
- 0x03, 0xff, 0xff, 0x00,
- 0x25, 0x02, 0x11, 0x00,
- 0x00, 0x74, 0x14, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x04, 0x51, 0x00,
- 0x00, 0x00, 0x04, 0x00,
- 0x02, 0x16, 0x19, 0x7a,
- 0x84, 0x40, 0x01, 0x22,
- 0x22
-};
-
-/* Ethernet+IP+TCP, indicating GIOP */
-guint8 pkt_giop[] = {
- 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01,
- 0x08, 0x00,
-
- 0x45, 0x00, 0x00, 0xa6,
- 0x00, 0x2f, 0x40, 0x00,
- 0x40, 0x06, 0x3c, 0x21,
- 0x7f, 0x00, 0x00, 0x01,
- 0x7f, 0x00, 0x00, 0x01,
-
- 0x30, 0x39, 0x04, 0x05,
- 0xac, 0x02, 0x1e, 0x69,
- 0xab, 0x74, 0xab, 0x64,
- 0x80, 0x18, 0x79, 0x60,
- 0xc4, 0xb8, 0x00, 0x00,
- 0x01, 0x01, 0x08, 0x0a,
- 0x00, 0x00, 0x48, 0xf5,
- 0x00, 0x00, 0x48, 0xf5,
-
- 0x47, 0x49, 0x4f, 0x50,
- 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x30,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01,
- 0x01
-};
-
-/* Ethernet+IP+TCP, indicating BGP */
-guint8 pkt_bgp[] = {
- 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01,
- 0x08, 0x00,
-
- 0x45, 0x00, 0x00, 0xa6,
- 0x00, 0x2f, 0x40, 0x00,
- 0x40, 0x06, 0x3c, 0x21,
- 0x7f, 0x00, 0x00, 0x01,
- 0x7f, 0x00, 0x00, 0x01,
-
- 0x30, 0x39, 0x00, 0xb3,
- 0xac, 0x02, 0x1e, 0x69,
- 0xab, 0x74, 0xab, 0x64,
- 0x80, 0x18, 0x79, 0x60,
- 0xc4, 0xb8, 0x00, 0x00,
- 0x01, 0x01, 0x08, 0x0a,
- 0x00, 0x00, 0x48, 0xf5,
- 0x00, 0x00, 0x48, 0xf5,
-
- 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff,
-};
-
-/* Ethernet+IP+TCP, indicating TDS NetLib */
-guint8 pkt_tds[] = {
- 0x00, 0x50, 0x8b, 0x0d,
- 0x7a, 0xed, 0x00, 0x08,
- 0xa3, 0x98, 0x39, 0x81,
- 0x08, 0x00,
-
- 0x45, 0x00, 0x03, 0x8d,
- 0x90, 0xd4, 0x40, 0x00,
- 0x7c, 0x06, 0xc3, 0x1b,
- 0xac, 0x14, 0x02, 0x22,
- 0x0a, 0xc2, 0xee, 0x82,
-
- 0x05, 0x99, 0x08, 0xf8,
- 0xff, 0x4e, 0x85, 0x46,
- 0xa2, 0xb4, 0x42, 0xaa,
- 0x50, 0x18, 0x3c, 0x28,
- 0x0f, 0xda, 0x00, 0x00,
-};
-
-/* This little data table drives the whole program */
-pkt_example examples[] = {
- { "arp", "Address Resolution Protocol",
- PKT_ARP, pkt_arp, WTAP_ENCAP_ETHERNET, array_length(pkt_arp) },
-
- { "dns", "Domain Name Service",
- PKT_DNS, pkt_dns, WTAP_ENCAP_ETHERNET, array_length(pkt_dns) },
-
- { "eth", "Ethernet",
- PKT_ETHERNET, NULL, WTAP_ENCAP_ETHERNET, 0 },
-
- { "fddi", "Fiber Distributed Data Interface",
- PKT_FDDI, NULL, WTAP_ENCAP_FDDI, 0 },
-
- { "icmp", "Internet Control Message Protocol",
- PKT_ICMP, pkt_icmp, WTAP_ENCAP_ETHERNET, array_length(pkt_icmp) },
-
- { "ip", "Internet Protocol",
- PKT_IP, pkt_ip, WTAP_ENCAP_ETHERNET, array_length(pkt_ip) },
-
- { "llc", "Logical Link Control",
- PKT_LLC, pkt_llc, WTAP_ENCAP_TOKEN_RING, array_length(pkt_llc) },
-
- { "nbns", "NetBIOS-over-TCP Name Service",
- PKT_NBNS, pkt_nbns, WTAP_ENCAP_ETHERNET, array_length(pkt_nbns) },
-
- { "syslog", "Syslog message",
- PKT_SYSLOG, pkt_syslog, WTAP_ENCAP_ETHERNET, array_length(pkt_syslog) },
-
- { "tcp", "Transmission Control Protocol",
- PKT_TCP, pkt_tcp, WTAP_ENCAP_TOKEN_RING, array_length(pkt_tcp) },
-
- { "tr", "Token-Ring",
- PKT_TR, NULL, WTAP_ENCAP_TOKEN_RING, 0 },