root/include/uapi/linux/x25.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2 /*
   3  * These are the public elements of the Linux kernel X.25 implementation.
   4  *
   5  *      History
   6  *      mar/20/00       Daniela Squassoni Disabling/enabling of facilities 
   7  *                                        negotiation.
   8  *      apr/02/05       Shaun Pereira Selective sub address matching with
   9  *                                      call user data
  10  */
  11 
  12 #ifndef X25_KERNEL_H
  13 #define X25_KERNEL_H
  14 
  15 #include <linux/types.h>
  16 #include <linux/socket.h>
  17 
  18 #define SIOCX25GSUBSCRIP        (SIOCPROTOPRIVATE + 0)
  19 #define SIOCX25SSUBSCRIP        (SIOCPROTOPRIVATE + 1)
  20 #define SIOCX25GFACILITIES      (SIOCPROTOPRIVATE + 2)
  21 #define SIOCX25SFACILITIES      (SIOCPROTOPRIVATE + 3)
  22 #define SIOCX25GCALLUSERDATA    (SIOCPROTOPRIVATE + 4)
  23 #define SIOCX25SCALLUSERDATA    (SIOCPROTOPRIVATE + 5)
  24 #define SIOCX25GCAUSEDIAG       (SIOCPROTOPRIVATE + 6)
  25 #define SIOCX25SCUDMATCHLEN     (SIOCPROTOPRIVATE + 7)
  26 #define SIOCX25CALLACCPTAPPRV   (SIOCPROTOPRIVATE + 8)
  27 #define SIOCX25SENDCALLACCPT    (SIOCPROTOPRIVATE + 9)
  28 #define SIOCX25GDTEFACILITIES (SIOCPROTOPRIVATE + 10)
  29 #define SIOCX25SDTEFACILITIES (SIOCPROTOPRIVATE + 11)
  30 #define SIOCX25SCAUSEDIAG       (SIOCPROTOPRIVATE + 12)
  31 
  32 /*
  33  *      Values for {get,set}sockopt.
  34  */
  35 #define X25_QBITINCL            1
  36 
  37 /*
  38  *      X.25 Packet Size values.
  39  */
  40 #define X25_PS16                4
  41 #define X25_PS32                5
  42 #define X25_PS64                6
  43 #define X25_PS128               7
  44 #define X25_PS256               8
  45 #define X25_PS512               9
  46 #define X25_PS1024              10
  47 #define X25_PS2048              11
  48 #define X25_PS4096              12
  49 
  50 /*
  51  * An X.121 address, it is held as ASCII text, null terminated, up to 15
  52  * digits and a null terminator.
  53  */
  54 struct x25_address {
  55         char x25_addr[16];
  56 };
  57 
  58 /*
  59  *      Linux X.25 Address structure, used for bind, and connect mostly.
  60  */
  61 struct sockaddr_x25 {
  62         __kernel_sa_family_t sx25_family;       /* Must be AF_X25 */
  63         struct x25_address sx25_addr;           /* X.121 Address */
  64 };
  65 
  66 /*
  67  *      DTE/DCE subscription options.
  68  *
  69  *      As this is missing lots of options, user should expect major
  70  *      changes of this structure in 2.5.x which might break compatibilty.
  71  *      The somewhat ugly dimension 200-sizeof() is needed to maintain
  72  *      backward compatibility.
  73  */
  74 struct x25_subscrip_struct {
  75         char device[200-sizeof(unsigned long)];
  76         unsigned long   global_facil_mask;      /* 0 to disable negotiation */
  77         unsigned int    extended;
  78 };
  79 
  80 /* values for above global_facil_mask */
  81 
  82 #define X25_MASK_REVERSE        0x01    
  83 #define X25_MASK_THROUGHPUT     0x02
  84 #define X25_MASK_PACKET_SIZE    0x04
  85 #define X25_MASK_WINDOW_SIZE    0x08
  86 
  87 #define X25_MASK_CALLING_AE 0x10
  88 #define X25_MASK_CALLED_AE 0x20
  89 
  90 
  91 /*
  92  *      Routing table control structure.
  93  */
  94 struct x25_route_struct {
  95         struct x25_address address;
  96         unsigned int       sigdigits;
  97         char               device[200];
  98 };
  99 
 100 /*
 101  *      Facilities structure.
 102  */
 103 struct x25_facilities {
 104         unsigned int    winsize_in, winsize_out;
 105         unsigned int    pacsize_in, pacsize_out;
 106         unsigned int    throughput;
 107         unsigned int    reverse;
 108 };
 109 
 110 /*
 111 * ITU DTE facilities
 112 * Only the called and calling address
 113 * extension are currently implemented.
 114 * The rest are in place to avoid the struct
 115 * changing size if someone needs them later
 116 */
 117 
 118 struct x25_dte_facilities {
 119         __u16 delay_cumul;
 120         __u16 delay_target;
 121         __u16 delay_max;
 122         __u8 min_throughput;
 123         __u8 expedited;
 124         __u8 calling_len;
 125         __u8 called_len;
 126         __u8 calling_ae[20];
 127         __u8 called_ae[20];
 128 };
 129 
 130 /*
 131  *      Call User Data structure.
 132  */
 133 struct x25_calluserdata {
 134         unsigned int    cudlength;
 135         unsigned char   cuddata[128];
 136 };
 137 
 138 /*
 139  *      Call clearing Cause and Diagnostic structure.
 140  */
 141 struct x25_causediag {
 142         unsigned char   cause;
 143         unsigned char   diagnostic;
 144 };
 145 
 146 /*
 147  *      Further optional call user data match length selection
 148  */
 149 struct x25_subaddr {
 150         unsigned int cudmatchlength;
 151 };
 152 
 153 #endif

/* [<][>][^][v][top][bottom][index][help] */