Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | child-sa: Set replay window on both inbound and outbound SA | Martin Willi | 2014-06-18 | 1 | -6/+2 |
| | | | | | | | | While the outbound SA actually does not need a replay window, the kernel rejects zero replay windows on SAs using ESN. The ESN flag is required to use the full sequence number in ICV calculation, hence we set the replay window. This restores the behavior we had before 30c009c2. | ||||
* | kernel-interface: Add a replay_window parameter to add_sa() | Martin Willi | 2014-06-17 | 1 | -2/+6 |
| | |||||
* | child-sa: Pass the number of total policies tied to an SA to the kernel | Martin Willi | 2014-06-04 | 1 | -0/+8 |
| | | | | | This will be useful if the kernel backend has to know how many policies follow an SA install, for example if it must install all policies concurrently. | ||||
* | kernel-interface: Add a flag to indicate no policy updates required | Martin Willi | 2014-06-04 | 1 | -3/+14 |
| | |||||
* | child-sa: Reclaim old state if SA updating is not supported | Martin Willi | 2014-05-09 | 1 | -0/+2 |
| | | | | | If the state stays at UPDATING, the fallback using IKEv1 rekeying fails as the task manager refuses to rekey a CHILD_SA in non-INSTALLED state. | ||||
* | child-sa: Add a getter for CHILD_SA install time | Martin Willi | 2014-01-23 | 1 | -0/+13 |
| | |||||
* | kernel: Use a time_t to report use time in query_policy() | Martin Willi | 2013-10-11 | 1 | -2/+2 |
| | |||||
* | kernel: Use a time_t to report use time in query_sa() | Martin Willi | 2013-10-11 | 1 | -3/+3 |
| | |||||
* | child-sa: Save protocol during SPI allocation | Martin Willi | 2013-10-11 | 1 | -6/+3 |
| | | | | | This allows us to properly delete the incomplete SA with the correct protocol should negotiation fail. | ||||
* | child-sa: refactor proxy transport mode address lookup | Martin Willi | 2013-07-17 | 1 | -56/+42 |
| | |||||
* | child-sa: replace traffic selector lists by arrays | Martin Willi | 2013-07-17 | 1 | -18/+19 |
| | | | | Saves up to another 0.5KB of memory per CHILD_SA. | ||||
* | child-sa: replace get_traffic_selectors() with create_ts_enumerator() | Martin Willi | 2013-07-17 | 1 | -4/+8 |
| | | | | | Not directly returning a linked list allows us to change the internals of the CHILD_SA transparently. | ||||
* | ike: reuse the reqid of an installed trap having the same config | Martin Willi | 2013-06-19 | 1 | -1/+5 |
| | | | | | | | When we have a trap installed, but a CHILD_SA gets established for the same config from the peer, we should reuse the same reqid. Otherwise we would have two identical policies using different reqids, what we can't handle in our kernel backend. | ||||
* | kernel-interface: add an exchange initiator parameter to add_sa() | Martin Willi | 2013-06-11 | 1 | -4/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new flag gives the kernel-interface a hint how it should priorize the use of newly installed SAs during rekeying. Consider the following rekey procedure in IKEv2: Initiator --- Responder I1 -------CREATE-------> R1 I2 <------CREATE-------- -------DELETE-------> R2 I3 <------DELETE-------- SAs are always handled as pairs, the following happens at the SA level: * Initiator starts the exchange at I1 * Responder installs new SA pair at R1 * Initiator installs new SA pair at I2 * Responder removes old SA pair at R2 * Initiator removes old SA pair at I3 This makes sure SAs get installed/removed overlapping during rekeying. However, to avoid any packet loss, it is crucial that the new outbound SA gets activated at the correct position: * as exchange initiator, in I2 * as exchange responder, in R2 This should guarantee that we don't use the new outbound SA before the peer could install its corresponding inbound SA. The new parameter allows the kernel backend to install the new SA with appropriate priorities, i.e. it should: * as exchange inititator, have the new outbound SA installed with higher priority than the old SA * as exchange responder, have the new outbound SA installed with lower priority than the old SA While we could split up the SA installation at the responder, this approach has another advantage: it allows the kernel backend to switch SAs based on other criteria, for example when receiving traffic on the new inbound SA. | ||||
* | Use ref_get() to make sure CHILD_SA reqids are unique | Martin Willi | 2013-06-11 | 1 | -2/+9 |
| | |||||
* | kernel-interface: query SAD for last use time if SPD query didn't yield one | Martin Willi | 2013-05-06 | 1 | -5/+19 |
| | |||||
* | child-sa: query SAD/SPD just for what we actually need to update statistics | Martin Willi | 2013-05-06 | 1 | -2/+5 |
| | |||||
* | child-sa: pass traffic selector to add_sa() regardless of IPsec mode | Martin Willi | 2013-05-06 | 1 | -14/+11 |
| | | | | | This lets the kernel backend decide what to do with it, and in fact all kernel interfaces already handle this correctly. | ||||
* | child_sa_t.get_usestats() can additionally return the number of processed ↵ | Martin Willi | 2013-03-14 | 1 | -1/+6 |
| | | | | packets | ||||
* | kernel_ipsec_t.query_sa() additionally returns the number of processed packets | Martin Willi | 2013-03-14 | 1 | -3/+15 |
| | |||||
* | Don't wait while removing external IPs used for load testing | Martin Willi | 2012-11-29 | 1 | -1/+1 |
| | |||||
* | Install virtual IPs via interface name, and use an interface lookup where ↵ | Martin Willi | 2012-11-29 | 1 | -2/+9 |
| | | | | required | ||||
* | Add an optional kernel-interface parameter to install IPs with a custom prefix | Martin Willi | 2012-11-29 | 1 | -2/+2 |
| | |||||
* | Derive a dynamic TS to multiple virtual IPs | Martin Willi | 2012-09-18 | 1 | -3/+7 |
| | |||||
* | Support multiple virtual IPs on peer_cfg and ike_sa classes | Martin Willi | 2012-08-30 | 1 | -9/+12 |
| | |||||
* | Store shorter soft lifetime of in- and outbound SAs only | Martin Willi | 2012-06-08 | 1 | -1/+8 |
| | |||||
* | Mark CHILD_SAs used for trap policies to uninstall them properly. | Tobias Brunner | 2012-06-04 | 1 | -6/+13 |
| | | | | | | | If the installation failed the state is not CHILD_ROUTED which means the wrong priority is used to uninstall the policies. This is a problem for kernel interfaces that keep track of installed policies as now the proper policy is not found (if the priority is considered). | ||||
* | Added a getter for CHILD_SA marks | Martin Willi | 2012-03-22 | 1 | -0/+11 |
| | |||||
* | Define a special XFRM mark_t.value that dynamically uses the CHILD_SA reqid | Martin Willi | 2012-03-22 | 1 | -0/+9 |
| | |||||
* | typos: initator->initiator, authenticaion->authentication. | Tobias Brunner | 2011-08-15 | 1 | -1/+1 |
| | |||||
* | Update fallback drop policies if required. | Tobias Brunner | 2011-07-29 | 1 | -2/+20 |
| | |||||
* | Install fallback drop policies for all three directions. | Tobias Brunner | 2011-07-28 | 1 | -65/+66 |
| | |||||
* | Install fallback drop policies to avoid transmitting unencrypted packets. | Tobias Brunner | 2011-07-27 | 1 | -0/+17 |
| | | | | | | | During the update of a CHILD_SA (e.g. caused by MOBIKE) the old policy is first uninstalled and then the new one is installed. In the short time in between, where no policy is available in the kernel, unencrypted packets could have been transmitted. | ||||
* | Remove policies in kernel interfaces based on their priority. | Tobias Brunner | 2011-07-27 | 1 | -15/+21 |
| | | | | | | This allows to unroute a connection while the same connection is currently established. In this case both CHILD_SAs share the same reqid but the installed policies have different priorities. | ||||
* | Add the reqid to kernel_ipsec_t.del_policy. | Tobias Brunner | 2011-07-06 | 1 | -6/+12 |
| | |||||
* | Install ESN SAs if such a proposal has been negotiated | Martin Willi | 2011-04-20 | 1 | -1/+4 |
| | |||||
* | Added an esn parameter to the kernel interface add_sa functions | Martin Willi | 2011-04-20 | 1 | -1/+1 |
| | |||||
* | Do not use TFC padding if peer does not support ESPv3 | Martin Willi | 2010-12-20 | 1 | -2/+5 |
| | |||||
* | Added a TFC padding option to child_cfg | Martin Willi | 2010-12-20 | 1 | -0/+2 |
| | |||||
* | Implemented Traffic Flow Confidentiality padding in kernel_interface | Martin Willi | 2010-12-20 | 1 | -1/+2 |
| | |||||
* | Install selectors on transport mode IPsec SAs. | Jiri Bohac | 2010-12-13 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | This fixes several test cases in IKEv2_Self_Test (part of the IPv6 Ready Logo Program) which is required for USGv6 certification, namely: - IKEv2.EN.I.1.1.7.1, IKEv2.EN.I.1.1.7.1: Narrowing the range of members of the set of traffic selectors - IKEv2.EN.R.1.1.7.3: Narrowing multiple traffic selector When traffic selectors of a triggered SA are narrowed by the responder, the installed policy and the broader trap policy share the same reqid. Without selectors on the IPsec SA packets matching the trap policy, but not the narrowed policy, would incorrectly be handled by that IPsec SA. Since only one selector can be specified per IPsec SA, there is currently no solution for tunnel mode SAs. | ||||
* | Adapted child_sa_t to changed kernel interface. | Tobias Brunner | 2010-09-02 | 1 | -25/+49 |
| | |||||
* | Added an option to specify the type of a policy to kernel_ipsec.add_policy. | Tobias Brunner | 2010-09-02 | 1 | -18/+18 |
| | | | | | This will later allow us to support pluto's passthrough and drop policies in charon. | ||||
* | Replaced the protocol argument in add_policy with an optional SPI for an AH SA. | Tobias Brunner | 2010-09-02 | 1 | -18/+37 |
| | |||||
* | Refer to kernel interface via hydra and not charon. | Tobias Brunner | 2010-09-02 | 1 | -31/+32 |
| | |||||
* | Removed references to protocol_id_t from kernel interface. | Tobias Brunner | 2010-09-02 | 1 | -37/+65 |
| | | | | | Instead we use the actual IP protocol identifier (the conversion now happens in child_sa_t and kernel_handler_t). | ||||
* | Migrated child_sa_t to INIT/METHOD macros. | Tobias Brunner | 2010-09-02 | 1 | -202/+132 |
| | |||||
* | support of xfrm marks for IKEv2 | Andreas Steffen | 2010-07-02 | 1 | -34/+48 |
| | |||||
* | Wrap getters for dpd/close action into CHILD_SA, allows us to override them | Martin Willi | 2010-06-02 | 1 | -0/+48 |
| | |||||
* | Use reqid from connection config if present. | Reto Buerki | 2010-05-04 | 1 | -2/+6 |
| |