svn commit: r272695 - head/sys/net
Andrey V. Elsukov
ae at FreeBSD.org
Tue Oct 7 13:31:05 UTC 2014
Author: ae
Date: Tue Oct 7 13:31:04 2014
New Revision: 272695
URL: https://svnweb.freebsd.org/changeset/base/272695
Log:
Our packet filters use mbuf's rcvif pointer to determine incoming interface.
Change mbuf's rcvif to enc0 and restore it after pfil processing.
PR: 110959
Sponsored by: Yandex LLC
Modified:
head/sys/net/if_enc.c
Modified: head/sys/net/if_enc.c
==============================================================================
--- head/sys/net/if_enc.c Tue Oct 7 13:30:42 2014 (r272694)
+++ head/sys/net/if_enc.c Tue Oct 7 13:31:04 2014 (r272695)
@@ -230,6 +230,7 @@ ipsec_filter(struct mbuf **mp, int dir,
{
int error, i;
struct ip *ip;
+ struct ifnet *rcvif;
KASSERT(encif != NULL, ("%s: encif is null", __func__));
KASSERT(flags & (ENC_IN|ENC_OUT),
@@ -268,6 +269,8 @@ ipsec_filter(struct mbuf **mp, int dir,
}
error = 0;
+ rcvif = (*mp)->m_pkthdr.rcvif;
+ (*mp)->m_pkthdr.rcvif = encif;
ip = mtod(*mp, struct ip *);
switch (ip->ip_v) {
#ifdef INET
@@ -298,6 +301,7 @@ ipsec_filter(struct mbuf **mp, int dir,
if (error != 0)
goto bad;
+ (*mp)->m_pkthdr.rcvif = rcvif;
return (error);
bad:
More information about the svn-src-head
mailing list