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