strongswan/src/libfreeswan/ipsec_proto.h

112 lines
2.9 KiB
C

/*
* @(#) prototypes for FreeSWAN functions
*
* Copyright (C) 2001 Richard Guy Briggs <rgb@freeswan.org>
* and Michael Richardson <mcr@freeswan.org>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* RCSID $Id: ipsec_proto.h,v 1.3 2004/06/13 19:55:14 as Exp $
*
*/
#ifndef _IPSEC_PROTO_H_
#include "ipsec_param.h"
/*
* This file is a kernel only file that declares prototypes for
* all intra-module function calls and global data structures.
*
* Include this file last.
*
*/
/* ipsec_init.c */
extern struct prng ipsec_prng;
/* ipsec_sa.c */
extern struct ipsec_sa *ipsec_sadb_hash[SADB_HASHMOD];
extern spinlock_t tdb_lock;
extern int ipsec_sadb_init(void);
extern struct ipsec_sa *ipsec_sa_getbyid(struct sa_id*);
extern int ipsec_sa_put(struct ipsec_sa *);
extern /* void */ int ipsec_sa_del(struct ipsec_sa *);
extern /* void */ int ipsec_sa_delchain(struct ipsec_sa *);
extern /* void */ int ipsec_sa_add(struct ipsec_sa *);
extern int ipsec_sadb_cleanup(__u8);
extern int ipsec_sa_wipe(struct ipsec_sa *);
/* debug declarations */
/* ipsec_proc.c */
extern int ipsec_proc_init(void);
extern void ipsec_proc_cleanup(void);
/* ipsec_radij.c */
extern int ipsec_makeroute(struct sockaddr_encap *ea,
struct sockaddr_encap *em,
struct sa_id said,
uint32_t pid,
struct sk_buff *skb,
struct ident *ident_s,
struct ident *ident_d);
extern int ipsec_breakroute(struct sockaddr_encap *ea,
struct sockaddr_encap *em,
struct sk_buff **first,
struct sk_buff **last);
int ipsec_radijinit(void);
int ipsec_cleareroutes(void);
int ipsec_radijcleanup(void);
/* ipsec_life.c */
extern enum ipsec_life_alive ipsec_lifetime_check(struct ipsec_lifetime64 *il64,
const char *lifename,
const char *saname,
enum ipsec_life_type ilt,
enum ipsec_direction idir,
struct ipsec_sa *ips);
extern int ipsec_lifetime_format(char *buffer,
int buflen,
char *lifename,
enum ipsec_life_type timebaselife,
struct ipsec_lifetime64 *lifetime);
extern void ipsec_lifetime_update_hard(struct ipsec_lifetime64 *lifetime,
__u64 newvalue);
extern void ipsec_lifetime_update_soft(struct ipsec_lifetime64 *lifetime,
__u64 newvalue);
#ifdef CONFIG_IPSEC_DEBUG
extern int debug_xform;
extern int debug_eroute;
extern int debug_spi;
extern int debug_netlink;
#endif /* CONFIG_IPSEC_DEBUG */
#define _IPSEC_PROTO_H
#endif /* _IPSEC_PROTO_H_ */