1 #ifndef ETTERCAP_PROTO_H 2 #define ETTERCAP_PROTO_H 3 4 #include <ec_inet.h> 5 6 /* interface layer types */ 7 enum { 8 IL_TYPE_NULL = 0x00, /* bsd loopback (used by some wifi cards in monitor mode) */ 9 IL_TYPE_ETH = 0x01, /* ethernet */ 10 IL_TYPE_TR = 0x06, /* token ring */ 11 IL_TYPE_PPP = 0x09, /* PPP */ 12 IL_TYPE_FDDI = 0x0a, /* fiber distributed data interface */ 13 IL_TYPE_RAWIP = 0x0c, /* raw ip dump file */ 14 IL_TYPE_WIFI = 0x69, /* wireless */ 15 IL_TYPE_COOK = 0x71, /* linux cooked */ 16 IL_TYPE_PRISM = 0x77, /* prism2 header for wifi dumps */ 17 IL_TYPE_RADIO = 0x7f, /* radiotap header for wifi dumps */ 18 IL_TYPE_PPI = 0xc0, /* per packet information */ 19 IL_TYPE_ERF = 0xc5, /* ERF endace format */ 20 }; 21 22 /* link layer types */ 23 enum { 24 LL_TYPE_PPP_IP = 0x0021, 25 LL_TYPE_IP = 0x0800, 26 LL_TYPE_ARP = 0x0806, 27 LL_TYPE_VLAN = 0x8100, 28 LL_TYPE_IP6 = 0x86DD, 29 LL_TYPE_PPP = 0x880B, 30 LL_TYPE_PPPOE = 0x8864, 31 LL_TYPE_PAP = 0xc023, 32 LL_TYPE_MPLS = 0x8847, 33 LL_TYPE_8021x = 0x888E 34 }; 35 36 /* network layer types */ 37 enum { 38 NL_TYPE_ICMP = 0x01, 39 NL_TYPE_IPIP = 0x04, 40 NL_TYPE_IP6 = 0x29, 41 NL_TYPE_ESP = 0x32, 42 NL_TYPE_ICMP6 = 0x3a, 43 NL_TYPE_TCP = 0x06, 44 NL_TYPE_UDP = 0x11, 45 NL_TYPE_GRE = 0x2f, 46 NL_TYPE_OSPF = 0x59, 47 NL_TYPE_VRRP = 0x70 48 }; 49 50 /* proto layer types */ 51 enum { 52 PL_DEFAULT = 0x0000, 53 }; 54 55 /* IPv6 options types */ 56 /* NOTE: they may (but should not) conflict with network layer types! */ 57 /* double check new definitions of either types. */ 58 59 enum { 60 LO6_TYPE_HBH = 0, /* Hop-By-Hop */ 61 LO6_TYPE_RT = 0x2b, /* Routing */ 62 LO6_TYPE_FR = 0x2c, /* Fragment */ 63 LO6_TYPE_DST = 0x3c, /* Destination */ 64 LO6_TYPE_NO = 0x3b, /* No Next Header */ 65 }; 66 67 68 /* TCP flags */ 69 enum { 70 TH_FIN = 0x01, 71 TH_SYN = 0x02, 72 TH_RST = 0x04, 73 TH_PSH = 0x08, 74 TH_ACK = 0x10, 75 TH_URG = 0x20, 76 TH_ECE = 0x40, /* rfc 2481/3168 */ 77 TH_CWR = 0x80 /* rfc 2481/3168 */ 78 }; 79 80 /* ICMP types */ 81 enum { 82 ICMP_ECHOREPLY = 0, 83 ICMP_DEST_UNREACH = 3, 84 ICMP_REDIRECT = 5, 85 ICMP_ECHO = 8, 86 ICMP_TIME_EXCEEDED = 11, 87 ICMP_NET_UNREACH = 0, 88 ICMP_HOST_UNREACH = 1, 89 }; 90 91 /* ICMPv6 types */ 92 enum { 93 /* Errors */ 94 ICMP6_DEST_UNREACH = 1, 95 ICMP6_PKT_TOO_BIG = 2, 96 ICMP6_TIME_EXCEEDED = 3, 97 ICMP6_BAD_PARAM = 4, 98 99 /* Info */ 100 ICMP6_ECHO = 128, 101 ICMP6_ECHOREPLY = 129, 102 ICMP6_ROUTER_SOL = 133, 103 ICMP6_ROUTER_ADV = 134, 104 ICMP6_NEIGH_SOL = 135, 105 ICMP6_NEIGH_ADV = 136, 106 }; 107 108 /* DHCP options */ 109 enum { 110 DHCP_MAGIC_COOKIE = 0x63825363, 111 DHCP_DISCOVER = 0x01, 112 DHCP_OFFER = 0x02, 113 DHCP_REQUEST = 0x03, 114 DHCP_ACK = 0x05, 115 DHCP_OPT_NETMASK = 0x01, 116 DHCP_OPT_ROUTER = 0x03, 117 DHCP_OPT_DNS = 0x06, 118 DHCP_OPT_DOMAIN = 0x0f, 119 DHCP_OPT_RQ_ADDR = 0x32, 120 DHCP_OPT_LEASE_TIME = 0x33, 121 DHCP_OPT_MSG_TYPE = 0x35, 122 DHCP_OPT_SRV_ADDR = 0x36, 123 DHCP_OPT_RENEW_TIME = 0x3a, 124 DHCP_OPT_CLI_IDENT = 0x3d, 125 DHCP_OPT_FQDN = 0x51, 126 DHCP_OPT_END = 0xff, 127 DHCP_OPT_MIN_LEN = 0x12c, 128 }; 129 130 #endif 131 132 /* EOF */ 133 134 // vim:ts=3:expandtab 135 136