kernel-libipsec: Add a feature to request UDP encapsulation of ESP packets

This commit is contained in:
Tobias Brunner
2013-06-21 17:03:21 +02:00
parent 66aaabf342
commit 35fe41f7d0
2 changed files with 9 additions and 0 deletions
@@ -223,6 +223,12 @@ static void expire(u_int32_t reqid, u_int8_t protocol, u_int32_t spi, bool hard)
spi, hard); spi, hard);
} }
METHOD(kernel_ipsec_t, get_features, kernel_feature_t,
private_kernel_libipsec_ipsec_t *this)
{
return KERNEL_REQUIRE_UDP_ENCAPSULATION;
}
METHOD(kernel_ipsec_t, get_spi, status_t, METHOD(kernel_ipsec_t, get_spi, status_t,
private_kernel_libipsec_ipsec_t *this, host_t *src, host_t *dst, private_kernel_libipsec_ipsec_t *this, host_t *src, host_t *dst,
u_int8_t protocol, u_int32_t reqid, u_int32_t *spi) u_int8_t protocol, u_int32_t reqid, u_int32_t *spi)
@@ -628,6 +634,7 @@ kernel_libipsec_ipsec_t *kernel_libipsec_ipsec_create()
INIT(this, INIT(this,
.public = { .public = {
.interface = { .interface = {
.get_features = _get_features,
.get_spi = _get_spi, .get_spi = _get_spi,
.get_cpi = _get_cpi, .get_cpi = _get_cpi,
.add_sa = _add_sa, .add_sa = _add_sa,
+2
View File
@@ -67,6 +67,8 @@ enum kernel_feature_t {
KERNEL_ESP_V3_TFC = (1<<0), KERNEL_ESP_V3_TFC = (1<<0),
/** Networking requires an "exclude" route for IKE/ESP packets */ /** Networking requires an "exclude" route for IKE/ESP packets */
KERNEL_REQUIRE_EXCLUDE_ROUTE = (1<<1), KERNEL_REQUIRE_EXCLUDE_ROUTE = (1<<1),
/** IPsec implementation requires UDP encapsulation of ESP packets */
KERNEL_REQUIRE_UDP_ENCAPSULATION = (1<<2),
}; };
/** /**