1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * DLCI/FRAD Definitions for Frame Relay Access Devices. DLCI devices are 4*4882a593Smuzhiyun * created for each DLCI associated with a FRAD. The FRAD driver 5*4882a593Smuzhiyun * is not truly a network device, but the lower level device 6*4882a593Smuzhiyun * handler. This allows other FRAD manufacturers to use the DLCI 7*4882a593Smuzhiyun * code, including its RFC1490 encapsulation alongside the current 8*4882a593Smuzhiyun * implementation for the Sangoma cards. 9*4882a593Smuzhiyun * 10*4882a593Smuzhiyun * Version: @(#)if_ifrad.h 0.15 31 Mar 96 11*4882a593Smuzhiyun * 12*4882a593Smuzhiyun * Author: Mike McLagan <mike.mclagan@linux.org> 13*4882a593Smuzhiyun * 14*4882a593Smuzhiyun * Changes: 15*4882a593Smuzhiyun * 0.15 Mike McLagan changed structure defs (packed) 16*4882a593Smuzhiyun * re-arranged flags 17*4882a593Smuzhiyun * added DLCI_RET vars 18*4882a593Smuzhiyun * 19*4882a593Smuzhiyun * This program is free software; you can redistribute it and/or 20*4882a593Smuzhiyun * modify it under the terms of the GNU General Public License 21*4882a593Smuzhiyun * as published by the Free Software Foundation; either version 22*4882a593Smuzhiyun * 2 of the License, or (at your option) any later version. 23*4882a593Smuzhiyun */ 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun #ifndef _UAPI_FRAD_H_ 26*4882a593Smuzhiyun #define _UAPI_FRAD_H_ 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun #include <linux/if.h> 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun /* Structures and constants associated with the DLCI device driver */ 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun struct dlci_add 33*4882a593Smuzhiyun { 34*4882a593Smuzhiyun char devname[IFNAMSIZ]; 35*4882a593Smuzhiyun short dlci; 36*4882a593Smuzhiyun }; 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun #define DLCI_GET_CONF (SIOCDEVPRIVATE + 2) 39*4882a593Smuzhiyun #define DLCI_SET_CONF (SIOCDEVPRIVATE + 3) 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun /* 42*4882a593Smuzhiyun * These are related to the Sangoma SDLA and should remain in order. 43*4882a593Smuzhiyun * Code within the SDLA module is based on the specifics of this 44*4882a593Smuzhiyun * structure. Change at your own peril. 45*4882a593Smuzhiyun */ 46*4882a593Smuzhiyun struct dlci_conf { 47*4882a593Smuzhiyun short flags; 48*4882a593Smuzhiyun short CIR_fwd; 49*4882a593Smuzhiyun short Bc_fwd; 50*4882a593Smuzhiyun short Be_fwd; 51*4882a593Smuzhiyun short CIR_bwd; 52*4882a593Smuzhiyun short Bc_bwd; 53*4882a593Smuzhiyun short Be_bwd; 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun /* these are part of the status read */ 56*4882a593Smuzhiyun short Tc_fwd; 57*4882a593Smuzhiyun short Tc_bwd; 58*4882a593Smuzhiyun short Tf_max; 59*4882a593Smuzhiyun short Tb_max; 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun /* add any new fields here above is a mirror of sdla_dlci_conf */ 62*4882a593Smuzhiyun }; 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun #define DLCI_GET_SLAVE (SIOCDEVPRIVATE + 4) 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun /* configuration flags for DLCI */ 67*4882a593Smuzhiyun #define DLCI_IGNORE_CIR_OUT 0x0001 68*4882a593Smuzhiyun #define DLCI_ACCOUNT_CIR_IN 0x0002 69*4882a593Smuzhiyun #define DLCI_BUFFER_IF 0x0008 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun #define DLCI_VALID_FLAGS 0x000B 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun /* defines for the actual Frame Relay hardware */ 74*4882a593Smuzhiyun #define FRAD_GET_CONF (SIOCDEVPRIVATE) 75*4882a593Smuzhiyun #define FRAD_SET_CONF (SIOCDEVPRIVATE + 1) 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun #define FRAD_LAST_IOCTL FRAD_SET_CONF 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun /* 80*4882a593Smuzhiyun * Based on the setup for the Sangoma SDLA. If changes are 81*4882a593Smuzhiyun * necessary to this structure, a routine will need to be 82*4882a593Smuzhiyun * added to that module to copy fields. 83*4882a593Smuzhiyun */ 84*4882a593Smuzhiyun struct frad_conf 85*4882a593Smuzhiyun { 86*4882a593Smuzhiyun short station; 87*4882a593Smuzhiyun short flags; 88*4882a593Smuzhiyun short kbaud; 89*4882a593Smuzhiyun short clocking; 90*4882a593Smuzhiyun short mtu; 91*4882a593Smuzhiyun short T391; 92*4882a593Smuzhiyun short T392; 93*4882a593Smuzhiyun short N391; 94*4882a593Smuzhiyun short N392; 95*4882a593Smuzhiyun short N393; 96*4882a593Smuzhiyun short CIR_fwd; 97*4882a593Smuzhiyun short Bc_fwd; 98*4882a593Smuzhiyun short Be_fwd; 99*4882a593Smuzhiyun short CIR_bwd; 100*4882a593Smuzhiyun short Bc_bwd; 101*4882a593Smuzhiyun short Be_bwd; 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun /* Add new fields here, above is a mirror of the sdla_conf */ 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun }; 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun #define FRAD_STATION_CPE 0x0000 108*4882a593Smuzhiyun #define FRAD_STATION_NODE 0x0001 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun #define FRAD_TX_IGNORE_CIR 0x0001 111*4882a593Smuzhiyun #define FRAD_RX_ACCOUNT_CIR 0x0002 112*4882a593Smuzhiyun #define FRAD_DROP_ABORTED 0x0004 113*4882a593Smuzhiyun #define FRAD_BUFFERIF 0x0008 114*4882a593Smuzhiyun #define FRAD_STATS 0x0010 115*4882a593Smuzhiyun #define FRAD_MCI 0x0100 116*4882a593Smuzhiyun #define FRAD_AUTODLCI 0x8000 117*4882a593Smuzhiyun #define FRAD_VALID_FLAGS 0x811F 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun #define FRAD_CLOCK_INT 0x0001 120*4882a593Smuzhiyun #define FRAD_CLOCK_EXT 0x0000 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun #endif /* _UAPI_FRAD_H_ */ 124