syzkaller/sys/linux/socket_key.txt
Dmitry Vyukov b37b65b0e6 sys/linux: remove proc type from network descriptions
We now always create net namespace for testing,
so socket ports and other IDs do not overlap between
different test processes.
Proc types play badly with squashing packets to ANYBLOB.
To squash into a block we need concrete value, but it depends
on process id.
Removing proc also makes tun setup and address descriptions simpler.
2018-02-26 16:48:31 +01:00

209 lines
6.1 KiB
Plaintext

# Copyright 2017 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.
# AF_KEY support.
include <linux/socket.h>
include <linux/net.h>
include <linux/pfkeyv2.h>
include <linux/ipsec.h>
resource sock_key[sock]
socket$key(domain const[AF_KEY], type const[SOCK_RAW], proto const[PF_KEY_V2]) sock_key
openat$pfkey(fd const[AT_FDCWD], file ptr[in, string["/proc/self/net/pfkey"]], flags flags[open_flags], mode const[0]) fd
sendmsg$key(fd sock_key, msg ptr[in, send_msghdr_key], f flags[send_flags])
send_msghdr_key {
msg_name const[0, intptr]
msg_namelen const[0, int32]
msg_iov ptr[in, iovec_sadb_msg]
msg_iovlen const[1, intptr]
msg_control const[0, intptr]
msg_controllen const[0, intptr]
msg_flags const[0, int32]
}
iovec_sadb_msg {
addr ptr[in, sadb_msg]
len bytesize[addr, intptr]
}
sadb_msg {
sadb_msg_version const[PF_KEY_V2, int8]
sadb_msg_type int8[SADB_RESERVED:SADB_MAX]
sadb_msg_errno int8
sadb_msg_satype flags[sadb_satype, int8]
sadb_msg_len bytesize8[parent, int16]
sadb_msg_reserved const[0, int16]
sadb_msg_seq netlink_seq
sadb_msg_pid netlink_port_id
ext_headers array[sadb_ext_hdr]
} [packed]
sadb_ext_hdr [
sadb_sa sadb_sa
sadb_lifetime sadb_lifetime
sadb_address sadb_address
sadb_key sadb_key
sadb_ident sadb_ident
sadb_spirange sadb_spirange
sadb_x_policy sadb_x_policy
sadb_x_sa2 sadb_x_sa2
sadb_x_nat_t_type sadb_x_nat_t_type
sadb_x_nat_t_port sadb_x_nat_t_port
sadb_x_sec_ctx sadb_x_sec_ctx
sadb_x_kmaddress sadb_x_kmaddress
sadb_x_filter sadb_x_filter
] [varlen]
sadb_sa {
sadb_len bytesize8[parent, int16]
sadb_exttype const[SADB_EXT_SA, int16]
sadb_sa_spi xfrm_spi
sadb_sa_replay int8
sadb_sa_state int8
sadb_sa_auth int8[SADB_AALG_NONE:SADB_AALG_MAX]
sadb_sa_encrypt int8[SADB_X_CALG_NONE:SADB_X_CALG_MAX]
sadb_sa_flags flags[sadb_sa_flags, int32]
} [packed, align_8]
sadb_sa_flags = SADB_SAFLAGS_PFS, SADB_SAFLAGS_NOPMTUDISC, SADB_SAFLAGS_DECAP_DSCP, SADB_SAFLAGS_NOECN
sadb_lifetime {
sadb_len bytesize8[parent, int16]
sadb_exttype flags[sadb_lifetime_type, int16]
sadb_lifetime_allocations int32
sadb_lifetime_bytes int64
sadb_lifetime_addtime int64
sadb_lifetime_usetime int64
} [packed, align_8]
sadb_address {
sadb_len bytesize8[parent, int16]
sadb_exttype flags[sadb_address_type, int16]
sadb_address_proto flags[xfrm_proto, int8]
sadb_address_prefixlen flags[xfrm_prefixlens, int8]
sadb_address_reserved const[0, int16]
addr sadb_address_addr
} [packed, align_8]
sadb_address_addr [
in sockaddr_in
in6 sockaddr_in6
] [varlen]
sadb_key {
sadb_len bytesize8[parent, int16]
sadb_exttype flags[sadb_key_type, int16]
sadb_key_bits bitsize[key, int16]
sadb_key_reserved const[0, int16]
key array[int8]
} [packed, align_8]
sadb_ident {
sadb_len bytesize8[parent, int16]
sadb_exttype flags[sadb_ident_type, int16]
sadb_ident_type int16
sadb_ident_reserved const[0, int16]
sadb_ident_id int64
} [packed, align_8]
sadb_spirange {
sadb_len bytesize8[parent, int16]
sadb_exttype const[SADB_EXT_SPIRANGE, int16]
sadb_spirange_min xfrm_spi
sadb_spirange_max xfrm_spi
sadb_spirange_reserved const[0, int32]
} [packed, align_8]
sadb_x_policy {
sadb_len bytesize8[parent, int16]
sadb_exttype const[SADB_X_EXT_POLICY, int16]
sadb_x_policy_type int16[IPSEC_POLICY_DISCARD:IPSEC_POLICY_BYPASS]
sadb_x_policy_dir flags[ipsec_policy_dir, int8]
sadb_x_policy_reserved const[0, int8]
sadb_x_policy_id xfrm_policy_index
sadb_x_policy_priority int32
policy sadb_x_ipsecrequest
} [packed, align_8]
sadb_x_ipsecrequest {
sadb_x_ipsecrequest_len bytesize8[parent, int16]
sadb_x_ipsecrequest_proto flags[xfrm_proto, int16]
sadb_x_ipsecrequest_mode int8
sadb_x_ipsecrequest_level int8
sadb_x_ipsecrequest_reserved1 const[0, int16]
sadb_x_ipsecrequest_reqid int32
sadb_x_ipsecrequest_reserved2 const[0, int32]
saddr sadb_filter_addr
daddr sadb_filter_addr
} [packed, align_8]
sadb_x_sa2 {
sadb_len bytesize8[parent, int16]
sadb_exttype const[SADB_X_EXT_SA2, int16]
sadb_x_sa2_mode int8
sadb_x_sa2_reserved1 const[0, int8]
sadb_x_sa2_reserved2 const[0, int16]
sadb_x_sa2_sequence netlink_seq
sadb_x_sa2_reqid xfrm_req_id
} [packed, align_8]
sadb_x_nat_t_type {
sadb_len bytesize8[parent, int16]
sadb_exttype const[SADB_X_EXT_NAT_T_TYPE, int16]
sadb_x_nat_t_type_type int8
sadb_x_nat_t_type_reserved array[const[0, int8], 3]
} [packed, align_8]
sadb_x_nat_t_port {
sadb_len bytesize8[parent, int16]
sadb_exttype flags[sadb_nat_port_type, int16]
sadb_x_nat_t_port_port sock_port
sadb_x_nat_t_port_reserved const[0, int16]
} [packed, align_8]
sadb_x_sec_ctx {
sadb_len bytesize8[parent, int16]
sadb_exttype const[SADB_X_EXT_SEC_CTX, int16]
sadb_x_ctx_alg int8
sadb_x_ctx_doi int8
sadb_x_ctx_len bytesize[ctx, int16]
ctx array[int8]
} [packed, align_8]
sadb_x_kmaddress {
sadb_len bytesize8[parent, int16]
sadb_exttype const[SADB_X_EXT_KMADDRESS, int16]
sadb_x_kmaddress_reserved const[0, int32]
src sadb_address_addr
dst sadb_address_addr
} [packed, align_8]
sadb_x_filter {
sadb_len bytesize8[parent, int16]
sadb_exttype const[SADB_X_EXT_FILTER, int16]
sadb_x_filter_saddr sadb_filter_addr
sadb_x_filter_daddr sadb_filter_addr
sadb_x_filter_family flags[socket_domain, int16]
sadb_x_filter_splen flags[sadb_filter_addr_len, int8]
sadb_x_filter_dplen flags[sadb_filter_addr_len, int8]
} [packed, align_8]
sadb_filter_addr [
in ipv4_addr
in6 ipv6_addr
]
sadb_satype = SADB_SATYPE_UNSPEC, SADB_SATYPE_AH, SADB_SATYPE_ESP, SADB_SATYPE_RSVP, SADB_SATYPE_OSPFV2, SADB_SATYPE_RIPV2, SADB_SATYPE_MIP, SADB_X_SATYPE_IPCOMP, SADB_SATYPE_MAX
sadb_lifetime_type = SADB_EXT_LIFETIME_CURRENT, SADB_EXT_LIFETIME_HARD, SADB_EXT_LIFETIME_SOFT
sadb_address_type = SADB_EXT_ADDRESS_SRC, SADB_EXT_ADDRESS_DST, SADB_EXT_ADDRESS_PROXY, SADB_X_EXT_NAT_T_OA
sadb_key_type = SADB_EXT_KEY_AUTH, SADB_EXT_KEY_ENCRYPT
sadb_ident_type = SADB_EXT_IDENTITY_SRC, SADB_EXT_IDENTITY_DST
sadb_nat_port_type = SADB_X_EXT_NAT_T_SPORT, SADB_X_EXT_NAT_T_DPORT
ipsec_policy_dir = IPSEC_DIR_ANY, IPSEC_DIR_INBOUND, IPSEC_DIR_OUTBOUND, IPSEC_DIR_FWD, IPSEC_DIR_MAX
sadb_filter_addr_len = 4, 16