/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
* These are the public elements of the Linux kernel X . 25 implementation .
*
* History
* mar / 20 / 00 Daniela Squassoni Disabling / enabling of facilities
* negotiation .
* apr / 02 / 05 Shaun Pereira Selective sub address matching with
* call user data
*/
#ifndef X25_KERNEL_H
#define X25_KERNEL_H
#include <linux/types.h>
#include <linux/socket.h>
#define SIOCX25GSUBSCRIP (SIOCPROTOPRIVATE + 0 )
#define SIOCX25SSUBSCRIP (SIOCPROTOPRIVATE + 1 )
#define SIOCX25GFACILITIES (SIOCPROTOPRIVATE + 2 )
#define SIOCX25SFACILITIES (SIOCPROTOPRIVATE + 3 )
#define SIOCX25GCALLUSERDATA (SIOCPROTOPRIVATE + 4 )
#define SIOCX25SCALLUSERDATA (SIOCPROTOPRIVATE + 5 )
#define SIOCX25GCAUSEDIAG (SIOCPROTOPRIVATE + 6 )
#define SIOCX25SCUDMATCHLEN (SIOCPROTOPRIVATE + 7 )
#define SIOCX25CALLACCPTAPPRV (SIOCPROTOPRIVATE + 8 )
#define SIOCX25SENDCALLACCPT (SIOCPROTOPRIVATE + 9 )
#define SIOCX25GDTEFACILITIES (SIOCPROTOPRIVATE + 10 )
#define SIOCX25SDTEFACILITIES (SIOCPROTOPRIVATE + 11 )
#define SIOCX25SCAUSEDIAG (SIOCPROTOPRIVATE + 12 )
/*
* Values for { get , set } sockopt .
*/
#define X25_QBITINCL 1
/*
* X . 25 Packet Size values .
*/
#define X25_PS16 4
#define X25_PS32 5
#define X25_PS64 6
#define X25_PS128 7
#define X25_PS256 8
#define X25_PS512 9
#define X25_PS1024 10
#define X25_PS2048 11
#define X25_PS4096 12
/*
* An X . 121 address , it is held as ASCII text , null terminated , up to 15
* digits and a null terminator .
*/
struct x25_address {
char x25_addr[16 ];
};
/*
* Linux X . 25 Address structure , used for bind , and connect mostly .
*/
struct sockaddr_x25 {
__kernel_sa_family_t sx25_family; /* Must be AF_X25 */
struct x25_address sx25_addr; /* X.121 Address */
};
/*
* DTE / DCE subscription options .
*
* As this is missing lots of options , user should expect major
* changes of this structure in 2 . 5 . x which might break compatibilty .
* The somewhat ugly dimension 200 - sizeof ( ) is needed to maintain
* backward compatibility .
*/
struct x25_subscrip_struct {
char device[200 -sizeof (unsigned long )];
unsigned long global_facil_mask; /* 0 to disable negotiation */
unsigned int extended;
};
/* values for above global_facil_mask */
#define X25_MASK_REVERSE 0 x01
#define X25_MASK_THROUGHPUT 0 x02
#define X25_MASK_PACKET_SIZE 0 x04
#define X25_MASK_WINDOW_SIZE 0 x08
#define X25_MASK_CALLING_AE 0 x10
#define X25_MASK_CALLED_AE 0 x20
/*
* Routing table control structure .
*/
struct x25_route_struct {
struct x25_address address;
unsigned int sigdigits;
char device[200 ];
};
/*
* Facilities structure .
*/
struct x25_facilities {
unsigned int winsize_in, winsize_out;
unsigned int pacsize_in, pacsize_out;
unsigned int throughput;
unsigned int reverse;
};
/*
* ITU DTE facilities
* Only the called and calling address
* extension are currently implemented .
* The rest are in place to avoid the struct
* changing size if someone needs them later
*/
struct x25_dte_facilities {
__u16 delay_cumul;
__u16 delay_target;
__u16 delay_max;
__u8 min_throughput;
__u8 expedited;
__u8 calling_len;
__u8 called_len;
__u8 calling_ae[20 ];
__u8 called_ae[20 ];
};
/*
* Call User Data structure .
*/
struct x25_calluserdata {
unsigned int cudlength;
unsigned char cuddata[128 ];
};
/*
* Call clearing Cause and Diagnostic structure .
*/
struct x25_causediag {
unsigned char cause;
unsigned char diagnostic;
};
/*
* Further optional call user data match length selection
*/
struct x25_subaddr {
unsigned int cudmatchlength;
};
#endif
Messung V0.5 in Prozent C=93 H=98 G=95
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-09-28)
¤
*© Formatika GbR, Deutschland