Author: ae
Date: Fri Nov  7 12:05:20 2014
New Revision: 274230
URL: https://svnweb.freebsd.org/changeset/base/274230

Log:
  Pass mbuf to pfil processing before stripping outer IP header as it
  is described in if_enc(4).
  
  MFC after:    2 week
  Sponsored by: Yandex LLC

Modified:
  head/sys/netipsec/ipsec_input.c

Modified: head/sys/netipsec/ipsec_input.c
==============================================================================
--- head/sys/netipsec/ipsec_input.c     Fri Nov  7 12:00:32 2014        
(r274229)
+++ head/sys/netipsec/ipsec_input.c     Fri Nov  7 12:05:20 2014        
(r274230)
@@ -379,15 +379,10 @@ ipsec4_common_input_cb(struct mbuf *m, s
        if_inc_counter(encif, IFCOUNTER_IPACKETS, 1);
        if_inc_counter(encif, IFCOUNTER_IBYTES, m->m_pkthdr.len);
 
-       /*
-        * Pass the mbuf to enc0 for bpf and pfil. We will filter the IPIP
-        * packet later after it has been decapsulated.
-        */
+       /* Pass the mbuf to enc0 for bpf and pfil. */
        ipsec_bpf(m, sav, AF_INET, ENC_IN|ENC_BEFORE);
-
-       if (prot != IPPROTO_IPIP)
-               if ((error = ipsec_filter(&m, PFIL_IN, ENC_IN|ENC_BEFORE)) != 0)
-                       return (error);
+       if ((error = ipsec_filter(&m, PFIL_IN, ENC_IN|ENC_BEFORE)) != 0)
+               return (error);
 #endif /* DEV_ENC */
 
        /* IP-in-IP encapsulation */
@@ -683,16 +678,10 @@ ipsec6_common_input_cb(struct mbuf *m, s
        if_inc_counter(encif, IFCOUNTER_IPACKETS, 1);
        if_inc_counter(encif, IFCOUNTER_IBYTES, m->m_pkthdr.len);
 
-       /*
-        * Pass the mbuf to enc0 for bpf and pfil. We will filter the IPIP
-        * packet later after it has been decapsulated.
-        */
+       /* Pass the mbuf to enc0 for bpf and pfil. */
        ipsec_bpf(m, sav, AF_INET6, ENC_IN|ENC_BEFORE);
-
-       /* XXX-BZ does not make sense. */
-       if (prot != IPPROTO_IPIP)
-               if ((error = ipsec_filter(&m, PFIL_IN, ENC_IN|ENC_BEFORE)) != 0)
-                       return (error);
+       if ((error = ipsec_filter(&m, PFIL_IN, ENC_IN|ENC_BEFORE)) != 0)
+               return (error);
 #endif /* DEV_ENC */
 
 #ifdef INET
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to