linux-headers (unknown)

(root)/
include/
linux/
x25.h
       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