130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/*
230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * DLCI/FRAD	Definitions for Frame Relay Access Devices.  DLCI devices are
330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *		created for each DLCI associated with a FRAD.  The FRAD driver
430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *		is not truly a network device, but the lower level device
530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *		handler.  This allows other FRAD manufacturers to use the DLCI
630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *		code, including its RFC1490 encapsulation alongside the current
730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *		implementation for the Sangoma cards.
830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *
930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Version:	@(#)if_ifrad.h	0.15	31 Mar 96
1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *
1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Author:	Mike McLagan <mike.mclagan@linux.org>
1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *
1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Changes:
1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *		0.15	Mike McLagan	changed structure defs (packed)
1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *					re-arranged flags
1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *					added DLCI_RET vars
1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *
1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *		This program is free software; you can redistribute it and/or
1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *		modify it under the terms of the GNU General Public License
2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *		as published by the Free Software Foundation; either version
2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *		2 of the License, or (at your option) any later version.
2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */
2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _UAPI_FRAD_H_
2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _UAPI_FRAD_H_
2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/if.h>
2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Structures and constants associated with the DLCI device driver */
3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3130692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct dlci_add
3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng{
3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   char  devname[IFNAMSIZ];
3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short dlci;
3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DLCI_GET_CONF	(SIOCDEVPRIVATE + 2)
3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DLCI_SET_CONF	(SIOCDEVPRIVATE + 3)
3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/*
4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * These are related to the Sangoma SDLA and should remain in order.
4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Code within the SDLA module is based on the specifics of this
4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * structure.  Change at your own peril.
4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */
4530692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct dlci_conf {
4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short flags;
4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short CIR_fwd;
4830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short Bc_fwd;
4930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short Be_fwd;
5030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short CIR_bwd;
5130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short Bc_bwd;
5230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short Be_bwd;
5330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
5430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* these are part of the status read */
5530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short Tc_fwd;
5630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short Tc_bwd;
5730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short Tf_max;
5830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short Tb_max;
5930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
6030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* add any new fields here above is a mirror of sdla_dlci_conf */
6130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
6230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
6330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DLCI_GET_SLAVE	(SIOCDEVPRIVATE + 4)
6430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
6530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* configuration flags for DLCI */
6630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DLCI_IGNORE_CIR_OUT	0x0001
6730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DLCI_ACCOUNT_CIR_IN	0x0002
6830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DLCI_BUFFER_IF		0x0008
6930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
7030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define DLCI_VALID_FLAGS	0x000B
7130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
7230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* defines for the actual Frame Relay hardware */
7330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FRAD_GET_CONF	(SIOCDEVPRIVATE)
7430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FRAD_SET_CONF	(SIOCDEVPRIVATE + 1)
7530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
7630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FRAD_LAST_IOCTL	FRAD_SET_CONF
7730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
7830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/*
7930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Based on the setup for the Sangoma SDLA.  If changes are
8030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * necessary to this structure, a routine will need to be
8130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * added to that module to copy fields.
8230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */
8330692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct frad_conf
8430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng{
8530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short station;
8630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short flags;
8730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short kbaud;
8830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short clocking;
8930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short mtu;
9030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short T391;
9130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short T392;
9230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short N391;
9330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short N392;
9430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short N393;
9530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short CIR_fwd;
9630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short Bc_fwd;
9730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short Be_fwd;
9830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short CIR_bwd;
9930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short Bc_bwd;
10030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng   short Be_bwd;
10130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
10230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Add new fields here, above is a mirror of the sdla_conf */
10330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
10430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
10530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
10630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FRAD_STATION_CPE	0x0000
10730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FRAD_STATION_NODE	0x0001
10830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
10930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FRAD_TX_IGNORE_CIR	0x0001
11030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FRAD_RX_ACCOUNT_CIR	0x0002
11130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FRAD_DROP_ABORTED	0x0004
11230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FRAD_BUFFERIF		0x0008
11330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FRAD_STATS		0x0010
11430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FRAD_MCI		0x0100
11530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FRAD_AUTODLCI		0x8000
11630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FRAD_VALID_FLAGS	0x811F
11730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
11830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FRAD_CLOCK_INT		0x0001
11930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FRAD_CLOCK_EXT		0x0000
12030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
12130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
12230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* _UAPI_FRAD_H_ */
123