diff options
Diffstat (limited to 'drivers/staging/rt3090/ipv6.h')
-rw-r--r-- | drivers/staging/rt3090/ipv6.h | 215 |
1 files changed, 0 insertions, 215 deletions
diff --git a/drivers/staging/rt3090/ipv6.h b/drivers/staging/rt3090/ipv6.h deleted file mode 100644 index c34a5f2569dd..000000000000 --- a/drivers/staging/rt3090/ipv6.h +++ /dev/null @@ -1,215 +0,0 @@ -/* - ************************************************************************* - * Ralink Tech Inc. - * 5F., No.36, Taiyuan St., Jhubei City, - * Hsinchu County 302, - * Taiwan, R.O.C. - * - * (c) Copyright 2002-2007, Ralink Technology, Inc. - * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - * * - ************************************************************************* - - Module Name: - ipv6.h - - Abstract: - Miniport generic portion header file - - Revision History: - Who When What - -------- ---------- ---------------------------------------------- -*/ - -#ifndef __IPV6_HDR_H_ -#define __IPV6_HDR_H_ - -#define IPV6_ADDR_LEN 16 -#define IPV6_HDR_LEN 40 - -// IPv6 address definition -#define IPV6_LINK_LOCAL_ADDR_PREFIX 0xFE8 -#define IPV6_SITE_LOCAL_ADDR_PREFIX 0xFEC -#define IPV6_LOCAL_ADDR_PREFIX 0xFE8 -#define IPV6_MULTICAST_ADDR_PREFIX 0xFF -#define IPV6_LOOPBACK_ADDR 0x1 -#define IPV6_UNSPECIFIED_ADDR 0x0 - -// defined as sequence in IPv6 header -#define IPV6_NEXT_HEADER_HOP_BY_HOP 0x00 // 0 -#define IPV6_NEXT_HEADER_DESTINATION 0x3c // 60 -#define IPV6_NEXT_HEADER_ROUTING 0x2b // 43 -#define IPV6_NEXT_HEADER_FRAGMENT 0x2c // 44 -#define IPV6_NEXT_HEADER_AUTHENTICATION 0x33 // 51 -#define IPV6_NEXT_HEADER_ENCAPSULATION 0x32 // 50, RFC-2406 -#define IPV6_NEXT_HEADER_NONE 0x3b // 59 - -#define IPV6_NEXT_HEADER_TCP 0x06 -#define IPV6_NEXT_HEADER_UDP 0x11 -#define IPV6_NEXT_HEADER_ICMPV6 0x3a - -// ICMPv6 msg type definition -#define ICMPV6_MSG_TYPE_ROUTER_SOLICITATION 0x85 // 133 -#define ROUTER_SOLICITATION_FIXED_LEN 8 - -#define ICMPV6_MSG_TYPE_ROUTER_ADVERTISEMENT 0x86 // 134 -#define ROUTER_ADVERTISEMENT_FIXED_LEN 16 - -#define ICMPV6_MSG_TYPE_NEIGHBOR_SOLICITATION 0x87 // 135 -#define NEIGHBOR_SOLICITATION_FIXED_LEN 24 - -#define ICMPV6_MSG_TYPE_NEIGHBOR_ADVERTISEMENT 0x88 // 136 -#define NEIGHBOR_ADVERTISEMENT_FIXED_LEN 24 - -#define ICMPV6_MSG_TYPE_REDIRECT 0x89 // 137 -#define REDIRECT_FIXED_LEN 40 - -/* IPv6 Address related structures */ -typedef struct rt_ipv6_addr_ -{ - union - { - UCHAR ipv6Addr8[16]; - USHORT ipv6Addr16[8]; - UINT32 ipv6Addr32[4]; - }addr; -#define ipv6_addr addr.ipv6Addr8 -#define ipv6_addr16 addr.ipv6Addr16 -#define ipv6_addr32 addr.ipv6Addr32 -}RT_IPV6_ADDR, *PRT_IPV6_ADDR; - - -#define PRINT_IPV6_ADDR(ipv6Addr) \ - OS_NTOHS((ipv6Addr).ipv6_addr16[0]), \ - OS_NTOHS((ipv6Addr).ipv6_addr16[1]), \ - OS_NTOHS((ipv6Addr).ipv6_addr16[2]), \ - OS_NTOHS((ipv6Addr).ipv6_addr16[3]), \ - OS_NTOHS((ipv6Addr).ipv6_addr16[4]), \ - OS_NTOHS((ipv6Addr).ipv6_addr16[5]), \ - OS_NTOHS((ipv6Addr).ipv6_addr16[6]), \ - OS_NTOHS((ipv6Addr).ipv6_addr16[7]) - - -/*IPv6 Header related structures */ -typedef struct PACKED _rt_ipv6_hdr_ -{ - UINT32 ver:4, - trafficClass:8, - flowLabel:20; - USHORT payload_len; - UCHAR nextHdr; - UCHAR hopLimit; - RT_IPV6_ADDR srcAddr; - RT_IPV6_ADDR dstAddr; -}RT_IPV6_HDR, *PRT_IPV6_HDR; - - -typedef struct PACKED _rt_ipv6_ext_hdr_ -{ - UCHAR nextProto; // Indicate the protocol type of next extension header. - UCHAR extHdrLen; // optional field for msg length of this extension header which didn't include the first "nextProto" field. - UCHAR octets[1]; // hook to extend header message body. -}RT_IPV6_EXT_HDR, *PRT_IPV6_EXT_HDR; - - -/* ICMPv6 related structures */ -typedef struct PACKED _rt_ipv6_icmpv6_hdr_ -{ - UCHAR type; - UCHAR code; - USHORT chksum; - UCHAR octets[1]; //hook to extend header message body. -}RT_ICMPV6_HDR, *PRT_ICMPV6_HDR; - - -typedef struct PACKED _rt_icmp6_option_hdr_ -{ - UCHAR type; - UCHAR len; - UCHAR octet[1]; -}RT_ICMPV6_OPTION_HDR, *PRT_ICMPV6_OPTION_HDR; - -typedef enum{ -// Defined ICMPv6 Option Types. - TYPE_SRC_LL_ADDR = 1, - TYPE_TGT_LL_ADDR = 2, - TYPE_PREFIX_INFO = 3, - TYPE_REDIRECTED_HDR = 4, - TYPE_MTU = 5, -}ICMPV6_OPTIONS_TYPE_DEF; - - -static inline BOOLEAN IPv6ExtHdrHandle( - RT_IPV6_EXT_HDR *pExtHdr, - UCHAR *pProto, - UINT32 *pOffset) -{ - UCHAR nextProto = 0xff; - UINT32 extLen = 0; - BOOLEAN status = TRUE; - - //printk("%s(): parsing the Extension Header with Protocol(0x%x):\n", __FUNCTION__, *pProto); - switch (*pProto) - { - case IPV6_NEXT_HEADER_HOP_BY_HOP: - // IPv6ExtHopByHopHandle(); - nextProto = pExtHdr->nextProto; - extLen = (pExtHdr->extHdrLen + 1) * 8; - break; - - case IPV6_NEXT_HEADER_DESTINATION: - // IPv6ExtDestHandle(); - nextProto = pExtHdr->nextProto; - extLen = (pExtHdr->extHdrLen + 1) * 8; - break; - - case IPV6_NEXT_HEADER_ROUTING: - // IPv6ExtRoutingHandle(); - nextProto = pExtHdr->nextProto; - extLen = (pExtHdr->extHdrLen + 1) * 8; - break; - - case IPV6_NEXT_HEADER_FRAGMENT: - // IPv6ExtFragmentHandle(); - nextProto = pExtHdr->nextProto; - extLen = 8; // The Fragment header length is fixed to 8 bytes. - break; - - case IPV6_NEXT_HEADER_AUTHENTICATION: - // IPV6_NEXT_HEADER_ENCAPSULATION: - /* - TODO: Not support. For encryption issue. - */ - nextProto = 0xFF; - status = FALSE; - break; - - default: - nextProto = 0xFF; - status = FALSE; - break; - } - - *pProto = nextProto; - *pOffset += extLen; - //printk("%s(): nextProto = 0x%x!, offset=0x%x!\n", __FUNCTION__, nextProto, offset); - - return status; - -} - -#endif // __IPV6_HDR_H_ // |