child-sa: Allow requesting different unique marks for in/out
authorEyal Birger <eyal.birger@gmail.com>
Fri, 28 Jul 2017 09:18:52 +0000 (12:18 +0300)
committerTobias Brunner <tobias@strongswan.org>
Mon, 7 Aug 2017 12:22:27 +0000 (14:22 +0200)
commit32e5c49234ce4af2ef375e3f1750fdb90f813905
tree67f49109d2d7884abbe3a4d74235487754210546
parent00498d78a81f1fcd344b1eb13461f1ed4e00bf01
child-sa: Allow requesting different unique marks for in/out

When requiring unique flags for CHILD_SAs, allow the configuration to
request different marks for each direction by using the %unique-dir keyword.

This is useful when different marks are desired for each direction but the
number of peers is not predefined.

An example use case is when implementing a site-to-site route-based VPN
without VTI devices.

A use of 0.0.0.0/0 - 0.0.0.0/0 traffic selectors with identical in/out marks
results in outbound traffic being wrongfully matched against the 'fwd'
policy - for which the underlay 'template' does not match - and dropped.

Using different marks for each direction avoids this issue as the 'fwd' policy
uses the 'in' mark will not match outbound traffic.

Closes strongswan/strongswan#78.
man/ipsec.conf.5.in
src/libcharon/sa/child_sa.c
src/libstrongswan/ipsec/ipsec_types.c
src/libstrongswan/ipsec/ipsec_types.h
src/swanctl/swanctl.opt