Blame sysdeps/unix/sysv/linux/netrose/rose.h

Packit 6c4009
/* Definitions for Rose packet radio address family.
Packit 6c4009
   Copyright (C) 1998-2018 Free Software Foundation, Inc.
Packit 6c4009
   This file is part of the GNU C Library.
Packit 6c4009
Packit 6c4009
   The GNU C Library is free software; you can redistribute it and/or
Packit 6c4009
   modify it under the terms of the GNU Lesser General Public
Packit 6c4009
   License as published by the Free Software Foundation; either
Packit 6c4009
   version 2.1 of the License, or (at your option) any later version.
Packit 6c4009
Packit 6c4009
   The GNU C Library is distributed in the hope that it will be useful,
Packit 6c4009
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 6c4009
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 6c4009
   Lesser General Public License for more details.
Packit 6c4009
Packit 6c4009
   You should have received a copy of the GNU Lesser General Public
Packit 6c4009
   License along with the GNU C Library; if not, see
Packit 6c4009
   <http://www.gnu.org/licenses/>.  */
Packit 6c4009
Packit 6c4009
/* What follows is copied from the 2.1.93 <linux/rose.h>.  */
Packit 6c4009
Packit 6c4009
#ifndef _NETROSE_ROSE_H
Packit 6c4009
#define _NETROSE_ROSE_H 1
Packit 6c4009
Packit 6c4009
#include <sys/socket.h>
Packit 6c4009
#include <netax25/ax25.h>
Packit 6c4009
Packit 6c4009
/* Socket level values.  */
Packit 6c4009
#define SOL_ROSE        260
Packit 6c4009
Packit 6c4009
Packit 6c4009
/* These are the public elements of the Linux kernel Rose
Packit 6c4009
   implementation.  For kernel AX.25 see the file ax25.h. This file
Packit 6c4009
   requires ax25.h for the definition of the ax25_address structure.  */
Packit 6c4009
#define ROSE_MTU	251
Packit 6c4009
Packit 6c4009
#define ROSE_MAX_DIGIS	6
Packit 6c4009
Packit 6c4009
#define	ROSE_DEFER	1
Packit 6c4009
#define	ROSE_T1		2
Packit 6c4009
#define	ROSE_T2		3
Packit 6c4009
#define	ROSE_T3		4
Packit 6c4009
#define	ROSE_IDLE	5
Packit 6c4009
#define	ROSE_QBITINCL	6
Packit 6c4009
#define	ROSE_HOLDBACK	7
Packit 6c4009
Packit 6c4009
#define	SIOCRSGCAUSE		(SIOCPROTOPRIVATE + 0)
Packit 6c4009
#define	SIOCRSSCAUSE		(SIOCPROTOPRIVATE + 1)
Packit 6c4009
#define	SIOCRSL2CALL		(SIOCPROTOPRIVATE + 2)
Packit 6c4009
#define	SIOCRSSL2CALL		(SIOCPROTOPRIVATE + 2)
Packit 6c4009
#define	SIOCRSACCEPT		(SIOCPROTOPRIVATE + 3)
Packit 6c4009
#define	SIOCRSCLRRT		(SIOCPROTOPRIVATE + 4)
Packit 6c4009
#define	SIOCRSGL2CALL		(SIOCPROTOPRIVATE + 5)
Packit 6c4009
#define	SIOCRSGFACILITIES	(SIOCPROTOPRIVATE + 6)
Packit 6c4009
Packit 6c4009
#define	ROSE_DTE_ORIGINATED	0x00
Packit 6c4009
#define	ROSE_NUMBER_BUSY	0x01
Packit 6c4009
#define	ROSE_INVALID_FACILITY	0x03
Packit 6c4009
#define	ROSE_NETWORK_CONGESTION	0x05
Packit 6c4009
#define	ROSE_OUT_OF_ORDER	0x09
Packit 6c4009
#define	ROSE_ACCESS_BARRED	0x0B
Packit 6c4009
#define	ROSE_NOT_OBTAINABLE	0x0D
Packit 6c4009
#define	ROSE_REMOTE_PROCEDURE	0x11
Packit 6c4009
#define	ROSE_LOCAL_PROCEDURE	0x13
Packit 6c4009
#define	ROSE_SHIP_ABSENT	0x39
Packit 6c4009
Packit 6c4009
Packit 6c4009
typedef struct
Packit 6c4009
{
Packit 6c4009
  char rose_addr[5];
Packit 6c4009
} rose_address;
Packit 6c4009
Packit 6c4009
struct sockaddr_rose
Packit 6c4009
{
Packit 6c4009
  sa_family_t srose_family;
Packit 6c4009
  rose_address srose_addr;
Packit 6c4009
  ax25_address srose_call;
Packit 6c4009
  int srose_ndigis;
Packit 6c4009
  ax25_address	srose_digi;
Packit 6c4009
};
Packit 6c4009
Packit 6c4009
struct full_sockaddr_rose
Packit 6c4009
{
Packit 6c4009
  sa_family_t srose_family;
Packit 6c4009
  rose_address srose_addr;
Packit 6c4009
  ax25_address srose_call;
Packit 6c4009
  unsigned int srose_ndigis;
Packit 6c4009
  ax25_address srose_digis[ROSE_MAX_DIGIS];
Packit 6c4009
};
Packit 6c4009
Packit 6c4009
struct rose_route_struct
Packit 6c4009
{
Packit 6c4009
  rose_address address;
Packit 6c4009
  unsigned short int mask;
Packit 6c4009
  ax25_address	neighbour;
Packit 6c4009
  char device[16];
Packit 6c4009
  unsigned char	ndigis;
Packit 6c4009
  ax25_address digipeaters[AX25_MAX_DIGIS];
Packit 6c4009
};
Packit 6c4009
Packit 6c4009
struct rose_cause_struct
Packit 6c4009
{
Packit 6c4009
  unsigned char	cause;
Packit 6c4009
  unsigned char	diagnostic;
Packit 6c4009
};
Packit 6c4009
Packit 6c4009
struct rose_facilities_struct
Packit 6c4009
{
Packit 6c4009
  rose_address source_addr,   dest_addr;
Packit 6c4009
  ax25_address source_call,   dest_call;
Packit 6c4009
  unsigned char source_ndigis, dest_ndigis;
Packit 6c4009
  ax25_address source_digis[ROSE_MAX_DIGIS];
Packit 6c4009
  ax25_address dest_digis[ROSE_MAX_DIGIS];
Packit 6c4009
  unsigned int rand;
Packit 6c4009
  rose_address fail_addr;
Packit 6c4009
  ax25_address fail_call;
Packit 6c4009
};
Packit 6c4009
Packit 6c4009
#endif	/* netrose/rose.h */