| version 1.2.2.2, 1999/07/01 23:48:28 |
version 1.2.2.3, 1999/08/02 22:36:05 |
|
|
| |
/* $NetBSD$ */ |
| |
|
| /* |
/* |
| * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. |
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. |
| * All rights reserved. |
* All rights reserved. |
|
|
| #endif |
#endif |
| #if (defined(__FreeBSD__) && __FreeBSD__ >= 3) || defined(__NetBSD__) |
#if (defined(__FreeBSD__) && __FreeBSD__ >= 3) || defined(__NetBSD__) |
| #include "opt_inet.h" |
#include "opt_inet.h" |
| |
#ifdef __NetBSD__ /*XXX*/ |
| |
#include "opt_ipsec.h" |
| |
#endif |
| #endif |
#endif |
| |
|
| #include <sys/param.h> |
#include <sys/param.h> |
| Line 141 struct ip6stat ip6stat; |
|
| Line 146 struct ip6stat ip6stat; |
|
| |
|
| static void ip6_init2 __P((void *)); |
static void ip6_init2 __P((void *)); |
| |
|
| static int ip6_hopopts_input __P((u_int32_t *, long *, struct mbuf **, int *)); |
static int ip6_hopopts_input __P((u_int32_t *, u_int32_t *, struct mbuf **, int *)); |
| |
|
| /* |
/* |
| * IP6 initialization: fill in IP6 protocol switch table. |
* IP6 initialization: fill in IP6 protocol switch table. |
|
|
| register struct ip6_hdr *ip6; |
register struct ip6_hdr *ip6; |
| int off = sizeof(struct ip6_hdr), nest; |
int off = sizeof(struct ip6_hdr), nest; |
| u_int32_t plen; |
u_int32_t plen; |
| long rtalert = -1; |
u_int32_t rtalert = ~0; |
| int nxt, ours = 0; |
int nxt, ours = 0; |
| |
|
| #ifdef IPSEC |
#ifdef IPSEC |
|
|
| * accept the packet if a router alert option is included |
* accept the packet if a router alert option is included |
| * and we act as an IPv6 router. |
* and we act as an IPv6 router. |
| */ |
*/ |
| if (rtalert >= 0 && ip6_forwarding) |
if (rtalert != ~0 && ip6_forwarding) |
| ours = 1; |
ours = 1; |
| } else |
} else |
| nxt = ip6->ip6_nxt; |
nxt = ip6->ip6_nxt; |
|
|
| static int |
static int |
| ip6_hopopts_input(plenp, rtalertp, mp, offp) |
ip6_hopopts_input(plenp, rtalertp, mp, offp) |
| u_int32_t *plenp; |
u_int32_t *plenp; |
| long *rtalertp; /* XXX: should be stored more smart way */ |
u_int32_t *rtalertp; /* XXX: should be stored more smart way */ |
| struct mbuf **mp; |
struct mbuf **mp; |
| int *offp; |
int *offp; |
| { |
{ |
| Line 563 ip6_process_hopopts(m, opthead, hbhlen, |
|
| Line 568 ip6_process_hopopts(m, opthead, hbhlen, |
|
| struct mbuf *m; |
struct mbuf *m; |
| u_int8_t *opthead; |
u_int8_t *opthead; |
| int hbhlen; |
int hbhlen; |
| long *rtalertp; |
u_int32_t *rtalertp; |
| u_int32_t *plenp; |
u_int32_t *plenp; |
| { |
{ |
| struct ip6_hdr *ip6; |
struct ip6_hdr *ip6; |