1/* Definitions for Rose packet radio address family. 2 Copyright (C) 1998, 1999 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 5 The GNU C Library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 10 The GNU C Library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with the GNU C Library; if not, write to the Free 17 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 18 02111-1307 USA. */ 19 20/* What follows is copied from the 2.1.93 <linux/rose.h>. */ 21 22#ifndef _NETROSE_ROSE_H 23#define _NETROSE_ROSE_H 1 24 25/* Socket level values. */ 26#define SOL_ROSE 260 27 28 29/* These are the public elements of the Linux kernel Rose 30 implementation. For kernel AX.25 see the file ax25.h. This file 31 requires ax25.h for the definition of the ax25_address structure. */ 32#define ROSE_MTU 251 33 34#define ROSE_MAX_DIGIS 6 35 36#define ROSE_DEFER 1 37#define ROSE_T1 2 38#define ROSE_T2 3 39#define ROSE_T3 4 40#define ROSE_IDLE 5 41#define ROSE_QBITINCL 6 42#define ROSE_HOLDBACK 7 43 44#define SIOCRSGCAUSE (SIOCPROTOPRIVATE + 0) 45#define SIOCRSSCAUSE (SIOCPROTOPRIVATE + 1) 46#define SIOCRSL2CALL (SIOCPROTOPRIVATE + 2) 47#define SIOCRSSL2CALL (SIOCPROTOPRIVATE + 2) 48#define SIOCRSACCEPT (SIOCPROTOPRIVATE + 3) 49#define SIOCRSCLRRT (SIOCPROTOPRIVATE + 4) 50#define SIOCRSGL2CALL (SIOCPROTOPRIVATE + 5) 51#define SIOCRSGFACILITIES (SIOCPROTOPRIVATE + 6) 52 53#define ROSE_DTE_ORIGINATED 0x00 54#define ROSE_NUMBER_BUSY 0x01 55#define ROSE_INVALID_FACILITY 0x03 56#define ROSE_NETWORK_CONGESTION 0x05 57#define ROSE_OUT_OF_ORDER 0x09 58#define ROSE_ACCESS_BARRED 0x0B 59#define ROSE_NOT_OBTAINABLE 0x0D 60#define ROSE_REMOTE_PROCEDURE 0x11 61#define ROSE_LOCAL_PROCEDURE 0x13 62#define ROSE_SHIP_ABSENT 0x39 63 64 65typedef struct 66{ 67 char rose_addr[5]; 68} rose_address; 69 70struct sockaddr_rose 71{ 72 sa_family_t srose_family; 73 rose_address srose_addr; 74 ax25_address srose_call; 75 int srose_ndigis; 76 ax25_address srose_digi; 77}; 78 79struct full_sockaddr_rose 80{ 81 sa_family_t srose_family; 82 rose_address srose_addr; 83 ax25_address srose_call; 84 unsigned int srose_ndigis; 85 ax25_address srose_digis[ROSE_MAX_DIGIS]; 86}; 87 88struct rose_route_struct 89{ 90 rose_address address; 91 unsigned short int mask; 92 ax25_address neighbour; 93 char device[16]; 94 unsigned char ndigis; 95 ax25_address digipeaters[AX25_MAX_DIGIS]; 96}; 97 98struct rose_cause_struct 99{ 100 unsigned char cause; 101 unsigned char diagnostic; 102}; 103 104struct rose_facilities_struct 105{ 106 rose_address source_addr, dest_addr; 107 ax25_address source_call, dest_call; 108 unsigned char source_ndigis, dest_ndigis; 109 ax25_address source_digis[ROSE_MAX_DIGIS]; 110 ax25_address dest_digis[ROSE_MAX_DIGIS]; 111 unsigned int rand; 112 rose_address fail_addr; 113 ax25_address fail_call; 114}; 115 116#endif /* netrose/rose.h */ 117