Author: bz
Date: Sun Feb  8 09:27:07 2009
New Revision: 188306
URL: http://svn.freebsd.org/changeset/base/188306

Log:
  Try to remove/assimilate as much of formerly IPv4/6 specific
  (duplicate) code in sys/netipsec/ipsec.c and fold it into
  common, INET/6 independent functions.
  
  The file local functions ipsec4_setspidx_inpcb() and
  ipsec6_setspidx_inpcb() were 1:1 identical after the change
  in r186528. Rename to ipsec_setspidx_inpcb() and remove the
  duplicate.
  
  Public functions ipsec[46]_get_policy() were 1:1 identical.
  Remove one copy and merge in the factored out code from
  ipsec_get_policy() into the other. The public function left
  is now called ipsec_get_policy() and callers were adapted.
  
  Public functions ipsec[46]_set_policy() were 1:1 identical.
  Rename file local ipsec_set_policy() function to
  ipsec_set_policy_internal().
  Remove one copy of the public functions, rename the other
  to ipsec_set_policy() and adapt callers.
  
  Public functions ipsec[46]_hdrsiz() were logically identical
  (ignoring one questionable assert in the v6 version).
  Rename the file local ipsec_hdrsiz() to ipsec_hdrsiz_internal(),
  the public function to ipsec_hdrsiz(), remove the duplicate
  copy and adapt the callers.
  The v6 version had been unused anyway. Cleanup comments.
  
  Public functions ipsec[46]_in_reject() were logically identical
  apart from statistics. Move the common code into a file local
  ipsec46_in_reject() leaving vimage+statistics in small AF specific
  wrapper functions. Note: unfortunately we already have a public
  ipsec_in_reject().
  
  Reviewed by:  sam
  Discussed with:       rwatson (renaming to *_internal)
  MFC after:    26 days
  X-MFC:                keep wrapper functions for public symbols?

Modified:
  head/sys/netinet/ip_ipsec.c
  head/sys/netinet/ip_output.c
  head/sys/netinet/tcp_subr.c
  head/sys/netinet6/ip6_forward.c
  head/sys/netinet6/ip6_ipsec.c
  head/sys/netinet6/ip6_output.c
  head/sys/netipsec/ipsec.c
  head/sys/netipsec/ipsec.h
  head/sys/netipsec/ipsec6.h

Modified: head/sys/netinet/ip_ipsec.c
==============================================================================
--- head/sys/netinet/ip_ipsec.c Sun Feb  8 08:26:58 2009        (r188305)
+++ head/sys/netinet/ip_ipsec.c Sun Feb  8 09:27:07 2009        (r188306)
@@ -218,9 +218,7 @@ ip_ipsec_mtu(struct mbuf *m, int mtu)
                                   &ipsecerror);
        if (sp != NULL) {
                /* count IPsec header size */
-               ipsechdr = ipsec4_hdrsiz(m,
-                                        IPSEC_DIR_OUTBOUND,
-                                        NULL);
+               ipsechdr = ipsec_hdrsiz(m, IPSEC_DIR_OUTBOUND, NULL);
 
                /*
                 * find the correct route for outer IPv4

Modified: head/sys/netinet/ip_output.c
==============================================================================
--- head/sys/netinet/ip_output.c        Sun Feb  8 08:26:58 2009        
(r188305)
+++ head/sys/netinet/ip_output.c        Sun Feb  8 09:27:07 2009        
(r188306)
@@ -1050,7 +1050,7 @@ ip_ctloutput(struct socket *so, struct s
                        if ((error = soopt_mcopyin(sopt, m)) != 0) /* XXX */
                                break;
                        req = mtod(m, caddr_t);
-                       error = ipsec4_set_policy(inp, sopt->sopt_name, req,
+                       error = ipsec_set_policy(inp, sopt->sopt_name, req,
                            m->m_len, (sopt->sopt_td != NULL) ?
                            sopt->sopt_td->td_ucred : NULL);
                        m_freem(m);
@@ -1171,7 +1171,7 @@ ip_ctloutput(struct socket *so, struct s
                                req = mtod(m, caddr_t);
                                len = m->m_len;
                        }
-                       error = ipsec4_get_policy(sotoinpcb(so), req, len, &m);
+                       error = ipsec_get_policy(sotoinpcb(so), req, len, &m);
                        if (error == 0)
                                error = soopt_mcopyout(sopt, m); /* XXX */
                        if (error == 0)

Modified: head/sys/netinet/tcp_subr.c
==============================================================================
--- head/sys/netinet/tcp_subr.c Sun Feb  8 08:26:58 2009        (r188305)
+++ head/sys/netinet/tcp_subr.c Sun Feb  8 09:27:07 2009        (r188306)
@@ -1744,7 +1744,7 @@ ipsec_hdrsiz_tcp(struct tcpcb *tp)
                m->m_pkthdr.len = m->m_len =
                        sizeof(struct ip6_hdr) + sizeof(struct tcphdr);
                tcpip_fillheaders(inp, ip6, th);
-               hdrsiz = ipsec6_hdrsiz(m, IPSEC_DIR_OUTBOUND, inp);
+               hdrsiz = ipsec_hdrsiz(m, IPSEC_DIR_OUTBOUND, inp);
        } else
 #endif /* INET6 */
        {
@@ -1752,7 +1752,7 @@ ipsec_hdrsiz_tcp(struct tcpcb *tp)
                th = (struct tcphdr *)(ip + 1);
                m->m_pkthdr.len = m->m_len = sizeof(struct tcpiphdr);
                tcpip_fillheaders(inp, ip, th);
-               hdrsiz = ipsec4_hdrsiz(m, IPSEC_DIR_OUTBOUND, inp);
+               hdrsiz = ipsec_hdrsiz(m, IPSEC_DIR_OUTBOUND, inp);
        }
 
        m_free(m);

Modified: head/sys/netinet6/ip6_forward.c
==============================================================================
--- head/sys/netinet6/ip6_forward.c     Sun Feb  8 08:26:58 2009        
(r188305)
+++ head/sys/netinet6/ip6_forward.c     Sun Feb  8 09:27:07 2009        
(r188306)
@@ -457,7 +457,7 @@ skip_routing:
                        sp = ipsec_getpolicybyaddr(mcopy, IPSEC_DIR_OUTBOUND,
                                IP_FORWARDING, &ipsecerror);
                        if (sp) {
-                               ipsechdrsiz = ipsec6_hdrsiz(mcopy,
+                               ipsechdrsiz = ipsec_hdrsiz(mcopy,
                                        IPSEC_DIR_OUTBOUND, NULL);
                                if (ipsechdrsiz < mtu)
                                        mtu -= ipsechdrsiz;

Modified: head/sys/netinet6/ip6_ipsec.c
==============================================================================
--- head/sys/netinet6/ip6_ipsec.c       Sun Feb  8 08:26:58 2009        
(r188305)
+++ head/sys/netinet6/ip6_ipsec.c       Sun Feb  8 09:27:07 2009        
(r188306)
@@ -341,9 +341,7 @@ ip6_ipsec_mtu(struct mbuf *m)
                                   &ipsecerror);
        if (sp != NULL) {
                /* count IPsec header size */
-               ipsechdr = ipsec4_hdrsiz(m,
-                                        IPSEC_DIR_OUTBOUND,
-                                        NULL);
+               ipsechdr = ipsec_hdrsiz(m, IPSEC_DIR_OUTBOUND, NULL);
 
                /*
                 * find the correct route for outer IPv4

Modified: head/sys/netinet6/ip6_output.c
==============================================================================
--- head/sys/netinet6/ip6_output.c      Sun Feb  8 08:26:58 2009        
(r188305)
+++ head/sys/netinet6/ip6_output.c      Sun Feb  8 09:27:07 2009        
(r188306)
@@ -1799,7 +1799,7 @@ do { \
                                if ((error = soopt_mcopyin(sopt, m)) != 0) /* 
XXX */
                                        break;
                                req = mtod(m, caddr_t);
-                               error = ipsec6_set_policy(in6p, optname, req,
+                               error = ipsec_set_policy(in6p, optname, req,
                                    m->m_len, (sopt->sopt_td != NULL) ?
                                    sopt->sopt_td->td_ucred : NULL);
                                m_freem(m);
@@ -2024,7 +2024,7 @@ do { \
                                        req = mtod(m, caddr_t);
                                        len = m->m_len;
                                }
-                               error = ipsec6_get_policy(in6p, req, len, mp);
+                               error = ipsec_get_policy(in6p, req, len, mp);
                                if (error == 0)
                                        error = soopt_mcopyout(sopt, m); /* XXX 
*/
                                if (error == 0 && m)

Modified: head/sys/netipsec/ipsec.c
==============================================================================
--- head/sys/netipsec/ipsec.c   Sun Feb  8 08:26:58 2009        (r188305)
+++ head/sys/netipsec/ipsec.c   Sun Feb  8 09:27:07 2009        (r188306)
@@ -228,10 +228,7 @@ SYSCTL_V_STRUCT(V_NET, vnet_ipsec, _net_
        "IPsec IPv6 statistics.");
 #endif /* INET6 */
 
-static int ipsec4_setspidx_inpcb __P((struct mbuf *, struct inpcb *));
-#ifdef INET6
-static int ipsec6_setspidx_inpcb __P((struct mbuf *, struct inpcb *));
-#endif
+static int ipsec_setspidx_inpcb __P((struct mbuf *, struct inpcb *));
 static int ipsec_setspidx __P((struct mbuf *, struct secpolicyindex *, int));
 static void ipsec4_get_ulp __P((struct mbuf *m, struct secpolicyindex *, int));
 static int ipsec4_setspidx_ipaddr __P((struct mbuf *, struct secpolicyindex 
*));
@@ -241,11 +238,7 @@ static int ipsec6_setspidx_ipaddr __P((s
 #endif
 static void ipsec_delpcbpolicy __P((struct inpcbpolicy *));
 static struct secpolicy *ipsec_deepcopy_policy __P((struct secpolicy *src));
-static int ipsec_set_policy __P((struct secpolicy **pcb_sp,
-       int optname, caddr_t request, size_t len, struct ucred *cred));
-static int ipsec_get_policy __P((struct secpolicy *pcb_sp, struct mbuf **mp));
 static void vshiftl __P((unsigned char *, int, int));
-static size_t ipsec_hdrsiz __P((struct secpolicy *));
 
 MALLOC_DEFINE(M_IPSEC_INPCB, "inpcbpolicy", "inpcb-resident ipsec policy");
 
@@ -358,7 +351,7 @@ static struct secpolicy *
 ipsec_getpolicybysock(struct mbuf *m, u_int dir, struct inpcb *inp, int *error)
 {
        INIT_VNET_IPSEC(curvnet);
-       struct inpcbpolicy *pcbsp = NULL;
+       struct inpcbpolicy *pcbsp;
        struct secpolicy *currsp = NULL;        /* Policy on socket. */
        struct secpolicy *sp;
 
@@ -369,20 +362,11 @@ ipsec_getpolicybysock(struct mbuf *m, u_
                ("invalid direction %u", dir));
 
        /* Set spidx in pcb. */
-       if (inp->inp_vflag & INP_IPV6PROTO) {
-#ifdef INET6
-               *error = ipsec6_setspidx_inpcb(m, inp);
-               pcbsp = inp->inp_sp;
-#else
-               *error = EINVAL;                /* Should not happen. */
-#endif
-       } else {
-               *error = ipsec4_setspidx_inpcb(m, inp);
-               pcbsp = inp->inp_sp;
-       }
+       *error = ipsec_setspidx_inpcb(m, inp);
        if (*error)
                return (NULL);
 
+       pcbsp = inp->inp_sp;
        IPSEC_ASSERT(pcbsp != NULL, ("null pcbsp"));
        switch (dir) {
        case IPSEC_DIR_INBOUND:
@@ -538,7 +522,7 @@ ipsec4_checkpolicy(struct mbuf *m, u_int
 }
 
 static int
-ipsec4_setspidx_inpcb(struct mbuf *m, struct inpcb *inp)
+ipsec_setspidx_inpcb(struct mbuf *m, struct inpcb *inp)
 {
        int error;
 
@@ -561,33 +545,6 @@ ipsec4_setspidx_inpcb(struct mbuf *m, st
        return (error);
 }
 
-#ifdef INET6
-static int
-ipsec6_setspidx_inpcb(struct mbuf *m, struct inpcb *inp)
-{
-       int error;
-
-       IPSEC_ASSERT(inp != NULL, ("null inp"));
-       IPSEC_ASSERT(inp->inp_sp != NULL, ("null inp_sp"));
-       IPSEC_ASSERT(inp->inp_sp->sp_out != NULL && inp->inp_sp->sp_in != NULL,
-               ("null sp_in || sp_out"));
-
-       error = ipsec_setspidx(m, &inp->inp_sp->sp_in->spidx, 1);
-       if (error == 0) {
-               inp->inp_sp->sp_in->spidx.dir = IPSEC_DIR_INBOUND;
-               inp->inp_sp->sp_out->spidx = inp->inp_sp->sp_in->spidx;
-               inp->inp_sp->sp_out->spidx.dir = IPSEC_DIR_OUTBOUND;
-       } else {
-               bzero(&inp->inp_sp->sp_in->spidx,
-                   sizeof(inp->inp_sp->sp_in->spidx));
-               bzero(&inp->inp_sp->sp_out->spidx,
-                   sizeof(inp->inp_sp->sp_in->spidx));
-       }
-
-       return (error);
-}
-#endif
-
 /*
  * Configure security policy index (src/dst/proto/sport/dport)
  * by looking at the content of mbuf.
@@ -1036,8 +993,8 @@ fail:
 
 /* Set policy and IPsec request if present. */
 static int
-ipsec_set_policy(struct secpolicy **pcb_sp, int optname, caddr_t request,
-    size_t len, struct ucred *cred)
+ipsec_set_policy_internal(struct secpolicy **pcb_sp, int optname,
+    caddr_t request, size_t len, struct ucred *cred)
 {
        INIT_VNET_IPSEC(curvnet);
        struct sadb_x_policy *xpl;
@@ -1056,7 +1013,7 @@ ipsec_set_policy(struct secpolicy **pcb_
                kdebug_sadb_x_policy((struct sadb_ext *)xpl));
 
        /* Check policy type. */
-       /* ipsec_set_policy() accepts IPSEC, ENTRUST and BYPASS. */
+       /* ipsec_set_policy_internal() accepts IPSEC, ENTRUST and BYPASS. */
        if (xpl->sadb_x_policy_type == IPSEC_POLICY_DISCARD
         || xpl->sadb_x_policy_type == IPSEC_POLICY_NONE)
                return (EINVAL);
@@ -1084,30 +1041,8 @@ ipsec_set_policy(struct secpolicy **pcb_
        return (0);
 }
 
-static int
-ipsec_get_policy(struct secpolicy *pcb_sp, struct mbuf **mp)
-{
-       INIT_VNET_IPSEC(curvnet);
-
-       /* Sanity check. */
-       if (pcb_sp == NULL || mp == NULL)
-               return (EINVAL);
-
-       *mp = key_sp2msg(pcb_sp);
-       if (!*mp) {
-               ipseclog((LOG_DEBUG, "%s: No more memory.\n", __func__));
-               return (ENOBUFS);
-       }
-
-       (*mp)->m_type = MT_DATA;
-       KEYDEBUG(KEYDEBUG_IPSEC_DUMP,
-               printf("%s:\n", __func__); kdebug_mbuf(*mp));
-
-       return (0);
-}
-
 int
-ipsec4_set_policy(struct inpcb *inp, int optname, caddr_t request,
+ipsec_set_policy(struct inpcb *inp, int optname, caddr_t request,
     size_t len, struct ucred *cred)
 {
        INIT_VNET_IPSEC(curvnet);
@@ -1135,11 +1070,11 @@ ipsec4_set_policy(struct inpcb *inp, int
                return (EINVAL);
        }
 
-       return (ipsec_set_policy(pcb_sp, optname, request, len, cred));
+       return (ipsec_set_policy_internal(pcb_sp, optname, request, len, cred));
 }
 
 int
-ipsec4_get_policy(struct inpcb *inp, caddr_t request, size_t len,
+ipsec_get_policy(struct inpcb *inp, caddr_t request, size_t len,
     struct mbuf **mp)
 {
        INIT_VNET_IPSEC(curvnet);
@@ -1168,7 +1103,21 @@ ipsec4_get_policy(struct inpcb *inp, cad
                return (EINVAL);
        }
 
-       return (ipsec_get_policy(pcb_sp, mp));
+       /* Sanity check. Should be an IPSEC_ASSERT. */
+       if (pcb_sp == NULL)
+               return (EINVAL);
+
+       *mp = key_sp2msg(pcb_sp);
+       if (!*mp) {
+               ipseclog((LOG_DEBUG, "%s: No more memory.\n", __func__));
+               return (ENOBUFS);
+       }
+
+       (*mp)->m_type = MT_DATA;
+       KEYDEBUG(KEYDEBUG_IPSEC_DUMP,
+               printf("%s:\n", __func__); kdebug_mbuf(*mp));
+
+       return (0);
 }
 
 /* Delete policy in PCB. */
@@ -1192,73 +1141,6 @@ ipsec_delete_pcbpolicy(struct inpcb *inp
        return (0);
 }
 
-#ifdef INET6
-int
-ipsec6_set_policy(struct inpcb *inp, int optname, caddr_t request,
-    size_t len, struct ucred *cred)
-{
-       INIT_VNET_IPSEC(curvnet);
-       struct sadb_x_policy *xpl;
-       struct secpolicy **pcb_sp;
-
-       /* Sanity check. */
-       if (inp == NULL || request == NULL)
-               return (EINVAL);
-       if (len < sizeof(*xpl))
-               return (EINVAL);
-       xpl = (struct sadb_x_policy *)request;
-
-       /* Select direction. */
-       switch (xpl->sadb_x_policy_dir) {
-       case IPSEC_DIR_INBOUND:
-               pcb_sp = &inp->inp_sp->sp_in;
-               break;
-       case IPSEC_DIR_OUTBOUND:
-               pcb_sp = &inp->inp_sp->sp_out;
-               break;
-       default:
-               ipseclog((LOG_ERR, "%s: invalid direction=%u\n", __func__,
-                       xpl->sadb_x_policy_dir));
-               return (EINVAL);
-       }
-
-       return (ipsec_set_policy(pcb_sp, optname, request, len, cred));
-}
-
-int
-ipsec6_get_policy(struct inpcb *inp, caddr_t request, size_t len,
-    struct mbuf **mp)
-{
-       INIT_VNET_IPSEC(curvnet);
-       struct sadb_x_policy *xpl;
-       struct secpolicy *pcb_sp;
-
-       /* Sanity check. */
-       if (inp == NULL || request == NULL || mp == NULL)
-               return (EINVAL);
-       IPSEC_ASSERT(inp->inp_sp != NULL, ("null inp_sp"));
-       if (len < sizeof(*xpl))
-               return (EINVAL);
-       xpl = (struct sadb_x_policy *)request;
-
-       /* Select direction. */
-       switch (xpl->sadb_x_policy_dir) {
-       case IPSEC_DIR_INBOUND:
-               pcb_sp = inp->inp_sp->sp_in;
-               break;
-       case IPSEC_DIR_OUTBOUND:
-               pcb_sp = inp->inp_sp->sp_out;
-               break;
-       default:
-               ipseclog((LOG_ERR, "%s: invalid direction=%u\n", __func__,
-                       xpl->sadb_x_policy_dir));
-               return (EINVAL);
-       }
-
-       return (ipsec_get_policy(pcb_sp, mp));
-}
-#endif
-
 /*
  * Return current level.
  * Either IPSEC_LEVEL_USE or IPSEC_LEVEL_REQUIRE are always returned.
@@ -1437,15 +1319,9 @@ ipsec_in_reject(struct secpolicy *sp, st
        return (0);             /* Valid. */
 }
 
-/*
- * Check AH/ESP integrity.
- * This function is called from tcp_input(), udp_input(),
- * and {ah,esp}4_input for tunnel mode.
- */
-int
-ipsec4_in_reject(struct mbuf *m, struct inpcb *inp)
+static int
+ipsec46_in_reject(struct mbuf *m, struct inpcb *inp)
 {
-       INIT_VNET_IPSEC(curvnet);
        struct secpolicy *sp;
        int error;
        int result;
@@ -1464,8 +1340,6 @@ ipsec4_in_reject(struct mbuf *m, struct 
 
        if (sp != NULL) {
                result = ipsec_in_reject(sp, m);
-               if (result)
-                       V_ipsec4stat.ips_in_polvio++;
                KEY_FREESP(&sp);
        } else {
                result = 0;     /* XXX Should be panic?
@@ -1474,6 +1348,24 @@ ipsec4_in_reject(struct mbuf *m, struct 
        return (result);
 }
 
+/*
+ * Check AH/ESP integrity.
+ * This function is called from tcp_input(), udp_input(),
+ * and {ah,esp}4_input for tunnel mode.
+ */
+int
+ipsec4_in_reject(struct mbuf *m, struct inpcb *inp)
+{
+       INIT_VNET_IPSEC(curvnet);
+       int result;
+
+       result = ipsec46_in_reject(m, inp);
+       if (result)
+               V_ipsec4stat.ips_in_polvio++;
+
+       return (result);
+}
+
 #ifdef INET6
 /*
  * Check AH/ESP integrity.
@@ -1484,31 +1376,12 @@ int
 ipsec6_in_reject(struct mbuf *m, struct inpcb *inp)
 {
        INIT_VNET_IPSEC(curvnet);
-       struct secpolicy *sp = NULL;
-       int error;
        int result;
 
-       /* Sanity check. */
-       if (m == NULL)
-               return (0);     /* XXX Should be panic? */
-
-       /* Get SP for this packet.
-        * When we are called from ip_forward(), we call
-        * ipsec_getpolicybyaddr() with IP_FORWARDING flag.
-        */
-       if (inp == NULL)
-               sp = ipsec_getpolicybyaddr(m, IPSEC_DIR_INBOUND, IP_FORWARDING, 
&error);
-       else
-               sp = ipsec_getpolicybysock(m, IPSEC_DIR_INBOUND, inp, &error);
+       result = ipsec46_in_reject(m, inp);
+       if (result)
+               V_ipsec6stat.ips_in_polvio++;
 
-       if (sp != NULL) {
-               result = ipsec_in_reject(sp, m);
-               if (result)
-                       V_ipsec6stat.ips_in_polvio++;
-               KEY_FREESP(&sp);
-       } else {
-               result = 0;
-       }
        return (result);
 }
 #endif
@@ -1519,7 +1392,7 @@ ipsec6_in_reject(struct mbuf *m, struct 
  * NOTE: SP passed is freed in this function.
  */
 static size_t
-ipsec_hdrsiz(struct secpolicy *sp)
+ipsec_hdrsiz_internal(struct secpolicy *sp)
 {
        INIT_VNET_IPSEC(curvnet);
        struct ipsecrequest *isr;
@@ -1577,9 +1450,12 @@ ipsec_hdrsiz(struct secpolicy *sp)
        return (size);
 }
 
-/* This function is called from ip_forward() and ipsec4_hdrsize_tcp(). */
+/* 
+ * This function is called from ipsec_hdrsiz_tcp(), ip_ipsec_mtu(),
+ * disabled ip6_ipsec_mtu() and ip6_forward().
+ */
 size_t
-ipsec4_hdrsiz(struct mbuf *m, u_int dir, struct inpcb *inp)
+ipsec_hdrsiz(struct mbuf *m, u_int dir, struct inpcb *inp)
 {
        INIT_VNET_IPSEC(curvnet);
        struct secpolicy *sp;
@@ -1598,7 +1474,7 @@ ipsec4_hdrsiz(struct mbuf *m, u_int dir,
                sp = ipsec_getpolicybysock(m, dir, inp, &error);
 
        if (sp != NULL) {
-               size = ipsec_hdrsiz(sp);
+               size = ipsec_hdrsiz_internal(sp);
                KEYDEBUG(KEYDEBUG_IPSEC_DATA,
                        printf("%s: size:%lu.\n", __func__,
                                (unsigned long)size));
@@ -1612,40 +1488,6 @@ ipsec4_hdrsiz(struct mbuf *m, u_int dir,
        return (size);
 }
 
-#ifdef INET6
-/* This function is called from ipsec6_hdrsize_tcp(),
- * and maybe from ip6_forward().
- */
-size_t
-ipsec6_hdrsiz(struct mbuf *m, u_int dir, struct inpcb *inp)
-{
-       INIT_VNET_IPSEC(curvnet);
-       struct secpolicy *sp;
-       int error;
-       size_t size;
-
-       IPSEC_ASSERT(m != NULL, ("null mbuf"));
-       IPSEC_ASSERT(inp == NULL || inp->inp_socket != NULL,
-               ("socket w/o inpcb"));
-
-       /* Get SP for this packet. */
-       /* XXX Is it right to call with IP_FORWARDING. */
-       if (inp == NULL)
-               sp = ipsec_getpolicybyaddr(m, dir, IP_FORWARDING, &error);
-       else
-               sp = ipsec_getpolicybysock(m, dir, inp, &error);
-
-       if (sp == NULL)
-               return (0);
-       size = ipsec_hdrsiz(sp);
-       KEYDEBUG(KEYDEBUG_IPSEC_DATA,
-               printf("%s: size:%lu.\n", __func__, (unsigned long)size));
-       KEY_FREESP(&sp);
-
-       return (size);
-}
-#endif /*INET6*/
-
 /*
  * Check the variable replay window.
  * ipsec_chkreplay() performs replay check before ICV verification.

Modified: head/sys/netipsec/ipsec.h
==============================================================================
--- head/sys/netipsec/ipsec.h   Sun Feb  8 08:26:58 2009        (r188305)
+++ head/sys/netipsec/ipsec.h   Sun Feb  8 09:27:07 2009        (r188306)
@@ -374,9 +374,9 @@ extern int ipsec_copy_policy
 extern u_int ipsec_get_reqlevel __P((struct ipsecrequest *));
 extern int ipsec_in_reject __P((struct secpolicy *, struct mbuf *));
 
-extern int ipsec4_set_policy __P((struct inpcb *inp, int optname,
+extern int ipsec_set_policy __P((struct inpcb *inp, int optname,
        caddr_t request, size_t len, struct ucred *cred));
-extern int ipsec4_get_policy __P((struct inpcb *inpcb, caddr_t request,
+extern int ipsec_get_policy __P((struct inpcb *inpcb, caddr_t request,
        size_t len, struct mbuf **mp));
 extern int ipsec_delete_pcbpolicy __P((struct inpcb *));
 extern int ipsec4_in_reject __P((struct mbuf *, struct inpcb *));
@@ -386,7 +386,7 @@ struct tcpcb;
 extern int ipsec_chkreplay __P((u_int32_t, struct secasvar *));
 extern int ipsec_updatereplay __P((u_int32_t, struct secasvar *));
 
-extern size_t ipsec4_hdrsiz __P((struct mbuf *, u_int, struct inpcb *));
+extern size_t ipsec_hdrsiz __P((struct mbuf *, u_int, struct inpcb *));
 extern size_t ipsec_hdrsiz_tcp __P((struct tcpcb *));
 
 union sockaddr_union;

Modified: head/sys/netipsec/ipsec6.h
==============================================================================
--- head/sys/netipsec/ipsec6.h  Sun Feb  8 08:26:58 2009        (r188305)
+++ head/sys/netipsec/ipsec6.h  Sun Feb  8 09:27:07 2009        (r188306)
@@ -50,16 +50,8 @@ extern int ip6_ipsec_ecn;
 
 struct inpcb;
 
-extern int ipsec6_set_policy __P((struct inpcb *inp, int optname,
-       caddr_t request, size_t len, struct ucred *cred));
-extern int ipsec6_get_policy
-       __P((struct inpcb *inp, caddr_t request, size_t len, struct mbuf **mp));
 extern int ipsec6_in_reject __P((struct mbuf *, struct inpcb *));
 
-struct tcp6cb;
-
-extern size_t ipsec6_hdrsiz __P((struct mbuf *, u_int, struct inpcb *));
-
 struct ip6_hdr;
 extern const char *ipsec6_logpacketstr __P((struct ip6_hdr *, u_int32_t));
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to