github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/sys/linux/socket_netlink_generic_gtp.txt (about) 1 # Copyright 2019 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 # AF_NETLINK/NETLINK_GENERIC/gtp support. 5 6 # TODO: describe gtp packets in vnet.txt (they go inside of udp packets, see gtp_encap_recv()). 7 8 include <linux/net.h> 9 include <uapi/linux/netlink.h> 10 include <uapi/linux/genetlink.h> 11 include <uapi/linux/if_link.h> 12 include <uapi/linux/gtp.h> 13 14 resource genl_gtp_family_id[int16] 15 type msghdr_nl_gtp[CMD] msghdr_netlink[netlink_msg_t[genl_gtp_family_id, genlmsghdr_t[CMD], gtp_genl_policy]] 16 17 syz_genetlink_get_family_id$gtp(name ptr[in, string["gtp"]], fd sock_nl_generic) genl_gtp_family_id 18 19 sendmsg$GTP_CMD_NEWPDP(fd sock_nl_generic, msg ptr[in, msghdr_nl_gtp[GTP_CMD_NEWPDP]], f flags[send_flags]) 20 sendmsg$GTP_CMD_DELPDP(fd sock_nl_generic, msg ptr[in, msghdr_nl_gtp[GTP_CMD_DELPDP]], f flags[send_flags]) 21 sendmsg$GTP_CMD_GETPDP(fd sock_nl_generic, msg ptr[in, msghdr_nl_gtp[GTP_CMD_GETPDP]], f flags[send_flags]) 22 sendmsg$GTP_CMD_ECHOREQ(fd sock_nl_generic, msg ptr[in, msghdr_nl_gtp[GTP_CMD_ECHOREQ]], f flags[send_flags]) 23 24 gtp_genl_policy [ 25 # TODO: fuzzer will have hard time getting ifindex of a gtp device (which needs to be created before). 26 GTPA_LINK nlattr[GTPA_LINK, ifindex] 27 GTPA_VERSION nlattr[GTPA_VERSION, int32[GTP_V0:GTP_V1]] 28 GTPA_TID nlattr[GTPA_TID, int64[0:4]] 29 GTPA_PEER_ADDRESS nlattr[GTPA_PEER_ADDRESS, ipv4_addr] 30 GTPA_MS_ADDRESS nlattr[GTPA_MS_ADDRESS, ipv4_addr] 31 GTPA_FLOW nlattr[GTPA_FLOW, int16[0:4]] 32 GTPA_NET_NS_FD nlattr[GTPA_NET_NS_FD, fd_namespace] 33 GTPA_I_TEI nlattr[GTPA_I_TEI, int32[0:4]] 34 GTPA_O_TEI nlattr[GTPA_O_TEI, int32[0:4]] 35 GTPA_PEER_ADDR6 nlattr[GTPA_PEER_ADDR6, ipv6_addr] 36 GTPA_MS_ADDR6 nlattr[GTPA_MS_ADDR6, ipv6_addr] 37 GTPA_FAMILY nlattr[GTPA_FAMILY, int8[socket_domain]] 38 ] [varlen] 39 40 gtp_policy_fd [ 41 udp sock_udp 42 udp6 sock_udp6 43 ] 44 45 gtp_policy [ 46 IFLA_GTP_FD0 nlattr[IFLA_GTP_FD0, gtp_policy_fd] 47 IFLA_GTP_FD1 nlattr[IFLA_GTP_FD1, gtp_policy_fd] 48 IFLA_GTP_PDP_HASHSIZE nlattr[IFLA_GTP_PDP_HASHSIZE, int32] 49 IFLA_GTP_ROLE nlattr[IFLA_GTP_ROLE, int32[0:2]] 50 IFLA_GTP_CREATE_SOCKETS nlattr[IFLA_GTP_CREATE_SOCKETS, bool8] 51 IFLA_GTP_RESTART_COUNT nlattr[IFLA_GTP_RESTART_COUNT, int8] 52 IFLA_GTP_LOCAL nlattr[IFLA_GTP_LOCAL, ipv4_addr] 53 IFLA_GTP_LOCAL6 nlattr[IFLA_GTP_LOCAL6, ipv6_addr] 54 ] [varlen]