sync with OpenBSD -current
This commit is contained in:
parent
7a404394cf
commit
1bc98b3538
54 changed files with 733 additions and 467 deletions
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: ip6_output.c,v 1.279 2023/07/07 08:05:02 bluhm Exp $ */
|
||||
/* $OpenBSD: ip6_output.c,v 1.280 2023/11/26 22:08:10 bluhm Exp $ */
|
||||
/* $KAME: ip6_output.c,v 1.172 2001/03/25 09:55:56 itojun Exp $ */
|
||||
|
||||
/*
|
||||
|
@ -161,7 +161,7 @@ struct idgen32_ctx ip6_id_ctx;
|
|||
*/
|
||||
int
|
||||
ip6_output(struct mbuf *m, struct ip6_pktopts *opt, struct route_in6 *ro,
|
||||
int flags, struct ip6_moptions *im6o, struct inpcb *inp)
|
||||
int flags, struct ip6_moptions *im6o, const u_char seclevel[])
|
||||
{
|
||||
struct ip6_hdr *ip6;
|
||||
struct ifnet *ifp = NULL;
|
||||
|
@ -185,11 +185,6 @@ ip6_output(struct mbuf *m, struct ip6_pktopts *opt, struct route_in6 *ro,
|
|||
struct tdb *tdb = NULL;
|
||||
#endif /* IPSEC */
|
||||
|
||||
#ifdef IPSEC
|
||||
if (inp && (inp->inp_flags & INP_IPV6) == 0)
|
||||
panic("%s: IPv4 pcb is passed", __func__);
|
||||
#endif /* IPSEC */
|
||||
|
||||
ip6 = mtod(m, struct ip6_hdr *);
|
||||
finaldst = ip6->ip6_dst;
|
||||
|
||||
|
@ -218,8 +213,8 @@ ip6_output(struct mbuf *m, struct ip6_pktopts *opt, struct route_in6 *ro,
|
|||
}
|
||||
|
||||
#ifdef IPSEC
|
||||
if (ipsec_in_use || inp != NULL) {
|
||||
error = ip6_output_ipsec_lookup(m, inp, &tdb);
|
||||
if (ipsec_in_use || seclevel != NULL) {
|
||||
error = ip6_output_ipsec_lookup(m, seclevel, &tdb);
|
||||
if (error) {
|
||||
/*
|
||||
* -EINVAL is used to indicate that the packet should
|
||||
|
@ -2751,7 +2746,8 @@ in6_proto_cksum_out(struct mbuf *m, struct ifnet *ifp)
|
|||
|
||||
#ifdef IPSEC
|
||||
int
|
||||
ip6_output_ipsec_lookup(struct mbuf *m, struct inpcb *inp, struct tdb **tdbout)
|
||||
ip6_output_ipsec_lookup(struct mbuf *m, const u_char seclevel[],
|
||||
struct tdb **tdbout)
|
||||
{
|
||||
struct tdb *tdb;
|
||||
struct m_tag *mtag;
|
||||
|
@ -2765,7 +2761,7 @@ ip6_output_ipsec_lookup(struct mbuf *m, struct inpcb *inp, struct tdb **tdbout)
|
|||
|
||||
/* Do we have any pending SAs to apply ? */
|
||||
error = ipsp_spd_lookup(m, AF_INET6, sizeof(struct ip6_hdr),
|
||||
IPSP_DIRECTION_OUT, NULL, inp, &tdb, NULL);
|
||||
IPSP_DIRECTION_OUT, NULL, seclevel, &tdb, NULL);
|
||||
if (error || tdb == NULL) {
|
||||
*tdbout = NULL;
|
||||
return error;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: ip6_var.h,v 1.106 2022/11/12 02:49:34 kn Exp $ */
|
||||
/* $OpenBSD: ip6_var.h,v 1.107 2023/11/26 22:08:10 bluhm Exp $ */
|
||||
/* $KAME: ip6_var.h,v 1.33 2000/06/11 14:59:20 jinmei Exp $ */
|
||||
|
||||
/*
|
||||
|
@ -325,7 +325,7 @@ void ip6_forward(struct mbuf *, struct rtentry *, int);
|
|||
|
||||
void ip6_mloopback(struct ifnet *, struct mbuf *, struct sockaddr_in6 *);
|
||||
int ip6_output(struct mbuf *, struct ip6_pktopts *, struct route_in6 *, int,
|
||||
struct ip6_moptions *, struct inpcb *);
|
||||
struct ip6_moptions *, const u_char[]);
|
||||
int ip6_fragment(struct mbuf *, struct mbuf_list *, int, u_char, u_long);
|
||||
int ip6_ctloutput(int, struct socket *, int, int, struct mbuf *);
|
||||
int ip6_raw_ctloutput(int, struct socket *, int, int, struct mbuf *);
|
||||
|
@ -376,7 +376,7 @@ u_int32_t ip6_randomflowlabel(void);
|
|||
|
||||
#ifdef IPSEC
|
||||
struct tdb;
|
||||
int ip6_output_ipsec_lookup(struct mbuf *, struct inpcb *, struct tdb **);
|
||||
int ip6_output_ipsec_lookup(struct mbuf *, const u_char[], struct tdb **);
|
||||
int ip6_output_ipsec_send(struct tdb *, struct mbuf *, struct route_in6 *,
|
||||
int, int);
|
||||
#endif /* IPSEC */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: raw_ip6.c,v 1.173 2023/09/16 09:33:27 mpi Exp $ */
|
||||
/* $OpenBSD: raw_ip6.c,v 1.174 2023/11/26 22:08:10 bluhm Exp $ */
|
||||
/* $KAME: raw_ip6.c,v 1.69 2001/03/04 15:55:44 itojun Exp $ */
|
||||
|
||||
/*
|
||||
|
@ -514,7 +514,7 @@ rip6_output(struct mbuf *m, struct socket *so, struct sockaddr *dstaddr,
|
|||
#endif
|
||||
|
||||
error = ip6_output(m, optp, &in6p->inp_route6, flags,
|
||||
in6p->inp_moptions6, in6p);
|
||||
in6p->inp_moptions6, in6p->inp_seclevel);
|
||||
if (so->so_proto->pr_protocol == IPPROTO_ICMPV6) {
|
||||
icmp6stat_inc(icp6s_outhist + type);
|
||||
} else
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: udp6_output.c,v 1.59 2022/02/22 01:35:41 guenther Exp $ */
|
||||
/* $OpenBSD: udp6_output.c,v 1.60 2023/11/26 22:08:10 bluhm Exp $ */
|
||||
/* $KAME: udp6_output.c,v 1.21 2001/02/07 11:51:54 itojun Exp $ */
|
||||
|
||||
/*
|
||||
|
@ -232,7 +232,7 @@ udp6_output(struct inpcb *in6p, struct mbuf *m, struct mbuf *addr6,
|
|||
#endif
|
||||
|
||||
error = ip6_output(m, optp, &in6p->inp_route6,
|
||||
flags, in6p->inp_moptions6, in6p);
|
||||
flags, in6p->inp_moptions6, in6p->inp_seclevel);
|
||||
goto releaseopt;
|
||||
|
||||
release:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue