⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hip-beet-2.6.15.7-4in1.patch

📁 Host Identity Protocol on Linux is an implemetation of the Host Identity Protocol (HIP) and the rela
💻 PATCH
📖 第 1 页 / 共 5 页
字号:
diff -urN linux-source-2.6.15/include/linux/in.h linux-source-2.6.15-beet/include/linux/in.h--- linux-source-2.6.15/include/linux/in.h	2006-03-02 23:18:41.000000000 +0200+++ linux-source-2.6.15-beet/include/linux/in.h	2006-07-02 16:45:06.000000000 +0300@@ -40,6 +40,7 @@    IPPROTO_ESP = 50,            /* Encapsulation Security Payload protocol */   IPPROTO_AH = 51,             /* Authentication Header protocol       */+  IPPROTO_BEETPH = 94,		/* IP option pseudo header for BEET */   IPPROTO_PIM    = 103,		/* Protocol Independent Multicast	*/    IPPROTO_COMP   = 108,                /* Compression Header protocol */diff -urN linux-source-2.6.15/include/linux/ip.h linux-source-2.6.15-beet/include/linux/ip.h--- linux-source-2.6.15/include/linux/ip.h	2006-03-02 23:18:41.000000000 +0200+++ linux-source-2.6.15-beet/include/linux/ip.h	2006-07-02 16:45:06.000000000 +0300@@ -198,6 +198,8 @@  extern int inet_sk_rebuild_header(struct sock *sk); +#define IPV4_BEET_PHMAXLEN 8+ struct iphdr { #if defined(__LITTLE_ENDIAN_BITFIELD) 	__u8	ihl:4,@@ -241,4 +243,11 @@ 	__u16 cpi; }; +struct ip_beet_phdr {+	__u8 nexthdr;+	__u8 hdrlen;+	__u8 padlen;+	__u8 reserved;+};+ #endif	/* _LINUX_IP_H */diff -urN linux-source-2.6.15/include/linux/ip.h.orig linux-source-2.6.15-beet/include/linux/ip.h.orig--- linux-source-2.6.15/include/linux/ip.h.orig	1970-01-01 02:00:00.000000000 +0200+++ linux-source-2.6.15-beet/include/linux/ip.h.orig	2006-03-02 23:18:41.000000000 +0200@@ -0,0 +1,244 @@+/*+ * INET		An implementation of the TCP/IP protocol suite for the LINUX+ *		operating system.  INET is implemented using the  BSD Socket+ *		interface as the means of communication with the user level.+ *+ *		Definitions for the IP protocol.+ *+ * Version:	@(#)ip.h	1.0.2	04/28/93+ *+ * Authors:	Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.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.+ */+#ifndef _LINUX_IP_H+#define _LINUX_IP_H+#include <asm/byteorder.h>++#define IPTOS_TOS_MASK		0x1E+#define IPTOS_TOS(tos)		((tos)&IPTOS_TOS_MASK)+#define	IPTOS_LOWDELAY		0x10+#define	IPTOS_THROUGHPUT	0x08+#define	IPTOS_RELIABILITY	0x04+#define	IPTOS_MINCOST		0x02++#define IPTOS_PREC_MASK		0xE0+#define IPTOS_PREC(tos)		((tos)&IPTOS_PREC_MASK)+#define IPTOS_PREC_NETCONTROL           0xe0+#define IPTOS_PREC_INTERNETCONTROL      0xc0+#define IPTOS_PREC_CRITIC_ECP           0xa0+#define IPTOS_PREC_FLASHOVERRIDE        0x80+#define IPTOS_PREC_FLASH                0x60+#define IPTOS_PREC_IMMEDIATE            0x40+#define IPTOS_PREC_PRIORITY             0x20+#define IPTOS_PREC_ROUTINE              0x00+++/* IP options */+#define IPOPT_COPY		0x80+#define IPOPT_CLASS_MASK	0x60+#define IPOPT_NUMBER_MASK	0x1f++#define	IPOPT_COPIED(o)		((o)&IPOPT_COPY)+#define	IPOPT_CLASS(o)		((o)&IPOPT_CLASS_MASK)+#define	IPOPT_NUMBER(o)		((o)&IPOPT_NUMBER_MASK)++#define	IPOPT_CONTROL		0x00+#define	IPOPT_RESERVED1		0x20+#define	IPOPT_MEASUREMENT	0x40+#define	IPOPT_RESERVED2		0x60++#define IPOPT_END	(0 |IPOPT_CONTROL)+#define IPOPT_NOOP	(1 |IPOPT_CONTROL)+#define IPOPT_SEC	(2 |IPOPT_CONTROL|IPOPT_COPY)+#define IPOPT_LSRR	(3 |IPOPT_CONTROL|IPOPT_COPY)+#define IPOPT_TIMESTAMP	(4 |IPOPT_MEASUREMENT)+#define IPOPT_RR	(7 |IPOPT_CONTROL)+#define IPOPT_SID	(8 |IPOPT_CONTROL|IPOPT_COPY)+#define IPOPT_SSRR	(9 |IPOPT_CONTROL|IPOPT_COPY)+#define IPOPT_RA	(20|IPOPT_CONTROL|IPOPT_COPY)++#define IPVERSION	4+#define MAXTTL		255+#define IPDEFTTL	64++#define IPOPT_OPTVAL 0+#define IPOPT_OLEN   1+#define IPOPT_OFFSET 2+#define IPOPT_MINOFF 4+#define MAX_IPOPTLEN 40+#define IPOPT_NOP IPOPT_NOOP+#define IPOPT_EOL IPOPT_END+#define IPOPT_TS  IPOPT_TIMESTAMP++#define	IPOPT_TS_TSONLY		0		/* timestamps only */+#define	IPOPT_TS_TSANDADDR	1		/* timestamps and addresses */+#define	IPOPT_TS_PRESPEC	3		/* specified modules only */++#ifdef __KERNEL__+#include <linux/config.h>+#include <linux/types.h>+#include <net/request_sock.h>+#include <net/sock.h>+#include <linux/igmp.h>+#include <net/flow.h>++struct ip_options {+  __u32		faddr;				/* Saved first hop address */+  unsigned char	optlen;+  unsigned char srr;+  unsigned char rr;+  unsigned char ts;+  unsigned char is_setbyuser:1,			/* Set by setsockopt?			*/+                is_data:1,			/* Options in __data, rather than skb	*/+                is_strictroute:1,		/* Strict source route			*/+                srr_is_hit:1,			/* Packet destination addr was our one	*/+                is_changed:1,			/* IP checksum more not valid		*/	+                rr_needaddr:1,			/* Need to record addr of outgoing dev	*/+                ts_needtime:1,			/* Need to record timestamp		*/+                ts_needaddr:1;			/* Need to record addr of outgoing dev  */+  unsigned char router_alert;+  unsigned char __pad1;+  unsigned char __pad2;+  unsigned char __data[0];+};++#define optlength(opt) (sizeof(struct ip_options) + opt->optlen)++struct inet_request_sock {+	struct request_sock	req;+	u32			loc_addr;+	u32			rmt_addr;+	u16			rmt_port;+	u16			snd_wscale : 4, +				rcv_wscale : 4, +				tstamp_ok  : 1,+				sack_ok	   : 1,+				wscale_ok  : 1,+				ecn_ok	   : 1,+				acked	   : 1;+	struct ip_options	*opt;+};++static inline struct inet_request_sock *inet_rsk(const struct request_sock *sk)+{+	return (struct inet_request_sock *)sk;+}++struct ipv6_pinfo;++struct inet_sock {+	/* sk and pinet6 has to be the first two members of inet_sock */+	struct sock		sk;+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)+	struct ipv6_pinfo	*pinet6;+#endif+	/* Socket demultiplex comparisons on incoming packets. */+	__u32			daddr;		/* Foreign IPv4 addr */+	__u32			rcv_saddr;	/* Bound local IPv4 addr */+	__u16			dport;		/* Destination port */+	__u16			num;		/* Local port */+	__u32			saddr;		/* Sending source */+	__s16			uc_ttl;		/* Unicast TTL */+	__u16			cmsg_flags;+	struct ip_options	*opt;+	__u16			sport;		/* Source port */+	__u16			id;		/* ID counter for DF pkts */+	__u8			tos;		/* TOS */+	__u8			mc_ttl;		/* Multicasting TTL */+	__u8			pmtudisc;+	unsigned		recverr : 1,+				freebind : 1,+				hdrincl : 1,+				mc_loop : 1;+	int			mc_index;	/* Multicast device index */+	__u32			mc_addr;+	struct ip_mc_socklist	*mc_list;	/* Group array */+	/*+	 * Following members are used to retain the infomation to build+	 * an ip header on each ip fragmentation while the socket is corked.+	 */+	struct {+		unsigned int		flags;+		unsigned int		fragsize;+		struct ip_options	*opt;+		struct rtable		*rt;+		int			length; /* Total length of all frames */+		u32			addr;+		struct flowi		fl;+	} cork;+};++#define IPCORK_OPT	1	/* ip-options has been held in ipcork.opt */+#define IPCORK_ALLFRAG	2	/* always fragment (for ipv6 for now) */++static inline struct inet_sock *inet_sk(const struct sock *sk)+{+	return (struct inet_sock *)sk;+}++static inline void __inet_sk_copy_descendant(struct sock *sk_to,+					     const struct sock *sk_from,+					     const int ancestor_size)+{+	memcpy(inet_sk(sk_to) + 1, inet_sk(sk_from) + 1,+	       sk_from->sk_prot->obj_size - ancestor_size);+}+#if !(defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE))+static inline void inet_sk_copy_descendant(struct sock *sk_to,+					   const struct sock *sk_from)+{+	__inet_sk_copy_descendant(sk_to, sk_from, sizeof(struct inet_sock));+}+#endif+#endif++extern int inet_sk_rebuild_header(struct sock *sk);++struct iphdr {+#if defined(__LITTLE_ENDIAN_BITFIELD)+	__u8	ihl:4,+		version:4;+#elif defined (__BIG_ENDIAN_BITFIELD)+	__u8	version:4,+  		ihl:4;+#else+#error	"Please fix <asm/byteorder.h>"+#endif+	__u8	tos;+	__u16	tot_len;+	__u16	id;+	__u16	frag_off;+	__u8	ttl;+	__u8	protocol;+	__u16	check;+	__u32	saddr;+	__u32	daddr;+	/*The options start here. */+};++struct ip_auth_hdr {+	__u8  nexthdr;+	__u8  hdrlen;		/* This one is measured in 32 bit units! */+	__u16 reserved;+	__u32 spi;+	__u32 seq_no;		/* Sequence number */+	__u8  auth_data[0];	/* Variable len but >=4. Mind the 64 bit alignment! */+};++struct ip_esp_hdr {+	__u32 spi;+	__u32 seq_no;		/* Sequence number */+	__u8  enc_data[0];	/* Variable len but >=8. Mind the 64 bit alignment! */+};++struct ip_comp_hdr {+	__u8 nexthdr;+	__u8 flags;+	__u16 cpi;+};++#endif	/* _LINUX_IP_H */diff -urN linux-source-2.6.15/include/linux/ipsec.h linux-source-2.6.15-beet/include/linux/ipsec.h--- linux-source-2.6.15/include/linux/ipsec.h	2006-03-02 23:18:41.000000000 +0200+++ linux-source-2.6.15-beet/include/linux/ipsec.h	2006-07-02 16:45:06.000000000 +0300@@ -12,7 +12,8 @@ enum { 	IPSEC_MODE_ANY		= 0,	/* We do not support this for SA */ 	IPSEC_MODE_TRANSPORT	= 1,-	IPSEC_MODE_TUNNEL	= 2+	IPSEC_MODE_TUNNEL	= 2,+	IPSEC_MODE_BEET         = 3 };  enum {diff -urN linux-source-2.6.15/include/linux/net.h linux-source-2.6.15-beet/include/linux/net.h--- linux-source-2.6.15/include/linux/net.h	2006-03-02 23:18:41.000000000 +0200+++ linux-source-2.6.15-beet/include/linux/net.h	2006-07-02 16:47:49.000000000 +0300@@ -26,7 +26,7 @@ struct poll_table_struct; struct inode; -#define NPROTO		32		/* should be enough for now..	*/+#define NPROTO		33		/* should be enough for now..	*/  #define SYS_SOCKET	1		/* sys_socket(2)		*/ #define SYS_BIND	2		/* sys_bind(2)			*/diff -urN linux-source-2.6.15/include/linux/xfrm.h linux-source-2.6.15-beet/include/linux/xfrm.h--- linux-source-2.6.15/include/linux/xfrm.h	2006-03-02 23:18:41.000000000 +0200+++ linux-source-2.6.15-beet/include/linux/xfrm.h	2006-07-02 16:47:40.000000000 +0300@@ -27,6 +27,12 @@ 	__u8		proto; }; +/* Transport layer flag  passed to xfrm_lookup. If set, the userspace+   process sleeps in a waitqueue until key management daemon has +   finished setting up security associations. This workaround exists +   until we have queues for outgoing IPsec packets. */+#define XFRM_LOOKUP_SLEEP (!in_atomic() && !in_softirq())+ /* Selector, used as selector both on policy rules (SPD) and SAs. */  struct xfrm_selector@@ -102,6 +108,13 @@ 	XFRM_SHARE_UNIQUE	/* Use once */ }; +enum+{+	XFRM_MODE_TRANSPORT = 0,+	XFRM_MODE_TUNNEL,+	XFRM_MODE_BEET+};+ /* Netlink configuration messages.  */ enum { 	XFRM_MSG_BASE = 0x10,diff -urN linux-source-2.6.15/include/linux/xfrm.h.orig linux-source-2.6.15-beet/include/linux/xfrm.h.orig--- linux-source-2.6.15/include/linux/xfrm.h.orig	1970-01-01 02:00:00.000000000 +0200+++ linux-source-2.6.15-beet/include/linux/xfrm.h.orig	2006-07-02 16:45:06.000000000 +0300@@ -0,0 +1,291 @@+#ifndef _LINUX_XFRM_H+#define _LINUX_XFRM_H++#include <linux/types.h>++/* All of the structures in this file may not change size as they are+ * passed into the kernel from userspace via netlink sockets.+ */++/* Structure to encapsulate addresses. I do not want to use+ * "standard" structure. My apologies.+ */+typedef union+{+	__u32		a4;+	__u32		a6[4];+} xfrm_address_t;++/* Ident of a specific xfrm_state. It is used on input to lookup+ * the state by (spi,daddr,ah/esp) or to store information about+ * spi, protocol and tunnel address on output.+ */+struct xfrm_id+{+	xfrm_address_t	daddr;+	__u32		spi;+	__u8		proto;+};++/* Selector, used as selector both on policy rules (SPD) and SAs. */++struct xfrm_selector+{+	xfrm_address_t	daddr;+	xfrm_address_t	saddr;+	__u16	dport;+	__u16	dport_mask;+	__u16	sport;+	__u16	sport_mask;+	__u16	family;+	__u8	prefixlen_d;+	__u8	prefixlen_s;+	__u8	proto;+	int	ifindex;+	uid_t	user;+};++#define XFRM_INF (~(__u64)0)++struct xfrm_lifetime_cfg+{+	__u64	soft_byte_limit;+	__u64	hard_byte_limit;+	__u64	soft_packet_limit;+	__u64	hard_packet_limit;+	__u64	soft_add_expires_seconds;+	__u64	hard_add_expires_seconds;+	__u64	soft_use_expires_seconds;+	__u64	hard_use_expires_seconds;+};++struct xfrm_lifetime_cur+{+	__u64	bytes;+	__u64	packets;+	__u64	add_time;+	__u64	use_time;+};++struct xfrm_replay_state+{+	__u32	oseq;+	__u32	seq;+	__u32	bitmap;+};++struct xfrm_algo {+	char	alg_name[64];+	int	alg_key_len;    /* in bits */+	char	alg_key[0];+};++struct xfrm_stats {+	__u32	replay_window;+	__u32	replay;+	__u32	integrity_failed;+};++enum+{+	XFRM_POLICY_IN	= 0,+	XFRM_POLICY_OUT	= 1,+	XFRM_POLICY_FWD	= 2,+	XFRM_POLICY_MAX	= 3+};++enum+{+	XFRM_SHARE_ANY,		/* No limitations */+	XFRM_SHARE_SESSION,	/* For this session only */+	XFRM_SHARE_USER,	/* For this user only */+	XFRM_SHARE_UNIQUE	/* Use once */+};++enum+{+	XFRM_MODE_TRANSPORT = 0,+	XFRM_MODE_TUNNEL,+	XFRM_MODE_BEET+};++/* Netlink configuration messages.  */+enum {+	XFRM_MSG_BASE = 0x10,++	XFRM_MSG_NEWSA = 0x10,+#define XFRM_MSG_NEWSA XFRM_MSG_NEWSA+	XFRM_MSG_DELSA,+#define XFRM_MSG_DELSA XFRM_MSG_DELSA+	XFRM_MSG_GETSA,+#define XFRM_MSG_GETSA XFRM_MSG_GETSA++	XFRM_MSG_NEWPOLICY,+#define XFRM_MSG_NEWPOLICY XFRM_MSG_NEWPOLICY+	XFRM_MSG_DELPOLICY,+#define XFRM_MSG_DELPOLICY XFRM_MSG_DELPOLICY+	XFRM_MSG_GETPOLICY,+#define XFRM_MSG_GETPOLICY XFRM_MSG_GETPOLICY++	XFRM_MSG_ALLOCSPI,+#define XFRM_MSG_ALLOCSPI XFRM_MSG_ALLOCSPI+	XFRM_MSG_ACQUIRE,+#define XFRM_MSG_ACQUIRE XFRM_MSG_ACQUIRE+	XFRM_MSG_EXPIRE,+#define XFRM_MSG_EXPIRE XFRM_MSG_EXPIRE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -