<http://www.sics.se/~assar/tcpdump_patches/1>
From: Assar Westerlund <
[email protected]>
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * @(#) $Header: /tcpdump/master/libpcap/ethertype.h,v 1.6 1999-10-07 23:46:40 mcr Exp $ (LBL)
+ * @(#) $Header: /tcpdump/master/libpcap/ethertype.h,v 1.7 1999-10-30 04:30:13 itojun Exp $ (LBL)
*/
/* Types missing from some systems */
*/
/* Types missing from some systems */
#ifndef ETHERTYPE_AARP
#define ETHERTYPE_AARP 0x80f3
#endif
#ifndef ETHERTYPE_AARP
#define ETHERTYPE_AARP 0x80f3
#endif
+#ifndef ETHERTYPE_IPV6
+#define ETHERTYPE_IPV6 0x80f3
+#endif
#ifndef ETHERTYPE_LOOPBACK
#define ETHERTYPE_LOOPBACK 0x9000
#endif
#ifndef ETHERTYPE_LOOPBACK
#define ETHERTYPE_LOOPBACK 0x9000
#endif
*/
#ifndef lint
static const char rcsid[] =
*/
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/libpcap/gencode.c,v 1.95 1999-10-19 15:18:29 itojun Exp $ (LBL)";
+ "@(#) $Header: /tcpdump/master/libpcap/gencode.c,v 1.96 1999-10-30 04:30:14 itojun Exp $ (LBL)";
#endif
#include <sys/types.h>
#endif
#include <sys/types.h>
#ifdef INET6
else if (proto == ETHERTYPE_IPV6)
proto = PPP_IPV6;
#ifdef INET6
else if (proto == ETHERTYPE_IPV6)
proto = PPP_IPV6;
break;
case DLT_PPP_BSDOS:
break;
case DLT_PPP_BSDOS:
proto = PPP_IPV6;
/* more to go? */
break;
proto = PPP_IPV6;
/* more to go? */
break;
case ETHERTYPE_DN:
proto = PPP_DECNET;
case ETHERTYPE_DN:
proto = PPP_DECNET;
#ifdef INET6
else if (proto == ETHERTYPE_IPV6)
return (gen_cmp(0, BPF_W, (bpf_int32)htonl(AF_INET6)));
#ifdef INET6
else if (proto == ETHERTYPE_IPV6)
return (gen_cmp(0, BPF_W, (bpf_int32)htonl(AF_INET6)));
else
return gen_false();
}
else
return gen_false();
}
+#ifndef IPPROTO_PIM
+#define IPPROTO_PIM 103
+#endif
+
case Q_PIM:
b1 = gen_proto(IPPROTO_PIM, Q_IP, Q_DEFAULT);
#ifdef INET6
case Q_PIM:
b1 = gen_proto(IPPROTO_PIM, Q_IP, Q_DEFAULT);
#ifdef INET6
s[i]->s.k = off_nl;
i++;
break;
s[i]->s.k = off_nl;
i++;
break;
case Q_IPV6:
b0 = gen_linktype(ETHERTYPE_IPV6);
case Q_IPV6:
b0 = gen_linktype(ETHERTYPE_IPV6);
s[i]->s.k = 40;
i++;
break;
s[i]->s.k = 40;
i++;
break;
default:
bpf_error("unsupported proto to gen_protochain");
/*NOTREACHED*/
default:
bpf_error("unsupported proto to gen_protochain");
/*NOTREACHED*/
if (proto == Q_IPV6) {
int v6start, v6end, v6advance, j;
if (proto == Q_IPV6) {
int v6start, v6end, v6advance, j;
/* fixup */
for (j = v6start; j <= v6end; j++)
s[j]->s.jt = s[v6advance];
/* fixup */
for (j = v6start; j <= v6end; j++)
s[j]->s.jt = s[v6advance];
/* nop */
s[i] = new_stmt(BPF_ALU|BPF_ADD|BPF_K);
s[i]->s.k = 0;
/* nop */
s[i] = new_stmt(BPF_ALU|BPF_ADD|BPF_K);
s[i]->s.k = 0;