源码地带 > 电路图 > 电子资料下载 > 网络 >ipsec vpn > 查看压缩包源码

ipsec vpn

源代码在线查看: ipsec_xmit.h

软件大小: 3514 K
上传用户: akk79600872
关键词: ipsec vpn
下载地址: 免注册下载 普通下载 VIP

相关代码

				/*				 * IPSEC tunneling code				 * Copyright (C) 1996, 1997  John Ioannidis.				 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003  Richard Guy Briggs.				 * 				 * 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 .				 * 				 * 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_xmit.h,v 1.14 2005/05/11 01:00:26 mcr Exp $				 */								#include "openswan/ipsec_sa.h"								enum ipsec_xmit_value				{					IPSEC_XMIT_STOLEN=2,					IPSEC_XMIT_PASS=1,					IPSEC_XMIT_OK=0,					IPSEC_XMIT_ERRMEMALLOC=-1,					IPSEC_XMIT_ESP_BADALG=-2,					IPSEC_XMIT_BADPROTO=-3,					IPSEC_XMIT_ESP_PUSHPULLERR=-4,					IPSEC_XMIT_BADLEN=-5,					IPSEC_XMIT_AH_BADALG=-6,					IPSEC_XMIT_SAIDNOTFOUND=-7,					IPSEC_XMIT_SAIDNOTLIVE=-8,					IPSEC_XMIT_REPLAYROLLED=-9,					IPSEC_XMIT_LIFETIMEFAILED=-10,					IPSEC_XMIT_CANNOTFRAG=-11,					IPSEC_XMIT_MSSERR=-12,					IPSEC_XMIT_ERRSKBALLOC=-13,					IPSEC_XMIT_ENCAPFAIL=-14,					IPSEC_XMIT_NODEV=-15,					IPSEC_XMIT_NOPRIVDEV=-16,					IPSEC_XMIT_NOPHYSDEV=-17,					IPSEC_XMIT_NOSKB=-18,					IPSEC_XMIT_NOIPV6=-19,					IPSEC_XMIT_NOIPOPTIONS=-20,					IPSEC_XMIT_TTLEXPIRED=-21,					IPSEC_XMIT_BADHHLEN=-22,					IPSEC_XMIT_PUSHPULLERR=-23,					IPSEC_XMIT_ROUTEERR=-24,					IPSEC_XMIT_RECURSDETECT=-25,					IPSEC_XMIT_IPSENDFAILURE=-26,					IPSEC_XMIT_ESPUDP=-27,					IPSEC_XMIT_ESPUDP_BADTYPE=-28,				};								struct ipsec_xmit_state				{					struct sk_buff *skb;		/* working skb pointer */					struct net_device *dev;		/* working dev pointer */					struct ipsecpriv *prv;		/* Our device' private space */					struct sk_buff *oskb;		/* Original skb pointer */					struct net_device_stats *stats;	/* This device's statistics */					struct iphdr  *iph;		/* Our new IP header */					__u32   newdst;			/* The other SG's IP address */					__u32	orgdst;			/* Original IP destination address */					__u32	orgedst;		/* 1st SG's IP address */					__u32   newsrc;			/* The new source SG's IP address */					__u32	orgsrc;			/* Original IP source address */					__u32	innersrc;		/* Innermost IP source address */					int	iphlen;			/* IP header length */					int	pyldsz;			/* upper protocol payload size */					int	headroom;					int	tailroom;				        int     authlen;					int     max_headroom;		/* The extra header space needed */					int	max_tailroom;		/* The extra stuffing needed */					int     ll_headroom;		/* The extra link layer hard_header space needed */					int     tot_headroom;		/* The total header space needed */					int	tot_tailroom;		/* The totalstuffing needed */					__u8	*saved_header;		/* saved copy of the hard header */					unsigned short   sport, dport;									struct sockaddr_encap matcher;	/* eroute search key */					struct eroute *eroute;					struct ipsec_sa *ipsp, *ipsq;	/* ipsec_sa pointers */					char sa_txt[SATOT_BUF];					size_t sa_len;					int hard_header_stripped;	/* has the hard header been removed yet? */					int hard_header_len;					struct net_device *physdev;				/*	struct device *virtdev; */					short physmtu;					short cur_mtu;          /* copy of prv->mtu, cause prv may == NULL */					short mtudiff;				#ifdef NET_21					struct rtable *route;				#endif /* NET_21 */					ip_said outgoing_said;				#ifdef NET_21					int pass;				#endif /* NET_21 */					int error;					uint32_t eroute_pid;					struct ipsec_sa ips;				#ifdef CONFIG_IPSEC_NAT_TRAVERSAL					uint8_t natt_type;					uint8_t natt_head;					uint16_t natt_sport;					uint16_t natt_dport;				#endif				};								enum ipsec_xmit_value				ipsec_xmit_sanity_check_dev(struct ipsec_xmit_state *ixs);								enum ipsec_xmit_value				ipsec_xmit_sanity_check_skb(struct ipsec_xmit_state *ixs);								enum ipsec_xmit_value				ipsec_xmit_encap_bundle(struct ipsec_xmit_state *ixs);								extern void ipsec_extract_ports(struct iphdr * iph, struct sockaddr_encap * er);												extern int ipsec_xmit_trap_count;				extern int ipsec_xmit_trap_sendcount;								#ifdef CONFIG_KLIPS_DEBUG				extern int debug_tunnel;								#define debug_xmit debug_tunnel								#define ipsec_xmit_dmp(_x,_y, _z) if (debug_xmit && sysctl_ipsec_debug_verbose) ipsec_dmp_block(_x,_y,_z)				#else				#define ipsec_xmit_dmp(_x,_y, _z) do {} while(0)								#endif /* CONFIG_KLIPS_DEBUG */								extern int sysctl_ipsec_debug_verbose;				extern int sysctl_ipsec_icmp;				extern int sysctl_ipsec_tos;												/*				 * $Log: ipsec_xmit.h,v $				 * Revision 1.14  2005/05/11 01:00:26  mcr				 * 	do not call debug routines if !defined KLIPS_DEBUG.				 *				 * Revision 1.13  2005/04/29 05:01:38  mcr				 * 	use ipsec_dmp_block.				 * 	added cur_mtu to ixs instead of using ixs->dev.				 *				 * Revision 1.12  2004/08/20 21:45:37  mcr				 * 	CONFIG_KLIPS_NAT_TRAVERSAL is not used in an attempt to				 * 	be 26sec compatible. But, some defines where changed.				 *				 * Revision 1.11  2004/08/03 18:18:21  mcr				 * 	in 2.6, use "net_device" instead of #define device->net_device.				 * 	this probably breaks 2.0 compiles.				 *				 * Revision 1.10  2004/07/10 19:08:41  mcr				 * 	CONFIG_IPSEC -> CONFIG_KLIPS.				 *				 * Revision 1.9  2004/04/06 02:49:08  mcr				 * 	pullup of algo code from alg-branch.				 *				 * Revision 1.8  2004/04/05 19:55:07  mcr				 * Moved from linux/include/freeswan/ipsec_xmit.h,v				 *				 * Revision 1.7  2004/02/03 03:11:40  mcr				 * 	new xmit type if the UDP encapsulation is wrong.				 *				 * Revision 1.6  2003/12/13 19:10:16  mcr				 * 	refactored rcv and xmit code - same as FS 2.05.				 *				 * Revision 1.5  2003/12/10 01:20:06  mcr				 * 	NAT-traversal patches to KLIPS.				 *				 * Revision 1.4  2003/12/06 16:37:04  mcr				 * 	1.4.7a X.509 patch applied.				 *				 * Revision 1.3  2003/10/31 02:27:05  mcr				 * 	pulled up port-selector patches and sa_id elimination.				 *				 * Revision 1.2.4.2  2003/10/29 01:10:19  mcr				 * 	elimited "struct sa_id"				 *				 * Revision 1.2.4.1  2003/09/21 13:59:38  mcr				 * 	pre-liminary X.509 patch - does not yet pass tests.				 *				 * Revision 1.2  2003/06/20 01:42:13  mcr				 * 	added counters to measure how many ACQUIREs we send to pluto,				 * 	and how many are successfully sent.				 *				 * Revision 1.1  2003/02/12 19:31:03  rgb				 * Refactored from ipsec_tunnel.c				 *				 */							

相关资源