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