1ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#ifndef __HDLC_IOCTL_H__
2ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define __HDLC_IOCTL_H__
3ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
4ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
5ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define GENERIC_HDLC_VERSION 4	/* For synchronization with sethdlc utility */
6ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
7ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define CLOCK_DEFAULT   0	/* Default setting */
8ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define CLOCK_EXT	1	/* External TX and RX clock - DTE */
9ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define CLOCK_INT	2	/* Internal TX and RX clock - DCE */
10ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define CLOCK_TXINT	3	/* Internal TX and external RX clock */
11ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define CLOCK_TXFROMRX	4	/* TX clock derived from external RX clock */
12ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
13ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
14ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define ENCODING_DEFAULT	0 /* Default setting */
15ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define ENCODING_NRZ		1
16ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define ENCODING_NRZI		2
17ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define ENCODING_FM_MARK	3
18ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define ENCODING_FM_SPACE	4
19ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define ENCODING_MANCHESTER	5
20ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
21ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
22ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define PARITY_DEFAULT		0 /* Default setting */
23ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define PARITY_NONE		1 /* No parity */
24ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define PARITY_CRC16_PR0	2 /* CRC16, initial value 0x0000 */
25ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define PARITY_CRC16_PR1	3 /* CRC16, initial value 0xFFFF */
26ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define PARITY_CRC16_PR0_CCITT	4 /* CRC16, initial 0x0000, ITU-T version */
27ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define PARITY_CRC16_PR1_CCITT	5 /* CRC16, initial 0xFFFF, ITU-T version */
28ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define PARITY_CRC32_PR0_CCITT	6 /* CRC32, initial value 0x00000000 */
29ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define PARITY_CRC32_PR1_CCITT	7 /* CRC32, initial value 0xFFFFFFFF */
30ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
31ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define LMI_DEFAULT		0 /* Default setting */
32ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define LMI_NONE		1 /* No LMI, all PVCs are static */
33ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define LMI_ANSI		2 /* ANSI Annex D */
34ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define LMI_CCITT		3 /* ITU-T Annex A */
35ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#define LMI_CISCO		4 /* The "original" LMI, aka Gang of Four */
36ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
37910773dc0df1131cbe5220d8b6971ae44a7221bdStephen Hemminger#ifndef __ASSEMBLY__
38910773dc0df1131cbe5220d8b6971ae44a7221bdStephen Hemminger
39910773dc0df1131cbe5220d8b6971ae44a7221bdStephen Hemmingertypedef struct {
40ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned int clock_rate; /* bits per second */
41ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned int clock_type; /* internal, external, TX-internal etc. */
42ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned short loopback;
43ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger} sync_serial_settings;          /* V.35, V.24, X.21 */
44ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
45910773dc0df1131cbe5220d8b6971ae44a7221bdStephen Hemmingertypedef struct {
46ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned int clock_rate; /* bits per second */
47ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned int clock_type; /* internal, external, TX-internal etc. */
48ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned short loopback;
49ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned int slot_map;
50ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger} te1_settings;                  /* T1, E1 */
51ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
52ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemmingertypedef struct {
53ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned short encoding;
54ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned short parity;
55ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger} raw_hdlc_proto;
56ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
57ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemmingertypedef struct {
58ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned int t391;
59ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned int t392;
60ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned int n391;
61ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned int n392;
62ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned int n393;
63ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned short lmi;
64ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned short dce; /* 1 for DCE (network side) operation */
65ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger} fr_proto;
66ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
67ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemmingertypedef struct {
68ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned int dlci;
69ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger} fr_proto_pvc;          /* for creating/deleting FR PVCs */
70ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
71ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemmingertypedef struct {
72ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	unsigned int dlci;
73ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger	char master[IFNAMSIZ];	/* Name of master FRAD device */
74ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger}fr_proto_pvc_info;		/* for returning PVC information only */
75ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
76ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemmingertypedef struct {
77ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger    unsigned int interval;
78ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger    unsigned int timeout;
79ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger} cisco_proto;
80ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
81ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger/* PPP doesn't need any info now - supply length = 0 to ioctl */
82ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger
83910773dc0df1131cbe5220d8b6971ae44a7221bdStephen Hemminger#endif /* __ASSEMBLY__ */
84ace7be7d3bfb8de061b514dcffb9d4019b7536dfStephen Hemminger#endif /* __HDLC_IOCTL_H__ */
85