kernel-libipsec: Add a feature to request UDP encapsulation of ESP packets
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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),
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user