1*1802d0beSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 2f0166e5eSDmitry Eremin-Solenikov /* 3bfe08a87SStefan Schmidt * IEEE 802.15.4 interface for userspace 4f0166e5eSDmitry Eremin-Solenikov * 5f0166e5eSDmitry Eremin-Solenikov * Copyright 2007, 2008 Siemens AG 6f0166e5eSDmitry Eremin-Solenikov * 7f0166e5eSDmitry Eremin-Solenikov * Written by: 8f0166e5eSDmitry Eremin-Solenikov * Sergey Lapin <slapin@ossfans.org> 9f0166e5eSDmitry Eremin-Solenikov * Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> 10f0166e5eSDmitry Eremin-Solenikov */ 11f0166e5eSDmitry Eremin-Solenikov 12f0166e5eSDmitry Eremin-Solenikov #ifndef _AF_IEEE802154_H 13f0166e5eSDmitry Eremin-Solenikov #define _AF_IEEE802154_H 14f0166e5eSDmitry Eremin-Solenikov 15f0166e5eSDmitry Eremin-Solenikov #include <linux/socket.h> /* for sa_family_t */ 16f0166e5eSDmitry Eremin-Solenikov 17f0166e5eSDmitry Eremin-Solenikov enum { 18f0166e5eSDmitry Eremin-Solenikov IEEE802154_ADDR_NONE = 0x0, 19f0166e5eSDmitry Eremin-Solenikov /* RESERVED = 0x01, */ 20f0166e5eSDmitry Eremin-Solenikov IEEE802154_ADDR_SHORT = 0x2, /* 16-bit address + PANid */ 21f0166e5eSDmitry Eremin-Solenikov IEEE802154_ADDR_LONG = 0x3, /* 64-bit address + PANid */ 22f0166e5eSDmitry Eremin-Solenikov }; 23f0166e5eSDmitry Eremin-Solenikov 24f0166e5eSDmitry Eremin-Solenikov /* address length, octets */ 25f0166e5eSDmitry Eremin-Solenikov #define IEEE802154_ADDR_LEN 8 26f0166e5eSDmitry Eremin-Solenikov 27376b7bd3SPhoebe Buckheister struct ieee802154_addr_sa { 28f0166e5eSDmitry Eremin-Solenikov int addr_type; 29f0166e5eSDmitry Eremin-Solenikov u16 pan_id; 30f0166e5eSDmitry Eremin-Solenikov union { 31f0166e5eSDmitry Eremin-Solenikov u8 hwaddr[IEEE802154_ADDR_LEN]; 32f0166e5eSDmitry Eremin-Solenikov u16 short_addr; 33f0166e5eSDmitry Eremin-Solenikov }; 34f0166e5eSDmitry Eremin-Solenikov }; 35f0166e5eSDmitry Eremin-Solenikov 36f0166e5eSDmitry Eremin-Solenikov #define IEEE802154_PANID_BROADCAST 0xffff 37f0166e5eSDmitry Eremin-Solenikov #define IEEE802154_ADDR_BROADCAST 0xffff 38f0166e5eSDmitry Eremin-Solenikov #define IEEE802154_ADDR_UNDEF 0xfffe 39f0166e5eSDmitry Eremin-Solenikov 40f0166e5eSDmitry Eremin-Solenikov struct sockaddr_ieee802154 { 41f0166e5eSDmitry Eremin-Solenikov sa_family_t family; /* AF_IEEE802154 */ 42376b7bd3SPhoebe Buckheister struct ieee802154_addr_sa addr; 43f0166e5eSDmitry Eremin-Solenikov }; 44f0166e5eSDmitry Eremin-Solenikov 4599eb8558SDmitry Baryshkov /* get/setsockopt */ 4699eb8558SDmitry Baryshkov #define SOL_IEEE802154 0 4799eb8558SDmitry Baryshkov 4899eb8558SDmitry Baryshkov #define WPAN_WANTACK 0 49af9eed5bSPhoebe Buckheister #define WPAN_SECURITY 1 50af9eed5bSPhoebe Buckheister #define WPAN_SECURITY_LEVEL 2 51811e299fSRomuald CARI #define WPAN_WANTLQI 3 52af9eed5bSPhoebe Buckheister 53af9eed5bSPhoebe Buckheister #define WPAN_SECURITY_DEFAULT 0 54af9eed5bSPhoebe Buckheister #define WPAN_SECURITY_OFF 1 55af9eed5bSPhoebe Buckheister #define WPAN_SECURITY_ON 2 56af9eed5bSPhoebe Buckheister 57af9eed5bSPhoebe Buckheister #define WPAN_SECURITY_LEVEL_DEFAULT (-1) 5899eb8558SDmitry Baryshkov 59f0166e5eSDmitry Eremin-Solenikov #endif 60