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