github.com/google/syzkaller@v0.0.0-20240517125934-c0f1611a36d6/sys/openbsd/socket_inet6.txt (about) 1 # Copyright 2017 syzkaller project authors. All rights reserved. 2 # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. 3 4 include <sys/types.h> 5 include <sys/param.h> 6 include <sys/socket.h> 7 include <netinet/in.h> 8 include <net/route.h> 9 include <netinet6/ip6_mroute.h> 10 include <sys/sockio.h> 11 12 # IPv6 sockets 13 14 resource sock_in6[sock] 15 16 sockaddr_in6 { 17 family const[AF_INET6, int16] 18 port sock_port 19 flow int32 20 scope int32 21 } 22 23 socket$inet6(domain const[AF_INET6], type flags[socket_type], proto int8) sock_in6 24 accept$inet6(fd sock_in6, peer ptr[out, sockaddr_in6, opt], peerlen ptr[inout, len[peer, int32]]) sock_in6 25 bind$inet6(fd sock_in6, addr ptr[in, sockaddr_in6], addrlen len[addr]) 26 connect$inet6(fd sock_in6, addr ptr[in, sockaddr_in6], addrlen len[addr]) 27 sendto$inet6(fd sock_in6, buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_in6, opt], addrlen len[addr]) 28 recvfrom$inet6(fd sock_in6, buf buffer[out], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_in6, opt], addrlen len[addr]) 29 getsockname$inet6(fd sock_in6, addr ptr[out, sockaddr_in6], addrlen ptr[inout, len[addr, int32]]) 30 getpeername$inet6(fd sock_in6, peer ptr[out, sockaddr_in6], peerlen ptr[inout, len[peer, int32]]) 31 32 # Generic IPv6 options 33 34 # Specific IPv6 options 35 36 # TODO: IPV6_HOPOPTS, IPV6_RTHDRDSTOPTS, IPV6_RTHDR, IPV6_DSTOPTS 37 # TODO: IPV6_PATHMTU 38 # TODO: IP6T_SO_GET_REVISION_MATCH, IP6T_SO_GET_REVISION_TARGET 39 40 setsockopt$inet6_MRT6_ADD_MIF(fd sock_in6, level const[IPPROTO_IPV6], optname const[MRT6_ADD_MIF], optval ptr[in, mif6ctl], optlen len[optval]) 41 setsockopt$inet6_MRT6_ADD_MFC(fd sock_in6, level const[IPPROTO_IPV6], optname const[MRT6_ADD_MFC], optval ptr[in, mf6cctl], optlen len[optval]) 42 setsockopt$inet6_MRT6_DEL_MFC(fd sock_in6, level const[IPPROTO_IPV6], optname const[MRT6_DEL_MFC], optval ptr[in, mf6cctl], optlen len[optval]) 43 44 mif6ctl { 45 mif6c_mifi int16 46 mif6c_flags flags[mif6c_flags, int8] 47 vifc_threshold int8 48 # Do not allow low interface indices since one of them is likely to be the 49 # egress interface vio0 used on GCE instances during fuzzing. 50 mif6c_pifi int16[4:0xffff] 51 vifc_rate_limit int32 52 } 53 54 mif6c_flags = MIFF_REGISTER 55 56 mf6cctl { 57 mf6cc_origin sockaddr_in6 58 mf6cc_mcastgrp sockaddr_in6 59 mf6cc_parent int16 60 mf6cc_ifset array[int32, 8] 61 }