annotate packages/net/ppp/current/tests/test_server.sh @ 1586:e0d88dc6a92f

Added PPP network support.
author nickg
date Wed, 14 Apr 2004 15:08:56 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1586
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
1 #! /bin/bash
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
2 #==========================================================================
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
3 #
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
4 # tests/test_server.sh
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
5 #
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
6 # PPP test server script
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
7 #
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
8 #==========================================================================
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
9 #####ECOSGPLCOPYRIGHTBEGIN####
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
10 # -------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
11 # This file is part of eCos, the Embedded Configurable Operating System.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
12 # Copyright (C) 2003, 2004 eCosCentric Ltd.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
13 #
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
14 # eCos is free software; you can redistribute it and/or modify it under
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
15 # the terms of the GNU General Public License as published by the Free
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
16 # Software Foundation; either version 2 or (at your option) any later version.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
17 #
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
18 # eCos is distributed in the hope that it will be useful, but WITHOUT ANY
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
19 # WARRANTY; without even the implied warranty of MERCHANTABILITY or
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
20 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
21 # for more details.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
22 #
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
23 # You should have received a copy of the GNU General Public License along
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
24 # with eCos; if not, write to the Free Software Foundation, Inc.,
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
25 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
26 #
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
27 # As a special exception, if other files instantiate templates or use macros
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
28 # or inline functions from this file, or you compile this file and link it
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
29 # with other works to produce a work based on this file, this file does not
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
30 # by itself cause the resulting work to be covered by the GNU General Public
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
31 # License. However the source code for this file must still be made available
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
32 # in accordance with section (3) of the GNU General Public License.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
33 #
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
34 # This exception does not invalidate any other reasons why a work based on
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
35 # this file might be covered by the GNU General Public License.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
36 #
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
37 # -------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
38 #####ECOSGPLCOPYRIGHTEND####
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
39 #==========================================================================
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
40 ######DESCRIPTIONBEGIN####
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
41 #
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
42 # Author(s): nickg
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
43 # Contributors:
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
44 # Date: 2003-06-26
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
45 # Purpose:
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
46 # Description:
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
47 #
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
48 #
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
49 #####DESCRIPTIONEND####
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
50 #
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
51 #==========================================================================
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
52
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
53 # --------------------------------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
54 # Global variables
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
55
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
56 ppp_prev=
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
57 ppp_optarg=
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
58
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
59 ppp_dev=
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
60 ppp_myip=
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
61 ppp_hisip=
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
62 ppp_debug=
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
63 ppp_redboot=
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
64 ppp_redboot_baud=38400
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
65 ppp_baud=$ppp_redboot_baud
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
66 ppp_flow=crtscts
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
67 ppp_ping_interval=1
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
68
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
69 # --------------------------------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
70 # Parse the options:
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
71
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
72 for ppp_option
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
73 do
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
74
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
75 # If the previous option needs an argument, assign it.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
76 if test -n "$ppp_prev"; then
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
77 eval "$ppp_prev=\$ppp_option"
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
78 ppp_prev=
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
79 continue
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
80 fi
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
81
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
82 # If this option is of the form --thing=value then store
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
83 # the value into $ppp_optarg.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
84 case "$ppp_option" in
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
85 -*=*) ppp_optarg=`echo "$ppp_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
86 *) ppp_optarg= ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
87 esac
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
88
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
89 # Now parse the option
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
90
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
91 case "$ppp_option" in
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
92
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
93 --dev) ppp_prev=ppp_dev ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
94 --dev=*) ppp_dev=$ppp_optarg ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
95
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
96 --myip) ppp_prev=ppp_myip ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
97 --myip=*) ppp_myip=$ppp_optarg ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
98
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
99 --hisip) ppp_prev=ppp_hisip ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
100 --hisip=*) ppp_hisip=$ppp_optarg ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
101
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
102 --baud) ppp_prev=ppp_baud ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
103 --baud=*) ppp_baud=$ppp_optarg ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
104
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
105 --flow) ppp_prev=ppp_flow ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
106 --flow=*) ppp_flow=$ppp_optarg ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
107
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
108 --redboot) ppp_redboot=y ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
109
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
110 --redboot-baud) ppp_prev=ppp_redboot_baud ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
111 --redboot-baud=*) ppp_redboot_baud=$ppp_optarg ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
112
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
113 --debug) ppp_debug=y ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
114
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
115 *)
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
116 echo "test_server: Unrecognized option: \"$ppp_option\"." >&2
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
117 exit 1
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
118 ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
119 esac
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
120 done
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
121
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
122 # --------------------------------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
123 # debug echo function. This only generates output if the --debug
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
124 # flag was given.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
125
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
126 dbecho()
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
127 {
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
128 if [ $ppp_debug ] ; then
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
129 echo $*
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
130 fi
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
131 }
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
132
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
133 # --------------------------------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
134 # Usage message
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
135
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
136 usage()
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
137 {
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
138 echo "test_server --dev=<devname>"
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
139 echo " --myip=<myip_addr>"
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
140 echo " --hisip=<hisip_addr>"
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
141 echo " [--baud=<baud_rate>]"
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
142 echo " [--flow=[crtscts|xonxoff|none]]"
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
143 echo " [--redboot [--redboot-baud=<baud_rate>]]"
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
144 echo " [--debug]"
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
145 exit 1
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
146 }
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
147
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
148 # --------------------------------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
149 # Check that all the required options are present, and report their
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
150 # values.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
151
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
152 if [ -z "$ppp_dev" ] ; then usage ; fi
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
153 if [ -z "$ppp_myip" ] ; then usage ; fi
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
154 if [ -z "$ppp_hisip" ] ; then usage ; fi
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
155
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
156 dbecho "Device : " $ppp_dev
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
157 dbecho "My IP : " $ppp_myip
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
158 dbecho "His IP : " $ppp_hisip
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
159 dbecho "Baud : " $ppp_baud
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
160 dbecho "Flow : " $ppp_flow
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
161
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
162 if [ "$ppp_flow" == "none" ] ; then ppp_flow="" ; fi
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
163
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
164 # --------------------------------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
165 # Bring the PPP link up by calling pppd. The pid of the PPPD is
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
166 # stored in pppd_pid for later use.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
167
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
168 pppup()
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
169 {
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
170 dbecho pppd $ppp_dev $ppp_baud $ppp_flow local nodetach $ppp_myip:$ppp_hisip $* &
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
171 pppd $ppp_dev $ppp_baud $ppp_flow local nodetach $ppp_myip:$ppp_hisip $* &
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
172 pppd_pid=$!
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
173 # dbecho "PPPD Pid: " $pppd_pid
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
174 }
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
175
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
176 # --------------------------------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
177 # Simple test for bringing PPP up. Once the link is up the remote
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
178 # end is pinged for a while and then we bring the link down by
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
179 # signalling the PPPD.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
180
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
181 ppp_up_test()
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
182 {
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
183 dbecho ppp_up_test
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
184 pppup
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
185 sleep 6
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
186 ping -i$ppp_ping_interval -w45 -s3000 -c20 $ppp_hisip
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
187 kill -SIGINT $pppd_pid
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
188 wait $pppd_pid
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
189 }
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
190
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
191 # --------------------------------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
192 # Up/down test. In this case the link is brought down by the remote
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
193 # end.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
194
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
195 ppp_updown_test()
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
196 {
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
197 dbecho ppp_updown_test
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
198 pppup
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
199 wait $pppd_pid
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
200 }
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
201
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
202
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
203 # --------------------------------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
204 # Chat tests. These use chat itself to test the chat scripts on the
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
205 # remote end. The tests are:
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
206 #
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
207 # chat_test_1 - run throught the entire script
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
208 # chat_test_2 - simulate a carrier drop
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
209 # chat_test_3 - simulate a timeout
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
210
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
211 chat_test_1()
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
212 {
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
213 chat -V "Chat Test" "CONNECT\rlogin:\c" ppp "Password:\c" hithere "" <$ppp_dev >$ppp_dev
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
214 }
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
215
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
216 chat_test_2()
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
217 {
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
218 chat -V "Chat Test" "CONNECT\rlogin:\c" ppp "NO CARRIER" <$ppp_dev >$ppp_dev
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
219 }
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
220
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
221 chat_test_3()
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
222 {
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
223 chat -V "Chat Test" "CONNECT\rlogin:\c" ppp <$ppp_dev >$ppp_dev
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
224 }
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
225
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
226 # --------------------------------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
227 # Authentication tests. These bring up the PPPD with different
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
228 # authentication requirements against which the remote end tests
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
229 # itself. The tests are:
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
230 #
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
231 # auth_test_1 - authenticate by default method (usually CHAP)
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
232 # auth_test_2 - require PAP authentication
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
233 # auth_test_3 - require CHAP authentication
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
234
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
235 auth_test_1()
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
236 {
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
237 dbecho ppp_up_test
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
238 pppup auth
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
239 sleep 6
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
240 ps -p $pppd_pid >/dev/null
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
241 if [ "$?" == "0" ] ; then
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
242 ping -i$ppp_ping_interval -w45 -s3000 -c5 $ppp_hisip
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
243 kill -SIGINT $pppd_pid
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
244 wait $pppd_pid
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
245 fi
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
246 }
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
247
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
248 auth_test_2()
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
249 {
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
250 dbecho ppp_up_test
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
251 pppup auth require-pap
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
252 sleep 6
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
253 ps -p $pppd_pid >/dev/null
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
254 if [ "$?" == "0" ] ; then
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
255 ping -i$ppp_ping_interval -w45 -s3000 -c5 $ppp_hisip
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
256 kill -SIGINT $pppd_pid
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
257 wait $pppd_pid
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
258 fi
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
259 }
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
260
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
261 auth_test_3()
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
262 {
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
263 dbecho ppp_up_test
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
264 pppup auth require-chap
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
265 sleep 6
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
266 ps -p $pppd_pid >/dev/null
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
267 if [ "$?" == "0" ] ; then
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
268 ping -i$ppp_ping_interval -w45 -s3000 -c5 $ppp_hisip
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
269 kill -SIGINT $pppd_pid
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
270 wait $pppd_pid
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
271 fi
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
272 }
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
273
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
274
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
275 # --------------------------------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
276 # TCP echo test. After bringing up the link this test runs the
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
277 # tcp_source and tcp_sink test programs to exercise the link. This
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
278 # can take a long time so it is not really suitable for automated
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
279 # testing.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
280
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
281 tcp_echo_test()
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
282 {
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
283 local sink_pid
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
284 dbecho tcp_echo_test
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
285 pppup
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
286 sleep 10
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
287 tcp_sink $ppp_hisip &
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
288 sink_pid=$!
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
289 sleep 5
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
290 tcp_source $ppp_hisip 60
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
291 wait $sink_pid
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
292 sleep 5
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
293 wait $pppd_pid
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
294 }
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
295
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
296 # --------------------------------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
297 # Network characterisation test. After bringing up the link this test
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
298 # runs the nc_test_master test program to exercise the link. This can
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
299 # take a long time so it is not really suitable for automated testing.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
300
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
301 nc_test_slave_test()
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
302 {
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
303 dbecho nc_test_slave_test
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
304 pppup
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
305 sleep 10
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
306 nc_test_master $ppp_hisip
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
307 sleep 5
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
308 wait $pppd_pid
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
309 }
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
310
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
311 # --------------------------------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
312 # Change the baud rate. Depending on the value sent as part of the
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
313 # BAUD message, change the link baudrate.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
314
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
315 new_baud()
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
316 {
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
317 ppp_new_baud=`echo $ppp_test | sed 's/.*BAUD:\([0-9]*\).*/\1/'`
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
318 dbecho "New Baud " $ppp_new_baud
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
319 case $ppp_new_baud in
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
320 016) ppp_baud=14400; ppp_ping_interval=6 ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
321 017) ppp_baud=19200; ppp_ping_interval=4 ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
322 018) ppp_baud=38400; ppp_ping_interval=2 ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
323 019) ppp_baud=57600; ppp_ping_interval=2 ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
324 020) ppp_baud=115200; ppp_ping_interval=1 ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
325 021) ppp_baud=230400 ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
326
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
327 *) dbecho "Unknown baud rate: " $ppp_new_baud
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
328 esac
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
329 dbecho "New Baud Rate : " $ppp_baud
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
330 }
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
331
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
332
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
333
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
334 # --------------------------------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
335 # Look for a RedBoot> prompt.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
336
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
337 ppp_redboot_prompt()
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
338 {
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
339 local done=
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
340 dbecho ppp_redboot_prompt
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
341
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
342 stty -F $ppp_dev $ppp_redboot_baud
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
343
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
344 while [ ! $done ] ; do
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
345 chat -V "RedBoot>" "\c" <$ppp_dev >$ppp_dev
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
346 if [ "$?" == "0" ] ; then done=1; fi
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
347 done
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
348 }
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
349
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
350 # --------------------------------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
351 # Main loop.
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
352
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
353 while true ; do
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
354
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
355 if [ $ppp_redboot ] ; then ppp_redboot_prompt; fi
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
356
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
357 ppp_running=y
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
358
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
359 while [ $ppp_running ] ; do
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
360
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
361 dbecho ""
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
362
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
363 dbecho "Setting baud rate : " $ppp_baud
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
364 stty -F $ppp_dev $ppp_baud
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
365
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
366 dbecho "Waiting for test..."
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
367
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
368 read ppp_test ppp_junk < $ppp_dev
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
369
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
370 ppp_test=`echo $ppp_test | sed 's/\([a-zA-Z_:0-9]*\).*/\1/'`
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
371
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
372 dbecho "PPP test: >" $ppp_test "<"
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
373
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
374 case $ppp_test in
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
375
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
376 PPP_UPDOWN) ppp_updown_test ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
377
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
378 PPP_UP) ppp_up_test ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
379
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
380 CHAT_TEST_1) chat_test_1 ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
381 CHAT_TEST_2) chat_test_2 ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
382 CHAT_TEST_3) chat_test_3 ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
383
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
384 PPP_AUTH_1) auth_test_1 ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
385 PPP_AUTH_2) auth_test_2 ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
386 PPP_AUTH_3) auth_test_3 ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
387
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
388 TCP_ECHO) tcp_echo_test ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
389
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
390 NC_TEST_SLAVE) nc_test_slave_test ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
391
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
392 BAUD:*) new_baud ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
393
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
394 FINISH) unset ppp_running ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
395
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
396 *) echo "Unknown test: " $ppp_test ;;
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
397
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
398 esac
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
399
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
400 done
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
401
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
402 done
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
403
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
404 # --------------------------------------------------------------------
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
405 # end of test_server.sh
e0d88dc6a92f Added PPP network support.
nickg
parents:
diff changeset
406