| # Copyright 2021 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. |
| |
| # TODO: these descriptions allow some basic testing, but does not seem to cover ingress path and lots of other things. |
| # Some things that can be improved: |
| # - supporting net namespaces in 802.15.4 subsystem for proper isolation, reproducubility |
| # (https://bugzilla.kernel.org/show_bug.cgi?id=211675) |
| # currently, parallel test processes use the same wpan0/wpan1 global devices in init namespace, |
| # thus no isolation, reproducubility, coverage guidance does not work |
| # - supporting phy flags (WPAN_PHY_FLAG_TXPOWER, etc) in mac802154_hwsim |
| # this will increase coverage that can be achieved with mac802154_hwsim |
| # - supporting remote coverage in 802.15.4 subsystem, lots of code seems to execute asynchronously |
| # - figuring out how to achieve coverage of ingress path and describing 802.15.4 packet format |
| # - there is something called 6lowpan that is related to 802.15.4, need to figure out what it is and how to reach it |
| # - executor sets wpan0/1 UP in setup_802154, but lots of commands require the device to be DOWN |
| # since these are in init net namespace, our descriptions in socket_netlink_route.txt can change these devices |
| # thus commands that require devices to be DOWN don't actually work |
| |
| include <linux/net.h> |
| include <linux/socket.h> |
| include <uapi/linux/netlink.h> |
| include <uapi/linux/genetlink.h> |
| include <net/af_ieee802154.h> |
| include <net/netlink.h> |
| include <net/nl802154.h> |
| include <linux/ieee802154.h> |
| include <linux/nl802154.h> |
| |
| resource sock_802154_raw[sock] |
| resource sock_802154_dgram[sock] |
| |
| syz_init_net_socket$802154_raw(domain const[AF_IEEE802154], type const[SOCK_RAW], proto const[0]) sock_802154_raw |
| bind$802154_raw(fd sock_802154_raw, addr ptr[in, sockaddr_ieee802154], len bytesize[addr]) |
| sendmsg$802154_raw(fd sock_802154_raw, msg ptr[in, msghdr_802154], f flags[send_flags]) |
| |
| syz_init_net_socket$802154_dgram(domain const[AF_IEEE802154], type const[SOCK_DGRAM], proto const[0]) sock_802154_dgram |
| connect$802154_dgram(fd sock_802154_dgram, addr ptr[in, sockaddr_ieee802154], len bytesize[addr]) |
| bind$802154_dgram(fd sock_802154_dgram, addr ptr[in, sockaddr_ieee802154], len bytesize[addr]) |
| sendmsg$802154_dgram(fd sock_802154_dgram, msg ptr[in, msghdr_802154], f flags[send_flags]) |
| |
| setsockopt$WPAN_WANTACK(fd sock_802154_dgram, level const[SOL_IEEE802154], opt const[WPAN_WANTACK], val ptr[in, bool32], len bytesize[val]) |
| setsockopt$WPAN_WANTLQI(fd sock_802154_dgram, level const[SOL_IEEE802154], opt const[WPAN_WANTLQI], val ptr[in, bool32], len bytesize[val]) |
| setsockopt$WPAN_SECURITY(fd sock_802154_dgram, level const[SOL_IEEE802154], opt const[WPAN_SECURITY], val ptr[in, flags[ieee802154_security, int32]], len bytesize[val]) |
| setsockopt$WPAN_SECURITY_LEVEL(fd sock_802154_dgram, level const[SOL_IEEE802154], opt const[WPAN_SECURITY_LEVEL], val ptr[in, int32[WPAN_SECURITY_LEVEL_DEFAULT:IEEE802154_SCF_SECLEVEL_ENC_MIC128]], len bytesize[val]) |
| getsockopt$WPAN_WANTACK(fd sock_802154_dgram, level const[SOL_IEEE802154], opt const[WPAN_WANTACK], val ptr[out, int32], len ptr[inout, bytesize[val, int32]]) |
| getsockopt$WPAN_WANTLQI(fd sock_802154_dgram, level const[SOL_IEEE802154], opt const[WPAN_WANTLQI], val ptr[out, int32], len ptr[inout, bytesize[val, int32]]) |
| getsockopt$WPAN_SECURITY(fd sock_802154_dgram, level const[SOL_IEEE802154], opt const[WPAN_SECURITY], val ptr[out, int32], len ptr[inout, bytesize[val, int32]]) |
| getsockopt$WPAN_SECURITY_LEVEL(fd sock_802154_dgram, level const[SOL_IEEE802154], opt const[WPAN_SECURITY_LEVEL], val ptr[out, int32], len ptr[inout, bytesize[val, int32]]) |
| |
| resource genl_nl802154_family_id[int16] |
| resource ieee802154_ifindex[int32] |
| type msghdr_nl802154[CMD, POLICY] msghdr_netlink[netlink_msg_t[genl_nl802154_family_id, genlmsghdr_t[CMD], POLICY]] |
| |
| syz_genetlink_get_family_id$nl802154(name ptr[in, string["nl802154"]], fd sock_nl_generic_init) genl_nl802154_family_id |
| ioctl$sock_SIOCGIFINDEX_802154(fd sock_nl_generic_init, cmd const[SIOCGIFINDEX], arg ptr[out, ifreq_dev_t[ieee802154_dev_names, ieee802154_ifindex]]) |
| |
| sendmsg$NL802154_CMD_GET_WPAN_PHY(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_GET_WPAN_PHY, nl802154_policy$GET_WPAN_PHY]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_GET_INTERFACE(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_GET_INTERFACE, nl802154_policy$GET_INTERFACE]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_NEW_INTERFACE(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_NEW_INTERFACE, nl802154_policy$NEW_INTERFACE]], f flags[send_flags]) |
| # This is disabled as we only have 2 global hwsim devices, if we delete them we are out of devices. |
| # sendmsg$NL802154_CMD_DEL_INTERFACE(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_DEL_INTERFACE, nl802154_policy$DEL_INTERFACE]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_SET_CHANNEL(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_SET_CHANNEL, nl802154_policy$SET_CHANNEL]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_SET_CCA_MODE(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_SET_CCA_MODE, nl802154_policy$SET_CCA_MODE]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_SET_CCA_ED_LEVEL(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_SET_CCA_ED_LEVEL, nl802154_policy$SET_CCA_ED_LEVEL]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_SET_TX_POWER(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_SET_TX_POWER, nl802154_policy$SET_TX_POWER]], f flags[send_flags]) |
| # This may be more harmful than useful. Once we move the device from init ns, we won't be able to test it anymore... |
| sendmsg$NL802154_CMD_SET_WPAN_PHY_NETNS(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_SET_WPAN_PHY_NETNS, nl802154_policy$SET_WPAN_PHY_NETNS]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_SET_PAN_ID(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_SET_PAN_ID, nl802154_policy$SET_PAN_ID]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_SET_SHORT_ADDR(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_SET_SHORT_ADDR, nl802154_policy$SET_SHORT_ADDR]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_SET_BACKOFF_EXPONENT(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_SET_BACKOFF_EXPONENT, nl802154_policy$SET_BACKOFF_EXPONENT]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_SET_MAX_CSMA_BACKOFFS(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_SET_MAX_CSMA_BACKOFFS, nl802154_policy$SET_MAX_CSMA_BACKOFFS]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_SET_MAX_FRAME_RETRIES(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_SET_MAX_FRAME_RETRIES, nl802154_policy$SET_MAX_FRAME_RETRIES]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_SET_LBT_MODE(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_SET_LBT_MODE, nl802154_policy$SET_LBT_MODE]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_SET_ACKREQ_DEFAULT(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_SET_ACKREQ_DEFAULT, nl802154_policy$SET_ACKREQ_DEFAULT]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_SET_SEC_PARAMS(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_SET_SEC_PARAMS, nl802154_policy$SET_SEC_PARAMS]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_GET_SEC_KEY(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_GET_SEC_KEY, nl802154_policy$GET_SEC_KEY]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_NEW_SEC_KEY(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_NEW_SEC_KEY, nl802154_policy$NEW_SEC_KEY]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_DEL_SEC_KEY(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_DEL_SEC_KEY, nl802154_policy$DEL_SEC_KEY]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_GET_SEC_DEV(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_GET_SEC_DEV, nl802154_policy$GET_SEC_DEV]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_NEW_SEC_DEV(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_NEW_SEC_DEV, nl802154_policy$NEW_SEC_DEV]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_DEL_SEC_DEV(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_DEL_SEC_DEV, nl802154_policy$DEL_SEC_DEV]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_GET_SEC_DEVKEY(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_GET_SEC_DEVKEY, nl802154_policy$GET_SEC_DEVKEY]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_NEW_SEC_DEVKEY(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_NEW_SEC_DEVKEY, nl802154_policy$NEW_SEC_DEVKEY]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_DEL_SEC_DEVKEY(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_DEL_SEC_DEVKEY, nl802154_policy$DEL_SEC_DEVKEY]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_GET_SEC_LEVEL(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_GET_SEC_LEVEL, nl802154_policy$GET_SEC_LEVEL]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_NEW_SEC_LEVEL(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_NEW_SEC_LEVEL, nl802154_policy$NEW_DEL_SEC_LEVEL]], f flags[send_flags]) |
| sendmsg$NL802154_CMD_DEL_SEC_LEVEL(fd sock_nl_generic_init, msg ptr[in, msghdr_nl802154[NL802154_CMD_DEL_SEC_LEVEL, nl802154_policy$NEW_DEL_SEC_LEVEL]], f flags[send_flags]) |
| |
| nl802154_policy$GET_WPAN_PHY [ |
| NL802154_ATTR_WPAN_PHY nlattr[NL802154_ATTR_WPAN_PHY, flags[ieee802154_phy_index, int32]] |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| ] [varlen] |
| |
| nl802154_policy$GET_INTERFACE [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| ] [varlen] |
| |
| nl802154_policy$NEW_INTERFACE [ |
| NL802154_ATTR_WPAN_PHY nlattr[NL802154_ATTR_WPAN_PHY, flags[ieee802154_phy_index, int32]] |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_IFNAME nlattr[NL802154_ATTR_IFNAME, string[ieee802154_dev_names]] |
| NL802154_ATTR_IFTYPE nlattr[NL802154_ATTR_IFTYPE, flags[nl802154_iftype, int32]] |
| NL802154_ATTR_EXTENDED_ADDR nlattr[NL802154_ATTR_EXTENDED_ADDR, ieee802154_hwaddr] |
| ] [varlen] |
| |
| nl802154_iftype = NL802154_IFTYPE_UNSPEC, NL802154_IFTYPE_NODE, NL802154_IFTYPE_MONITOR, NL802154_IFTYPE_COORD |
| |
| #nl802154_policy$DEL_INTERFACE [ |
| # NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| # NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| #] [varlen] |
| |
| nl802154_policy$SET_CHANNEL [ |
| NL802154_ATTR_WPAN_PHY nlattr[NL802154_ATTR_WPAN_PHY, flags[ieee802154_phy_index, int32]] |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_PAGE nlattr[NL802154_ATTR_PAGE, int8[0:IEEE802154_MAX_PAGE]] |
| NL802154_ATTR_CHANNEL nlattr[NL802154_ATTR_CHANNEL, int8[0:IEEE802154_MAX_CHANNEL]] |
| ] [varlen] |
| |
| nl802154_policy$SET_CCA_MODE [ |
| NL802154_ATTR_WPAN_PHY nlattr[NL802154_ATTR_WPAN_PHY, flags[ieee802154_phy_index, int32]] |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_CCA_MODE nlattr[NL802154_ATTR_CCA_MODE, flags[nl802154_cca_modes, int32]] |
| NL802154_ATTR_CCA_OPT nlattr[NL802154_ATTR_CCA_OPT, flags[nl802154_cca_opts, int32]] |
| ] [varlen] |
| |
| nl802154_cca_modes = NL802154_CCA_ENERGY, NL802154_CCA_CARRIER, NL802154_CCA_ENERGY_CARRIER, NL802154_CCA_ALOHA, NL802154_CCA_UWB_SHR, NL802154_CCA_UWB_MULTIPLEXED |
| nl802154_cca_opts = NL802154_CCA_OPT_ENERGY_CARRIER_AND, NL802154_CCA_OPT_ENERGY_CARRIER_OR |
| |
| nl802154_policy$SET_CCA_ED_LEVEL [ |
| NL802154_ATTR_WPAN_PHY nlattr[NL802154_ATTR_WPAN_PHY, flags[ieee802154_phy_index, int32]] |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_CCA_ED_LEVEL nlattr[NL802154_ATTR_CCA_ED_LEVEL, int32[0:16]] |
| ] [varlen] |
| |
| nl802154_policy$SET_TX_POWER [ |
| NL802154_ATTR_WPAN_PHY nlattr[NL802154_ATTR_WPAN_PHY, flags[ieee802154_phy_index, int32]] |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_TX_POWER nlattr[NL802154_ATTR_TX_POWER, int32] |
| ] [varlen] |
| |
| nl802154_policy$SET_WPAN_PHY_NETNS [ |
| NL802154_ATTR_WPAN_PHY nlattr[NL802154_ATTR_WPAN_PHY, flags[ieee802154_phy_index, int32]] |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_PID nlattr[NL802154_ATTR_PID, pid] |
| NL802154_ATTR_NETNS_FD nlattr[NL802154_ATTR_NETNS_FD, fd_namespace] |
| ] [varlen] |
| |
| nl802154_policy$SET_PAN_ID [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_PAN_ID nlattr[NL802154_ATTR_PAN_ID, flags[ieee802154_pan_id, int16]] |
| ] [varlen] |
| |
| nl802154_policy$SET_SHORT_ADDR [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_SHORT_ADDR nlattr[NL802154_ATTR_SHORT_ADDR, flags[ieee802154_short_addr, int16]] |
| ] [varlen] |
| |
| nl802154_policy$SET_BACKOFF_EXPONENT [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_MIN_BE nlattr[NL802154_ATTR_MIN_BE, int8] |
| NL802154_ATTR_MAX_BE nlattr[NL802154_ATTR_MAX_BE, int8] |
| ] [varlen] |
| |
| nl802154_policy$SET_MAX_CSMA_BACKOFFS [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_MAX_CSMA_BACKOFFS nlattr[NL802154_ATTR_MAX_CSMA_BACKOFFS, int8] |
| ] [varlen] |
| |
| nl802154_policy$SET_MAX_FRAME_RETRIES [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_MAX_FRAME_RETRIES nlattr[NL802154_ATTR_MAX_FRAME_RETRIES, int8] |
| ] [varlen] |
| |
| nl802154_policy$SET_LBT_MODE [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_LBT_MODE nlattr[NL802154_ATTR_LBT_MODE, bool8] |
| ] [varlen] |
| |
| nl802154_policy$SET_ACKREQ_DEFAULT [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_ACKREQ_DEFAULT nlattr[NL802154_ATTR_ACKREQ_DEFAULT, bool8] |
| ] [varlen] |
| |
| nl802154_policy$SET_SEC_PARAMS [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_SEC_ENABLED nlattr[NL802154_ATTR_SEC_ENABLED, bool8] |
| NL802154_ATTR_SEC_OUT_KEY_ID nlnest[NL802154_ATTR_SEC_OUT_KEY_ID, array[nl802154_key_id_policy]] |
| NL802154_ATTR_SEC_OUT_LEVEL nlattr[NL802154_ATTR_SEC_OUT_LEVEL, int32[0:NL802154_SECLEVEL_MAX]] |
| NL802154_ATTR_SEC_FRAME_COUNTER nlattr[NL802154_ATTR_SEC_FRAME_COUNTER, int32] |
| ] [varlen] |
| |
| nl802154_policy$GET_SEC_KEY [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| ] [varlen] |
| |
| nl802154_policy$NEW_SEC_KEY [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_SEC_KEY nlnest[NL802154_ATTR_SEC_KEY, array[nl802154_key_policy]] |
| ] [varlen] |
| |
| nl802154_key_policy [ |
| NL802154_KEY_ATTR_ID nlnest[NL802154_KEY_ATTR_ID, array[nl802154_key_id_policy]] |
| NL802154_KEY_ATTR_USAGE_FRAMES nlattr[NL802154_KEY_ATTR_USAGE_FRAMES, int8] |
| NL802154_KEY_ATTR_USAGE_CMDS nlattr[NL802154_KEY_ATTR_USAGE_CMDS, array[int8, 32]] |
| NL802154_KEY_ATTR_BYTES nlattr[NL802154_KEY_ATTR_BYTES, array[int8, NL802154_KEY_SIZE]] |
| ] [varlen] |
| |
| nl802154_key_id_policy [ |
| NL802154_KEY_ID_ATTR_MODE nlattr[NL802154_KEY_ID_ATTR_MODE, int32[0:NL802154_KEY_ID_MODE_MAX]] |
| NL802154_KEY_ID_ATTR_INDEX nlattr[NL802154_KEY_ID_ATTR_INDEX, flags[ieee802154_scf_key, int8]] |
| NL802154_KEY_ID_ATTR_IMPLICIT nlnest[NL802154_KEY_ID_ATTR_IMPLICIT, array[nl802154_dev_addr_policy]] |
| NL802154_KEY_ID_ATTR_SOURCE_SHORT nlattr[NL802154_KEY_ID_ATTR_SOURCE_SHORT, int32] |
| NL802154_KEY_ID_ATTR_SOURCE_EXTENDED nlattr[NL802154_KEY_ID_ATTR_SOURCE_EXTENDED, int64] |
| ] [varlen] |
| |
| nl802154_dev_addr_policy [ |
| NL802154_DEV_ADDR_ATTR_PAN_ID nlattr[NL802154_DEV_ADDR_ATTR_PAN_ID, flags[ieee802154_pan_id, int16]] |
| NL802154_DEV_ADDR_ATTR_MODE nlattr[NL802154_DEV_ADDR_ATTR_MODE, int32[0:NL802154_DEV_ADDR_MAX]] |
| NL802154_DEV_ADDR_ATTR_SHORT nlattr[NL802154_DEV_ADDR_ATTR_SHORT, flags[ieee802154_short_addr, int16]] |
| NL802154_DEV_ADDR_ATTR_EXTENDED nlattr[NL802154_DEV_ADDR_ATTR_EXTENDED, ieee802154_hwaddr] |
| ] [varlen] |
| |
| nl802154_policy$DEL_SEC_KEY [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_SEC_KEY nlnest[NL802154_ATTR_SEC_KEY, array[nl802154_key_policy]] |
| ] [varlen] |
| |
| nl802154_policy$GET_SEC_DEV [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| ] [varlen] |
| |
| nl802154_policy$NEW_SEC_DEV [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_SEC_DEVICE nlnest[NL802154_ATTR_SEC_DEVICE, array[nl802154_dev_policy]] |
| ] [varlen] |
| |
| nl802154_dev_policy [ |
| NL802154_DEV_ATTR_FRAME_COUNTER nlattr[NL802154_DEV_ATTR_FRAME_COUNTER, int16] |
| NL802154_DEV_ATTR_PAN_ID nlattr[NL802154_DEV_ATTR_PAN_ID, flags[ieee802154_pan_id, int16]] |
| NL802154_DEV_ATTR_SHORT_ADDR nlattr[NL802154_DEV_ATTR_SHORT_ADDR, flags[ieee802154_short_addr, int16]] |
| NL802154_DEV_ATTR_EXTENDED_ADDR nlattr[NL802154_DEV_ATTR_EXTENDED_ADDR, ieee802154_hwaddr] |
| NL802154_DEV_ATTR_SECLEVEL_EXEMPT nlattr[NL802154_DEV_ATTR_SECLEVEL_EXEMPT, bool8] |
| NL802154_DEV_ATTR_KEY_MODE nlattr[NL802154_DEV_ATTR_KEY_MODE, int32[0:NL802154_DEVKEY_MAX]] |
| ] [varlen] |
| |
| nl802154_policy$DEL_SEC_DEV [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_SEC_DEVICE nlnest[NL802154_ATTR_SEC_DEVICE, nlattr[NL802154_DEV_ATTR_EXTENDED_ADDR, ieee802154_hwaddr]] |
| ] [varlen] |
| |
| nl802154_policy$GET_SEC_DEVKEY [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| ] [varlen] |
| |
| nl802154_policy$NEW_SEC_DEVKEY [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_SEC_DEVKEY nlnest[NL802154_ATTR_SEC_DEVKEY, array[nl802154_devkey_policy]] |
| ] [varlen] |
| |
| nl802154_devkey_policy [ |
| NL802154_DEVKEY_ATTR_FRAME_COUNTER nlattr[NL802154_DEVKEY_ATTR_FRAME_COUNTER, int32] |
| NL802154_DEVKEY_ATTR_EXTENDED_ADDR nlattr[NL802154_DEVKEY_ATTR_EXTENDED_ADDR, ieee802154_hwaddr] |
| NL802154_DEVKEY_ATTR_ID nlnest[NL802154_DEVKEY_ATTR_ID, array[nl802154_key_id_policy]] |
| ] [varlen] |
| |
| nl802154_policy$DEL_SEC_DEVKEY [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_SEC_DEVKEY nlnest[NL802154_ATTR_SEC_DEVKEY, array[nl802154_devkey_policy]] |
| ] [varlen] |
| |
| nl802154_policy$GET_SEC_LEVEL [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| ] [varlen] |
| |
| nl802154_policy$NEW_DEL_SEC_LEVEL [ |
| NL802154_ATTR_IFINDEX nlattr[NL802154_ATTR_IFINDEX, ieee802154_ifindex] |
| NL802154_ATTR_WPAN_DEV nlattr[NL802154_ATTR_WPAN_DEV, flags[ieee802154_dev_index, int64]] |
| NL802154_ATTR_SEC_LEVEL nlnest[NL802154_ATTR_SEC_LEVEL, array[nl802154_seclevel_policy]] |
| ] [varlen] |
| |
| nl802154_seclevel_policy [ |
| NL802154_SECLEVEL_ATTR_LEVELS nlattr[NL802154_SECLEVEL_ATTR_LEVELS, int8] |
| NL802154_SECLEVEL_ATTR_FRAME nlattr[NL802154_SECLEVEL_ATTR_FRAME, int32[0:NL802154_FRAME_MAX]] |
| NL802154_SECLEVEL_ATTR_CMD_FRAME nlattr[NL802154_SECLEVEL_ATTR_CMD_FRAME, int32[0:NL802154_CMD_FRAME_MAX]] |
| NL802154_SECLEVEL_ATTR_DEV_OVERRIDE nlattr[NL802154_SECLEVEL_ATTR_DEV_OVERRIDE, bool8] |
| ] [varlen] |
| |
| resource genl_ieee802154_family_id[int16] |
| type msghdr_ieee802154[CMD, POLICY] msghdr_netlink[netlink_msg_t[genl_ieee802154_family_id, genlmsghdr_t[CMD], POLICY]] |
| |
| syz_genetlink_get_family_id$ieee802154(name ptr[in, string["802.15.4 MAC"]], fd sock_nl_generic_init) genl_ieee802154_family_id |
| |
| sendmsg$IEEE802154_LIST_PHY(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_LIST_PHY, void]], f flags[send_flags]) |
| sendmsg$IEEE802154_ADD_IFACE(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_ADD_IFACE, ieee802154_policy$ADD_IFACE]], f flags[send_flags]) |
| # This is disabled as we only have 2 global hwsim devices, if we delete them we are out of devices. |
| # sendmsg$IEEE802154_DEL_IFACE(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_DEL_IFACE, ieee802154_policy$DEL_IFACE]], f flags[send_flags]) |
| sendmsg$IEEE802154_ASSOCIATE_REQ(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_ASSOCIATE_REQ, ieee802154_policy$ASSOCIATE_REQ]], f flags[send_flags]) |
| sendmsg$IEEE802154_ASSOCIATE_RESP(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_ASSOCIATE_RESP, ieee802154_policy$ASSOCIATE_RESP]], f flags[send_flags]) |
| sendmsg$IEEE802154_DISASSOCIATE_REQ(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_DISASSOCIATE_REQ, ieee802154_policy$DISASSOCIATE_REQ]], f flags[send_flags]) |
| sendmsg$IEEE802154_SCAN_REQ(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_SCAN_REQ, ieee802154_policy$SCAN_REQ]], f flags[send_flags]) |
| sendmsg$IEEE802154_START_REQ(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_START_REQ, ieee802154_policy$START_REQ]], f flags[send_flags]) |
| sendmsg$IEEE802154_LIST_IFACE(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_LIST_IFACE, ieee802154_policy$LIST_IFACE]], f flags[send_flags]) |
| sendmsg$IEEE802154_SET_MACPARAMS(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_SET_MACPARAMS, ieee802154_policy$SET_MACPARAMS]], f flags[send_flags]) |
| sendmsg$IEEE802154_LLSEC_GETPARAMS(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_LLSEC_GETPARAMS, ieee802154_policy$LLSEC_GETPARAMS]], f flags[send_flags]) |
| sendmsg$IEEE802154_LLSEC_SETPARAMS(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_LLSEC_SETPARAMS, ieee802154_policy$LLSEC_SETPARAMS]], f flags[send_flags]) |
| sendmsg$IEEE802154_LLSEC_LIST_KEY(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_LLSEC_LIST_KEY, void]], f flags[send_flags]) |
| sendmsg$IEEE802154_LLSEC_ADD_KEY(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_LLSEC_ADD_KEY, ieee802154_policy$LLSEC_ADD_KEY]], f flags[send_flags]) |
| sendmsg$IEEE802154_LLSEC_DEL_KEY(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_LLSEC_DEL_KEY, ieee802154_policy$LLSEC_DEL_KEY]], f flags[send_flags]) |
| sendmsg$IEEE802154_LLSEC_LIST_DEV(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_LLSEC_LIST_DEV, void]], f flags[send_flags]) |
| sendmsg$IEEE802154_LLSEC_ADD_DEV(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_LLSEC_ADD_DEV, ieee802154_policy$LLSEC_ADD_DEV]], f flags[send_flags]) |
| sendmsg$IEEE802154_LLSEC_DEL_DEV(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_LLSEC_DEL_DEV, ieee802154_policy$LLSEC_DEL_DEV]], f flags[send_flags]) |
| sendmsg$IEEE802154_LLSEC_LIST_DEVKEY(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_LLSEC_LIST_DEVKEY, void]], f flags[send_flags]) |
| sendmsg$IEEE802154_LLSEC_ADD_DEVKEY(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_LLSEC_ADD_DEVKEY, ieee802154_policy$LLSEC_ADD_DEVKEY]], f flags[send_flags]) |
| sendmsg$IEEE802154_LLSEC_DEL_DEVKEY(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_LLSEC_DEL_DEVKEY, ieee802154_policy$LLSEC_DEL_DEVKEY]], f flags[send_flags]) |
| sendmsg$IEEE802154_LLSEC_LIST_SECLEVEL(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_LLSEC_LIST_SECLEVEL, void]], f flags[send_flags]) |
| sendmsg$IEEE802154_LLSEC_ADD_SECLEVEL(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_LLSEC_ADD_SECLEVEL, ieee802154_policy$LLSEC_ADD_DEL_SECLEVEL]], f flags[send_flags]) |
| sendmsg$IEEE802154_LLSEC_DEL_SECLEVEL(fd sock_nl_generic_init, msg ptr[in, msghdr_ieee802154[IEEE802154_LLSEC_DEL_SECLEVEL, ieee802154_policy$LLSEC_ADD_DEL_SECLEVEL]], f flags[send_flags]) |
| |
| ieee802154_policy$ADD_IFACE [ |
| IEEE802154_ATTR_DEV_NAME nlattr[IEEE802154_ATTR_DEV_NAME, string[ieee802154_dev_names]] |
| IEEE802154_ATTR_PHY_NAME nlattr[IEEE802154_ATTR_PHY_NAME, string[ieee802154_phy_names]] |
| IEEE802154_ATTR_HW_ADDR nlattr[IEEE802154_ATTR_HW_ADDR, ieee802154_hwaddr] |
| IEEE802154_ATTR_DEV_TYPE nlattr[IEEE802154_ATTR_DEV_TYPE, int8[IEEE802154_DEV_WPAN:IEEE802154_DEV_MONITOR]] |
| ] [varlen] |
| |
| #ieee802154_policy$DEL_IFACE [ |
| # IEEE802154_ATTR_DEV_NAME nlattr[IEEE802154_ATTR_DEV_NAME, string[ieee802154_dev_names]] |
| # IEEE802154_ATTR_PHY_NAME nlattr[IEEE802154_ATTR_PHY_NAME, string[ieee802154_phy_names]] |
| #] [varlen] |
| |
| ieee802154_policy$ASSOCIATE_REQ [ |
| IEEE802154_ATTR_CHANNEL nlattr[IEEE802154_ATTR_CHANNEL, int8[0:IEEE802154_MAX_CHANNEL]] |
| IEEE802154_ATTR_COORD_PAN_ID nlattr[IEEE802154_ATTR_COORD_PAN_ID, flags[ieee802154_pan_id, int16]] |
| IEEE802154_ATTR_COORD_HW_ADDR nlattr[IEEE802154_ATTR_COORD_HW_ADDR, ieee802154_hwaddr] |
| IEEE802154_ATTR_COORD_SHORT_ADDR nlattr[IEEE802154_ATTR_COORD_SHORT_ADDR, flags[ieee802154_short_addr, int16]] |
| IEEE802154_ATTR_CAPABILITY nlattr[IEEE802154_ATTR_CAPABILITY, int8] |
| IEEE802154_ATTR_PAGE nlattr[IEEE802154_ATTR_PAGE, int8[0:IEEE802154_MAX_PAGE]] |
| ] [varlen] |
| |
| ieee802154_policy$ASSOCIATE_RESP [ |
| IEEE802154_ATTR_STATUS nlattr[IEEE802154_ATTR_STATUS, int8] |
| IEEE802154_ATTR_COORD_HW_ADDR nlattr[IEEE802154_ATTR_COORD_HW_ADDR, ieee802154_hwaddr] |
| IEEE802154_ATTR_COORD_SHORT_ADDR nlattr[IEEE802154_ATTR_COORD_SHORT_ADDR, flags[ieee802154_short_addr, int16]] |
| ] [varlen] |
| |
| ieee802154_policy$DISASSOCIATE_REQ [ |
| IEEE802154_ATTR_REASON nlattr[IEEE802154_ATTR_REASON, int8] |
| IEEE802154_ATTR_COORD_HW_ADDR nlattr[IEEE802154_ATTR_COORD_HW_ADDR, ieee802154_hwaddr] |
| IEEE802154_ATTR_COORD_SHORT_ADDR nlattr[IEEE802154_ATTR_COORD_SHORT_ADDR, flags[ieee802154_short_addr, int16]] |
| ] [varlen] |
| |
| ieee802154_policy$SCAN_REQ [ |
| IEEE802154_ATTR_SCAN_TYPE nlattr[IEEE802154_ATTR_SCAN_TYPE, int8] |
| IEEE802154_ATTR_CHANNELS nlattr[IEEE802154_ATTR_CHANNELS, int32[0:IEEE802154_MAX_CHANNEL]] |
| IEEE802154_ATTR_DURATION nlattr[IEEE802154_ATTR_DURATION, int8] |
| IEEE802154_ATTR_PAGE nlattr[IEEE802154_ATTR_PAGE, int8[0:IEEE802154_MAX_PAGE]] |
| ] [varlen] |
| |
| ieee802154_policy$START_REQ [ |
| IEEE802154_ATTR_COORD_PAN_ID nlattr[IEEE802154_ATTR_COORD_PAN_ID, flags[ieee802154_pan_id, int16]] |
| IEEE802154_ATTR_COORD_SHORT_ADDR nlattr[IEEE802154_ATTR_COORD_SHORT_ADDR, flags[ieee802154_short_addr, int16]] |
| IEEE802154_ATTR_CHANNEL nlattr[IEEE802154_ATTR_CHANNEL, int8[0:IEEE802154_MAX_CHANNEL]] |
| IEEE802154_ATTR_BCN_ORD nlattr[IEEE802154_ATTR_BCN_ORD, int8] |
| IEEE802154_ATTR_SF_ORD nlattr[IEEE802154_ATTR_SF_ORD, int8] |
| IEEE802154_ATTR_PAN_COORD nlattr[IEEE802154_ATTR_PAN_COORD, int8] |
| IEEE802154_ATTR_BAT_EXT nlattr[IEEE802154_ATTR_BAT_EXT, int8] |
| IEEE802154_ATTR_COORD_REALIGN nlattr[IEEE802154_ATTR_COORD_REALIGN, int8] |
| IEEE802154_ATTR_PAGE nlattr[IEEE802154_ATTR_PAGE, int8[0:IEEE802154_MAX_PAGE]] |
| ] [varlen] |
| |
| ieee802154_policy$LIST_IFACE [ |
| IEEE802154_ATTR_DEV_NAME nlattr[IEEE802154_ATTR_DEV_NAME, string[ieee802154_dev_names]] |
| IEEE802154_ATTR_DEV_INDEX nlattr[IEEE802154_ATTR_DEV_INDEX, ieee802154_ifindex] |
| ] [varlen] |
| |
| ieee802154_policy$SET_MACPARAMS [ |
| IEEE802154_ATTR_DEV_NAME nlattr[IEEE802154_ATTR_DEV_NAME, string[ieee802154_dev_names]] |
| IEEE802154_ATTR_DEV_INDEX nlattr[IEEE802154_ATTR_DEV_INDEX, ieee802154_ifindex] |
| IEEE802154_ATTR_LBT_ENABLED nlattr[IEEE802154_ATTR_LBT_ENABLED, bool8] |
| IEEE802154_ATTR_CCA_MODE nlattr[IEEE802154_ATTR_CCA_MODE, int8] |
| IEEE802154_ATTR_CCA_ED_LEVEL nlattr[IEEE802154_ATTR_CCA_ED_LEVEL, int32] |
| IEEE802154_ATTR_CSMA_RETRIES nlattr[IEEE802154_ATTR_CSMA_RETRIES, int8] |
| IEEE802154_ATTR_CSMA_MIN_BE nlattr[IEEE802154_ATTR_CSMA_MIN_BE, int8] |
| IEEE802154_ATTR_CSMA_MAX_BE nlattr[IEEE802154_ATTR_CSMA_MAX_BE, int8] |
| IEEE802154_ATTR_FRAME_RETRIES nlattr[IEEE802154_ATTR_FRAME_RETRIES, int8] |
| IEEE802154_ATTR_TXPOWER nlattr[IEEE802154_ATTR_TXPOWER, int8] |
| ] [varlen] |
| |
| ieee802154_policy$LLSEC_GETPARAMS [ |
| IEEE802154_ATTR_DEV_NAME nlattr[IEEE802154_ATTR_DEV_NAME, string[ieee802154_dev_names]] |
| IEEE802154_ATTR_DEV_INDEX nlattr[IEEE802154_ATTR_DEV_INDEX, ieee802154_ifindex] |
| ] [varlen] |
| |
| ieee802154_policy$LLSEC_SETPARAMS [ |
| IEEE802154_ATTR_DEV_NAME nlattr[IEEE802154_ATTR_DEV_NAME, string[ieee802154_dev_names]] |
| IEEE802154_ATTR_DEV_INDEX nlattr[IEEE802154_ATTR_DEV_INDEX, ieee802154_ifindex] |
| IEEE802154_ATTR_LLSEC_SECLEVEL nlattr[IEEE802154_ATTR_LLSEC_SECLEVEL, int8[0:7]] |
| IEEE802154_ATTR_LLSEC_ENABLED nlattr[IEEE802154_ATTR_LLSEC_ENABLED, bool8] |
| IEEE802154_ATTR_LLSEC_KEY_MODE nlattr[IEEE802154_ATTR_LLSEC_KEY_MODE, flags[ieee802154_scf_key, int8]] |
| IEEE802154_ATTR_PAN_ID nlattr[IEEE802154_ATTR_PAN_ID, flags[ieee802154_pan_id, int16]] |
| IEEE802154_ATTR_HW_ADDR nlattr[IEEE802154_ATTR_HW_ADDR, ieee802154_hwaddr] |
| IEEE802154_ATTR_SHORT_ADDR nlattr[IEEE802154_ATTR_SHORT_ADDR, flags[ieee802154_short_addr, int16]] |
| IEEE802154_ATTR_LLSEC_KEY_ID nlattr[IEEE802154_ATTR_LLSEC_KEY_ID, int8] |
| IEEE802154_ATTR_LLSEC_KEY_SOURCE_SHORT nlattr[IEEE802154_ATTR_LLSEC_KEY_SOURCE_SHORT, int32] |
| IEEE802154_ATTR_LLSEC_KEY_SOURCE_EXTENDED nlattr[IEEE802154_ATTR_LLSEC_KEY_SOURCE_EXTENDED, ieee802154_hwaddr] |
| IEEE802154_ATTR_LLSEC_FRAME_COUNTER nlattr[IEEE802154_ATTR_LLSEC_FRAME_COUNTER, int32] |
| ] [varlen] |
| |
| ieee802154_scf_key = IEEE802154_SCF_KEY_IMPLICIT, IEEE802154_SCF_KEY_INDEX, IEEE802154_SCF_KEY_SHORT_INDEX, IEEE802154_SCF_KEY_HW_INDEX |
| |
| ieee802154_policy$LLSEC_ADD_KEY [ |
| IEEE802154_ATTR_DEV_NAME nlattr[IEEE802154_ATTR_DEV_NAME, string[ieee802154_dev_names]] |
| IEEE802154_ATTR_DEV_INDEX nlattr[IEEE802154_ATTR_DEV_INDEX, ieee802154_ifindex] |
| IEEE802154_ATTR_LLSEC_KEY_USAGE_FRAME_TYPES nlattr[IEEE802154_ATTR_LLSEC_KEY_USAGE_FRAME_TYPES, int8] |
| IEEE802154_ATTR_LLSEC_KEY_BYTES nlattr[IEEE802154_ATTR_LLSEC_KEY_BYTES, array[int8, 16]] |
| IEEE802154_ATTR_LLSEC_KEY_USAGE_COMMANDS nlattr[IEEE802154_ATTR_LLSEC_KEY_USAGE_COMMANDS, array[int8, 32]] |
| IEEE802154_ATTR_LLSEC_KEY_MODE nlattr[IEEE802154_ATTR_LLSEC_KEY_MODE, flags[ieee802154_scf_key, int8]] |
| IEEE802154_ATTR_PAN_ID nlattr[IEEE802154_ATTR_PAN_ID, flags[ieee802154_pan_id, int16]] |
| IEEE802154_ATTR_HW_ADDR nlattr[IEEE802154_ATTR_HW_ADDR, ieee802154_hwaddr] |
| IEEE802154_ATTR_SHORT_ADDR nlattr[IEEE802154_ATTR_SHORT_ADDR, flags[ieee802154_short_addr, int16]] |
| IEEE802154_ATTR_LLSEC_KEY_ID nlattr[IEEE802154_ATTR_LLSEC_KEY_ID, int8] |
| IEEE802154_ATTR_LLSEC_KEY_SOURCE_SHORT nlattr[IEEE802154_ATTR_LLSEC_KEY_SOURCE_SHORT, int32] |
| IEEE802154_ATTR_LLSEC_KEY_SOURCE_EXTENDED nlattr[IEEE802154_ATTR_LLSEC_KEY_SOURCE_EXTENDED, ieee802154_hwaddr] |
| ] [varlen] |
| |
| ieee802154_policy$LLSEC_DEL_KEY [ |
| IEEE802154_ATTR_DEV_NAME nlattr[IEEE802154_ATTR_DEV_NAME, string[ieee802154_dev_names]] |
| IEEE802154_ATTR_DEV_INDEX nlattr[IEEE802154_ATTR_DEV_INDEX, ieee802154_ifindex] |
| IEEE802154_ATTR_LLSEC_KEY_MODE nlattr[IEEE802154_ATTR_LLSEC_KEY_MODE, flags[ieee802154_scf_key, int8]] |
| IEEE802154_ATTR_PAN_ID nlattr[IEEE802154_ATTR_PAN_ID, flags[ieee802154_pan_id, int16]] |
| IEEE802154_ATTR_HW_ADDR nlattr[IEEE802154_ATTR_HW_ADDR, ieee802154_hwaddr] |
| IEEE802154_ATTR_SHORT_ADDR nlattr[IEEE802154_ATTR_SHORT_ADDR, flags[ieee802154_short_addr, int16]] |
| IEEE802154_ATTR_LLSEC_KEY_ID nlattr[IEEE802154_ATTR_LLSEC_KEY_ID, int8] |
| IEEE802154_ATTR_LLSEC_KEY_SOURCE_SHORT nlattr[IEEE802154_ATTR_LLSEC_KEY_SOURCE_SHORT, int32] |
| IEEE802154_ATTR_LLSEC_KEY_SOURCE_EXTENDED nlattr[IEEE802154_ATTR_LLSEC_KEY_SOURCE_EXTENDED, ieee802154_hwaddr] |
| ] [varlen] |
| |
| ieee802154_policy$LLSEC_ADD_DEV [ |
| IEEE802154_ATTR_DEV_NAME nlattr[IEEE802154_ATTR_DEV_NAME, string[ieee802154_dev_names]] |
| IEEE802154_ATTR_DEV_INDEX nlattr[IEEE802154_ATTR_DEV_INDEX, ieee802154_ifindex] |
| IEEE802154_ATTR_LLSEC_FRAME_COUNTER nlattr[IEEE802154_ATTR_LLSEC_FRAME_COUNTER, int32] |
| IEEE802154_ATTR_HW_ADDR nlattr[IEEE802154_ATTR_HW_ADDR, ieee802154_hwaddr] |
| IEEE802154_ATTR_SHORT_ADDR nlattr[IEEE802154_ATTR_SHORT_ADDR, flags[ieee802154_short_addr, int16]] |
| IEEE802154_ATTR_PAN_ID nlattr[IEEE802154_ATTR_PAN_ID, flags[ieee802154_pan_id, int16]] |
| IEEE802154_ATTR_LLSEC_DEV_OVERRIDE nlattr[IEEE802154_ATTR_LLSEC_DEV_OVERRIDE, bool8] |
| IEEE802154_ATTR_LLSEC_DEV_KEY_MODE nlattr[IEEE802154_ATTR_LLSEC_DEV_KEY_MODE, flags[ieee802154_devkey_mode, int8]] |
| ] [varlen] |
| |
| ieee802154_devkey_mode = NL802154_DEVKEY_IGNORE, NL802154_DEVKEY_RESTRICT, NL802154_DEVKEY_RECORD |
| |
| ieee802154_policy$LLSEC_DEL_DEV [ |
| IEEE802154_ATTR_DEV_NAME nlattr[IEEE802154_ATTR_DEV_NAME, string[ieee802154_dev_names]] |
| IEEE802154_ATTR_DEV_INDEX nlattr[IEEE802154_ATTR_DEV_INDEX, ieee802154_ifindex] |
| IEEE802154_ATTR_HW_ADDR nlattr[IEEE802154_ATTR_HW_ADDR, ieee802154_hwaddr] |
| ] [varlen] |
| |
| ieee802154_policy$LLSEC_ADD_DEVKEY [ |
| IEEE802154_ATTR_DEV_NAME nlattr[IEEE802154_ATTR_DEV_NAME, string[ieee802154_dev_names]] |
| IEEE802154_ATTR_DEV_INDEX nlattr[IEEE802154_ATTR_DEV_INDEX, ieee802154_ifindex] |
| IEEE802154_ATTR_LLSEC_FRAME_COUNTER nlattr[IEEE802154_ATTR_LLSEC_FRAME_COUNTER, int32] |
| IEEE802154_ATTR_HW_ADDR nlattr[IEEE802154_ATTR_HW_ADDR, ieee802154_hwaddr] |
| IEEE802154_ATTR_LLSEC_KEY_MODE nlattr[IEEE802154_ATTR_LLSEC_KEY_MODE, flags[ieee802154_scf_key, int8]] |
| IEEE802154_ATTR_PAN_ID nlattr[IEEE802154_ATTR_PAN_ID, flags[ieee802154_pan_id, int16]] |
| IEEE802154_ATTR_SHORT_ADDR nlattr[IEEE802154_ATTR_SHORT_ADDR, flags[ieee802154_short_addr, int16]] |
| IEEE802154_ATTR_LLSEC_KEY_ID nlattr[IEEE802154_ATTR_LLSEC_KEY_ID, int8] |
| IEEE802154_ATTR_LLSEC_KEY_SOURCE_SHORT nlattr[IEEE802154_ATTR_LLSEC_KEY_SOURCE_SHORT, int32] |
| IEEE802154_ATTR_LLSEC_KEY_SOURCE_EXTENDED nlattr[IEEE802154_ATTR_LLSEC_KEY_SOURCE_EXTENDED, ieee802154_hwaddr] |
| ] [varlen] |
| |
| ieee802154_policy$LLSEC_DEL_DEVKEY [ |
| IEEE802154_ATTR_DEV_NAME nlattr[IEEE802154_ATTR_DEV_NAME, string[ieee802154_dev_names]] |
| IEEE802154_ATTR_DEV_INDEX nlattr[IEEE802154_ATTR_DEV_INDEX, ieee802154_ifindex] |
| IEEE802154_ATTR_HW_ADDR nlattr[IEEE802154_ATTR_HW_ADDR, ieee802154_hwaddr] |
| IEEE802154_ATTR_LLSEC_KEY_MODE nlattr[IEEE802154_ATTR_LLSEC_KEY_MODE, flags[ieee802154_scf_key, int8]] |
| IEEE802154_ATTR_PAN_ID nlattr[IEEE802154_ATTR_PAN_ID, flags[ieee802154_pan_id, int16]] |
| IEEE802154_ATTR_SHORT_ADDR nlattr[IEEE802154_ATTR_SHORT_ADDR, flags[ieee802154_short_addr, int16]] |
| IEEE802154_ATTR_LLSEC_KEY_ID nlattr[IEEE802154_ATTR_LLSEC_KEY_ID, int8] |
| IEEE802154_ATTR_LLSEC_KEY_SOURCE_SHORT nlattr[IEEE802154_ATTR_LLSEC_KEY_SOURCE_SHORT, int32] |
| IEEE802154_ATTR_LLSEC_KEY_SOURCE_EXTENDED nlattr[IEEE802154_ATTR_LLSEC_KEY_SOURCE_EXTENDED, ieee802154_hwaddr] |
| ] [varlen] |
| |
| ieee802154_policy$LLSEC_ADD_DEL_SECLEVEL [ |
| IEEE802154_ATTR_DEV_NAME nlattr[IEEE802154_ATTR_DEV_NAME, string[ieee802154_dev_names]] |
| IEEE802154_ATTR_DEV_INDEX nlattr[IEEE802154_ATTR_DEV_INDEX, ieee802154_ifindex] |
| IEEE802154_ATTR_LLSEC_FRAME_TYPE nlattr[IEEE802154_ATTR_LLSEC_FRAME_TYPE, int8] |
| IEEE802154_ATTR_LLSEC_SECLEVELS nlattr[IEEE802154_ATTR_LLSEC_SECLEVELS, int8] |
| IEEE802154_ATTR_LLSEC_DEV_OVERRIDE nlattr[IEEE802154_ATTR_LLSEC_DEV_OVERRIDE, bool8] |
| IEEE802154_ATTR_LLSEC_CMD_FRAME_ID nlattr[IEEE802154_ATTR_LLSEC_CMD_FRAME_ID, int8] |
| ] [varlen] |
| |
| sockaddr_ieee802154 { |
| family const[AF_IEEE802154, int16] |
| addr ieee802154_addr_sa |
| } |
| |
| ieee802154_addr_sa [ |
| none ieee802154_addr_sa_t[IEEE802154_ADDR_NONE, void] |
| short ieee802154_addr_sa_t[IEEE802154_ADDR_SHORT, flags[ieee802154_short_addr, int16]] |
| long ieee802154_addr_sa_t[IEEE802154_ADDR_LONG, ieee802154_hwaddr] |
| ] |
| |
| type ieee802154_addr_sa_t[TYP, ADDR] { |
| addr_type const[TYP, int32] |
| pan_id flags[ieee802154_pan_id, int16] |
| addr ADDR |
| } |
| |
| ieee802154_hwaddr { |
| val flags[ieee802154_hwaddrs, int64] |
| } [align[1]] |
| |
| msghdr_802154 { |
| addr ptr[in, sockaddr_ieee802154, opt] |
| addrlen len[addr, int32] |
| vec ptr[in, iovec[in, array[int8]]] |
| vlen const[1, intptr] |
| ctrl const[0, intptr] |
| ctrllen const[0, intptr] |
| f flags[send_flags, int32] |
| } |
| |
| # executor/common_linux.h:setup_802154 knowns about these constants. |
| ieee802154_short_addr = IEEE802154_ADDR_UNDEF, IEEE802154_ADDR_BROADCAST, 0, 0xaaa0, 0xaaa1, 0xaaa2, 0xaaa3 |
| # Note: the last byte (02) is some flags that need to have a particular value. |
| ieee802154_hwaddrs = 0, 0xaaaaaaaaaaaa0002, 0xaaaaaaaaaaaa0102, 0xaaaaaaaaaaaa0202, 0xaaaaaaaaaaaa0302 |
| ieee802154_dev_names = "wpan0", "wpan1", "wpan3", "wpan4" |
| ieee802154_phy_names = "phy0", "phy1", "phy2", "phy3" |
| ieee802154_phy_index = 0, 1, 2, 3 |
| ieee802154_dev_index = 0x0, 0x100000001, 0x200000002, 0x300000003, 0x2, 0x3 |
| ieee802154_pan_id = IEEE802154_PANID_BROADCAST, 0, 1, 2, 3 |
| ieee802154_security = WPAN_SECURITY_DEFAULT, WPAN_SECURITY_OFF, WPAN_SECURITY_ON |