]> Git Repo - linux.git/blobdiff - net/xfrm/xfrm_policy.c
xfrm: add generic iptfs defines and functionality
[linux.git] / net / xfrm / xfrm_policy.c
index c04014ee623fbe17723d08263bf681c0186cea89..9e510021ee91ab05d2e49958dcd21aee516be44f 100644 (file)
@@ -2497,6 +2497,7 @@ xfrm_tmpl_resolve_one(struct xfrm_policy *policy, const struct flowi *fl,
                struct xfrm_tmpl *tmpl = &policy->xfrm_vec[i];
 
                if (tmpl->mode == XFRM_MODE_TUNNEL ||
+                   tmpl->mode == XFRM_MODE_IPTFS ||
                    tmpl->mode == XFRM_MODE_BEET) {
                        remote = &tmpl->id.daddr;
                        local = &tmpl->saddr;
@@ -3294,7 +3295,8 @@ no_transform:
 ok:
        xfrm_pols_put(pols, drop_pols);
        if (dst && dst->xfrm &&
-           dst->xfrm->props.mode == XFRM_MODE_TUNNEL)
+           (dst->xfrm->props.mode == XFRM_MODE_TUNNEL ||
+            dst->xfrm->props.mode == XFRM_MODE_IPTFS))
                dst->flags |= DST_XFRM_TUNNEL;
        return dst;
 
@@ -4523,6 +4525,7 @@ static int migrate_tmpl_match(const struct xfrm_migrate *m, const struct xfrm_tm
                switch (t->mode) {
                case XFRM_MODE_TUNNEL:
                case XFRM_MODE_BEET:
+               case XFRM_MODE_IPTFS:
                        if (xfrm_addr_equal(&t->id.daddr, &m->old_daddr,
                                            m->old_family) &&
                            xfrm_addr_equal(&t->saddr, &m->old_saddr,
@@ -4565,7 +4568,8 @@ static int xfrm_policy_migrate(struct xfrm_policy *pol,
                                continue;
                        n++;
                        if (pol->xfrm_vec[i].mode != XFRM_MODE_TUNNEL &&
-                           pol->xfrm_vec[i].mode != XFRM_MODE_BEET)
+                           pol->xfrm_vec[i].mode != XFRM_MODE_BEET &&
+                           pol->xfrm_vec[i].mode != XFRM_MODE_IPTFS)
                                continue;
                        /* update endpoints */
                        memcpy(&pol->xfrm_vec[i].id.daddr, &mp->new_daddr,
This page took 0.033823 seconds and 4 git commands to generate.