* General stuff for different baudrates:

- ubr argument to slip_arch_int

    - macros for calculating ubr

    - argument -Bbaudrate to tools tunslip and scat
This commit is contained in:
bg- 2007-02-02 13:26:48 +00:00
parent 2918e5ae20
commit 429d41defd
8 changed files with 121 additions and 76 deletions

View file

@ -28,7 +28,7 @@
*
* This file is part of the uIP TCP/IP stack.
*
* $Id: tunslip.c,v 1.9 2007/02/01 14:35:23 bg- Exp $
* $Id: tunslip.c,v 1.10 2007/02/02 13:26:49 bg- Exp $
*
*/
@ -689,16 +689,14 @@ tun_to_serial(int infd, int outfd)
#ifndef BAUDRATE
#define BAUDRATE B115200
//#define BAUDRATE B57600
//#define BAUDRATE B38400
//#define BAUDRATE B19200
#endif
speed_t b_rate = BAUDRATE;
void
stty_telos(int fd)
{
struct termios tty;
speed_t speed = BAUDRATE;
speed_t speed = b_rate;
int i;
if(tcflush(fd, TCIOFLUSH) == -1) err(1, "tcflush");
@ -866,11 +864,16 @@ main(int argc, char **argv)
const char *siodev = NULL;
const char *dhcp_server = NULL;
u_int16_t myport = BOOTPS, dhport = BOOTPS;
int baudrate = -2;
ip_id = getpid() * time(NULL);
while ((c = getopt(argc, argv, "D:hs:t:")) != -1) {
while ((c = getopt(argc, argv, "B:D:hs:t:")) != -1) {
switch (c) {
case 'B':
baudrate = atoi(optarg);
break;
case 'D':
dhcp_server = optarg;
break;
@ -892,7 +895,7 @@ main(int argc, char **argv)
case '?':
case 'h':
default:
err(1, "usage: tunslip [-s siodev] [-t tundev] [-D dhcp-server] ipaddress netmask [dhcp-server]");
err(1, "usage: tunslip [-B baudrate] [-s siodev] [-t tundev] [-D dhcp-server] ipaddress netmask [dhcp-server]");
break;
}
}
@ -906,6 +909,29 @@ main(int argc, char **argv)
circuit_addr = inet_addr(ipaddr);
netaddr = inet_addr(ipaddr) & inet_addr(netmask);
switch (baudrate) {
case -2:
break; /* Use default. */
case 9600:
b_rate = B9600;
break;
case 19200:
b_rate = B19200;
break;
case 38400:
b_rate = B38400;
break;
case 57600:
b_rate = B57600;
break;
case 115200:
b_rate = B115200;
break;
default:
err(1, "unknown baudrate %d", baudrate);
break;
}
/*
* Set up DHCP relay agent socket and find the address of this relay
* agent.