1f0166e5eSDmitry Eremin-Solenikov /* 2f0166e5eSDmitry Eremin-Solenikov * IEEE 802.15.4 inteface for userspace 3f0166e5eSDmitry Eremin-Solenikov * 4f0166e5eSDmitry Eremin-Solenikov * Copyright 2007, 2008 Siemens AG 5f0166e5eSDmitry Eremin-Solenikov * 6f0166e5eSDmitry Eremin-Solenikov * This program is free software; you can redistribute it and/or modify 7f0166e5eSDmitry Eremin-Solenikov * it under the terms of the GNU General Public License version 2 8f0166e5eSDmitry Eremin-Solenikov * as published by the Free Software Foundation. 9f0166e5eSDmitry Eremin-Solenikov * 10f0166e5eSDmitry Eremin-Solenikov * This program is distributed in the hope that it will be useful, 11f0166e5eSDmitry Eremin-Solenikov * but WITHOUT ANY WARRANTY; without even the implied warranty of 12f0166e5eSDmitry Eremin-Solenikov * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13f0166e5eSDmitry Eremin-Solenikov * GNU General Public License for more details. 14f0166e5eSDmitry Eremin-Solenikov * 15f0166e5eSDmitry Eremin-Solenikov * You should have received a copy of the GNU General Public License along 16f0166e5eSDmitry Eremin-Solenikov * with this program; if not, write to the Free Software Foundation, Inc., 17f0166e5eSDmitry Eremin-Solenikov * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18f0166e5eSDmitry Eremin-Solenikov * 19f0166e5eSDmitry Eremin-Solenikov * Written by: 20f0166e5eSDmitry Eremin-Solenikov * Sergey Lapin <slapin@ossfans.org> 21f0166e5eSDmitry Eremin-Solenikov * Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> 22f0166e5eSDmitry Eremin-Solenikov */ 23f0166e5eSDmitry Eremin-Solenikov 24f0166e5eSDmitry Eremin-Solenikov #ifndef _AF_IEEE802154_H 25f0166e5eSDmitry Eremin-Solenikov #define _AF_IEEE802154_H 26f0166e5eSDmitry Eremin-Solenikov 27f0166e5eSDmitry Eremin-Solenikov #include <linux/socket.h> /* for sa_family_t */ 28f0166e5eSDmitry Eremin-Solenikov 29f0166e5eSDmitry Eremin-Solenikov enum { 30f0166e5eSDmitry Eremin-Solenikov IEEE802154_ADDR_NONE = 0x0, 31f0166e5eSDmitry Eremin-Solenikov /* RESERVED = 0x01, */ 32f0166e5eSDmitry Eremin-Solenikov IEEE802154_ADDR_SHORT = 0x2, /* 16-bit address + PANid */ 33f0166e5eSDmitry Eremin-Solenikov IEEE802154_ADDR_LONG = 0x3, /* 64-bit address + PANid */ 34f0166e5eSDmitry Eremin-Solenikov }; 35f0166e5eSDmitry Eremin-Solenikov 36f0166e5eSDmitry Eremin-Solenikov /* address length, octets */ 37f0166e5eSDmitry Eremin-Solenikov #define IEEE802154_ADDR_LEN 8 38f0166e5eSDmitry Eremin-Solenikov 39f0166e5eSDmitry Eremin-Solenikov struct ieee802154_addr { 40f0166e5eSDmitry Eremin-Solenikov int addr_type; 41f0166e5eSDmitry Eremin-Solenikov u16 pan_id; 42f0166e5eSDmitry Eremin-Solenikov union { 43f0166e5eSDmitry Eremin-Solenikov u8 hwaddr[IEEE802154_ADDR_LEN]; 44f0166e5eSDmitry Eremin-Solenikov u16 short_addr; 45f0166e5eSDmitry Eremin-Solenikov }; 46f0166e5eSDmitry Eremin-Solenikov }; 47f0166e5eSDmitry Eremin-Solenikov 48f0166e5eSDmitry Eremin-Solenikov #define IEEE802154_PANID_BROADCAST 0xffff 49f0166e5eSDmitry Eremin-Solenikov #define IEEE802154_ADDR_BROADCAST 0xffff 50f0166e5eSDmitry Eremin-Solenikov #define IEEE802154_ADDR_UNDEF 0xfffe 51f0166e5eSDmitry Eremin-Solenikov 52f0166e5eSDmitry Eremin-Solenikov struct sockaddr_ieee802154 { 53f0166e5eSDmitry Eremin-Solenikov sa_family_t family; /* AF_IEEE802154 */ 54f0166e5eSDmitry Eremin-Solenikov struct ieee802154_addr addr; 55f0166e5eSDmitry Eremin-Solenikov }; 56f0166e5eSDmitry Eremin-Solenikov 57*99eb8558SDmitry Baryshkov /* get/setsockopt */ 58*99eb8558SDmitry Baryshkov #define SOL_IEEE802154 0 59*99eb8558SDmitry Baryshkov 60*99eb8558SDmitry Baryshkov #define WPAN_WANTACK 0 61*99eb8558SDmitry Baryshkov 62f0166e5eSDmitry Eremin-Solenikov #endif 63