summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorMiguel de Icaza <miguel@nuclecu.unam.mx>1997-08-06 19:14:48 +0000
committerMiguel de Icaza <miguel@nuclecu.unam.mx>1997-08-06 19:14:48 +0000
commite2819e52a162873ff5061de81bb749831bdb5de9 (patch)
tree6067ea700202750ba335a423696f2972700e5f76 /net
parent17a005074429bbf143e40401f405ae4363e56828 (diff)
Merge to 2.1.38.
IMPORTANT NOTE: I could not figure out what information is the one that should be used for the following files (ie, those that were in our tree, or those that came from Linus' patch), please, check these: include/asm-mips/jazz.h include/asm-mips/jazzdma.h include/asm-mips/ioctls.h
Diffstat (limited to 'net')
-rw-r--r--net/Changes6
-rw-r--r--net/ax25/ax25_ip.c2
-rw-r--r--net/ax25/ax25_route.c2
-rw-r--r--net/core/dev.c5
-rw-r--r--net/ipv4/ip_fragment.c5
-rw-r--r--net/ipv4/ipip.c3
-rw-r--r--net/ipv4/proc.c2
-rw-r--r--net/ipv4/tcp.c25
-rw-r--r--net/ipv4/tcp_ipv4.c4
-rw-r--r--net/ipv6/route.c6
-rw-r--r--net/ipv6/tcp_ipv6.c5
11 files changed, 27 insertions, 38 deletions
diff --git a/net/Changes b/net/Changes
index 30898803a..b6e1d5ea3 100644
--- a/net/Changes
+++ b/net/Changes
@@ -413,18 +413,20 @@ the frame following the ack. (The assumption being that the acks are
because a single frame in the data stream has been lost). Given a
mathematician with some queue theory you can show this allows you to
lose one frame per window full of data without measurable speed loss.
+[done]
4. RFC1323. These are the extensions for very fast nets.
RFC1323 will be useful for Linux talking to systems over 100Mb/sec
ethernet and over ATM as it allows large windows and protects from some
potential high speed TCP problems.
+[In progress]
6. Delayed ack. This is mostly supported but not actually set up and
used yet. Basically ack frames are held back 1/10th of a second in the hope
that two acks can be merged into one or for interactive use the ack can
piggyback on the next character typed (great improvement on 2400 baud
modems). Johannes Stille did some work on this about 0.99.13 but it never
-got merged in. [Pedro Roque]
+got merged in. [Pedro Roque] [Done, but needs fixing]
7. One on my tempting project list. Add an extra (unofficial - but so
is SLIP6) SLIP mode that does packet data compression [maybe use the code
@@ -439,7 +441,7 @@ driver but that's for an internal project and its general release is still
a maybe (so is finishing it ;))][Jim Freeman is working on Frame Relay as is
Mike McLagan][Fritz Elfert is doing the isdn4linux kit].
-11. IP over SCSI.
+11. IP over SCSI. [worked on]
14. Bidirectional PLIP. Also PLIP for the newer style parallel ports.
diff --git a/net/ax25/ax25_ip.c b/net/ax25/ax25_ip.c
index d26f008dd..3a8594fba 100644
--- a/net/ax25/ax25_ip.c
+++ b/net/ax25/ax25_ip.c
@@ -165,6 +165,8 @@ int ax25_rebuild_header(struct sk_buff *skb)
bp[14] |= AX25_EBIT;
bp[14] |= AX25_SSSID_SPARE;
+ skb_pull(skb, AX25_KISS_HEADER_LEN);
+
if (route->digipeat != NULL) {
if ((ourskb = ax25_rt_build_path(skb, src, dst, route->digipeat)) == NULL) {
kfree_skb(skb, FREE_WRITE);
diff --git a/net/ax25/ax25_route.c b/net/ax25/ax25_route.c
index 2c7d082a9..911b54834 100644
--- a/net/ax25/ax25_route.c
+++ b/net/ax25/ax25_route.c
@@ -410,8 +410,6 @@ struct sk_buff *ax25_rt_build_path(struct sk_buff *skb, ax25_address *src, ax25_
unsigned char *bp;
int len;
- skb_pull(skb, 1); /* skip KISS command */
-
len = digi->ndigi * AX25_ADDR_LEN;
if (skb_headroom(skb) < len) {
diff --git a/net/core/dev.c b/net/core/dev.c
index 2b593cbb1..93db2e220 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1082,8 +1082,9 @@ int dev_get_info(char *buffer, char **start, off_t offset, int length, int dummy
struct device *dev;
- size = sprintf(buffer, "Inter-| Receive | Transmit\n"
- " face |bytes packets errs drop fifo frame|bytes packets errs drop fifo colls carrier\n");
+ size = sprintf(buffer,
+ "Inter-| Receive | Transmit\n"
+ " face |bytes packets errs drop fifo frame|bytes packets errs drop fifo colls carrier\n");
pos+=size;
len+=size;
diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
index e4fe370fd..d499873dd 100644
--- a/net/ipv4/ip_fragment.c
+++ b/net/ipv4/ip_fragment.c
@@ -5,7 +5,7 @@
*
* The IP fragmentation functionality.
*
- * Version: $Id: ip_fragment.c,v 1.23 1997/05/31 12:36:35 freitag Exp $
+ * Version: $Id: ip_fragment.c,v 1.2 1997/06/17 13:31:27 ralf Exp $
*
* Authors: Fred N. van Kempen <waltje@uWalt.NL.Mugnet.ORG>
* Alan Cox <Alan.Cox@linux.org>
@@ -358,6 +358,9 @@ static struct sk_buff *ip_glue(struct ipq *qp)
fp = fp->next;
}
+ skb->pkt_type = qp->fragments->skb->pkt_type;
+ skb->protocol = qp->fragments->skb->protocol;
+
/* We glued together all fragments, so remove the queue entry. */
ip_free(qp);
diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
index 75346d6dc..31e1258e8 100644
--- a/net/ipv4/ipip.c
+++ b/net/ipv4/ipip.c
@@ -65,7 +65,8 @@ int ipip_rcv(struct sk_buff *skb, unsigned short len)
/*
* Discard the original IP header
*/
-
+
+ skb->mac.raw = skb->data;
skb_pull(skb, skb->h.raw - skb->nh.raw);
/*
diff --git a/net/ipv4/proc.c b/net/ipv4/proc.c
index e3b41e2ad..1184c9f41 100644
--- a/net/ipv4/proc.c
+++ b/net/ipv4/proc.c
@@ -77,7 +77,7 @@ get__netinfo(struct proto *pro, char *buffer, int format, char **start, off_t of
* This was very pretty but didn't work when a socket is destroyed
* at the wrong moment (eg a syn recv socket getting a reset), or
* a memory timer destroy. Instead of playing with timers we just
- * concede defeat and cli().
+ * concede defeat and do a start_bh_atomic().
*/
SOCKHASH_LOCK();
sp = pro->sklist_next;
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index b43a972cc..0ba7640f6 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -5,7 +5,7 @@
*
* Implementation of the Transmission Control Protocol(TCP).
*
- * Version: $Id: tcp.c,v 1.66 1997/05/31 12:36:39 freitag Exp $
+ * Version: $Id: tcp.c,v 1.2 1997/06/17 13:31:29 ralf Exp $
*
* Authors: Ross Biro, <bir7@leland.Stanford.Edu>
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
@@ -201,26 +201,6 @@
* Eric Schenk : Fix fast close down bug with
* shutdown() followed by close().
*
- * To Fix:
- * Fast path the code. Two things here - fix the window calculation
- * so it doesn't iterate over the queue, also spot packets with no funny
- * options arriving in order and process directly.
- *
- * Rewrite output state machine to use a single queue.
- * Speed up input assembly algorithm.
- * RFC1323 - PAWS and window scaling.[Required for IPv6]
- * User settable/learned rtt/max window/mtu
- *
- * Change the fundamental structure to a single send queue maintained
- * by TCP (removing the bogus ip stuff [thus fixing mtu drops on
- * active routes too]). Cut the queue off in tcp_retransmit/
- * tcp_transmit.
- * Change the receive queue to assemble as it goes. This lets us
- * dispose of most of tcp_sequence, half of tcp_ack and chunks of
- * tcp_data/tcp_read as well as the window shrink crud.
- * Separate out duplicated code - tcp_alloc_skb, tcp_build_ack
- * tcp_queue_skb seem obvious routines to extract.
- *
* 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
@@ -267,6 +247,9 @@
* for violations and the like. tcp.c is just too big... If I say something
* "does?" or "doesn't?", it means I'm not sure, and will have to hash it out
* with Alan. -- MS 950903
+ * [Note: Most of the TCP code has been rewriten/redesigned since this
+ * RFC1122 check. It is probably not correct anymore. It should be redone
+ * before 2.2. -AK]
*
* Use of PSH (4.2.2.2)
* MAY aggregate data sent without the PSH flag. (does)
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index d89624175..dfe60e712 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -5,7 +5,7 @@
*
* Implementation of the Transmission Control Protocol(TCP).
*
- * Version: $Id: tcp_ipv4.c,v 1.1.1.1 1997/06/01 03:16:26 ralf Exp $
+ * Version: $Id: tcp_ipv4.c,v 1.2 1997/07/20 15:01:56 ralf Exp $
*
* IPv4 specific functions
*
@@ -1205,7 +1205,7 @@ static inline struct sock *tcp_v4_check_req(struct sock *sk, struct sk_buff *skb
/* Check for syn retransmission */
flg = *(((u32 *)skb->h.th) + 3);
- flg &= __constant_htonl(0x002f0000);
+ flg &= __constant_htonl(0x001f0000);
if ((flg == __constant_htonl(0x00020000)) &&
(!after(skb->seq, req->rcv_isn))) {
/* retransmited syn
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index b8e6ac4a5..1b4235dbd 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -5,7 +5,7 @@
* Authors:
* Pedro Roque <roque@di.fc.ul.pt>
*
- * $Id: route.c,v 1.12 1997/04/29 09:38:50 mj Exp $
+ * $Id: route.c,v 1.1.1.1 1997/06/01 03:16:27 ralf Exp $
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -1427,8 +1427,8 @@ static void rt6_info_node(struct fib6_node *fn, void *p_arg)
}
arg->len += sprintf(arg->buffer + arg->len,
" %08lx %08x %08x %08lx %8s\n",
- rt->rt6i_metric, rt->rt6i_use,
- rt->rt6i_ref, rt->rt6i_flags,
+ rt->rt6i_metric, atomic_read(&rt->rt6i_use),
+ atomic_read(&rt->rt6i_ref), rt->rt6i_flags,
rt->rt6i_dev ? rt->rt6i_dev->name : "");
}
}
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 51b9eff4c..9a5e2dfc7 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -5,7 +5,7 @@
* Authors:
* Pedro Roque <roque@di.fc.ul.pt>
*
- * $Id: tcp_ipv6.c,v 1.2 1997/06/17 13:31:32 ralf Exp $
+ * $Id: tcp_ipv6.c,v 1.35 1997/07/23 15:18:04 freitag Exp $
*
* Based on:
* linux/net/ipv4/tcp.c
@@ -699,7 +699,6 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb, void *ptr,
{
struct tcp_opt tp;
struct open_request *req;
- __u16 req_mss;
/* If the socket is dead, don't accept the connection. */
if (sk->dead) {
@@ -1048,7 +1047,7 @@ struct sock *tcp_v6_check_req(struct sock *sk, struct sk_buff *skb)
/* Check for syn retransmission */
flg = *(((u32 *)skb->h.th) + 3);
- flg &= __constant_htonl(0x002f0000);
+ flg &= __constant_htonl(0x001f0000);
if ((flg == __constant_htonl(0x00020000)) &&
(!after(skb->seq, req->rcv_isn))) {