diff options
author | Martin Willi <martin@revosec.ch> | 2013-02-21 09:39:23 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2013-03-01 11:11:24 +0100 |
commit | 76f7d80e80c3217979e92548f7f93cdb96d9f6c5 (patch) | |
tree | 5ab2c971f6f74083bd07bcbf2fa8e7addb9bf728 /src/libhydra/kernel/kernel_interface.h | |
parent | d830174e3c5d6fb0978384f43893ca9cfbe4e1e0 (diff) | |
download | strongswan-76f7d80e80c3217979e92548f7f93cdb96d9f6c5.tar.bz2 strongswan-76f7d80e80c3217979e92548f7f93cdb96d9f6c5.tar.xz |
Introduce "features" for the kernel backends returning kernel capabilities
Diffstat (limited to 'src/libhydra/kernel/kernel_interface.h')
-rw-r--r-- | src/libhydra/kernel/kernel_interface.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/libhydra/kernel/kernel_interface.h b/src/libhydra/kernel/kernel_interface.h index 8d8ef2e83..8d8d048d0 100644 --- a/src/libhydra/kernel/kernel_interface.h +++ b/src/libhydra/kernel/kernel_interface.h @@ -47,6 +47,7 @@ #define KERNEL_INTERFACE_H_ typedef struct kernel_interface_t kernel_interface_t; +typedef enum kernel_feature_t kernel_feature_t; #include <networking/host.h> #include <crypto/prf_plus.h> @@ -56,6 +57,17 @@ typedef struct kernel_interface_t kernel_interface_t; #include <kernel/kernel_net.h> /** + * Bitfield of optional features a kernel backend supports. + * + * This feature-set is for both, kernel_ipsec_t and kernel_net_t. Each + * backend returns a subset of these features. + */ +enum kernel_feature_t { + /** IPsec can process ESPv3 (RFC 4303) TFC padded packets */ + KERNEL_ESP_V3_TFC = (1<<0), +}; + +/** * Constructor function for ipsec kernel interface */ typedef kernel_ipsec_t* (*kernel_ipsec_constructor_t)(void); @@ -74,6 +86,13 @@ typedef kernel_net_t* (*kernel_net_constructor_t)(void); struct kernel_interface_t { /** + * Get the feature set supported by the net and ipsec kernel backends. + * + * @return ORed feature-set of backends + */ + kernel_feature_t (*get_features)(kernel_interface_t *this); + + /** * Get a SPI from the kernel. * * @param src source address of SA |