diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-12-24 18:12:42 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-12-24 18:56:06 +0100 |
| commit | 57541e29d9d7fba916a77292d80e8f35a132bcb4 (patch) | |
| tree | a9c4bb734d0fad1c0e68286481bdeaacfb0b7eff /sys/linux/socket_x25.txt | |
| parent | 309bb18442e6e224837d85fdedfe93f58233fc45 (diff) | |
sys/linux: add basic X25 descriptions
Diffstat (limited to 'sys/linux/socket_x25.txt')
| -rw-r--r-- | sys/linux/socket_x25.txt | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/sys/linux/socket_x25.txt b/sys/linux/socket_x25.txt new file mode 100644 index 000000000..82308a43a --- /dev/null +++ b/sys/linux/socket_x25.txt @@ -0,0 +1,102 @@ +# Copyright 2018 syzkaller project authors. All rights reserved. +# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +include <linux/socket.h> +include <linux/net.h> +include <uapi/linux/x25.h> +include <net/x25.h> + +resource sock_x25[sock] + +syz_init_net_socket$x25(domain const[AF_X25], type const[SOCK_SEQPACKET], proto const[0]) sock_x25 +bind$x25(fd sock_x25, addr ptr[in, sockaddr_x25], addrlen len[addr]) +connect$x25(fd sock_x25, addr ptr[in, sockaddr_x25], addrlen len[addr]) +accept4$x25(fd sock_x25, peer ptr[out, sockaddr_x25, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) sock_x25 +sendto$x25(fd sock_x25, buf ptr[in, array[int8]], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_x25, opt], addrlen len[addr]) +recvfrom$x25(fd sock_x25, buf ptr[out, array[int8]], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_x25, opt], addrlen len[addr]) +setsockopt$X25_QBITINCL(fd sock_x25, level const[SOL_X25], opt const[X25_QBITINCL], arg ptr[in, bool32], arglen len[arg]) +getsockopt$X25_QBITINCL(fd sock_x25, level const[SOL_X25], opt const[X25_QBITINCL], arg ptr[out, int32], arglen ptr[inout, len[arg, int32]]) + +ioctl$sock_x25_SIOCADDRT(fd sock_x25, cmd const[SIOCADDRT], arg ptr[in, x25_route_struct]) +ioctl$sock_x25_SIOCDELRT(fd sock_x25, cmd const[SIOCDELRT], arg ptr[in, x25_route_struct]) +ioctl$SIOCX25GSUBSCRIP(fd sock_x25, cmd const[SIOCX25GSUBSCRIP], arg ptr[in, x25_subscrip_struct]) +ioctl$SIOCX25SSUBSCRIP(fd sock_x25, cmd const[SIOCX25SSUBSCRIP], arg ptr[in, x25_subscrip_struct]) +ioctl$SIOCX25GFACILITIES(fd sock_x25, cmd const[SIOCX25GFACILITIES], arg ptr[out, x25_facilities]) +ioctl$SIOCX25SFACILITIES(fd sock_x25, cmd const[SIOCX25SFACILITIES], arg ptr[in, x25_facilities]) +ioctl$SIOCX25GDTEFACILITIES(fd sock_x25, cmd const[SIOCX25GDTEFACILITIES], arg ptr[out, x25_dte_facilities]) +ioctl$SIOCX25SDTEFACILITIES(fd sock_x25, cmd const[SIOCX25SDTEFACILITIES], arg ptr[in, x25_dte_facilities]) +ioctl$SIOCX25GCALLUSERDATA(fd sock_x25, cmd const[SIOCX25GCALLUSERDATA], arg ptr[in, x25_calluserdata]) +ioctl$SIOCX25SCALLUSERDATA(fd sock_x25, cmd const[SIOCX25SCALLUSERDATA], arg ptr[in, x25_calluserdata]) +ioctl$SIOCX25GCAUSEDIAG(fd sock_x25, cmd const[SIOCX25GCAUSEDIAG], arg ptr[in, x25_causediag]) +ioctl$SIOCX25SCAUSEDIAG(fd sock_x25, cmd const[SIOCX25SCAUSEDIAG], arg ptr[in, x25_causediag]) +ioctl$SIOCX25SCUDMATCHLEN(fd sock_x25, cmd const[SIOCX25SCUDMATCHLEN], arg ptr[in, x25_subaddr]) +ioctl$SIOCX25CALLACCPTAPPRV(fd sock_x25, cmd const[SIOCX25CALLACCPTAPPRV]) +ioctl$SIOCX25SENDCALLACCPT(fd sock_x25, cmd const[SIOCX25SENDCALLACCPT]) + +sockaddr_x25 { + sx25_family const[AF_X25, int16] + sx25_addr x25_address +} + +x25_address [ + null x25_address_null + remote x25_address_remote +] + +type x25_address_null string[" "] + +x25_address_remote { + prefix array[const[0xcc, int8], 14] + id proc[0x20, 4, int8] + z const[0, int8] +} + +x25_route_struct { + address x25_address + sigdigits int32[0:15] + device string[devnames, 200] +} + +x25_subscrip_struct { +# TODO: the size is 200-sizeof(unsigned long), so 192 is wrong for compat. + device string[devnames, 192] + global_facil_mask intptr + extended int32 +} + +x25_facilities { + winsize_in int32[1:127] + winsize_out int32 + pacsize_in int32[X25_PS16:X25_PS4096] + pacsize_out int32[X25_PS16:X25_PS4096] + throughput int32 + reverse flags[x25_facilities_reverse, int32] +} + +x25_facilities_reverse = 0, 0x81 + +x25_dte_facilities { + delay_cumul int16 + delay_target int16 + delay_max int16 + min_throughput int8 + expedited int8 + calling_len int8[0:X25_MAX_AE_LEN] + called_len int8[0:X25_MAX_AE_LEN] + calling_ae array[int8, 20] + called_ae array[int8, 20] +} + +x25_calluserdata { + cudlength int32[0:128] + cuddata array[int8, 128] +} + +x25_causediag { + cause int8 + diagnostic int8 +} + +x25_subaddr { + cudmatchlength int32[0:X25_MAX_CUD_LEN] +} |
