1 /* Copyright (C) 1997-2022 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3 
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8 
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13 
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, see
16    <https://www.gnu.org/licenses/>.  */
17 
18 #ifndef _NETROM_NETROM_H
19 #define _NETROM_NETROM_H	1
20 
21 #include <netax25/ax25.h>
22 
23 /* Setsockoptions(2) level.  Thanks to BSD these must match IPPROTO_xxx.  */
24 #define SOL_NETROM	259
25 
26 /* NetRom control values: */
27 #define NETROM_T1	1
28 #define NETROM_T2	2
29 #define NETROM_N2	3
30 #define NETROM_PACLEN	5
31 #define	NETROM_T4	6
32 #define NETROM_IDLE	7
33 
34 #define NETROM_KILL	99
35 
36 /* Type of route: */
37 #define NETROM_NEIGH    0
38 #define NETROM_NODE     1
39 
40 struct nr_route_struct
41   {
42     int type;
43     ax25_address callsign;
44     char device[16];
45     unsigned int quality;
46     char mnemonic[7];
47     ax25_address neighbour;
48     unsigned int obs_count;
49     unsigned int ndigis;
50     ax25_address digipeaters[AX25_MAX_DIGIS];
51   };
52 
53 /* NetRom socket ioctls: */
54 #define	SIOCNRGETPARMS		(SIOCPROTOPRIVATE+0)
55 #define	SIOCNRSETPARMS		(SIOCPROTOPRIVATE+1)
56 #define	SIOCNRDECOBS		(SIOCPROTOPRIVATE+2)
57 #define	SIOCNRRTCTL		(SIOCPROTOPRIVATE+3)
58 #define	SIOCNRCTLCON		(SIOCPROTOPRIVATE+4)
59 
60 /* NetRom parameter structure: */
61 struct nr_parms_struct
62   {
63     unsigned int quality;
64     unsigned int obs_count;
65     unsigned int ttl;
66     unsigned int timeout;
67     unsigned int ack_delay;
68     unsigned int busy_delay;
69     unsigned int tries;
70     unsigned int window;
71     unsigned int paclen;
72   };
73 
74 /* NetRom control structure: */
75 struct nr_ctl_struct
76   {
77     unsigned char index;
78     unsigned char id;
79     unsigned int cmd;
80     unsigned long arg;
81   };
82 
83 #endif /* netrom/netrom.h */
84