Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Oct 2001 18:06:51 +0400
From:      Roman Kurakin <rik@cronyx.ru>
To:        freebsd-net@FreeBSD.org
Cc:        Serge Vakulenko <vak@cronyx.ru>, mike@FreeBSD.org, freebsd-bugs@FreeBSD.org, julian@FreeBSD.org, archie@FreeBSD.org, joerg@FreeBSD.org, rik@cronyx.ru
Subject:   kern/11238, kern/14848, kern/21771, sppp patch's patch_id #1
Message-ID:  <3BDABF7B.4060808@cronyx.ru>
References:  <000901c1134b$827a69a0$48b5ce90@crox>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------090906090208020507000109
Content-Type: text/plain; charset=windows-1251; format=flowed
Content-Transfer-Encoding: 7bit

Hi,
   
    This is the first patch of set of patches that I plan to make. These 
patches ware send several
times as a big patch and last one wasn't even discussed. So I will try 
to send them by small
pieces and will try to comment them.

    Last one big patch was kern/21771. Last our version of sppp and 
adapter drivers could be found
at http://www.cronyx.ru/software/

    First portion contains following changes:
1) Just a header changes.
2) Changes like that:
                case STATE_CLOSING:
-                       sppp_cp_change_state(cp, sp, STATE_CLOSED);
                        (cp->tlf)(sp);
+                       sppp_cp_change_state(cp, sp, STATE_CLOSED);
                        break;

Comment:

    If you change state at first and then call tlf you will get wrong 
final state cause tlf will
lead to "Close" event and you will get (for this example) final state 
"Initial".

    In some cases this isn't so fatal but in other this will put out of 
action a link.

    All this changes was made according to RFC1661.

Best regards,

Roman Kurakin, Software Engineer,
Cronyx Engineering

>>Synopsis: Frame Relay support, corrected
>>
>>State-Changed-From-To: open->suspended
>>State-Changed-By: mike
>>State-Changed-When: Fri Jul 20 19:54:47 PDT 2001
>>State-Changed-Why: 
>>
>>With a little bit of work, this could probably be committed.
>>Awaiting committer.
>>
>>http://www.FreeBSD.org/cgi/query-pr.cgi?pr=14848
>>
>


--------------090906090208020507000109
Content-Type: text/plain;
 name="sppp1.pch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="sppp1.pch"

--- if_spppsubr.c.orig	Sat Oct 27 16:37:21 2001
+++ if_spppsubr.c	Sat Oct 27 16:56:32 2001
@@ -1,13 +1,21 @@
 /*
- * Synchronous PPP/Cisco link level subroutines.
+ * Synchronous PPP/Cisco/Frame Relay link level subroutines.
  * Keepalive protocol implemented in both Cisco and PPP modes.
+ * ANSI T1.617-compaible link management signaling
+ * implemented for Frame Relay mode.
+ * Cisco-type Frame Relay framing added, thanks Alex Tutubalin.
+ * Only one DLCI per channel for now.
  *
- * Copyright (C) 1994-1996 Cronyx Engineering Ltd.
+ * Copyright (C) 1994-2001 Cronyx Engineering Ltd.
  * Author: Serge Vakulenko, <vak@cronyx.ru>
  *
  * Heavily revamped to conform to RFC 1661.
  * Copyright (C) 1997, Joerg Wunsch.
  *
+ * Slightly revamped to conform to real life.
+ * Copyright (C) 1999-2001 Cronyx Engineering Ltd.
+ * Author: Kurakin Roman, <rik@cronyx.ru>
+ *
  * This software is distributed with NO WARRANTIES, not even the implied
  * warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  *
@@ -222,7 +230,7 @@
 	u_short time0;
 	u_short time1;
 };
-#define CISCO_PACKET_LEN 18
+#define CISCO_PACKET_LEN 14
 
 /*
  * We follow the spelling and capitalization of RFC 1661 here, to make
@@ -1532,12 +1540,12 @@
 		case STATE_ACK_SENT:
 			break;
 		case STATE_CLOSING:
-			sppp_cp_change_state(cp, sp, STATE_CLOSED);
 			(cp->tlf)(sp);
+			sppp_cp_change_state(cp, sp, STATE_CLOSED);
 			break;
 		case STATE_STOPPING:
-			sppp_cp_change_state(cp, sp, STATE_STOPPED);
 			(cp->tlf)(sp);
+			sppp_cp_change_state(cp, sp, STATE_STOPPED);
 			break;
 		case STATE_ACK_RCVD:
 			sppp_cp_change_state(cp, sp, STATE_REQ_SENT);
@@ -1850,8 +1858,8 @@
 	case STATE_CLOSING:
 		break;
 	case STATE_STARTING:
-		sppp_cp_change_state(cp, sp, STATE_INITIAL);
 		(cp->tlf)(sp);
+		sppp_cp_change_state(cp, sp, STATE_INITIAL);
 		break;
 	case STATE_STOPPED:
 		sppp_cp_change_state(cp, sp, STATE_CLOSED);
@@ -1890,18 +1898,18 @@
 		/* TO- event */
 		switch (sp->state[cp->protoidx]) {
 		case STATE_CLOSING:
-			sppp_cp_change_state(cp, sp, STATE_CLOSED);
 			(cp->tlf)(sp);
+			sppp_cp_change_state(cp, sp, STATE_CLOSED);
 			break;
 		case STATE_STOPPING:
-			sppp_cp_change_state(cp, sp, STATE_STOPPED);
 			(cp->tlf)(sp);
+			sppp_cp_change_state(cp, sp, STATE_STOPPED);
 			break;
 		case STATE_REQ_SENT:
 		case STATE_ACK_RCVD:
 		case STATE_ACK_SENT:
-			sppp_cp_change_state(cp, sp, STATE_STOPPED);
 			(cp->tlf)(sp);
+			sppp_cp_change_state(cp, sp, STATE_STOPPED);
 			break;
 		}
 	else

--------------090906090208020507000109--


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3BDABF7B.4060808>