Module Name: src Committed By: ozaki-r Date: Fri Mar 3 07:13:06 UTC 2017
Modified Files: src/sys/netinet: dccp_usrreq.c ip_output.c ip_var.h raw_ip.c sctp_output.c tcp_input.c tcp_output.c tcp_subr.c udp_usrreq.c src/sys/netinet6: ip6_output.c ip6_var.h raw_ip6.c udp6_output.c src/sys/netipsec: ipsec.c ipsec.h ipsec6.h Log Message: Pass inpcb/in6pcb instead of socket to ip_output/ip6_output - Passing a socket to Layer 3 is layer violation and even unnecessary - The change makes codes of callers and IPsec a bit simple To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/netinet/dccp_usrreq.c cvs rdiff -u -r1.274 -r1.275 src/sys/netinet/ip_output.c cvs rdiff -u -r1.117 -r1.118 src/sys/netinet/ip_var.h cvs rdiff -u -r1.162 -r1.163 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.9 -r1.10 src/sys/netinet/sctp_output.c cvs rdiff -u -r1.354 -r1.355 src/sys/netinet/tcp_input.c cvs rdiff -u -r1.194 -r1.195 src/sys/netinet/tcp_output.c cvs rdiff -u -r1.269 -r1.270 src/sys/netinet/tcp_subr.c cvs rdiff -u -r1.230 -r1.231 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.190 -r1.191 src/sys/netinet6/ip6_output.c cvs rdiff -u -r1.73 -r1.74 src/sys/netinet6/ip6_var.h cvs rdiff -u -r1.155 -r1.156 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.54 -r1.55 src/sys/netinet6/udp6_output.c cvs rdiff -u -r1.69 -r1.70 src/sys/netipsec/ipsec.c cvs rdiff -u -r1.37 -r1.38 src/sys/netipsec/ipsec.h cvs rdiff -u -r1.14 -r1.15 src/sys/netipsec/ipsec6.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/netinet/dccp_usrreq.c diff -u src/sys/netinet/dccp_usrreq.c:1.12 src/sys/netinet/dccp_usrreq.c:1.13 --- src/sys/netinet/dccp_usrreq.c:1.12 Mon Jan 16 15:44:47 2017 +++ src/sys/netinet/dccp_usrreq.c Fri Mar 3 07:13:06 2017 @@ -1,5 +1,5 @@ /* $KAME: dccp_usrreq.c,v 1.67 2005/11/03 16:05:04 nishida Exp $ */ -/* $NetBSD: dccp_usrreq.c,v 1.12 2017/01/16 15:44:47 christos Exp $ */ +/* $NetBSD: dccp_usrreq.c,v 1.13 2017/03/03 07:13:06 ozaki-r Exp $ */ /* * Copyright (c) 2003 Joacim Häggmark, Magnus Erixzon, Nils-Erik Mattsson @@ -67,7 +67,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: dccp_usrreq.c,v 1.12 2017/01/16 15:44:47 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dccp_usrreq.c,v 1.13 2017/03/03 07:13:06 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -1620,7 +1620,7 @@ again: DCCP_DEBUG((LOG_INFO, "Calling ip_output, mbuf->m_len = %u, mbuf->m_pkthdr.len = %u\n", m->m_len, m->m_pkthdr.len)); error = ip_output(m, inp->inp_options, &inp->inp_route, (inp->inp_socket->so_options & SO_DONTROUTE), 0, - inp->inp_socket); + inp); } if (error) { Index: src/sys/netinet/ip_output.c diff -u src/sys/netinet/ip_output.c:1.274 src/sys/netinet/ip_output.c:1.275 --- src/sys/netinet/ip_output.c:1.274 Thu Mar 2 05:29:31 2017 +++ src/sys/netinet/ip_output.c Fri Mar 3 07:13:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ip_output.c,v 1.274 2017/03/02 05:29:31 ozaki-r Exp $ */ +/* $NetBSD: ip_output.c,v 1.275 2017/03/03 07:13:06 ozaki-r Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -91,7 +91,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ip_output.c,v 1.274 2017/03/02 05:29:31 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ip_output.c,v 1.275 2017/03/03 07:13:06 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -225,7 +225,7 @@ ip_if_output(struct ifnet * const ifp, s */ int ip_output(struct mbuf *m0, struct mbuf *opt, struct route *ro, int flags, - struct ip_moptions *imo, struct socket *so) + struct ip_moptions *imo, struct inpcb *inp) { struct rtentry *rt; struct ip *ip; @@ -588,7 +588,7 @@ sendit: bool ipsec_done = false; /* Perform IPsec processing, if any. */ - error = ipsec4_output(m, so, flags, &sp, &mtu, &natt_frag, + error = ipsec4_output(m, inp, flags, &sp, &mtu, &natt_frag, &ipsec_done); if (error || ipsec_done) goto done; @@ -713,10 +713,7 @@ sendit: */ if (ntohs(ip->ip_off) & IP_DF) { if (flags & IP_RETURNMTU) { - struct inpcb *inp; - - KASSERT(so && solocked(so)); - inp = sotoinpcb(so); + KASSERT(inp != NULL); inp->inp_errormtu = mtu; } error = EMSGSIZE; @@ -750,7 +747,7 @@ sendit: if (natt_frag) { error = ip_output(m, opt, ro, flags | IP_RAWOUTPUT | IP_NOIPNEWID, - imo, so); + imo, inp); } else { KASSERT((m->m_pkthdr.csum_flags & (M_CSUM_UDPv4 | M_CSUM_TCPv4)) == 0); Index: src/sys/netinet/ip_var.h diff -u src/sys/netinet/ip_var.h:1.117 src/sys/netinet/ip_var.h:1.118 --- src/sys/netinet/ip_var.h:1.117 Thu Feb 16 08:12:44 2017 +++ src/sys/netinet/ip_var.h Fri Mar 3 07:13:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ip_var.h,v 1.117 2017/02/16 08:12:44 knakahara Exp $ */ +/* $NetBSD: ip_var.h,v 1.118 2017/03/03 07:13:06 ozaki-r Exp $ */ /* * Copyright (c) 1982, 1986, 1993 @@ -213,7 +213,7 @@ void ip_freemoptions(struct ip_moptions int ip_optcopy(struct ip *, struct ip *); u_int ip_optlen(struct inpcb *); int ip_output(struct mbuf *, struct mbuf *, struct route *, int, - struct ip_moptions *, struct socket *); + struct ip_moptions *, struct inpcb *); int ip_fragment(struct mbuf *, struct ifnet *, u_long); void ip_reass_init(void); Index: src/sys/netinet/raw_ip.c diff -u src/sys/netinet/raw_ip.c:1.162 src/sys/netinet/raw_ip.c:1.163 --- src/sys/netinet/raw_ip.c:1.162 Tue Jan 24 07:09:24 2017 +++ src/sys/netinet/raw_ip.c Fri Mar 3 07:13:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: raw_ip.c,v 1.162 2017/01/24 07:09:24 ozaki-r Exp $ */ +/* $NetBSD: raw_ip.c,v 1.163 2017/03/03 07:13:06 ozaki-r Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -65,7 +65,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: raw_ip.c,v 1.162 2017/01/24 07:09:24 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: raw_ip.c,v 1.163 2017/03/03 07:13:06 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -383,7 +383,7 @@ rip_output(struct mbuf *m, struct inpcb * will be stored in inp_errormtu. */ return ip_output(m, opts, &inp->inp_route, flags, inp->inp_moptions, - inp->inp_socket); + inp); } /* Index: src/sys/netinet/sctp_output.c diff -u src/sys/netinet/sctp_output.c:1.9 src/sys/netinet/sctp_output.c:1.10 --- src/sys/netinet/sctp_output.c:1.9 Fri Dec 23 11:11:28 2016 +++ src/sys/netinet/sctp_output.c Fri Mar 3 07:13:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: sctp_output.c,v 1.9 2016/12/23 11:11:28 maya Exp $ */ +/* $NetBSD: sctp_output.c,v 1.10 2017/03/03 07:13:06 ozaki-r Exp $ */ /* $KAME: sctp_output.c,v 1.48 2005/06/16 18:29:24 jinmei Exp $ */ /* @@ -30,7 +30,7 @@ * SUCH DAMAGE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sctp_output.c,v 1.9 2016/12/23 11:11:28 maya Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sctp_output.c,v 1.10 2017/03/03 07:13:06 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_ipsec.h" @@ -2251,7 +2251,7 @@ sctp_lowlevel_chunk_output(struct sctp_i } ret = ip_output(m, inp->ip_inp.inp.inp_options, ro, o_flgs, inp->ip_inp.inp.inp_moptions, - (struct socket *)inp->sctp_socket); + &inp->ip_inp.inp); if ((rt) && (have_mtu) && (net) && (have_mtu > net->mtu)) { rt->rt_ifp->if_mtu = have_mtu; } @@ -2449,7 +2449,7 @@ sctp_lowlevel_chunk_output(struct sctp_i ro, o_flgs, ((struct in6pcb *)inp)->in6p_moptions, - (struct socket *)inp->sctp_socket, + (struct in6pcb *)inp, &ifp); if (net) { /* for link local this must be done */ Index: src/sys/netinet/tcp_input.c diff -u src/sys/netinet/tcp_input.c:1.354 src/sys/netinet/tcp_input.c:1.355 --- src/sys/netinet/tcp_input.c:1.354 Tue Feb 7 02:38:08 2017 +++ src/sys/netinet/tcp_input.c Fri Mar 3 07:13:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_input.c,v 1.354 2017/02/07 02:38:08 ozaki-r Exp $ */ +/* $NetBSD: tcp_input.c,v 1.355 2017/03/03 07:13:06 ozaki-r Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -148,7 +148,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tcp_input.c,v 1.354 2017/02/07 02:38:08 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tcp_input.c,v 1.355 2017/03/03 07:13:06 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -4535,7 +4535,6 @@ syn_cache_respond(struct syn_cache *sc, struct tcpcb *tp = NULL; struct tcphdr *th; u_int hlen; - struct socket *so; #ifdef TCP_SIGNATURE struct secasvar *sav = NULL; u_int8_t *sigp = NULL; @@ -4584,18 +4583,8 @@ syn_cache_respond(struct syn_cache *sc, /* Fixup the mbuf. */ m->m_data += max_linkhdr; - if (sc->sc_tp) { + if (sc->sc_tp) tp = sc->sc_tp; - if (tp->t_inpcb) - so = tp->t_inpcb->inp_socket; -#ifdef INET6 - else if (tp->t_in6pcb) - so = tp->t_in6pcb->in6p_socket; -#endif - else - so = NULL; - } else - so = NULL; m_reset_rcvif(m); memset(mtod(m, u_char *), 0, tlen); @@ -4818,7 +4807,7 @@ syn_cache_respond(struct syn_cache *sc, case AF_INET: error = ip_output(m, sc->sc_ipopts, ro, (ip_mtudisc ? IP_MTUDISC : 0), - NULL, so); + NULL, tp ? tp->t_inpcb : NULL); break; #endif #ifdef INET6 @@ -4827,7 +4816,8 @@ syn_cache_respond(struct syn_cache *sc, (rt = rtcache_validate(ro)) != NULL ? rt->rt_ifp : NULL); rtcache_unref(rt, ro); - error = ip6_output(m, NULL /*XXX*/, ro, 0, NULL, so, NULL); + error = ip6_output(m, NULL /*XXX*/, ro, 0, NULL, + tp ? tp->t_in6pcb : NULL, NULL); break; #endif default: Index: src/sys/netinet/tcp_output.c diff -u src/sys/netinet/tcp_output.c:1.194 src/sys/netinet/tcp_output.c:1.195 --- src/sys/netinet/tcp_output.c:1.194 Wed Jan 4 15:09:37 2017 +++ src/sys/netinet/tcp_output.c Fri Mar 3 07:13:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_output.c,v 1.194 2017/01/04 15:09:37 martin Exp $ */ +/* $NetBSD: tcp_output.c,v 1.195 2017/03/03 07:13:06 ozaki-r Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -135,7 +135,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tcp_output.c,v 1.194 2017/01/04 15:09:37 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tcp_output.c,v 1.195 2017/03/03 07:13:06 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -1680,7 +1680,7 @@ timer: opts = NULL; error = ip_output(m, opts, ro, (tp->t_mtudisc ? IP_MTUDISC : 0) | - (so->so_options & SO_DONTROUTE), NULL, so); + (so->so_options & SO_DONTROUTE), NULL, tp->t_inpcb); break; } #endif @@ -1694,7 +1694,7 @@ timer: else opts = NULL; error = ip6_output(m, opts, ro, so->so_options & SO_DONTROUTE, - NULL, so, NULL); + NULL, tp->t_in6pcb, NULL); break; } #endif Index: src/sys/netinet/tcp_subr.c diff -u src/sys/netinet/tcp_subr.c:1.269 src/sys/netinet/tcp_subr.c:1.270 --- src/sys/netinet/tcp_subr.c:1.269 Mon Jan 2 01:18:42 2017 +++ src/sys/netinet/tcp_subr.c Fri Mar 3 07:13:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_subr.c,v 1.269 2017/01/02 01:18:42 christos Exp $ */ +/* $NetBSD: tcp_subr.c,v 1.270 2017/03/03 07:13:06 ozaki-r Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -91,7 +91,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tcp_subr.c,v 1.269 2017/01/02 01:18:42 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tcp_subr.c,v 1.270 2017/03/03 07:13:06 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -649,7 +649,6 @@ tcp_respond(struct tcpcb *tp, struct mbu #endif int family; /* family on packet, not inpcb/in6pcb! */ struct tcphdr *th; - struct socket *so; if (tp != NULL && (flags & TH_RST) == 0) { #ifdef DIAGNOSTIC @@ -892,15 +891,6 @@ tcp_respond(struct tcpcb *tp, struct mbu #endif } - if (tp && tp->t_inpcb) - so = tp->t_inpcb->inp_socket; -#ifdef INET6 - else if (tp && tp->t_in6pcb) - so = tp->t_in6pcb->in6p_socket; -#endif - else - so = NULL; - if (tp != NULL && tp->t_inpcb != NULL) { ro = &tp->t_inpcb->inp_route; #ifdef DIAGNOSTIC @@ -941,12 +931,14 @@ tcp_respond(struct tcpcb *tp, struct mbu #ifdef INET case AF_INET: error = ip_output(m, NULL, ro, - (tp && tp->t_mtudisc ? IP_MTUDISC : 0), NULL, so); + (tp && tp->t_mtudisc ? IP_MTUDISC : 0), NULL, + tp ? tp->t_inpcb : NULL); break; #endif #ifdef INET6 case AF_INET6: - error = ip6_output(m, NULL, ro, 0, NULL, so, NULL); + error = ip6_output(m, NULL, ro, 0, NULL, + tp ? tp->t_in6pcb : NULL, NULL); break; #endif default: Index: src/sys/netinet/udp_usrreq.c diff -u src/sys/netinet/udp_usrreq.c:1.230 src/sys/netinet/udp_usrreq.c:1.231 --- src/sys/netinet/udp_usrreq.c:1.230 Tue Jan 24 07:09:24 2017 +++ src/sys/netinet/udp_usrreq.c Fri Mar 3 07:13:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: udp_usrreq.c,v 1.230 2017/01/24 07:09:24 ozaki-r Exp $ */ +/* $NetBSD: udp_usrreq.c,v 1.231 2017/03/03 07:13:06 ozaki-r Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -66,7 +66,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: udp_usrreq.c,v 1.230 2017/01/24 07:09:24 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: udp_usrreq.c,v 1.231 2017/03/03 07:13:06 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -848,7 +848,7 @@ udp_output(struct mbuf *m, struct inpcb return (ip_output(m, inp->inp_options, ro, inp->inp_socket->so_options & (SO_DONTROUTE | SO_BROADCAST), - inp->inp_moptions, inp->inp_socket)); + inp->inp_moptions, inp)); release: m_freem(m); Index: src/sys/netinet6/ip6_output.c diff -u src/sys/netinet6/ip6_output.c:1.190 src/sys/netinet6/ip6_output.c:1.191 --- src/sys/netinet6/ip6_output.c:1.190 Thu Mar 2 05:26:24 2017 +++ src/sys/netinet6/ip6_output.c Fri Mar 3 07:13:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ip6_output.c,v 1.190 2017/03/02 05:26:24 ozaki-r Exp $ */ +/* $NetBSD: ip6_output.c,v 1.191 2017/03/03 07:13:06 ozaki-r Exp $ */ /* $KAME: ip6_output.c,v 1.172 2001/03/25 09:55:56 itojun Exp $ */ /* @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ip6_output.c,v 1.190 2017/03/02 05:26:24 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ip6_output.c,v 1.191 2017/03/03 07:13:06 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -222,7 +222,7 @@ ip6_output( struct route *ro, int flags, struct ip6_moptions *im6o, - struct socket *so, + struct in6pcb *in6p, struct ifnet **ifpp /* XXX: just for statistics */ ) { @@ -311,7 +311,7 @@ ip6_output( if (ipsec_used) { /* Check the security policy (SP) for the packet */ - sp = ipsec6_check_policy(m, so, flags, &needipsec, &error); + sp = ipsec6_check_policy(m, in6p, flags, &needipsec, &error); if (error != 0) { /* * Hack: -EINVAL is used to signal that a packet Index: src/sys/netinet6/ip6_var.h diff -u src/sys/netinet6/ip6_var.h:1.73 src/sys/netinet6/ip6_var.h:1.74 --- src/sys/netinet6/ip6_var.h:1.73 Thu Mar 2 05:24:23 2017 +++ src/sys/netinet6/ip6_var.h Fri Mar 3 07:13:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ip6_var.h,v 1.73 2017/03/02 05:24:23 ozaki-r Exp $ */ +/* $NetBSD: ip6_var.h,v 1.74 2017/03/03 07:13:06 ozaki-r Exp $ */ /* $KAME: ip6_var.h,v 1.33 2000/06/11 14:59:20 jinmei Exp $ */ /* @@ -349,10 +349,8 @@ void ip6_forward(struct mbuf *, int); void ip6_mloopback(struct ifnet *, struct mbuf *, const struct sockaddr_in6 *); -int ip6_output(struct mbuf *, struct ip6_pktopts *, - struct route *, int, - struct ip6_moptions *, struct socket *, - struct ifnet **); +int ip6_output(struct mbuf *, struct ip6_pktopts *, struct route *, int, + struct ip6_moptions *, struct in6pcb *, struct ifnet **); int ip6_if_output(struct ifnet * const, struct ifnet * const, struct mbuf * const, const struct sockaddr_in6 * const, const struct rtentry *); Index: src/sys/netinet6/raw_ip6.c diff -u src/sys/netinet6/raw_ip6.c:1.155 src/sys/netinet6/raw_ip6.c:1.156 --- src/sys/netinet6/raw_ip6.c:1.155 Tue Jan 24 07:09:25 2017 +++ src/sys/netinet6/raw_ip6.c Fri Mar 3 07:13:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: raw_ip6.c,v 1.155 2017/01/24 07:09:25 ozaki-r Exp $ */ +/* $NetBSD: raw_ip6.c,v 1.156 2017/03/03 07:13:06 ozaki-r Exp $ */ /* $KAME: raw_ip6.c,v 1.82 2001/07/23 18:57:56 jinmei Exp $ */ /* @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: raw_ip6.c,v 1.155 2017/01/24 07:09:25 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: raw_ip6.c,v 1.156 2017/03/03 07:13:06 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_ipsec.h" @@ -514,7 +514,7 @@ rip6_output(struct mbuf *m, struct socke struct ifnet *ret_oifp = NULL; error = ip6_output(m, optp, &in6p->in6p_route, 0, - in6p->in6p_moptions, so, &ret_oifp); + in6p->in6p_moptions, in6p, &ret_oifp); if (so->so_proto->pr_protocol == IPPROTO_ICMPV6) { if (ret_oifp) icmp6_ifoutstat_inc(ret_oifp, type, code); Index: src/sys/netinet6/udp6_output.c diff -u src/sys/netinet6/udp6_output.c:1.54 src/sys/netinet6/udp6_output.c:1.55 --- src/sys/netinet6/udp6_output.c:1.54 Mon Oct 31 04:16:25 2016 +++ src/sys/netinet6/udp6_output.c Fri Mar 3 07:13:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: udp6_output.c,v 1.54 2016/10/31 04:16:25 ozaki-r Exp $ */ +/* $NetBSD: udp6_output.c,v 1.55 2017/03/03 07:13:06 ozaki-r Exp $ */ /* $KAME: udp6_output.c,v 1.43 2001/10/15 09:19:52 itojun Exp $ */ /* @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: udp6_output.c,v 1.54 2016/10/31 04:16:25 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: udp6_output.c,v 1.55 2017/03/03 07:13:06 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -381,7 +381,7 @@ udp6_output(struct in6pcb * const in6p, UDP6_STATINC(UDP6_STAT_OPACKETS); error = ip6_output(m, optp, &in6p->in6p_route, 0, - in6p->in6p_moptions, in6p->in6p_socket, NULL); + in6p->in6p_moptions, in6p, NULL); break; case AF_INET: #ifdef INET @@ -413,7 +413,7 @@ udp6_output(struct in6pcb * const in6p, UDP_STATINC(UDP_STAT_OPACKETS); error = ip_output(m, NULL, &in6p->in6p_route, flags /* XXX */, - in6p->in6p_v4moptions, (struct socket *)in6p->in6p_socket); + in6p->in6p_v4moptions, NULL); break; #else error = EAFNOSUPPORT; Index: src/sys/netipsec/ipsec.c diff -u src/sys/netipsec/ipsec.c:1.69 src/sys/netipsec/ipsec.c:1.70 --- src/sys/netipsec/ipsec.c:1.69 Mon Jan 16 15:44:47 2017 +++ src/sys/netipsec/ipsec.c Fri Mar 3 07:13:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ipsec.c,v 1.69 2017/01/16 15:44:47 christos Exp $ */ +/* $NetBSD: ipsec.c,v 1.70 2017/03/03 07:13:06 ozaki-r Exp $ */ /* $FreeBSD: /usr/local/www/cvsroot/FreeBSD/src/sys/netipsec/ipsec.c,v 1.2.2.2 2003/07/01 01:38:13 sam Exp $ */ /* $KAME: ipsec.c,v 1.103 2001/05/24 07:14:18 sakane Exp $ */ @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ipsec.c,v 1.69 2017/01/16 15:44:47 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ipsec.c,v 1.70 2017/03/03 07:13:06 ozaki-r Exp $"); /* * IPsec controller part. @@ -735,17 +735,13 @@ ipsec4_checkpolicy(struct mbuf *m, u_int } int -ipsec4_output(struct mbuf *m, struct socket *so, int flags, +ipsec4_output(struct mbuf *m, struct inpcb *inp, int flags, struct secpolicy **sp_out, u_long *mtu, bool *natt_frag, bool *done) { const struct ip *ip = mtod(m, const struct ip *); struct secpolicy *sp = NULL; - struct inpcb *inp; int error, s; - inp = (so && so->so_proto->pr_domain->dom_family == AF_INET) ? - (struct inpcb *)so->so_pcb : NULL; - /* * Check the security policy (SP) for the packet and, if required, * do IPsec-related processing. There are two cases here; the first @@ -2384,18 +2380,14 @@ ipsec_dumpmbuf(struct mbuf *m) #ifdef INET6 struct secpolicy * -ipsec6_check_policy(struct mbuf *m, const struct socket *so, +ipsec6_check_policy(struct mbuf *m, struct in6pcb *in6p, int flags, int *needipsecp, int *errorp) { - struct in6pcb *in6p = NULL; struct secpolicy *sp = NULL; int s; int error = 0; int needipsec = 0; - if (so != NULL && so->so_proto->pr_domain->dom_family == AF_INET6) - in6p = sotoin6pcb(so); - if (!ipsec_outdone(m)) { s = splsoftnet(); if (in6p != NULL && Index: src/sys/netipsec/ipsec.h diff -u src/sys/netipsec/ipsec.h:1.37 src/sys/netipsec/ipsec.h:1.38 --- src/sys/netipsec/ipsec.h:1.37 Wed Apr 1 02:49:44 2015 +++ src/sys/netipsec/ipsec.h Fri Mar 3 07:13:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ipsec.h,v 1.37 2015/04/01 02:49:44 ozaki-r Exp $ */ +/* $NetBSD: ipsec.h,v 1.38 2017/03/03 07:13:06 ozaki-r Exp $ */ /* $FreeBSD: /usr/local/www/cvsroot/FreeBSD/src/sys/netipsec/ipsec.h,v 1.2.4.2 2004/02/14 22:23:23 bms Exp $ */ /* $KAME: ipsec.h,v 1.53 2001/11/20 08:32:38 itojun Exp $ */ @@ -256,7 +256,7 @@ struct secpolicy *ipsec4_checkpolicy (st int *, struct inpcb *); struct secpolicy * ipsec_getpolicybyaddr(struct mbuf *, u_int, int, int *); -int ipsec4_output(struct mbuf *, struct socket *, int, +int ipsec4_output(struct mbuf *, struct inpcb *, int, struct secpolicy **, u_long *, bool *, bool *); int ipsec4_input(struct mbuf *, int); int ipsec4_forward(struct mbuf *, int *); Index: src/sys/netipsec/ipsec6.h diff -u src/sys/netipsec/ipsec6.h:1.14 src/sys/netipsec/ipsec6.h:1.15 --- src/sys/netipsec/ipsec6.h:1.14 Thu Jul 7 06:55:43 2016 +++ src/sys/netipsec/ipsec6.h Fri Mar 3 07:13:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ipsec6.h,v 1.14 2016/07/07 06:55:43 msaitoh Exp $ */ +/* $NetBSD: ipsec6.h,v 1.15 2017/03/03 07:13:06 ozaki-r Exp $ */ /* $FreeBSD: src/sys/netipsec/ipsec6.h,v 1.1.4.1 2003/01/24 05:11:35 sam Exp $ */ /* $KAME: ipsec.h,v 1.44 2001/03/23 08:08:47 itojun Exp $ */ @@ -67,7 +67,7 @@ int ipsec6_get_policy (struct in6pcb *, struct secpolicy *ipsec6_checkpolicy (struct mbuf *, u_int, u_int, int *, struct in6pcb *); struct secpolicy * ipsec6_check_policy(struct mbuf *, - const struct socket *, int, int*,int*); + struct in6pcb *, int, int*,int*); int ipsec6_in_reject (struct mbuf *, struct in6pcb *); /* * KAME ipsec6_in_reject_so(struct mbuf*, struct so) compatibility shim