Do not query CHILD_SA during delete if they already expired
[strongswan.git] / src / libcharon / processing / jobs / delete_child_sa_job.h
1 /*
2 * Copyright (C) 2006 Martin Willi
3 * Hochschule fuer Technik Rapperswil
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 * for more details.
14 */
15
16 /**
17 * @defgroup delete_child_sa_job delete_child_sa_job
18 * @{ @ingroup cjobs
19 */
20
21 #ifndef DELETE_CHILD_SA_JOB_H_
22 #define DELETE_CHILD_SA_JOB_H_
23
24 typedef struct delete_child_sa_job_t delete_child_sa_job_t;
25
26 #include <library.h>
27 #include <sa/ike_sa_id.h>
28 #include <processing/jobs/job.h>
29 #include <config/proposal.h>
30
31
32 /**
33 * Class representing an DELETE_CHILD_SA Job.
34 *
35 * This job initiates the delete of a CHILD SA.
36 */
37 struct delete_child_sa_job_t {
38 /**
39 * The job_t interface.
40 */
41 job_t job_interface;
42 };
43
44 /**
45 * Creates a job of type DELETE_CHILD_SA.
46 *
47 * The CHILD_SA is identified by its reqid, protocol (AH/ESP) and its
48 * inbound SPI.
49 *
50 * @param reqid reqid of the CHILD_SA, as used in kernel
51 * @param protocol protocol of the CHILD_SA
52 * @param spi security parameter index of the CHILD_SA
53 * @param expired TRUE if CHILD_SA already expired
54 * @return delete_child_sa_job_t object
55 */
56 delete_child_sa_job_t *delete_child_sa_job_create(u_int32_t reqid,
57 protocol_id_t protocol, u_int32_t spi, bool expired);
58
59 #endif /** DELETE_CHILD_SA_JOB_H_ @}*/