Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | ikev1: Fix calculation of the number of fragments | Tobias Brunner | 2013-08-15 | 1 | -1/+1 | |
| | | | | The old code resulted in too few fragments in some cases. | |||||
* | ikev1: When sending fragments, use ports to decide if a non-ESP marker is added | Tobias Brunner | 2013-08-15 | 1 | -6/+8 | |
| | | | | | This is same same logic used by sender and might apply in some cases (e.g. when initiating to port 4500). | |||||
* | ikev2: Fix segfault when reestablishing CHILD_SAs due to ↵ | Tobias Brunner | 2013-08-13 | 1 | -3/+4 | |
| | | | | | | closeaction=restart|hold This regression was introduced with c949a4d5. | |||||
* | ikev2: Only schedule half-open-timeout delete job after successfully ↵ | Tobias Brunner | 2013-07-29 | 1 | -8/+16 | |
| | | | | | | | handling IKE_SA_INIT We want to avoid this allocation if the initial message is invalid (e.g. if the message ID is != 0). | |||||
* | ikev1: Always send ID payloads (traffic selectors) during Quick Mode | Tobias Brunner | 2013-07-25 | 1 | -26/+4 | |
| | | | | | | | Especially Windows 7 has problems if the peer does not send ID payloads for host-to-host connections (tunnel and transport mode). Fixes #319. | |||||
* | Fix various API doc issues and typos | Tobias Brunner | 2013-07-18 | 6 | -13/+11 | |
| | | | | Partially based on an old patch by Adrian-Ken Rueegsegger. | |||||
* | ike: Fix reestablishing SAs if no child-creating tasks are queued | Tobias Brunner | 2013-07-18 | 1 | -2/+5 | |
| | ||||||
* | ike-sa: uninstall CHILD_SAs before removing virtual IPs | Martin Willi | 2013-07-18 | 1 | -1/+8 | |
| | | | | | | a3854d83 changed cleanup order. But we should remove CHILD_SAs first, as routes for CHILD_SAs might get deleted while removing virtual IPs, resulting in an error when a CHILD_SA tries to uninstall its route. | |||||
* | ikev1: Reestablish IKE_SA/CHILD_SAs if it gets deleted by the peer | Tobias Brunner | 2013-07-17 | 1 | -0/+5 | |
| | | | | | We call ike_sa_t.reestablish() so the IKE_SA is only recreated if any CHILD_SA requires it. | |||||
* | ike: Migrate queued CHILD_SA-creating tasks when reestablishing an IKE_SA | Tobias Brunner | 2013-07-17 | 4 | -2/+115 | |
| | ||||||
* | ikev1: Support closeaction of CHILD_SA. | Oliver Smith | 2013-07-17 | 1 | -7/+49 | |
| | | | | | | When a CHILD_SA is closed in IKEv1, if it is not being rekeyed and closeaction has been set, we can now perform a restart or hold as is currently done for IKEv2. | |||||
* | 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 | 7 | -59/+78 | |
| | | | | | Not directly returning a linked list allows us to change the internals of the CHILD_SA transparently. | |||||
* | ikev2: replace linked lists by arrays in task manager | Martin Willi | 2013-07-17 | 1 | -70/+76 | |
| | | | | Eliminates another three lists, 0.5KB per IKE_SA. | |||||
* | ike-sa: use arrays instead of linked lists in long lived collections | Martin Willi | 2013-07-17 | 1 | -116/+98 | |
| | | | | This saves about 1.5KB of memory per IKE_SA. | |||||
* | ike: Resolve hosts only for address families currently supported | Tobias Brunner | 2013-07-05 | 1 | -3/+16 | |
| | ||||||
* | Reuse reqid when restarting CHILD_SAs for dpd|closeaction=restart | Tobias Brunner | 2013-07-01 | 2 | -3/+4 | |
| | ||||||
* | Reuse reqid for trap policies installed for dpd|closeaction=hold | Tobias Brunner | 2013-07-01 | 4 | -5/+8 | |
| | ||||||
* | ikev2: keep the CHILD_SA we delete as initiator in the list to destroy | Martin Willi | 2013-06-25 | 1 | -6/+5 | |
| | | | | | If the responder not correctly send the correct protocol or SPI in the delete response, we should remove the CHILD_SA regardless. | |||||
* | ike: Force NAT-T/UDP encapsulation if kernel interface requires it | Tobias Brunner | 2013-06-21 | 2 | -5/+32 | |
| | ||||||
* | ikev2: use protocol of selected proposal to delete a failed CHILD_SA | Martin Willi | 2013-06-20 | 1 | -2/+2 | |
| | | | | Depending on the failure, the protocol might not yet be set on the CHILD_SA. | |||||
* | ikev2: properly fall back to tunnel mode if transport/BEET mode not configured | Martin Willi | 2013-06-19 | 1 | -2/+8 | |
| | ||||||
* | ikev2: support transport mode over NAT | Martin Willi | 2013-06-19 | 1 | -36/+150 | |
| | ||||||
* | 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. | |||||
* | trap-manager: add a method to find reqid for installed traps by config | Martin Willi | 2013-06-19 | 2 | -2/+38 | |
| | ||||||
* | trap-manager: don't check-in nonexisting IKE_SA if acquire fails | Martin Willi | 2013-06-19 | 1 | -2/+1 | |
| | ||||||
* | trap-manager: fix a memleak when installing a trap to %any | Martin Willi | 2013-06-19 | 1 | -0/+1 | |
| | ||||||
* | kernel-interface: add an exchange initiator parameter to add_sa() | Martin Willi | 2013-06-11 | 4 | -21/+28 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 IKE_SA unique IDs are unique | Martin Willi | 2013-06-11 | 1 | -2/+2 | |
| | ||||||
* | Use ref_get() to make sure CHILD_SA reqids are unique | Martin Willi | 2013-06-11 | 1 | -2/+9 | |
| | ||||||
* | ikev1: keep vendor ID task alive during full Main/Aggressive Mode | Martin Willi | 2013-06-11 | 1 | -8/+75 | |
| | | | | Fixes DPD with Cisco IOS sending the DPD vendor ID not in the first message. | |||||
* | ikev2: if installing a CHILD_SA as initiator fails, notify the responder | Martin Willi | 2013-06-11 | 1 | -2/+36 | |
| | ||||||
* | ikev2: raise LOCAL_AUTH_FAILED when receiving INFORMATIONAL with AUTH_FAILED | Martin Willi | 2013-06-11 | 1 | -0/+8 | |
| | ||||||
* | ikev2: close an established IKE_SA when receiving AUTHENTICATION_FAILED | Martin Willi | 2013-06-11 | 1 | -0/+6 | |
| | | | | | | RFC 5996 compatible implementations MAY send an INFORMATIONAL message with an AUTHENTICATION_FAILED if the initiator failed to authenticate us. Handle such a message like a DELETE for an IKE_SA. | |||||
* | ikev2: if responder authentication fails, send AUTHENTICATION_FAILED | Martin Willi | 2013-06-11 | 1 | -0/+29 | |
| | | | | | | | According to RFC 5996, we MAY send an INFORMATIONAL message having an AUTHENTICATION_FAILED. We don't do any retransmits, though, but just close the IKE_SA after one message has been sent, avoiding the danger that an unauthenticated IKE_SA stays alive. | |||||
* | Allow IPComp on NATed connections, both for IKEv1 and IKEv2 | Martin Willi | 2013-06-11 | 2 | -33/+10 | |
| | | | | | | While this was problematic in earlier releases, it seems that it works just fine the way we handle compression now. So there is no need to disable it over NATed connections or when using forceencaps. | |||||
* | Properly compare CHILD_SAs during rekey collision | Tobias Brunner | 2013-06-11 | 1 | -5/+12 | |
| | | | | | | | The previous code did not properly check for the situation when the DELETE for a redundant CHILD_SA created by a responder during a CHILD_SA rekey collision arrives before the responder's answer to the initiator's winning CREATE_CHILD_SA request. | |||||
* | Raise LOCAL_AUTH_FAILED alert after receiving AUTHENTICATION_FAILURE | Martin Willi | 2013-05-15 | 1 | -0/+1 | |
| | ||||||
* | 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. | |||||
* | Raise an ALERT_PROPOSAL_MISMATCH_CHILD also when receiving NO_PROPOSAL_CHOSEN | Martin Willi | 2013-05-06 | 1 | -0/+20 | |
| | ||||||
* | Raise an ALERT_PROPOSAL_MISMATCH_IKE also when receiving NO_PROPOSAL_CHOSEN | Martin Willi | 2013-05-06 | 1 | -0/+20 | |
| | ||||||
* | Don't unset IKE_SA on bus before we released virtual IPs and attributes | Martin Willi | 2013-05-06 | 1 | -10/+8 | |
| | ||||||
* | emit a single assig_vips bus message for all VIPs | Andreas Steffen | 2013-04-06 | 2 | -6/+10 | |
| | ||||||
* | ifmap plugin subscribes to assing_vip bus signal | Andreas Steffen | 2013-04-06 | 1 | -0/+6 | |
| | ||||||
* | Refactor check_for_rekeyed_child() in quick_mode task | Martin Willi | 2013-04-03 | 1 | -18/+24 | |
| | ||||||
* | Reuse reqid of an existing Quick Mode, even if it has been rekeyed | Martin Willi | 2013-04-03 | 1 | -1/+2 | |
| | | | | | | If two peers rekey Quick Modes at the same time, the original Quick Mode is in REKEYING state and hence the requid is not reused. This is required though, as two identical policies won't work if they have different requids. | |||||
* | Defer CHILD_SA rekeying if allocating an SPI fails | Martin Willi | 2013-04-03 | 2 | -12/+26 | |
| |