netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] lksctp 0.6.9 backport on 2.4.23-pre4
@ 2003-09-19 12:41 MORANGE,DAMIEN (HP-France,ex1)
  2003-09-20  7:35 ` David S. Miller
  0 siblings, 1 reply; 2+ messages in thread
From: MORANGE,DAMIEN (HP-France,ex1) @ 2003-09-19 12:41 UTC (permalink / raw)
  To: 'David S. Miller'; +Cc: linux-net, netdev, samudrala, lksctp-developers

[-- Attachment #1: Type: text/plain, Size: 1711 bytes --]

Hi,
 
> Care to provide this as a BK tree I can pull from?
> (please don't combine the patches into one big changeset,
>  keep them separate, comment them properly, and preserve the
>  revision history, that's the whole point of this)

As requested, I have uploaded at:

<http://linux-lksctp.bkbits.net:8080/lksctp-2.4>

the 3 ChangeSets needed to backport LKSCTP 0.6.9 onto linux 
kernel 2.4.23-pre4.

I also attach to this mail the output of:
bk export -t patch -du -r1.1126,1.1128 >
csets.patch.ChangeSets_1.1127_1.1128

Since ChangeSet 1.1129 adds lots of new files, I voluntarily
skipped it to not overflow the mailing list.

Comments welcome.

Best regards,

-- 
Damien Morange




The ChangeSets are:


1.1127:
<http://linux-lksctp.bkbits.net:8080/lksctp-2.4/cset@1.1127?nav=index.html|C
hangeSet@-7d>

[SCTP] LKSCTP 0.6.9 backport on kernel 2.4 patch #1

Adding the necessary changes to the kernel IP stack so that
SCTP can perform Path MTU discovery.
No other SCTP-specific changes.
The resulting kernel is functionally unchanged.


1.1128:
<http://linux-lksctp.bkbits.net:8080/lksctp-2.4/cset@1.1128?nav=index.html|C
hangeSet@-7d>

[SCTP] LKSCTP 0.6.9 backport on kernel 2.4 patch #2

This patch modifies the kernel existing files to add the SCTP
functionality.
It cannot work without the 3rd patch of this serie,
but it is issued to better highlight the required changes.


1.1129:
<http://linux-lksctp.bkbits.net:8080/lksctp-2.4/cset@1.1129?nav=index.html|C
hangeSet@-7d>

[SCTP] LKSCTP 0.6.9 backport on kernel 2.4 patch #3

This patch consists only in new files.
It adds the SCTP protocol engine and the SCTP sockets layers
to the IP stack.
This patches requires patches #1 and #2 to be applied.


[-- Attachment #2: csets.patch.ChangeSets_1.1127_1.1128 --]
[-- Type: application/octet-stream, Size: 20952 bytes --]

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.1126  -> 1.1128 
#	include/linux/sysctl.h	1.32    -> 1.33   
#	      kernel/ksyms.c	1.78    -> 1.79   
#	   include/net/tcp.h	1.23    -> 1.24   
#	  net/ipv4/af_inet.c	1.11    -> 1.12   
#	       net/Config.in	1.13    -> 1.14   
#	        net/socket.c	1.16    -> 1.17   
#	  include/net/snmp.h	1.5     -> 1.6    
#	 include/linux/net.h	1.3     -> 1.4    
#	       net/netsyms.c	1.43    -> 1.45   
#	        net/Makefile	1.7     -> 1.8    
#	  include/linux/in.h	1.2     -> 1.3    
#	 net/ipv6/tcp_ipv6.c	1.25    -> 1.26   
#	 net/ipv6/af_inet6.c	1.11    -> 1.12   
#	    include/net/ip.h	1.3     -> 1.4    
#	net/ipv4/tcp_output.c	1.15    -> 1.16   
#	  include/net/sock.h	1.15    -> 1.16   
#	include/net/inet_common.h	1.1     -> 1.2    
#	   net/ipv6/Makefile	1.2     -> 1.3    
#	include/linux/socket.h	1.7     -> 1.8    
#	  include/net/ipv6.h	1.5     -> 1.6    
#	Documentation/Configure.help	1.193   -> 1.194  
#	net/ipv4/ip_output.c	1.14    -> 1.15   
#	               (new)	        -> 1.1     net/ipv6/ipv6_syms.c
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/09/19	damien.morange@hp.com	1.1127
# [SCTP] LKSCTP 0.6.9 backport on kernel 2.4 patch #1
# 
# Adding the necessary changes to the kernel IP stack so that SCTP
# can perform Path MTU discovery.
# No other SCTP-specific changes.
# The resulting kernel is functionally unchanged.
# --------------------------------------------
# 03/09/19	damien.morange@hp.com	1.1128
# [SCTP] LKSCTP 0.6.9 backport on kernel 2.4 patch #2
# 
# This patch modifies the kernel existing files to add the SCTP
# functionality.
# It cannot work without the 3rd patch of this serie,
# but it is issued to better highlight the required changes.
# --------------------------------------------
#
diff -Nru a/Documentation/Configure.help b/Documentation/Configure.help
--- a/Documentation/Configure.help	Fri Sep 19 15:34:00 2003
+++ b/Documentation/Configure.help	Fri Sep 19 15:34:00 2003
@@ -6101,6 +6101,61 @@
 
   It is safe to say N here for now.
 
+The SCTP Protocol (EXPERIMENTAL)
+CONFIG_IP_SCTP
+  Stream Control Transmission Protocol
+
+  From RFC 2960 (http://www.ietf.org/rfc/rfc2960.txt)
+
+  "SCTP is a reliable transport protocol operating on top of a
+  connectionless packet network such as IP.  It offers the following
+  services to its users:
+
+  -- acknowledged error-free non-duplicated transfer of user data,
+  -- data fragmentation to conform to discovered path MTU size,
+  -- sequenced delivery of user messages within multiple streams,
+  with an option for order-of-arrival delivery of individual user
+  messages,
+  -- optional bundling of multiple user messages into a single SCTP
+  packet, and
+  -- network-level fault tolerance through supporting of multi-
+  homing at either or both ends of an association."
+
+  This protocol support is also available as a module ( = code which
+  can be inserted in and removed from the running kernel whenever you
+  want). The module will be called sctp. If you want to compile it
+  as a module, say M here and read <file:Documentation/modules.txt>.
+
+  If in doubt, say N.
+
+SCTP: Use old checksum (Adler-32)
+CONFIG_SCTP_ADLER32
+  RCF2960 currently specifies the Adler-32 checksum algorithm for SCTP.
+  This has been deprecated and replaced by an algorithm now referred
+  to as crc32c.
+
+  If you say Y, this will use the Adler-32 algorithm, this might be 
+  useful for interoperation with downlevel peers. 
+
+  If unsure, say N.  
+
+SCTP: Debug messages
+CONFIG_SCTP_DBG_MSG
+  If you say Y, this will enable verbose debugging messages. 
+
+  If unsure, say N.  However, if you are running into problems, use 
+  this option to gather detailed trace information
+
+SCTP: Debug object counts
+CONFIG_SCTP_DBG_OBJCNT
+  If you say Y, this will enable debugging support for counting the 
+  type of objects that are currently allocated.  This is useful for 
+  identifying memory leaks.   If the /proc filesystem is enabled this 
+  debug information can be viewed by 
+  'cat /proc/net/sctp/sctp_dbg_objcnt'
+
+  If unsure, say N
+
 Kernel httpd acceleration
 CONFIG_KHTTPD
   The kernel httpd acceleration daemon (kHTTPd) is a (limited) web
diff -Nru a/include/linux/in.h b/include/linux/in.h
--- a/include/linux/in.h	Fri Sep 19 15:34:00 2003
+++ b/include/linux/in.h	Fri Sep 19 15:34:00 2003
@@ -41,6 +41,7 @@
   IPPROTO_ESP = 50,            /* Encapsulation Security Payload protocol */
   IPPROTO_AH = 51,             /* Authentication Header protocol       */
   IPPROTO_COMP   = 108,                /* Compression Header protocol */
+  IPPROTO_SCTP   = 132,		/* Stream Control Transport Protocol    */
 
   IPPROTO_RAW	 = 255,		/* Raw IP packets			*/
   IPPROTO_MAX
diff -Nru a/include/linux/net.h b/include/linux/net.h
--- a/include/linux/net.h	Fri Sep 19 15:34:00 2003
+++ b/include/linux/net.h	Fri Sep 19 15:34:00 2003
@@ -141,6 +141,7 @@
 				  const struct iovec * iov, long count, long size);
 extern struct socket *sockfd_lookup(int fd, int *err);
 
+extern int	sock_map_fd(struct socket *sock);
 extern int	net_ratelimit(void);
 extern unsigned long net_random(void);
 extern void net_srandom(unsigned long);
diff -Nru a/include/linux/socket.h b/include/linux/socket.h
--- a/include/linux/socket.h	Fri Sep 19 15:34:00 2003
+++ b/include/linux/socket.h	Fri Sep 19 15:34:00 2003
@@ -242,6 +242,7 @@
 #define SOL_UDP		17
 #define SOL_IPV6	41
 #define SOL_ICMPV6	58
+#define SOL_SCTP	132
 #define SOL_RAW		255
 #define SOL_IPX		256
 #define SOL_AX25	257
diff -Nru a/include/linux/sysctl.h b/include/linux/sysctl.h
--- a/include/linux/sysctl.h	Fri Sep 19 15:34:00 2003
+++ b/include/linux/sysctl.h	Fri Sep 19 15:34:00 2003
@@ -176,7 +176,8 @@
 	NET_TR=14,
 	NET_DECNET=15,
 	NET_ECONET=16,
-	NET_KHTTPD=17
+	NET_KHTTPD=17,
+	NET_SCTP=18
 };
 
 /* /proc/sys/kernel/random */
@@ -509,6 +510,21 @@
 	NET_DECNET_DEBUG_LEVEL = 255
 };
 
+/* /proc/sys/net/sctp */
+enum {
+	NET_SCTP_RTO_INITIAL = 1,
+	NET_SCTP_RTO_MIN     = 2,
+	NET_SCTP_RTO_MAX     = 3,
+	NET_SCTP_RTO_ALPHA   = 4,
+	NET_SCTP_RTO_BETA    = 5,
+	NET_SCTP_VALID_COOKIE_LIFE       =  6,
+	NET_SCTP_ASSOCIATION_MAX_RETRANS =  7,
+	NET_SCTP_PATH_MAX_RETRANS        =  8,
+	NET_SCTP_MAX_INIT_RETRANSMITS    =  9,
+	NET_SCTP_HB_INTERVAL             = 10,
+	NET_SCTP_PRESERVE_ENABLE         = 11,
+	NET_SCTP_MAX_BURST               = 12,
+};
 /* /proc/sys/net/khttpd/ */
 enum {
 	NET_KHTTPD_DOCROOT	= 1,
diff -Nru a/include/net/inet_common.h b/include/net/inet_common.h
--- a/include/net/inet_common.h	Fri Sep 19 15:34:00 2003
+++ b/include/net/inet_common.h	Fri Sep 19 15:34:00 2003
@@ -43,6 +43,14 @@
 extern void			inet_sock_destruct(struct sock *sk);
 extern atomic_t			inet_sock_nr;
 
+extern int			inet_bind(struct socket *sock,
+					  struct sockaddr *uaddr, int addr_len);
+extern int			inet_getname(struct socket *sock,
+					     struct sockaddr *uaddr,
+					     int *uaddr_len, int peer);
+extern int			inet_ioctl(struct socket *sock,
+					   unsigned int cmd, unsigned long arg);
+
 #endif
 
 
diff -Nru a/include/net/ip.h b/include/net/ip.h
--- a/include/net/ip.h	Fri Sep 19 15:34:00 2003
+++ b/include/net/ip.h	Fri Sep 19 15:34:00 2003
@@ -96,7 +96,7 @@
 extern int		ip_fragment(struct sk_buff *skb, int (*out)(struct sk_buff*));
 extern int		ip_do_nat(struct sk_buff *skb);
 extern void		ip_send_check(struct iphdr *ip);
-extern int		ip_queue_xmit(struct sk_buff *skb);
+extern int		ip_queue_xmit(struct sk_buff *skb, int ipfragok);
 extern void		ip_init(void);
 extern int		ip_build_xmit(struct sock *sk,
 				      int getfrag (const void *,
diff -Nru a/include/net/ipv6.h b/include/net/ipv6.h
--- a/include/net/ipv6.h	Fri Sep 19 15:34:00 2003
+++ b/include/net/ipv6.h	Fri Sep 19 15:34:00 2003
@@ -353,6 +353,14 @@
 						u32 info, u8 *payload);
 extern void			ipv6_local_error(struct sock *sk, int err, struct flowi *fl, u32 info);
 
+extern int inet6_release(struct socket *sock);
+extern int inet6_bind(struct socket *sock, struct sockaddr *uaddr, 
+		      int addr_len);
+extern int inet6_getname(struct socket *sock, struct sockaddr *uaddr,
+			 int *uaddr_len, int peer);
+extern int inet6_ioctl(struct socket *sock, unsigned int cmd, 
+		       unsigned long arg);
+
 #endif /* __KERNEL__ */
 #endif /* _NET_IPV6_H */
 
diff -Nru a/include/net/snmp.h b/include/net/snmp.h
--- a/include/net/snmp.h	Fri Sep 19 15:34:00 2003
+++ b/include/net/snmp.h	Fri Sep 19 15:34:00 2003
@@ -212,6 +212,35 @@
 	unsigned long   __pad[0];
 } ____cacheline_aligned; 
 
+/* draft-ietf-sigtran-sctp-mib-07.txt */
+struct sctp_mib
+{
+	unsigned long   SctpCurrEstab;
+	unsigned long   SctpActiveEstabs;
+	unsigned long   SctpPassiveEstabs;
+	unsigned long   SctpAborteds;
+	unsigned long   SctpShutdowns;
+	unsigned long   SctpOutOfBlues;
+	unsigned long   SctpChecksumErrors;
+	unsigned long   SctpOutCtrlChunks;
+	unsigned long   SctpOutOrderChunks;
+	unsigned long   SctpOutUnorderChunks;
+	unsigned long   SctpInCtrlChunks;
+	unsigned long   SctpInOrderChunks;
+	unsigned long   SctpInUnorderChunks;
+	unsigned long   SctpFragUsrMsgs;
+	unsigned long   SctpReasmUsrMsgs;
+	unsigned long   SctpOutSCTPPacks;
+	unsigned long   SctpInSCTPPacks;
+	unsigned long   SctpRtoAlgorithm;
+	unsigned long   SctpRtoMin;
+	unsigned long   SctpRtoMax;
+	unsigned long   SctpRtoInitial;
+	unsigned long   SctpValCookieLife;
+	unsigned long   SctpMaxInitRetr;
+	unsigned long   __pad[0];
+};
+
 struct linux_mib 
 {
 	unsigned long	SyncookiesSent;
diff -Nru a/include/net/sock.h b/include/net/sock.h
--- a/include/net/sock.h	Fri Sep 19 15:34:00 2003
+++ b/include/net/sock.h	Fri Sep 19 15:34:00 2003
@@ -49,6 +49,9 @@
 #include <linux/icmp.h>
 #endif
 #include <linux/tcp.h>		/* struct tcphdr */
+#if defined(CONFIG_IP_SCTP) || defined (CONFIG_IP_SCTP_MODULE)
+#include <net/sctp/structs.h>	/* struct sctp_opt */
+#endif
 
 #include <linux/netdevice.h>
 #include <linux/skbuff.h>	/* struct sk_buff */
@@ -586,6 +589,9 @@
 
 	union {
 		struct tcp_opt		af_tcp;
+#if defined(CONFIG_IP_SCTP) || defined (CONFIG_IP_SCTP_MODULE)
+		struct sctp_opt		af_sctp;
+#endif
 #if defined(CONFIG_INET) || defined (CONFIG_INET_MODULE)
 		struct raw_opt		tp_raw4;
 #endif
diff -Nru a/include/net/tcp.h b/include/net/tcp.h
--- a/include/net/tcp.h	Fri Sep 19 15:34:00 2003
+++ b/include/net/tcp.h	Fri Sep 19 15:34:00 2003
@@ -555,7 +555,8 @@
  */
 
 struct tcp_func {
-	int			(*queue_xmit)		(struct sk_buff *skb);
+	int			(*queue_xmit)		(struct sk_buff *skb,
+							 int ipfragok);
 
 	void			(*send_check)		(struct sock *sk,
 							 struct tcphdr *th,
diff -Nru a/kernel/ksyms.c b/kernel/ksyms.c
--- a/kernel/ksyms.c	Fri Sep 19 15:34:00 2003
+++ b/kernel/ksyms.c	Fri Sep 19 15:34:00 2003
@@ -513,6 +513,9 @@
 EXPORT_SYMBOL(seq_release);
 EXPORT_SYMBOL(seq_read);
 EXPORT_SYMBOL(seq_lseek);
+EXPORT_SYMBOL(single_open);
+EXPORT_SYMBOL(single_release);
+EXPORT_SYMBOL(seq_release_private);
 
 /* Program loader interfaces */
 EXPORT_SYMBOL(setup_arg_pages);
diff -Nru a/net/Config.in b/net/Config.in
--- a/net/Config.in	Fri Sep 19 15:34:00 2003
+++ b/net/Config.in	Fri Sep 19 15:34:00 2003
@@ -29,6 +29,9 @@
    if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
       source net/khttpd/Config.in
    fi
+   if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+      source net/sctp/Config.in
+   fi
 fi
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
    tristate 'Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)' CONFIG_ATM
diff -Nru a/net/Makefile b/net/Makefile
--- a/net/Makefile	Fri Sep 19 15:34:00 2003
+++ b/net/Makefile	Fri Sep 19 15:34:00 2003
@@ -7,7 +7,7 @@
 
 O_TARGET :=	network.o
 
-mod-subdirs :=	ipv4/netfilter ipv6/netfilter ipx irda bluetooth atm netlink sched core
+mod-subdirs :=	ipv4/netfilter ipv6/netfilter ipx irda bluetooth atm netlink sched core sctp
 export-objs :=	netsyms.o
 
 subdir-y :=	core ethernet
@@ -19,6 +19,7 @@
 subdir-$(CONFIG_NETFILTER)	+= ipv4/netfilter
 subdir-$(CONFIG_UNIX)		+= unix
 subdir-$(CONFIG_IPV6)		+= ipv6
+subdir-$(CONFIG_IP_SCTP)	+= sctp
 
 ifneq ($(CONFIG_IPV6),n)
 ifneq ($(CONFIG_IPV6),)
diff -Nru a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
--- a/net/ipv4/af_inet.c	Fri Sep 19 15:34:00 2003
+++ b/net/ipv4/af_inet.c	Fri Sep 19 15:34:00 2003
@@ -470,7 +470,7 @@
 /* It is off by default, see below. */
 int sysctl_ip_nonlocal_bind;
 
-static int inet_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
+int inet_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
 {
 	struct sockaddr_in *addr=(struct sockaddr_in *)uaddr;
 	struct sock *sk=sock->sk;
@@ -703,7 +703,7 @@
  *	This does both peername and sockname.
  */
  
-static int inet_getname(struct socket *sock, struct sockaddr *uaddr,
+int inet_getname(struct socket *sock, struct sockaddr *uaddr,
 		 int *uaddr_len, int peer)
 {
 	struct sock *sk		= sock->sk;
@@ -820,7 +820,7 @@
  *	There's a good 20K of config code hanging around the kernel.
  */
 
-static int inet_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
+int inet_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
 {
 	struct sock *sk = sock->sk;
 	int err;
diff -Nru a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c
--- a/net/ipv4/ip_output.c	Fri Sep 19 15:34:00 2003
+++ b/net/ipv4/ip_output.c	Fri Sep 19 15:34:00 2003
@@ -339,7 +339,7 @@
 	return ip_fragment(skb, skb->dst->output);
 }
 
-int ip_queue_xmit(struct sk_buff *skb)
+int ip_queue_xmit(struct sk_buff *skb, int ipfragok)
 {
 	struct sock *sk = skb->sk;
 	struct ip_options *opt = sk->protinfo.af_inet.opt;
@@ -384,7 +384,7 @@
 	iph = (struct iphdr *) skb_push(skb, sizeof(struct iphdr) + (opt ? opt->optlen : 0));
 	*((__u16 *)iph)	= htons((4 << 12) | (5 << 8) | (sk->protinfo.af_inet.tos & 0xff));
 	iph->tot_len = htons(skb->len);
-	if (ip_dont_fragment(sk, &rt->u.dst))
+	if (ip_dont_fragment(sk, &rt->u.dst) && !ipfragok)
 		iph->frag_off = htons(IP_DF);
 	else
 		iph->frag_off = 0;
diff -Nru a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
--- a/net/ipv4/tcp_output.c	Fri Sep 19 15:34:00 2003
+++ b/net/ipv4/tcp_output.c	Fri Sep 19 15:34:00 2003
@@ -275,7 +275,7 @@
 
 		TCP_INC_STATS(TcpOutSegs);
 
-		err = tp->af_specific->queue_xmit(skb);
+		err = tp->af_specific->queue_xmit(skb, 0);
 		if (err <= 0)
 			return err;
 
diff -Nru a/net/ipv6/Makefile b/net/ipv6/Makefile
--- a/net/ipv6/Makefile	Fri Sep 19 15:34:00 2003
+++ b/net/ipv6/Makefile	Fri Sep 19 15:34:00 2003
@@ -13,7 +13,9 @@
 		route.o ip6_fib.o ipv6_sockglue.o ndisc.o udp.o raw.o \
 		protocol.o icmp.o mcast.o reassembly.o tcp_ipv6.o \
 		exthdrs.o sysctl_net_ipv6.o datagram.o proc.o \
-		ip6_flowlabel.o
+		ip6_flowlabel.o ipv6_syms.o
+
+export-objs := ipv6_syms.o
 
 obj-m  := $(O_TARGET)
 
diff -Nru a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
--- a/net/ipv6/af_inet6.c	Fri Sep 19 15:34:00 2003
+++ b/net/ipv6/af_inet6.c	Fri Sep 19 15:34:00 2003
@@ -233,7 +233,7 @@
 
 
 /* bind for INET6 API */
-static int inet6_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
+int inet6_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
 {
 	struct sockaddr_in6 *addr=(struct sockaddr_in6 *)uaddr;
 	struct sock *sk = sock->sk;
@@ -329,7 +329,7 @@
 	return 0;
 }
 
-static int inet6_release(struct socket *sock)
+int inet6_release(struct socket *sock)
 {
 	struct sock *sk = sock->sk;
 
@@ -376,7 +376,7 @@
  *	This does both peername and sockname.
  */
  
-static int inet6_getname(struct socket *sock, struct sockaddr *uaddr,
+int inet6_getname(struct socket *sock, struct sockaddr *uaddr,
 		 int *uaddr_len, int peer)
 {
 	struct sockaddr_in6 *sin=(struct sockaddr_in6 *)uaddr;
@@ -413,7 +413,7 @@
 	return(0);
 }
 
-static int inet6_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
+int inet6_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
 {
 	struct sock *sk = sock->sk;
 	int err = -EINVAL;
diff -Nru a/net/ipv6/ipv6_syms.c b/net/ipv6/ipv6_syms.c
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/net/ipv6/ipv6_syms.c	Fri Sep 19 15:34:00 2003
@@ -0,0 +1,35 @@
+
+#include <linux/config.h>
+#include <linux/module.h>
+#include <linux/skbuff.h>
+#include <net/protocol.h>
+#include <net/ipv6.h>
+#include <net/addrconf.h>
+#include <net/ip6_route.h>
+
+EXPORT_SYMBOL(ipv6_addr_type);
+EXPORT_SYMBOL(icmpv6_send);
+EXPORT_SYMBOL(icmpv6_statistics);
+EXPORT_SYMBOL(icmpv6_err_convert);
+EXPORT_SYMBOL(ndisc_mc_map);
+EXPORT_SYMBOL(register_inet6addr_notifier);
+EXPORT_SYMBOL(unregister_inet6addr_notifier);
+EXPORT_SYMBOL(ip6_route_output);
+#ifdef CONFIG_NETFILTER
+EXPORT_SYMBOL(ip6_route_me_harder);
+#endif
+EXPORT_SYMBOL(addrconf_lock);
+EXPORT_SYMBOL(ipv6_setsockopt);
+EXPORT_SYMBOL(ipv6_getsockopt);
+EXPORT_SYMBOL(inet6_register_protosw);
+EXPORT_SYMBOL(inet6_unregister_protosw);
+EXPORT_SYMBOL(inet6_add_protocol);
+EXPORT_SYMBOL(inet6_del_protocol);
+EXPORT_SYMBOL(ip6_xmit);
+EXPORT_SYMBOL(inet6_release);
+EXPORT_SYMBOL(inet6_bind);
+EXPORT_SYMBOL(inet6_getname);
+EXPORT_SYMBOL(inet6_ioctl);
+EXPORT_SYMBOL(ipv6_get_saddr);
+EXPORT_SYMBOL(ipv6_chk_addr);
+EXPORT_SYMBOL(in6_dev_finish_destroy);
diff -Nru a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
--- a/net/ipv6/tcp_ipv6.c	Fri Sep 19 15:34:00 2003
+++ b/net/ipv6/tcp_ipv6.c	Fri Sep 19 15:34:00 2003
@@ -59,7 +59,7 @@
 				  struct sk_buff *skb);
 
 static int	tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb);
-static int	tcp_v6_xmit(struct sk_buff *skb);
+static int	tcp_v6_xmit(struct sk_buff *skb, int ipfragok);
 
 static struct tcp_func ipv6_mapped;
 static struct tcp_func ipv6_specific;
@@ -1715,7 +1715,7 @@
 	return 0;
 }
 
-static int tcp_v6_xmit(struct sk_buff *skb)
+static int tcp_v6_xmit(struct sk_buff *skb, int ipfragok)
 {
 	struct sock *sk = skb->sk;
 	struct ipv6_pinfo * np = &sk->net_pinfo.af_inet6;
diff -Nru a/net/netsyms.c b/net/netsyms.c
--- a/net/netsyms.c	Fri Sep 19 15:34:00 2003
+++ b/net/netsyms.c	Fri Sep 19 15:34:00 2003
@@ -60,7 +60,7 @@
 
 extern struct net_proto_family inet_family_ops;
 
-#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) || defined (CONFIG_KHTTPD) || defined (CONFIG_KHTTPD_MODULE)
+#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) || defined (CONFIG_KHTTPD) || defined (CONFIG_KHTTPD_MODULE) || defined (CONFIG_IP_SCTP_MODULE)
 #include <linux/in6.h>
 #include <linux/icmpv6.h>
 #include <net/ipv6.h>
@@ -164,6 +164,7 @@
 EXPORT_SYMBOL(put_cmsg);
 EXPORT_SYMBOL(sock_kmalloc);
 EXPORT_SYMBOL(sock_kfree_s);
+EXPORT_SYMBOL(sock_map_fd);
 EXPORT_SYMBOL(sockfd_lookup);
 
 #ifdef CONFIG_FILTER
@@ -256,6 +257,8 @@
 EXPORT_SYMBOL(ip_route_output_key);
 EXPORT_SYMBOL(ip_route_input);
 EXPORT_SYMBOL(icmp_send);
+EXPORT_SYMBOL(icmp_statistics);
+EXPORT_SYMBOL(icmp_err_convert);
 EXPORT_SYMBOL(ip_options_compile);
 EXPORT_SYMBOL(ip_options_undo);
 EXPORT_SYMBOL(arp_send);
@@ -294,19 +297,7 @@
 #endif
 
 
-#ifdef CONFIG_IPV6
-EXPORT_SYMBOL(ipv6_addr_type);
-EXPORT_SYMBOL(icmpv6_send);
-EXPORT_SYMBOL(ndisc_mc_map);
-EXPORT_SYMBOL(register_inet6addr_notifier);
-EXPORT_SYMBOL(unregister_inet6addr_notifier);
-#include <net/ip6_route.h>
-EXPORT_SYMBOL(ip6_route_output);
-#ifdef CONFIG_NETFILTER
-EXPORT_SYMBOL(ip6_route_me_harder);
-#endif
-#endif
-#if defined (CONFIG_IPV6_MODULE) || defined (CONFIG_KHTTPD) || defined (CONFIG_KHTTPD_MODULE)
+#if defined (CONFIG_IPV6_MODULE) || defined (CONFIG_KHTTPD) || defined (CONFIG_KHTTPD_MODULE) || defined (CONFIG_IP_SCTP_MODULE)
 /* inet functions common to v4 and v6 */
 EXPORT_SYMBOL(inet_release);
 EXPORT_SYMBOL(inet_stream_connect);
@@ -421,6 +412,14 @@
 #endif
 
 EXPORT_SYMBOL(tcp_read_sock);
+
+#ifdef CONFIG_IP_SCTP_MODULE
+EXPORT_SYMBOL(ip_setsockopt);
+EXPORT_SYMBOL(ip_getsockopt);
+EXPORT_SYMBOL(inet_ioctl);
+EXPORT_SYMBOL(inet_bind);
+EXPORT_SYMBOL(inet_getname);
+#endif /* CONFIG_IP_SCTP_MODULE */
 
 EXPORT_SYMBOL(netlink_set_err);
 EXPORT_SYMBOL(netlink_broadcast);
diff -Nru a/net/socket.c b/net/socket.c
--- a/net/socket.c	Fri Sep 19 15:34:00 2003
+++ b/net/socket.c	Fri Sep 19 15:34:00 2003
@@ -325,7 +325,7 @@
  *	but we take care of internal coherence yet.
  */
 
-static int sock_map_fd(struct socket *sock)
+int sock_map_fd(struct socket *sock)
 {
 	int fd;
 	struct qstr this;

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] lksctp 0.6.9 backport on 2.4.23-pre4
  2003-09-19 12:41 [PATCH] lksctp 0.6.9 backport on 2.4.23-pre4 MORANGE,DAMIEN (HP-France,ex1)
@ 2003-09-20  7:35 ` David S. Miller
  0 siblings, 0 replies; 2+ messages in thread
From: David S. Miller @ 2003-09-20  7:35 UTC (permalink / raw)
  To: MORANGE,DAMIEN (HP-France,ex1)
  Cc: linux-net, netdev, samudrala, lksctp-developers

On Fri, 19 Sep 2003 14:41:31 +0200
"MORANGE,DAMIEN (HP-France,ex1)" <damien.morange@hp.com> wrote:

> <http://linux-lksctp.bkbits.net:8080/lksctp-2.4>

Looks good, pulled thanks.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-09-20  7:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-09-19 12:41 [PATCH] lksctp 0.6.9 backport on 2.4.23-pre4 MORANGE,DAMIEN (HP-France,ex1)
2003-09-20  7:35 ` David S. Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).