From dd61e58d94240df628a568c5609b1441746f4a54 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 24 Dec 2018 16:52:56 +0100 Subject: sys/linux: extend AX25/ROSE/NETROM descriptions --- sys/linux/socket_netrom.txt | 70 +++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 31 deletions(-) (limited to 'sys/linux/socket_netrom.txt') diff --git a/sys/linux/socket_netrom.txt b/sys/linux/socket_netrom.txt index 39897460c..84e687bb1 100755 --- a/sys/linux/socket_netrom.txt +++ b/sys/linux/socket_netrom.txt @@ -2,21 +2,21 @@ # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. include -include +include +include include resource sock_netrom[sock] -socket$netrom(domain const[AF_NETROM], type const[SOCK_SEQPACKET], proto const[0]) sock_netrom -bind$netrom(fd sock_netrom, addr ptr[in, sockaddr_netrom], addrlen len[addr]) -connect$netrom(fd sock_netrom, addr ptr[in, sockaddr_netrom], addrlen len[addr]) -accept$netrom(fd sock_netrom, peer ptr[out, sockaddr_netrom, opt], peerlen ptr[inout, len[peer, int32]]) sock_netrom -accept4$netrom(fd sock_netrom, peer ptr[out, sockaddr_netrom, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) sock_netrom -listen$netrom(fd sock_netrom, backlog int32) -sendmsg$netrom(fd sock_netrom, msg ptr[in, msghdr_netrom], f flags[send_flags]) -recvmsg$netrom(fd sock_netrom, msg ptr[inout, msghdr_netrom], f flags[recv_flags]) -getsockname$netrom(fd sock_netrom, addr ptr[out, sockaddr_netrom], addrlen ptr[inout, len[addr, int32]]) -getpeername$netrom(fd sock_netrom, peer ptr[out, sockaddr_netrom], peerlen ptr[inout, len[peer, int32]]) +syz_init_net_socket$netrom(domain const[AF_NETROM], type const[SOCK_SEQPACKET], proto const[0]) sock_netrom +bind$netrom(fd sock_netrom, addr ptr[in, full_sockaddr_ax25], addrlen len[addr]) +connect$netrom(fd sock_netrom, addr ptr[in, full_sockaddr_ax25], addrlen len[addr]) +accept$netrom(fd sock_netrom, peer ptr[out, full_sockaddr_ax25, opt], peerlen ptr[inout, len[peer, int32]]) sock_netrom +accept4$netrom(fd sock_netrom, peer ptr[out, full_sockaddr_ax25, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) sock_netrom +sendto$netrom(fd sock_netrom, buf ptr[in, array[int8]], len len[buf], f flags[send_flags], addr ptr[in, full_sockaddr_ax25, opt], addrlen len[addr]) +recvfrom$netrom(fd sock_netrom, buf ptr[out, array[int8]], len len[buf], f flags[recv_flags], addr ptr[in, full_sockaddr_ax25, opt], addrlen len[addr]) +getsockname$netrom(fd sock_netrom, addr ptr[out, full_sockaddr_ax25], addrlen ptr[inout, len[addr, int32]]) +getpeername$netrom(fd sock_netrom, peer ptr[out, full_sockaddr_ax25], peerlen ptr[inout, len[peer, int32]]) setsockopt$netrom_NETROM_T1(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T1], arg ptr[in, int32], arglen len[arg]) setsockopt$netrom_NETROM_T2(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T2], arg ptr[in, int32], arglen len[arg]) @@ -30,24 +30,32 @@ getsockopt$netrom_NETROM_N2(fd sock_netrom, level const[SOL_NETROM], opt const[N getsockopt$netrom_NETROM_T4(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T4], arg ptr[in, int32], arglen ptr[inout, len[arg, int32]]) getsockopt$netrom_NETROM_IDLE(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_IDLE], arg ptr[in, int32], arglen ptr[inout, len[arg, int32]]) -# TODO: make these more generic -ioctl$sock_netrom_TIOCOUTQ(fd sock_netrom, cmd const[TIOCOUTQ], arg ptr[out, int32]) -ioctl$sock_netrom_TIOCINQ(fd sock_netrom, cmd const[TIOCINQ], arg ptr[out, int32]) -ioctl$sock_netrom_SIOCGSTAMP(fd sock_netrom, cmd const[SIOCGSTAMP], arg ptr[out, int32]) -ioctl$sock_netrom_SIOCGSTAMPNS(fd sock_netrom, cmd const[SIOCGSTAMPNS], arg ptr[out, int32]) -ioctl$sock_netrom_SIOCADDRT(fd sock_netrom, cmd const[SIOCADDRT], arg ptr[out, int32]) - -sockaddr_netrom [ - ax25 sockaddr_ax25 - full full_sockaddr_ax25 -] [varlen] - -msghdr_netrom { - addr ptr[in, sockaddr_netrom] - addrlen len[addr, int32] - vec ptr[in, array[iovec_in]] - vlen len[vec, intptr] - ctrl ptr[in, array[cmsghdr], opt] - ctrllen bytesize[ctrl, intptr] - f flags[send_flags, int32] +ioctl$sock_netrom_SIOCADDRT(fd sock_netrom, cmd const[SIOCADDRT], arg ptr[in, nr_route_struct]) +ioctl$sock_netrom_SIOCDELRT(fd sock_netrom, cmd const[SIOCDELRT], arg ptr[in, nr_route_struct]) +ioctl$SIOCNRDECOBS(fd sock_netrom, cmd const[SIOCNRDECOBS]) + +# This is what we assign to nr* devices in initialize_netdevices_init: bb:bb:bb:bb:bb:00:%02hx +address_netrom_dev { + b0 const[0xbb, int8] + b1 const[0xbb, int8] + b2 const[0xbb, int8] + b3 const[0xbb, int8] + b4 const[0xbb, int8] + b5 const[0x0, int8] + b6 proc[0, 1, int8] } + +nr_route_struct { + type flags[nr_route_type, int32] + callsign ax25_address + device ax25_devname + quality int32 + mnemonic string[nr_route_mnemonics, 7] + neighbour ax25_address + obs_count int32 + ndigis int32[0:AX25_MAX_DIGIS] + digipeaters array[ax25_address, AX25_MAX_DIGIS] +} + +nr_route_type = NETROM_NEIGH, NETROM_NODE +nr_route_mnemonics = "syz0", "syz1" -- cgit mrf-deployment