1f0166e5eSDmitry Eremin-Solenikov /* 2*bfe08a87SStefan Schmidt * IEEE 802.15.4 interface 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 * Written by: 16f0166e5eSDmitry Eremin-Solenikov * Sergey Lapin <slapin@ossfans.org> 17f0166e5eSDmitry Eremin-Solenikov * Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> 18f0166e5eSDmitry Eremin-Solenikov */ 19f0166e5eSDmitry Eremin-Solenikov 20f0166e5eSDmitry Eremin-Solenikov #ifndef _AF_IEEE802154_H 21f0166e5eSDmitry Eremin-Solenikov #define _AF_IEEE802154_H 22f0166e5eSDmitry Eremin-Solenikov 23f0166e5eSDmitry Eremin-Solenikov #include <linux/socket.h> /* for sa_family_t */ 24f0166e5eSDmitry Eremin-Solenikov 25f0166e5eSDmitry Eremin-Solenikov enum { 26f0166e5eSDmitry Eremin-Solenikov IEEE802154_ADDR_NONE = 0x0, 27f0166e5eSDmitry Eremin-Solenikov /* RESERVED = 0x01, */ 28f0166e5eSDmitry Eremin-Solenikov IEEE802154_ADDR_SHORT = 0x2, /* 16-bit address + PANid */ 29f0166e5eSDmitry Eremin-Solenikov IEEE802154_ADDR_LONG = 0x3, /* 64-bit address + PANid */ 30f0166e5eSDmitry Eremin-Solenikov }; 31f0166e5eSDmitry Eremin-Solenikov 32f0166e5eSDmitry Eremin-Solenikov /* address length, octets */ 33f0166e5eSDmitry Eremin-Solenikov #define IEEE802154_ADDR_LEN 8 34f0166e5eSDmitry Eremin-Solenikov 35376b7bd3SPhoebe Buckheister struct ieee802154_addr_sa { 36f0166e5eSDmitry Eremin-Solenikov int addr_type; 37f0166e5eSDmitry Eremin-Solenikov u16 pan_id; 38f0166e5eSDmitry Eremin-Solenikov union { 39f0166e5eSDmitry Eremin-Solenikov u8 hwaddr[IEEE802154_ADDR_LEN]; 40f0166e5eSDmitry Eremin-Solenikov u16 short_addr; 41f0166e5eSDmitry Eremin-Solenikov }; 42f0166e5eSDmitry Eremin-Solenikov }; 43f0166e5eSDmitry Eremin-Solenikov 44f0166e5eSDmitry Eremin-Solenikov #define IEEE802154_PANID_BROADCAST 0xffff 45f0166e5eSDmitry Eremin-Solenikov #define IEEE802154_ADDR_BROADCAST 0xffff 46f0166e5eSDmitry Eremin-Solenikov #define IEEE802154_ADDR_UNDEF 0xfffe 47f0166e5eSDmitry Eremin-Solenikov 48f0166e5eSDmitry Eremin-Solenikov struct sockaddr_ieee802154 { 49f0166e5eSDmitry Eremin-Solenikov sa_family_t family; /* AF_IEEE802154 */ 50376b7bd3SPhoebe Buckheister struct ieee802154_addr_sa addr; 51f0166e5eSDmitry Eremin-Solenikov }; 52f0166e5eSDmitry Eremin-Solenikov 5399eb8558SDmitry Baryshkov /* get/setsockopt */ 5499eb8558SDmitry Baryshkov #define SOL_IEEE802154 0 5599eb8558SDmitry Baryshkov 5699eb8558SDmitry Baryshkov #define WPAN_WANTACK 0 57af9eed5bSPhoebe Buckheister #define WPAN_SECURITY 1 58af9eed5bSPhoebe Buckheister #define WPAN_SECURITY_LEVEL 2 59af9eed5bSPhoebe Buckheister 60af9eed5bSPhoebe Buckheister #define WPAN_SECURITY_DEFAULT 0 61af9eed5bSPhoebe Buckheister #define WPAN_SECURITY_OFF 1 62af9eed5bSPhoebe Buckheister #define WPAN_SECURITY_ON 2 63af9eed5bSPhoebe Buckheister 64af9eed5bSPhoebe Buckheister #define WPAN_SECURITY_LEVEL_DEFAULT (-1) 6599eb8558SDmitry Baryshkov 66f0166e5eSDmitry Eremin-Solenikov #endif 67